Add gcc/lib/app versions to trace log
[forms.git] / test / demo.H
bloba3b5ce4ee51a740908b98a8acc3cd84bbb5c1e6f
2  /*
3   *   Copyright (C) 2007, Harbour, All rights reserved.
4   */
6 #ifndef _DEMO_H_
7 #define _DEMO_H_
9 #include <F_App.H>
11 using namespace F;
12 using namespace ost;
14 class app_specific_ui {
16  public:
18   app_specific_ui() { }
19   virtual ~app_specific_ui() { }
20   //virtual void log() = 0;
21   virtual void beep() { }
22   virtual void progress_bar() { debug("default progress_bar"); }
23   virtual void some_specific_app_output() { }
24   virtual void some_specific_app_input() { }
27 class batch_ui: public F_Batch_UI, public app_specific_ui {
28  public:
29    batch_ui() : F_Batch_UI(/* 1 */) { }
30    ~batch_ui() { }
31    void init();
32    void run();
35 class console_ui: public F_Linux_Console_UI, public app_specific_ui {
36  public:
37    console_ui() : F_Linux_Console_UI(/* 2 */) { }
38    ~console_ui() { }
39    void init();
40    void progress_bar() { debug("console_ui progress_bar"); }
43 class x11_ui: public F_FLTK_UI, public app_specific_ui {
44  public:
45    x11_ui() : F_FLTK_UI() { }
46    ~x11_ui() { }
47    void init();
50 class demo_app : public F_App {
51   // available ui's for this app
52   batch_ui   *ui1;
53   console_ui ui2;
54   x11_ui     ui3;
55 public:
56   demo_app(int argc, char **argv, const char *name = 0,
57     const char *version = 0, const char *author = 0, const char *license = 0,
58     CommandOption *opts = 0) :
59       F_App(argc, argv, name, version, author, license, opts) {
60          ui1 = new batch_ui;
61  }
62   ~demo_app() { delete ui1; }
63   void parse_command_options(void);
64   void main_loop();
65   app_specific_ui *ui() { return dynamic_cast<app_specific_ui *>(ui_); }
68 #endif