home *** CD-ROM | disk | FTP | other *** search
-
- // HelloWorld.c
- //
- // Dieses Programm öffnet ein Fenster, in dem der Text "Hello World"
- // ausgegeben wird. Allerdings kommt der Layouter zum Einsatz - das
- // ganze zeigt ganz gut den Aufbau einer typischen Applikation mit
- // der Klassenbibliothek
- //
- // Autor: Jochen Becher
-
- #include <classes/layouter/windows.h>
- #include <classes/layouter/boopsigadgets.h>
- #include <classes/exec/libraries.h>
- #pragma header
-
- class HelloWorldWindowC : public StandardWindowC {
- public:
- HelloWorldWindowC(GTIDCMPortC &, ScreenC &);
- ~HelloWorldWindowC();
- private:
- LBTextC hello;
- GeometryC helloGeo;
- WindowCloseHandlerC wch;
- };
-
- HelloWorldWindowC::HelloWorldWindowC(GTIDCMPortC &p, ScreenC &s)
- : StandardWindowC(p,s,NULL,
- TAG_END),
- hello(NULL,*this,LAYOUT_AUTOSIZE,LAYOUT_AUTOSIZE,
- LBA_Text,"Hello World!",
- LBA_Adjust,LB_AdjustCenter,
- TAG_END),
- helloGeo(hello,
- LAYOUT_GROUP,NULL,2,LAYOUT_GROUP,NULL,-2,
- LAYOUT_GROUP,NULL,2,LAYOUT_GROUP,NULL,-2),
- wch(*this)
- {
- gadgets.add(hello);
- innerGeo.add(helloGeo);
- }
-
- HelloWorldWindowC::~HelloWorldWindowC()
- {
- // Dieses close() im Destruktor ist wichtig (obwohl die Fensterklasse
- // WindowC dieses auch enthält), damit das Fenster geschlossen ist,
- // bevor die Gadgets freigegeben werden - ein Refresh innerhalb dieser
- // Zeitspanne könnte sonst katastrophale Folgen haben.
- 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
- HelloWorldWindowC 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;
- }
-