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])
Esempio n. 2
0
    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)