|
Packit Service |
1d8f1c |
# vim:set et sts=4 sw=4:
|
|
Packit Service |
1d8f1c |
# -*- coding: utf-8 -*-
|
|
Packit Service |
1d8f1c |
#
|
|
Packit Service |
1d8f1c |
# ibus - The Input Bus
|
|
Packit Service |
1d8f1c |
#
|
|
Packit Service |
1d8f1c |
# Copyright (c) 2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
|
|
Packit Service |
1d8f1c |
# Copyright (c) 2017 Red Hat, Inc.
|
|
Packit Service |
1d8f1c |
#
|
|
Packit Service |
1d8f1c |
# This program is free software; you can redistribute it and/or
|
|
Packit Service |
1d8f1c |
# modify it under the terms of the GNU General Public License as
|
|
Packit Service |
1d8f1c |
# published by the Free Software Foundation; either version 2 of the
|
|
Packit Service |
1d8f1c |
# License, or (at your option) any later version.
|
|
Packit Service |
1d8f1c |
#
|
|
Packit Service |
1d8f1c |
# This program is distributed in the hope that it will be useful, but
|
|
Packit Service |
1d8f1c |
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
1d8f1c |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit Service |
1d8f1c |
# General Public License for more details.
|
|
Packit Service |
1d8f1c |
#
|
|
Packit Service |
1d8f1c |
# You should have received a copy of the GNU General Public License
|
|
Packit Service |
1d8f1c |
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
# for python2
|
|
Packit Service |
1d8f1c |
from __future__ import print_function
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
__all__ = (
|
|
Packit Service |
1d8f1c |
"EmojiLangButton",
|
|
Packit Service |
1d8f1c |
);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
from gi.repository import Gtk
|
|
Packit Service |
1d8f1c |
from gi.repository import GLib
|
|
Packit Service |
1d8f1c |
from gi.repository import GObject
|
|
Packit Service |
1d8f1c |
from gi.repository import IBus
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
import functools
|
|
Packit Service |
1d8f1c |
import gettext
|
|
Packit Service |
1d8f1c |
import i18n
|
|
Packit Service |
1d8f1c |
import locale
|
|
Packit Service |
1d8f1c |
import os
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
from icon import load_icon
|
|
Packit Service |
1d8f1c |
from i18n import _, N_
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
ROW_TRAVEL_DIRECTION_NONE, \
|
|
Packit Service |
1d8f1c |
ROW_TRAVEL_DIRECTION_FORWARD, \
|
|
Packit Service |
1d8f1c |
ROW_TRAVEL_DIRECTION_BACKWARD = list(range(3))
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
class LanguageString:
|
|
Packit Service |
1d8f1c |
def __init__(self, id, trans = ""):
|
|
Packit Service |
1d8f1c |
self.id = id
|
|
Packit Service |
1d8f1c |
self.trans = trans
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
class EmojiLangChooser(Gtk.Dialog):
|
|
Packit Service |
1d8f1c |
__gtype_name__ = 'EmojiLangChooser'
|
|
Packit Service |
1d8f1c |
__initial_languages = [ IBus.get_language_name('en_US'),
|
|
Packit Service |
1d8f1c |
IBus.get_language_name('en_GB'),
|
|
Packit Service |
1d8f1c |
IBus.get_language_name('de_DE'),
|
|
Packit Service |
1d8f1c |
IBus.get_language_name('fr_FR'),
|
|
Packit Service |
1d8f1c |
IBus.get_language_name('es_ES'),
|
|
Packit Service |
1d8f1c |
IBus.get_language_name('zh_CN'),
|
|
Packit Service |
1d8f1c |
IBus.get_language_name('ja_JP'),
|
|
Packit Service |
1d8f1c |
IBus.get_language_name('ru_RU'),
|
|
Packit Service |
1d8f1c |
IBus.get_language_name('ar_EG') ]
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __init__(self, id = None, transient_for = None):
|
|
Packit Service |
1d8f1c |
super(EmojiLangChooser, self).__init__(
|
|
Packit Service |
1d8f1c |
title = _("Select a language"),
|
|
Packit Service |
1d8f1c |
transient_for = transient_for,
|
|
Packit Service |
1d8f1c |
resizable = True)
|
|
Packit Service |
1d8f1c |
buttons = (_("_Cancel"), Gtk.ResponseType.CANCEL,
|
|
Packit Service |
1d8f1c |
_("_OK"), Gtk.ResponseType.APPLY)
|
|
Packit Service |
1d8f1c |
self.add_buttons(*buttons)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if id == None:
|
|
Packit Service |
1d8f1c |
id = 'en'
|
|
Packit Service |
1d8f1c |
self.__id = id
|
|
Packit Service |
1d8f1c |
self.__engines_for_lang = {}
|
|
Packit Service |
1d8f1c |
self.__untrans_for_lang = {}
|
|
Packit Service |
1d8f1c |
self.__langs = {}
|
|
Packit Service |
1d8f1c |
self.__lang_list = []
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
self.__scrolled = Gtk.ScrolledWindow(
|
|
Packit Service |
1d8f1c |
hscrollbar_policy = Gtk.PolicyType.NEVER,
|
|
Packit Service |
1d8f1c |
vscrollbar_policy = Gtk.PolicyType.NEVER,
|
|
Packit Service |
1d8f1c |
shadow_type = Gtk.ShadowType.IN,
|
|
Packit Service |
1d8f1c |
margin_left = 6,
|
|
Packit Service |
1d8f1c |
margin_right = 6,
|
|
Packit Service |
1d8f1c |
margin_top = 6,
|
|
Packit Service |
1d8f1c |
margin_bottom = 6)
|
|
Packit Service |
1d8f1c |
self.vbox.add(self.__scrolled)
|
|
Packit Service |
1d8f1c |
viewport = Gtk.Viewport()
|
|
Packit Service |
1d8f1c |
self.__scrolled.add(viewport)
|
|
Packit Service |
1d8f1c |
self.__list = Gtk.ListBox(vexpand = True,
|
|
Packit Service |
1d8f1c |
halign = Gtk.Align.FILL,
|
|
Packit Service |
1d8f1c |
valign = Gtk.Align.FILL)
|
|
Packit Service |
1d8f1c |
viewport.add(self.__list)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
self.__adjustment = self.__scrolled.get_vadjustment()
|
|
Packit Service |
1d8f1c |
self.__list.set_adjustment(self.__adjustment)
|
|
Packit Service |
1d8f1c |
self.__list.set_filter_func(self.__list_filter, None)
|
|
Packit Service |
1d8f1c |
self.__list.connect('row-activated', self.__row_activated)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
self.__showing_extra = False
|
|
Packit Service |
1d8f1c |
self.__more_row = self.__more_row_new()
|
|
Packit Service |
1d8f1c |
self.__load_lang_list()
|
|
Packit Service |
1d8f1c |
self.__show_lang_rows()
|
|
Packit Service |
1d8f1c |
self.show_all()
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __load_lang_list(self):
|
|
Packit Service |
1d8f1c |
dictdir = os.path.dirname(__file__) + '/../dicts'
|
|
Packit Service |
1d8f1c |
for filename in os.listdir(dictdir):
|
|
Packit Service |
1d8f1c |
suffix = '.dict'
|
|
Packit Service |
1d8f1c |
if not filename.endswith(suffix):
|
|
Packit Service |
1d8f1c |
continue
|
|
Packit Service |
1d8f1c |
lang_id = filename[0:len(filename) - len(suffix)]
|
|
Packit Service |
1d8f1c |
prefix = 'emoji-'
|
|
Packit Service |
1d8f1c |
if not lang_id.startswith(prefix):
|
|
Packit Service |
1d8f1c |
continue
|
|
Packit Service |
1d8f1c |
lang_id = lang_id[len(prefix):]
|
|
Packit Service |
1d8f1c |
lang = LanguageString(lang_id, IBus.get_language_name(lang_id))
|
|
Packit Service |
1d8f1c |
self.__lang_list.append(lang)
|
|
Packit Service |
1d8f1c |
if len(self.__lang_list) == 0:
|
|
Packit Service |
1d8f1c |
print("Not found dicts in %s" % dictdir, file=sys.stderr)
|
|
Packit Service |
1d8f1c |
lang = LanguageString('en', IBus.get_language_name('en'))
|
|
Packit Service |
1d8f1c |
self.__lang_list.append(lang)
|
|
Packit Service |
1d8f1c |
return
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def cmp_lang(a, b):
|
|
Packit Service |
1d8f1c |
label_a = a.trans + a.id
|
|
Packit Service |
1d8f1c |
label_b = b.trans + b.id
|
|
Packit Service |
1d8f1c |
return (label_a > label_b) - (label_a < label_b)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
self.__lang_list.sort(key = functools.cmp_to_key(cmp_lang))
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
loc = locale.getlocale()[0]
|
|
Packit Service |
1d8f1c |
# None on C locale
|
|
Packit Service |
1d8f1c |
if loc == None or loc == 'C':
|
|
Packit Service |
1d8f1c |
loc = 'en_US'
|
|
Packit Service |
1d8f1c |
index = 0
|
|
Packit Service |
1d8f1c |
for lang in self.__lang_list:
|
|
Packit Service |
1d8f1c |
# move current language to the first place
|
|
Packit Service |
1d8f1c |
if lang.trans == IBus.get_language_name(loc):
|
|
Packit Service |
1d8f1c |
self.__lang_list.remove(lang)
|
|
Packit Service |
1d8f1c |
self.__lang_list.insert(index, lang)
|
|
Packit Service |
1d8f1c |
index += 1
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
for lang in self.__lang_list:
|
|
Packit Service |
1d8f1c |
# move English to the second place
|
|
Packit Service |
1d8f1c |
if lang.trans == IBus.get_language_name('en'):
|
|
Packit Service |
1d8f1c |
self.__lang_list.remove(lang)
|
|
Packit Service |
1d8f1c |
self.__lang_list.insert(index, lang)
|
|
Packit Service |
1d8f1c |
index += 1
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __list_filter(self, row, data):
|
|
Packit Service |
1d8f1c |
if row.id == self.__id:
|
|
Packit Service |
1d8f1c |
self.__list.select_row(row)
|
|
Packit Service |
1d8f1c |
if row == self.__more_row:
|
|
Packit Service |
1d8f1c |
return not self.__showing_extra
|
|
Packit Service |
1d8f1c |
if not self.__showing_extra and row.is_extra:
|
|
Packit Service |
1d8f1c |
return False
|
|
Packit Service |
1d8f1c |
return True
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __row_activated(self, box, row):
|
|
Packit Service |
1d8f1c |
if row == self.__more_row:
|
|
Packit Service |
1d8f1c |
self.__show_more()
|
|
Packit Service |
1d8f1c |
return
|
|
Packit Service |
1d8f1c |
self.__id = row.id
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __padded_label_new(self, text, icon, alignment, direction):
|
|
Packit Service |
1d8f1c |
hbox = Gtk.Box(orientation = Gtk.Orientation.HORIZONTAL)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if direction == ROW_TRAVEL_DIRECTION_BACKWARD:
|
|
Packit Service |
1d8f1c |
rtl = (Gtk.Widget.get_default_direction() == \
|
|
Packit Service |
1d8f1c |
Gtk.TextDirection.RTL)
|
|
Packit Service |
1d8f1c |
if rtl:
|
|
Packit Service |
1d8f1c |
arrow = Gtk.Image.new_from_icon_name(
|
|
Packit Service |
1d8f1c |
'go-previous-rtl-symbolic', Gtk.IconSize.MENU)
|
|
Packit Service |
1d8f1c |
else:
|
|
Packit Service |
1d8f1c |
arrow = Gtk.Image.new_from_icon_name(
|
|
Packit Service |
1d8f1c |
'go-previous-symbolic', Gtk.IconSize.MENU)
|
|
Packit Service |
1d8f1c |
hbox.pack_start(arrow, False, True, 0)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if icon != None:
|
|
Packit Service |
1d8f1c |
pixbuf = load_icon(icon, Gtk.IconSize.LARGE_TOOLBAR)
|
|
Packit Service |
1d8f1c |
image = Gtk.Image(pixbuf = pixbuf)
|
|
Packit Service |
1d8f1c |
hbox.pack_start(image, False, True, 0)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
label = Gtk.Label(label = text)
|
|
Packit Service |
1d8f1c |
label.set_halign(alignment)
|
|
Packit Service |
1d8f1c |
label.set_valign(Gtk.Align.CENTER)
|
|
Packit Service |
1d8f1c |
label.set_margin_left(20)
|
|
Packit Service |
1d8f1c |
label.set_margin_right(20)
|
|
Packit Service |
1d8f1c |
label.set_margin_top(6)
|
|
Packit Service |
1d8f1c |
label.set_margin_bottom(6)
|
|
Packit Service |
1d8f1c |
hbox.pack_start(label, True, True, 0)
|
|
Packit Service |
1d8f1c |
return hbox
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __list_box_row_new(self, lang):
|
|
Packit Service |
1d8f1c |
row = Gtk.ListBoxRow()
|
|
Packit Service |
1d8f1c |
row.trans = lang.trans
|
|
Packit Service |
1d8f1c |
row.id = lang.id
|
|
Packit Service |
1d8f1c |
row.is_extra = False
|
|
Packit Service |
1d8f1c |
return row
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __lang_row_new(self, lang, prev_lang):
|
|
Packit Service |
1d8f1c |
row = self.__list_box_row_new(lang)
|
|
Packit Service |
1d8f1c |
label = lang.trans
|
|
Packit Service |
1d8f1c |
if lang.id == self.__id:
|
|
Packit Service |
1d8f1c |
row.is_extra = False
|
|
Packit Service |
1d8f1c |
elif prev_lang != None and label == prev_lang.trans:
|
|
Packit Service |
1d8f1c |
label = "%s (%s)" % (lang.trans, lang.id)
|
|
Packit Service |
1d8f1c |
row.is_extra = True
|
|
Packit Service |
1d8f1c |
elif not self.__showing_extra and \
|
|
Packit Service |
1d8f1c |
lang.trans not in self.__initial_languages:
|
|
Packit Service |
1d8f1c |
row.is_extra = True
|
|
Packit Service |
1d8f1c |
widget = self.__padded_label_new(label,
|
|
Packit Service |
1d8f1c |
None,
|
|
Packit Service |
1d8f1c |
Gtk.Align.CENTER,
|
|
Packit Service |
1d8f1c |
ROW_TRAVEL_DIRECTION_NONE)
|
|
Packit Service |
1d8f1c |
row.add(widget)
|
|
Packit Service |
1d8f1c |
return row
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __more_row_new(self):
|
|
Packit Service |
1d8f1c |
row = Gtk.ListBoxRow()
|
|
Packit Service |
1d8f1c |
row.id = None
|
|
Packit Service |
1d8f1c |
hbox = Gtk.Box(orientation = Gtk.Orientation.HORIZONTAL)
|
|
Packit Service |
1d8f1c |
row.add(hbox)
|
|
Packit Service |
1d8f1c |
row.set_tooltip_text(_("Moreā¦"))
|
|
Packit Service |
1d8f1c |
arrow = Gtk.Image.new_from_icon_name('view-more-symbolic',
|
|
Packit Service |
1d8f1c |
Gtk.IconSize.MENU)
|
|
Packit Service |
1d8f1c |
arrow.set_margin_left(20)
|
|
Packit Service |
1d8f1c |
arrow.set_margin_right(20)
|
|
Packit Service |
1d8f1c |
arrow.set_margin_top(6)
|
|
Packit Service |
1d8f1c |
arrow.set_margin_bottom(6)
|
|
Packit Service |
1d8f1c |
arrow.set_halign(Gtk.Align.CENTER)
|
|
Packit Service |
1d8f1c |
arrow.set_valign(Gtk.Align.CENTER)
|
|
Packit Service |
1d8f1c |
hbox.pack_start(arrow, True, True, 0)
|
|
Packit Service |
1d8f1c |
return row
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __set_fixed_size(self):
|
|
Packit Service |
1d8f1c |
if self.__scrolled.get_policy()[0] == Gtk.PolicyType.AUTOMATIC:
|
|
Packit Service |
1d8f1c |
return
|
|
Packit Service |
1d8f1c |
(width, height) = self.get_size()
|
|
Packit Service |
1d8f1c |
self.set_size_request(width, height)
|
|
Packit Service |
1d8f1c |
self.__scrolled.set_policy(Gtk.PolicyType.AUTOMATIC,
|
|
Packit Service |
1d8f1c |
Gtk.PolicyType.AUTOMATIC)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __remove_all_children(self):
|
|
Packit Service |
1d8f1c |
for l in self.__list.get_children():
|
|
Packit Service |
1d8f1c |
self.__list.remove(l)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __show_lang_rows(self):
|
|
Packit Service |
1d8f1c |
self.__remove_all_children()
|
|
Packit Service |
1d8f1c |
prev_lang = None
|
|
Packit Service |
1d8f1c |
for lang in self.__lang_list:
|
|
Packit Service |
1d8f1c |
row = self.__lang_row_new(lang, prev_lang)
|
|
Packit Service |
1d8f1c |
self.__list.add(row)
|
|
Packit Service |
1d8f1c |
prev_lang = lang
|
|
Packit Service |
1d8f1c |
self.__list.add(self.__more_row)
|
|
Packit Service |
1d8f1c |
self.__list.show_all()
|
|
Packit Service |
1d8f1c |
self.__adjustment.set_value(self.__adjustment.get_lower())
|
|
Packit Service |
1d8f1c |
self.__list.invalidate_filter()
|
|
Packit Service |
1d8f1c |
self.__list.set_selection_mode(Gtk.SelectionMode.SINGLE)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __show_more(self):
|
|
Packit Service |
1d8f1c |
self.__set_fixed_size()
|
|
Packit Service |
1d8f1c |
self.__showing_extra = True
|
|
Packit Service |
1d8f1c |
self.__list.invalidate_filter()
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def get_selected_lang(self):
|
|
Packit Service |
1d8f1c |
return self.__id
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
class EmojiLangButton(Gtk.Button):
|
|
Packit Service |
1d8f1c |
__gtype_name__ = 'EmojiLangButton'
|
|
Packit Service |
1d8f1c |
__gproperties__ = {
|
|
Packit Service |
1d8f1c |
'lang' : (
|
|
Packit Service |
1d8f1c |
str,
|
|
Packit Service |
1d8f1c |
'lang',
|
|
Packit Service |
1d8f1c |
'lang for emojo-*.dict',
|
|
Packit Service |
1d8f1c |
'en',
|
|
Packit Service |
1d8f1c |
GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE)
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def __init__(self):
|
|
Packit Service |
1d8f1c |
super(EmojiLangButton, self).__init__()
|
|
Packit Service |
1d8f1c |
self.__lang = ''
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def do_get_property(self, prop):
|
|
Packit Service |
1d8f1c |
if prop.name == 'lang':
|
|
Packit Service |
1d8f1c |
return self.__lang
|
|
Packit Service |
1d8f1c |
else:
|
|
Packit Service |
1d8f1c |
raise AttributeError('unknown property %s' % prop.name)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def do_set_property(self, prop, value):
|
|
Packit Service |
1d8f1c |
if prop.name == 'lang':
|
|
Packit Service |
1d8f1c |
self.set_lang(value)
|
|
Packit Service |
1d8f1c |
else:
|
|
Packit Service |
1d8f1c |
raise AttributeError('unknown property %s' % prop.name)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def do_clicked(self):
|
|
Packit Service |
1d8f1c |
dialog = EmojiLangChooser(id = self.__lang,
|
|
Packit Service |
1d8f1c |
transient_for = self.get_toplevel())
|
|
Packit Service |
1d8f1c |
id = dialog.run()
|
|
Packit Service |
1d8f1c |
if id != Gtk.ResponseType.APPLY:
|
|
Packit Service |
1d8f1c |
dialog.destroy()
|
|
Packit Service |
1d8f1c |
return
|
|
Packit Service |
1d8f1c |
self.set_lang(dialog.get_selected_lang())
|
|
Packit Service |
1d8f1c |
dialog.destroy()
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def set_lang(self, lang):
|
|
Packit Service |
1d8f1c |
self.__lang = lang
|
|
Packit Service |
1d8f1c |
self.notify("lang")
|
|
Packit Service |
1d8f1c |
self.set_label(IBus.get_language_name(lang))
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
def get_lang(self, lang):
|
|
Packit Service |
1d8f1c |
return self.__lang
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
GObject.type_register(EmojiLangButton)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if __name__ == "__main__":
|
|
Packit Service |
1d8f1c |
dialog = EmojiLangChooser()
|
|
Packit Service |
1d8f1c |
id = dialog.run()
|
|
Packit Service |
1d8f1c |
if id != Gtk.ResponseType.APPLY:
|
|
Packit Service |
1d8f1c |
dialog.destroy()
|
|
Packit Service |
1d8f1c |
import sys
|
|
Packit Service |
1d8f1c |
sys.exit(0)
|
|
Packit Service |
1d8f1c |
print("Selected language:", dialog.get_selected_lang())
|