home *** CD-ROM | disk | FTP | other *** search
-
-
- #include <classes/layouter/windows.h>
- #include <classes/layouter/boopsigadgets.h>
- #include <classes/layouter/decorgadgets.h>
- #include <classes/exec/libraries.h>
- #pragma header
-
- class ThreeButtonGroupC : public GeometryGroupC {
- public:
- ThreeButtonGroupC(
- GroupLayoutC &frame,
- LGButtonC &left,
- LGButtonC &middle, LGButtonC &right,
- ULONG topRelation, GeometryC *topObject, WORD topOffset,
- ULONG bottomRelation, GeometryC *bottomObject, WORD bottomOffset,
- ULONG leftRelation, GeometryC *leftObject, WORD leftOffset,
- ULONG rightRelation, GeometryC *rightObject, WORD rightOffset);
- private:
- GeometryC leftGeo;
- GeometryC middleGeo;
- GeometryC rightGeo;
- };
-
- ThreeButtonGroupC::ThreeButtonGroupC(
- GroupLayoutC &frame,
- LGButtonC &left,
- LGButtonC &middle, LGButtonC &right,
- ULONG topRelation, GeometryC *topObject, WORD topOffset,
- ULONG bottomRelation, GeometryC *bottomObject, WORD bottomOffset,
- ULONG leftRelation, GeometryC *leftObject, WORD leftOffset,
- ULONG rightRelation, GeometryC *rightObject, WORD rightOffset)
- : GeometryGroupC(frame,
- topRelation, topObject, topOffset,
- bottomRelation, bottomObject, bottomOffset,
- leftRelation, leftObject, leftOffset,
- rightRelation, rightObject, rightOffset),
- leftGeo(left,
- LAYOUT_SIZE,NULL,0,LAYOUT_GROUP,NULL,0,
- LAYOUT_PROCENTCENTER,NULL,20,LAYOUT_MAXSIZE,NULL,40),
- middleGeo(middle,
- LAYOUT_SIZE,NULL,0,LAYOUT_GROUP,NULL,0,
- LAYOUT_PROCENTCENTER,&leftGeo,50,LAYOUT_MAXSIZE,NULL,0),
- rightGeo(right,
- LAYOUT_SIZE,NULL,0,LAYOUT_GROUP,NULL,0,
- LAYOUT_PROCENTCENTER,&middleGeo,80,LAYOUT_MAXSIZE,NULL,0)
- {
- GeometryGroupC::add(leftGeo);
- GeometryGroupC::add(middleGeo);
- GeometryGroupC::add(rightGeo);
- }
-
- class SUCButtonGroupC : public ThreeButtonGroupC, public GadgetListC {
- public:
- SUCButtonGroupC(WindowC &,
- ULONG topRelation, GeometryC *topObject, WORD topOffset,
- ULONG bottomRelation, GeometryC *bottomObject, WORD bottomOffset,
- ULONG leftRelation, GeometryC *leftObject, WORD leftOffset,
- ULONG rightRelation, GeometryC *rightObject, WORD rightOffset);
- private:
- LBBevelboxC frame;
- LBIButtonC left,middle,right;
- };
-
- SUCButtonGroupC::SUCButtonGroupC(WindowC &w,
- ULONG topRelation, GeometryC *topObject, WORD topOffset,
- ULONG bottomRelation, GeometryC *bottomObject, WORD bottomOffset,
- ULONG leftRelation, GeometryC *leftObject, WORD leftOffset,
- ULONG rightRelation, GeometryC *rightObject, WORD rightOffset)
- : ThreeButtonGroupC(frame,left,middle,right,
- topRelation,topObject,topOffset,
- bottomRelation,bottomObject,bottomOffset,
- leftRelation,leftObject,leftOffset,
- rightRelation,rightObject,rightOffset),
- frame(w),
- left(NULL,w,LAYOUT_AUTOSIZE,LAYOUT_AUTOSIZE,
- GA_Text,"Save",
- TAG_END),
- middle(NULL,w,LAYOUT_AUTOSIZE,LAYOUT_AUTOSIZE,
- GA_Text,"Use",
- TAG_END),
- right(NULL,w,LAYOUT_AUTOSIZE,LAYOUT_AUTOSIZE,
- GA_Text,"Cancel",
- TAG_END)
- {
- GadgetListC::add(frame);
- GadgetListC::add(left);
- GadgetListC::add(middle);
- GadgetListC::add(right);
- }
-
- class ButtonWindowC : public StandardWindowC {
- public:
- ButtonWindowC(GTIDCMPortC &, ScreenC &);
- ~ButtonWindowC();
- private:
- SUCButtonGroupC suc;
- WindowCloseHandlerC wch;
- };
-
- ButtonWindowC::ButtonWindowC(GTIDCMPortC &p, ScreenC &s)
- : StandardWindowC(p,s,NULL,
- TAG_END),
- suc(*this,
- LAYOUT_GROUP,NULL,2,LAYOUT_GROUP,NULL,-2,
- LAYOUT_GROUP,NULL,2,LAYOUT_GROUP,NULL,-2),
- wch(*this)
- {
- gadgets.add(suc);
- innerGeo.add(suc);
- }
-
- ButtonWindowC::~ButtonWindowC()
- {
- close();
- }
-
- LibraryBaseErrC GadToolsBase("gadtools.library",37);
- LibraryBaseErrC UtilityBase("utility.library",37);
- LibraryBaseErrC CxBase("commodities.library",37);
- LibraryBaseErrC LayersBase("layers.library",37);
- LibraryBaseErrC WorkbenchBase("workbench.library",37);
-
- int main()
- {
- if (!LibraryBaseC::areAllOpen())
- return 20;
-
- // diese Klasse empfängt und verarbeitet alle Signale
- SignalsC sc;
-
- // öffentlichen Standardbildschirm sperren
- PublicScreenC screen();
- if (!screen.lock(NULL))
- return 100;
-
- // der IDCMPort (in der GadTools Version) für die Fenster
- GTIDCMPortC port;
- sc.add(port);
-
- // Das Fenster
- ButtonWindowC window(port,screen);
-
- // noch einen Ctrl C HandlerC zur Sicherheit einhängen
- CtrlCHandlerC ctrlchandler;
- sc.add(ctrlchandler);
-
- // Fenster öffnen
- window.open();
-
- // THE BIG AND EASY ONE!
- sc.loop();
-
- return 0;
- }
-