]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/samples/foldbar/extended/extended.cpp
Re-adding setup0.h for OpenWatcom makefile build.
[wxWidgets.git] / contrib / samples / foldbar / extended / extended.cpp
index 4ab91dd1a50bec6d1ca6009116b007c0bc61493d..6608b9a29a700f6d0afc033195bf6a83105d46db 100644 (file)
@@ -25,7 +25,7 @@
 #include "wx/spinctrl.h"
 #include "wx/slider.h"
 
-#include "../../../../samples/sample.xpm"
+#include "sample.xpm"
 
 #include "extended.h"
 
@@ -45,7 +45,7 @@ bool MyApp::OnInit(void)
 {
     // Create the main frame window
 
-    frame = new MyFrame(NULL, -1, _T("FoldPanelBar Extended Demo"), wxPoint(-1, -1), wxSize(500, 600),
+    frame = new MyFrame(NULL, wxID_ANY, _T("FoldPanelBar Extended Demo"), wxDefaultPosition, wxSize(500, 600),
                         wxDEFAULT_FRAME_STYLE |
                         wxNO_FULL_REPAINT_ON_RESIZE |
                         wxHSCROLL | wxVSCROLL);
@@ -57,11 +57,11 @@ bool MyApp::OnInit(void)
 
     frame->CreateStatusBar();
 
-    frame->Show(TRUE);
+    frame->Show(true);
 
     SetTopWindow(frame);
 
-    return TRUE;
+    return true;
 }
 
 BEGIN_EVENT_TABLE(MyFrame, wxMDIParentFrame)
@@ -88,8 +88,8 @@ END_EVENT_TABLE()
 MyFrame::MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size,
     const long style)
   : wxMDIParentFrame(parent, id, title, pos, size, style)
