X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5f4987fed4dc52a35f0ddd649ae1cf9e75bb92d3..163dc80eff2faed2c3c1fb3ee6b46eb5ae9d70f9:/samples/sashtest/sashtest.cpp diff --git a/samples/sashtest/sashtest.cpp b/samples/sashtest/sashtest.cpp index a7b3dd5940..e25e124b3f 100644 --- a/samples/sashtest/sashtest.cpp +++ b/samples/sashtest/sashtest.cpp @@ -5,8 +5,8 @@ // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Copyright: (c) Julian Smart +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// // For compilers that support precompilation, includes "wx/wx.h". @@ -21,8 +21,8 @@ #include "wx/mdi.h" #endif -#include -#include +#include "wx/toolbar.h" +#include "wx/laywin.h" #include "sashtest.h" @@ -42,31 +42,30 @@ bool MyApp::OnInit(void) { // Create the main frame window - frame = new MyFrame(NULL, -1, "Sash Demo", wxPoint(0, 0), wxSize(500, 400), - wxDEFAULT_FRAME_STYLE | wxHSCROLL | wxVSCROLL); + frame = new MyFrame(NULL, -1, _T("Sash Demo"), wxPoint(0, 0), wxSize(500, 400), + wxDEFAULT_FRAME_STYLE | + wxNO_FULL_REPAINT_ON_RESIZE | + wxHSCROLL | wxVSCROLL); // Give it an icon (this is ignored in MDI mode: uses resources) #ifdef __WXMSW__ - frame->SetIcon(wxIcon("sashtest_icn")); -#endif -#ifdef __X__ - frame->SetIcon(wxIcon("sashtest.xbm")); + frame->SetIcon(wxIcon(_T("sashtest_icn"))); #endif // Make a menubar wxMenu *file_menu = new wxMenu; - file_menu->Append(SASHTEST_NEW_WINDOW, "&New window"); - file_menu->Append(SASHTEST_TOGGLE_WINDOW, "&Toggle window"); - file_menu->Append(SASHTEST_QUIT, "&Exit"); + file_menu->Append(SASHTEST_NEW_WINDOW, _T("&New window")); + file_menu->Append(SASHTEST_TOGGLE_WINDOW, _T("&Toggle window")); + file_menu->Append(SASHTEST_QUIT, _T("&Exit")); wxMenu *help_menu = new wxMenu; - help_menu->Append(SASHTEST_ABOUT, "&About"); + help_menu->Append(SASHTEST_ABOUT, _T("&About")); wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(help_menu, "&Help"); + menu_bar->Append(file_menu, _T("&File")); + menu_bar->Append(help_menu, _T("&Help")); // Associate the menu bar with the frame frame->SetMenuBar(menu_bar); @@ -92,13 +91,17 @@ END_EVENT_TABLE() // Define my frame constructor MyFrame::MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, - const long style): + const long style): wxMDIParentFrame(parent, id, title, pos, size, style) { // Create some dummy layout windows // A window like a toolbar - wxSashLayoutWindow* win = new wxSashLayoutWindow(this, ID_WINDOW_TOP, wxDefaultPosition, wxSize(200, 30), wxNO_BORDER|wxSW_3D); + wxSashLayoutWindow* win = + new wxSashLayoutWindow(this, ID_WINDOW_TOP, + wxDefaultPosition, wxSize(200, 30), + wxNO_BORDER | wxSW_3D | wxCLIP_CHILDREN); + win->SetDefaultSize(wxSize(1000, 30)); win->SetOrientation(wxLAYOUT_HORIZONTAL); win->SetAlignment(wxLAYOUT_TOP); @@ -108,7 +111,9 @@ MyFrame::MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, c m_topWindow = win; // A window like a statusbar - win = new wxSashLayoutWindow(this, ID_WINDOW_BOTTOM, wxDefaultPosition, wxSize(200, 30), wxNO_BORDER|wxSW_3D); + win = new wxSashLayoutWindow(this, ID_WINDOW_BOTTOM, + wxDefaultPosition, wxSize(200, 30), + wxNO_BORDER | wxSW_3D | wxCLIP_CHILDREN); win->SetDefaultSize(wxSize(1000, 30)); win->SetOrientation(wxLAYOUT_HORIZONTAL); win->SetAlignment(wxLAYOUT_BOTTOM); @@ -118,7 +123,9 @@ MyFrame::MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, c m_bottomWindow = win; // A window to the left of the client window - win = new wxSashLayoutWindow(this, ID_WINDOW_LEFT1, wxDefaultPosition, wxSize(200, 30), wxNO_BORDER|wxSW_3D); + win = new wxSashLayoutWindow(this, ID_WINDOW_LEFT1, + wxDefaultPosition, wxSize(200, 30), + wxNO_BORDER | wxSW_3D | wxCLIP_CHILDREN); win->SetDefaultSize(wxSize(120, 1000)); win->SetOrientation(wxLAYOUT_VERTICAL); win->SetAlignment(wxLAYOUT_LEFT); @@ -126,15 +133,17 @@ MyFrame::MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, c win->SetSashVisible(wxSASH_RIGHT, TRUE); win->SetExtraBorderSize(10); - wxTextCtrl* textWindow = new wxTextCtrl(win, -1, "", wxDefaultPosition, wxDefaultSize, + wxTextCtrl* textWindow = new wxTextCtrl(win, -1, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxSUNKEN_BORDER); // wxTE_MULTILINE|wxNO_BORDER); - textWindow->SetValue("A help window"); + textWindow->SetValue(_T("A help window")); m_leftWindow1 = win; // Another window to the left of the client window - win = new wxSashLayoutWindow(this, ID_WINDOW_LEFT2, wxDefaultPosition, wxSize(200, 30), wxNO_BORDER|wxSW_3D); + win = new wxSashLayoutWindow(this, ID_WINDOW_LEFT2, + wxDefaultPosition, wxSize(200, 30), + wxNO_BORDER | wxSW_3D | wxCLIP_CHILDREN); win->SetDefaultSize(wxSize(120, 1000)); win->SetOrientation(wxLAYOUT_VERTICAL); win->SetAlignment(wxLAYOUT_LEFT); @@ -151,7 +160,7 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) { - (void)wxMessageBox("wxWindows 2.0 Sash Demo\nAuthor: Julian Smart (c) 1998", "About Sash Demo"); + (void)wxMessageBox(_T("wxWindows 2.0 Sash Demo\nAuthor: Julian Smart (c) 1998"), _T("About Sash Demo")); } void MyFrame::OnToggleWindow(wxCommandEvent& WXUNUSED(event)) @@ -206,17 +215,17 @@ void MyFrame::OnSashDrag(wxSashEvent& event) void MyFrame::OnNewWindow(wxCommandEvent& WXUNUSED(event)) { // Make another frame, containing a canvas - MyChild *subframe = new MyChild(frame, "Canvas Frame", wxPoint(10, 10), wxSize(300, 300), - wxDEFAULT_FRAME); + MyChild *subframe = new MyChild(frame, _T("Canvas Frame"), + wxPoint(10, 10), wxSize(300, 300), + wxDEFAULT_FRAME_STYLE | + wxNO_FULL_REPAINT_ON_RESIZE); - char titleBuf[100]; - sprintf(titleBuf, "Canvas Frame %d", winNumber); - subframe->SetTitle(titleBuf); + 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("sashtest_icn")); + subframe->SetIcon(wxIcon(_T("sashtest_icn"))); #endif // Give it a status line @@ -225,23 +234,23 @@ void MyFrame::OnNewWindow(wxCommandEvent& WXUNUSED(event)) // Make a menubar wxMenu *file_menu = new wxMenu; - file_menu->Append(SASHTEST_NEW_WINDOW, "&New window"); - file_menu->Append(SASHTEST_CHILD_QUIT, "&Close child"); - file_menu->Append(SASHTEST_QUIT, "&Exit"); + file_menu->Append(SASHTEST_NEW_WINDOW, _T("&New window")); + file_menu->Append(SASHTEST_CHILD_QUIT, _T("&Close child")); + file_menu->Append(SASHTEST_QUIT, _T("&Exit")); wxMenu *option_menu = new wxMenu; // Dummy option - option_menu->Append(SASHTEST_REFRESH, "&Refresh picture"); + option_menu->Append(SASHTEST_REFRESH, _T("&Refresh picture")); wxMenu *help_menu = new wxMenu; - help_menu->Append(SASHTEST_ABOUT, "&About"); + help_menu->Append(SASHTEST_ABOUT, _T("&About")); wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(option_menu, "&Options"); - menu_bar->Append(help_menu, "&Help"); + menu_bar->Append(file_menu, _T("&File")); + menu_bar->Append(option_menu, _T("&Options")); + menu_bar->Append(help_menu, _T("&Help")); // Associate the menu bar with the frame subframe->SetMenuBar(menu_bar); @@ -259,13 +268,15 @@ void MyFrame::OnNewWindow(wxCommandEvent& WXUNUSED(event)) } BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_MOUSE_EVENTS(MyCanvas::OnEvent) + EVT_MOUSE_EVENTS(MyCanvas::OnEvent) END_EVENT_TABLE() // Define a constructor for my canvas -MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size): - wxScrolledWindow(parent, -1, pos, size, wxSUNKEN_BORDER) +MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size) + : wxScrolledWindow(parent, -1, pos, size, + wxSUNKEN_BORDER | wxNO_FULL_REPAINT_ON_RESIZE) { + SetBackgroundColour(* wxWHITE); } // Define the repainting behaviour @@ -282,9 +293,11 @@ void MyCanvas::OnDraw(wxDC& dc) dc.DrawRoundedRectangle(150, 150, 100, 50, 20); dc.DrawEllipse(250, 250, 100, 50); +#if wxUSE_SPLINES dc.DrawSpline(50, 200, 50, 100, 200, 10); +#endif // wxUSE_SPLINES dc.DrawLine(50, 230, 200, 230); - dc.DrawText("This is a test string", 50, 230); + dc.DrawText(_T("This is a test string"), 50, 230); wxPoint points[3]; points[0].x = 200; points[0].y = 300; @@ -312,23 +325,6 @@ void MyCanvas::OnEvent(wxMouseEvent& event) ypos = pt.y; } -// Define the behaviour for the frame closing -// - must delete all frames except for the main one. -bool MyFrame::OnClose(void) -{ - // Must delete children - wxNode *node = my_children.First(); - while (node) - { - MyChild *child = (MyChild *)node->Data(); - wxNode *next = node->Next(); - child->OnClose(); - delete child; - node = next; - } - return TRUE; -} - void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event)) { wxLayoutAlgorithm layout; @@ -367,9 +363,3 @@ void MyChild::OnActivate(wxActivateEvent& event) canvas->SetFocus(); } -bool MyChild::OnClose(void) -{ - return TRUE; -} - -