1 #ifndef INTUITION_INTUITION_H
2 #define INTUITION_INTUITION_H
5 Copyright 1995-2001, The AROS Development Team. All rights reserved.
8 Desc: Important defines and structures for intuition.library
13 # include <exec/ports.h>
16 # include <exec/types.h>
18 #ifndef GRAPHICS_CLIP_H
19 # include <graphics/clip.h>
21 #ifndef GRAPHICS_GFX_H
22 # include <graphics/gfx.h>
24 #ifndef GRAPHICS_LAYERS_H
25 # include <graphics/layers.h>
27 #ifndef GRAPHICS_RASTPORT_H
28 # include <graphics/rastport.h>
30 #ifndef GRAPHICS_TEXT_H
31 # include <graphics/text.h>
33 #ifndef GRAPHICS_VIEW_H
34 # include <graphics/view.h>
36 #ifndef UTILITY_TAGITEM_H
37 # include <utility/tagitem.h>
39 #ifndef DEVICES_INPUTEVENT_H
40 # include <devices/inputevent.h>
42 #ifndef INTUITION_PREFERENCES_H
43 # include <intuition/preferences.h>
45 #ifndef INTUITION_SCREENS_H
46 # include <intuition/screens.h>
48 #ifndef INTUITION_CLASSUSR_H
49 # include <intuition/classusr.h>
52 #define INTUITIONNAME "intuition.library"
54 /***** Intuition Message *****/
58 struct Message ExecMessage
;
70 struct Window
* IDCMPWindow
;
71 struct IntuiMessage
* SpecialLink
;
74 struct ExtIntuiMessage
76 struct IntuiMessage eim_IntuiMessage
;
77 struct TabletData
* eim_TabletData
;
82 #define IDCMP_SIZEVERIFY (1L<<0)
83 #define IDCMP_NEWSIZE (1L<<1)
84 #define IDCMP_REFRESHWINDOW (1L<<2)
85 #define IDCMP_MOUSEBUTTONS (1L<<3)
86 #define IDCMP_MOUSEMOVE (1L<<4)
87 #define IDCMP_GADGETDOWN (1L<<5)
88 #define IDCMP_GADGETUP (1L<<6)
89 #define IDCMP_REQSET (1L<<7)
90 #define IDCMP_MENUPICK (1L<<8)
91 #define IDCMP_CLOSEWINDOW (1L<<9)
92 #define IDCMP_RAWKEY (1L<<10)
93 #define IDCMP_REQVERIFY (1L<<11)
94 #define IDCMP_REQCLEAR (1L<<12)
95 #define IDCMP_MENUVERIFY (1L<<13)
96 #define IDCMP_NEWPREFS (1L<<14)
97 #define IDCMP_DISKINSERTED (1L<<15)
98 #define IDCMP_DISKREMOVED (1L<<16)
99 #define IDCMP_WBENCHMESSAGE (1L<<17)
100 #define IDCMP_ACTIVEWINDOW (1L<<18)
101 #define IDCMP_INACTIVEWINDOW (1L<<19)
102 #define IDCMP_DELTAMOVE (1L<<20)
103 #define IDCMP_VANILLAKEY (1L<<21)
104 #define IDCMP_INTUITICKS (1L<<22)
105 #define IDCMP_IDCMPUPDATE (1L<<23)
106 #define IDCMP_MENUHELP (1L<<24)
107 #define IDCMP_CHANGEWINDOW (1L<<25)
108 #define IDCMP_GADGETHELP (1L<<26)
109 #define IDCMP_LONELYMESSAGE (1L<<31)
111 #define CWCODE_MOVESIZE 0
112 #define CWCODE_DEPTH 1
115 #define MENUWAITING 3
120 #define WBENCHCLOSE 2
122 /***** IntuiText *****/
132 struct TextAttr
* ITextFont
;
134 struct IntuiText
* NextText
;
141 struct Menu
* NextMenu
;
147 UWORD Flags
; /* see below */
150 struct MenuItem
* FirstItem
;
160 #define MENUENABLED (1<<0)
161 /* The following flag is READ-ONLY */
162 #define MIDRAWN (1<<8)
166 struct MenuItem
* NextItem
;
172 UWORD Flags
; /* see below */
178 struct MenuItem
* SubItem
;
183 #define CHECKIT (1<<0)
184 #define ITEMTEXT (1<<1)
185 #define COMMSEQ (1<<2)
186 #define MENUTOGGLE (1<<3)
187 #define ITEMENABLED (1<<4)
188 #define HIGHIMAGE 0x0000
189 #define HIGHCOMP (1<<6)
190 #define HIGHBOX (1<<7)
191 #define HIGHNONE 0x00C0
192 #define HIGHFLAGS 0x00C0
193 #define CHECKED (1<<8)
194 /* The following flags are READ-ONLY */
195 #define ISDRAWN (1<<12)
196 #define HIGHITEM (1<<13)
197 #define MENUTOGGLED (1<<14)
199 #define NOMENU 0x001F
200 #define NOITEM 0x003F
202 #define MENUNULL 0xFFFF
205 #define MENUNUM(x) ((x) & 0x1F)
206 #define ITEMNUM(x) (((x)>>5) & 0x003F)
207 #define SUBNUM(x) (((x)>>11) & 0x001F)
209 #define SHIFTMENU(x) ((x) & 0x1F)
210 #define SHIFTITEM(x) (((x) & 0x3F)<<5)
211 #define SHIFTSUB(x) (((x) & 0x1F)<<11)
212 #define FULLMENUNUM(m,i,s) (SHIFTMENU(m) | SHIFTITEM(i) | SHIFTSUB(s))
214 #define SRBNUM(x) (0x08 - ((x)>>4))
215 #define SWBNUM(x) (0x08 - ((x) & 0x0F))
216 #define SSBNUM(x) (0x01 + ((x)>>4))
217 #define SPARNUM(x) ((x)>>4)
218 #define SHAKNUM(x) ((x) & 0x0F)
220 #define CHECKWIDTH 19
221 #define LOWCHECKWIDTH 13
223 #define LOWCOMMWIDTH 16
225 /***** Gadgets *****/
229 struct Gadget
* NextGadget
;
236 UWORD Flags
; /* see below */
237 UWORD Activation
; /* see below */
238 UWORD GadgetType
; /* see below */
242 struct IntuiText
* GadgetText
;
244 LONG MutualExclude
; /* OBSOLETE */
253 struct ExtGadget
* NextGadget
;
260 UWORD Flags
; /* see below */
261 UWORD Activation
; /* see below */
262 UWORD GadgetType
; /* see below */
266 struct IntuiText
* GadgetText
;
268 LONG MutualExclude
; /* OBSOLETE */
274 /* ExtGadget specific fields */
275 ULONG MoreFlags
; /* see below */
283 #define GFLG_GADGHCOMP 0x0000
284 #define GFLG_GADGHBOX (1<<0)
285 #define GFLG_GADGHIMAGE (1<<1)
286 #define GFLG_GADGHNONE 0x0003
287 #define GFLG_GADGHIGHBITS 0x0003
288 #define GFLG_GADGIMAGE (1<<2)
289 #define GFLG_RELBOTTOM (1<<3)
290 #define GFLG_RELRIGHT (1<<4)
291 #define GFLG_RELWIDTH (1<<5)
292 #define GFLG_RELHEIGHT (1<<6)
293 #define GFLG_SELECTED (1<<7)
294 #define GFLG_DISABLED (1<<8)
295 #define GFLG_TABCYCLE (1<<9)
296 #define GFLG_STRINGEXTEND (1<<10)
297 #define GFLG_IMAGEDISABLE (1<<11)
298 #define GFLG_LABELITEXT 0x0000
299 #define GFLG_LABELSTRING (1<<12)
300 #define GFLG_LABELIMAGE (1<<13)
301 #define GFLG_LABELMASK 0x3000
302 #define GFLG_RELSPECIAL (1<<14)
303 #define GFLG_EXTENDED (1<<15)
306 #define GACT_RELVERIFY (1<<0)
307 #define GACT_IMMEDIATE (1<<1)
308 #define GACT_ENDGADGET (1<<2)
309 #define GACT_FOLLOWMOUSE (1<<3)
310 #define GACT_RIGHTBORDER (1<<4)
311 #define GACT_LEFTBORDER (1<<5)
312 #define GACT_TOPBORDER (1<<6)
313 #define GACT_BOTTOMBORDER (1<<7)
314 #define GACT_TOGGLESELECT (1<<8)
315 #define GACT_STRINGLEFT 0
316 #define GACT_STRINGCENTER (1<<9)
317 #define GACT_STRINGRIGHT (1<<10)
318 #define GACT_LONGINT (1<<11)
319 #define GACT_ALTKEYMAP (1<<12)
320 #define GACT_STRINGEXTEND (1<<13)
321 #define GACT_BOOLEXTEND (1<<13)
322 #define GACT_ACTIVEGADGET (1<<14)
323 #define GACT_BORDERSNIFF (1<<15)
326 #define GTYP_GADGETTYPE 0xFC00
327 #define GTYP_SYSTYPEMASK 0x00F0
328 #define GTYP_SIZING 0x0010
329 #define GTYP_WDRAGGING 0x0020
330 #define GTYP_SDRAGGING 0x0030
331 #define GTYP_WDEPTH 0x0040
332 #define GTYP_SDEPTH 0x0050
333 #define GTYP_WZOOM 0x0060
334 #define GTYP_SUNUSED 0x0070
335 #define GTYP_CLOSE 0x0080
336 #define GTYP_REQGADGET (1<<12)
337 #define GTYP_GZZGADGET (1<<13)
338 #define GTYP_SCRGADGET (1<<14)
339 #define GTYP_SYSGADGET (1<<15)
340 #define GTYP_BOOLGADGET 0x0001
341 #define GTYP_GADGET0002 0x0002
342 #define GTYP_PROPGADGET 0x0003
343 #define GTYP_STRGADGET 0x0004
344 #define GTYP_CUSTOMGADGET 0x0005
345 #define GTYP_GTYPEMASK 0x0007
348 #define GMORE_BOUNDS (1L<<0)
349 #define GMORE_GADGETHELP (1L<<1)
350 #define GMORE_SCROLLRASTER (1L<<2)
351 #define GMORE_BOOPSIGADGET (1L<<3) /* some internal boopsi classes changes the gadget type during execution (ie propgclass), so GTYP_CUSTOMGADGET doesn´t work (dariusb) */
353 /***** Bool Gadget *****/
356 UWORD Flags
; /* see below */
358 ULONG Reserved
; /* must be NULL */
362 #define BOOLMASK (1<<0)
364 /***** Proportional gadget *****/
367 UWORD Flags
; /* see below */
380 #define AUTOKNOB (1<<0)
381 #define FREEHORIZ (1<<1)
382 #define FREEVERT (1<<2)
383 #define PROPBORDERLESS (1<<3)
384 #define PROPNEWLOOK (1<<4)
385 #define KNOBHIT (1<<8)
389 #define MAXBODY 0xFFFF
390 #define MAXPOT 0xFFFF
392 /***** StringInfo *****/
408 struct StringExtend
* Extension
;
410 struct KeyMap
* AltKeyMap
;
413 /**********************************************************************
415 **********************************************************************/
417 /* The following struct is used for standard intuition requesters
418 (not to be mixed up with asl or easy requesters).
419 See intuition.library/Request() for more information. */
422 struct Requester
* OlderRequest
;
424 /* The dimensions of the requester */
432 struct Gadget
* ReqGadget
; /* First gadget of the requester */
433 struct Border
* ReqBorder
; /* First border of the requester */
434 struct IntuiText
* ReqText
; /* First intuitext of the requester */
436 UWORD Flags
; /* see below */
437 UBYTE BackFill
; /* a pen to fill the background of the requester */
439 struct Layer
* ReqLayer
; /* The layer on which the requester is based */
441 UBYTE ReqPad1
[32]; /* PRIVATE */
443 struct BitMap
* ImageBMap
; /* you may use this to fill the requester
444 with your own image */
445 struct Window
* RWindow
; /* window, which the requester belongs to */
446 struct Image
* ReqImage
; /* corresponds to USEREQIMAGE (see below) */
448 UBYTE ReqPad2
[32]; /* PRIVATE */
452 #define POINTREL (1<<0) /* If set, LeftEdge and TopEdge are relative
453 to the coordinates of either the pointer
455 #define PREDRAWN (1<<1) /* If set, ImageBMap points to a custom bitmap */
456 #define NOISYREQ (1<<2) /* Requester doesn't filter input */
457 #define SIMPLEREQ (1<<4) /* If set, a SIMPLEREFRESH layer is used */
458 #define USEREQIMAGE (1<<5) /* ReqImage points to an image, which is used
460 #define NOREQBACKFILL (1<<6) /* Ignore BackFill pen */
461 /* The following flags are READ-ONLY */
462 #define REQOFFWINDOW (1<<12)
463 #define REQACTIVE (1<<13) /* Requester is active */
464 #define SYSREQUEST (1<<14) /* unused */
465 #define DEFERREFRESH (1<<15)
467 /* This struct is passes as second parameter to EasyRequestArgs() and
468 BuildEasyRequest(). It describes the general look of the requester. */
471 ULONG es_StructSize
; /* Should be sizeof(struct EasyStruct). Note
472 that this size may change, if you update the
473 includes! Do not use absolute values as
474 the size of pointers may vary on different
476 ULONG es_Flags
; /* None defined, yet */
477 CONST_STRPTR es_Title
; /* Text in the titlebar of the requester */
478 CONST_STRPTR es_TextFormat
; /* Text in requester (printf-style). The
479 arguments needed for that string are the
480 fourth paramter to EasyRequestArgs() */
481 CONST_STRPTR es_GadgetFormat
; /* Text of the gadgets, separated by |'s */
488 struct Window
* NextWindow
;
503 struct Menu
* MenuStrip
;
505 struct Requester
* FirstRequest
;
506 struct Requester
* DMRequest
;
510 struct Screen
* WScreen
;
511 struct RastPort
* RPort
;
517 struct RastPort
* BorderRPort
;
519 struct Gadget
* FirstGadget
;
520 struct Window
* Parent
;
521 struct Window
* Descendant
;
530 struct MsgPort
* UserPort
;
531 struct MsgPort
* WindowPort
;
532 struct IntuiMessage
* MessageKey
;
536 struct Image
* CheckMark
;
547 struct Layer
* WLayer
;
548 struct TextFont
* IFont
;
552 WORD RelLeftEdge
; // relative coordinates of the window
553 WORD RelTopEdge
; // to its parent window. If it is
554 // a window on the screen then these
555 // are the same as LeftEdge and TopEdge.
557 struct Window
* firstchild
; // pointer to first child
558 struct Window
* prevchild
; // if window is a child of a window
559 struct Window
* nextchild
; // then they are concatenated here.
560 struct Window
* parent
; // parent of this window
563 #define HAS_CHILDREN(w) (NULL != w->firstchild)
564 #define IS_CHILD(w) (NULL != w->parent)
579 struct Gadget
* FirstGadget
;
580 struct Image
* CheckMark
;
582 struct Screen
* Screen
;
583 struct BitMap
* BitMap
;
606 struct Gadget
* FirstGadget
;
607 struct Image
* CheckMark
;
609 struct Screen
* Screen
;
610 struct BitMap
* BitMap
;
619 /* ExtNewWindow specific fields */
620 struct TagItem
*Extension
;
624 #define WA_Dummy (TAG_USER + 99)
625 #define WA_Left (WA_Dummy + 1)
626 #define WA_Top (WA_Dummy + 2)
627 #define WA_Width (WA_Dummy + 3)
628 #define WA_Height (WA_Dummy + 4)
629 #define WA_DetailPen (WA_Dummy + 5)
630 #define WA_BlockPen (WA_Dummy + 6)
631 #define WA_IDCMP (WA_Dummy + 7)
632 #define WA_Flags (WA_Dummy + 8)
633 #define WA_Gadgets (WA_Dummy + 9)
634 #define WA_Checkmark (WA_Dummy + 10)
635 #define WA_Title (WA_Dummy + 11)
636 #define WA_ScreenTitle (WA_Dummy + 12)
637 #define WA_CustomScreen (WA_Dummy + 13)
638 #define WA_SuperBitMap (WA_Dummy + 14)
639 #define WA_MinWidth (WA_Dummy + 15)
640 #define WA_MinHeight (WA_Dummy + 16)
641 #define WA_MaxWidth (WA_Dummy + 17)
642 #define WA_MaxHeight (WA_Dummy + 18)
643 #define WA_InnerWidth (WA_Dummy + 19)
644 #define WA_InnerHeight (WA_Dummy + 20)
645 #define WA_PubScreenName (WA_Dummy + 21)
646 #define WA_PubScreen (WA_Dummy + 22)
647 #define WA_PubScreenFallBack (WA_Dummy + 23)
648 #define WA_WindowName (WA_Dummy + 24)
649 #define WA_Colors (WA_Dummy + 25)
650 #define WA_Zoom (WA_Dummy + 26)
651 #define WA_MouseQueue (WA_Dummy + 27)
652 #define WA_BackFill (WA_Dummy + 28)
653 #define WA_RptQueue (WA_Dummy + 29)
654 #define WA_SizeGadget (WA_Dummy + 30)
655 #define WA_DragBar (WA_Dummy + 31)
656 #define WA_DepthGadget (WA_Dummy + 32)
657 #define WA_CloseGadget (WA_Dummy + 33)
658 #define WA_Backdrop (WA_Dummy + 34)
659 #define WA_ReportMouse (WA_Dummy + 35)
660 #define WA_NoCareRefresh (WA_Dummy + 36)
661 #define WA_Borderless (WA_Dummy + 37)
662 #define WA_Activate (WA_Dummy + 38)
663 #define WA_RMBTrap (WA_Dummy + 39)
664 #define WA_WBenchWindow (WA_Dummy + 40)
665 #define WA_SimpleRefresh (WA_Dummy + 41)
666 #define WA_SmartRefresh (WA_Dummy + 42)
667 #define WA_SizeBRight (WA_Dummy + 43)
668 #define WA_SizeBBottom (WA_Dummy + 44)
669 #define WA_AutoAdjust (WA_Dummy + 45)
670 #define WA_GimmeZeroZero (WA_Dummy + 46)
671 #define WA_MenuHelp (WA_Dummy + 47)
672 #define WA_NewLookMenus (WA_Dummy + 48)
673 #define WA_AmigaKey (WA_Dummy + 49)
674 #define WA_NotifyDepth (WA_Dummy + 50)
675 #define WA_Pointer (WA_Dummy + 52)
676 #define WA_BusyPointer (WA_Dummy + 53)
677 #define WA_PointerDelay (WA_Dummy + 54)
678 #define WA_TabletMessages (WA_Dummy + 55)
679 #define WA_HelpGroup (WA_Dummy + 56)
680 #define WA_HelpGroupWindow (WA_Dummy + 57)
681 #define WA_ToolBox (WA_Dummy + 58)
683 /* AROS specific tags */
685 #define WA_Priority (WA_Dummy + 100)
686 #define WA_Parent (WA_Dummy + 101)
687 #define WA_InFrontOf (WA_Dummy + 102)
688 #define WA_Behind (WA_Dummy + 103)
689 #define WA_Visible (WA_Dummy + 104)
690 #define WA_Shape (WA_Dummy + 105)
691 #define WA_ShapeHook (WA_Dummy + 106)
694 #define WFLG_SIZEGADGET (1L<<0)
695 #define WFLG_DRAGBAR (1L<<1)
696 #define WFLG_DEPTHGADGET (1L<<2)
697 #define WFLG_CLOSEGADGET (1L<<3)
698 #define WFLG_SIZEBRIGHT (1L<<4)
699 #define WFLG_SIZEBBOTTOM (1L<<5)
701 #define WFLG_SMART_REFRESH 0
702 #define WFLG_SIMPLE_REFRESH (1L<<6)
703 #define WFLG_SUPER_BITMAP (1L<<7)
704 #define WFLG_OTHER_REFRESH ((1L<<6) | (1L<<7))
705 #define WFLG_REFRESHBITS WFLG_OTHER_REFRESH
707 #define WFLG_BACKDROP (1L<<8)
708 #define WFLG_REPORTMOUSE (1L<<9)
709 #define WFLG_GIMMEZEROZERO (1L<<10)
710 #define WFLG_BORDERLESS (1L<<11)
711 #define WFLG_ACTIVATE (1L<<12)
714 #define WFLG_WINDOWACTIVE (1L<<13)
715 #define WFLG_INREQUEST (1L<<14)
716 #define WFLG_MENUSTATE (1L<<15)
718 #define WFLG_RMBTRAP (1L<<16)
719 #define WFLG_NOCAREREFRESH (1L<<17)
720 #define WFLG_NW_EXTENDED (1L<<18)
722 #define WFLG_NEWLOOKMENUS (1L<<21)
725 #define WFLG_WINDOWREFRESH (1L<<24)
726 #define WFLG_WBENCHWINDOW (1L<<25)
727 #define WFLG_WINDOWTICKED (1L<<26)
728 #define WFLG_VISITOR (1L<<27)
729 #define WFLG_ZOOMED (1L<<28)
730 #define WFLG_HASZOOM (1L<<29)
731 #define WFLG_TOOLBOX (1L<<30)
733 #define DEFAULTMOUSEQUEUE 5
735 #define HC_GADGETHELP 1
751 struct Image
* NextImage
;
766 struct Border
* NextBorder
;
769 /***** Tablets *****/
780 struct TagItem
* td_TagList
; /* see below */
784 #define TABLETA_Dummy (TAG_USER + 0x3A000)
785 #define TABLETA_TabletZ (TABLETA_Dummy + 0x01)
786 #define TABLETA_RangeZ (TABLETA_Dummy + 0x02)
787 #define TABLETA_AngleX (TABLETA_Dummy + 0x03)
788 #define TABLETA_AngleY (TABLETA_Dummy + 0x04)
789 #define TABLETA_AngleZ (TABLETA_Dummy + 0x05)
790 #define TABLETA_Pressure (TABLETA_Dummy + 0x06)
791 #define TABLETA_ButtonBits (TABLETA_Dummy + 0x07)
792 #define TABLETA_InProximity (TABLETA_Dummy + 0x08)
793 #define TABLETA_ResolutionX (TABLETA_Dummy + 0x09)
794 #define TABLETA_ResolutionY (TABLETA_Dummy + 0x0a)
796 struct TabletHookData
798 struct Screen
* thd_Screen
;
801 LONG thd_ScreenChanged
;
806 #define SELECTDOWN (IECODE_LBUTTON)
807 #define SELECTUP (IECODE_LBUTTON | IECODE_UP_PREFIX)
808 #define MENUDOWN (IECODE_RBUTTON)
809 #define MENUUP (IECODE_RBUTTON | IECODE_UP_PREFIX)
810 #define MIDDLEDOWN (IECODE_MBUTTON)
811 #define MIDDLEUP (IECODE_MBUTTON | IECODE_UP_PREFIX)
812 #define ALTLEFT (IEQUALIFIER_LALT)
813 #define ALTRIGHT (IEQUALIFIER_RALT)
814 #define AMIGALEFT (IEQUALIFIER_LCOMMAND)
815 #define AMIGARIGHT (IEQUALIFIER_RCOMMAND)
816 #define AMIGAKEYS (AMIGALEFT | AMIGARIGHT)
818 #define CURSORUP 0x4C
819 #define CURSORDOWN 0x4D
820 #define CURSORRIGHT 0x4E
821 #define CURSORLEFT 0x4F
823 #define KEYCODE_Q 0x10
824 #define KEYCODE_Z 0x31
825 #define KEYCODE_X 0x32
826 #define KEYCODE_V 0x34
827 #define KEYCODE_B 0x35
828 #define KEYCODE_N 0x36
829 #define KEYCODE_M 0x37
830 #define KEYCODE_LESS 0x38
831 #define KEYCODE_GREATER 0x39
845 struct Remember
* NextRemember
;
858 #define FOREVER for(;;)
859 #define SIGN(x) (((x)>0) - ((x)<0))
862 #define ALERT_TYPE 0x80000000
863 #define RECOVERY_ALERT 0x00000000
864 #define DEADEND_ALERT 0x80000000
866 #define AUTOFRONTPEN 0
867 #define AUTOBACKPEN 1
868 #define AUTODRAWMODE JAM2
869 #define AUTOLEFTEDGE 6
870 #define AUTORIGHTEDGE 3
871 #define AUTOITEXTFONT NULL
872 #define AUTONEXTTEXT NULL
874 /* NewDecorator structure used by ChangeDecoration
875 the three Objects (nd_Window, nd_Screen and nd_Menu
876 must be installed and point to decorator objects
877 the port is used for different issues and will be filled
878 up with DecoratorMessages */
881 { struct Node nd_Node
;
882 struct MsgPort
*nd_Port
;
885 STRPTR nd_IntPattern
; /* Private, transformated Pattern be dos/ParsePattern() */
891 struct DecoratorMessage
893 struct MagicMessage dm_Message
;
900 #define DECORATOR_VERSION 0
902 /* there is only one Message in the initial decoration system
903 it will be sent to the decorator port to signal that it´ll not be used any longer
904 and may be destroyed, in that case the dm_Object contains the NewDecorator struct
905 Intuition does not touch anything, the decorator have to destroy all objects as well as the
906 NewDecorator struct. */
908 #define DM_CLASS_DESTROYDECORATOR 0x8001
910 struct ScreenNotifyMessage
912 struct MagicMessage snm_Message
;
913 ULONG snm_Class
; /* Notification Class ID same as SNA_Notify */
914 ULONG snm_Code
; /* Code only supported for ScreenDepth() and will put the Flags in */
915 IPTR snm_Object
; /* Pointer to the Object that caused this message */
916 IPTR snm_UserData
; /* will be filled with SNA_UserData */
919 #define SCREENNOTIFY_VERSION 0
921 #define SNA_PubName (TAG_USER + 0x01) /* public screen name of NULL for all screens */
922 #define SNA_Notify (TAG_USER + 0x02) /* Flags to look for see below */
923 #define SNA_UserData (TAG_USER + 0x03) /* this tag will be passed to the screennotify message */
924 #define SNA_SigTask (TAG_USER + 0x04) /* if port == NULL, a sigbit will be set for this task */
925 #define SNA_SigBit (TAG_USER + 0x05) /* signal bit to set if port == NULL*/
926 #define SNA_MsgPort (TAG_USER + 0x06) /* if != NULL post mesage to this port */
927 #define SNA_Priority (TAG_USER + 0x07) /* */
928 #define SNA_Hook (TAG_USER + 0x08)
930 /* SNA_Notify (all unassigned bits are reserved for system use) */
931 #define SNOTIFY_AFTER_OPENSCREEN (1<<0) /* screen has been opened */
932 #define SNOTIFY_BEFORE_CLOSESCREEN (1<<1) /* going to close screen */
933 #define SNOTIFY_AFTER_OPENWB (1<<2) /* Workbench is open */
934 #define SNOTIFY_BEFORE_CLOSEWB (1<<3) /* Workbench is going to be closed */
935 #define SNOTIFY_AFTER_OPENWINDOW (1<<4) /* new window */
936 #define SNOTIFY_BEFORE_CLOSEWINDOW (1<<5) /* window is going to be closed */
937 #define SNOTIFY_PUBSCREENSTATE (1<<6) /* PubScreenState() */
938 #define SNOTIFY_LOCKPUBSCREEN (1<<7) /* LockPubScreen() */
939 #define SNOTIFY_SCREENDEPTH (1<<8) /* ScreenDepth() */
940 #define SNOTIFY_AFTER_CLOSESCREEN (1<<9) /* notify after CloseScreen() */
941 #define SNOTIFY_AFTER_CLOSEWINDOW (1<<10) /* dto. CloseWindow() */
942 #define SNOTIFY_BEFORE_OPENSCREEN (1<<11) /* notify before OpenScreen() */
943 #define SNOTIFY_BEFORE_OPENWINDOW (1<<12) /* dto. OpenWindow() */
944 #define SNOTIFY_BEFORE_OPENWB (1<<13) /* like OPENSCREEN */
945 #define SNOTIFY_AFTER_CLOSEWB (1<<14) /* like CLOSESCREEN */
946 #define SNOTIFY_WAIT_REPLY (1<<15) /* wait for reply before taking action */
947 #define SNOTIFY_UNLOCKPUBSCREEN (1<<16) /* UnlockPubScreen() */
948 #define SNOTIFY_BEFORE_UPDATEINTUITION (1<<17) /* Intuition is going to be updated */
949 #define SNOTIFY_AFTER_UPDATEINTUITION (1<<18) /* Intuition is updated */
950 #endif /* INTUITION_INTUITION_H */