Adaptations for PDA-sized screens

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35178 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2005-08-12 14:16:05 +00:00
parent b23030d6fa
commit a6328131cd
2 changed files with 37 additions and 16 deletions

View File

@@ -25,6 +25,7 @@ All (GUI):
- Cross-compile now supported for wxGTK, wxX11 and wxMotif. - Cross-compile now supported for wxGTK, wxX11 and wxMotif.
- Cygwin compilation of wxX11, wxGTK and wxMotif now supported. - Cygwin compilation of wxX11, wxGTK and wxMotif now supported.
- Now reads "help" parameter for all windows (context help text). - Now reads "help" parameter for all windows (context help text).
- wxWizard adapts to PDA-sized screens.
wxMSW: wxMSW:

View File

@@ -43,6 +43,7 @@
#include "wx/statline.h" #include "wx/statline.h"
#include "wx/sizer.h" #include "wx/sizer.h"
#include "wx/settings.h"
#include "wx/wizard.h" #include "wx/wizard.h"
@@ -390,6 +391,9 @@ void wxWizard::AddButtonRow(wxBoxSizer *mainColumn)
// key to TAB to the next entry field and page. This would not be possible, if the 'back' button // key to TAB to the next entry field and page. This would not be possible, if the 'back' button
// was created before the 'next' button. // was created before the 'next' button.
bool isPda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
int buttonStyle = isPda ? wxBU_EXACTFIT : 0;
wxBoxSizer *buttonRow = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *buttonRow = new wxBoxSizer(wxHORIZONTAL);
#ifdef __WXMAC__ #ifdef __WXMAC__
if (GetExtraStyle() & wxWIZARD_EX_HELPBUTTON) if (GetExtraStyle() & wxWIZARD_EX_HELPBUTTON)
@@ -411,16 +415,16 @@ void wxWizard::AddButtonRow(wxBoxSizer *mainColumn)
wxButton *btnHelp=0; wxButton *btnHelp=0;
#ifdef __WXMAC__ #ifdef __WXMAC__
if (GetExtraStyle() & wxWIZARD_EX_HELPBUTTON) if (GetExtraStyle() & wxWIZARD_EX_HELPBUTTON)
btnHelp=new wxButton(this, wxID_HELP, _("&Help")); btnHelp=new wxButton(this, wxID_HELP, _("&Help"), wxDefaultPosition, wxDefaultSize, buttonStyle);
#endif #endif
m_btnNext = new wxButton(this, wxID_FORWARD, _("&Next >")); m_btnNext = new wxButton(this, wxID_FORWARD, _("&Next >"));
wxButton *btnCancel=new wxButton(this, wxID_CANCEL, _("&Cancel")); wxButton *btnCancel=new wxButton(this, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, buttonStyle);
#ifndef __WXMAC__ #ifndef __WXMAC__
if (GetExtraStyle() & wxWIZARD_EX_HELPBUTTON) if (GetExtraStyle() & wxWIZARD_EX_HELPBUTTON)
btnHelp=new wxButton(this, wxID_HELP, _("&Help")); btnHelp=new wxButton(this, wxID_HELP, _("&Help"), wxDefaultPosition, wxDefaultSize, buttonStyle);
#endif #endif
m_btnPrev = new wxButton(this, wxID_BACKWARD, _("< &Back")); m_btnPrev = new wxButton(this, wxID_BACKWARD, _("< &Back"), wxDefaultPosition, wxDefaultSize, buttonStyle);
if (btnHelp) if (btnHelp)
{ {
@@ -452,6 +456,11 @@ void wxWizard::DoCreateControls()
if ( WasCreated() ) if ( WasCreated() )
return; return;
bool isPda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
// Horizontal stretching, and if not PDA, border all around
int mainColumnSizerFlags = isPda ? wxEXPAND : wxALL|wxEXPAND ;
// wxWindow::SetSizer will be called at end // wxWindow::SetSizer will be called at end
wxBoxSizer *windowSizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer *windowSizer = new wxBoxSizer(wxVERTICAL);
@@ -459,12 +468,15 @@ void wxWizard::DoCreateControls()
windowSizer->Add( windowSizer->Add(
mainColumn, mainColumn,
1, // Vertical stretching 1, // Vertical stretching
wxALL | wxEXPAND, // Border all around, horizontal stretching mainColumnSizerFlags,
5 // Border width 5 // Border width
); );
AddBitmapRow(mainColumn); AddBitmapRow(mainColumn);
AddStaticLine(mainColumn);
if (!isPda)
AddStaticLine(mainColumn);
AddButtonRow(mainColumn); AddButtonRow(mainColumn);
// wxWindow::SetSizer should be followed by wxWindow::Fit, but // wxWindow::SetSizer should be followed by wxWindow::Fit, but
@@ -480,6 +492,8 @@ void wxWizard::SetPageSize(const wxSize& size)
void wxWizard::FinishLayout() void wxWizard::FinishLayout()
{ {
bool isPda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
// Set to enable wxWizardSizer::GetMaxChildSize // Set to enable wxWizardSizer::GetMaxChildSize
m_started = true; m_started = true;
@@ -490,9 +504,12 @@ void wxWizard::FinishLayout()
m_sizerPage->Border() m_sizerPage->Border()
); );
GetSizer()->SetSizeHints(this); if (!isPda)
if ( m_posWizard == wxDefaultPosition ) {
CentreOnScreen(); GetSizer()->SetSizeHints(this);
if ( m_posWizard == wxDefaultPosition )
CentreOnScreen();
}
} }
void wxWizard::FitToPage(const wxWizardPage *page) void wxWizard::FitToPage(const wxWizardPage *page)
@@ -674,13 +691,16 @@ void wxWizard::SetBorder(int border)
wxSize wxWizard::GetManualPageSize() const wxSize wxWizard::GetManualPageSize() const
{ {
// default width and height of the page // default width and height of the page
static const int DEFAULT_PAGE_WIDTH = 270; int DEFAULT_PAGE_WIDTH = 270;
//static const int DEFAULT_PAGE_HEIGHT = 290; int DEFAULT_PAGE_HEIGHT = 270;
// For compatibility with 2.4: there's too much bool isPda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
// space under the bitmap, probably due to differences in if (isPda)
// the sizer implementation. This makes it reasonable again. {
static const int DEFAULT_PAGE_HEIGHT = 270; // Make the default page size small enough to fit on screen
DEFAULT_PAGE_WIDTH = wxSystemSettings::GetMetric(wxSYS_SCREEN_X) / 2;
DEFAULT_PAGE_HEIGHT = wxSystemSettings::GetMetric(wxSYS_SCREEN_Y) / 2;
}
wxSize totalPageSize(DEFAULT_PAGE_WIDTH,DEFAULT_PAGE_HEIGHT); wxSize totalPageSize(DEFAULT_PAGE_WIDTH,DEFAULT_PAGE_HEIGHT);
totalPageSize.IncTo(m_sizePage); totalPageSize.IncTo(m_sizePage);