X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eacb91fc20ed0079a699ba7f3f2f624958caf482..13b22a673807f68da1dffbb8c56614d3f07124f4:/contrib/samples/gizmos/dynsash/dynsash.cpp?ds=sidebyside diff --git a/contrib/samples/gizmos/dynsash/dynsash.cpp b/contrib/samples/gizmos/dynsash/dynsash.cpp index 8e7bbb4efe..e24229b4c3 100644 --- a/contrib/samples/gizmos/dynsash/dynsash.cpp +++ b/contrib/samples/gizmos/dynsash/dynsash.cpp @@ -10,21 +10,40 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#include -#include -#include -#include - -class Demo : public wxApp { +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +// for all others, include the necessary headers (this file is usually all you +// need because it includes almost all "standard" wxWidgets headers) +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif + +#include "wx/app.h" +#include "wx/frame.h" +#include "wx/gizmos/dynamicsash.h" +#include "wx/html/htmlwin.h" +#include "wx/image.h" +#include "wx/cmdline.h" + +class Demo : public wxApp +{ public: bool OnInit(); }; -class SashHtmlWindow : public wxHtmlWindow { +class SashHtmlWindow : public wxHtmlWindow +{ public: - SashHtmlWindow(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxHW_SCROLLBAR_NEVER, const wxString& name = "sashHtmlWindow"); + SashHtmlWindow(wxWindow *parent, wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxHW_SCROLLBAR_NEVER, + const wxString& name = wxT("sashHtmlWindow")); wxSize DoGetBestSize() const; @@ -36,51 +55,60 @@ private: IMPLEMENT_APP(Demo) -char *HTML_content = -"

wxDynamicSashWindow demo

" -"

Here is an example of how you can use wxDynamicSashWindow to allow your users to " -"dynamically split and unify the views of your windows. Try dragging out a few splits " -"and then reunifying the window." -"

Also, see the dynsash_switch sample for an example of an application which " -"manages the scrollbars provided by wxDynamicSashWindow itself." -; +const wxChar *HTML_content = +wxT("

wxDynamicSashWindow demo

") +wxT("

Here is an example of how you can use wxDynamicSashWindow to allow your users to ") +wxT("dynamically split and unify the views of your windows. Try dragging out a few splits ") +wxT("and then reunifying the window.") +wxT("

Also, see the dynsash_switch sample for an example of an application which ") +wxT("manages the scrollbars provided by wxDynamicSashWindow itself."); -bool Demo::OnInit() { +bool Demo::OnInit() +{ wxInitAllImageHandlers(); - wxFrame *frame = new wxFrame(NULL, -1, "Dynamic Sash Demo"); + wxFrame *frame = new wxFrame(NULL, wxID_ANY, wxT("Dynamic Sash Demo")); frame->SetSize(480, 480); - wxDynamicSashWindow *sash = new wxDynamicSashWindow(frame, -1); - wxHtmlWindow *html = new SashHtmlWindow(sash, -1); + wxDynamicSashWindow *sash = new wxDynamicSashWindow(frame, wxID_ANY); + wxHtmlWindow *html = new SashHtmlWindow(sash, wxID_ANY); html->SetPage(HTML_content); frame->Show(); - return TRUE; + return true; } SashHtmlWindow::SashHtmlWindow(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, const wxString& name) : - wxHtmlWindow(parent, id, pos, size, style, name) { - Connect(-1, wxEVT_DYNAMIC_SASH_SPLIT, (wxObjectEventFunction)&SashHtmlWindow::OnSplit); + const wxPoint& pos, + const wxSize& size, + long style, + const wxString& name) + : wxHtmlWindow(parent, id, pos, size, style, name) +{ + Connect(wxEVT_DYNAMIC_SASH_SPLIT, + wxDynamicSashSplitEventHandler(SashHtmlWindow::OnSplit)); m_dyn_sash = parent; } -wxSize SashHtmlWindow::DoGetBestSize() const { +wxSize SashHtmlWindow::DoGetBestSize() const +{ wxHtmlContainerCell *cell = GetInternalRepresentation(); wxSize size = GetSize(); - if (cell) { + if (cell) + { cell->Layout(size.GetWidth()); return wxSize(cell->GetWidth(), cell->GetHeight()); - } else - return wxHtmlWindow::GetBestSize(); + } + + return wxHtmlWindow::GetBestSize(); } -void SashHtmlWindow::OnSplit(wxDynamicSashSplitEvent& event) { - wxHtmlWindow *html = new SashHtmlWindow(m_dyn_sash, -1); +void SashHtmlWindow::OnSplit(wxDynamicSashSplitEvent& WXUNUSED(event)) +{ + wxHtmlWindow *html = new SashHtmlWindow(m_dyn_sash, wxID_ANY); html->SetPage(HTML_content); }