Example #1
0
    def __init__(self, bus):
        super(Panel, self).__init__(bus)
        self.__bus = bus
        self.__config = self.__bus.get_config()
        self.__focus_ic = None
        self.__setup_pid = None
        self.__prefix = os.getenv("IBUS_PREFIX")
        self.__data_dir = path.join(self.__prefix, "share", "ibus")
        # self.__icons_dir = path.join(self.__data_dir, "icons")
        self.__setup_cmd = path.join(self.__prefix, "bin", "ibus-setup")

        # connect bus signal
        self.__config.connect("value-changed", self.__config_value_changed_cb)
        self.__config.connect("reloaded", self.__config_reloaded_cb)
        # self.__bus.config_add_watch("panel")

        # add icon search path
        # icon_theme = gtk.icon_theme_get_default()
        # icon_theme.prepend_search_path(self.__icons_dir)

        self.__language_bar = LanguageBar()
        self.__language_bar.connect(
            "property-activate",
            lambda widget, prop_name, prop_state: self.property_activate(
                prop_name, prop_state))
        self.__language_bar.connect("get-im-menu", self.__get_im_menu_cb)
        self.__language_bar.connect("show-engine-about",
                                    self.__show_engine_about_cb)
        self.__language_bar.connect("position-changed",
                                    self.__position_changed_cb)
        self.__language_bar.focus_out()
        self.__language_bar.show_all()

        self.__candidate_panel = CandidatePanel()
        self.__candidate_panel.connect("cursor-up",
                                       lambda widget: self.cursor_up())
        self.__candidate_panel.connect("cursor-down",
                                       lambda widget: self.cursor_down())
        self.__candidate_panel.connect("page-up",
                                       lambda widget: self.page_up())
        self.__candidate_panel.connect("page-down",
                                       lambda widget: self.page_down())
        self.__candidate_panel.connect(
            "candidate-clicked",
            lambda widget, index, button, state: self.candidate_clicked(
                index, button, state))

        self.__status_icon = gtk.StatusIcon()
        # gnome-shell checks XClassHint.res_class with ShellTrayIcon.
        # gtk_status_icon_set_name() can set XClassHint.res_class .
        # However gtk_status_icon_new() also calls gtk_window_realize() so
        # gtk_status_icon_set_visible() needs to be called to set WM_CLASS
        # so that gtk_window_realize() is called later again.
        # set_title is for gnome-shell notificationDaemon in bottom right.
        self.__status_icon.set_visible(False)
        # gtk_status_icon_set_name() is not available in pygtk2 2.17
        if hasattr(self.__status_icon, 'set_name'):
            self.__status_icon.set_name('ibus-ui-gtk')
        self.__status_icon.set_title(_("IBus Panel"))
        # Hide icon until bus get the name owner.
        #self.__status_icon.set_visible(True)
        self.__status_icon.connect("popup-menu",
                                   self.__status_icon_popup_menu_cb)
        self.__status_icon.connect("activate", self.__status_icon_activate_cb)
        self.__status_icon.set_from_icon_name(ICON_KEYBOARD)
        self.__status_icon.set_tooltip(_("IBus input method framework"))
        # Hide icon until bus get the name owner.
        #self.__status_icon.set_visible(True)

        self.__config_load_lookup_table_orientation()
        self.__config_load_show()
        self.__config_load_position()
        self.__config_load_custom_font()
        # Hide icon until bus get the name owner.
        #self.__config_load_show_icon_on_systray()
        self.__config_load_show_im_name()
Example #2
0
    def __init__(self, bus):
        super(Panel, self).__init__(bus)
        self.__bus = bus
        self.__config = self.__bus.get_config()
        self.__focus_ic = None
        self.__setup_pid = None
        self.__prefix = os.getenv("IBUS_PREFIX")
        self.__data_dir = path.join(self.__prefix, "share", "ibus")
        # self.__icons_dir = path.join(self.__data_dir, "icons")
        self.__setup_cmd = path.join(self.__prefix, "bin", "ibus-setup")

        # connect bus signal
        self.__config.connect("value-changed", self.__config_value_changed_cb)
        self.__config.connect("reloaded", self.__config_reloaded_cb)
        # self.__bus.config_add_watch("panel")

        # add icon search path
        # icon_theme = gtk.icon_theme_get_default()
        # icon_theme.prepend_search_path(self.__icons_dir)

        self.__language_bar = LanguageBar()
        self.__language_bar.connect(
            "property-activate",
            lambda widget, prop_name, prop_state: self.property_activate(
                prop_name, prop_state))
        self.__language_bar.connect("get-im-menu", self.__get_im_menu_cb)
        self.__language_bar.connect("show-engine-about",
                                    self.__show_engine_about_cb)
        self.__language_bar.connect("position-changed",
                                    self.__position_changed_cb)
        self.__language_bar.focus_out()
        self.__language_bar.show_all()

        self.__candidate_panel = CandidatePanel()
        self.__candidate_panel.connect("cursor-up",
                                       lambda widget: self.cursor_up())
        self.__candidate_panel.connect("cursor-down",
                                       lambda widget: self.cursor_down())
        self.__candidate_panel.connect("page-up",
                                       lambda widget: self.page_up())
        self.__candidate_panel.connect("page-down",
                                       lambda widget: self.page_down())
        self.__candidate_panel.connect(
            "candidate-clicked",
            lambda widget, index, button, state: self.candidate_clicked(
                index, button, state))

        self.__status_icon = gtk.StatusIcon()
        self.__status_icon.connect("popup-menu",
                                   self.__status_icon_popup_menu_cb)
        self.__status_icon.connect("activate", self.__status_icon_activate_cb)
        self.__status_icon.set_from_icon_name(ICON_KEYBOARD)
        self.__status_icon.set_tooltip(_("IBus input method framework"))
        self.__status_icon.set_visible(True)

        self.__config_load_lookup_table_orientation()
        self.__config_load_show()
        self.__config_load_position()
        self.__config_load_custom_font()
        self.__config_load_show_icon_on_systray()
        self.__config_load_show_im_name()