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")
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()