source: tags/initial/WINDOW/AW_preset.cxx

Last change on this file was 2, checked in by oldcode, 24 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 22.7 KB
Line 
1#include <stdio.h>
2#include <string.h>
3#include <memory.h>
4#include <arbdb.h>
5#include <aw_root.hxx>
6#include <aw_device.hxx>
7#include <aw_window.hxx>
8// PJ vectorfont stuff:
9//#include <aw_xfig.hxx>
10//#include <aw_xfigfont.hxx>
11
12#ifdef _ARB_AWT
13#include "awt.hxx"
14#endif
15
16#include <stdarg.h>
17#include <stdlib.h>
18
19#include "aw_preset.hxx"
20
21#ifdef _ARB_WINDOW
22
23void AW_save_defaults( AW_window *aw ) {
24    aw->get_root()->save_default(  "window/font" );
25}
26
27void aw_message_reload(AW_root *){
28    aw_message( "Sorry, to activate new colors:\n"
29                "       save properties\n"
30                "       and restart application");
31}
32char *aw_glob_font_awar_name = 0;
33
34void aw_set_color(AW_window *aww,const char *color_name){
35    aww->get_root()->awar(aw_glob_font_awar_name)->write_string(color_name);
36}
37
38// --------------------------------------------------------------------------------
39//     static int hex2dez(char c)
40// --------------------------------------------------------------------------------
41static int hex2dez(char c) {
42    if (c>='0' && c<='9') return c-'0';
43    if (c>='A' && c<='F') return c-'A'+10;
44    if (c>='a' && c<='f') return c-'a'+10;
45    return -1;
46}
47
48// --------------------------------------------------------------------------------
49//     void aw_incdec_color(AW_window *aww,const char *action)
50// --------------------------------------------------------------------------------
51void aw_incdec_color(AW_window *aww,const char *action){
52    // action is sth like "r+" "b-" "g++" "r--"
53    AW_awar *awar = aww->get_root()->awar(aw_glob_font_awar_name);   
54    char *color = awar->read_string();
55    AW_BOOL err = AW_TRUE;
56   
57    fprintf(stderr, "current color is '%s'\n", color);
58   
59    if (color[0]=='#') {
60        int len = strlen(color);
61        if (len==4 || len==7) {
62            len = (len-1)/3; // len of one color channel (1 or 2)
63            gb_assert(len==1 || len==2);
64           
65            int diff = action[2]==action[1] ? 7 : 1;
66           
67            int channel[3];
68            for (int c=0; c<3; ++c) {
69                if (len==2) channel[c] = hex2dez(color[c*len+1])*16+hex2dez(color[c*len+2]);
70                else        channel[c] = hex2dez(color[c*len+1])*16;
71            }
72           
73            int rgb;
74            for (rgb=0; rgb<3;++rgb) {
75                if (action[0]=="rgb"[rgb] || action[0]=='a') {
76                    if (action[1]=='+') { channel[rgb] += diff; if (channel[rgb]>255) channel[rgb]=255; }
77                    else                { channel[rgb] -= diff; if (channel[rgb]<0)   channel[rgb]=0; }
78                }
79            }               
80           
81            sprintf(color, "#%2.2X%2.2X%2.2X", channel[0], channel[1], channel[2]);
82           
83            err = AW_FALSE;
84            awar->write_string(color); 
85        }
86    }
87   
88    if (err) {
89        aw_message("Only color values in #rgb- or #rrggbb-style \n"
90                   "can be modified by these buttons. \n"
91                   "Choose a color below and try again.");
92    }
93}
94
95#define AWAR_GLOBAL_COLOR_NAME "tmp/aw/color_label"
96
97void aw_create_color_chooser_window(AW_window *aww, const char *awar_name,const char *label_name){
98    AW_root *awr = aww->get_root();
99    static AW_window_simple *aws = 0;
100    if (!aws){
101        int x1, y1, x2, y2;
102       
103        awr->awar_string(AWAR_GLOBAL_COLOR_NAME);
104        aws = new AW_window_simple;
105        aws->init(awr, "COLORS", "COLORS", 400, 300);
106        aws->at(10, 10);
107        aws->auto_space(3, 3);
108        aws->callback     ( AW_POPDOWN );
109        aws->create_button( "CLOSE","CLOSE", "C" );       
110        aws->get_at_position(&x1, &y1); 
111        aws->at_newline();
112       
113        aws->button_length(20);
114        aws->create_button( "LABEL",AWAR_GLOBAL_COLOR_NAME, "A" );
115        aws->get_at_position(&x2, &y2); 
116        aws->at_newline();
117       
118        x1 = x1>x2 ? x1 : x2;
119       
120        int red,green,blue;
121       
122        for (int minus = 0; minus<=1; ++minus) {
123            aws->at(x1, minus==0 ? y1 : y2);               
124            for (int rgb=0; rgb<4; ++rgb) {
125                for (int big=0; big<=1; ++big) {
126                    aws->button_length(2+big);
127               
128                    char action[4] = "xxx";
129                    action[0] = "rgba"[rgb];
130                    action[1] = "+-"[minus];               
131                    action[2] = big ? action[1] : 0;
132                   
133                    char color_name[10];
134                    sprintf(color_name, "#%2.2X%2.2X%2.2X", rgb==0 ? 0xff : 0x55, rgb==1 ? 0xff : 0x55, rgb==2 ? 0xff : 0x55);
135                    aws->set_background(color_name);
136                    aws->callback((AW_CB1)aw_incdec_color, (AW_CL)strdup(action));
137                    aws->create_button(action, action+1);
138                }
139            }
140        }
141       
142        aws->button_length(2);
143        aws->at_newline();
144       
145        for (red = 0; red <= 255; red += 255/3){
146            for (green = 0; green <= 255; green += 255/3){
147                for (blue = 0; blue <= 255; blue += 255/3){
148                    char color_name[256];
149                    sprintf(color_name,"#%2.2X%2.2X%2.2X", red, green,blue);
150                    aws->set_background(color_name);
151                    aws->callback((AW_CB1)aw_set_color,(AW_CL)strdup(color_name));
152                    aws->create_button(color_name,"=");
153                }
154            }
155            aws->at_newline();
156        }
157        for (red = 0; red <= 256; red += 256/16){ // grey buttons
158            char color_name[256];
159            sprintf(color_name,"#%2.2X%2.2X%2.2X", (red==256)?255:red, (red>=256)?255:red,(red>=256)?255:red);
160            aws->set_background(color_name);
161            aws->callback((AW_CB1)aw_set_color,(AW_CL)strdup(color_name));
162            aws->create_button(color_name,"=");
163        }
164        aws->at_newline();     
165       
166        aws->window_fit();
167    }
168    awr->awar(AWAR_GLOBAL_COLOR_NAME)->write_string(label_name);
169    delete aw_glob_font_awar_name;
170    aw_glob_font_awar_name = strdup(awar_name);
171    aws->show();
172}
173
174
175
176void AW_preset_create_color_chooser(AW_window *aws, const char *awar, const char *label,int message_reload)
177{
178    if (message_reload){
179        aws->get_root()->awar(awar)->add_callback(aw_message_reload);
180    }
181    aws->callback((AW_CB)aw_create_color_chooser_window,(AW_CL)strdup(awar),(AW_CL)strdup(label));
182    aws->create_button("SELECT A COLOR","S");
183}
184
185void AW_preset_create_font_chooser(AW_window *aws, const char *awar, const char *label,int message_reload)
186{
187    if (message_reload){
188        aws->get_root()->awar(awar)->add_callback(aw_message_reload);
189    }
190
191    aws->create_option_menu( awar, label );
192    aws->insert_option        ( "5x8",  "5", "5x8" );
193    aws->insert_option        ( "6x10",  "6", "6x10" );
194    aws->insert_option        ( "7x13",  "7", "7x13" );
195    aws->insert_option        ( "7x13bold",  "7", "7x13bold" );
196    aws->insert_option        ( "8x13",  "8", "8x13" );
197    aws->insert_option        ( "8x13bold",  "8", "8x13bold" );
198    aws->insert_option        ( "9x15",  "9", "9x15" );
199    aws->insert_option        ( "9x15bold",  "9", "9x15bold" );
200    aws->insert_option        ( "helvetica-12",  "9", "helvetica-12" );
201    aws->insert_option        ( "helvetica-bold-12",  "9", "helvetica-bold-12" );
202    aws->insert_option        ( "helvetica-13",  "9", "helvetica-13" );
203    aws->insert_option        ( "helvetica-bold-13",  "9", "helvetica-bold-13" );
204    aws->insert_default_option( "other", "o", ""     );
205    aws->update_option_menu();
206}
207
208//PJ - vectorfont stuff - user may set a factor for global scaling
209void AW_preset_create_scale_chooser(AW_window *aws, char *awar, char *label)
210{
211    char buffer[2]; buffer[0] = label[0]; buffer[1] = 0;
212    aws->create_option_menu( awar, label, buffer );
213    aws->insert_option        ( "0.5",   " ", (float) 0.5);
214    aws->insert_option        ( "0.8",   "0", (float) 0.8);
215    aws->insert_option        ( "1.0",   "1", (float) 1.0);
216    aws->insert_default_option( "other", "o", (float) 1.0 );
217    aws->update_option_menu();
218}
219
220struct AW_MGC_awar_cb_struct;
221struct AW_MGC_cb_struct {       // one for each window
222    AW_MGC_cb_struct(AW_window *awi, 
223                     void (*g)(AW_window*,AW_CL ,AW_CL), AW_CL cd1i, AW_CL cd2i);
224    AW_window *aw;
225    void (*f)(AW_window*,AW_CL ,AW_CL);
226    AW_CL cd1;
227    AW_CL cd2;
228    char *window_awar_name;
229    AW_device *device;
230    struct AW_MGC_awar_cb_struct *next_drag;
231};
232
233AW_MGC_cb_struct::AW_MGC_cb_struct( AW_window *awi,
234                                    void (*g)(AW_window*,AW_CL,AW_CL), AW_CL cd1i, AW_CL cd2i ) {
235    memset((char*)this,0,sizeof(AW_MGC_cb_struct));
236    aw = awi;
237    f = g;
238    cd1 = cd1i;
239    cd2 = cd2i;
240    window_awar_name = GBS_string_2_key(awi->get_window_title());
241}
242
243struct AW_MGC_awar_cb_struct {  // one for each awar
244    struct AW_MGC_cb_struct *cbs;
245    const char *fontbasename;
246    const char *colorbasename;
247    short               gc;
248    short               gc_drag;
249    short               colorindex;
250    struct AW_MGC_awar_cb_struct *next;
251};
252
253struct aw_gc_manager {
254    const char *field;
255    const char *default_value;
256    struct aw_gc_manager *next;
257};
258
259void aw_gc_changed_cb(AW_root *awr,AW_MGC_awar_cb_struct *cbs, long mode)
260{
261    // mode == -1 -> no callback
262    char awar_name[256];
263    int font;
264    int size;
265
266    sprintf(awar_name,AWP_FONTNAME_TEMPLATE,cbs->cbs->window_awar_name,cbs->fontbasename);
267    font = (int)awr->awar(awar_name)->read_int();
268
269    sprintf(awar_name,AWP_FONTSIZE_TEMPLATE,cbs->cbs->window_awar_name,cbs->fontbasename);
270    size = (int)awr->awar(awar_name)->read_int();
271
272    cbs->cbs->device->set_font(cbs->gc,font,size);
273    cbs->cbs->device->set_font(cbs->gc_drag,font,size);
274    if (mode != -1)     cbs->cbs->f(cbs->cbs->aw,cbs->cbs->cd1,cbs->cbs->cd2);
275}
276
277void aw_gc_color_changed_cb(AW_root *root,AW_MGC_awar_cb_struct *cbs, long mode)
278{
279    char awar_name[256];
280    char *colorname;
281
282    sprintf(awar_name,AWP_COLORNAME_TEMPLATE,cbs->cbs->window_awar_name,cbs->colorbasename);
283    colorname = root->awar(awar_name)->read_string();
284    AW_color color = (AW_color)cbs->colorindex;
285    cbs->cbs->aw->alloc_named_data_color(color,colorname);
286    if (color != AW_DATA_BG) {
287        cbs->cbs->device->set_foreground_color(cbs->gc,color);
288        cbs->cbs->device->set_foreground_color(cbs->gc_drag,color);
289    }else{
290        struct AW_MGC_awar_cb_struct *acbs;
291        for (acbs = cbs->cbs->next_drag; acbs; acbs=acbs->next){
292            cbs->cbs->device->set_foreground_color(acbs->gc_drag,(AW_color)acbs->colorindex);
293        }
294    }
295    if (mode != -1)     {
296        cbs->cbs->f(cbs->cbs->aw,cbs->cbs->cd1,cbs->cbs->cd2);
297    }
298    delete colorname;
299}
300
301
302
303AW_gc_manager AW_manage_GC(AW_window *aww,
304                           AW_device *device, int base_gc, int base_drag, AW_GCM_AREA area,
305                           void (*changecb)(AW_window*,AW_CL,AW_CL), AW_CL cd1, AW_CL cd2,
306                           const char *default_background_color, 
307                           ...){
308    /*
309     *  Parameter:      aww:    base window
310     *                  device: screen device
311     *                  base_gc:        first gc number
312     *                  base_drag:      one after last gc
313     *                  area:           middle,top ...
314     *                  changecb:       cb if changed
315     *                  cd1,cd2:        free Parameters to changecb
316     *
317     *                  ...:        NULL terminated list of \0 terminated strings:
318     *
319     *                  first GC is fixed: '-background'
320     *
321     *                  optionsSTRING   name of GC and AWAR
322     *                  options:            #   fixed fonts only
323     *                                          -       no fonts
324     *                                          =       no color selector
325     *                                          +       append in same line
326     *
327     *                          $color at end of string => define default color value
328     */
329    AW_root *aw_root = aww->get_root();
330    AW_default aw_def = AW_ROOT_DEFAULT;
331    const char  *id;
332    va_list parg;
333    va_start(parg,default_background_color);
334    AW_font def_font;
335    struct aw_gc_manager *gcmgrlast=0,*gcmgr2=0,*gcmgrfirst=0;
336
337    AW_MGC_cb_struct *mcbs = new AW_MGC_cb_struct(aww,changecb,cd1,cd2);
338    mcbs->device = device;
339
340    int col = AW_WINDOW_BG;
341    if (area == AW_GCM_DATA_AREA) {
342        col = AW_DATA_BG;
343    }
344    AW_BOOL first = AW_TRUE; 
345
346    aww->main_drag_gc = base_drag;
347    gcmgrfirst = gcmgrlast = new aw_gc_manager;
348    gcmgrfirst->next =0;
349    gcmgrfirst->field = mcbs->window_awar_name;
350    const char *old_font_base_name = "default";
351   
352    //    char *awar_background_name = 0;
353   
354    char background[50];
355    gb_assert(default_background_color[0]);
356   
357    sprintf(background, "-background$%s", default_background_color);
358   
359    for (id = background; id; id=va_arg(parg,char *)){ // "-background$#3be"
360        AW_BOOL flag_fixed_fonts_only = AW_FALSE;
361        AW_BOOL flag_no_color_selector = AW_FALSE;
362        AW_BOOL flag_append_in_same_line = AW_FALSE;
363        AW_BOOL flag_no_fonts = AW_FALSE;
364       
365        AW_MGC_awar_cb_struct *acbs = 0;
366        {
367            char * id_copy = strdup(id);
368            char *color = strchr(id_copy, '$'); // search color def       
369            if (color) {
370                *color++ = 0;
371            }
372            else {
373                if (first) color = "white";
374                else color = "navy";
375            }
376       
377            gcmgr2 = new aw_gc_manager;
378            gcmgr2->field = strdup(id_copy);
379            gcmgr2->default_value = color ? strdup(color) : 0;
380            gcmgr2->next = 0;
381            gcmgrlast->next  = gcmgr2;
382            gcmgrlast = gcmgr2;
383           
384            acbs = new AW_MGC_awar_cb_struct; 
385            acbs->cbs = mcbs;
386            acbs->colorbasename = GBS_string_2_key(id_copy);
387            acbs->gc    = base_gc;
388            acbs->gc_drag       = base_drag;
389            if (!first) {
390                acbs->next = mcbs->next_drag;
391                mcbs->next_drag = acbs;
392            }
393       
394            int offset = 0;
395            while (1){
396                switch( id_copy[offset] ){
397                    case '#':   flag_fixed_fonts_only = AW_TRUE;            offset++; continue;
398                    case '-':   flag_no_fonts = AW_TRUE;                        offset++; continue;
399                    case '=':   flag_no_color_selector = AW_TRUE;           offset++; continue;
400                    case '+':   flag_append_in_same_line = AW_TRUE;     offset++; continue;
401                    default:    break;
402                }
403                break;
404            }
405       
406            free(id_copy); id_copy = 0;
407        }
408                       
409        if (flag_fixed_fonts_only) def_font = AW_LUCIDA_SANS_TYPEWRITER;
410        else    def_font = AW_LUCIDA_SANS;
411
412        if ((area != AW_GCM_DATA_AREA) || !first) {
413            device->new_gc(base_gc);
414            device->set_line_attributes(base_gc,0.0,AW_SOLID);
415            device->set_function(base_gc,AW_COPY);
416
417            device->new_gc(base_drag);
418            device->set_line_attributes(base_drag,0.0,AW_SOLID);
419            device->set_function(base_drag,AW_XOR);
420        }
421       
422        char awar_name[256]; memset(awar_name,0,256);
423        sprintf(awar_name,AWP_COLORNAME_TEMPLATE,mcbs->window_awar_name,acbs->colorbasename);
424        acbs->colorindex = col;
425       
426        //         if (first) {
427        //             awar_background_name = strdup(awar_name);
428           
429        //             fprintf(stderr, "%s=%s\n", awar_name, aw_root->awar_string(awar_name)->read_string());
430        //         }
431       
432        //         if (!first) {
433        //             aw_root->awar_string(awar_name,"yellow",aw_def);
434        //         }else{
435        //             aw_root->awar_string(awar_name,"navy",aw_def);
436        //         }
437       
438        aw_root->awar_string(awar_name, gcmgr2->default_value, aw_def);       
439        aw_root->awar(awar_name)->add_callback( (AW_RCB)aw_gc_color_changed_cb,(AW_CL)acbs,(AW_CL)0);
440
441        aw_gc_color_changed_cb(aw_root,acbs,-1);
442
443        if (!flag_no_fonts) {
444            old_font_base_name = acbs->fontbasename = acbs->colorbasename;
445        }else{
446            acbs->fontbasename = old_font_base_name;
447        }
448       
449        sprintf(awar_name,AWP_FONTNAME_TEMPLATE,mcbs->window_awar_name,acbs->fontbasename);
450        aw_root->awar_int(awar_name,def_font,aw_def)->add_callback((AW_RCB)aw_gc_changed_cb,(AW_CL)acbs,(AW_CL)0);
451       
452        sprintf(awar_name,AWP_FONTSIZE_TEMPLATE,   mcbs->window_awar_name,acbs->fontbasename);
453        aw_root->awar_int(awar_name,12,aw_def)->add_callback((AW_RCB)aw_gc_changed_cb,(AW_CL)acbs,(AW_CL)0);
454       
455        if (!first) {
456            aw_gc_changed_cb(aw_root,acbs,-1);
457            base_gc++;
458            base_drag++;
459        }
460        col++;
461        first = AW_FALSE;
462    }
463   
464    //     if (awar_background_name) {
465    //         char *content = aw_root->awar(awar_background_name)->read_string();
466    //         fprintf(stderr, "content='%s'\n", content);
467       
468//         AW_awar *awar = aw_root->awar(awar_background_name);
469//         awar->write_string("#000");
470//         awar->write_string("#f00"); // rot zum testen @@@
471       
472//         free(awar_background_name);
473//     }
474   
475    return (AW_gc_manager)gcmgrfirst;
476}
477
478AW_window *AW_create_gc_window(AW_root * aw_root, AW_gc_manager id_par)
479{
480    //crazy simple function
481    // The window has already been created
482    AW_window_simple * aws = new AW_window_simple;
483    aws->init(aw_root, "PROPS_GC", "COLORS AND FONTS", 400, 300);
484
485    aw_gc_manager  *gcmgr = (aw_gc_manager *) id_par;
486
487    aws->at(10, 10);
488    aws->auto_space(5, 5);
489
490    aws->callback((AW_CB0) AW_POPDOWN);
491    aws->create_button("CLOSE","CLOSE", "C");
492    aws->at_newline();
493    AW_BOOL         first = AW_TRUE;
494    const char *window_awar_name = gcmgr->field;
495
496    for (gcmgr = gcmgr->next; gcmgr; gcmgr = gcmgr->next) {
497        const char *id = gcmgr->field;
498       
499        AW_BOOL flag_fixed_fonts_only = AW_FALSE;
500        AW_BOOL flag_no_color_selector = AW_FALSE;
501        AW_BOOL flag_append_in_same_line = AW_FALSE;
502        AW_BOOL flag_no_fonts = AW_FALSE;
503        while (1){
504            switch( id[0] ){
505                case '#':       flag_fixed_fonts_only = AW_TRUE;        id++; continue;
506                case '-':       flag_no_fonts = AW_TRUE;                id++; continue;
507                case '=':       flag_no_color_selector = AW_TRUE;       id++; continue;
508                case '+':       flag_append_in_same_line = AW_TRUE;     id++; continue;
509                default:        break;
510            }
511            break;
512        }
513        char           *fontbasename = GBS_string_2_key(id);
514        char            awar_name[256];
515        sprintf(awar_name, AWP_COLORNAME_TEMPLATE,window_awar_name, fontbasename);
516        aws->label_length(15);
517
518
519        aws->label(id);
520        if (!flag_no_color_selector){
521            aws->button_length(2);
522            AW_preset_create_color_chooser(aws, awar_name, id);
523        }
524        aws->create_input_field(awar_name, 10);
525
526        if (!flag_no_fonts) {
527
528            sprintf(awar_name, AWP_FONTNAME_TEMPLATE,window_awar_name, fontbasename);
529            aws->label_length(5);
530            aws->create_option_menu(awar_name, "Font", 0);{
531                int font_nr;
532                const char *font_string;
533                for (font_nr = 0;; font_nr++) {
534                    font_string = aw_root->font_2_ascii((AW_font) font_nr);
535                    if (!font_string)
536                        break;
537       
538                    if (flag_fixed_fonts_only && aw_root->font_2_xfig((AW_font) font_nr) >= 0)
539                        continue;
540                    aws->insert_option(font_string, 0, (int) font_nr);
541                }
542                aws->update_option_menu();
543            }
544
545            sprintf(awar_name, AWP_FONTSIZE_TEMPLATE,window_awar_name, fontbasename);
546            aws->label_length(5);
547
548            aws->create_option_menu(awar_name, "size", 0);
549            int             size;
550            char            ssize[20];
551            for (size = 2; size < 25; size++) {
552                sprintf(ssize, "%i", size);
553                aws->insert_option(ssize, 0, (int) size);
554            }
555            aws->update_option_menu();
556
557        }
558        if (!flag_append_in_same_line)  aws->at_newline();
559        first = AW_FALSE;
560        delete          fontbasename;
561    }
562    aws->window_fit();
563    return (AW_window *) aws;
564}
565#endif //ifdef _ARB_WINDOW
566
567
568#ifdef _ARB_AWT 
569// callback to reset to default font
570void awt_xfig_font_resetfont_cb(AW_window *aws){
571    AW_root *aw_root = aws->get_root();
572    aw_root->awar("vectorfont/file_name")->write_string("lib/pictures/fontgfx.vfont");
573    //AW_POPDOWN(aws);
574}
575
576void awt_xfig_font_create_filerequest(AW_window *aw) {
577    static AW_window_simple *aws = 0;
578    AW_root *aw_root = aw->get_root();
579
580    if (!aws) {
581        // called *ONCE* to open the window
582        aws = new AW_window_simple;
583        aws->init( aw_root, "SELECT_VECTORFONT", "Select Xfig Vectorfont Resource", 10, 10 );
584        aws->load_xfig("fontgfx_request.fig");
585        aws->at("close");aws->callback((AW_CB0)AW_POPDOWN);
586        aws->create_button("CLOSE","CLOSE","C");
587        aws->at("reset");aws->callback((AW_CB0)awt_xfig_font_resetfont_cb);
588        aws->create_button("RESET","RESET","R");
589        // AWT_sel_boxes.cxx
590        awt_create_selection_box((AW_window *)aws,"vectorfont","","ARBHOME");
591    }
592    aw_root->awar("vectorfont/file_name")->write_string(aw_root->vectorfont_name);
593    aws->show();               
594}
595AW_window *AWT_preset_window( AW_root *root ) 
596#else
597    AW_window *AW_preset_window( AW_root *root )
598#endif
599{   
600    AW_window_simple *aws = new AW_window_simple;
601    const int   tabstop = 400;
602    aws->init( root, "PROPS_FRAME", "WINDOW_PROPERTIES", 400, 300 );
603
604    aws->label_length( 25 );
605    aws->button_length( 20 );
606
607    aws->at           ( 10,10 );
608    aws->auto_space(10,10);
609    aws->callback     ( AW_POPDOWN );
610    aws->create_button( "CLOSE","CLOSE", "C" );
611
612    aws->at_newline();
613
614    //PJ vectorfont stuff
615    aws->label("Vectorfont Resource");
616#ifdef _ARB_AWT 
617    aws->callback( (AW_CB0) awt_xfig_font_create_filerequest); 
618#endif
619    aws->create_button( "SELECT VECTORFONT", "Vectorfont Select", "V" );
620    aws->at_x(tabstop);
621    aws->create_input_field( "vectorfont/file_name",20);
622    aws->at_newline();
623
624    AW_preset_create_font_chooser(aws,"window/font", "Main Menu Font", 1);
625    aws->at_x(tabstop);
626    aws->create_input_field( "window/font", 12 );
627    aws->at_newline();
628
629    AW_preset_create_color_chooser(aws,"window/background", "Window Background", 1 );
630    aws->at_x(tabstop);
631    aws->create_input_field( "window/background", 12 );
632    aws->at_newline();
633
634    AW_preset_create_color_chooser(aws,"window/foreground", "Window Foreground", 1 );
635    aws->at_x(tabstop);
636    aws->create_input_field( "window/foreground", 12 );
637    aws->at_newline();
638
639
640    AW_preset_create_color_chooser(aws,"window/color_1", "COLOR 1", 1 );
641    aws->at_x(tabstop);
642    aws->create_input_field( "window/color_1", 12 );
643    aws->at_newline();
644
645    AW_preset_create_color_chooser(aws,"window/color_2", "COLOR 2", 1 );
646    aws->at_x(tabstop);
647    aws->create_input_field( "window/color_2", 12 );
648    aws->at_newline();
649
650    AW_preset_create_color_chooser(aws,"window/color_3", "COLOR 3", 1 );
651    aws->at_x(tabstop);
652    aws->create_input_field( "window/color_3", 12 );
653    aws->at_newline();
654
655
656    aws->window_fit();
657    return (AW_window *)aws;
658
659}
Note: See TracBrowser for help on using the repository browser.