added wxTB_RIGHT style for right-aligned toolbars (slightly modified patch 1567469)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -73,6 +73,7 @@ use this option under Windows XP with true colour:
|
|||||||
\twocolitem{\windowstyle{wxTB\_HORZ\_TEXT}}{Combination of wxTB\_HORZ\_LAYOUT and wxTB\_TEXT.}
|
\twocolitem{\windowstyle{wxTB\_HORZ\_TEXT}}{Combination of wxTB\_HORZ\_LAYOUT and wxTB\_TEXT.}
|
||||||
\twocolitem{\windowstyle{wxTB\_NO\_TOOLTIPS}}{Don't show the short help tooltips for the tools when the mouse hovers over them.}
|
\twocolitem{\windowstyle{wxTB\_NO\_TOOLTIPS}}{Don't show the short help tooltips for the tools when the mouse hovers over them.}
|
||||||
\twocolitem{\windowstyle{wxTB\_BOTTOM}}{Align the toolbar at the bottom of parent window.}
|
\twocolitem{\windowstyle{wxTB\_BOTTOM}}{Align the toolbar at the bottom of parent window.}
|
||||||
|
\twocolitem{\windowstyle{wxTB\_RIGHT}}{Align the toolbar at the right side of parent window.}
|
||||||
\end{twocollist}
|
\end{twocollist}
|
||||||
|
|
||||||
See also \helpref{window styles overview}{windowstyles}. Note that the Win32
|
See also \helpref{window styles overview}{windowstyles}. Note that the Win32
|
||||||
|
@@ -420,7 +420,7 @@ public:
|
|||||||
wxToolBarToolBase *FindById(int toolid) const;
|
wxToolBarToolBase *FindById(int toolid) const;
|
||||||
|
|
||||||
// return true if this is a vertical toolbar, otherwise false
|
// return true if this is a vertical toolbar, otherwise false
|
||||||
bool IsVertical() const { return HasFlag(wxTB_VERTICAL); }
|
bool IsVertical() const { return HasFlag(wxTB_LEFT | wxTB_RIGHT); }
|
||||||
|
|
||||||
|
|
||||||
// the old versions of the various methods kept for compatibility
|
// the old versions of the various methods kept for compatibility
|
||||||
|
@@ -22,9 +22,11 @@ enum
|
|||||||
{
|
{
|
||||||
// lay out the toolbar horizontally
|
// lay out the toolbar horizontally
|
||||||
wxTB_HORIZONTAL = wxHORIZONTAL, // == 0x0004
|
wxTB_HORIZONTAL = wxHORIZONTAL, // == 0x0004
|
||||||
|
wxTB_TOP = wxTB_HORIZONTAL,
|
||||||
|
|
||||||
// lay out the toolbar vertically
|
// lay out the toolbar vertically
|
||||||
wxTB_VERTICAL = wxVERTICAL, // == 0x0008
|
wxTB_VERTICAL = wxVERTICAL, // == 0x0008
|
||||||
|
wxTB_LEFT = wxTB_VERTICAL,
|
||||||
|
|
||||||
// show 3D buttons (wxToolBarSimple only)
|
// show 3D buttons (wxToolBarSimple only)
|
||||||
wxTB_3DBUTTONS = 0x0010,
|
wxTB_3DBUTTONS = 0x0010,
|
||||||
@@ -55,7 +57,10 @@ enum
|
|||||||
wxTB_NO_TOOLTIPS = 0x1000,
|
wxTB_NO_TOOLTIPS = 0x1000,
|
||||||
|
|
||||||
// lay out toolbar at the bottom of the window
|
// lay out toolbar at the bottom of the window
|
||||||
wxTB_BOTTOM = 0x2000
|
wxTB_BOTTOM = 0x2000,
|
||||||
|
|
||||||
|
// lay out toolbar at the right edge of the window
|
||||||
|
wxTB_RIGHT = 0x4000
|
||||||
};
|
};
|
||||||
|
|
||||||
#if wxUSE_TOOLBAR
|
#if wxUSE_TOOLBAR
|
||||||
|
@@ -64,6 +64,14 @@
|
|||||||
#include "bitmaps/help.xpm"
|
#include "bitmaps/help.xpm"
|
||||||
#endif // USE_XPM_BITMAPS
|
#endif // USE_XPM_BITMAPS
|
||||||
|
|
||||||
|
enum Positions
|
||||||
|
{
|
||||||
|
TOOLBAR_LEFT,
|
||||||
|
TOOLBAR_TOP,
|
||||||
|
TOOLBAR_RIGHT,
|
||||||
|
TOOLBAR_BOTTOM
|
||||||
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// classes
|
// classes
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -97,9 +105,8 @@ public:
|
|||||||
void OnToggleAnotherToolbar(wxCommandEvent& event);
|
void OnToggleAnotherToolbar(wxCommandEvent& event);
|
||||||
void OnToggleHorizontalText(wxCommandEvent& WXUNUSED(event));
|
void OnToggleHorizontalText(wxCommandEvent& WXUNUSED(event));
|
||||||
|
|
||||||
void OnBottomToolbar(wxCommandEvent& WXUNUSED(event));
|
|
||||||
void OnToggleToolbarSize(wxCommandEvent& event);
|
void OnToggleToolbarSize(wxCommandEvent& event);
|
||||||
void OnToggleToolbarOrient(wxCommandEvent& event);
|
void OnChangeOrientation(wxCommandEvent& event);
|
||||||
void OnToggleToolbarRows(wxCommandEvent& event);
|
void OnToggleToolbarRows(wxCommandEvent& event);
|
||||||
void OnToggleTooltips(wxCommandEvent& event);
|
void OnToggleTooltips(wxCommandEvent& event);
|
||||||
void OnToggleCustomDisabled(wxCommandEvent& event);
|
void OnToggleCustomDisabled(wxCommandEvent& event);
|
||||||
@@ -132,8 +139,6 @@ private:
|
|||||||
void LayoutChildren();
|
void LayoutChildren();
|
||||||
|
|
||||||
bool m_smallToolbar,
|
bool m_smallToolbar,
|
||||||
m_horzToolbar,
|
|
||||||
m_bottomToolbar,
|
|
||||||
m_horzText,
|
m_horzText,
|
||||||
m_useCustomDisabled,
|
m_useCustomDisabled,
|
||||||
m_showTooltips;
|
m_showTooltips;
|
||||||
@@ -142,6 +147,9 @@ private:
|
|||||||
// the number of print buttons we have (they're added/removed dynamically)
|
// the number of print buttons we have (they're added/removed dynamically)
|
||||||
size_t m_nPrint;
|
size_t m_nPrint;
|
||||||
|
|
||||||
|
// store toolbar position for future use
|
||||||
|
Positions m_toolbarPosition;
|
||||||
|
|
||||||
wxTextCtrl *m_textWindow;
|
wxTextCtrl *m_textWindow;
|
||||||
|
|
||||||
wxToolBar *m_tbar;
|
wxToolBar *m_tbar;
|
||||||
@@ -163,7 +171,6 @@ static const long TOOLBAR_STYLE = wxTB_FLAT | wxTB_DOCKABLE | wxTB_TEXT;
|
|||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
IDM_TOOLBAR_TOGGLETOOLBARSIZE = 200,
|
IDM_TOOLBAR_TOGGLETOOLBARSIZE = 200,
|
||||||
IDM_TOOLBAR_TOGGLETOOLBARORIENT,
|
|
||||||
IDM_TOOLBAR_TOGGLETOOLBARROWS,
|
IDM_TOOLBAR_TOGGLETOOLBARROWS,
|
||||||
IDM_TOOLBAR_TOGGLETOOLTIPS,
|
IDM_TOOLBAR_TOGGLETOOLTIPS,
|
||||||
IDM_TOOLBAR_TOGGLECUSTOMDISABLED,
|
IDM_TOOLBAR_TOGGLECUSTOMDISABLED,
|
||||||
@@ -182,7 +189,10 @@ enum
|
|||||||
IDM_TOOLBAR_SHOW_ICONS,
|
IDM_TOOLBAR_SHOW_ICONS,
|
||||||
IDM_TOOLBAR_SHOW_BOTH,
|
IDM_TOOLBAR_SHOW_BOTH,
|
||||||
IDM_TOOLBAR_CUSTOM_PATH,
|
IDM_TOOLBAR_CUSTOM_PATH,
|
||||||
|
IDM_TOOLBAR_TOP_ORIENTATION,
|
||||||
|
IDM_TOOLBAR_LEFT_ORIENTATION,
|
||||||
IDM_TOOLBAR_BOTTOM_ORIENTATION,
|
IDM_TOOLBAR_BOTTOM_ORIENTATION,
|
||||||
|
IDM_TOOLBAR_RIGHT_ORIENTATION,
|
||||||
IDM_TOOLBAR_OTHER_1,
|
IDM_TOOLBAR_OTHER_1,
|
||||||
IDM_TOOLBAR_OTHER_2,
|
IDM_TOOLBAR_OTHER_2,
|
||||||
IDM_TOOLBAR_OTHER_3,
|
IDM_TOOLBAR_OTHER_3,
|
||||||
@@ -208,9 +218,8 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|||||||
EVT_MENU(IDM_TOOLBAR_TOGGLE_ANOTHER_TOOLBAR, MyFrame::OnToggleAnotherToolbar)
|
EVT_MENU(IDM_TOOLBAR_TOGGLE_ANOTHER_TOOLBAR, MyFrame::OnToggleAnotherToolbar)
|
||||||
EVT_MENU(IDM_TOOLBAR_TOGGLE_HORIZONTAL_TEXT, MyFrame::OnToggleHorizontalText)
|
EVT_MENU(IDM_TOOLBAR_TOGGLE_HORIZONTAL_TEXT, MyFrame::OnToggleHorizontalText)
|
||||||
|
|
||||||
EVT_MENU(IDM_TOOLBAR_BOTTOM_ORIENTATION, MyFrame::OnBottomToolbar)
|
EVT_MENU_RANGE(IDM_TOOLBAR_TOP_ORIENTATION, IDM_TOOLBAR_RIGHT_ORIENTATION, MyFrame::OnChangeOrientation)
|
||||||
EVT_MENU(IDM_TOOLBAR_TOGGLETOOLBARSIZE, MyFrame::OnToggleToolbarSize)
|
EVT_MENU(IDM_TOOLBAR_TOGGLETOOLBARSIZE, MyFrame::OnToggleToolbarSize)
|
||||||
EVT_MENU(IDM_TOOLBAR_TOGGLETOOLBARORIENT, MyFrame::OnToggleToolbarOrient)
|
|
||||||
EVT_MENU(IDM_TOOLBAR_TOGGLETOOLBARROWS, MyFrame::OnToggleToolbarRows)
|
EVT_MENU(IDM_TOOLBAR_TOGGLETOOLBARROWS, MyFrame::OnToggleToolbarRows)
|
||||||
EVT_MENU(IDM_TOOLBAR_TOGGLETOOLTIPS, MyFrame::OnToggleTooltips)
|
EVT_MENU(IDM_TOOLBAR_TOGGLETOOLTIPS, MyFrame::OnToggleTooltips)
|
||||||
EVT_MENU(IDM_TOOLBAR_TOGGLECUSTOMDISABLED, MyFrame::OnToggleCustomDisabled)
|
EVT_MENU(IDM_TOOLBAR_TOGGLECUSTOMDISABLED, MyFrame::OnToggleCustomDisabled)
|
||||||
@@ -292,11 +301,22 @@ void MyFrame::RecreateToolbar()
|
|||||||
|
|
||||||
SetToolBar(NULL);
|
SetToolBar(NULL);
|
||||||
|
|
||||||
style &= ~(wxTB_HORIZONTAL | wxTB_VERTICAL | wxTB_BOTTOM | wxTB_HORZ_LAYOUT);
|
style &= ~(wxTB_HORIZONTAL | wxTB_VERTICAL | wxTB_BOTTOM | wxTB_RIGHT | wxTB_HORZ_LAYOUT);
|
||||||
if( m_bottomToolbar )
|
switch( m_toolbarPosition )
|
||||||
|
{
|
||||||
|
case TOOLBAR_LEFT:
|
||||||
|
style |= wxTB_LEFT;
|
||||||
|
break;
|
||||||
|
case TOOLBAR_TOP:
|
||||||
|
style |= wxTB_TOP;
|
||||||
|
break;
|
||||||
|
case TOOLBAR_RIGHT:
|
||||||
|
style |= wxTB_RIGHT;
|
||||||
|
break;
|
||||||
|
case TOOLBAR_BOTTOM:
|
||||||
style |= wxTB_BOTTOM;
|
style |= wxTB_BOTTOM;
|
||||||
else
|
break;
|
||||||
style |= m_horzToolbar ? wxTB_HORIZONTAL : wxTB_VERTICAL;
|
}
|
||||||
|
|
||||||
if ( m_showTooltips )
|
if ( m_showTooltips )
|
||||||
style &= ~wxTB_NO_TOOLTIPS;
|
style &= ~wxTB_NO_TOOLTIPS;
|
||||||
@@ -369,7 +389,7 @@ void MyFrame::RecreateToolbar()
|
|||||||
// the generic toolbar doesn't really support this
|
// the generic toolbar doesn't really support this
|
||||||
#if wxUSE_TOOLBAR_NATIVE && !defined(__WXX11__) || defined(__WXUNIVERSAL__)
|
#if wxUSE_TOOLBAR_NATIVE && !defined(__WXX11__) || defined(__WXUNIVERSAL__)
|
||||||
// adding a combo to a vertical toolbar is not very smart
|
// adding a combo to a vertical toolbar is not very smart
|
||||||
if ( m_horzToolbar )
|
if ( !( toolBar->IsVertical() ) )
|
||||||
{
|
{
|
||||||
wxComboBox *combo = new wxComboBox(toolBar, ID_COMBO, wxEmptyString, wxDefaultPosition, wxSize(200,wxDefaultCoord) );
|
wxComboBox *combo = new wxComboBox(toolBar, ID_COMBO, wxEmptyString, wxDefaultPosition, wxSize(200,wxDefaultCoord) );
|
||||||
combo->Append(_T("This"));
|
combo->Append(_T("This"));
|
||||||
@@ -432,7 +452,7 @@ void MyFrame::RecreateToolbar()
|
|||||||
// the changes
|
// the changes
|
||||||
toolBar->Realize();
|
toolBar->Realize();
|
||||||
|
|
||||||
toolBar->SetRows(m_horzToolbar ? m_rows : 10 / m_rows);
|
toolBar->SetRows(!(toolBar->IsVertical()) ? m_rows : 10 / m_rows);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -451,8 +471,6 @@ MyFrame::MyFrame(wxFrame* parent,
|
|||||||
m_tbar = NULL;
|
m_tbar = NULL;
|
||||||
|
|
||||||
m_smallToolbar = true;
|
m_smallToolbar = true;
|
||||||
m_horzToolbar = true;
|
|
||||||
m_bottomToolbar = false;
|
|
||||||
m_horzText = false;
|
m_horzText = false;
|
||||||
m_useCustomDisabled = false;
|
m_useCustomDisabled = false;
|
||||||
m_showTooltips = true;
|
m_showTooltips = true;
|
||||||
@@ -486,10 +504,6 @@ MyFrame::MyFrame(wxFrame* parent,
|
|||||||
_T("&Toggle toolbar size\tCtrl-S"),
|
_T("&Toggle toolbar size\tCtrl-S"),
|
||||||
_T("Toggle between big/small toolbar"));
|
_T("Toggle between big/small toolbar"));
|
||||||
|
|
||||||
tbarMenu->AppendCheckItem(IDM_TOOLBAR_TOGGLETOOLBARORIENT,
|
|
||||||
_T("Toggle toolbar &orientation\tCtrl-O"),
|
|
||||||
_T("Toggle toolbar orientation"));
|
|
||||||
|
|
||||||
tbarMenu->AppendCheckItem(IDM_TOOLBAR_TOGGLETOOLBARROWS,
|
tbarMenu->AppendCheckItem(IDM_TOOLBAR_TOGGLETOOLBARROWS,
|
||||||
_T("Toggle number of &rows\tCtrl-R"),
|
_T("Toggle number of &rows\tCtrl-R"),
|
||||||
_T("Toggle number of toolbar rows between 1 and 2"));
|
_T("Toggle number of toolbar rows between 1 and 2"));
|
||||||
@@ -503,9 +517,19 @@ MyFrame::MyFrame(wxFrame* parent,
|
|||||||
_T("Switch between using system-generated and custom disabled images"));
|
_T("Switch between using system-generated and custom disabled images"));
|
||||||
|
|
||||||
|
|
||||||
tbarMenu->AppendCheckItem(IDM_TOOLBAR_BOTTOM_ORIENTATION,
|
tbarMenu->AppendSeparator();
|
||||||
|
tbarMenu->AppendRadioItem(IDM_TOOLBAR_TOP_ORIENTATION,
|
||||||
|
_T("Set toolbar at the top of the window"),
|
||||||
|
_T("Set toolbar at the top of the window"));
|
||||||
|
tbarMenu->AppendRadioItem(IDM_TOOLBAR_LEFT_ORIENTATION,
|
||||||
|
_T("Set toolbar at the left of the window"),
|
||||||
|
_T("Set toolbar at the left of the window"));
|
||||||
|
tbarMenu->AppendRadioItem(IDM_TOOLBAR_BOTTOM_ORIENTATION,
|
||||||
_T("Set toolbar at the bottom of the window"),
|
_T("Set toolbar at the bottom of the window"),
|
||||||
_T("Set toolbar at the bottom of the window"));
|
_T("Set toolbar at the bottom of the window"));
|
||||||
|
tbarMenu->AppendRadioItem(IDM_TOOLBAR_RIGHT_ORIENTATION,
|
||||||
|
_T("Set toolbar at the right edge of the window"),
|
||||||
|
_T("Set toolbar at the right edge of the window"));
|
||||||
tbarMenu->AppendSeparator();
|
tbarMenu->AppendSeparator();
|
||||||
|
|
||||||
tbarMenu->Append(IDM_TOOLBAR_ENABLEPRINT, _T("&Enable print button\tCtrl-E"));
|
tbarMenu->Append(IDM_TOOLBAR_ENABLEPRINT, _T("&Enable print button\tCtrl-E"));
|
||||||
@@ -543,6 +567,8 @@ MyFrame::MyFrame(wxFrame* parent,
|
|||||||
menuBar->Check(IDM_TOOLBAR_SHOW_BOTH, true);
|
menuBar->Check(IDM_TOOLBAR_SHOW_BOTH, true);
|
||||||
menuBar->Check(IDM_TOOLBAR_TOGGLETOOLTIPS, true);
|
menuBar->Check(IDM_TOOLBAR_TOGGLETOOLTIPS, true);
|
||||||
|
|
||||||
|
menuBar->Check(IDM_TOOLBAR_TOP_ORIENTATION, true );
|
||||||
|
m_toolbarPosition = TOOLBAR_TOP;
|
||||||
// Create the toolbar
|
// Create the toolbar
|
||||||
RecreateToolbar();
|
RecreateToolbar();
|
||||||
|
|
||||||
@@ -660,7 +686,7 @@ void MyFrame::OnToggleToolbarRows(wxCommandEvent& WXUNUSED(event))
|
|||||||
// m_rows may be only 1 or 2
|
// m_rows may be only 1 or 2
|
||||||
m_rows = 3 - m_rows;
|
m_rows = 3 - m_rows;
|
||||||
|
|
||||||
GetToolBar()->SetRows(m_horzToolbar ? m_rows : 10 / m_rows);
|
GetToolBar()->SetRows(!(GetToolBar()->IsVertical()) ? m_rows : 10 / m_rows);
|
||||||
|
|
||||||
//RecreateToolbar(); -- this is unneeded
|
//RecreateToolbar(); -- this is unneeded
|
||||||
}
|
}
|
||||||
@@ -679,15 +705,23 @@ void MyFrame::OnToggleCustomDisabled(wxCommandEvent& WXUNUSED(event))
|
|||||||
RecreateToolbar();
|
RecreateToolbar();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyFrame::OnToggleToolbarOrient(wxCommandEvent& WXUNUSED(event))
|
void MyFrame::OnChangeOrientation(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
if( m_bottomToolbar )
|
switch( event.GetId() )
|
||||||
m_bottomToolbar = false;
|
{
|
||||||
m_horzToolbar = !m_horzToolbar;
|
case IDM_TOOLBAR_LEFT_ORIENTATION:
|
||||||
wxMenuBar *menuBar = GetMenuBar();
|
m_toolbarPosition = TOOLBAR_LEFT;
|
||||||
if( menuBar->IsChecked( IDM_TOOLBAR_BOTTOM_ORIENTATION ) )
|
break;
|
||||||
menuBar->Check( IDM_TOOLBAR_BOTTOM_ORIENTATION, false );
|
case IDM_TOOLBAR_TOP_ORIENTATION:
|
||||||
|
m_toolbarPosition = TOOLBAR_TOP;
|
||||||
|
break;
|
||||||
|
case IDM_TOOLBAR_RIGHT_ORIENTATION:
|
||||||
|
m_toolbarPosition = TOOLBAR_RIGHT;
|
||||||
|
break;
|
||||||
|
case IDM_TOOLBAR_BOTTOM_ORIENTATION:
|
||||||
|
m_toolbarPosition = TOOLBAR_BOTTOM;
|
||||||
|
break;
|
||||||
|
}
|
||||||
RecreateToolbar();
|
RecreateToolbar();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -836,13 +870,3 @@ void MyFrame::OnToggleRadioBtn(wxCommandEvent& event)
|
|||||||
event.GetId() - IDM_TOOLBAR_TOGGLERADIOBTN1, true);
|
event.GetId() - IDM_TOOLBAR_TOGGLERADIOBTN1, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void MyFrame::OnBottomToolbar(wxCommandEvent& WXUNUSED(event) )
|
|
||||||
{
|
|
||||||
m_bottomToolbar = !m_bottomToolbar;
|
|
||||||
wxMenuBar *menuBar = GetMenuBar();
|
|
||||||
if( menuBar->IsChecked( IDM_TOOLBAR_TOGGLETOOLBARORIENT ) )
|
|
||||||
menuBar->Check( IDM_TOOLBAR_TOGGLETOOLBARORIENT, false );
|
|
||||||
if( !m_horzToolbar )
|
|
||||||
m_horzToolbar = true;
|
|
||||||
RecreateToolbar();
|
|
||||||
}
|
|
||||||
|
@@ -251,7 +251,7 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const
|
|||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
m_frameToolBar->GetSize( &x, &y );
|
m_frameToolBar->GetSize( &x, &y );
|
||||||
if ( m_frameToolBar->GetWindowStyle() & wxTB_VERTICAL )
|
if ( m_frameToolBar->IsVertical() )
|
||||||
{
|
{
|
||||||
if (width != NULL)
|
if (width != NULL)
|
||||||
*width -= x;
|
*width -= x;
|
||||||
@@ -305,7 +305,7 @@ void wxFrame::DoSetClientSize( int width, int height )
|
|||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
m_frameToolBar->GetSize( &x, &y );
|
m_frameToolBar->GetSize( &x, &y );
|
||||||
if ( m_frameToolBar->GetWindowStyle() & wxTB_VERTICAL )
|
if ( m_frameToolBar->IsVertical() )
|
||||||
{
|
{
|
||||||
width += x;
|
width += x;
|
||||||
}
|
}
|
||||||
@@ -431,6 +431,17 @@ void wxFrame::GtkOnSize()
|
|||||||
|
|
||||||
client_area_x_offset += ww;
|
client_area_x_offset += ww;
|
||||||
}
|
}
|
||||||
|
else if( m_frameToolBar->HasFlag(wxTB_RIGHT) )
|
||||||
|
{
|
||||||
|
yy += 2;
|
||||||
|
ww = m_toolBarDetached ? wxPLACE_HOLDER
|
||||||
|
: m_frameToolBar->m_width;
|
||||||
|
xx = GetClientSize().x - 1;
|
||||||
|
hh = m_height - 2*m_miniEdge;
|
||||||
|
if( hh < 0 )
|
||||||
|
hh = 0;
|
||||||
|
|
||||||
|
}
|
||||||
else if( m_frameToolBar->GetWindowStyle() & wxTB_BOTTOM )
|
else if( m_frameToolBar->GetWindowStyle() & wxTB_BOTTOM )
|
||||||
{
|
{
|
||||||
xx = m_miniEdge;
|
xx = m_miniEdge;
|
||||||
|
@@ -52,8 +52,7 @@ extern wxCursor g_globalCursor;
|
|||||||
static void GetGtkStyle(long style,
|
static void GetGtkStyle(long style,
|
||||||
GtkOrientation *orient, GtkToolbarStyle *gtkStyle)
|
GtkOrientation *orient, GtkToolbarStyle *gtkStyle)
|
||||||
{
|
{
|
||||||
*orient = style & wxTB_VERTICAL ? GTK_ORIENTATION_VERTICAL
|
*orient = ( style & wxTB_LEFT || style & wxTB_RIGHT ) ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL;
|
||||||
: GTK_ORIENTATION_HORIZONTAL;
|
|
||||||
|
|
||||||
|
|
||||||
if ( style & wxTB_TEXT )
|
if ( style & wxTB_TEXT )
|
||||||
@@ -633,4 +632,8 @@ wxToolBar::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
|
|||||||
return GetDefaultAttributesFromGTKWidget(gtk_toolbar_new);
|
return GetDefaultAttributesFromGTKWidget(gtk_toolbar_new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wxToolBar::IsVertical()
|
||||||
|
{
|
||||||
|
return HasFlag(wxTB_LEFT) || HasFlag(wxTB_RIGHT);
|
||||||
|
}
|
||||||
#endif // wxUSE_TOOLBAR_NATIVE
|
#endif // wxUSE_TOOLBAR_NATIVE
|
||||||
|
@@ -232,6 +232,20 @@ void wxFrame::DoSetClientSize(int width, int height)
|
|||||||
wxPoint pt = GetClientAreaOrigin();
|
wxPoint pt = GetClientAreaOrigin();
|
||||||
width += pt.x;
|
width += pt.x;
|
||||||
height += pt.y;
|
height += pt.y;
|
||||||
|
#if wxUSE_TOOLBAR
|
||||||
|
if ( width )
|
||||||
|
{
|
||||||
|
wxToolBar *toolbar = GetToolBar();
|
||||||
|
if ( toolbar && toolbar->HasFlag(wxTB_RIGHT) )
|
||||||
|
{
|
||||||
|
width -= toolbar->GetClientSize().x;
|
||||||
|
}
|
||||||
|
if ( toolbar && toolbar->HasFlag( wxTB_BOTTOM ) )
|
||||||
|
{
|
||||||
|
height -= toolbar->GetClientSize().y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
wxTopLevelWindow::DoSetClientSize(width, height);
|
wxTopLevelWindow::DoSetClientSize(width, height);
|
||||||
}
|
}
|
||||||
@@ -257,6 +271,14 @@ void wxFrame::DoGetClientSize(int *x, int *y) const
|
|||||||
*y -= toolbar->GetClientSize().y;
|
*y -= toolbar->GetClientSize().y;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ( x )
|
||||||
|
{
|
||||||
|
wxToolBar *toolbar = GetToolBar();
|
||||||
|
if ( toolbar && toolbar->HasFlag(wxTB_RIGHT) )
|
||||||
|
{
|
||||||
|
*x -= toolbar->GetClientSize().x;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
#if wxUSE_STATUSBAR
|
#if wxUSE_STATUSBAR
|
||||||
// adjust client area height to take the status bar into account
|
// adjust client area height to take the status bar into account
|
||||||
@@ -328,6 +350,8 @@ void wxFrame::PositionStatusBar()
|
|||||||
wxToolBar *toolbar = GetToolBar();
|
wxToolBar *toolbar = GetToolBar();
|
||||||
if( toolbar && toolbar->HasFlag( wxTB_BOTTOM ) )
|
if( toolbar && toolbar->HasFlag( wxTB_BOTTOM ) )
|
||||||
h += toolbar->GetClientRect().height;
|
h += toolbar->GetClientRect().height;
|
||||||
|
if( toolbar && toolbar->HasFlag( wxTB_RIGHT ) )
|
||||||
|
w += toolbar->GetClientRect().width;
|
||||||
#endif
|
#endif
|
||||||
int sw, sh;
|
int sw, sh;
|
||||||
m_frameStatusBar->GetSize(&sw, &sh);
|
m_frameStatusBar->GetSize(&sw, &sh);
|
||||||
@@ -609,6 +633,11 @@ void wxFrame::PositionToolBar()
|
|||||||
x = 0;
|
x = 0;
|
||||||
y = height - th;
|
y = height - th;
|
||||||
}
|
}
|
||||||
|
else if( toolbar->HasFlag(wxTB_RIGHT) )
|
||||||
|
{
|
||||||
|
x = width - tw;
|
||||||
|
y = 0;
|
||||||
|
}
|
||||||
#if defined(WINCE_WITH_COMMANDBAR)
|
#if defined(WINCE_WITH_COMMANDBAR)
|
||||||
// We're using a commandbar - so we have to allow for it.
|
// We're using a commandbar - so we have to allow for it.
|
||||||
if (GetMenuBar() && GetMenuBar()->GetCommandBar())
|
if (GetMenuBar() && GetMenuBar()->GetCommandBar())
|
||||||
@@ -633,11 +662,18 @@ void wxFrame::PositionToolBar()
|
|||||||
if( tx < 0 && ( -tx == tw ) )
|
if( tx < 0 && ( -tx == tw ) )
|
||||||
tx = 0;
|
tx = 0;
|
||||||
}
|
}
|
||||||
|
else if( toolbar->HasFlag(wxTB_RIGHT) )
|
||||||
|
{
|
||||||
|
if( ty < 0 && ( -ty == th ) )
|
||||||
|
ty = 0;
|
||||||
|
if( tx < 0 && ( -tx == tw ) )
|
||||||
|
tx = width - tw;
|
||||||
|
}
|
||||||
|
|
||||||
int desiredW = tw;
|
int desiredW = tw;
|
||||||
int desiredH = th;
|
int desiredH = th;
|
||||||
|
|
||||||
if ( toolbar->GetWindowStyleFlag() & wxTB_VERTICAL )
|
if ( toolbar->IsVertical() )
|
||||||
{
|
{
|
||||||
desiredH = height;
|
desiredH = height;
|
||||||
}
|
}
|
||||||
@@ -656,7 +692,7 @@ void wxFrame::PositionToolBar()
|
|||||||
bool heightChanging wxDUMMY_INITIALIZE(true);
|
bool heightChanging wxDUMMY_INITIALIZE(true);
|
||||||
bool widthChanging wxDUMMY_INITIALIZE(true);
|
bool widthChanging wxDUMMY_INITIALIZE(true);
|
||||||
|
|
||||||
if ( toolbar->GetWindowStyleFlag() & wxTB_VERTICAL )
|
if ( toolbar->IsVertical() )
|
||||||
{
|
{
|
||||||
// It's OK if the current height is greater than what can be shown.
|
// It's OK if the current height is greater than what can be shown.
|
||||||
heightChanging = (desiredH > th) ;
|
heightChanging = (desiredH > th) ;
|
||||||
@@ -1084,7 +1120,7 @@ wxPoint wxFrame::GetClientAreaOrigin() const
|
|||||||
{
|
{
|
||||||
pt.x += w;
|
pt.x += w;
|
||||||
}
|
}
|
||||||
else if( !( toolbar->GetWindowStyleFlag() & wxTB_BOTTOM ) )
|
else if( ( toolbar->GetWindowStyleFlag() & wxTB_TOP ) )
|
||||||
{
|
{
|
||||||
pt.y += h;
|
pt.y += h;
|
||||||
}
|
}
|
||||||
|
@@ -347,7 +347,7 @@ wxSize wxToolBar::DoGetBestSize() const
|
|||||||
sizeBest.x *= GetToolsCount();
|
sizeBest.x *= GetToolsCount();
|
||||||
|
|
||||||
// reverse horz and vertical components if necessary
|
// reverse horz and vertical components if necessary
|
||||||
if ( HasFlag(wxTB_VERTICAL) )
|
if ( IsVertical() )
|
||||||
{
|
{
|
||||||
int t = sizeBest.x;
|
int t = sizeBest.x;
|
||||||
sizeBest.x = sizeBest.y;
|
sizeBest.x = sizeBest.y;
|
||||||
@@ -405,6 +405,9 @@ WXDWORD wxToolBar::MSWGetStyle(long style, WXDWORD *exstyle) const
|
|||||||
if( style & wxTB_BOTTOM )
|
if( style & wxTB_BOTTOM )
|
||||||
msStyle |= CCS_BOTTOM;
|
msStyle |= CCS_BOTTOM;
|
||||||
|
|
||||||
|
if ( style & wxTB_RIGHT )
|
||||||
|
msStyle |= CCS_RIGHT;
|
||||||
|
|
||||||
return msStyle;
|
return msStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -541,8 +544,6 @@ bool wxToolBar::Realize()
|
|||||||
// nothing to do
|
// nothing to do
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
const bool isVertical = HasFlag(wxTB_VERTICAL);
|
|
||||||
|
|
||||||
#ifdef wxREMAP_BUTTON_COLOURS
|
#ifdef wxREMAP_BUTTON_COLOURS
|
||||||
// don't change the values of these constants, they can be set from the
|
// don't change the values of these constants, they can be set from the
|
||||||
// user code via wxSystemOptions
|
// user code via wxSystemOptions
|
||||||
@@ -819,7 +820,7 @@ bool wxToolBar::Realize()
|
|||||||
|
|
||||||
// don't add separators to the vertical toolbar with old comctl32.dll
|
// don't add separators to the vertical toolbar with old comctl32.dll
|
||||||
// versions as they didn't handle this properly
|
// versions as they didn't handle this properly
|
||||||
if ( isVertical && tool->IsSeparator() &&
|
if ( IsVertical() && tool->IsSeparator() &&
|
||||||
wxApp::GetComCtl32Version() <= 472 )
|
wxApp::GetComCtl32Version() <= 472 )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
@@ -943,7 +944,7 @@ bool wxToolBar::Realize()
|
|||||||
// get the items size for all items but for the horizontal ones we
|
// get the items size for all items but for the horizontal ones we
|
||||||
// don't need to deal with the non controls
|
// don't need to deal with the non controls
|
||||||
bool isControl = tool->IsControl();
|
bool isControl = tool->IsControl();
|
||||||
if ( !isControl && !isVertical )
|
if ( !isControl && !IsVertical() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// note that we use TB_GETITEMRECT and not TB_GETRECT because the
|
// note that we use TB_GETITEMRECT and not TB_GETRECT because the
|
||||||
@@ -1034,7 +1035,7 @@ bool wxToolBar::Realize()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int top;
|
int top;
|
||||||
if ( isVertical )
|
if ( IsVertical() )
|
||||||
{
|
{
|
||||||
left = 0;
|
left = 0;
|
||||||
top = y;
|
top = y;
|
||||||
@@ -1056,7 +1057,7 @@ bool wxToolBar::Realize()
|
|||||||
// separators which we added just for aligning the controls
|
// separators which we added just for aligning the controls
|
||||||
m_nButtons = index;
|
m_nButtons = index;
|
||||||
|
|
||||||
if ( !isVertical )
|
if ( !IsVertical() )
|
||||||
{
|
{
|
||||||
if ( m_maxRows == 0 )
|
if ( m_maxRows == 0 )
|
||||||
// if not set yet, only one row
|
// if not set yet, only one row
|
||||||
@@ -1428,7 +1429,7 @@ bool wxToolBar::HandleSize(WXWPARAM WXUNUSED(wParam), WXLPARAM lParam)
|
|||||||
{
|
{
|
||||||
int w, h;
|
int w, h;
|
||||||
|
|
||||||
if ( GetWindowStyle() & wxTB_VERTICAL )
|
if ( IsVertical() )
|
||||||
{
|
{
|
||||||
w = r.right - r.left;
|
w = r.right - r.left;
|
||||||
if ( m_maxRows )
|
if ( m_maxRows )
|
||||||
|
Reference in New Issue
Block a user