home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC5.DMS / in.adf / EO-Demos.lha / EasyObjects-Demos / HelloWorld / HelloWorld.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-04  |  2.1 KB  |  89 lines

  1.  
  2. // HelloWorld.c
  3. //
  4. // Dieses Programm öffnet ein Fenster, in dem der Text "Hello World"
  5. // ausgegeben wird. Allerdings kommt der Layouter zum Einsatz - das
  6. // ganze zeigt ganz gut den Aufbau einer typischen Applikation mit
  7. // der Klassenbibliothek
  8. //
  9. // Autor: Jochen Becher
  10.  
  11. #include <classes/layouter/windows.h>
  12. #include <classes/layouter/boopsigadgets.h>
  13. #include <classes/exec/libraries.h>
  14. #pragma header
  15.  
  16. class HelloWorldWindowC : public StandardWindowC {
  17. public:
  18.     HelloWorldWindowC(GTIDCMPortC &, ScreenC &);
  19.     ~HelloWorldWindowC();
  20. private:
  21.     LBTextC hello;
  22.     GeometryC helloGeo;
  23.     WindowCloseHandlerC wch;
  24. };
  25.  
  26. HelloWorldWindowC::HelloWorldWindowC(GTIDCMPortC &p, ScreenC &s)
  27.     : StandardWindowC(p,s,NULL,
  28.         TAG_END),
  29.       hello(NULL,*this,LAYOUT_AUTOSIZE,LAYOUT_AUTOSIZE,
  30.        LBA_Text,"Hello World!",
  31.        LBA_Adjust,LB_AdjustCenter,
  32.        TAG_END),
  33.       helloGeo(hello,
  34.        LAYOUT_GROUP,NULL,2,LAYOUT_GROUP,NULL,-2,
  35.        LAYOUT_GROUP,NULL,2,LAYOUT_GROUP,NULL,-2),
  36.       wch(*this)
  37. {
  38.     gadgets.add(hello);
  39.     innerGeo.add(helloGeo);
  40. }
  41.  
  42. HelloWorldWindowC::~HelloWorldWindowC()
  43. {
  44.     // Dieses close() im Destruktor ist wichtig (obwohl die Fensterklasse
  45.     // WindowC dieses auch enthält), damit das Fenster geschlossen ist,
  46.     // bevor die Gadgets freigegeben werden - ein Refresh innerhalb dieser
  47.     // Zeitspanne könnte sonst katastrophale Folgen haben.
  48.     close();
  49. }
  50.  
  51. LibraryBaseErrC GadToolsBase("gadtools.library",37);
  52. LibraryBaseErrC UtilityBase("utility.library",37);
  53. LibraryBaseErrC CxBase("commodities.library",37);
  54. LibraryBaseErrC LayersBase("layers.library",37);
  55. LibraryBaseErrC WorkbenchBase("workbench.library",37);
  56.  
  57. int main()
  58. {
  59.     if (!LibraryBaseC::areAllOpen())
  60.         return 20;
  61.  
  62.     // diese Klasse empfängt und verarbeitet alle Signale
  63.     SignalsC sc;
  64.  
  65.     // öffentlichen Standardbildschirm sperren
  66.     PublicScreenC screen();
  67.     if (!screen.lock(NULL))
  68.         return 100;
  69.  
  70.     // der IDCMPort (in der GadTools Version) für die Fenster
  71.     GTIDCMPortC port;
  72.     sc.add(port);
  73.  
  74.     // Das Fenster
  75.     HelloWorldWindowC window(port,screen);
  76.  
  77.     // noch einen Ctrl C HandlerC zur Sicherheit einhängen
  78.     CtrlCHandlerC ctrlchandler;
  79.     sc.add(ctrlchandler);
  80.  
  81.     // Fenster öffnen
  82.     window.open();
  83.  
  84.     // THE BIG AND EASY ONE!
  85.     sc.loop();
  86.  
  87.     return 0;
  88. }
  89.