Beispiel #1
0
    def __init__(self,
                 keyboard_type='touch',
                 keyboard_file=None,
                 keyboard_level=None):
        GObject.GObject.__init__(self)
        settings = AntlerSettings()
        self.set_show_tabs(False)

        ctx = self.get_style_context()
        ctx.add_class("antler-keyboard-window")

        use_system = settings.use_system
        use_system.connect("value-changed", self._on_use_system_theme_changed)

        self._app_css_provider = Gtk.CssProvider()
        self._load_style(self._app_css_provider, "style.css",
                         [GLib.get_user_data_dir()] +
                         list(GLib.get_system_data_dirs()))

        if not use_system.value:
            Gtk.StyleContext.add_provider_for_screen(
                Gdk.Screen.get_default(), self._app_css_provider,
                Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

        self._user_css_provider = Gtk.CssProvider()
        self._load_style(self._user_css_provider, "user-style.css",
                         [GLib.get_user_data_dir()])
        Gtk.StyleContext.add_provider_for_screen(
            Gdk.Screen.get_default(), self._user_css_provider,
            Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION + 1)

        self.scanner = Caribou.Scanner()
        self.set_keyboard_model(keyboard_type, keyboard_file, keyboard_level)
    def build_and_show_keyboard(self):
        if not self._group_stack:
            self._keyboard = Caribou.KeyboardModel(
                keyboard_type=settings.get_osk_type())

            self._group_stack = Gtk.Stack(visible=True)

            self._groups = {}

            self._add_keys()
            self._group_stack.show_all()

            self.base_stack.add_named(self._group_stack, "enabled")

        self.base_stack.set_visible_child_name("enabled")
Beispiel #3
0
    def set_keyboard_model(self, keyboard_type):
        self.keyboard_model = Caribou.KeyboardModel(keyboard_type=keyboard_type)

        self.scanner.set_keyboard(self.keyboard_model)
        self.keyboard_model.connect("notify::active-group", self._on_group_changed)
        self.keyboard_model.connect("key-clicked", self._on_key_clicked)

        self.layers = {}

        for gname in self.keyboard_model.get_groups():
            group = self.keyboard_model.get_group(gname)
            self.layers[gname] = {}
            group.connect("notify::active-level", self._on_level_changed)
            for lname in group.get_levels():
                level = group.get_level(lname)
                layout = AntlerLayout(level)
                layout.show()
                self.layers[gname][lname] = self.append_page(layout, None)

        self._set_to_active_layer()