added SetSashPosition() test
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -25,7 +25,15 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/wx.h"
|
#include "wx/log.h"
|
||||||
|
|
||||||
|
#include "wx/app.h"
|
||||||
|
#include "wx/frame.h"
|
||||||
|
|
||||||
|
#include "wx/scrolwin.h"
|
||||||
|
#include "wx/menu.h"
|
||||||
|
|
||||||
|
#include "wx/textdlg.h" // for wxGetTextFromUser
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "wx/splitter.h"
|
#include "wx/splitter.h"
|
||||||
@@ -42,6 +50,7 @@ enum
|
|||||||
SPLIT_VERTICAL,
|
SPLIT_VERTICAL,
|
||||||
SPLIT_UNSPLIT,
|
SPLIT_UNSPLIT,
|
||||||
SPLIT_LIVE,
|
SPLIT_LIVE,
|
||||||
|
SPLIT_SETPOSITION,
|
||||||
SPLIT_SETMINSIZE
|
SPLIT_SETMINSIZE
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -66,6 +75,7 @@ public:
|
|||||||
void SplitVertical(wxCommandEvent& event);
|
void SplitVertical(wxCommandEvent& event);
|
||||||
void Unsplit(wxCommandEvent& event);
|
void Unsplit(wxCommandEvent& event);
|
||||||
void ToggleLive(wxCommandEvent& event);
|
void ToggleLive(wxCommandEvent& event);
|
||||||
|
void SetPosition(wxCommandEvent& event);
|
||||||
void SetMinSize(wxCommandEvent& event);
|
void SetMinSize(wxCommandEvent& event);
|
||||||
|
|
||||||
void Quit(wxCommandEvent& event);
|
void Quit(wxCommandEvent& event);
|
||||||
@@ -138,6 +148,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|||||||
EVT_MENU(SPLIT_HORIZONTAL, MyFrame::SplitHorizontal)
|
EVT_MENU(SPLIT_HORIZONTAL, MyFrame::SplitHorizontal)
|
||||||
EVT_MENU(SPLIT_UNSPLIT, MyFrame::Unsplit)
|
EVT_MENU(SPLIT_UNSPLIT, MyFrame::Unsplit)
|
||||||
EVT_MENU(SPLIT_LIVE, MyFrame::ToggleLive)
|
EVT_MENU(SPLIT_LIVE, MyFrame::ToggleLive)
|
||||||
|
EVT_MENU(SPLIT_SETPOSITION, MyFrame::SetPosition)
|
||||||
EVT_MENU(SPLIT_SETMINSIZE, MyFrame::SetMinSize)
|
EVT_MENU(SPLIT_SETMINSIZE, MyFrame::SetMinSize)
|
||||||
|
|
||||||
EVT_MENU(SPLIT_QUIT, MyFrame::Quit)
|
EVT_MENU(SPLIT_QUIT, MyFrame::Quit)
|
||||||
@@ -156,18 +167,33 @@ MyFrame::MyFrame()
|
|||||||
CreateStatusBar(2);
|
CreateStatusBar(2);
|
||||||
|
|
||||||
// Make a menubar
|
// Make a menubar
|
||||||
wxMenu *fileMenu = new wxMenu;
|
wxMenu *splitMenu = new wxMenu;
|
||||||
fileMenu->Append(SPLIT_VERTICAL, _T("Split &Vertically\tCtrl-V"), _T("Split vertically"));
|
splitMenu->Append(SPLIT_VERTICAL,
|
||||||
fileMenu->Append(SPLIT_HORIZONTAL, _T("Split &Horizontally\tCtrl-H"), _T("Split horizontally"));
|
_T("Split &Vertically\tCtrl-V"),
|
||||||
fileMenu->Append(SPLIT_UNSPLIT, _T("&Unsplit\tCtrl-U"), _T("Unsplit"));
|
_T("Split vertically"));
|
||||||
fileMenu->AppendSeparator();
|
splitMenu->Append(SPLIT_HORIZONTAL,
|
||||||
fileMenu->Append(SPLIT_LIVE, _T("&Live update"), _T("Toggle live update mode"), TRUE);
|
_T("Split &Horizontally\tCtrl-H"),
|
||||||
fileMenu->Append(SPLIT_SETMINSIZE, _T("Set &min size"), _T("Set minimum pane size"));
|
_T("Split horizontally"));
|
||||||
fileMenu->AppendSeparator();
|
splitMenu->Append(SPLIT_UNSPLIT,
|
||||||
fileMenu->Append(SPLIT_QUIT, _T("E&xit\tAlt-X"), _T("Exit"));
|
_T("&Unsplit\tCtrl-U"),
|
||||||
|
_T("Unsplit"));
|
||||||
|
splitMenu->AppendSeparator();
|
||||||
|
|
||||||
|
splitMenu->AppendCheckItem(SPLIT_LIVE,
|
||||||
|
_T("&Live update\tCtrl-L"),
|
||||||
|
_T("Toggle live update mode"));
|
||||||
|
splitMenu->Append(SPLIT_SETPOSITION,
|
||||||
|
_T("Set splitter &position\tCtrl-P"),
|
||||||
|
_T("Set the splitter position"));
|
||||||
|
splitMenu->Append(SPLIT_SETMINSIZE,
|
||||||
|
_T("Set &min size\tCtrl-M"),
|
||||||
|
_T("Set minimum pane size"));
|
||||||
|
splitMenu->AppendSeparator();
|
||||||
|
|
||||||
|
splitMenu->Append(SPLIT_QUIT, _T("E&xit\tAlt-X"), _T("Exit"));
|
||||||
|
|
||||||
wxMenuBar *menuBar = new wxMenuBar;
|
wxMenuBar *menuBar = new wxMenuBar;
|
||||||
menuBar->Append(fileMenu, _T("&File"));
|
menuBar->Append(splitMenu, _T("&Splitter"));
|
||||||
|
|
||||||
SetMenuBar(menuBar);
|
SetMenuBar(menuBar);
|
||||||
|
|
||||||
@@ -251,12 +277,32 @@ void MyFrame::ToggleLive(wxCommandEvent& event )
|
|||||||
m_splitter->SetWindowStyleFlag(style);
|
m_splitter->SetWindowStyleFlag(style);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyFrame::SetPosition(wxCommandEvent& WXUNUSED(event) )
|
||||||
|
{
|
||||||
|
wxString str;
|
||||||
|
str.Printf( wxT("%d"), m_splitter->GetSashPosition());
|
||||||
|
str = wxGetTextFromUser(_T("Enter splitter position:"), _T(""), str, this);
|
||||||
|
if ( str.empty() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
long pos;
|
||||||
|
if ( !str.ToLong(&pos) )
|
||||||
|
{
|
||||||
|
wxLogError(_T("The splitter position should be an integer."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_splitter->SetSashPosition(pos);
|
||||||
|
|
||||||
|
wxLogStatus(this, _T("Splitter position set to %ld"), pos);
|
||||||
|
}
|
||||||
|
|
||||||
void MyFrame::SetMinSize(wxCommandEvent& WXUNUSED(event) )
|
void MyFrame::SetMinSize(wxCommandEvent& WXUNUSED(event) )
|
||||||
{
|
{
|
||||||
wxString str;
|
wxString str;
|
||||||
str.Printf( wxT("%d"), m_splitter->GetMinimumPaneSize());
|
str.Printf( wxT("%d"), m_splitter->GetMinimumPaneSize());
|
||||||
str = wxGetTextFromUser(_T("Enter minimal size for panes:"), _T(""), str, this);
|
str = wxGetTextFromUser(_T("Enter minimal size for panes:"), _T(""), str, this);
|
||||||
if ( str.IsEmpty() )
|
if ( str.empty() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int minsize = wxStrtol( str, (wxChar**)NULL, 10 );
|
int minsize = wxStrtol( str, (wxChar**)NULL, 10 );
|
||||||
|
Reference in New Issue
Block a user