summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@src.gnome.org>2015-01-17 17:02:22 +0900
committerDaiki Ueno <dueno@src.gnome.org>2015-01-18 02:58:43 +0900
commitea59738334de0afcc5a03228614a4be4d9423f35 (patch)
treeea18bbd841c2b828f87db2948c5f4c0efc9bee62
parentad7ce6ca7a6dd7170f83130c75d0adf84c5f67f1 (diff)
downloadcaribou-ea59738334de0afcc5a03228614a4be4d9423f35.tar.gz
antler: Add --level option to antler-keyboard
-rw-r--r--caribou/antler/keyboard_view.py16
-rw-r--r--caribou/antler/main.py5
2 files changed, 14 insertions, 7 deletions
diff --git a/caribou/antler/keyboard_view.py b/caribou/antler/keyboard_view.py
index dc7ed72..151782c 100644
--- a/caribou/antler/keyboard_view.py
+++ b/caribou/antler/keyboard_view.py
@@ -215,7 +215,8 @@ class AntlerLayout(Gtk.Box):
self.add_row([c.get_children() for c in row.get_columns()], row_num)
class AntlerKeyboardView(Gtk.Notebook):
- def __init__(self, keyboard_type='touch', keyboard_file=None):
+ def __init__(self, keyboard_type='touch', keyboard_file=None,
+ keyboard_level=None):
GObject.GObject.__init__(self)
settings = AntlerSettings()
self.set_show_tabs(False)
@@ -244,9 +245,9 @@ class AntlerKeyboardView(Gtk.Notebook):
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION + 1)
self.scanner = Caribou.Scanner()
- self.set_keyboard_model(keyboard_type, keyboard_file)
+ self.set_keyboard_model(keyboard_type, keyboard_file, keyboard_level)
- def set_keyboard_model(self, keyboard_type, keyboard_file):
+ def set_keyboard_model(self, keyboard_type, keyboard_file, keyboard_level):
self.keyboard_model = Caribou.KeyboardModel(keyboard_type=keyboard_type,
keyboard_file=keyboard_file)
@@ -266,7 +267,7 @@ class AntlerKeyboardView(Gtk.Notebook):
layout.show()
self.layers[gname][lname] = self.append_page(layout, None)
- self._set_to_active_layer()
+ self._set_to_active_layer(keyboard_level=keyboard_level)
def _on_key_clicked(self, model, key):
if key.props.name == "Caribou_Prefs":
@@ -302,10 +303,13 @@ class AntlerKeyboardView(Gtk.Notebook):
def _on_group_changed(self, kb, prop):
self._set_to_active_layer()
- def _set_to_active_layer(self):
+ def _set_to_active_layer(self, keyboard_level=None):
active_group_name = self.keyboard_model.props.active_group
active_group = self.keyboard_model.get_group(active_group_name)
- active_level_name = active_group.props.active_level
+ if keyboard_level:
+ active_level_name = keyboard_level
+ else:
+ active_level_name = active_group.props.active_level
self.set_current_page(self.layers[active_group_name][active_level_name])
diff --git a/caribou/antler/main.py b/caribou/antler/main.py
index f79fd92..cf13bad 100644
--- a/caribou/antler/main.py
+++ b/caribou/antler/main.py
@@ -40,7 +40,8 @@ class AntlerKeyboardPreview(Gtk.Window, AntlerKeyboardCommand):
sys.stderr.write("Specify keyboard file with -f option.\n")
sys.exit(1)
self.window = Gtk.Window()
- self.window.add(AntlerKeyboardView(keyboard_file=args.file))
+ self.window.add(AntlerKeyboardView(keyboard_file=args.file,
+ keyboard_level=args.level))
def run(self):
self.window.show_all()
@@ -58,6 +59,8 @@ if __name__ == "__main__":
help='command (service or preview, default: service)')
parser.add_argument('-f', '--file', type=str,
help='keyboard file')
+ parser.add_argument('-l', '--level', type=str,
+ help='shift level')
args = parser.parse_args()
command = globals().get('AntlerKeyboard%s' % args.command.capitalize())