def create_page_items(self, page_sizer, panel, config, gui, key):
page_sc_window = wx.ScrolledWindow(panel, id=id_renew(gui), style=wx.VSCROLL)
page_sc_window.SetScrollbars(5, 5, 10, 10)
sizer = wx.BoxSizer(wx.VERTICAL)
joined_keys = MODULE_KEY.join(key)
if 'redraw' in gui:
for redraw_target, redraw_settings in gui['redraw'].items():
if joined_keys not in self.redraw_map:
self.redraw_map[joined_keys] = {}
self.redraw_map[joined_keys][redraw_target] = {
'key': None,
'item': None,
'redraw_type': None,
'redraw_trigger': redraw_settings['redraw_trigger'],
'redraw_target': redraw_target,
'get_config': redraw_settings['get_config'],
'get_gui': redraw_settings['get_gui'],
'sizer_parent': sizer,
'panel_parent': page_sc_window,
'all_settings': redraw_settings
}
for section_key, section_items in config.items():
if section_key in SKIP_TAGS:
continue
view = gui.get(section_key, {}).get('view', type(section_items))
if view in self.function_map.keys():
data = self.function_map[view]
gui_settings = gui.get(section_key, {}).copy()
item_keys = key + [section_key]
sizer_item = data['function'](
panel=page_sc_window, item=section_key, value=section_items, bind=data['bind'],
gui=gui_settings, key=item_keys, from_sb=False)
if joined_keys in self.redraw_map.keys():
if section_key in self.redraw_map[joined_keys]:
self.redraw_map[joined_keys][section_key].update({
'bind_item': data,
'item': sizer_item,
'redraw_type': view,
'key': item_keys,
})
sizer.Add(sizer_item, 0, wx.EXPAND)
page_sc_window.SetSizer(sizer)
page_sizer.Add(page_sc_window, 1, wx.EXPAND)
评论列表
文章目录