1 /********************************************************************************
2 *                                                                               *
3 *                                 Test Console Widget                           *
4 *                                                                               *
5 *********************************************************************************
6 * Copyright (C) 2006,2021 by Jeroen van der Zijp.   All Rights Reserved.        *
7 ********************************************************************************/
8 #include "fx.h"
9 #include <stdio.h>
10 #include <stdlib.h>
11 #include <math.h>
12 
13 
14 
15 
16 /*******************************************************************************/
17 
18 
19 // Console Window
20 class ConsoleWindow : public FXMainWindow {
21   FXDECLARE(ConsoleWindow)
22 protected:
23   FXToolTip       *tooltip;
24   FXMenuBar       *menubar;
25   FXMenuPane      *filemenu;
26   FXMenuPane      *helpmenu;
27   FXVerticalFrame *contents;
28   FXVerticalFrame *frame;
29   FXConsole       *console;
30 protected:
ConsoleWindow()31   ConsoleWindow(){}
32 public:
33   long onCmdAbout(FXObject*,FXSelector,void*);
34 public:
35   enum{
36     ID_ABOUT=FXMainWindow::ID_LAST,
37     ID_CONSOLE,
38     ID_LAST
39     };
40 public:
41   ConsoleWindow(FXApp* a);
42   virtual void create();
43   virtual ~ConsoleWindow();
44   };
45 
46 
47 /*******************************************************************************/
48 
49 // Map
50 FXDEFMAP(ConsoleWindow) ConsoleWindowMap[]={
51   FXMAPFUNC(SEL_COMMAND,ConsoleWindow::ID_ABOUT,ConsoleWindow::onCmdAbout),
52   };
53 
54 
55 // Object implementation
FXIMPLEMENT(ConsoleWindow,FXMainWindow,ConsoleWindowMap,ARRAYNUMBER (ConsoleWindowMap))56 FXIMPLEMENT(ConsoleWindow,FXMainWindow,ConsoleWindowMap,ARRAYNUMBER(ConsoleWindowMap))
57 
58 
59 /*******************************************************************************/
60 
61 // Make some windows
62 ConsoleWindow::ConsoleWindow(FXApp* a):FXMainWindow(a,"Console",NULL,NULL,DECOR_ALL,0,0,800,800){
63 
64   // Menubar
65   menubar=new FXMenuBar(this,LAYOUT_SIDE_TOP|LAYOUT_FILL_X);
66 
67   // Contents
68   contents=new FXVerticalFrame(this,LAYOUT_SIDE_TOP|FRAME_NONE|LAYOUT_FILL_X|LAYOUT_FILL_Y);
69 
70   // Console frame
71   frame=new FXVerticalFrame(contents,FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X|LAYOUT_FILL_Y, 0,0,0,0, 0,0,0,0);
72 
73   // Console widget
74   console=new FXConsole(frame,this,ID_CONSOLE,LAYOUT_FILL_X|LAYOUT_FILL_Y,0,0,0,0, 2,2,2,2);
75 
76   // File Menu
77   filemenu=new FXMenuPane(this);
78   new FXMenuCommand(filemenu,"&Quit\tCtl-Q",NULL,getApp(),FXApp::ID_QUIT);
79   new FXMenuTitle(menubar,"&File",NULL,filemenu);
80 
81   helpmenu=new FXMenuPane(this);
82   new FXMenuCommand(helpmenu,"About...",NULL,this,ID_ABOUT);
83   new FXMenuTitle(menubar,"&Help",NULL,helpmenu,LAYOUT_RIGHT);
84 
85   // Tooltip
86   tooltip=new FXToolTip(getApp());
87   }
88 
89 
90 // Start
create()91 void ConsoleWindow::create(){
92   FXMainWindow::create();
93   show(PLACEMENT_SCREEN);
94   }
95 
96 
97 // About
onCmdAbout(FXObject *,FXSelector,void *)98 long ConsoleWindow::onCmdAbout(FXObject*,FXSelector,void*){
99   FXMessageBox::information(this,MBOX_OK,"About Console","Console Widget.\nCopyright (C) 2006 Jeroen van der Zijp");
100   return 1;
101   }
102 
103 
104 // Delete it
~ConsoleWindow()105 ConsoleWindow::~ConsoleWindow(){
106   delete filemenu;
107   delete helpmenu;
108   }
109 
110 
111 /*******************************************************************************/
112 
113 
114 // Start the whole thing
main(int argc,char * argv[])115 int main(int argc,char *argv[]){
116 
117   // Make application
118   FXApp application("Console");
119 
120   // Open display
121   application.init(argc,argv);
122 
123   // Make window
124   new ConsoleWindow(&application);
125 
126   // Create app
127   application.create();
128 
129   // Run
130   return application.run();
131   }
132 
133 
134