def __init__(self): super(OnScreenKeyboard, self).__init__() self.set_halign(Gtk.Align.CENTER) self.set_valign(Gtk.Align.END) self.props.margin = 30 smallest_width, smallest_height = status.screen.get_smallest_monitor_sizes( ) self.max_width = min(smallest_width, LARGEST_OSK_WIDTH) - 60 self.max_height = min(smallest_height / 3, LARGEST_OSK_HEIGHT) - 60 # print(self.max_width, self.max_height) self._group_stack = None self.base_stack = Gtk.Stack() self.add(self.base_stack) box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, halign=Gtk.Align.CENTER, valign=Gtk.Align.END) activate_button = TransparentButton("input-keyboard-symbolic", Gtk.IconSize.LARGE_TOOLBAR) activate_button.connect("clicked", self.on_activate_button_clicked) box.pack_start(activate_button, False, False, 0) box.show_all() self.base_stack.add_named(box, "disabled") self.base_stack.show_all() if settings.get_osk_a11y_active(): self.build_and_show_keyboard()
def build_layout(self): size = Gtk.IconSize.from_name("audio-button") player_status = self.player.get_playback_status() # Player buttons button_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) button_box.set_homogeneous(True) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.pack_start(vbox, True, True, 2) vbox.pack_start(button_box, True, True, 0) vbox.set_valign(Gtk.Align.CENTER) self.previous_button = TransparentButton("media-skip-backward-symbolic", size) self.previous_button.show() trackers.con_tracker_get().connect(self.previous_button, "clicked", self.on_previous_clicked) button_box.pack_start(self.previous_button, True, True, 2) self.play_pause_button = TransparentButton(self.get_play_pause_icon_name(player_status), size) self.play_pause_button.show() trackers.con_tracker_get().connect(self.play_pause_button, "clicked", self.on_play_pause_clicked) button_box.pack_start(self.play_pause_button, True, True, 2) self.next_button = TransparentButton("media-skip-forward-symbolic", size) self.next_button.show() trackers.con_tracker_get().connect(self.next_button, "clicked", self.on_next_clicked) button_box.pack_start(self.next_button, True, True, 2) self.update_buttons(player_status) status.focusWidgets = status.focusWidgets + [self.previous_button, self.play_pause_button, self.next_button] # Track info vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.pack_start(vbox, True, True, 6) vbox.set_valign(Gtk.Align.CENTER) self.track_name_label = MarqueeLabel("") self.track_name_label.get_style_context().add_class("trackname") vbox.pack_start(self.track_name_label, True, True, 2) self.album_artist_label = MarqueeLabel("") self.album_artist_label.get_style_context().add_class("albumartist") vbox.pack_end(self.album_artist_label, True, True, 2) self.show_all() trackers.con_tracker_get().connect(self.player, "status-changed", self.on_playback_status_changed) trackers.con_tracker_get().connect(self.player, "metadata-changed", self.on_metadata_changed) self.on_playback_status_changed(self.player, player_status) self.on_metadata_changed(self.player) trackers.con_tracker_get().connect(self, "destroy", self.on_widget_destroy)
def __init__(self): super(UnlockDialog, self).__init__() self.set_halign(Gtk.Align.CENTER) self.set_valign(Gtk.Align.CENTER) self.real_name = None self.user_name = None self.box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=10) self.box.get_style_context().add_class("unlockbox") self.add(self.box) self.face_image = FramedImage() self.face_image.set_halign(Gtk.Align.CENTER) self.face_image.get_style_context().add_class("faceimage") self.face_image.set_no_show_all(True) self.box.pack_start(self.face_image, False, False, 10) self.realname_label = Gtk.Label(None) self.realname_label.set_alignment(0, 0.5) self.realname_label.set_halign(Gtk.Align.CENTER) self.box.pack_start(self.realname_label, False, False, 10) self.entry_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) self.box.pack_start(self.entry_box, True, True, 2) self.password_entry = PasswordEntry() trackers.con_tracker_get().connect(self.password_entry, "changed", self.on_password_entry_text_changed) trackers.con_tracker_get().connect(self.password_entry, "button-press-event", self.on_password_entry_button_press) trackers.con_tracker_get().connect(self.password_entry, "activate", self.on_auth_enter_key) self.entry_box.pack_start(self.password_entry, False, False, 15) button_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) self.entry_box.pack_end(button_box, False, False, 0) self.auth_unlock_button = TransparentButton( "screensaver-unlock-symbolic", Gtk.IconSize.LARGE_TOOLBAR) self.auth_unlock_button.set_tooltip_text(_("Unlock")) trackers.con_tracker_get().connect(self.auth_unlock_button, "clicked", self.on_unlock_clicked) button_box.pack_start(self.auth_unlock_button, False, False, 4) self.auth_switch_button = TransparentButton( "screensaver-switch-users-symbolic", Gtk.IconSize.LARGE_TOOLBAR) self.auth_switch_button.set_tooltip_text(_("Switch User")) trackers.con_tracker_get().connect(self.auth_switch_button, "clicked", self.on_switch_user_clicked) button_box.pack_start(self.auth_switch_button, False, False, 4) status.focusWidgets = [ self.password_entry, self.auth_unlock_button, self.auth_switch_button ] vbox_messages = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=2) self.capslock_label = Gtk.Label("") self.capslock_label.get_style_context().add_class("caps-message") self.capslock_label.set_alignment(0.5, 0.5) vbox_messages.pack_start(self.capslock_label, False, False, 2) self.auth_message_label = Gtk.Label("") self.auth_message_label.get_style_context().add_class("auth-message") self.auth_message_label.set_alignment(0.5, 0.5) vbox_messages.pack_start(self.auth_message_label, False, False, 2) self.box.pack_start(vbox_messages, False, False, 0) self.real_name = utils.get_user_display_name() self.user_name = utils.get_user_name() self.update_realname_label() self.account_client = singletons.AccountsServiceClient if self.account_client.is_loaded: self.on_account_client_loaded(self.account_client) else: trackers.con_tracker_get().connect(self.account_client, "account-loaded", self.on_account_client_loaded) self.keymap = Gdk.Keymap.get_default() trackers.con_tracker_get().connect(self.keymap, "state-changed", self.keymap_handler) trackers.con_tracker_get().connect_after(self, "notify::child-revealed", self.on_revealed) self.auth_client = AuthClient() trackers.con_tracker_get().connect(self.auth_client, "auth-success", self.on_authentication_success) trackers.con_tracker_get().connect(self.auth_client, "auth-failure", self.on_authentication_failure) trackers.con_tracker_get().connect(self.auth_client, "auth-cancel", self.on_authentication_cancelled) trackers.con_tracker_get().connect(self.auth_client, "auth-busy", self.on_authentication_busy_changed) trackers.con_tracker_get().connect( self.auth_client, "auth-prompt", self.on_authentication_prompt_changed)
def __init__(self): super(UnlockDialog, self).__init__() self.set_halign(Gtk.Align.CENTER) self.set_valign(Gtk.Align.CENTER) self.set_size_request(350, -1) self.real_name = None self.user_name = None self.box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=10) self.box.get_style_context().add_class("unlockbox") self.add(self.box) self.face_image = FramedImage() self.face_image.set_halign(Gtk.Align.CENTER) self.box.pack_start(self.face_image, False, False, 10) self.realname_label = Gtk.Label(None) self.realname_label.set_alignment(0, 0.5) self.realname_label.set_halign(Gtk.Align.CENTER) self.box.pack_start(self.realname_label, False, False, 10) self.entry_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) self.box.pack_start(self.entry_box, True, True, 2) self.password_entry = PasswordEntry() trackers.con_tracker_get().connect(self.password_entry, "changed", self.on_password_entry_text_changed) trackers.con_tracker_get().connect(self.password_entry, "button-press-event", self.on_password_entry_button_press) trackers.con_tracker_get().connect(self.password_entry, "activate", self.on_auth_enter_key) self.entry_box.pack_start(self.password_entry, True, True, 15) button_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) self.entry_box.pack_end(button_box, False, False, 0) self.auth_unlock_button = TransparentButton( "screensaver-unlock-symbolic", Gtk.IconSize.LARGE_TOOLBAR) self.auth_unlock_button.set_sensitive(False) trackers.con_tracker_get().connect(self.auth_unlock_button, "clicked", self.on_unlock_clicked) button_box.pack_start(self.auth_unlock_button, False, False, 4) self.auth_switch_button = TransparentButton( "screensaver-switch-users-symbolic", Gtk.IconSize.LARGE_TOOLBAR) trackers.con_tracker_get().connect(self.auth_switch_button, "clicked", self.on_switch_user_clicked) button_box.pack_start(self.auth_switch_button, False, False, 4) status.focusWidgets = [ self.password_entry, self.auth_unlock_button, self.auth_switch_button ] vbox_messages = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=2) self.capslock_label = Gtk.Label("") self.capslock_label.get_style_context().add_class("caps-message") self.capslock_label.set_alignment(0.5, 0.5) vbox_messages.pack_start(self.capslock_label, False, False, 2) self.auth_message_label = Gtk.Label("") self.auth_message_label.get_style_context().add_class("auth-message") self.auth_message_label.set_alignment(0.5, 0.5) vbox_messages.pack_start(self.auth_message_label, False, False, 2) self.box.pack_start(vbox_messages, False, False, 0) self.real_name = utils.get_user_display_name() self.user_name = utils.get_user_name() self.update_realname_label() global acc_service if acc_service is not None: self.on_accounts_service_loaded(acc_service, None) else: acc_service = AccountsService.UserManager.get_default().get_user( self.user_name) trackers.con_tracker_get().connect(acc_service, "notify::is-loaded", self.on_accounts_service_loaded) self.keymap = Gdk.Keymap.get_default() trackers.con_tracker_get().connect(self.keymap, "state-changed", self.keymap_handler) trackers.con_tracker_get().connect_after(self, "notify::child-revealed", self.on_revealed)
def build_layout(self): size = Gtk.IconSize.from_name("audio-button") # size = Gtk.IconSize.MENU player_status = self.player.get_playback_status() # Player buttons self.pack_start(Gtk.VSeparator(), True, True, 2) button_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) button_box.set_homogeneous(True) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.pack_start(vbox, True, True, 2) vbox.pack_start(button_box, True, True, 0) vbox.set_valign(Gtk.Align.CENTER) self.previous_button = TransparentButton( "media-skip-backward-symbolic", size) self.previous_button.show() trackers.con_tracker_get().connect(self.previous_button, "clicked", self.on_previous_clicked) button_box.pack_start(self.previous_button, True, True, 2) self.play_pause_button = TransparentButton( self.get_play_pause_icon_name(player_status), size) self.play_pause_button.show() trackers.con_tracker_get().connect(self.play_pause_button, "clicked", self.on_play_pause_clicked) button_box.pack_start(self.play_pause_button, True, True, 2) self.next_button = TransparentButton("media-skip-forward-symbolic", size) self.next_button.show() trackers.con_tracker_get().connect(self.next_button, "clicked", self.on_next_clicked) button_box.pack_start(self.next_button, True, True, 2) self.update_buttons(player_status) status.focusWidgets = status.focusWidgets + [ self.previous_button, self.play_pause_button, self.next_button ] # Position labels and bar self.pack_start(Gtk.VSeparator(), True, True, 2) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.pack_start(vbox, True, True, 4) vbox.set_valign(Gtk.Align.CENTER) position_length_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) vbox.pack_start(position_length_box, True, True, 2) self.current_pos_label = BlinkingLabel("", 400) self.current_pos_label.get_style_context().add_class("positionlabel") position_length_box.pack_start(self.current_pos_label, False, False, 2) self.max_pos_label = BlinkingLabel("", 400) self.max_pos_label.get_style_context().add_class("positionlabel") position_length_box.pack_end(self.max_pos_label, False, False, 2) self.position_bar = PositionBar() vbox.pack_end(self.position_bar, True, True, 2) # Track info self.pack_start(Gtk.VSeparator(), True, True, 2) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.pack_start(vbox, True, True, 6) vbox.set_valign(Gtk.Align.CENTER) self.track_name_label = MarqueeLabel("") self.track_name_label.get_style_context().add_class("trackname") vbox.pack_start(self.track_name_label, True, True, 2) self.album_artist_label = MarqueeLabel("") self.album_artist_label.get_style_context().add_class("albumartist") vbox.pack_end(self.album_artist_label, True, True, 2) self.show_all() trackers.con_tracker_get().connect(self.player, "position-changed", self.on_position_changed) trackers.con_tracker_get().connect(self.player, "status-changed", self.on_playback_status_changed) trackers.con_tracker_get().connect(self.player, "metadata-changed", self.on_metadata_changed) self.on_playback_status_changed(self.player, player_status) self.on_metadata_changed(self.player) trackers.con_tracker_get().connect(self, "destroy", self.on_widget_destroy) self.update_position_timer(player_status)