home *** CD-ROM | disk | FTP | other *** search
- #ifndef __INC_POS_PINTUI_GCLASS_H
- #define __INC_POS_PINTUI_GCLASS_H
- /*******************************************************************
- Includes Release 24
- (C) Copyright 1995-1997 proDAD
- All Rights Reserved
-
- $AUT Holger Burkarth
- $DAT >>GClass.h<< 01 Mar 1997 14:53:21 - (C) ProDAD
- *******************************************************************/
- #ifndef __INC_POS_PINTUI_ICLASS_H
- #include <pIntui/IClass.h>
- #endif
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_GadgetMethod
- {
- ULONG imth_Method; /* (enum pOS_IntuiClassMethods) und (pOS_GadgetClassMethods) */
-
- union {
- UBYTE imth_Reserved[32]; /* 24 Bytes used, 8 Bytes reserved */
-
- struct { /* ICLMTH_New */
- ULONG imnw_Pad;
- const struct pOS_TagItem *imnw_Tags;
- } imth_New;
-
- /* ICLMTH_Dispose */
-
- struct { /* ICLMTH_Set */
- const struct pOS_IClassInfo *imst_Info; /* NULL => without refresh */
- const struct pOS_TagItem *imst_Tags;
- } imth_Set;
-
- struct { /* ICLMTH_Notify */
- const struct pOS_IClassInfo *imny_Info;
- const struct pOS_TagItem *imny_Tags;
- ULONG imny_Flags;
- } imth_Notify;
-
- struct { /* ICLMTH_Update */
- const struct pOS_IClassInfo *imud_Info;
- const struct pOS_TagItem *imud_Tags;
- ULONG imud_Flags;
- } imth_Update;
-
- struct { /* ICLMTH_Get */
- ULONG imgt_ID;
- ULONG *imgt_Variable;
- } imth_Get;
-
- /********************************************/
-
- struct { /* GCLMTH_HitTest */
- const struct pOS_IClassInfo *imht_Info;
- ULONG imht_Pad; /* damit Mouse mit GoActive... übereinstimmt */
- const struct pOS_Point *imht_RMouse; /* relativ zum Gadget */
- const struct pOS_Point *imht_AMouse; /* absolut */
- struct pOS_Gadget *imht_HitGadget;
- ULONG imht_Result; /* => Returncode von pOS_DoIMethodA()
- ** wird von pOS_GadgetHitTest gesetzt
- */
- } imth_HitTest;
-
-
- struct { /* GCLMTH_Render */
- const struct pOS_IClassInfo *imre_Info;
- ULONG imre_Type; /* (enum pOS_GadgetClassRender) */
- ULONG imre_NewTick; /* wird bei GCLMTHRE_TickFrame verwendet */
- ULONG imre_OldTick; /* Anzahl der IntuiTicks*100 => 1/1000 sec. */
- } imth_Render;
-
-
- struct { /* GCLMTH_GoActive */
- const struct pOS_IClassInfo *imac_Info;
- const struct pOS_InputEvent *imac_IE; /* NULL => imac_RMouse/imac_AMouse sind nicht gültig */
- const struct pOS_Point *imac_RMouse;
- const struct pOS_Point *imac_AMouse;
- ULONG imac_ResCode; /* => im_Code */
- struct pOS_Gadget *imac_NextActGad; /* zu aktivierendes Gadget */
- } imth_GoActive;
-
-
- struct { /* GCLMTH_HandleInput */
- const struct pOS_IClassInfo *imhi_Info;
- const struct pOS_InputEvent *imhi_IE;
- const struct pOS_Point *imhi_RMouse;
- const struct pOS_Point *imhi_AMouse;
- ULONG imhi_ResCode; /* => im_Code */
- struct pOS_Gadget *imhi_NextActGad;
- } imth_HandleInput;
-
-
- struct { /* GCLMTH_GoInactive */
- const struct pOS_IClassInfo *imia_Info;
- UBYTE imia_Pad[12];
- ULONG imia_ResCode; /* => im_Code */
- } imth_GoInactive;
-
-
- struct { /* GCLMTH_Abort */
- const struct pOS_IClassInfo *imab_Info;
- UBYTE imab_Pad[12];
- ULONG imab_ResCode; /* => im_Code */
- struct pOS_Gadget *imab_NextActGad;
- } imth_Abort;
-
-
- struct { /* GCLMTH_Add */
- const struct pOS_IClassInfo *imad_Info;
- } imth_Add;
-
-
- struct { /* GCLMTH_Rem */
- const struct pOS_IClassInfo *imrm_Info;
- } imth_Rem;
-
-
- struct { /* GCLMTH_Layout */
- const struct pOS_IClassInfo *imly_Info;
- ULONG imly_Flags; /* (enum pOS_GadgetLayoutFlags) */
- const struct pOS_IBox *imly_IBox;
- struct pOS_LayoutDamage *imly_LD;
- } imth_Layout;
-
-
- struct { /* GCLMTH_GetIBox */
- const struct pOS_DrawInfo *imgb_DrawInfo;
- struct pOS_RastPort *imgb_RastPort;
- struct pOS_IBox *imgb_MinIBox;
- struct pOS_IBox *imgb_MaxIBox;
- } imth_GetIBox;
-
-
- struct { /* GCLMTH_Help */
- const struct pOS_IClassInfo *imhp_Info;
- CHAR *imhp_String;
- const struct pOS_Point *imhp_RMouse;
- const struct pOS_Point *imhp_AMouse;
- UWORD imhp_StringSize;
- UWORD imhp_Level; /* 0,1,2... */
- } imth_Help;
-
-
- struct { /* GCLMTH_Msg */
- const struct pOS_IClassInfo *immg_Info;
- struct pOS_IntuiMessage *immg_Msg;
- } imth_Msg;
-
-
- struct { /* GCLMTH_WinBorder */
- const struct pOS_IClassInfo *imwb_Info;
- struct pOS_Region *imwb_Region;
- } imth_WBor;
-
-
- struct { /* GCLMTH_BeginDrag */
- const struct pOS_IClassInfo *imbd_Info;
- const struct pOS_InputEvent *imbd_IE;
- const struct pOS_Point *imbd_RMouse;
- const struct pOS_Point *imbd_AMouse;
- struct pOS_Drag *imbd_Result; /* wird vom Handler erzeugt und
- ** in GCLMTH_EndDrag gelöscht.
- */
- struct pOS_Point *imbd_Offset; /* PixelOffset, default={0,0} */
- } imth_BDrag;
-
-
- struct { /* GCLMTH_EndDrag */
- UBYTE imed_Pad[16];
- struct pOS_Drag *imed_Drag;
- } imth_EDrag;
-
-
- struct { /* GCLMTH_DropTest */
- const struct pOS_IClassInfo *imdt_Info;
- ULONG imdt_Pad;
- const struct pOS_Point *imdt_RMouse; /* relativ zum Gadget */
- const struct pOS_Point *imdt_AMouse; /* absolut */
- struct pOS_Gadget *imdt_HitGadget;
- ULONG imdt_Result; /* => Returncode von pOS_DoIMethodA()
- ** wird von pOS_GadgetDropTest gesetzt
- ** siehe GCLMTHR_DropHit */
- } imth_DropTest;
-
-
-
- struct { /* GCLMTH_ActiveDrop */
- const struct pOS_IClassInfo *imda_Info;
- const struct pOS_InputEvent *imda_IE;
- const struct pOS_Point *imda_RMouse;
- const struct pOS_Point *imda_AMouse;
- struct pOS_DragList *imda_DragList;
- } imth_ActiveDrop;
-
-
- struct { /* GCLMTH_HandleDrop */
- const struct pOS_IClassInfo *imhd_Info;
- const struct pOS_InputEvent *imhd_IE;
- const struct pOS_Point *imhd_RMouse;
- const struct pOS_Point *imhd_AMouse;
- struct pOS_DragList *imhd_DragList;
- } imth_HandleDrop;
-
-
- struct { /* GCLMTH_InactiveDrop */
- const struct pOS_IClassInfo *imid_Info;
- UBYTE imid_Pad[12];
- struct pOS_DragList *imid_DragList;
- } imth_InactiveDrop;
-
-
- struct { /* GCLMTH_AbortDrop */
- const struct pOS_IClassInfo *imbb_Info;
- UBYTE imbb_Pad[12];
- struct pOS_DragList *imbb_DragList;
- } imth_AbortDrop;
-
-
- struct { /* GCLMTH_GetQuickDropObject */
- const struct pOS_IEDragDrop *imgqo_IEDD;
- UBYTE imgqo_Pad[12];
- __ARID__ struct pOS_DataType *imgqo_Result;
- } imth_GetQObj;
-
-
- struct { /* GCLMTH_GetDropObject */
- const struct pOS_IEDragDrop *imgo_IEDD;
- UBYTE imgo_Pad[12];
- __ARID__ struct pOS_DataType *imgo_Result;
- } imth_GetObj;
-
-
- struct { /* GCLMTH_SetDropObject */
- const struct pOS_IClassInfo *imso_Info; /* NULL => without refresh */
- const struct pOS_InputEvent *imso_IE; /* NULL => ignore */
- const struct pOS_IEDragDrop *imso_IEDD;
- UBYTE imso_Pad[4];
- const struct pOS_DataType *imso_Object;
- } imth_SetObj;
-
-
- struct { /* GCLMTH_HelpTest */
- const struct pOS_IClassInfo *imhs_Info;
- ULONG imhs_Pad;
- const struct pOS_Point *imhs_RMouse; /* relativ zum Gadget */
- const struct pOS_Point *imhs_AMouse; /* absolut */
- struct pOS_Gadget *imhs_HitGadget;
- ULONG imhs_Result;
- } imth_HelpTest;
-
-
- struct { /* GCLMTH_DragTest */
- const struct pOS_IClassInfo *imdt_Info;
- ULONG imdt_Pad;
- const struct pOS_Point *imdt_RMouse; /* relativ zum Gadget */
- const struct pOS_Point *imdt_AMouse; /* absolut */
- struct pOS_Gadget *imdt_HitGadget;
- ULONG imdt_Result;
- } imth_DragTest;
-
-
- struct { /* GCLMTH_PopUp */
- const struct pOS_IClassInfo *impo_Info;
- SLONG impo_Mode; /* 1==start, 0==end, -1==abort */
- } imth_PopUp;
-
-
- } imth_U;
-
- };
-
-
- enum pOS_GadgetClassRender /** imre_Type **/
- {
- GCLMTHRE_Update=1, /* 1 incremental update */
- GCLMTHRE_Redraw, /* redraw gadget */
- GCLMTHRE_Toggle, /* toggle highlight */
- GCLMTHRE_TickFrame, /* next Frame# */
- GCLMTHRE_ToggleDrop, /* 5 toggle drop-highlight */
- GCLMTHRE_ToggleFocus, /* toggle focus-highlight */
- };
-
-
-
-
-
-
-
- enum pOS_GadgetClassResult /* Return-Wert vom Gadget-Dispatcher */
- {
- GCLMTHR_None=0,
-
- GCLMTHR_Activate= 0x0001, /* Zeigt an, daß das Gadget aktiv sein soll.
- ** Wird bei GCLMTH_GoActive oder GCLMTH_HandleInput
- ** das Bit gelöscht, wird pIntui keine Events ans
- ** Gadget schicken.
- */
- GCLMTHR_AbortIE= 0x0002, /* InputEvent wird nicht weitergereicht,
- ** IE bleibt gültig. Dies hat zur Folge,
- ** alle nachkommenden Handler diesen Event
- ** nie bekommen.
- */
- GCLMTHR_GadgetHit= 0x0004, /* wird in GCLMTH_HitTest zurückgegeben,
- ** fall der Mausklick im Gadget liegt und weiter
- ** bearbeitet werden soll. pIntui wird dann ein
- ** GCLMTH_GoActive auslösen, auf das das Gadget
- ** dann Aggieren kann.
- */
- GCLMTHR_InputDone= 0x0004, /* InputHandle beenden.
- ** Dieses Bit hat zur Folge, daß ein IECLASS_GADGETUP
- ** Event ausgelöst wird. Bei einem GACT_RelVerify-Gadget
- ** wird mittels GCLMTHR_Activate entschieden, ob ein
- ** IECLASS_GADGETUP erzeugt wird. Ist GCLMTHR_Activate
- ** nicht gesetzt, verliert das Gadget immer den
- ** Eingabefocus (GACT_ActiveGadget wird gelöscht).
- */
- GCLMTHR_DropHit= 0x0004, /* Wird in GCLMTH_DropTest zurückgegeben.
- ** Das Gadget signalisiert hiermit, daß ein Drag-
- ** Object abgelegt werden kann.
- */
- GCLMTHR_DropDone= 0x0004, /* InputHandle beenden.
- ** Der User hat das Drag-Objekt abgelegt.
- */
-
- GCLMTHR_DragHit= 0x0008, /* wird in GCLMTH_DragTest zurückgegeben,
- ** falls ein Drag möglich ist.
- ** Ist das Bit gesetzt, so wird gegb. ein
- ** GCLMTH_BeginDrag ausgelöst.
- */
- GCLMTHR_HelpHit= 0x0004, /* wird in GCLMTH_HelpTest zurückgegeben */
-
-
- GCLMTHR_NextActive= 0x0010,
- GCLMTHR_PrevActive= 0x0020,
-
- GCLMTHR_DoWRefresh= 0x0040, /* Win-Refresh auslösen */
- GCLMTHR_DoGRefresh= 0x0080, /* Gadget-Refresh auslösen */
- GCLMTHR_UpdateGadget= 0x0100, /* Gadget wurde verändert (IECLASS_UPDATEGADGET) */
- GCLMTHR_GadgetAbort= 0x0200, /* */
-
-
- /****** GCLMTH_Msg *****/
- GCLMTHR_NoneMsg = 0x00, /* Msg wurde nicht bearbeitet */
- GCLMTHR_DoneMsg = 0x01, /* Msg ist bearbeitet und darf nicht an andere
- ** Gadgets weitergereicht werden.
- */
- GCLMTHR_NoUsed = 0x40, /* Msg wurde vom Erzeugen-Gadget erkannt, konnte
- ** aber nicht verwendet werden. Damit eine Msg nicht
- ** an weitere Gadget zur Bearbeitung weitergereicht
- ** wird, dient _NoUsed als Marke. (dient der verkürzten Suche)
- */
- GCLMTHR_NewMsg = 0x80, /* Msg erneut verschicken. Die Msg wurde modifiziert
- ** und soll abermals als IDCMP-Message verschickt
- ** werden.
- */
-
- };
-
-
-
-
- enum pOS_GadgetClassMethods
- {
- GCLMTH_Dummy= 0x01,
-
- GCLMTH_HitTest, /* Prüft, ob ein Gadgetklick im Gadget liegt */
- GCLMTH_Render, /* Gadget zeichnen (je noch Modus) */
- GCLMTH_GoActive, /* Gadget bekommt den Eingabefokus */
- GCLMTH_HandleInput, /*5 Gadget bekommt einen Inputevent */
- GCLMTH_GoInactive, /* Dem Gadget wird der Eingabefokus entzogen. */
- GCLMTH_Help, /* Help-String wird erstellt */
- GCLMTH_Abort, /* Der User hat die rechte Maustaste gerückt.
- ** Aktuell laufende Gadget-Aktion abbrechnen.
- ** Das Gadget verliert den Eingabefokus.
- */
- GCLMTH_Add, /* Gadget wird einem Window zugeordnet =>
- ** Info->ici_Window ist gültig gesetzt.
- ** siehe GFLG_UseMthAddRem
- */
- GCLMTH_Rem, /*10 Gadget wird aus dem Window entfernt */
- GCLMTH_Layout, /* Gadgets werden vom System-Layouter ausgerichtet.
- ** Alle Members der Gadget-Group werden immer über
- ** GCLMTH_Layout ausgerichtet.
- ** siehe GFLG_UseMthLayout
- */
- GCLMTH_GetIBox, /* Ermittlung der Größe vom Gadget */
- GCLMTH_Msg, /* Zweite Ebene der Nachrichtenauswertung.
- ** Mittels pOS_SysIMessage() gelangen IDCMPs
- ** zu den Gadgets
- */
- GCLMTH_WinBorder, /* Border-Gadgets aus dem Border herausschneiden. */
- GCLMTH_BeginDrag, /*15 Das Gadget wird aufgefordert ein Drag-Objekt bereit-
- ** zustellen.
- */
- GCLMTH_EndDrag, /* Drag-Objekt löschen */
- GCLMTH_DropTest, /* Es wird geprüft, ob ein Drag-Objekt abgelegt (drop)
- ** werden kann.
- */
- GCLMTH_ActiveDrop, /* Im Gadget kann ein Objekt abgelegt werden. */
- GCLMTH_HandleDrop, /* War das Gadget mit GCLMTH_ActiveDrop einverstanden,
- ** so werden alle InputEvents im Drop-Vorgang ans Gadget
- ** weitergegeben.
- */
- GCLMTH_InactiveDrop, /* Das Gadget muß ab jetzt nicht mehr aus Drop achten. */
- GCLMTH_AbortDrop, /* Drop-Vorgang wurde abgebrochen => rechte Maustaste */
- GCLMTH_GetQuickDropObject,/* DataType-Objekt aus input.task erzeugen
- (kann verweigert werden)
- */
- GCLMTH_GetDropObject, /* DataType-Objekt aus dem Anwerder-Prozeß heraus erzeugen. */
-
- GCLMTH_SetDropObject, /* Return von GCLMTHR_InputDone bedeutet, Drop hat
- ** funktioniert.
- */
- GCLMTH_HelpTest, /* Prüft, ob die Maus im Gadget liegt, um ein Bubble zu erzeugen */
- GCLMTH_DragTest, /* */
- GCLMTH_PopUp,
- };
-
-
-
- enum pOS_GadgetLayoutFlags
- {
- GCLMTHLYF_ReSize = 0x0001, /* Window-Resize */
- GCLMTHLYF_AddGList = 0x0002, /* pOS_AddGadget() or pOS_AddGadgets() */
-
- GCLMTHLYF_Mask = 0x000f, /* Work-Type-Mask */
-
- GCLMTHLYF_LD = 0x0100, /* perform imly_LD (zuvor wird pOS_LockLayerInfo() aufgerufen)*/
- GCLMTHLYF_SizeAbort= 0x0200, /* Bearbeitung wird beim ReSize sofort abgebrochen */
- };
-
- #endif
-