diff options
Diffstat (limited to 'Master/tlpkg/tlperl0/lib/Tk/pTk/tixForm.h')
-rwxr-xr-x | Master/tlpkg/tlperl0/lib/Tk/pTk/tixForm.h | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl0/lib/Tk/pTk/tixForm.h b/Master/tlpkg/tlperl0/lib/Tk/pTk/tixForm.h new file mode 100755 index 00000000000..8b2dbcd6976 --- /dev/null +++ b/Master/tlpkg/tlperl0/lib/Tk/pTk/tixForm.h @@ -0,0 +1,143 @@ + +/* $Id: tixForm.h,v 1.1.1.1 2000/05/17 11:08:42 idiscovery Exp $ */ + +/* + * tixForm.h -- + * + * Declares the internal functions and data types for the Tix Form + * geometry manager. + * + * Copyright (c) 1996, Expert Interface Technologies + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + */ + +#ifndef _TIX_FORM_H +#define _TIX_FORM_H + +#define SIDE0 0 +#define SIDE1 1 + +#define NEXT_SIDE(x) (!x) + +#define SIDEX 0 +#define SIDEY 1 + +#define AXIS_X 0 +#define AXIS_Y 1 + +#define OPPO_SIDE0 1 +#define OPPO_SIDE1 2 +#define OPPO_ALL 3 + +#define PINNED_SIDE0 4 +#define PINNED_SIDE1 8 +#define PINNED_ALL 12 + +#define ATT_NONE 0 +#define ATT_GRID 1 +#define ATT_OPPOSITE 2 +#define ATT_PARALLEL 3 + +/* + * The following structures carry information about the client windows + */ +typedef union { + int grid; + struct _FormInfo * widget; +} Attachment; + +typedef struct { + int pcnt; /* percentage anchor point */ + int disp; /* displacement from the percentage anchor point*/ +} Side; + +typedef struct _FormInfo { + Tk_Window tkwin; + struct _MasterInfo* master; /* The master of this window */ + struct _FormInfo * next; + + int depend; /* used to detect circular dependency*/ + + /* These are specified by the user and set by the "tixForm" command + */ + Attachment att[2][2]; /* anchor of attachment */ + int off[2][2]; /* offset of attachment */ + char isDefault[2][2];/* Is this side a default attachment*/ + + char attType[2][2]; /* type of attachment + GRID or PIXEL*/ + int pad[2][2]; /* value of padding */ + + /* These values are calculated by the PinnClient() functions + * and are used to calculated the required size of the master + * inside CalculateMasterGeometry(), as well as the positions + * of the clients inside ArrangeGeometry() + */ + Side side[2][2]; + int sideFlags[2]; + + /* These values are used to place the clients into the clients + */ + int posn[2][2]; + + /* These things are for Spring'ing */ + int spring[2][2]; + struct _FormInfo * strWidget[2][2]; + int springFail[2]; + int fill[2]; +} FormInfo; + + +/* + * The following structures carry information about the master windows + */ +typedef struct { + unsigned int isDeleted : 1; + unsigned int repackPending : 1; +} MasterFlags; + +typedef struct _MasterInfo { + Tk_Window tkwin; + struct _FormInfo * client; + struct _FormInfo * client_tail; + int numClients; + int reqSize[2]; + int numRequests; /* This is used to detect + * whether two geometry managers + * are used to manage the same + * master window + */ + int grids[2]; + MasterFlags flags; +} MasterInfo; + +/* tixFormMisc.c */ + + +EXTERN int TixFm_Configure _ANSI_ARGS_((FormInfo *clientPtr, + Tk_Window topLevel, + Tcl_Interp* interp, int argc, Tcl_Obj *CONST *objv)); + +/* tixForm.c */ +EXTERN FormInfo * TixFm_GetFormInfo _ANSI_ARGS_((Tk_Window tkwin, + int create)); +EXTERN void TixFm_StructureProc _ANSI_ARGS_((ClientData clientData, + XEvent * eventPtr)); +EXTERN void TixFm_AddToMaster _ANSI_ARGS_((MasterInfo *masterPtr, + FormInfo *clientPtr)); +EXTERN void TixFm_DeleteMaster _ANSI_ARGS_(( + MasterInfo *masterPtr)); +EXTERN void TixFm_FreeMasterInfo _ANSI_ARGS_(( + char *clientData)); +EXTERN FormInfo * TixFm_FindClientPtrByName _ANSI_ARGS_(( + Tcl_Interp * interp, char * name, + Tk_Window topLevel)); +EXTERN void TixFm_ForgetOneClient _ANSI_ARGS_(( + FormInfo *clientPtr)); +EXTERN void TixFm_Unlink _ANSI_ARGS_((FormInfo *clientPtr)); +EXTERN void TixFm_UnlinkFromMaster _ANSI_ARGS_(( + FormInfo *clientPtr)); +#endif /* _TIX_FORM_H */ |