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