예제 #1
0
class StateDataFlowsListView(TreeView):
    builder = glade.get_glade_path("data_flow_list_widget.glade")
    top = 'tree_view'

    def __init__(self):
        super(StateDataFlowsListView, self).__init__()
        self.tree_view = self['tree_view']
예제 #2
0
    def __init__(self):
        super().__init__(builder_filename=glade.get_glade_path(
            'semantic_data_editor.glade'),
                         parent='semantic_data_vbox')
        self.scrollbar_widget = self['semantic_data_scroller']
        self['delete_entry'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['new_dict_entry'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['new_entry'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        tree_view = self["semantic_data_tree_view"]

        # prepare tree view columns
        key_renderer = Gtk.CellRendererText()
        key_renderer.set_property('editable', True)
        col = Gtk.TreeViewColumn('Key', key_renderer, text=self.KEY_STORAGE_ID)
        tree_view.append_column(col)

        value_renderer = Gtk.CellRendererText()
        value_renderer.set_property('editable', True)
        col = Gtk.TreeViewColumn('Value',
                                 value_renderer,
                                 text=self.VALUE_STORAGE_ID)
        tree_view.append_column(col)

        is_dict_renderer = Gtk.CellRendererText()
        col = Gtk.TreeViewColumn('Is Dict',
                                 is_dict_renderer,
                                 text=self.IS_DICT_STORAGE_ID)
        tree_view.append_column(col)

        gui_helper_label.ellipsize_labels_recursively(
            self['semantic_data_toolbar'])
예제 #3
0
class TopToolBarView(View):
    builder = glade.get_glade_path("top_tool_bar.glade")
    top = 'top_toolbar'

    def __init__(self):
        View.__init__(self)

        self.get_top_widget().set_events(gtk.gdk.POINTER_MOTION_MASK
                                         | gtk.gdk.POINTER_MOTION_HINT_MASK
                                         | gtk.gdk.BUTTON_PRESS_MASK)

        close_label = gui_helper_label.create_button_label(
            constants.BUTTON_CLOSE)
        self['close_button'].set_label_widget(close_label)
        self['close_button'].set_tooltip_text("Close RAFCON")

        maximize_label = gui_helper_label.create_button_label(
            constants.BUTTON_EXP)
        self['maximize_button'].set_label_widget(maximize_label)

        self['minimize_button'].set_label('_')
        self['minimize_button'].set_tooltip_text("Minimize main window")

        redock_label = gui_helper_label.create_button_label(
            constants.BUTTON_UNDOCK)
        self['redock_button'].set_label_widget(redock_label)
        self['redock_button'].set_tooltip_text("Re-Dock widget to main window")
예제 #4
0
class LinkageOverviewView(View):
    builder = glade.get_glade_path("linkage_overview_one.glade")
    top = 'linkage_container'

    def __init__(self):
        View.__init__(self)

        self.inputs_view = LinkageOverviewDataView()
        self.outputs_view = LinkageOverviewDataView()
        self.scope_view = LinkageOverviewDataView()
        self.outcomes_view = LinkageOverviewLogicView()

        self['inputs_scroller'].add(self.inputs_view.get_top_widget())
        self['outputs_scroller'].add(self.outputs_view.get_top_widget())
        self['scoped_scroller'].add(self.scope_view.get_top_widget())
        self['outcomes_scroller'].add(self.outcomes_view.get_top_widget())
        self.inputs_view.scrollbar_widget = self['inputs_scroller']
        self.outputs_view.scrollbar_widget = self['outputs_scroller']
        self.scope_view.scrollbar_widget = self['scoped_scroller']
        self.outcomes_view.scrollbar_widget = self['outcomes_scroller']

        gui_helper_label.set_label_markup(
            self['data_linkage_label'],
            'DATA LINKAGE',
            letter_spacing=constants.LETTER_SPACING_1PT)
        gui_helper_label.set_label_markup(
            self['logical_linkage_label'],
            'LOGICAL LINKAGE',
            letter_spacing=constants.LETTER_SPACING_1PT)
예제 #5
0
class DebugConsoleView(View):
    builder = glade.get_glade_path("debug_console.glade")
    top = 'console_container'

    def __init__(self):
        View.__init__(self)

        self._lock = threading.Lock()

        ######################################################
        # Logging text view
        ######################################################
        self.logging_console_view = LoggingConsoleView()
        self['console'].pack_start(self.logging_console_view.get_top_widget(), True, True, 0)
        self.logging_console_view.get_top_widget().show()

        ######################################################
        # initial configuration of the console
        ######################################################
        self['button_follow_logging'].set_active(global_gui_config.get_config_value('CONSOLE_FOLLOW_LOGGING', True))
        self['button_show_verbose'].set_active(global_gui_config.get_config_value('LOGGING_SHOW_VERBOSE', True))
        self['button_show_debug'].set_active(global_gui_config.get_config_value('LOGGING_SHOW_DEBUG', True))
        self['button_show_info'].set_active(global_gui_config.get_config_value('LOGGING_SHOW_INFO', True))
        self['button_show_warning'].set_active(global_gui_config.get_config_value('LOGGING_SHOW_WARNING', True))
        self['button_show_error'].set_active(global_gui_config.get_config_value('LOGGING_SHOW_ERROR', True))

        self['undock_console_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_UNDOCK))
        self['undock_console_button'].set_tooltip_text("Undock debug console widget")
        self['console_hide_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_DOWNA))

        gui_helper_label.ellipsize_labels_recursively(self['debug_console_button_hbox'])
예제 #6
0
class ToolBarView(View):
    builder = glade.get_glade_path("tool_bar.glade")
    top = 'toolbar'

    def __init__(self):
        View.__init__(self)

        button_new = self['button_new']
        button_new.set_label_widget(create_label_widget_with_icon(constants.BUTTON_NEW, _("New state machine")))

        button_refresh = self['button_refresh']
        button_refresh.set_label_widget(create_label_widget_with_icon(constants.BUTTON_REFR, _("Refresh"),
                                                                      "Refresh all libraries and state machines"))

        button_refresh_selected = self['button_refresh_selected']
        button_refresh_selected.set_label_widget(create_label_widget_with_icon(constants.BUTTON_REFR,
                                                                               _("Refresh Selected"),
                                                                               "Refresh selected state machine"))

        button_open = self['button_open']
        button_open.set_label_widget(create_label_widget_with_icon(constants.BUTTON_OPEN, _("Open state machine")))

        button_save = self['button_save']
        button_save.set_label_widget(create_label_widget_with_icon(constants.BUTTON_SAVE, _("Save state machine")))

        button_refresh_libs = self['button_refresh_libs']
        button_refresh_libs.set_label_widget(
            create_label_widget_with_icon(constants.BUTTON_REFR, _("Refresh Libraries"), "Refresh all libraries"))

        button_bake_state_machine = self['button_bake_state_machine']
        button_bake_state_machine.set_label_widget(
            create_label_widget_with_icon(
                constants.BUTTON_BAKE, _("Bake State Machine"),
                "Saves the currently selected state machine and all library folders it refers to"))
예제 #7
0
class StateTransitionsListView(TreeView):
    builder = glade.get_glade_path("transition_list_widget.glade")
    top = 'tree_view'

    def __init__(self):
        super(StateTransitionsListView, self).__init__()
        self.tree_view = self['tree_view']
예제 #8
0
    def __init__(self):
        super().__init__(builder_filename=glade.get_glade_path('tool_bar.glade'), parent='toolbar')

        button_new = self['button_new']
        button_new.set_label_widget(create_label_widget_with_icon(constants.BUTTON_NEW, _("New state machine")))

        button_refresh = self['button_refresh']
        button_refresh.set_label_widget(create_label_widget_with_icon(constants.BUTTON_REFR, _("Refresh"),
                                                                      "Refresh all libraries and state machines"))

        button_refresh_selected = self['button_refresh_selected']
        button_refresh_selected.set_label_widget(create_label_widget_with_icon(constants.ICON_REFRESH_SELECTED,
                                                                               _("Refresh Selected"),
                                                                               "Refresh selected state machine"))

        button_open = self['button_open']
        button_open.set_label_widget(create_label_widget_with_icon(constants.BUTTON_OPEN, _("Open state machine")))

        button_save = self['button_save']
        button_save.set_label_widget(create_label_widget_with_icon(constants.BUTTON_SAVE, _("Save state machine")))

        button_refresh_libs = self['button_refresh_libs']
        button_refresh_libs.set_label_widget(
            create_label_widget_with_icon(constants.ICON_REFRESH_LIBS, _("Refresh Libraries"), "Refresh all libraries"))

        button_bake_state_machine = self['button_bake_state_machine']
        button_bake_state_machine.set_label_widget(
            create_label_widget_with_icon(
                constants.BUTTON_BAKE, _("Bake State Machine"),
                "Saves the currently selected state machine and all library folders it refers to"))
예제 #9
0
    def __init__(self):
        super().__init__(
            builder_filename=glade.get_glade_path('menu_bar.glade'),
            parent='menubar')

        self.insert_accelerators = {
            'new': Gtk.accelerator_parse('<control>N'),
            'open': Gtk.accelerator_parse('<control>O'),
            'save': Gtk.accelerator_parse('<control>S'),
            'quit': Gtk.accelerator_parse('<control>Q'),
            'cut': Gtk.accelerator_parse('<control>X'),
            'copy': Gtk.accelerator_parse('<control>C'),
            'paste': Gtk.accelerator_parse('<control>V'),
        }
        self.sub_menu_open_recently = Gtk.Menu()
        self['open_recent'].set_submenu(self.sub_menu_open_recently)

        for menu_item_name in self.buttons:
            # set icon
            self.set_menu_item_icon(menu_item_name,
                                    self.buttons[menu_item_name])
            # set accelerator if in shortcuts dictionary with menu_item_name == key
            if menu_item_name in global_gui_config.get_config_value(
                    'SHORTCUTS'):
                shortcuts = global_gui_config.get_config_value(
                    'SHORTCUTS')[menu_item_name]
                if shortcuts:
                    main_shortcut = shortcuts[0] if isinstance(
                        shortcuts, list) else shortcuts
                    self.set_menu_item_accelerator(menu_item_name,
                                                   main_shortcut)
        for sub_menu_name in self.sub_menus:
            sub_menu = self[sub_menu_name]
            sub_menu.set_reserve_toggle_size(False)
예제 #10
0
파일: overview.py 프로젝트: uservinu/RAFCON
class StateOverviewView(View):
    builder = glade.get_glade_path("state_overview_widget.glade")
    top = 'properties_widget_bg'

    def __init__(self):
        View.__init__(self)

        self['properties_widget'].set_border_width(constants.GRID_SIZE * 2)
예제 #11
0
class LinkageOverviewLogicView(TreeView):
    builder = glade.get_glade_path("linkage_overview_logic.glade")
    top = 'tree_view'

    def __init__(self):
        super(LinkageOverviewLogicView, self).__init__()
        self._treeView = weakref.ref(self)

    @property
    def treeView(self):
        return self._treeView()
예제 #12
0
 def __init__(self):
     super().__init__(builder_filename=glade.get_glade_path(
         'global_variable_editor_widget.glade'),
                      parent='global_variable_vbox')
     self['new_global_variable_button'].set_border_width(
         constants.BUTTON_BORDER_WIDTH)
     self['delete_global_variable_button'].set_border_width(
         constants.BUTTON_BORDER_WIDTH)
     self['lock_global_variable_button'].set_border_width(
         constants.BUTTON_BORDER_WIDTH)
     self['unlock_global_variable_button'].set_border_width(
         constants.BUTTON_BORDER_WIDTH)
     self.scrollbar_widget = self['scroller']
     label.ellipsize_labels_recursively(self['global_variables_toolbar'])
예제 #13
0
class GlobalVariableEditorView(View):
    builder = glade.get_glade_path("global_variable_editor_widget.glade")
    top = 'global_variable_vbox'

    def __init__(self):
        View.__init__(self)

        self['new_global_variable_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['delete_global_variable_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['lock_global_variable_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['unlock_global_variable_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self.scrollbar_widget = self['scroller']

        label.ellipsize_labels_recursively(self['global_variables_toolbar'])
예제 #14
0
class GlobalVariableEditorView(View):
    builder = glade.get_glade_path("global_variable_editor_widget.glade")
    top = 'global_variable_vbox'

    def __init__(self):
        View.__init__(self)

        self['new_global_variable_button'].set_border_width(
            constants.BUTTON_BORDER_WIDTH)
        self['delete_global_variable_button'].set_border_width(
            constants.BUTTON_BORDER_WIDTH)
        self['lock_global_variable_button'].set_border_width(
            constants.BUTTON_BORDER_WIDTH)
        self['unlock_global_variable_button'].set_border_width(
            constants.BUTTON_BORDER_WIDTH)
예제 #15
0
class UndockedWindowView(View):
    builder = glade.get_glade_path("undocked_window.glade")
    top = 'undock_window'

    def __init__(self, title):
        View.__init__(self)

        toolbar = Gtk.Toolbar()
        toolbar.props.show_arrow = False
        fullscreen_icon = label.create_button_label(constants.BUTTON_EXP)
        self['maximize_button'] = Gtk.ToolButton()
        self['maximize_button'].set_icon_widget(fullscreen_icon)
        redock_icon = label.create_button_label(constants.BUTTON_UNDOCK)
        self['redock_button'] = Gtk.ToolButton()
        self['redock_button'].set_icon_widget(redock_icon)
        self['redock_button'].set_tooltip_text("Redock")
        toolbar.insert(self['maximize_button'], 0)
        toolbar.insert(self['redock_button'], 1)

        self['headerbar'].props.title = title
        self['headerbar'].pack_end(toolbar)
        self['headerbar'].show_all()

        self.get_top_widget().set_titlebar(self['headerbar'])

    def initialize_title(self, window_title):
        """Initialize the title of the un-docked window

        :param window_title: The title of the window
        """
        self['headerbar'].props.title = window_title

    def reset_title(self, title, notebook_identifier):
        """Triggered whenever a notebook tab is switched in the left bar.

        Resets the title of the un-docked window to the format 'upper_open_tab / lower_open_tab'

        :param title: The name of the newly selected tab
        :param notebook: string taking one of two values 'upper' or 'lower' indicating which notebook was changed
        """
        current_title = self.get_top_widget().get_title()
        upper_title = current_title.split('/')[0].strip()
        lower_title = current_title.split('/')[1].strip()
        if notebook_identifier == 'upper':
            new_title = title + ' / ' + lower_title
        else:
            new_title = upper_title + ' / ' + title
        self['headerbar'].props.title = new_title
예제 #16
0
 def __init__(self):
     super().__init__(builder_filename=glade.get_glade_path(
         'state_data_flows_widget.glade'),
                      parent='data_flows_container')
     self.data_flows_listView = StateDataFlowsListView()
     self['data_flows_scroller'].add(
         self.data_flows_listView.get_parent_widget())
     self.data_flows_listView.scrollbar_widget = self['data_flows_scroller']
     self['internal_d_checkbutton'].set_border_width(
         constants.BUTTON_BORDER_WIDTH)
     self['connected_to_d_checkbutton'].set_border_width(
         constants.BUTTON_BORDER_WIDTH)
     self['add_d_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
     self['remove_d_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
     gui_helper_label.ellipsize_labels_recursively(
         self['data_flows_toolbar'])
예제 #17
0
 def __init__(self):
     super().__init__(builder_filename=glade.get_glade_path(
         'linkage_overview_one.glade'),
                      parent='linkage_container')
     self.inputs_view = LinkageOverviewDataView()
     self.outputs_view = LinkageOverviewDataView()
     self.scope_view = LinkageOverviewDataView()
     self.outcomes_view = LinkageOverviewLogicView()
     self['inputs_scroller'].add(self.inputs_view.get_parent_widget())
     self['outputs_scroller'].add(self.outputs_view.get_parent_widget())
     self['scoped_scroller'].add(self.scope_view.get_parent_widget())
     self['outcomes_scroller'].add(self.outcomes_view.get_parent_widget())
     self.inputs_view.scrollbar_widget = self['inputs_scroller']
     self.outputs_view.scrollbar_widget = self['outputs_scroller']
     self.scope_view.scrollbar_widget = self['scoped_scroller']
     self.outcomes_view.scrollbar_widget = self['outcomes_scroller']
예제 #18
0
class StateDataFlowsEditorView(View):
    builder = glade.get_glade_path("state_data_flows_widget.glade")
    top = 'data_flows_container'

    def __init__(self):
        View.__init__(self)

        self.data_flows_listView = StateDataFlowsListView()
        self['data_flows_scroller'].add(self.data_flows_listView.get_top_widget())
        self.data_flows_listView.scrollbar_widget = self['data_flows_scroller']

        self['internal_d_checkbutton'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['connected_to_d_checkbutton'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['add_d_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['remove_d_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)

        gui_helper_label.ellipsize_labels_recursively(self['data_flows_toolbar'])
예제 #19
0
class UndockedWindowView(View):
    builder = glade.get_glade_path("undocked_window.glade")
    top = 'undock_window'

    def __init__(self, title):
        View.__init__(self)

        self.top_tool_bar = TopToolBarView()
        self['top_menu_hbox'].remove(self['top_tool_bar_placeholder'])
        self['top_menu_hbox'].pack_end(self.top_tool_bar.get_top_widget(),
                                       expand=True,
                                       fill=True,
                                       padding=0)
        self['top_menu_hbox'].reorder_child(self.top_tool_bar.get_top_widget(),
                                            1)

        self.get_top_widget().set_decorated(False)
        if not ('3.0.101' in os.uname()[2]
                and 'kde' == os.environ.get('DESKTOP_SESSION')):
            self.get_top_widget().set_type_hint(
                gtk.gdk.WINDOW_TYPE_HINT_UTILITY)

    def initialize_title(self, window_title):
        """Initialize the title of the un-docked window

        :param window_title: The title of the window
        """
        self.get_top_widget().set_title(window_title)

    def reset_title(self, title, notebook_identifier):
        """Triggered whenever a notebook tab is switched in the left bar.

        Resets the title of the un-docked window to the format 'upper_open_tab / lower_open_tab'

        :param title: The name of the newly selected tab
        :param notebook: string taking one of two values 'upper' or 'lower' indicating which notebook was changed
        """
        current_title = self.get_top_widget().get_title()
        upper_title = current_title.split('/')[0].strip()
        lower_title = current_title.split('/')[1].strip()
        if notebook_identifier == 'upper':
            new_title = title + ' / ' + lower_title
        else:
            new_title = upper_title + ' / ' + title
        self.get_top_widget().set_title(new_title)
예제 #20
0
class StateTransitionsEditorView(View):
    builder = glade.get_glade_path("state_transitions_widget.glade")
    top = 'vbox2'

    def __init__(self):
        View.__init__(self)

        gui_helper_label.set_label_markup(self['transitions_label'], 'TRANSITIONS',
                                          letter_spacing=constants.LETTER_SPACING_1PT)

        self.transitions_listView = StateTransitionsListView()
        self['transitions_scroller'].add(self.transitions_listView.get_top_widget())
        self.transitions_listView.scrollbar_widget = self['transitions_scroller']

        self['internal_t_checkbutton'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['connected_to_t_checkbutton'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['add_t_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['remove_t_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
예제 #21
0
 def __init__(self, title):
     super().__init__(
         builder_filename=glade.get_glade_path('undocked_window.glade'),
         parent='undock_window')
     toolbar = Gtk.Toolbar()
     toolbar.props.show_arrow = False
     fullscreen_icon = label.create_button_label(constants.BUTTON_EXP)
     self['maximize_button'] = Gtk.ToolButton()
     self['maximize_button'].set_icon_widget(fullscreen_icon)
     redock_icon = label.create_button_label(constants.BUTTON_UNDOCK)
     self['redock_button'] = Gtk.ToolButton()
     self['redock_button'].set_icon_widget(redock_icon)
     self['redock_button'].set_tooltip_text("Redock")
     toolbar.insert(self['maximize_button'], 0)
     toolbar.insert(self['redock_button'], 1)
     self['headerbar'].props.title = title
     self['headerbar'].pack_end(toolbar)
     self['headerbar'].show_all()
     self.get_parent_widget().set_titlebar(self['headerbar'])
예제 #22
0
class LinkageOverviewView(View):
    builder = glade.get_glade_path("linkage_overview_one.glade")
    top = 'linkage_container'

    def __init__(self):
        View.__init__(self)

        self.inputs_view = LinkageOverviewDataView()
        self.outputs_view = LinkageOverviewDataView()
        self.scope_view = LinkageOverviewDataView()
        self.outcomes_view = LinkageOverviewLogicView()

        self['inputs_scroller'].add(self.inputs_view.get_top_widget())
        self['outputs_scroller'].add(self.outputs_view.get_top_widget())
        self['scoped_scroller'].add(self.scope_view.get_top_widget())
        self['outcomes_scroller'].add(self.outcomes_view.get_top_widget())
        self.inputs_view.scrollbar_widget = self['inputs_scroller']
        self.outputs_view.scrollbar_widget = self['outputs_scroller']
        self.scope_view.scrollbar_widget = self['scoped_scroller']
        self.outcomes_view.scrollbar_widget = self['outcomes_scroller']
예제 #23
0
class SemanticDataEditorView(View):

    """ The view of the Semantic Data Editor widget

    """

    builder = glade.get_glade_path("semantic_data_editor.glade")
    top = 'semantic_data_vbox'
    KEY_STORAGE_ID = 0
    VALUE_STORAGE_ID = 1
    IS_DICT_STORAGE_ID = 2
    KEY_COLUMN_ID = 0
    VALUE_COLUMN_ID = 1
    IS_DICT_COLUMN_ID = 2

    def __init__(self):
        super(SemanticDataEditorView, self).__init__()
        self.scrollbar_widget = self['semantic_data_scroller']
        self['delete_entry'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['new_dict_entry'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['new_entry'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        tree_view = self["semantic_data_tree_view"]

        # prepare tree view columns
        key_renderer = Gtk.CellRendererText()
        key_renderer.set_property('editable', True)
        col = Gtk.TreeViewColumn('Key', key_renderer, text=self.KEY_STORAGE_ID)
        tree_view.append_column(col)

        value_renderer = Gtk.CellRendererText()
        value_renderer.set_property('editable', True)
        col = Gtk.TreeViewColumn('Value', value_renderer, text=self.VALUE_STORAGE_ID)
        tree_view.append_column(col)

        is_dict_renderer = Gtk.CellRendererText()
        col = Gtk.TreeViewColumn('Is Dict', is_dict_renderer, text=self.IS_DICT_STORAGE_ID)
        tree_view.append_column(col)

        gui_helper_label.ellipsize_labels_recursively(self['semantic_data_toolbar'])
예제 #24
0
class StateTransitionsEditorView(View):
    builder = glade.get_glade_path("state_transitions_widget.glade")
    top = 'vbox2'

    def __init__(self):
        View.__init__(self)

        self.transitions_listView = StateTransitionsListView()
        self['transitions_scroller'].add(
            self.transitions_listView.get_top_widget())
        self.transitions_listView.scrollbar_widget = self[
            'transitions_scroller']

        self['internal_t_checkbutton'].set_border_width(
            constants.BUTTON_BORDER_WIDTH)
        self['connected_to_t_checkbutton'].set_border_width(
            constants.BUTTON_BORDER_WIDTH)
        self['add_t_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['remove_t_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)

        gui_helper_label.ellipsize_labels_recursively(
            self['transitions_toolbar'])
예제 #25
0
class StateDataFlowsEditorView(View):
    builder = glade.get_glade_path("state_data_flows_widget.glade")
    top = 'data_flows_container'

    def __init__(self):
        View.__init__(self)

        gui_helper_label.set_label_markup(
            self['data_flows_label'],
            'DATA FLOWS',
            letter_spacing=constants.LETTER_SPACING_1PT)

        self.data_flows_listView = StateDataFlowsListView()
        self['dataflows_scroller'].add(
            self.data_flows_listView.get_top_widget())
        self.data_flows_listView.scrollbar_widget = self['dataflows_scroller']

        self['internal_d_checkbutton'].set_border_width(
            constants.BUTTON_BORDER_WIDTH)
        self['connected_to_d_checkbutton'].set_border_width(
            constants.BUTTON_BORDER_WIDTH)
        self['add_d_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
        self['remove_d_button'].set_border_width(constants.BUTTON_BORDER_WIDTH)
예제 #26
0
    def __init__(self):
        super().__init__(builder_filename=glade.get_glade_path('main_window.glade'), parent='main_window')

        if os.getenv("RAFCON_START_MINIMIZED", False):
            self.get_parent_widget().iconify()

        # Add gui components by removing their corresponding placeholders defined in the glade file first and then
        # adding the widgets.
        self.left_bar_notebooks = [self['upper_notebook'], self['lower_notebook']]

        ################################################
        # Undock Buttons
        ################################################
        self['undock_left_bar_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_UNDOCK))
        self['undock_left_bar_button'].set_tooltip_text("Undock left side bar widget")
        self['undock_right_bar_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_UNDOCK))
        self['undock_right_bar_button'].set_tooltip_text("Undock right side bar widget")
        self['collapse_tree_button'].set_image(gui_helper_label.create_button_label(constants.ICON_TREE_FOLD))
        self['collapse_tree_button'].set_tooltip_text("Collapse tree of widget")
        self['show_search_bar'].set_image(gui_helper_label.create_button_label(constants.BUTTON_SHOW_SEARCH_BAR))
        self['show_search_bar'].set_tooltip_text("Show state machine search bar")

        ######################################################
        # Library Tree
        ######################################################
        self.library_tree = LibraryTreeView()
        self.library_tree.show()
        self['libraries_scrolledwindow'].add(self.library_tree)

        ######################################################
        # Library Usages Tree
        ######################################################
        self.library_usages_tree = LibraryTreeView()
        self.library_usages_tree.show()
        self['library_usages_scrolledwindow'].add(self.library_usages_tree)

        ######################################################
        # State Icons
        ######################################################
        self.state_icons = StateIconView()
        self.state_icons.show()
        self["state_icons_box"].pack_start(self.state_icons.get_parent_widget(), True, True, 0)

        ######################################################
        # State Machine Tree
        ######################################################
        self.state_machine_tree = StateMachineTreeView()
        self.state_machine_tree.show()
        self['states_tree_scrolledwindow'].add(self.state_machine_tree)

        ######################################################
        # Global Variable Manager
        ######################################################
        self.global_var_editor = GlobalVariableEditorView()
        self.global_var_editor.show()
        self['global_variables_eventbox'].add(self.global_var_editor.get_parent_widget())

        ######################################################
        # State Machine History
        ######################################################
        self.state_machine_history = ModificationHistoryView()
        self.state_machine_history.show()
        self['history_alignment'].add(self.state_machine_history.get_parent_widget())

        ######################################################
        # State Machine Execution History
        ######################################################
        self.execution_history = ExecutionHistoryView()
        self.execution_history.show()
        self['execution_history_alignment'].add(self.execution_history.get_parent_widget())

        ######################################################
        # rotate all tab labels by 90 degrees and make detachable
        ######################################################
        self.rotate_and_detach_tab_labels()

        self['upper_notebook'].set_current_page(0)
        self['lower_notebook'].set_current_page(0)

        ######################################################
        # State-machines-editor (graphical)
        ######################################################
        self.state_machines_editor = StateMachinesEditorView()
        self.state_machines_editor.show()
        self['central_vbox'].pack_start(self.state_machines_editor.get_parent_widget(), True, True, 0)
        self['central_vbox'].reorder_child(self.state_machines_editor.get_parent_widget(), 1)

        ######################################################
        # Notification Bar
        ######################################################
        self.notification_bar = NotificationBarView()
        self.notification_bar.show()
        self['central_vbox'].pack_start(self.notification_bar.get_parent_widget(), False, True, 0)
        self['central_vbox'].reorder_child(self.notification_bar.get_parent_widget(), 2)

        ######################################################
        # States-editor
        ######################################################
        self.states_editor = StatesEditorView()
        self['state_editor_eventbox'].add(self.states_editor.get_parent_widget())
        self.states_editor.show()

        ######################################################
        # Debug Console
        ######################################################
        self.debug_console_view = DebugConsoleView()
        self['debug_console_viewport'].add(self.debug_console_view.get_parent_widget())
        self.debug_console_view.get_parent_widget().show()
        # map hide and undock buttons within and debug widget to be usable from main window view with generic naming
        self['undock_console_button'] = self.debug_console_view['undock_console_button']
        self['console_hide_button'] = self.debug_console_view['console_hide_button']
        self['console_container'] = self.debug_console_view['console_container']
        self['console'] = self.debug_console_view['console']

        ##################################################
        # HeaderBar with MenuBar
        ##################################################

        self.menu_bar = MenuBarView()
        self.menu_bar.show()

        self['headerbar'].pack_start(self.menu_bar.get_parent_widget())
        self['headerbar'].show()

        self.tool_bar = ToolBarView()
        self.tool_bar.show()
        self['top_level_vbox'].remove(self['tool_bar_placeholder'])
        self['top_level_vbox'].pack_start(self.tool_bar.get_parent_widget(), expand=False, fill=True, padding=0)
        self['top_level_vbox'].reorder_child(self.tool_bar.get_parent_widget(), 0)

        ################################################
        # Hide Buttons
        ################################################
        self['left_bar_hide_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_LEFTA))
        self['right_bar_hide_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_RIGHTA))

        ################################################
        # Return Buttons
        ################################################
        self['left_bar_return_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_RIGHTA))
        self['right_bar_return_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_LEFTA))
        self['console_return_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_UPA))

        # --------------------------------------------------------------------------
        # Edit graphical_editor_shortcuts
        # --------------------------------------------------------------------------

        button_start_shortcut = self['button_start_shortcut']
        button_start_shortcut.set_tooltip_text('Run')
        button_stop_shortcut = self['button_stop_shortcut']
        button_stop_shortcut.set_tooltip_text('Stop')
        button_pause_shortcut = self['button_pause_shortcut']
        button_pause_shortcut.set_tooltip_text('Pause')
        button_run_this_state_shortcut = self['button_run_this_state_shortcut']
        button_run_this_state_shortcut.set_tooltip_text('Run Selected State')
        button_run_only_this_state_shortcut = self['button_run_only_this_state_shortcut']
        button_run_only_this_state_shortcut.set_tooltip_text('Only Run Selected State')
        button_start_from_shortcut = self['button_start_from_shortcut']
        button_start_from_shortcut.set_tooltip_text('Run From Selected State')
        button_run_to_shortcut = self['button_run_to_shortcut']
        button_run_to_shortcut.set_tooltip_text('Run Until Selected State (Selected State Excluded)')
        button_step_mode_shortcut = self['button_step_mode_shortcut']
        button_step_mode_shortcut.set_tooltip_text('Enter Step Mode')
        button_step_in_shortcut = self['button_step_in_shortcut']
        button_step_in_shortcut.set_tooltip_text('Step Into (One Level In -> Child-State))')
        button_step_over_shortcut = self['button_step_over_shortcut']
        button_step_over_shortcut.set_tooltip_text('Step Over (the next Sibling-State))')
        button_step_out_shortcut = self['button_step_out_shortcut']
        button_step_out_shortcut.set_tooltip_text('Step Out (One Level Up -> Parent-State)')
        button_step_backward_shortcut = self['button_step_backward_shortcut']
        button_step_backward_shortcut.set_tooltip_text('Step Backward')

        button_start_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_START))
        button_stop_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_STOP))
        button_pause_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_PAUSE))
        button_run_this_state_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_RUN_SELECTED_STATE))
        button_run_only_this_state_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_ONLY_RUN_SELECTED_STATE))
        button_start_from_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_START_FROM_SELECTED_STATE))
        button_run_to_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_RUN_TO_SELECTED_STATE))
        button_step_mode_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_STEPM))
        button_step_in_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_STEP_INTO))
        button_step_over_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_STEP_OVER))
        button_step_out_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_STEP_OUT))
        button_step_backward_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_BACKW))

        self.left_bar_window = UndockedWindowView('left_bar_window')
        self.right_bar_window = UndockedWindowView('right_bar_window')
        self.console_window = UndockedWindowView('console_window')

        gui_helper_label.ellipsize_labels_recursively(self['execution_ticker_text'], Pango.EllipsizeMode.START)
예제 #27
0
 def __init__(self):
     super().__init__(builder_filename=glade.get_glade_path(
         'output_ports_list_widget.glade'),
                      parent='output_ports_tree_view')
예제 #28
0
class MainWindowView(View):
    builder = glade.get_glade_path("main_window.glade")
    top = 'main_window'

    def __init__(self):
        View.__init__(self)

        if os.getenv("RAFCON_START_MINIMIZED", False):
            self.get_top_widget().iconify()

        # Add gui components by removing their corresponding placeholders defined in the glade file first and then
        # adding the widgets.
        self.left_bar_notebooks = [self['upper_notebook'], self['lower_notebook']]

        ################################################
        # Undock Buttons
        ################################################
        self['undock_left_bar_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_UNDOCK))
        self['undock_left_bar_button'].set_tooltip_text("Undock left side bar widget")
        self['undock_right_bar_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_UNDOCK))
        self['undock_right_bar_button'].set_tooltip_text("Undock right side bar widget")
        self['collapse_tree_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_COLLAPSE))
        self['collapse_tree_button'].set_tooltip_text("Collapse tree of widget")

        ######################################################
        # Library Tree
        ######################################################
        self.library_tree = LibraryTreeView()
        self.library_tree.show()
        self['libraries_scrolledwindow'].add(self.library_tree)

        ######################################################
        # State Icons
        ######################################################
        self.state_icons = StateIconView()
        self.state_icons.show()
        self["state_icons_box"].pack_start(self.state_icons.get_top_widget(), True, True, 0)

        ######################################################
        # State Machine Tree
        ######################################################
        self.state_machine_tree = StateMachineTreeView()
        self.state_machine_tree.show()
        self['states_tree_scrolledwindow'].add(self.state_machine_tree)

        ######################################################
        # Global Variable Manager
        ######################################################
        self.global_var_editor = GlobalVariableEditorView()
        self.global_var_editor.show()
        self['global_variables_eventbox'].add(self.global_var_editor.get_top_widget())

        ######################################################
        # State Machine History
        ######################################################
        self.state_machine_history = ModificationHistoryView()
        self.state_machine_history.show()
        self['history_alignment'].add(self.state_machine_history.get_top_widget())

        ######################################################
        # State Machine Execution History
        ######################################################
        self.execution_history = ExecutionHistoryView()
        self.execution_history.show()
        self['execution_history_alignment'].add(self.execution_history.get_top_widget())

        ######################################################
        # rotate all tab labels by 90 degrees and make detachable
        ######################################################
        self.rotate_and_detach_tab_labels()

        self['upper_notebook'].set_current_page(0)
        self['lower_notebook'].set_current_page(0)

        ######################################################
        # State-machines-editor (graphical)
        ######################################################
        self.state_machines_editor = StateMachinesEditorView()
        self.state_machines_editor.show()
        self['graphical_editor_vbox'].pack_start(self.state_machines_editor.get_top_widget(), True, True, 0)
        self['graphical_editor_vbox'].reorder_child(self.state_machines_editor.get_top_widget(), 0)

        ######################################################
        # States-editor
        ######################################################
        self.states_editor = StatesEditorView()
        self['state_editor_eventbox'].add(self.states_editor.get_top_widget())
        self.states_editor.show()

        ######################################################
        # Debug Console
        ######################################################
        self.debug_console_view = DebugConsoleView()
        self['debug_console_viewport'].add(self.debug_console_view.get_top_widget())
        self.debug_console_view.get_top_widget().show()
        # map hide and undock buttons within and debug widget to be usable from main window view with generic naming
        self['undock_console_button'] = self.debug_console_view['undock_console_button']
        self['console_hide_button'] = self.debug_console_view['console_hide_button']
        self['console_container'] = self.debug_console_view['console_container']
        self['console'] = self.debug_console_view['console']

        ##################################################
        # HeaderBar with MenuBar
        ##################################################

        self.menu_bar = MenuBarView(self)
        self.menu_bar.show()

        self['headerbar'].pack_start(self.menu_bar.get_top_widget())
        self['headerbar'].show()

        self.tool_bar = ToolBarView()
        self.tool_bar.show()
        self['top_level_vbox'].remove(self['tool_bar_placeholder'])
        self['top_level_vbox'].pack_start(self.tool_bar.get_top_widget(), expand=False, fill=True, padding=0)
        self['top_level_vbox'].reorder_child(self.tool_bar.get_top_widget(), 0)

        ################################################
        # Hide Buttons
        ################################################
        self['left_bar_hide_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_LEFTA))
        self['right_bar_hide_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_RIGHTA))

        ################################################
        # Return Buttons
        ################################################
        self['left_bar_return_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_RIGHTA))
        self['right_bar_return_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_LEFTA))
        self['console_return_button'].set_image(gui_helper_label.create_button_label(constants.BUTTON_UPA))

        # --------------------------------------------------------------------------
        # Edit graphical_editor_shortcuts
        # --------------------------------------------------------------------------

        button_start_shortcut = self['button_start_shortcut']
        button_start_shortcut.set_tooltip_text('Run')
        button_stop_shortcut = self['button_stop_shortcut']
        button_stop_shortcut.set_tooltip_text('Stop')
        button_pause_shortcut = self['button_pause_shortcut']
        button_pause_shortcut.set_tooltip_text('Pause')
        button_start_from_shortcut = self['button_start_from_shortcut']
        button_start_from_shortcut.set_tooltip_text('Run From Selected State')
        button_run_to_shortcut = self['button_run_to_shortcut']
        button_run_to_shortcut.set_tooltip_text('Run Until Selected State (Selected State Excluded)')
        button_step_mode_shortcut = self['button_step_mode_shortcut']
        button_step_mode_shortcut.set_tooltip_text('Enter Step Mode')
        button_step_in_shortcut = self['button_step_in_shortcut']
        button_step_in_shortcut.set_tooltip_text('Step Into (One Level In -> Child-State))')
        button_step_over_shortcut = self['button_step_over_shortcut']
        button_step_over_shortcut.set_tooltip_text('Step Over (the next Sibling-State))')
        button_step_out_shortcut = self['button_step_out_shortcut']
        button_step_out_shortcut.set_tooltip_text('Step Out (One Level Up -> Parent-State)')
        button_step_backward_shortcut = self['button_step_backward_shortcut']
        button_step_backward_shortcut.set_tooltip_text('Step Backward')

        button_start_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_START))
        button_stop_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_STOP))
        button_pause_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_PAUSE))
        button_start_from_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_START_FROM_SELECTED_STATE))
        button_run_to_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_RUN_TO_SELECTED_STATE))
        button_step_mode_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_STEPM))
        button_step_in_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_STEP_INTO))
        button_step_over_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_STEP_OVER))
        button_step_out_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_STEP_OUT))
        button_step_backward_shortcut.set_label_widget(gui_helper_label.create_button_label(constants.BUTTON_BACKW))

        # --------------------------------------------------------------------------

        # Gtk TODO: find replacement for methods set_tab_hborder and set_tab_vborder
        # self['upper_notebook'].set_tab_hborder(constants.TAB_BORDER_WIDTH * 2)
        # self['upper_notebook'].set_tab_vborder(constants.TAB_BORDER_WIDTH * 3)
        # if global_gui_config.get_config_value("USE_ICONS_AS_TAB_LABELS", True):
        #     self['lower_notebook'].set_tab_hborder(int(constants.TAB_BORDER_WIDTH * 2 / 1.4))
        # else:
        #     self['lower_notebook'].set_tab_hborder(constants.TAB_BORDER_WIDTH * 2)
        # self['lower_notebook'].set_tab_vborder(constants.TAB_BORDER_WIDTH * 3)

        self.left_bar_window = UndockedWindowView('left_bar_window')
        self.right_bar_window = UndockedWindowView('right_bar_window')
        self.console_window = UndockedWindowView('console_window')

        gui_helper_label.ellipsize_labels_recursively(self['execution_ticker_text'], Pango.EllipsizeMode.START)

    def rotate_and_detach_tab_labels(self):
        """Rotates tab labels of a given notebook by 90 degrees and makes them detachable.

        :param notebook: GTK Notebook container, whose tab labels are to be rotated and made detachable
        """
        icons = {'Libraries': constants.SIGN_LIB, 'States Tree': constants.ICON_TREE,
                 'Global Variables': constants.ICON_GLOB, 'Modification History': constants.ICON_HIST,
                 'Execution History': constants.ICON_EHIST, 'network': constants.ICON_NET}
        for notebook in self.left_bar_notebooks:
            for i in range(notebook.get_n_pages()):
                child = notebook.get_nth_page(i)
                tab_label = notebook.get_tab_label(child)
                tab_label_text = tab_label.get_text()
                notebook.set_tab_label(child, gui_helper_label.create_tab_header_label(tab_label_text, icons))
                notebook.set_tab_reorderable(child, True)
                notebook.set_tab_detachable(child, True)

    def bring_tab_to_the_top(self, tab_label):
        """Find tab with label tab_label in list of notebooks and set it to the current page.

        :param tab_label: String containing the label of the tab to be focused
        """
        found = False
        for notebook in self.left_bar_notebooks:
            for i in range(notebook.get_n_pages()):
                if gui_helper_label.get_notebook_tab_title(notebook, i) == gui_helper_label.get_widget_title(tab_label):
                    found = True
                    break
            if found:
                notebook.set_current_page(i)
                break
