]>
git.saurik.com Git - wxWidgets.git/blob - contrib/samples/canvas/test/test.cpp
7377a35b0e927dd76332347a2d2ddfad2409e94e
4 * Author: Robert Roebling
6 * Copyright: (C) 1998, Robert Roebling
9 // For compilers that support precompilation, includes "wx/wx.h".
10 #include "wx/wxprec.h"
26 #include "wx/canvas/canvas.h"
35 class MyFrame
: public wxFrame
41 void OnAbout( wxCommandEvent
&event
);
42 void OnNewFrame( wxCommandEvent
&event
);
43 void OnQuit( wxCommandEvent
&event
);
44 void OnTimer( wxTimerEvent
&event
);
47 wxCanvasObject
*m_sm1
;
48 wxCanvasObject
*m_sm2
;
52 DECLARE_DYNAMIC_CLASS(MyFrame
)
58 class MyApp
: public wxApp
61 virtual bool OnInit();
70 const int ID_QUIT
= 108;
71 const int ID_ABOUT
= 109;
73 IMPLEMENT_DYNAMIC_CLASS( MyFrame
, wxFrame
)
75 BEGIN_EVENT_TABLE(MyFrame
,wxFrame
)
76 EVT_MENU (ID_ABOUT
, MyFrame::OnAbout
)
77 EVT_MENU (ID_QUIT
, MyFrame::OnQuit
)
78 EVT_TIMER (-1, MyFrame::OnTimer
)
82 : wxFrame( (wxFrame
*)NULL
, -1, "wxCanvas sample",
83 wxPoint(20,20), wxSize(470,360) )
85 wxMenu
*file_menu
= new wxMenu();
86 file_menu
->Append( ID_ABOUT
, "&About...");
87 file_menu
->AppendSeparator();
88 file_menu
->Append( ID_QUIT
, "E&xit");
90 wxMenuBar
*menu_bar
= new wxMenuBar();
91 menu_bar
->Append(file_menu
, "&File");
93 SetMenuBar( menu_bar
);
96 int widths
[] = { -1, 100 };
97 SetStatusWidths( 2, widths
);
99 m_canvas
= new wxCanvas( this, -1, wxPoint(0,0), wxSize(10,10) );
101 m_canvas
->SetArea( 400, 600 );
102 m_canvas
->SetColour( 255, 255, 255 );
104 wxBitmap
bitmap( smile_xpm
);
105 wxImage
image( bitmap
);
107 m_sm1
= new wxCanvasImage( image
, 0, 70 );
108 m_canvas
->Append( m_sm1
);
111 for (i
= 10; i
< 300; i
+=10)
112 m_canvas
->Append( new wxCanvasRect( i
,50,3,140, 255,0,0 ) );
114 m_sm2
= new wxCanvasImage( image
, 0, 140 );
115 m_canvas
->Append( m_sm2
);
117 for (i
= 15; i
< 300; i
+=10)
118 m_canvas
->Append( new wxCanvasRect( i
,50,3,140, 255,0,0 ) );
120 wxButton
*button
= new wxButton( m_canvas
, -1, "Hello", wxPoint(80,50) );
121 m_canvas
->Append( new wxCanvasControl( button
) );
123 m_canvas
->Append( new wxCanvasText( "Hello", 180, 50, "/home/robert/TrueType/times.ttf", 20 ) );
125 m_timer
= new wxTimer( this );
126 m_timer
->Start( 100, FALSE
);
134 void MyFrame::OnQuit( wxCommandEvent
&WXUNUSED(event
) )
139 void MyFrame::OnTimer( wxTimerEvent
&WXUNUSED(event
) )
141 m_sm1
->Move( m_sm1
->GetX()+1, m_sm1
->GetY() );
142 m_sm2
->Move( m_sm2
->GetX()+1, m_sm2
->GetY() );
146 void MyFrame::OnAbout( wxCommandEvent
&WXUNUSED(event
) )
148 (void)wxMessageBox( "wxCanvas demo\n"
149 "Robert Roebling (c) 1998,2000",
150 "About wxCanvas Demo", wxICON_INFORMATION
| wxOK
);
153 //-----------------------------------------------------------------------------
155 //-----------------------------------------------------------------------------
160 wxImage::AddHandler( new wxPNGHandler
);
163 wxFrame
*frame
= new MyFrame();