Notice that currently only stretchable spacers are supported via
separator-like "space" XRC element. If we ever add support for fixed spacers
in the toolbar we should do it via its fixed sub-element, e.g. they would be
specified with <fixed>1</fixed> in XRC file.
Also use spacers instead of separator in the XRC sample and ensure that the
toolbars in it are resized.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63172
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
one of two pseudo-classes: @c separator or @c tool.
The @c separator pseudo-class is used to insert separators into the toolbar and
-has neither properties nor children.
+has neither properties nor children. Similarly, the @c space pseudo-class is
+used for stretchable spaces (see wxToolBar::AddStretchableSpace(), new since
+wxWidgets 2.9.1).
The @c tool pseudo-class objects specify toolbar buttons and have the following
properties:
<bitmap>bar.png</bitmap>
<label>Bar</label>
</object>
+ <object class="separator"/>
<object class="tool" name="view_auto">
<bitmap>view.png</bitmap>
<label>View</label>
</object>
</dropdown>
</object>
- <object class="separator"/>
+ <object class="space"/>
<object class="wxComboBox">
<content>
<item>Just</item>
<rows>0</rows>
<vgap>0</vgap>
<hgap>0</hgap>
- <growablecols>0,1</growablecols>
- <growablerows>0,1</growablerows>
+ <growablecols>1</growablecols>
<object class="sizeritem">
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
<border>5</border>
</object>
</object>
<object class="sizeritem">
- <flag>wxALIGN_CENTER_VERTICAL|wxALL</flag>
+ <flag>wxEXPAND|wxALL</flag>
<border>5</border>
- <size>300,60</size>
<object class="wxToolBar">
<style>wxTB_FLAT|wxTB_NODIVIDER</style>
<margins>2,2</margins>
<bitmap stock_id="wxART_GO_DOWN"/>
<label>Down</label>
</object>
- <object class="separator"/>
+ <object class="space"/>
<object class="wxComboBox">
<content>
<item>Just</item>
</object>
</object>
<object class="sizeritem">
- <flag>wxALIGN_CENTER_VERTICAL|wxALL</flag>
+ <flag>wxEXPAND|wxALL</flag>
<border>5</border>
<object class="wxToolBar">
<style>wxTB_FLAT|wxTB_NODIVIDER</style>
</object>
</dropdown>
</object>
+ <object class="separator"/>
<object class="tool" name="home">
<toggle>1</toggle>
<bitmap stock_id="wxART_GO_HOME"/>
<bitmap stock_id="wxART_GO_DOWN"/>
<label>Down</label>
</object>
- <object class="separator"/>
+ <object class="space"/>
<object class="wxComboBox">
<content>
<item>Just</item>
return m_toolbar; // must return non-NULL
}
- else if (m_class == wxT("separator"))
+ else if (m_class == wxT("separator") || m_class == wxT("space"))
{
if ( !m_toolbar )
{
- ReportError("separator only allowed inside wxToolBar");
+ ReportError("separators only allowed inside wxToolBar");
return NULL;
}
- m_toolbar->AddSeparator();
+
+ if ( m_class == wxT("separator") )
+ m_toolbar->AddSeparator();
+ else
+ m_toolbar->AddStretchableSpace();
+
return m_toolbar; // must return non-NULL
}
wxControl *control = wxDynamicCast(created, wxControl);
if (!IsOfClass(n, wxT("tool")) &&
!IsOfClass(n, wxT("separator")) &&
+ !IsOfClass(n, wxT("space")) &&
control != NULL)
toolbar->AddControl(control);
}
{
return ((!m_isInside && IsOfClass(node, wxT("wxToolBar"))) ||
(m_isInside && IsOfClass(node, wxT("tool"))) ||
+ (m_isInside && IsOfClass(node, wxT("space"))) ||
(m_isInside && IsOfClass(node, wxT("separator"))));
}