summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/Tk/pTk/tixForm.h
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Tk/pTk/tixForm.h')
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixForm.h143
1 files changed, 143 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixForm.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixForm.h
new file mode 100644
index 00000000000..8b2dbcd6976
--- /dev/null
+++ b/Master/tlpkg/tlperl/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 */