-  , _flags(0)
-{  
+  , m_flags(0)
+{
     m_leftWindow1 = new wxSashLayoutWindow(this, ID_WINDOW_LEFT1,
                                 wxDefaultPosition, wxSize(200, 30),
                                 wxNO_BORDER | wxSW_3D | wxCLIP_CHILDREN);
@@ -97,16 +97,16 @@ MyFrame::MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, c
     m_leftWindow1->SetDefaultSize(wxSize(160, 1000));
     m_leftWindow1->SetOrientation(wxLAYOUT_VERTICAL);
     m_leftWindow1->SetAlignment(wxLAYOUT_LEFT);
-    m_leftWindow1->SetSashVisible(wxSASH_RIGHT, TRUE);
+    m_leftWindow1->SetSashVisible(wxSASH_RIGHT, true);
     m_leftWindow1->SetExtraBorderSize(0);
 
-    _pnl = 0;
+    m_pnl = NULL;
     ReCreateFoldPanel(0);
 }
 
 void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 {
-      Close(TRUE);
+    Close(true);
 }
 
 void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
@@ -116,7 +116,7 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnToggleWindow(wxCommandEvent& WXUNUSED(event))
 {
-      m_leftWindow1->Show(!m_leftWindow1->IsShown());
+    m_leftWindow1->Show(!m_leftWindow1->IsShown());
     wxLayoutAlgorithm layout;
     layout.LayoutMDIFrame(this);
 }
@@ -138,19 +138,14 @@ void MyFrame::OnFoldPanelBarDrag(wxSashEvent& event)
 
 void MyFrame::OnNewWindow(wxCommandEvent& WXUNUSED(event))
 {
-      // Make another frame, containing a canvas
-      MyChild *subframe = new MyChild(frame, _T("Canvas Frame"),
-                                      wxPoint(10, 10), wxSize(300, 300),
-                                      wxDEFAULT_FRAME_STYLE |
-                                      wxNO_FULL_REPAINT_ON_RESIZE);
-
-      subframe->SetTitle(wxString::Format(_T("Canvas Frame %d"), winNumber));
-      winNumber ++;
-
-      // Give it an icon (this is ignored in MDI mode: uses resources)
-#ifdef __WXMSW__
-      subframe->SetIcon(wxIcon(_T("sashtest_icn")));
-#endif
+    // Make another frame, containing a canvas
+    MyChild *subframe = new MyChild(frame, _T("Canvas Frame"),
+                                    wxPoint(10, 10), wxSize(300, 300),
+                                    wxDEFAULT_FRAME_STYLE |
+                                    wxNO_FULL_REPAINT_ON_RESIZE);
+
+    subframe->SetTitle(wxString::Format(_T("Canvas Frame %d"), winNumber));
+    winNumber ++;
 
     // Give it a status line
     subframe->CreateStatusBar();
@@ -167,7 +162,7 @@ void MyFrame::OnNewWindow(wxCommandEvent& WXUNUSED(event))
     // Give it scrollbars
     canvas->SetScrollbars(20, 20, 50, 50);
 
-    subframe->Show(TRUE);
+    subframe->Show(true);
 }
 
 void MyFrame::ReCreateFoldPanel(int fpb_flags)
@@ -177,89 +172,89 @@ void MyFrame::ReCreateFoldPanel(int fpb_flags)
 
     // recreate the foldpanelbar
 
-    _pnl = new wxFoldPanelBar(m_leftWindow1, -1, wxDefaultPosition, wxSize(-1,-1), wxFPB_DEFAULT_STYLE, fpb_flags);
-        
-    wxFoldPanel item = _pnl->AddFoldPanel("Caption colours", false);
+    m_pnl = new wxFoldPanelBar(m_leftWindow1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFPB_DEFAULT_STYLE, fpb_flags);
 
-    _pnl->AddFoldPanelWindow(item, new wxStaticText(item.GetParent(), -1, _T("Adjust the first colour")), 
-                             wxFPB_ALIGN_WIDTH, 5, 20); 
+    wxFoldPanel item = m_pnl->AddFoldPanel(_T("Caption colours"), false);
+
+    m_pnl->AddFoldPanelWindow(item, new wxStaticText(item.GetParent(), wxID_ANY, _T("Adjust the first colour")),
+                              wxFPB_ALIGN_WIDTH, 5, 20);
 
     // RED color spin control
-    _rslider1 = new wxSlider(item.GetParent(), -1, 0, 0, 255);
-    _pnl->AddFoldPanelWindow(item, _rslider1, wxFPB_ALIGN_WIDTH, 
-                             2, 20); 
+    m_rslider1 = new wxSlider(item.GetParent(), wxID_ANY, 0, 0, 255);
+    m_pnl->AddFoldPanelWindow(item, m_rslider1, wxFPB_ALIGN_WIDTH,
+                              2, 20);
 
     // GREEN color spin control
-    _gslider1 = new wxSlider(item.GetParent(), -1, 0, 0, 255);
-    _pnl->AddFoldPanelWindow(item, _gslider1, wxFPB_ALIGN_WIDTH, 
-                             0, 20); 
+    m_gslider1 = new wxSlider(item.GetParent(), wxID_ANY, 0, 0, 255);
+    m_pnl->AddFoldPanelWindow(item, m_gslider1, wxFPB_ALIGN_WIDTH,
+                              0, 20);
 
     // BLUE color spin control
-    _bslider1 = new wxSlider(item.GetParent(), -1, 0, 0, 255);
-    _pnl->AddFoldPanelWindow(item, _bslider1, wxFPB_ALIGN_WIDTH, 
-                             0, 20); 
-    
-    _pnl->AddFoldPanelSeperator(item);
+    m_bslider1 = new wxSlider(item.GetParent(), wxID_ANY, 0, 0, 255);
+    m_pnl->AddFoldPanelWindow(item, m_bslider1, wxFPB_ALIGN_WIDTH,
+                              0, 20);
+
+    m_pnl->AddFoldPanelSeperator(item);
 
-    _pnl->AddFoldPanelWindow(item, new wxStaticText(item.GetParent(), -1, _T("Adjust the second colour")), 
-                             wxFPB_ALIGN_WIDTH, 5, 20); 
+    m_pnl->AddFoldPanelWindow(item, new wxStaticText(item.GetParent(), wxID_ANY, _T("Adjust the second colour")),
+                              wxFPB_ALIGN_WIDTH, 5, 20);
 
     // RED color spin control
-    _rslider2 = new wxSlider(item.GetParent(), -1, 0, 0, 255);
-    _pnl->AddFoldPanelWindow(item, _rslider2, wxFPB_ALIGN_WIDTH, 
-                             2, 20); 
+    m_rslider2 = new wxSlider(item.GetParent(), wxID_ANY, 0, 0, 255);
+    m_pnl->AddFoldPanelWindow(item, m_rslider2, wxFPB_ALIGN_WIDTH,
+                              2, 20);
 
     // GREEN color spin control
-    _gslider2 = new wxSlider(item.GetParent(), -1, 0, 0, 255);
-    _pnl->AddFoldPanelWindow(item, _gslider2, wxFPB_ALIGN_WIDTH, 
-                             0, 20); 
+    m_gslider2 = new wxSlider(item.GetParent(), wxID_ANY, 0, 0, 255);
+    m_pnl->AddFoldPanelWindow(item, m_gslider2, wxFPB_ALIGN_WIDTH,
+                              0, 20);
 
     // BLUE color spin control
-    _bslider2 = new wxSlider(item.GetParent(), -1, 0, 0, 255);
-    _pnl->AddFoldPanelWindow(item, _bslider2, wxFPB_ALIGN_WIDTH, 
-                             0, 20); 
+    m_bslider2 = new wxSlider(item.GetParent(), wxID_ANY, 0, 0, 255);
+    m_pnl->AddFoldPanelWindow(item, m_bslider2, wxFPB_ALIGN_WIDTH,
+                              0, 20);
 
-    _pnl->AddFoldPanelSeperator(item);
-    
-    _btn = new wxButton(item.GetParent(), ID_APPLYTOALL, "Apply to all");
-    _pnl->AddFoldPanelWindow(item, _btn); 
+    m_pnl->AddFoldPanelSeperator(item);
+
+    m_btn = new wxButton(item.GetParent(), ID_APPLYTOALL, _T("Apply to all"));
+    m_pnl->AddFoldPanelWindow(item, m_btn);
 
     // read back current gradients and set the sliders
     // for the colour which is now taken as default
 
-    wxCaptionBarStyle style = _pnl->GetCaptionStyle(item);
+    wxCaptionBarStyle style = m_pnl->GetCaptionStyle(item);
     wxColour col = style.GetFirstColour();
-    _rslider1->SetValue(col.Red());
-    _gslider1->SetValue(col.Green());
-    _bslider1->SetValue(col.Blue());
+    m_rslider1->SetValue(col.Red());
+    m_gslider1->SetValue(col.Green());
+    m_bslider1->SetValue(col.Blue());
 
     col = style.GetSecondColour();
-    _rslider2->SetValue(col.Red());
-    _gslider2->SetValue(col.Green());
-    _bslider2->SetValue(col.Blue());
+    m_rslider2->SetValue(col.Red());
+    m_gslider2->SetValue(col.Green());
+    m_bslider2->SetValue(col.Blue());
 
     // put down some caption styles from which the user can
     // select to show how the current or all caption bars will look like
 
-    item = _pnl->AddFoldPanel("Caption style", false);
+    item = m_pnl->AddFoldPanel(_T("Caption style"), false);
 
-    wxRadioButton *currStyle =  new wxRadioButton(item.GetParent(), ID_USE_VGRADIENT, "&Vertical gradient");
-    _pnl->AddFoldPanelWindow(item, currStyle,  wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10); 
+    wxRadioButton *currStyle =  new wxRadioButton(item.GetParent(), ID_USE_VGRADIENT, _T("&Vertical gradient"));
+    m_pnl->AddFoldPanelWindow(item, currStyle,  wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10);
     currStyle->SetValue(true);
 
-    _pnl->AddFoldPanelWindow(item, new wxRadioButton(item.GetParent(), ID_USE_HGRADIENT, "&Horizontal gradient"), 
-                             wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10); 
-    _pnl->AddFoldPanelWindow(item, new wxRadioButton(item.GetParent(), ID_USE_SINGLE, "&Single colour"), 
-                             wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10); 
-    _pnl->AddFoldPanelWindow(item, new wxRadioButton(item.GetParent(), ID_USE_RECTANGLE, "&Rectangle box"), 
-                             wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10); 
-    _pnl->AddFoldPanelWindow(item, new wxRadioButton(item.GetParent(), ID_USE_FILLED_RECTANGLE, "&Filled rectangle box"), 
-                             wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10); 
+    m_pnl->AddFoldPanelWindow(item, new wxRadioButton(item.GetParent(), ID_USE_HGRADIENT, _T("&Horizontal gradient")),
+                              wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10);
+    m_pnl->AddFoldPanelWindow(item, new wxRadioButton(item.GetParent(), ID_USE_SINGLE, _T("&Single colour")),
+                              wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10);
+    m_pnl->AddFoldPanelWindow(item, new wxRadioButton(item.GetParent(), ID_USE_RECTANGLE, _T("&Rectangle box")),
+                              wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10);
+    m_pnl->AddFoldPanelWindow(item, new wxRadioButton(item.GetParent(), ID_USE_FILLED_RECTANGLE, _T("&Filled rectangle box")),
+                              wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10);
 
-    _pnl->AddFoldPanelSeperator(item);
+    m_pnl->AddFoldPanelSeperator(item);
 
-    _single = new wxCheckBox(item.GetParent(), -1, "&Only this caption");
-    _pnl->AddFoldPanelWindow(item, _single, wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10); 
+    m_single = new wxCheckBox(item.GetParent(), wxID_ANY, _T("&Only this caption"));
+    m_pnl->AddFoldPanelWindow(item, m_single, wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10);
 
 
     // one more panel to finish it
@@ -267,15 +262,15 @@ void MyFrame::ReCreateFoldPanel(int fpb_flags)
     wxCaptionBarStyle cs;
     cs.SetCaptionStyle(wxCAPTIONBAR_RECTANGLE);
 
-    item = _pnl->AddFoldPanel("Misc stuff", true, cs);
+    item = m_pnl->AddFoldPanel(_T("Misc stuff"), true, cs);
+
+    m_pnl->AddFoldPanelWindow(item, new wxButton(item.GetParent(), ID_COLLAPSEME, _T("Collapse All")));
 
-    _pnl->AddFoldPanelWindow(item, new wxButton(item.GetParent(), ID_COLLAPSEME, "Collapse All")); 
+    m_pnl->AddFoldPanelWindow(item, new wxStaticText(item.GetParent(), wxID_ANY, _T("Enter some comments")),
+                             wxFPB_ALIGN_WIDTH, 5, 20);
 
-    _pnl->AddFoldPanelWindow(item, new wxStaticText(item.GetParent(), -1, _T("Enter some comments")), 
-                             wxFPB_ALIGN_WIDTH, 5, 20); 
-    
-    _pnl->AddFoldPanelWindow(item, new wxTextCtrl(item.GetParent(), -1, "Comments"), 
-                             wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10); 
+    m_pnl->AddFoldPanelWindow(item, new wxTextCtrl(item.GetParent(), wxID_ANY, _T("Comments")),
+                             wxFPB_ALIGN_WIDTH, wxFPB_DEFAULT_SPACING, 10);
 
     m_leftWindow1->SizeWindows();
 
@@ -286,51 +281,55 @@ void MyFrame::OnCreateBottomStyle(wxCommandEvent& event)
     // recreate with style collapse to bottom, which means
     // all panels that are collapsed are placed at the bottom,
     // or normal
-    
+
     if(event.IsChecked())
-        _flags |= wxFPB_COLLAPSE_TO_BOTTOM;
+        m_flags |= wxFPB_COLLAPSE_TO_BOTTOM;
     else
-        _flags &= ~wxFPB_COLLAPSE_TO_BOTTOM;
+        m_flags &= ~wxFPB_COLLAPSE_TO_BOTTOM;
 
-    ReCreateFoldPanel(_flags);
+    ReCreateFoldPanel(m_flags);
 }
 
 void MyFrame::OnCreateNormalStyle(wxCommandEvent& event)
 {
     // receate with style where only one panel at the time is
     // allowed to be opened
-    
+
     // TODO: Not yet implemented!
 
     if(event.IsChecked())
-        _flags |= wxFPB_SINGLE_FOLD;
+        m_flags |= wxFPB_SINGLE_FOLD;
     else
-        _flags &= ~wxFPB_SINGLE_FOLD;
+        m_flags &= ~wxFPB_SINGLE_FOLD;
 
-    ReCreateFoldPanel(_flags);
+    ReCreateFoldPanel(m_flags);
 }
 