예제 #29
0
class MenuBarView(View):
    builder = glade.get_glade_path("menu_bar.glade")
    top = 'menubar'

    buttons = {
        # -----------------------------------------------
        # File
        # -----------------------------------------------
        'new':                  constants.BUTTON_NEW,
        'open':                 constants.BUTTON_OPEN,
        'open_recent':          constants.BUTTON_OPEN,
        'save':                 constants.BUTTON_SAVE,
        'save_as':              constants.BUTTON_SAVE,
        'save_as_copy':         constants.BUTTON_SAVE,
        'save_state_as':        constants.BUTTON_SAVE,
        'menu_properties':      constants.BUTTON_PROP,
        'refresh_all':          constants.BUTTON_REFR,
        'refresh_libraries':    constants.BUTTON_REFR,
        'bake_state_machine':   constants.BUTTON_BAKE,
        'quit':                 constants.BUTTON_QUIT,
        # -----------------------------------------------
        # Edit
        # -----------------------------------------------
        'cut':                  constants.BUTTON_CUT,
        'copy':                 constants.BUTTON_COPY,
        'paste':                constants.BUTTON_PASTE,
        'is_start_state':       constants.BUTTON_SQUARE,
        'add':                  constants.BUTTON_ADD,
        'group':                constants.BUTTON_GROUP,
        'ungroup':              constants.BUTTON_UNGR,
        'substitute_state':     constants.BUTTON_REFR,
        'delete':               constants.BUTTON_DEL,
        'undo':                 constants.BUTTON_UNDO,
        'redo':                 constants.BUTTON_REDO,
        # -----------------------------------------------
        # View
        # -----------------------------------------------
        'data_flow_mode':       None,
        'show_data_flows':      None,
        'show_data_values':     None,
        'show_aborted_preempted': None,
        'expert_view':          constants.BUTTON_VIEW,
        'full_screen':          None,
        # -----------------------------------------------
        # Execution
        # -----------------------------------------------
        'start':                constants.BUTTON_START,
        'start_from_selected':  constants.BUTTON_START_FROM_SELECTED_STATE,
        'pause':                constants.BUTTON_PAUSE,
        'stop':                 constants.BUTTON_STOP,
        'step_mode':            constants.BUTTON_STEPM,
        'step_into':            constants.BUTTON_STEP_INTO,
        'step_over':            constants.BUTTON_STEP_OVER,
        'step_out':             constants.BUTTON_STEP_OUT,
        'backward_step':        constants.BUTTON_BACKW,
        'run_to_selected':      constants.BUTTON_RUN_TO_SELECTED_STATE,
        # -----------------------------------------------
        # Help
        # -----------------------------------------------
        'about':                constants.BUTTON_ABOUT
        }

    def __init__(self, top_window):
        View.__init__(self)

        self.win = top_window['main_window']
        self.insert_accelerators = {'new': gtk.accelerator_parse('<control>N'),
                                    'open': gtk.accelerator_parse('<control>O'),
                                    'save': gtk.accelerator_parse('<control>S'),
                                    # 'save_as': gtk.accelerator_parse('<shift><control>S'),  # no default accelerator insert
                                    'quit': gtk.accelerator_parse('<control>Q'),
                                    'cut': gtk.accelerator_parse('<control>X'),
                                    'copy': gtk.accelerator_parse('<control>C'),
                                    'paste': gtk.accelerator_parse('<control>V'),
                                    # 'delete': gtk.accelerator_parse('Delete'),  # no default accelerator insert
                                    # 'undo': gtk.accelerator_parse('<control>Z'),  # no default accelerator insert
                                    # 'redo': gtk.accelerator_parse('<control>Y'),  # no default accelerator insert
                                    }
        self.sub_menu_open_recently = gtk.Menu()
        self['open_recent'].set_submenu(self.sub_menu_open_recently)

        for menu_item_name in self.buttons.iterkeys():
            # set icon
            self.set_menu_item_icon(menu_item_name, self.buttons[menu_item_name])
            # set accelerator if in shortcuts dictionary with menu_item_name == key
            if menu_item_name in global_gui_config.get_config_value('SHORTCUTS'):
                shortcuts = global_gui_config.get_config_value('SHORTCUTS')[menu_item_name]
                if shortcuts:
                    self.set_menu_item_accelerator(menu_item_name, shortcuts[0])

    def set_menu_item_icon(self, menu_item_name, uni_code=None):
        menu_item = self[menu_item_name]

        if uni_code is not None:
            label = gtk.Label()
            set_label_markup(label, '&#x' + uni_code + ';',
                             font=constants.ICON_FONT, font_size=constants.FONT_SIZE_BIG)
            menu_item.set_image(label)
            menu_item.set_always_show_image(True)

    def set_menu_item_sensitive(self, menu_item_name, sensitive):
        self[menu_item_name].set_sensitive(sensitive)

    def set_menu_item_accelerator(self, menu_item_name, accel_code):
        menu_item = self[menu_item_name]
        if menu_item_name in self.insert_accelerators:
            key, mod = self.insert_accelerators[menu_item_name]
            menu_item.remove_accelerator(self['accelgroup1'], key, mod)

        key, mod = gtk.accelerator_parse(accel_code)
        menu_item.add_accelerator("activate", self['accelgroup1'], key, mod, gtk.ACCEL_VISIBLE)
        self.insert_accelerators[menu_item_name] = (key, mod)
예제 #30
0
class LinkageOverviewDataView(TreeView):
    builder = glade.get_glade_path("linkage_overview_data.glade")
    top = 'tree_view'

    def __init__(self):
        super(LinkageOverviewDataView, self).__init__()