/* ClassAct Inter-Connection Notification Example Ported to E by Eric Sauvageau. */ OPT PREPROCESS MODULE 'tools/boopsi' MODULE 'exec/nodes','intuition','graphics','intuition/intuition', 'intuition/gadgetclass','intuition/imageclass', 'intuition/intuitionbase','intuition/classusr', 'intuition/gadgetclass','intuition/cghooks','intuition/icclass', 'intuition/classes' MODULE 'libraries/gadtools','intuition/icclass','dos','dos/dos', 'graphics','intuition','intuition/intuition','utility/tagitem' MODULE 'window','classes/window','layout','gadgets/layout','gadgets/palette', 'gadgets/button','images/bevel','palette','images/label','label', 'classes/window','other/classact_macros','button' CONST ID_BUTTON = 1 CONST ID_FOREGROUND = 2 CONST ID_BACKGROUND = 3 PROC main() DEF window:PTR TO window, but_object:PTR TO object, win_object:PTR TO object, mapfg2button, mapbg2button, tmpres1,tmpres2 DEF wait, signal, result, done=FALSE, code mapfg2button := [PALETTE_COLOR, BUTTON_TEXTPEN, TAG_END] mapbg2button := [PALETTE_COLOR, BUTTON_BACKGROUNDPEN, TAG_END] windowbase := OpenLibrary('window.class',0) layoutbase := OpenLibrary('gadgets/layout.gadget',0) buttonbase := OpenLibrary('gadgets/button.gadget',0) palettebase := OpenLibrary('gadgets/palette.gadget',0) labelbase := OpenLibrary('images/label.image',0) IF (windowbase AND layoutbase AND buttonbase AND palettebase AND labelbase) -> Create the window object. win_object := WindowObject, WA_SCREENTITLE, 'ClassAct Copyright 1995, Phantom Development LLC.', WA_TITLE, 'ClassAct Example', WA_SIZEGADGET, TRUE, WA_LEFT, 40, WA_TOP, 30, WA_DEPTHGADGET, TRUE, WA_DRAGBAR, TRUE, WA_CLOSEGADGET, TRUE, WA_ACTIVATE, TRUE, WA_SMARTREFRESH, TRUE, WINDOW_PARENTGROUP, VLayoutObject, LAYOUT_SPACEOUTER, TRUE, LAYOUT_DEFERLAYOUT, TRUE, LAYOUT_BEVELSTYLE, GroupFrame, LAYOUT_LABEL, 'InterConnection', StartMember, but_object := ButtonObject, GA_TEXT, '_Inter-Connection Example', GA_ID, ID_BUTTON, EndMember, CHILD_WEIGHTEDHEIGHT, 0, StartMember, HLayoutObject, LAYOUT_SPACEOUTER, FALSE, StartMember, PaletteObject, GA_ID, ID_FOREGROUND, PALETTE_NUMCOLORS, 8, PALETTE_COLOR, 1, ICA_TARGET, but_object, /* object to connect to */ ICA_MAP, mapfg2button, /* tag mapping array */ EndMember, CHILD_LABEL, LabelObject, LABEL_TEXT, '_ForeGround', LabelEnd, CHILD_MINWIDTH, 90, CHILD_MINHEIGHT, 20, StartMember, PaletteObject, GA_ID, ID_BACKGROUND, PALETTE_NUMCOLORS, 8, PALETTE_COLOR, 0, ICA_TARGET, but_object, /* object to connect to */ ICA_MAP, mapbg2button, /* tag mapping array */ EndMember, CHILD_LABEL, LabelObject, LABEL_TEXT, '_BackGround', LabelEnd, CHILD_MINWIDTH, 90, CHILD_MINHEIGHT, 20, EndMember, EndMember, EndWindow -> Object creation sucessful? IF win_object -> Open the window. IF (window := CA_OpenWindow(win_object)) -> Obtain the window wait signal mask. GetAttr(WINDOW_SIGMASK, win_object, {signal}) -> Input Event Loop WHILE (done = FALSE) wait := Wait(signal OR SIGBREAKF_CTRL_C) IF (wait AND SIGBREAKF_CTRL_C) done := TRUE ELSE WHILE ((result := CA_HandleInput(win_object,{code})) <> WMHI_LASTMSG) tmpres1 := (result AND WMHI_CLASSMASK) SELECT tmpres1 CASE WMHI_CLOSEWINDOW ; done := TRUE CASE WMHI_GADGETUP tmpres2 := (result AND WMHI_GADGETMASK) SELECT tmpres2 CASE ID_BUTTON ; NOP ENDSELECT ENDSELECT ENDWHILE ENDIF ENDWHILE ENDIF /* Disposing of the window object will * also close the window if it is * already opened and it will dispose of * all objects attached to it. */ DisposeObject(win_object ) ENDIF ENDIF -> Close the classes. IF labelbase THEN CloseLibrary(labelbase) IF palettebase THEN CloseLibrary(palettebase) IF buttonbase THEN CloseLibrary(buttonbase) IF layoutbase THEN CloseLibrary(layoutbase) IF windowbase THEN CloseLibrary(windowbase) ENDPROC