]> git.saurik.com Git - wxWidgets.git/blame - user/wxTest/wxTest.cpp
misleading wxASSERT() corrected
[wxWidgets.git] / user / wxTest / wxTest.cpp
CommitLineData
c801d85f
KB
1/*
2 * Program: wxTest
3 *
4 * Author: Robert Roebling
5 *
6 * Copyright: (C) 1997, GNU (Robert Roebling)
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23#ifdef __GNUG__
24#pragma implementation "wxTest.h"
25#endif
26
27#include "wxTest.h"
28
29#include "folder.xpm"
30#include "list.xpm"
31
32//-----------------------------------------------------------------------------
33// main program
34//-----------------------------------------------------------------------------
35
36IMPLEMENT_APP(MyApp)
37
38//-----------------------------------------------------------------------------
39// MyDialog
40//-----------------------------------------------------------------------------
41
42const ID_RETURN = 100;
43const ID_HELLO = 101;
44
45const ID_CHECKBOX = 110;
46const ID_CHECKBOX_CHECK = 110;
47const ID_CHECKBOX_UNCHECK = 112;
48
49const ID_TEXTCTRL = 115;
50const ID_TEXTCTRL_SET = 116;
51const ID_TEXTCTRL_DEL = 117;
52
53const ID_CHOICE = 120;
54const ID_CHOICE_SEL_NUM = 121;
55const ID_CHOICE_SEL_STR = 122;
56const ID_CHOICE_CLEAR = 123;
57const ID_CHOICE_APPEND = 124;
58
59const ID_LISTBOX = 130;
60const ID_LISTBOX_SEL_NUM = 131;
61const ID_LISTBOX_SEL_STR = 132;
62const ID_LISTBOX_CLEAR = 133;
63const ID_LISTBOX_APPEND = 134;
64
65const ID_RADIOBOX = 130;
66const ID_RADIOBOX_SEL_NUM = 131;
67const ID_RADIOBOX_SEL_STR = 132;
68
69BEGIN_EVENT_TABLE(MyDialog,wxDialog)
70 EVT_BUTTON (ID_RETURN, MyDialog::OnReturnButton)
71 EVT_BUTTON (ID_HELLO, MyDialog::OnHelloButton)
72 EVT_CHECKBOX (ID_CHECKBOX, MyDialog::OnCheckBox)
73 EVT_BUTTON (ID_CHECKBOX_CHECK, MyDialog::OnCheckBoxButtons)
74 EVT_BUTTON (ID_CHECKBOX_UNCHECK, MyDialog::OnCheckBoxButtons)
75 EVT_TEXT (ID_TEXTCTRL, MyDialog::OnTextCtrl)
76 EVT_BUTTON (ID_TEXTCTRL_SET, MyDialog::OnTextCtrlButtons)
77 EVT_BUTTON (ID_TEXTCTRL_DEL, MyDialog::OnTextCtrlButtons)
78 EVT_CHOICE (ID_CHOICE, MyDialog::OnChoice)
79 EVT_BUTTON (ID_CHOICE_SEL_NUM, MyDialog::OnChoiceButtons)
80 EVT_BUTTON (ID_CHOICE_SEL_STR, MyDialog::OnChoiceButtons)
81 EVT_BUTTON (ID_CHOICE_CLEAR, MyDialog::OnChoiceButtons)
82 EVT_BUTTON (ID_CHOICE_APPEND, MyDialog::OnChoiceButtons)
83 EVT_LISTBOX (ID_LISTBOX, MyDialog::OnListBox)
84 EVT_BUTTON (ID_LISTBOX_SEL_NUM, MyDialog::OnListBoxButtons)
85 EVT_BUTTON (ID_LISTBOX_SEL_STR, MyDialog::OnListBoxButtons)
86 EVT_BUTTON (ID_LISTBOX_CLEAR, MyDialog::OnListBoxButtons)
87 EVT_BUTTON (ID_LISTBOX_APPEND, MyDialog::OnListBoxButtons)
88 EVT_RADIOBOX (ID_RADIOBOX, MyDialog::OnRadioBox)
89 EVT_BUTTON (ID_RADIOBOX_SEL_NUM, MyDialog::OnRadioBoxButtons)
90 EVT_BUTTON (ID_RADIOBOX_SEL_STR, MyDialog::OnRadioBoxButtons)
91END_EVENT_TABLE()
92
93//-----------------------------------------------------------------------------
94
95IMPLEMENT_DYNAMIC_CLASS(MyDialog, wxDialog)
96
97MyDialog::MyDialog( wxWindow *parent ) :
98 wxDialog( parent, -1, "TestDialog", wxPoint(20,100), wxSize(700,400), wxDIALOG_MODAL )
99{
100 m_text1 = NULL;
101 m_text2 = NULL;
102
103 (void)new wxStaticBox( this, -1, "CheckBox group", wxPoint(20,10), wxSize(140,180) );
104 m_checkbox = new wxCheckBox( this, ID_CHECKBOX, "CheckBox", wxPoint(40,35), wxSize(100,30) );
105 (void)new wxButton( this, ID_CHECKBOX_CHECK, "Check", wxPoint(40,85), wxSize(100,30) );
106 (void)new wxButton( this, ID_CHECKBOX_UNCHECK, "Uncheck", wxPoint(40,135), wxSize(100,30) );
107
108 (void)new wxStaticBox( this, -1, "TextCtrl group", wxPoint(20,200), wxSize(140,180) );
109 m_textctrl = new wxTextCtrl( this, ID_TEXTCTRL, "TextCtrl", wxPoint(40,35+190), wxSize(100,30) );
110 (void)new wxButton( this, ID_TEXTCTRL_SET, "Set 'Hi!'", wxPoint(40,85+190), wxSize(100,30) );
111 (void)new wxButton( this, ID_TEXTCTRL_DEL, "Delete", wxPoint(40,135+190), wxSize(100,30) );
112
113 wxString choices[4] =
114 {
115 "This",
116 "is",
117 "a",
118 "wonderfull example."
119 };
120
121 (void)new wxStaticBox( this, -1, "Choice group", wxPoint(180,10), wxSize(140,330) );
122 m_choice = new wxChoice( this, ID_CHOICE, wxPoint(200,35), wxSize(100,30), 4, choices );
123 (void)new wxButton( this, ID_CHOICE_SEL_NUM, "Select #2", wxPoint(200,130), wxSize(100,30) );
124 (void)new wxButton( this, ID_CHOICE_SEL_STR, "Select 'This'", wxPoint(200,180), wxSize(100,30) );
125 (void)new wxButton( this, ID_CHOICE_CLEAR, "Clear", wxPoint(200,230), wxSize(100,30) );
126 (void)new wxButton( this, ID_CHOICE_APPEND, "Append 'Hi!'", wxPoint(200,280), wxSize(100,30) );
127
128 (void)new wxStaticBox( this, 100, "ListBox group", wxPoint(340,10), wxSize(140,330) );
129 m_listbox = new wxListBox( this, ID_LISTBOX, wxPoint(360,35), wxSize(100,70), 4, choices );
130 (void)new wxButton( this, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(360,130), wxSize(100,30) );
131 (void)new wxButton( this, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(360,180), wxSize(100,30) );
132 (void)new wxButton( this, ID_LISTBOX_CLEAR, "Clear", wxPoint(360,230), wxSize(100,30) );
133 (void)new wxButton( this, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(360,280), wxSize(100,30) );
134
135 (void)new wxStaticBox( this, -1, "RadioBox group", wxPoint(500,10), wxSize(180,230) );
136 m_radiobox = new wxRadioBox( this, ID_RADIOBOX, "Test", wxPoint(520,35), wxSize(-1,-1), 4, choices,
137 1, wxRA_VERTICAL );
138
139 (void)new wxButton( this, ID_HELLO, "wxScreenDC", wxPoint(540,280), wxSize(120,40) );
140 (void)new wxButton( this, ID_RETURN, "Return", wxPoint(540,340), wxSize(120,40) );
141
142 m_text1 = new wxStaticText( this, -1, "No event.", wxPoint(170,350), wxSize(300,-1) );
143 m_text2 = new wxStaticText( this, -1, "No information.", wxPoint(170,370), wxSize(300,-1) );
144
145 InitDialog();
146};
147
148void MyDialog::OnTextCtrl( wxCommandEvent &WXUNUSED(event) )
149{
150};
151
152void MyDialog::OnTextCtrlButtons( wxCommandEvent &event )
153{
154 switch (event.GetId())
155 {
156 case ID_TEXTCTRL_SET:
157 {
158 m_textctrl->SetValue( "Hi!" );
159 break;
160 };
161 case ID_TEXTCTRL_DEL:
162 {
163 m_textctrl->Delete();
164 break;
165 };
166 };
167};
168
169void MyDialog::OnRadioBox( wxCommandEvent &event )
170{
171 if (!m_text1) return;
172 m_text1->SetLabel( "RadioBox Event:");
173 wxString tmp = "RadioBox selection string is: ";
174 tmp += event.GetString();
175 m_text2->SetLabel( tmp );
176};
177
178void MyDialog::OnRadioBoxButtons( wxCommandEvent &WXUNUSED(event) )
179{
180};
181
182void MyDialog::OnListBox( wxCommandEvent &event )
183{
184 if (!m_text1) return;
185 m_text1->SetLabel( "ListBox Event:");
186 wxString tmp = "ListBox selection string is: ";
187 tmp += event.GetString();
188 m_text2->SetLabel( tmp );
189};
190
191void MyDialog::OnListBoxButtons( wxCommandEvent &event )
192{
193 switch (event.GetId())
194 {
195 case ID_LISTBOX_SEL_NUM:
196 {
197 m_listbox->SetSelection( 2 );
198 break;
199 };
200 case ID_LISTBOX_SEL_STR:
201 {
202 m_listbox->SetStringSelection( "This" );
203 break;
204 };
205 case ID_LISTBOX_CLEAR:
206 {
207 m_listbox->Clear();
208 break;
209 };
210 case ID_LISTBOX_APPEND:
211 {
212 m_listbox->Append( "Hi!" );
213 break;
214 };
215 };
216};
217
218void MyDialog::OnCheckBox( wxCommandEvent &event )
219{
220 if (!m_text1) return;
221 m_text1->SetLabel( "CheckBox Event:");
222 wxString tmp = "Checkbox is ";
223 if (event.Checked())
224 tmp += "checked.";
225 else
226 tmp += "unchecked.";
227 m_text2->SetLabel( tmp );
228};
229
230void MyDialog::OnCheckBoxButtons( wxCommandEvent &event )
231{
232 switch (event.GetId())
233 {
234 case ID_CHECKBOX_CHECK:
235 {
236 m_checkbox->SetValue( TRUE );
237 break;
238 };
239 case ID_CHECKBOX_UNCHECK:
240 {
241 m_checkbox->SetValue( FALSE );
242 break;
243 };
244 };
245};
246
247void MyDialog::OnChoice( wxCommandEvent &event )
248{
249 if (!m_text1) return;
250 m_text1->SetLabel( "Choice Event:");
251 wxString tmp = "Choice selection string is: ";
252 tmp += event.GetString();
253 m_text2->SetLabel( tmp );
254};
255
256void MyDialog::OnChoiceButtons( wxCommandEvent &event )
257{
258 switch (event.GetId())
259 {
260 case ID_CHOICE_SEL_NUM:
261 {
262 m_choice->SetSelection( 2 );
263 break;
264 };
265 case ID_CHOICE_SEL_STR:
266 {
267 m_choice->SetStringSelection( "This" );
268 break;
269 };
270 case ID_CHOICE_CLEAR:
271 {
272 m_choice->Clear();
273 break;
274 };
275 case ID_CHOICE_APPEND:
276 {
277 m_choice->Append( "Hi!" );
278 break;
279 };
280 };
281};
282
283void MyDialog::OnReturnButton( wxCommandEvent &WXUNUSED(event) )
284{
285 EndModal( 1 );
286};
287
288void MyDialog::OnHelloButton( wxCommandEvent &WXUNUSED(event) )
289{
290 wxMessageDialog *dialog;
291 dialog = new wxMessageDialog( this, "Now, I will paint on Screen.", "wxGTK" );
292 dialog->ShowModal();
293 delete dialog;
294
295 wxScreenDC dc;
296 dc.StartDrawingOnTop();
297
298 int w = wxSystemSettings::GetSystemMetric( wxSYS_SCREEN_X );
299 int h = wxSystemSettings::GetSystemMetric( wxSYS_SCREEN_Y );
300
301 dc.SetPen( *wxWHITE_PEN );
302 dc.SetBrush( *wxTRANSPARENT_BRUSH );
303 for (int i = 0; i < h; i += 3) dc.DrawLine( 0, i, w, i );
304
305 dialog = new wxMessageDialog( this, "Now, the stripes will disappear.", "wxGTK" );
306 dialog->ShowModal();
307 delete dialog;
308
309 dc.EndDrawingOnTop();
310};
311
312//-----------------------------------------------------------------------------
313// MyCanvas
314//-----------------------------------------------------------------------------
315
316IMPLEMENT_DYNAMIC_CLASS(MyCanvas, wxScrolledWindow)
317
318BEGIN_EVENT_TABLE(MyCanvas,wxScrolledWindow)
319 EVT_BUTTON (100, MyDialog::OnReturnButton)
320 EVT_PAINT (MyCanvas::OnPaint)
321END_EVENT_TABLE()
322
323MyCanvas::MyCanvas( wxWindow *parent, const wxWindowID id, const wxPoint &pos, const wxSize &size )
324 : wxScrolledWindow( parent, id, pos, size, wxSUNKEN_BORDER )
325{
326 my_bitmap = new wxBitmap( folder_xpm );
327 my_horse = new wxBitmap();
328 my_horse->LoadFile( "horse.png", 0 );
329 my_backstore = new wxBitmap( 150, 150 );
330 my_font = new wxFont( 20, wxROMAN, wxNORMAL, wxNORMAL );
331 m_isCreated = FALSE;
332
333 SetBackgroundColour( wxColour("Wheat") );
334};
335
336MyCanvas::~MyCanvas(void)
337{
338 delete my_bitmap;
339 delete my_backstore;
340 delete my_horse;
341 delete my_font;
342};
343
344void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
345{
346 wxPaintDC dc( this );
347 PrepareDC( dc );
348
349 wxMemoryDC memDC;
350 memDC.SelectObject( *my_backstore );
351 memDC.SetBrush( *wxBLACK_BRUSH );
352 memDC.SetPen( *wxWHITE_PEN );
353 memDC.DrawRectangle( 0, 0, 150, 150 );
354 memDC.SetTextForeground( *wxWHITE );
355 memDC.DrawText( "This is a memory dc.", 10, 10 );
356
357 int vx = 0;
358 int vy = 0;
359 GetVirtualSize( &vx, &vy );
360 dc.DrawLine( 5, 5, vx-10, vy-10 );
361 dc.DrawLine( 10, 20, 100, 10 );
362 dc.DrawLine( 10, 20, 100, 50 );
363 dc.DrawLine( 10, 20, 100, 100 );
364
365 dc.SetPen( *wxWHITE_PEN );
366 dc.DrawLine( 80, 50, 180, 50 );
367
368 dc.SetFont( *my_font );
369
370 long x = 0;
371 long y = 0;
372 dc.GetTextExtent( "Hej, ho, hej, ho.", &x, &y );
373
374 dc.SetBrush( *wxTRANSPARENT_BRUSH );
375 dc.DrawRectangle( 80, 40, x, y );
376
377 dc.SetTextForeground( *wxGREEN );
378 dc.DrawText( "Hej, ho, hej, ho.", 80, 40 );
379
380 dc.SetTextForeground( *wxBLACK );
381 dc.SetFont( *wxNORMAL_FONT );
382 dc.DrawText( "Hej, ho, hej, ho. (NormalFont)", 80, 60 );
383 dc.SetFont( *wxSMALL_FONT );
384 dc.DrawText( "Hej, ho, hej, ho. (SmallFont)", 80, 80 );
385 dc.SetFont( *wxITALIC_FONT );
386 dc.DrawText( "Hej, ho, hej, ho. (ItalicFont)", 80, 100 );
387
388 dc.DrawBitmap( *my_bitmap, 30, 80, TRUE );
389 dc.DrawBitmap( *my_horse, 30, 120 );
390
391 dc.Blit( 200, 200, 150, 150, &memDC, 0, 0, 0 );
392
393 memDC.SelectObject( wxNullBitmap );
394
395/*
396 dc.SetBrush( *wxBLACK_BRUSH );
397 dc.DrawRectangle( 50, 50, 50, 50 );
398 dc.SetPen( *wxWHITE_PEN );
399 dc.DrawRectangle( 101, 50, 50, 50 );
400 dc.DrawRectangle( 50, 101, 50, 50 );
401
402 dc.SetBrush( *wxWHITE_BRUSH );
403
404 dc.SetPen( *wxWHITE_PEN );
405 dc.DrawRectangle( 70, 70, 2, 2 );
406
407 dc.SetPen( *wxRED_PEN );
408 dc.DrawRectangle( 72, 70, 2, 2 );
409 dc.DrawRectangle( 70, 72, 2, 2 );
410
411
412 dc.SetPen( *wxRED_PEN );
413 dc.DrawRectangle( 82, 80, 2, 2 );
414 dc.DrawRectangle( 80, 82, 2, 2 );
415
416 dc.SetPen( *wxWHITE_PEN );
417 dc.DrawRectangle( 80, 80, 2, 2 );
418*/
419};
420
421//-----------------------------------------------------------------------------
422// MyFrame
423//-----------------------------------------------------------------------------
424
425const ID_OPEN = 101;
426const ID_SAVE = 102;
427const ID_MSG = 103;
428const ID_FONT = 104;
429const ID_DLG = 105;
430const ID_QUIT = 108;
431const ID_ABOUT = 109;
432
433IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame )
434
435BEGIN_EVENT_TABLE(MyFrame,wxFrame)
436 EVT_SIZE (MyFrame::OnSize)
437 EVT_MENU (ID_OPEN, MyFrame::OnOpenDialog)
438 EVT_MENU (ID_FONT, MyFrame::OnFontDialog)
439 EVT_MENU (ID_MSG, MyFrame::OnMsg)
440 EVT_MENU (ID_DLG, MyFrame::OnDialog)
441 EVT_MENU (ID_ABOUT, MyFrame::OnAbout)
442 EVT_MENU (ID_QUIT, MyFrame::OnQuit)
443END_EVENT_TABLE()
444
445MyFrame::MyFrame(void) :
446 wxFrame( NULL, -1, "Robert's Test application", wxPoint(20,20), wxSize(470,360) )
447{
448 wxMenu *file_menu = new wxMenu( "Test" );
449 file_menu->Append( ID_OPEN, "Open..");
450 file_menu->Append( ID_MSG, "MessageBox..");
451 file_menu->Append( ID_FONT, "FontDialog..");
452 file_menu->AppendSeparator();
453 file_menu->Append( ID_DLG, "TestDialog..");
454 file_menu->AppendSeparator();
455 file_menu->Append( ID_ABOUT, "About..");
456 file_menu->Append( ID_QUIT, "Exit");
457
458 wxMenuBar *menu_bar = new wxMenuBar();
459 menu_bar->Append(file_menu, "File");
460 menu_bar->Show( TRUE );
461
462 SetMenuBar( menu_bar );
463
464 CreateStatusBar( 2 );
465
466 SetStatusText( "wxGTK v0.12", 0 );
467 SetStatusText( "Copyright 1998 Robert Roebling.", 1 );
468
469 m_canvas = new MyCanvas( this, -1, wxPoint(2,62), wxSize(300-4,120-4) );
470 m_canvas->SetScrollbars( 10, 10, 50, 50 );
471
472 m_tb = new wxToolBarGTK( this, -1, wxPoint(2,60), wxSize(300-4,26) );
473 m_tb->SetMargins( 2, 2 );
474
475 wxBitmap *bm = new wxBitmap( list_xpm );
476 m_tb->AddTool( 0, *bm, wxNullBitmap, FALSE, -1, -1, NULL, "This is a button" );
477 bm = new wxBitmap( folder_xpm );
478 m_tb->AddTool( 0, *bm, wxNullBitmap, TRUE, -1, -1, NULL, "This is a toggle" );
479
480 m_tb->Layout();
481 m_tb->Show( TRUE );
482
483// m_timer.Start( 1000, TRUE );
484};
485
486void MyFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
487{
488 int x = 0;
489 int y = 0;
490 GetClientSize( &x, &y );
491
492 m_tb->SetSize( 1, 0, x-2, 42 );
493 m_canvas-> SetSize( 0, 42, x, y-42 );
494};
495
496void MyFrame::OnDialog( wxCommandEvent &WXUNUSED(event) )
497{
498 MyDialog dialog( this );
499 dialog.ShowModal();
500};
501
502void MyFrame::OnFontDialog( wxCommandEvent &WXUNUSED(event) )
503{
504 wxFontData data;
505 data.SetInitialFont( wxSMALL_FONT );
506 data.SetColour( wxRED );
507 wxGenericFontDialog dialog( this, &data );
508 if (dialog.ShowModal() == wxID_OK)
509 {
510 wxFontData retData = dialog.GetFontData();
511 // do something
512 };
513};
514
515void MyFrame::OnOpenDialog( wxCommandEvent &WXUNUSED(event) )
516{
517 wxFileDialog dialog(this, "Testing open file dialog", "", "", "*.txt", 0);
518 if (dialog.ShowModal() == wxID_OK)
519 {
520 wxMessageDialog dialog2(this, dialog.GetPath(), "Selected path");
521 dialog2.ShowModal();
522 };
523};
524
525void MyFrame::OnMsg( wxCommandEvent &WXUNUSED(event) )
526{
527 wxMessageBox( "There once was a lady from Riga.", "TestBox.", wxYES_NO );
528};
529
530void MyFrame::OnQuit( wxCommandEvent &WXUNUSED(event) )
531{
532 Close( TRUE );
533};
534
535void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) )
536{
537 wxDialog dialog( this, -1, "About wxGTK", wxPoint(100,100), wxSize(540,350), wxDIALOG_MODAL );
538
539 int w = 0;
540 int h = 0;
541 dialog.GetSize( &w, &h );
542
543 int x = 30;
544 int y = 20;
545 int step = 20;
546
547 (void)new wxStaticBox( &dialog, -1, (const char*)NULL, wxPoint(10,10), wxSize(w-20,h-80) );
548
549 (void)new wxStaticText( &dialog, -1, "wxGTK v0.12", wxPoint(240,y) );
550 y += 2*step-10;
551
552 (void)new wxStaticText( &dialog, -1, "Written by Robert Roebling, 1998. More information at:", wxPoint(x,y) );
553 y += step;
554 (void)new wxStaticText( &dialog, -1, "http://www.freiburg.linux.de/~wxxt", wxPoint(x+50,y) );
555 y += 2*step;
556
557 (void)new wxStaticText( &dialog, -1,
558 "wxGTK is based on the wxWindows GUI-library written mainly by Julian Smart. See:", wxPoint(x,y) );
559 y += step;
560 (void)new wxStaticText( &dialog, -1, "http://web.ukonline.co.uk/julian.smart/wxwin", wxPoint(x+50,y) );
561 y += 2*step;
562
563 (void)new wxStaticText( &dialog, -1, "wxWindows Copyright: Less restrictive version of LGPL.", wxPoint(x,y) );
564 y += 2*step;
565 (void)new wxStaticText( &dialog, -1, "For questions concerning wxGTK, you may mail to:", wxPoint(x,y) );
566 y += step;
567 (void)new wxStaticText( &dialog, -1, "roebling@ruf.uni-freiburg.de", wxPoint(x+50,y) );
568
569 (void) new wxButton( &dialog, wxID_OK, "Return", wxPoint(w/2-40,h-50), wxSize(80,30) );
570
571 dialog.ShowModal();
572};
573
574//-----------------------------------------------------------------------------
575// MyApp
576//-----------------------------------------------------------------------------
577
578MyApp::MyApp(void) :
579 wxApp( )
580{
581};
582
583bool MyApp::OnInit(void)
584{
585 wxFrame *frame = new MyFrame();
586 frame->Show( TRUE );
587
588 return TRUE;
589};
590
591
592
593
594