def __init__(self): Gtk.Application.__init__(self) self.connect("activate", self.on_activate) self.controller = AlienFXProber.get_controller() self.themefile = AlienFXThemeFile(self.controller) self.selected_action = None self.action_type = self.themefile.KW_ACTION_TYPE_FIXED self.theme_edited = False self.set_theme_done = True
def on_action_new_theme_activate(self, widget): """ Handler for when the "New Theme" action is triggered.""" if self.theme_edited: if not self.ask_discard_changes(): return self.themefile = AlienFXThemeFile(self.controller) self.themefile.set_default_theme() self.load_theme("New Theme") self.set_theme_dirty(False) self.theme_loaded_from_file = False self.enable_delete_theme_button(False)
def on_activate(self, data=None): self.builder = Gtk.Builder() self.builder.add_from_file(pkg_resources.resource_filename( "alienfx.ui.gtkui", "glade/ui.glade")) self.zone_list_view = self.builder.get_object("zone_list_view") self.zone_list_view.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.zone_list_view.connect( "button-press-event", self.zone_item_selected) self.action_cell_renderer = AlienFXActionCellRenderer( treeview=self.zone_list_view, max_colour_val=0xf) col_colour = Gtk.TreeViewColumn( "Actions", self.action_cell_renderer, actions=1) self.zone_list_view.append_column(col_colour) self.open_theme_list_view = self.builder.get_object("open_theme_list_view") self.open_theme_list_view.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.open_theme_list_view.get_selection().connect( "changed", self.on_open_theme_list_selection_changed) self.saveas_theme_list_view = self.builder.get_object("saveas_theme_list_view") self.saveas_theme_list_view.get_selection().set_mode(Gtk.SelectionMode.SINGLE) self.saveas_theme_list_view.get_selection().connect( "changed", self.on_saveas_theme_list_selection_changed) self.properties_frame = self.builder.get_object("properties_frame") self.palette1 = ColourPalette( self.colours, max_colour_val=0xf, num_rows=2, num_cols=10, horizontal=True, selected_handler=self.on_colour_selected) self.builder.get_object("colour_palette1").add(self.palette1) self.palette2 = ColourPalette( self.colours, max_colour_val=0xf, num_rows=2, num_cols=10, horizontal=True, selected_handler=self.on_colour_selected) self.builder.get_object("colour_palette2").add(self.palette2) self.palette2.set_sensitive(False) self.builder.connect_signals(self) main_window = self.builder.get_object("main_window") main_window.set_icon_from_file(pkg_resources.resource_filename( "alienfx", "data/icons/hicolor/scalable/apps/alienfx.svg")) main_window.show_all() self.add_window(main_window) if self.controller is None: Gtk.MessageDialog( main_window, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.CLOSE, "No supported Alien FX controller found!").run() quit() self.themefile = AlienFXThemeFile(self.controller) last_theme_loaded = self.themefile.load_last_theme() if last_theme_loaded: self.load_theme("Current Theme") else: self.load_theme("New Theme") self.theme_loaded_from_file = False self.enable_delete_theme_button(False)