Main Page   Modules   Class Hierarchy   Data Structures   File List   Data Fields   Globals  

mguidefs.h

Go to the documentation of this file.
00001 /*
00002  * This file is part of the MGUI (Morello Graphic User Interface)
00003  * library. Copyright 1995-2003 Vincenzo Morello.
00004  *
00005  * Contains all MGUI macro definitions and typedefs
00006  */
00007 
00008 #ifndef _MGUIDEFS_H
00009 #define _MGUIDEFS_H
00010 
00011 #define MGUI_RELEASE    0x403
00012 
00013 /*
00014  * Auto environment detection (if not set):
00015  * BC_MGUI (DOS BGI), DJGPP_MGUI, W4GW_MGUI, WGRX_MGUI and WIN_MGUI
00016  * (both 16 & 32 bit) are detected.
00017  * WIN32 and __WIN32__ are set when compiling for Win32, Win 95 and NT.
00018  * X11_MGUI is set by default. LIBGRX must be set to compile in LINUX
00019  * console (svgalib)
00020  */
00021 
00022 #if !defined DJGPP_MGUI && !defined X11_MGUI && !defined BC_MGUI && !defined WIN_MGUI && !defined WGRX_MGUI && !defined W4GW_MGUI
00023         #if defined __TURBOC__
00024                 #if defined __DPMI32__
00025                         #define BGI_MGUI
00026                 #elif defined __DPMI16__
00027                         #define BGI_MGUI
00028                 #elif defined _Windows
00029                         #define WIN_MGUI
00030                         #if defined __WIN32__ && !defined WIN32
00031                                 #define WIN32
00032                         #endif
00033                 #else
00034                         #define BGI_MGUI
00035                         #define BC_MGUI
00036                 #endif
00037         #elif defined __CYGWIN32__
00038                 #define WIN_MGUI
00039                 #define WIN32
00040                 #define __WIN32__
00041                 #define __GNUWIN32__
00042         #elif defined __MINGW32__
00043                 #define WIN_MGUI
00044                 #if !defined WIN32
00045                                 #define WIN32
00046                 #endif
00047                 #define __GNUWIN32__
00048         #elif defined __LCC__
00049                 #define WIN_MGUI
00050                 #define __WIN32__
00051         #elif defined __RSXNT__
00052                 #define WIN_MGUI
00053                 #define WIN32
00054                 #define __GNUWIN32__
00055         #elif defined __GO32__
00056                 #if defined __WIN32__
00057                         #ifndef WIN32
00058                                 #define WIN32
00059                         #endif
00060                         #define WIN_MGUI
00061                 #else
00062                         #define DJGPP_MGUI
00063                         #define LIBGRX
00064                 #endif
00065         #elif defined _WINDOWS
00066                 #define WIN_MGUI
00067                 #ifdef _WINNT
00068                         #define __WIN32__
00069                 #endif
00070         #elif defined __WATCOMC__
00071                 #ifdef __NT__
00072                         #define __WIN32__
00073                         #define WIN_MGUI
00074                 #elif defined __WINDOWS__
00075                         #define WIN_MGUI
00076                 #elif defined LIBGRX
00077                         #define WGRX_MGUI
00078                 #elif defined METAWINDOW
00079                         #define WMW_MGUI
00080                 #else 
00081                         #define W4GW_MGUI
00082                 #endif
00083         #else
00084                 #ifndef LIBGRX
00085                         #define X11_MGUI
00086                 #endif
00087                 #define UNIX
00088         #endif
00089 #endif
00090 
00091 #if defined __TURBOC__ || defined _MSC_VER || defined __WATCOMC__ || defined __LCC__
00092 #include <time.h>
00093 #elif !defined WIN_MGUI
00094 #include <sys/time.h>
00095 #endif
00096 
00097 /*
00098  * This include file contains key codes definition
00099  */
00100 #include "keycodes.h"
00101 
00102 #ifdef UNIX
00103 #define DIR_SEP   '/'
00104 #else
00105 #define DIR_SEP   '\\'
00106 #endif
00107 
00108 #if defined __GNUC__ && !defined WIN32
00109 #define stricmp strcasecmp
00110 #endif
00111 
00126 struct MPOINT {
00127 #if defined X11_MGUI
00128         short x;
00129         short y;
00130 #else
00131         int x; // point's x coordinate
00132         int y; // point's y coordinate
00133 #endif
00134 };
00135 typedef struct MPOINT MPOINT;
00136 
00137 /*
00138  * Integer size typedefs
00139  */
00140 #ifdef X11_MGUI
00141 #include "X11/X.h"
00142 #include <X11/Xmd.h>
00143 #else
00144 #if !defined _BASETSD_H_ && !defined _BASETSD_H
00145         typedef long            INT32;
00146 #endif
00147         typedef short           INT16;
00148         typedef char            INT8;
00149         typedef unsigned long   CARD32;
00150         typedef unsigned short  CARD16;
00151         typedef unsigned char   CARD8;
00152 #endif /* X11_MGUI */
00153 
00157 typedef int MTFont;
00158 
00162 typedef int MTCursor;
00163 
00165 typedef CARD32 MTColor;
00166 
00167 /* Transparent color definition */
00168 #define NOCOLOR ((MTColor)~0)
00169 
00170 #if !defined _MGUI_OBJECT_H
00171 
00174 typedef void *MOBJECT;
00175 
00176 #endif
00177 
00179 struct MRECT {
00180         int x;
00181         int y;
00182         int w;
00183         int h;
00184 };
00185 typedef struct MRECT MRECT;
00186 
00188 struct RLIST {
00189         MRECT r;
00190         struct RLIST *next;
00191 };
00192 typedef struct RLIST RLIST;
00193 
00194 /*
00195  * Window type definition.
00196  * Window typedef form X11 is used as is (not redefined).
00197  */
00198 #if !defined(X11_MGUI) && !defined(WIN_MGUI)
00199 
00200 /* Window structure for DOS and Linux/console environments */
00201 struct _Window { MRECT r; RLIST *rl; };
00202 
00203 /* Window identifier for DOS and Linux/console environments */
00204 typedef struct _Window *Window;
00205 
00206 #elif defined WIN_MGUI
00207 
00208 /* Window identifier under Windows */
00209 typedef void *Window;
00210 
00211 #endif
00212 
00213 
00214 
00215 #ifndef True
00216 
00217 #define True    1
00218 #define False   0
00219 
00220 #endif
00221 
00235 
00236 #define CS_LIGHTER      140     
00237 
00238 #define CS_DARKER       60
00239 
00240 #define CS_DARK         85
00241 
00242 #define CS_LIGHT        115
00243 
00244 
00251 #define E_NO_EVENT              0
00252 #define E_KEY_PRESS             1
00253 #define E_BUTTON_PRESS          2
00254 #define E_BUTTON_RELEASE        3
00255 #define E_MOTION                4
00256 #define E_WINDOW_ENTER          5
00257 #define E_WINDOW_EXIT           6
00258 #define E_EXPOSE                7
00259 #define E_DESTROY               8
00260 #define E_MAP                   9
00261 #define E_UNMAP                 10
00262 #define E_AUTOSIZE              11
00263 #define E_RESIZE                12
00264 #define E_MOVE                  13
00265 #define E_SELECT                14
00266 #define E_DESELECT              15
00267 #define E_CONFIGURE             16
00268 #define E_PARENT_MAP            17
00269 #define E_PARENT_UNMAP          18
00270 #define E_SET_COLOR             19
00271 #define E_SET_SHADOW            20
00272 #define E_SET_TEXT              21
00273 #define E_GET_TEXT              22
00274 #define E_WM_CLOSE              23
00275 #define E_SET_SENS              24
00276 #define E_SET_PARENT_SENS       25
00277 #define E_GRAB_LOSE             26
00278 #define E_SET_BG_IMAGE          27
00279 #define E_MOUSE_WHEEL           28
00280 #define E_SET_TRANSPARENCY      29
00281 #define E_PARENT_CHANGED        30
00282 
00283 
00292 #define EM_NO_EVENT             0L
00293 #define EM_KEY_PRESS            1L
00294 #define EM_BUTTON_PRESS     (1L<<1)
00295 #define EM_BUTTON_RELEASE   (1L<<2)
00296 #define EM_MOTION           (1L<<3)
00297 #define EM_WINDOW_ENTER     (1L<<4)
00298 #define EM_WINDOW_EXIT      (1L<<5)
00299 #define EM_EXPOSE           (1L<<6)
00300 #define EM_DESTROY          (1L<<7)
00301 #define EM_MAP              (1L<<8)
00302 #define EM_UNMAP            (1L<<9)
00303 #define EM_AUTOSIZE         (1L<<10)
00304 #define EM_RESIZE           (1L<<11)
00305 #define EM_MOVE             (1L<<12)
00306 #define EM_SELECT           (1L<<13)
00307 #define EM_DESELECT         (1L<<14)
00308 #define EM_CONFIGURE        (1L<<15)
00309 #define EM_PARENT_MAP       (1L<<16)
00310 #define EM_PARENT_UNMAP     (1L<<17)
00311 #define EM_SET_COLOR        (1L<<18)
00312 #define EM_SET_SHADOW       (1L<<19)
00313 #define EM_SET_TEXT         (1L<<20)
00314 #define EM_GET_TEXT         (1L<<21)
00315 #define EM_WM_CLOSE         (1L<<22)
00316 #define EM_SET_SENS         (1L<<23)
00317 #define EM_SET_PARENT_SENS  (1L<<24)
00318 #define EM_GRAB_LOSE        (1L<<25)
00319 #define EM_SET_BG_IMAGE     (1L<<26)
00320 #define EM_MOUSE_WHEEL      (1L<<27)
00321 #define EM_SET_TRANSPARENCY (1L<<28)
00322 #define EM_PARENT_CHANGED   (1L<<29)
00323 
00324 
00325 #if !defined X11_MGUI || defined DOXYGEN
00326 
00333 #define Button1Mask             (1<<8)
00334 #define Button2Mask             (1<<9)
00335 #define Button3Mask             (1<<10)
00336 
00337 
00346 #define Button1                 1
00347 #define Button2                 2
00348 #define Button3                 3
00349 
00350 
00359 #define ShiftMask       (1<<0)
00360 #define LockMask        (1<<1)
00361 #define ControlMask     (1<<2)
00362 #ifdef DOXYGEN
00363 #define AltMask         (1<<3)
00364 #endif
00365 
00366 
00367 #endif
00368 
00369 #define AltMask         (1<<3)
00370 
00374 #if defined BC_MGUI || defined __DPMI16__ || defined WIN_MGUI && !defined __WIN32__ && !defined _MSC_VER
00375 typedef unsigned char huge *IMAGE_DATA;
00376 #else
00377 typedef unsigned char *IMAGE_DATA;
00378 #endif
00379 
00387 struct IMAGE_CMAP {
00389         unsigned char blue;
00391         unsigned char green;
00393         unsigned char red;
00400         unsigned char index;
00401 };
00402 typedef struct IMAGE_CMAP IMAGE_CMAP;
00403 
00413 struct MIMAGE_DESCR {
00416         unsigned int installed;
00418         unsigned int ncolors;
00420         unsigned int nplanes;
00422         unsigned int img_w;
00424         unsigned int img_h;
00426         unsigned int row_w;
00428         CARD32 pixmap_id;
00430         IMAGE_CMAP *colormap;
00432         IMAGE_DATA data;
00434         IMAGE_DATA backup_data;
00436         IMAGE_DATA alpha;
00438         char *fname;
00440                 struct MIMAGE_DESCR *mask;
00442         CARD32 flags;
00443 };
00444 typedef struct MIMAGE_DESCR MIMAGE_DESCR;
00445 
00446 typedef MIMAGE_DESCR *MIMAGE;
00447 
00479 
00487 struct MAnyWindowEvent {
00489         int type;
00491         Window window;
00492 };
00493 typedef struct MAnyWindowEvent MAnyWindowEvent;
00494 
00509 struct MKeyEvent {
00511         int type;
00513         Window window;
00515         unsigned int state;
00517         unsigned int keycode;
00518 };
00519 typedef struct MKeyEvent MKeyEvent;
00527 typedef MAnyWindowEvent MWMCloseEvent;
00528 
00538 typedef MAnyWindowEvent MFocusEvent;
00539 
00550 typedef MAnyWindowEvent MUnmapEvent;
00551 
00562 typedef MAnyWindowEvent MMapEvent;
00563 
00564 /*
00565  * Input Focus Gaining Event.
00566  * The Window Manager uses this event to notify the program that a given
00567  * window is gaining the input focus. The same event is then propagated
00568  * by the library to the MGui object actually gaining the keyboard focus.
00569  */
00570 typedef MAnyWindowEvent MSelectEvent;
00571 
00572 /*
00573  * Input Focus Losing Event.
00574  * The Window Manager uses this event to notify the program that a given
00575  * window is losing the input focus. The same event is then propagated
00576  * by the library to the MGui object actually gaining the keyboard focus.
00577  */
00578 typedef MAnyWindowEvent MDeSelectEvent;
00579 
00586 struct MMouseEvent {
00588         int type;
00590         Window window;
00592         int x, y;
00594         int x_root, y_root;
00596         unsigned int state;
00598         unsigned int button;
00600         int scroll_delta;
00601 };
00602 typedef struct MMouseEvent MMouseEvent;
00603 
00614 struct MExposeEvent {
00616         int type;
00618         Window window;
00620         int x_off, y_off;
00622         int x, y;
00624         int width, height;
00626         int parent_drawn;
00627 };
00628 typedef struct MExposeEvent MExposeEvent;
00629 
00640 struct MResizeEvent{
00642         int type;
00644         Window window;
00646         int width, height;
00647 };
00648 typedef struct MResizeEvent MResizeEvent;
00649 
00659 typedef struct {
00661         int type;
00663         Window window;
00665         int x, y;
00667         int width, height;
00668 } MConfigureEvent;
00669 
00679 typedef struct {
00681         int type;
00683         Window window;
00685         int x, y;
00686 } MMoveEvent;
00687 
00688 /* misc events (related to Objects rather than windows). */
00689 
00703 typedef struct {
00705         int type;
00707         int sensitive;
00708 } MSetSensitivity;
00709 
00718 typedef struct {
00720         int type;
00722         char *text;
00723 } MSetGetTextEvent;
00724 
00736 typedef struct {
00738         int type;
00740         MTColor bgc;
00742         MTColor fgc;
00743 } MSetColorEvent;
00744 
00753 typedef struct {
00755         int type;
00757         int shadow;
00759         int in_thick;
00761         int out_thick;
00762 } MSetShadowEvent;
00763 
00773 typedef struct {
00775         int type;
00777         MIMAGE img;
00779         CARD8  mode;
00780 } MSetBGImageEvent;
00781 
00791 typedef struct {
00793         int type;
00795         CARD8  level;
00796 } MSetTransparencyEvent;
00797 
00802 union MEvent {
00803         int type;
00804         MAnyWindowEvent any_window_event;
00805         MKeyEvent key;
00806         MMouseEvent mouse;
00807         MExposeEvent expose;
00808         MWMCloseEvent wm_close;
00809         MFocusEvent focus;
00810         MUnmapEvent unmap;
00811         MMapEvent map;
00812         MConfigureEvent configure;
00813         MResizeEvent resize;
00814         MMoveEvent move;
00815         MSetColorEvent setcolor;
00816         MSetShadowEvent setshadow;
00817         MSetGetTextEvent setgettext;
00818         MSetSensitivity setsensitivity;
00819                 MSetBGImageEvent setbgimage;
00820                 MSetTransparencyEvent settransparency;
00821 };
00822 typedef union MEvent MEvent;
00824 
00825 
00834 #define MC_NONE       (MTCursor)0
00835 #define MC_UL_ARROW   (MTCursor)1
00836 #define MC_CROSSHAIR  (MTCursor)2
00837 #define MC_HOURGLASS  (MTCursor)3
00838 #define MC_HSIZE          (MTCursor)4
00839 #define MC_VSIZE          (MTCursor)5
00840 #define MC_NWSIZE         (MTCursor)6
00841 #define MC_NESIZE         (MTCursor)7
00842 
00843 
00851 #define DEFAULT_FONT    0
00852 #define FIXED_SMALL     1
00853 #define FIXED_MEDIUM    2
00854 #define FIXED_LARGE     3
00855 #define HELV_SMALL      4
00856 #define HELV_MEDIUM     5
00857 #define TIMES_SMALL     6
00858 #define TIMES_MEDIUM    7
00859 #define HELV_LARGE      8
00860 #define TIMES_LARGE     9
00861 
00862 
00867 #define SMALL_FONT      FIXED_SMALL
00868 #define MEDIUM_FONT     FIXED_MEDIUM
00869 #define LARGE_FONT      FIXED_LARGE
00870 #define TIMES_N_FONT    TIMES_SMALL
00871 #define TIMES_L_FONT    TIMES_MEDIUM
00872 #define HELV_N_FONT     HELV_SMALL
00873 #define HELV_L_FONT     HELV_MEDIUM
00874 
00889 #define LEFT_ALIGN      0
00890 #define RIGHT_ALIGN     1
00891 #define CENTER_ALIGN    2
00892 #define TOP_ALIGN       3
00893 #define BOTTOM_ALIGN    4
00894 #define UNDEF_ALIGN     0x3f
00895 
00896 
00902 #define MO_FONT         0x1
00903 #define MO_FGCOLOR      0x2
00904 #define MO_BGCOLOR      0x4
00905 #define MO_SHADOW       0x8
00906 #define MO_TEXT         0x10
00907 #define MO_BG_IMAGE     0x20
00908 #define MO_TRANSPARENCY 0x40
00909 #define MO_COLOR        (MO_FGCOLOR|MO_BGCOLOR)
00910 #define MO_ALL          0x7f
00911 
00912 
00919 #define BI_TILED        0
00920 #define BI_CENTERED     1
00921 #define BI_SIZE_FORCING 2       /* Object size is forced to be equal to image size */
00922 
00923 
00924 
00930 #define WS_NONE         0
00931 #define WS_SHADOW_OUT   1
00932 #define WS_SHADOW_IN    2
00933 #define WS_ETCHED_IN    3
00934 #define WS_ETCHED_OUT   4
00935 
00936 
00937 /*
00938  * The following macros are present only for sources written for
00939  * release 1.4.3 or earlier. Don't use in new sources!
00940  */
00941 #define WS_HATCHED_IN   WS_ETCHED_IN
00942 #define WS_HATCHED_OUT  WS_ETCHED_OUT
00943 
00950 #define OT_SHELL        1
00951 #define OT_FORM         2
00952 #define OT_LABEL        3
00953 #define OT_PBUTTON      4
00954 #define OT_TBUTTON      5
00955 #define OT_RBUTTON      6
00956 #define OT_SCROLLBAR    7
00957 #define OT_EDIT         8
00958 #define OT_STATUSBAR    9
00959 #define OT_TEXT         10
00960 #define OT_SBLIST       11
00961 #define OT_MENUBAR      12
00962 #define OT_MENU         13
00963 #define OT_DRAWAREA     14
00964 #define OT_SPLITTER     15
00965 
00966 
00970 #ifdef _MGTREE_H
00971         typedef struct _mtnode *MTNODE;
00972 #else
00973         typedef void *MTNODE;
00974 #endif
00975 
00976 
00984 #define SF_NO_FOCUS_CHANGE      0x1
00985 
00989 #define SF_SAVEUNDER            0x2
00990 
00993 #define SF_MODAL                0x4
00994 
00995 #define SF_POPUP                0x8
00996 
00999 #define SF_IGNORE_WM_CLOSE      0x10
01000 
01004 #define SF_UNMAP_ON_WM_CLOSE    0x20
01005 
01006 #define SF_NO_CLOSE             0x40
01007 
01008 #define SF_NO_MAXIMIZE          0x80
01009 
01010 #define SF_NO_MINIMIZE          0x100
01011 
01012 #define SF_NO_RESIZE            0x200
01013 
01014 #define SF_NO_W_RESIZE          0x400
01015 
01016 #define SF_NO_H_RESIZE          0x800
01017 
01018 
01025 #define DEF_POSITION -32768
01026 /* Default width/height useable in MShellRealizeXYWH() */
01027 #define DEF_SIZE         -32768
01028 
01029 
01035 #define NF_CONTAINER    0x1
01036 #define NF_TOGGLE               0x2
01037 
01038 
01039 
01044 #define MSPOOL_OK               0
01045 #define MSPOOL_FULL_QUEUE       -1
01046 #define MSPOOL_NOT_READY        -2
01047 #define MSPOOL_FILE_ERR         -3
01048 
01049 
01050 /* Child Preferred Attachment */
01051 
01052 #define F_PREF_ATT_POS  0
01053 #define F_PREF_ATT_ROW  1
01054 #define F_PREF_ATT_COL  2
01055 #define F_PREF_ATT_TABLE 3
01056 
01061 #define F_ATT_NONE      0
01062 #define F_ATT_FORM      1
01063 #define F_ATT_OBJ       2
01064 
01065 
01077 struct DRAWAREA_PREF {
01079         int old_w;
01081         int old_h;
01083         int new_w;
01085         int new_h;
01086 };
01087 typedef struct DRAWAREA_PREF DRAWAREA_PREF;
01088 
01094 #define SBT_HOR         0
01095 #define SBT_VERT        1
01096 
01097 
01098 /* SBLIST */
01099 #define SBLT_TEXT       0
01100 #define SBLT_LIST       1
01101 #define SBLT_ELIST      2
01102 #define SBLT_FILE       3
01103 #define SBL_ITEM_SELECTED       0x1L
01104 #define SBL_ITEM_CHECKED        0x2L
01105 
01114 struct XL_ITEM {
01116         struct XL_ITEM  *next;
01118         char            *data;
01120         long            misc;
01122         void            *u_data;
01123 };
01124 typedef struct XL_ITEM XL_ITEM;
01125 
01134 struct LIST_ACT {
01136         char *item;
01138         void *u_data;
01140         long pos;
01142         unsigned char selected;
01144         unsigned char checked;
01145 };
01146 typedef struct LIST_ACT LIST_ACT;
01147 
01156 struct LIST_SEL {
01158         char *item;
01160         void *u_data;
01162         long pos;
01164         unsigned char selected;
01166         unsigned char checked;
01170         MEvent *pe;
01171 };
01172 typedef struct LIST_SEL LIST_SEL;
01173 
01180 struct EL_TEMPLATE {
01182         char *head;
01184         short len;
01186         short vis_len;
01188         short changeable;
01190         MOBJECT edit;
01192         MOBJECT label;
01193 };
01194 typedef struct EL_TEMPLATE EL_TEMPLATE;
01195 
01207 struct SBL_NEW_BLOCK {
01216         int from;
01218         long offset;
01220         int nc;
01226         int nr;
01228         XL_ITEM *pi;
01229 };
01230 typedef struct SBL_NEW_BLOCK SBL_NEW_BLOCK;
01231 
01243 struct SBL_ITEM_SEEK {
01245         long pos;
01247         char *sub_item;
01248 };
01249 typedef struct SBL_ITEM_SEEK SBL_ITEM_SEEK;
01250 
01254 #define XLItemCheck(pxl)        ((pxl)->misc |= SBL_ITEM_CHECKED)
01255 
01259 #define XLItemUncheck(pxl)      ((pxl)->misc &= ~SBL_ITEM_CHECKED)
01260 
01266 #define NOCHAR          0
01267 #define ANYCHAR         0x1
01268 #define ALPHA           0x2
01269 #define DIGIT           0x4
01270 #define SPACE           0x8
01271 
01272 /* Basic EDIT filter modifiers */
01273 #define SIGNED          0x100
01274 #define DOT             0x200
01275 #define UPPER           0x400
01276 #define LOWER           0x800
01277 
01278 /* Composed EDIT filter values */
01279 #define ALPHANUM        (ALPHA|DIGIT)
01280 #define UPALPHA         (ALPHA|UPPER)
01281 #define LOWALPHA        (ALPHA|LOWER)
01282 #define U_INT            DIGIT
01283 #define S_INT           (DIGIT|SIGNED)
01284 #define U_FLOAT         (DIGIT|DOT)
01285 #define S_FLOAT         (DIGIT|DOT|SIGNED)
01286 
01287 
01296 struct EDIT_CURS {
01298         int pos;
01300         int pos_x;
01302         int pos_y;
01303 };
01304 typedef struct EDIT_CURS EDIT_CURS;
01305 
01314 struct EDIT_CHANGE {
01316         char *current_text;
01318         char *change;
01320         int pos;
01322         int len;
01324         int change_len;
01326         unsigned validate;
01328         unsigned exec;
01329 };
01330 typedef struct EDIT_CHANGE EDIT_CHANGE;
01331 
01340 struct EDIT_VAL {
01342         char *text;
01344         short len;
01346         int key;
01348         unsigned focus_lost;
01350         unsigned focus_leave;
01352         unsigned text_changed;
01354         unsigned text_validated;
01355 };
01356 typedef struct EDIT_VAL EDIT_VAL;
01357 
01362 #define SE_READ         0x1
01363 #define SE_WRITE        0x2
01364 #define SE_EXCP         0x4
01365 
01366 typedef void (*SOCKET_CB)(int s, unsigned event, void *data);
01367 
01368 
01369 /* MENU */
01370 
01371 typedef void *MENU_ITEM;
01372 
01373 
01374 typedef CARD32 TIMEOUT_ID;
01375 typedef INT32 MVALUE;
01376 
01381 typedef void (*TIMEOUT_CB)(TIMEOUT_ID id, void *data);
01382 typedef int (*STRCMP_CB)(const char *, const char *);
01383 
01384 #ifdef NO_MGUI_CB_PROTO
01385 typedef void (*MGUI_CB)();
01386 #else
01387 typedef void (*MGUI_CB)(MOBJECT obj, void *od, void *ad);
01388 #endif
01389 
01390 #if defined UNIQUE_CB_PROTO || defined NO_MGUI_CB_PROTO
01391 typedef MGUI_CB OBJ_EVENT_CB;
01392 typedef MGUI_CB OBJ_STRING_CB;
01393 typedef MGUI_CB OBJ_VALUE_CB;
01394 typedef MGUI_CB WM_CLOSE_CB;
01395 typedef MGUI_CB NEW_BLOCK_CB;
01396 typedef MGUI_CB ITEM_SEEK_CB;
01397 typedef MGUI_CB EDIT_VAL_CB;
01398 typedef MGUI_CB EDIT_CURS_CB;
01399 typedef MGUI_CB EDIT_CHANGE_CB;
01400 typedef MGUI_CB LIST_ACT_CB;
01401 typedef MGUI_CB LIST_SEL_CB;
01402 typedef MGUI_CB DRAWAREA_PREF_CB;
01403 typedef MGUI_CB MENU_ITEM_CB;
01404 typedef MGUI_CB MTREE_NODE_CB;
01405 #else
01406 typedef void (*OBJ_EVENT_CB)(MOBJECT obj, MEvent *e, void *ad);
01407 typedef void (*OBJ_STRING_CB)(MOBJECT obj, char *str, void *ad);
01408 typedef void (*OBJ_VALUE_CB)(MOBJECT obj, MVALUE value, void *ad);
01409 typedef void (*WM_CLOSE_CB)(MOBJECT obj, void *odata, void *cdata);
01410 typedef void (*NEW_BLOCK_CB)(MOBJECT obj, SBL_NEW_BLOCK *nbs, void *ad);
01411 typedef void (*ITEM_SEEK_CB)(MOBJECT obj, SBL_ITEM_SEEK *iss, void *ad);
01412 typedef void (*EDIT_VAL_CB)(MOBJECT edit, EDIT_VAL *ev, void *ad);
01413 typedef void (*EDIT_CURS_CB)(MOBJECT edit, EDIT_CURS *ev, void *ad);
01414 typedef void (*EDIT_CHANGE_CB)(MOBJECT edit, EDIT_CHANGE *ec, void *ad);
01415 typedef void (*LIST_ACT_CB)(MOBJECT list, LIST_ACT *la, void *ad);
01416 typedef void (*LIST_SEL_CB)(MOBJECT list, LIST_SEL *la, void *ad);
01417 typedef void (*DRAWAREA_PREF_CB)(MOBJECT drawa, DRAWAREA_PREF *dp, void *ad);
01418 typedef void (*MENU_ITEM_CB)(MENU_ITEM item, MVALUE status, void *ad);
01419 typedef void (*MTREE_NODE_CB)(MTNODE node, void *ad);
01420 #endif /* UNIQUE_CB_PROTO */
01421 
01422 
01423 /*
01424  *  Graphic printing currently works only under Windows
01425  */
01426 
01427 #ifdef WIN_MGUI
01428 
01432 #define PM_FULL         0       /* the printing is maximized */
01433 #define PM_MM           1       /* dimesnsions in mm */
01434 #define PM_PIXEL        3       /* dimensions in printer pixels */
01435 #define PM_PERC         4       /* dimensions in percentage (0-100%) of the paper size */
01436 
01440 #define PO_DEFAULT       0      /* use the printer setup default */
01441 #define PO_PORTRAIT  1  /* portrait orientation */
01442 #define PO_LANDSCAPE 2  /* landscape orientation */
01443 
01444 typedef struct
01445 {
01446         int mode;       /* Page mode one of PM_FULL, PM_MM, PM_PIXEL, PM_PERC */
01447         int x;          /* X position of the object to print (-1 to center horiz) */
01448         int y;          /* Y position of the object to print (-1 to center vert) */
01449         int w;          /* Width of the object to print */
01450         int h;          /* Height of the object to print */
01451 } MPRINT_OPTIONS;
01452 
01453 typedef struct
01454 {
01455         int startPage;  /* Starting page to print */
01456         int endPage;    /* Ending page to print */
01457         int minPage;    /* min printable page */
01458         int maxPage;    /* max printable page */
01459 } MPAGE_OPTIONS;
01460 
01461 typedef void *DOC_ID;
01462 
01463 #endif /* WIN_MGUI */
01464 #endif

Generated on Sun Jun 29 13:03:07 2003 for MGui API by doxygen1.3-rc2