-void MyFrame::OnCollapseMe(wxCommandEvent &event)
+void MyFrame::OnCollapseMe(wxCommandEvent &WXUNUSED(event))
 {
     wxFoldPanel item(0);
-    for(size_t i = 0; i < _pnl->GetCount(); i++)
+    for(size_t i = 0; i < m_pnl->GetCount(); i++)
     {
-        item = _pnl->Item(i);
-        _pnl->Collapse(item);
+        item = m_pnl->Item(i);
+        m_pnl->Collapse(item);
     }
 }
 
-void MyFrame::OnExpandMe(wxCommandEvent &event)
+void MyFrame::OnExpandMe(wxCommandEvent &WXUNUSED(event))
 {
-    wxColour col1(_rslider1->GetValue(), _gslider1->GetValue(), _bslider1->GetValue()),
-             col2(_rslider2->GetValue(), _gslider2->GetValue(), _bslider2->GetValue());
+    wxColour col1((unsigned char)m_rslider1->GetValue(),
+                  (unsigned char)m_gslider1->GetValue(),
+                  (unsigned char)m_bslider1->GetValue()),
+             col2((unsigned char)m_rslider2->GetValue(),
+                  (unsigned char)m_gslider2->GetValue(),
+                  (unsigned char)m_bslider2->GetValue());
 
     wxCaptionBarStyle style;
 
     style.SetFirstColour(col1);
     style.SetSecondColour(col2);
 
-    _pnl->ApplyCaptionStyleAll(style);
+    m_pnl->ApplyCaptionStyleAll(style);
 }
 
 wxMenuBar *CreateMenuBar(bool with_window)
