#ifndef __AES_XTND_H #define __AES_XTND_H #if ( WDLG_DIRECT_CALL == 0 ) /****** Wdialog definitions ***********************************************/ typedef void *DIALOG; typedef short (__Cdecl *HNDL_OBJ)( DIALOG *dialog, EVNT *events, short obj, short clicks, void *data ); DIALOG *G_decl wdlg_create ( HNDL_OBJ handle_exit, OBJECT *tree, void *user_data, short code, void *data, short flags dglob ); short G_decl wdlg_open ( DIALOG *dialog, char *title, short kind, short x, short y, short code, void *data dglob ); #if MT_OLDWAY short G_decl wdlg_close ( DIALOG *dialog dglob ); #else short G_decl wdlg_close ( DIALOG *dialog, short *x, short *y dglob ); #endif short G_decl wdlg_delete ( DIALOG *dialog dglob ); short G_decl wdlg_get_tree ( DIALOG *dialog, OBJECT **tree, GRECT *r dglob ); short G_decl wdlg_get_edit ( DIALOG *dialog, short *cursor dglob ); void *G_decl wdlg_get_udata ( DIALOG *dialog dglob ); short G_decl wdlg_get_handle ( DIALOG *dialog dglob ); short G_decl wdlg_set_edit ( DIALOG *dialog, short obj dglob ); short G_decl wdlg_set_tree ( DIALOG *dialog, OBJECT *tree dglob ); short G_decl wdlg_set_size ( DIALOG *dialog, GRECT *size dglob ); short G_decl wdlg_set_iconify ( DIALOG *dialog, GRECT *g, char *title, OBJECT *tree, short obj dglob ); short G_decl wdlg_set_uniconify ( DIALOG *dialog, GRECT *g, char *title, OBJECT *tree dglob ); short G_decl wdlg_evnt ( DIALOG *dialog, EVNT *events dglob ); void G_decl wdlg_redraw ( DIALOG *dialog, GRECT *rect, short obj, short depth dglob ); /* Definitionen fr */ #define WDLG_BKGD 1 /* Hintergrundbedienung zulassen */ /* Funktionsnummern fr bei handle_exit(...) */ #define HNDL_INIT -1 /* Dialog initialisieren */ #define HNDL_MESG -2 /* Dialog initialisieren */ #define HNDL_CLSD -3 /* Dialogfenster wurde geschlossen */ #define HNDL_OPEN -5 /* Dialog-Initialisierung abschliežen (zweiter Aufruf am Ende von wdlg_init) */ #define HNDL_EDIT -6 /* Zeichen fr ein Edit-Feld berprfen */ #define HNDL_EDDN -7 /* Zeichen wurde ins Edit-Feld eingetragen */ #define HNDL_EDCH -8 /* Edit-Feld wurde gewechselt */ #define HNDL_MOVE -9 /* Dialog wurde verschoben */ #define HNDL_TOPW -10 /* Dialog-Fenster ist nach oben gekommen */ #define HNDL_UNTP -11 /* Dialog-Fenster ist nicht aktiv */ /****** Listbox definitions ***********************************************/ typedef void *LIST_BOX; typedef void (__Cdecl *SLCT_ITEM)( LIST_BOX *box, OBJECT *tree, struct _lbox_item *item, void *user_data, short obj_index, short last_state ); typedef short (__Cdecl *SET_ITEM)( LIST_BOX *box, OBJECT *tree, struct _lbox_item *item, short obj_index, void *user_data, GRECT *rect, short first ); typedef struct _lbox_item { struct _lbox_item *next; /* Zeiger auf den n„chsten Eintrag in der Liste */ short selected; /* gibt an, ob das Objekt selektiert ist */ short data1; /* Daten fr das Programm... */ void *data2; void *data3; } LBOX_ITEM; #define LBOX_VERT 1 /* Listbox mit vertikalem Slider */ #define LBOX_AUTO 2 /* Auto-Scrolling */ #define LBOX_AUTOSLCT 4 /* automatische Darstellung beim Auto-Scrolling */ #define LBOX_REAL 8 /* Real-Time-Slider */ #define LBOX_SNGL 16 /* nur ein anw„hlbarer Eintrag */ #define LBOX_SHFT 32 /* Mehrfachselektionen mit Shift */ #define LBOX_TOGGLE 64 /* Status eines Eintrags bei Selektion wechseln */ #define LBOX_2SLDRS 128 /* Listbox hat einen hor. und einen vertikalen Slider */ /* #defines fr Listboxen mit nur einem Slider */ #define lbox_get_visible \ lbox_get_avis #define lbox_get_first \ lbox_get_afirst #define lbox_set_slider \ lbox_set_asldr #define lbox_scroll_to \ lbox_ascroll_to LIST_BOX *G_decl (lbox_create)( OBJECT *tree, SLCT_ITEM slct, SET_ITEM set, LBOX_ITEM *items, short visible_a, short first_a, short *ctrl_objs, short *objs, short flags, short pause_a, void *user_data, void *dialog, short visible_b, short first_b, short entries_b, short pause_b dglob ); void G_decl lbox_update ( LIST_BOX *box, GRECT *rect dglob ); short G_decl lbox_do ( LIST_BOX *box, short obj dglob ); short G_decl lbox_delete ( LIST_BOX *box dglob ); short G_decl lbox_cnt_items ( LIST_BOX *box dglob ); OBJECT *G_decl lbox_get_tree ( LIST_BOX *box dglob ); short G_decl lbox_get_avis ( LIST_BOX *box dglob ); void * G_decl lbox_get_udata ( LIST_BOX *box dglob ); short G_decl lbox_get_afirst ( LIST_BOX *box dglob ); short G_decl lbox_get_slct_idx ( LIST_BOX *box dglob ); LBOX_ITEM * G_decl lbox_get_items ( LIST_BOX *box dglob ); LBOX_ITEM * G_decl lbox_get_item ( LIST_BOX *box, short n dglob ); LBOX_ITEM * G_decl lbox_get_slct_item ( LIST_BOX *box dglob ); short G_decl lbox_get_idx ( LBOX_ITEM *items, LBOX_ITEM *search dglob ); short G_decl lbox_get_bvis ( LIST_BOX *box dglob ); short G_decl lbox_get_bentries ( LIST_BOX *box dglob ); short G_decl lbox_get_bfirst ( LIST_BOX *box dglob ); void G_decl lbox_set_asldr ( LIST_BOX *box, short first, GRECT *rect dglob ); void G_decl lbox_set_items ( LIST_BOX *box, LBOX_ITEM *items dglob ); void G_decl lbox_free_items ( LIST_BOX *box dglob ); void G_decl lbox_free_list ( LBOX_ITEM *items dglob ); void G_decl lbox_ascroll_to ( LIST_BOX *box, short first, GRECT *box_rect, GRECT *slider_rect dglob ); void G_decl lbox_set_bsldr ( LIST_BOX *box, short first, GRECT *rect dglob ); void G_decl lbox_set_bentries ( LIST_BOX *box, short entries dglob ); void G_decl lbox_bscroll_to ( LIST_BOX *box, short first, GRECT *box_rect, GRECT *slider_rect dglob ); /****** font selector definitions ***********************************************/ typedef void *FNT_DIALOG; typedef void (__Cdecl *UTXT_FN)( short x, short y, short *clip_rect, long id, long pt, long ratio, char *string ); typedef struct _fnts_item { struct _fnts_item *next; /* Zeiger auf den n„chsten Font oder 0L (Ende der Liste) */ UTXT_FN display; /* Zeiger auf die Anzeige-Funktion fr applikationseigene Fonts */ long id; /* ID des Fonts, >= 65536 fr applikationseigene Fonts */ short index; /* Index des Fonts (falls VDI-Font) */ char mono; /* Flag fr „quidistante Fonts */ char outline; /* Flag fr Vektorfont */ short npts; /* Anzahl der vordefinierten Punkth”hen */ char *full_name; /* Zeiger auf den vollst„ndigen Namen */ char *family_name; /* Zeiger auf den Familiennamen */ char *style_name; /* Zeiger auf den Stilnamen */ char *pts; /* Zeiger auf Feld mit Punkth”hen */ long reserved[4]; /* reserviert, mssen 0 sein */ } FNTS_ITEM; /* Definitionen fr bei fnts_create() */ #define FNTS_BTMP 1 /* Bitmapfonts anzeigen */ #define FNTS_OUTL 2 /* Vektorfonts anzeigen */ #define FNTS_MONO 4 /* „quidistante Fonts anzeigen */ #define FNTS_PROP 8 /* proportionale Fonts anzeigen */ /* Definitionen fr bei fnts_create() */ #define FNTS_3D 1 /* 3D-Design benutzen */ /* Definitionen fr bei fnts_open() */ #define FNTS_SNAME 0x01 /* Checkbox fr die Namen selektieren */ #define FNTS_SSTYLE 0x02 /* Checkbox fr die Stile selektieren */ #define FNTS_SSIZE 0x04 /* Checkbox fr die H”he selektieren */ #define FNTS_SRATIO 0x08 /* Checkbox fr das Verh„ltnis Breite/H”he selektieren */ #define FNTS_CHNAME 0x0100 /* Checkbox fr die Namen anzeigen */ #define FNTS_CHSTYLE 0x0200 /* Checkbox fr die Stile anzeigen */ #define FNTS_CHSIZE 0x0400 /* Checkbox fr die H”he anzeigen */ #define FNTS_CHRATIO 0x0800 /* Checkbox fr das Verh„ltnis Breite/H”he anzeigen */ #define FNTS_RATIO 0x1000 /* Verh„ltnis Breite/H”he einstellbar */ #define FNTS_BSET 0x2000 /* Button "setzen" anw„hlbar */ #define FNTS_BMARK 0x4000 /* Button "markieren" anw„hlbar */ /* Definitionen fr