def setupIngredients(self): namec = ColumnDefn('Ingredient', 'left', 200, 'name', minimumWidth=200, isSpaceFilling=True) typec= ColumnDefn('Type', 'left', 100, 'ingredient_type') use_inc = ColumnDefn('Use', 'left', 100, 'use_in', stringConverter=getUseIn) percentc = ColumnDefn('%', 'left', 100, 'percentage', stringConverter="%.2f") timec = ColumnDefn('Time', 'left', 100, 'time_used_m', stringConverter="%s") amountc = ColumnDefn('Amount', 'left', 100, 'amount_m', stringConverter="%s") namec.freeSpaceProportion = 2 self.ingredients_ctrl.oddRowsBackColor = wx.WHITE self.ingredients_ctrl.SetColumns([namec, typec, amountc, use_inc, percentc, timec])
def __init__(self, parent): wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY) # List the projects in the currently loaded .sav self.sav_project_list = utils.new_obj_list_view(self) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.open_song, self.sav_project_list) self.modified_since_load = False self.sav_project_list.SetEmptyListMsg("No .sav loaded") # Keep track of the projects to whose channels you're subscribing to # avoid subscribing multiple times self.subscribed_projects = {} def string_getter(x, attr): if x[1] is None: return "--" else: obj_attr = getattr(x[1], attr) if isinstance(obj_attr, (int, float, long, complex)): return utils.printable_decimal_and_hex(obj_attr) else: return obj_attr index_col = ColumnDefn("#", "center", 30, "index_str") mod_col = ColumnDefn("Modified", "center", 60, "modified") name_col = ColumnDefn( "Song Name", "left", 200, "name", isSpaceFilling=True) name_col.freeSpaceProportion = 2 version_col = ColumnDefn( "Version", "left", 50, "version", isSpaceFilling=True) version_col.freeSpaceProportion = 1 size_col = ColumnDefn( "Size (Blocks)", "left", 100, "size", isSpaceFilling=True) size_col.freeSpaceProportion = 1 self.sav_project_list.SetColumns( [mod_col, index_col, name_col, version_col, size_col]) self.open_sav_button = self.new_button( "Open .sav File ...", event_handlers.open_sav) self.save_sav_button = self.new_button( "Save .sav File as ...", event_handlers.save_sav, start_disabled=True) self.add_song_button = self.new_button( "Add Song from .lsdsng ...", event_handlers.add_song, start_disabled=True) self.add_srm_button = self.new_button( "Add Song from .srm ...", event_handlers.add_srm, start_disabled=True) self.export_song_button = self.new_button( "Export Selected as .lsdsng ...", event_handlers.save_song, start_disabled=True) self.export_song_srm_button = self.new_button( "Export Selected as .srm ...", event_handlers.save_song_srm, start_disabled=True) self.open_song_button = self.new_button( "Open Song ...", self.open_song, start_disabled=True, internal_handler=True) self.delete_song_button = self.new_button( "Delete Song", event_handlers.delete_song, start_disabled=True) self.Bind( wx.EVT_LIST_ITEM_SELECTED, self.handle_song_selection_changed, self.sav_project_list) self.Bind( wx.EVT_LIST_ITEM_DESELECTED, self.handle_song_selection_changed, self.sav_project_list) buttons_layout = wx.BoxSizer(wx.VERTICAL) def add_side_button(btn): buttons_layout.Add(btn, 1, flag=wx.EXPAND | wx.ALL) buttons_layout.AddSpacer(10) buttons_layout.AddSpacer(20) add_side_button(self.open_sav_button) add_side_button(self.save_sav_button) buttons_layout.AddSpacer(20) add_side_button(self.add_song_button) add_side_button(self.add_srm_button) buttons_layout.AddSpacer(20) add_side_button(self.open_song_button) add_side_button(self.delete_song_button) add_side_button(self.export_song_button) add_side_button(self.export_song_srm_button) window_layout = wx.BoxSizer(wx.HORIZONTAL) window_layout.Add(self.sav_project_list, 1, wx.EXPAND | wx.ALL) window_layout.AddSpacer(10) window_layout.Add(buttons_layout) window_layout.AddSpacer(10) self.SetSizer(window_layout)