@@ -354,7 +353,7 @@ wxMenuBar *CreateMenuBar(bool with_window)
     }
 
     // make fold panel menu
-    
+
     wxMenu *fpb_menu = new wxMenu;
     fpb_menu->AppendCheckItem(FPB_BOTTOM_STICK, _T("Create with &wxFPB_COLLAPSE_TO_BOTTOM"));
     //fpb_menu->AppendCheckItem(FPB_SINGLE_FOLD, _T("Create with &wxFPB_SINGLE_FOLD"));
@@ -376,19 +375,23 @@ wxMenuBar *CreateMenuBar(bool with_window)
     return menu_bar;
 }
 
-void MyFrame::OnSlideColour(wxScrollEvent &event)
+void MyFrame::OnSlideColour(wxScrollEvent &WXUNUSED(event))
 {
-    wxColour col1(_rslider1->GetValue(), _gslider1->GetValue(), _bslider1->GetValue()),
-             col2(_rslider2->GetValue(), _gslider2->GetValue(), _bslider2->GetValue());
-    //_btn->SetBackgroundColour(col);
+    wxColour col1((unsigned char)m_rslider1->GetValue(),
+                  (unsigned char)m_gslider1->GetValue(),
+                  (unsigned char)m_bslider1->GetValue()),
+             col2((unsigned char)m_rslider2->GetValue(),
+                  (unsigned char)m_gslider2->GetValue(),
+                  (unsigned char)m_bslider2->GetValue());
+    //m_btn->SetBackgroundColour(col);
 
     wxCaptionBarStyle style;
 
     style.SetFirstColour(col1);
     style.SetSecondColour(col2);
 
-    wxFoldPanel item = _pnl->Item(0);
-    _pnl->ApplyCaptionStyle(item, style);
+    wxFoldPanel item = m_pnl->Item(0);
+    m_pnl->ApplyCaptionStyle(item, style);
 }
 
 void MyFrame::OnStyleChange(wxCommandEvent &event)
