mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-06 20:10:08 +01:00
Merge pull request #1672 from Metallicow/optimize-auitoolbar-Realize-method
Optimize auitoolbar Realize method loop
This commit is contained in:
@@ -2994,6 +2994,8 @@ class AuiToolBar(wx.Control):
|
|||||||
|
|
||||||
# create the new sizer to add toolbar elements to
|
# create the new sizer to add toolbar elements to
|
||||||
sizer = wx.BoxSizer((horizontal and [wx.HORIZONTAL] or [wx.VERTICAL])[0])
|
sizer = wx.BoxSizer((horizontal and [wx.HORIZONTAL] or [wx.VERTICAL])[0])
|
||||||
|
# local opts
|
||||||
|
sizer_Add, sizer_AddSpacer, sizer_AddStretchSpacer, sizer_SetItemMinSize = sizer.Add, sizer.AddSpacer, sizer.AddStretchSpacer, sizer.SetItemMinSize
|
||||||
|
|
||||||
# add gripper area
|
# add gripper area
|
||||||
separator_size = self._art.GetElementSize(AUI_TBART_SEPARATOR_SIZE)
|
separator_size = self._art.GetElementSize(AUI_TBART_SEPARATOR_SIZE)
|
||||||
@@ -3001,18 +3003,18 @@ class AuiToolBar(wx.Control):
|
|||||||
|
|
||||||
if gripper_size > 0 and self._gripper_visible:
|
if gripper_size > 0 and self._gripper_visible:
|
||||||
if horizontal:
|
if horizontal:
|
||||||
self._gripper_sizer_item = sizer.Add((gripper_size, 1), 0, wx.EXPAND)
|
self._gripper_sizer_item = sizer_Add((gripper_size, 1), 0, wx.EXPAND)
|
||||||
else:
|
else:
|
||||||
self._gripper_sizer_item = sizer.Add((1, gripper_size), 0, wx.EXPAND)
|
self._gripper_sizer_item = sizer_Add((1, gripper_size), 0, wx.EXPAND)
|
||||||
else:
|
else:
|
||||||
self._gripper_sizer_item = None
|
self._gripper_sizer_item = None
|
||||||
|
|
||||||
# add "left" padding
|
# add "left" padding
|
||||||
if self._left_padding > 0:
|
if self._left_padding > 0:
|
||||||
if horizontal:
|
if horizontal:
|
||||||
sizer.Add((self._left_padding, 1))
|
sizer_Add((self._left_padding, 1))
|
||||||
else:
|
else:
|
||||||
sizer.Add((1, self._left_padding))
|
sizer_Add((1, self._left_padding))
|
||||||
|
|
||||||
count = len(self._items)
|
count = len(self._items)
|
||||||
for i, item in enumerate(self._items):
|
for i, item in enumerate(self._items):
|
||||||
@@ -3023,42 +3025,41 @@ class AuiToolBar(wx.Control):
|
|||||||
if kind == ITEM_LABEL:
|
if kind == ITEM_LABEL:
|
||||||
|
|
||||||
size = self._art.GetLabelSize(dc, self, item)
|
size = self._art.GetLabelSize(dc, self, item)
|
||||||
sizer_item = sizer.Add((size.x + (self._tool_border_padding*2),
|
sizer_item = sizer_Add((size.x + (self._tool_border_padding*2),
|
||||||
size.y + (self._tool_border_padding*2)),
|
size.y + (self._tool_border_padding*2)),
|
||||||
item.proportion,
|
item.proportion,
|
||||||
item.alignment)
|
item.alignment)
|
||||||
if i+1 < count:
|
if i+1 < count:
|
||||||
sizer.AddSpacer(self._tool_packing)
|
sizer_AddSpacer(self._tool_packing)
|
||||||
|
|
||||||
|
|
||||||
elif kind in [ITEM_CHECK, ITEM_NORMAL, ITEM_RADIO]:
|
elif kind in [ITEM_CHECK, ITEM_NORMAL, ITEM_RADIO]:
|
||||||
|
|
||||||
size = self._art.GetToolSize(dc, self, item)
|
size = self._art.GetToolSize(dc, self, item)
|
||||||
sizer_item = sizer.Add((size.x + (self._tool_border_padding*2),
|
sizer_item = sizer_Add((size.x + (self._tool_border_padding*2),
|
||||||
size.y + (self._tool_border_padding*2)),
|
size.y + (self._tool_border_padding*2)),
|
||||||
0,
|
0,
|
||||||
item.alignment)
|
item.alignment)
|
||||||
# add tool packing
|
# add tool packing
|
||||||
if i+1 < count:
|
if i+1 < count:
|
||||||
sizer.AddSpacer(self._tool_packing)
|
sizer_AddSpacer(self._tool_packing)
|
||||||
|
|
||||||
elif kind == ITEM_SEPARATOR:
|
elif kind == ITEM_SEPARATOR:
|
||||||
|
|
||||||
if horizontal:
|
if horizontal:
|
||||||
sizer_item = sizer.Add((separator_size, 1), 0, wx.EXPAND)
|
sizer_item = sizer_Add((separator_size, 1), 0, wx.EXPAND)
|
||||||
else:
|
else:
|
||||||
sizer_item = sizer.Add((1, separator_size), 0, wx.EXPAND)
|
sizer_item = sizer_Add((1, separator_size), 0, wx.EXPAND)
|
||||||
|
|
||||||
# add tool packing
|
# add tool packing
|
||||||
if i+1 < count:
|
if i+1 < count:
|
||||||
sizer.AddSpacer(self._tool_packing)
|
sizer_AddSpacer(self._tool_packing)
|
||||||
|
|
||||||
elif kind == ITEM_SPACER:
|
elif kind == ITEM_SPACER:
|
||||||
|
|
||||||
if item.proportion > 0:
|
if item.proportion > 0:
|
||||||
sizer_item = sizer.AddStretchSpacer(item.proportion)
|
sizer_item = sizer_AddStretchSpacer(item.proportion)
|
||||||
else:
|
else:
|
||||||
sizer_item = sizer.Add((item.spacer_pixels, 1))
|
sizer_item = sizer_Add((item.spacer_pixels, 1))
|
||||||
|
|
||||||
elif kind == ITEM_CONTROL:
|
elif kind == ITEM_CONTROL:
|
||||||
if item.window and item.window.GetContainingSizer():
|
if item.window and item.window.GetContainingSizer():
|
||||||
@@ -3080,7 +3081,7 @@ class AuiToolBar(wx.Control):
|
|||||||
s = self.GetLabelSize(item.GetLabel())
|
s = self.GetLabelSize(item.GetLabel())
|
||||||
vert_sizer.Add((1, s.y))
|
vert_sizer.Add((1, s.y))
|
||||||
|
|
||||||
sizer_item = sizer.Add(vert_sizer, item.proportion, wx.EXPAND)
|
sizer_item = sizer_Add(vert_sizer, item.proportion, wx.EXPAND)
|
||||||
min_size = item.min_size
|
min_size = item.min_size
|
||||||
|
|
||||||
# proportional items will disappear from the toolbar if
|
# proportional items will disappear from the toolbar if
|
||||||
@@ -3089,12 +3090,12 @@ class AuiToolBar(wx.Control):
|
|||||||
min_size.x = 1
|
min_size.x = 1
|
||||||
|
|
||||||
if min_size.IsFullySpecified():
|
if min_size.IsFullySpecified():
|
||||||
sizer.SetItemMinSize(vert_sizer, min_size)
|
sizer_SetItemMinSize(vert_sizer, min_size)
|
||||||
vert_sizer.SetItemMinSize(item.window, min_size)
|
vert_sizer.SetItemMinSize(item.window, min_size)
|
||||||
|
|
||||||
# add tool packing
|
# add tool packing
|
||||||
if i+1 < count:
|
if i+1 < count:
|
||||||
sizer.AddSpacer(self._tool_packing)
|
sizer_AddSpacer(self._tool_packing)
|
||||||
|
|
||||||
item.sizer_item = sizer_item
|
item.sizer_item = sizer_item
|
||||||
|
|
||||||
@@ -3102,9 +3103,9 @@ class AuiToolBar(wx.Control):
|
|||||||
# add "right" padding
|
# add "right" padding
|
||||||
if self._right_padding > 0:
|
if self._right_padding > 0:
|
||||||
if horizontal:
|
if horizontal:
|
||||||
sizer.Add((self._right_padding, 1))
|
sizer_Add((self._right_padding, 1))
|
||||||
else:
|
else:
|
||||||
sizer.Add((1, self._right_padding))
|
sizer_Add((1, self._right_padding))
|
||||||
|
|
||||||
# add drop down area
|
# add drop down area
|
||||||
self._overflow_sizer_item = None
|
self._overflow_sizer_item = None
|
||||||
@@ -3119,9 +3120,9 @@ class AuiToolBar(wx.Control):
|
|||||||
# min size.
|
# min size.
|
||||||
|
|
||||||
if horizontal:
|
if horizontal:
|
||||||
self._overflow_sizer_item = sizer.Add((overflow_size, 1), 0, wx.EXPAND)
|
self._overflow_sizer_item = sizer_Add((overflow_size, 1), 0, wx.EXPAND)
|
||||||
else:
|
else:
|
||||||
self._overflow_sizer_item = sizer.Add((1, overflow_size), 0, wx.EXPAND)
|
self._overflow_sizer_item = sizer_Add((1, overflow_size), 0, wx.EXPAND)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user