@@ -415,19 +418,20 @@ void MyFrame::OnStyleChange(wxCommandEvent &event)
     case ID_USE_FILLED_RECTANGLE:
         style.SetCaptionStyle(wxCAPTIONBAR_FILLED_RECTANGLE);
         break;
-            
+
     default:
         break;
     }
 
-    if(_single->GetValue())
+    if(m_single->GetValue())
     {
-        wxFoldPanel item = _pnl->Item(1);
-        _pnl->ApplyCaptionStyle(item, style);
+        wxFoldPanel item = m_pnl->Item(1);
+        m_pnl->ApplyCaptionStyle(item, style);
     }
     else
-        _pnl->ApplyCaptionStyleAll(style);
-
+    {
+        m_pnl->ApplyCaptionStyleAll(style);
+    }
 }
 
 /* ----------------------------------------------------------------------------------------------- */
@@ -438,7 +442,7 @@ END_EVENT_TABLE()
 
 // Define a constructor for my canvas
 MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size)
-        : wxScrolledWindow(parent, -1, pos, size,
+         :wxScrolledWindow(parent, wxID_ANY, pos, size,
                            wxSUNKEN_BORDER | wxNO_FULL_REPAINT_ON_RESIZE)
 {
     SetBackgroundColour(* wxWHITE);
@@ -447,47 +451,47 @@ MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size)
 // Define the repainting behaviour
 void MyCanvas::OnDraw(wxDC& dc)
 {
-  dc.SetFont(*wxSWISS_FONT);
-  dc.SetPen(*wxGREEN_PEN);
-  dc.DrawLine(0, 0, 200, 200);
-  dc.DrawLine(200, 0, 0, 200);
+    dc.SetFont(*wxSWISS_FONT);
+    dc.SetPen(*wxGREEN_PEN);
+    dc.DrawLine(0, 0, 200, 200);
+    dc.DrawLine(200, 0, 0, 200);
 
-  dc.SetBrush(*wxCYAN_BRUSH);
-  dc.SetPen(*wxRED_PEN);
-  dc.DrawRectangle(100, 100, 100, 50);
-  dc.DrawRoundedRectangle(150, 150, 100, 50, 20);
+    dc.SetBrush(*wxCYAN_BRUSH);
+    dc.SetPen(*wxRED_PEN);
+    dc.DrawRectangle(100, 100, 100, 50);
+    dc.DrawRoundedRectangle(150, 150, 100, 50, 20);
 
-  dc.DrawEllipse(250, 250, 100, 50);
+    dc.DrawEllipse(250, 250, 100, 50);
 #if wxUSE_SPLINES
-  dc.DrawSpline(50, 200, 50, 100, 200, 10);
+    dc.DrawSpline(50, 200, 50, 100, 200, 10);
 #endif // wxUSE_SPLINES
-  dc.DrawLine(50, 230, 200, 230);
-  dc.DrawText(_T("This is a test string"), 50, 230);
-
-  wxPoint points[3];
-  points[0].x = 200; points[0].y = 300;
-  points[1].x = 100; points[1].y = 400;
-  points[2].x = 300; points[2].y = 400;
-  
-  dc.DrawPolygon(3, points);
+    dc.DrawLine(50, 230, 200, 230);
+    dc.DrawText(_T("This is a test string"), 50, 230);
+
+    wxPoint points[3];
+    points[0].x = 200; points[0].y = 300;
+    points[1].x = 100; points[1].y = 400;
+    points[2].x = 300; points[2].y = 400;
+
+    dc.DrawPolygon(3, points);
 }
 
 // This implements a tiny doodling program! Drag the mouse using
 // the left button.
 void MyCanvas::OnEvent(wxMouseEvent& event)
 {
-  wxClientDC dc(this);
-  PrepareDC(dc);
-
-  wxPoint pt(event.GetLogicalPosition(dc));
-
-  if (xpos > -1 && ypos > -1 && event.Dragging())
-  {
-    dc.SetPen(*wxBLACK_PEN);
-    dc.DrawLine(xpos, ypos, pt.x, pt.y);
-  }
-  xpos = pt.x;
-  ypos = pt.y;
+    wxClientDC dc(this);
+    PrepareDC(dc);
+
+    wxPoint pt(event.GetLogicalPosition(dc));
+
+    if (xpos > -1 && ypos > -1 && event.Dragging())
+    {
+        dc.SetPen(*wxBLACK_PEN);
+        dc.DrawLine(xpos, ypos, pt.x, pt.y);
+    }
+    xpos = pt.x;
+    ypos = pt.y;
 }
 
 void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event))
@@ -501,30 +505,31 @@ void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event))
 // duplicate event handlers here.
 
 BEGIN_EVENT_TABLE(MyChild, wxMDIChildFrame)
-  EVT_MENU(FPBTEST_CHILD_QUIT, MyChild::OnQuit)
+    EVT_MENU(FPBTEST_CHILD_QUIT, MyChild::OnQuit)
 END_EVENT_TABLE()
 
-MyChild::MyChild(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size,
-const long style):
-  wxMDIChildFrame(parent, -1, title, pos, size, style)
+MyChild::MyChild(wxMDIParentFrame *parent, const wxString& title,
+                 const wxPoint& pos, const wxSize& size,
+                 const long style)
+        :wxMDIChildFrame(parent, wxID_ANY, title, pos, size, style)
 {
-  canvas = NULL;
-  my_children.Append(this);
+    canvas = NULL;
+    my_children.Append(this);
 }
 
 MyChild::~MyChild(void)
 {
-  my_children.DeleteObject(this);
+    my_children.DeleteObject(this);
 }
 
 void MyChild::OnQuit(wxCommandEvent& WXUNUSED(event))
 {
-      Close(TRUE);
+    Close(true);
 }
 
 void MyChild::OnActivate(wxActivateEvent& event)
 {
-  if (event.GetActive() && canvas)
-    canvas->SetFocus();
+    if (event.GetActive() && canvas)
+        canvas->SetFocus();
 }