Philipp Hörist pushed to branch master at gajim / gajim
Commits: 8eef1407 by lovetox at 2021-12-18T14:54:55+01:00 Add helper script for ui file type generation
- - - - - d2fc31f1 by lovetox at 2021-12-18T14:54:55+01:00 Builder: Add type annotations
- - - - - 709af815 by lovetox at 2021-12-18T14:54:55+01:00 SearchView: Use get_builder()
- - - - -
4 changed files:
- gajim/gtk/builder.py - gajim/gtk/builder.pyi - gajim/gtk/search_view.py - + scripts/dev/generate_ui_types.py
Changes:
===================================== gajim/gtk/builder.py ===================================== @@ -86,5 +86,5 @@ def get(self, name: str) -> Any: return self._builder.get_object(name)
-class SearchViewBuilder(Builder): - filename = 'search_view.ui' +def get_builder(file_name, widgets=None): + return Builder(file_name, widgets)
===================================== gajim/gtk/builder.pyi ===================================== @@ -1,27 +1,175 @@
-from typing import Any from typing import Literal from typing import overload
+from gi.repository import Atk from gi.repository import Gtk - +from gi.repository import GtkSource +from gi.repository import GObject
class Builder: ...
+class CertificateDialogBuilder(Builder): + + @overload + def get(self, name: Literal['certificate_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['label_cert_for_account']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['data_it_common_name']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['data_it_organization']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['data_it_organizational_unit']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['data_it_serial_number']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['data_ib_common_name']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['data_ib_organization']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['data_ib_organizational_unit']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['data_issued_on']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['data_expires_on']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['data_sha1']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['data_sha256']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['copy_cert_info_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['image1']) -> Gtk.Image: ... + def get(self, name: str) -> GObject.Object: ...
-class SearchViewBuilder(Builder):
- filename: str = ... +class ZeroconfInformationWindowBuilder(Builder):
@overload - def get(self, name: Literal['search_entry']) -> Gtk.Entry: ... + def get(self, name: Literal['zeroconf_information_window']) -> Gtk.Window: ... @overload - def get(self, name: Literal['date_hint']) -> Gtk.Label: ... + def get(self, name: Literal['vbox1']) -> Gtk.Box: ... @overload - def get(self, name: Literal['search_checkbutton']) -> Gtk.CheckButton: ... + def get(self, name: Literal['nickname_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['information_notebook']) -> Gtk.Notebook: ... + @overload + def get(self, name: Literal['hbox3']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['grid1']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['label51']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['label53']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['label54']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['log_history_checkbutton']) -> Gtk.CheckButton: ... + @overload + def get(self, name: Literal['local_jid_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['resource_prio_label_eventbox']) -> Gtk.EventBox: ... + @overload + def get(self, name: Literal['resource_prio_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['status_label_eventbox']) -> Gtk.EventBox: ... + @overload + def get(self, name: Literal['status_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['vbox2']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['PHOTO_eventbox']) -> Gtk.EventBox: ... + @overload + def get(self, name: Literal['PHOTO_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['label3']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['grid2']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['label59']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['label58']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['label55']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['label56']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['first_name_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['last_name_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['jabber_id_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['email_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['label57']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['hbuttonbox1']) -> Gtk.ButtonBox: ... + @overload + def get(self, name: Literal['close_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class ChatListRowBuilder(Builder): + + @overload + def get(self, name: Literal['eventbox']) -> Gtk.EventBox: ... + @overload + def get(self, name: Literal['overlay']) -> Gtk.Overlay: ... + @overload + def get(self, name: Literal['account_identifier']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['avatar_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['group_chat_indicator']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['name_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['chatstate_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['timestamp_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['nick_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['message_icon']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['message_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['unread_label']) -> Gtk.Label: ... @overload - def get(self, name: Literal['header_box']) -> Gtk.ListBox: ... + def get(self, name: Literal['revealer']) -> Gtk.Revealer: ... + @overload + def get(self, name: Literal['close_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class SingleMessageWindowBuilder(Builder): + + @overload + def get(self, name: Literal['box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['message_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['recipients_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['subject_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['message_scrolledwindow']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['message_textview']) -> Gtk.TextView: ... + @overload + def get(self, name: Literal['count_chars_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['send_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class SearchViewBuilder(Builder): + + @overload + def get(self, name: Literal['header_box']) -> Gtk.Box: ... @overload def get(self, name: Literal['header_name_label']) -> Gtk.Label: ... @overload @@ -29,14 +177,1849 @@ class SearchViewBuilder(Builder): @overload def get(self, name: Literal['result_row_grid']) -> Gtk.Grid: ... @overload - def get(self, name: Literal['row_name_label']) -> Gtk.Label: ... - @overload def get(self, name: Literal['row_avatar']) -> Gtk.Image: ... @overload def get(self, name: Literal['row_time_label']) -> Gtk.Label: ... @overload - def get(self, name: Literal['results_listbox']) -> Gtk.ListBox: ... + def get(self, name: Literal['row_name_label']) -> Gtk.Label: ... @overload def get(self, name: Literal['search_box']) -> Gtk.Box: ... - def get(self, name: str) -> Any: - pass + @overload + def get(self, name: Literal['search_entry']) -> Gtk.SearchEntry: ... + @overload + def get(self, name: Literal['search_checkbutton']) -> Gtk.CheckButton: ... + @overload + def get(self, name: Literal['date_hint']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['results_listbox']) -> Gtk.ListBox: ... + @overload + def get(self, name: Literal['placeholder']) -> Gtk.Box: ... + def get(self, name: str) -> GObject.Object: ... + + +class AssistantBuilder(Builder): + + @overload + def get(self, name: Literal['main_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['content_area']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['action_area']) -> Gtk.Box: ... + def get(self, name: str) -> GObject.Object: ... + + +class BlockingListBuilder(Builder): + + @overload + def get(self, name: Literal['blocking_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['blocking_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['overlay']) -> Gtk.Overlay: ... + @overload + def get(self, name: Literal['block_view']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['add_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['remove_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['save_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class AccountPageBuilder(Builder): + + @overload + def get(self, name: Literal['paned']) -> Gtk.Paned: ... + @overload + def get(self, name: Literal['roster_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['roster_menu_button']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['roster_search_entry']) -> Gtk.SearchEntry: ... + @overload + def get(self, name: Literal['account_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['avatar_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['account_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['account_action_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['account_settings']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['status_message_box']) -> Gtk.Box: ... + def get(self, name: str) -> GObject.Object: ... + + +class GroupchatNickChooserBuilder(Builder): + + @overload + def get(self, name: Literal['button_content']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['popover']) -> Gtk.Popover: ... + @overload + def get(self, name: Literal['entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['apply_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class GroupsPostWindowBuilder(Builder): + + @overload + def get(self, name: Literal['textbuffer1']) -> Gtk.TextBuffer: ... + @overload + def get(self, name: Literal['groups_post_window']) -> Gtk.Window: ... + @overload + def get(self, name: Literal['from_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['subject_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['contents_textview']) -> Gtk.TextView: ... + @overload + def get(self, name: Literal['send_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class MamPreferencesBuilder(Builder): + + @overload + def get(self, name: Literal['default_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['preferences_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['mam_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['default_combo']) -> Gtk.ComboBox: ... + @overload + def get(self, name: Literal['overlay']) -> Gtk.Overlay: ... + @overload + def get(self, name: Literal['pref_view']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['add']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['remove']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['save_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class EmojiChooserBuilder(Builder): + + @overload + def get(self, name: Literal['box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['search']) -> Gtk.SearchEntry: ... + @overload + def get(self, name: Literal['stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['section_box']) -> Gtk.Box: ... + def get(self, name: str) -> GObject.Object: ... + + +class AdhocMucBuilder(Builder): + + @overload + def get(self, name: Literal['guests_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['server_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['adhoc_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['description_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['guests_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['server_combobox']) -> Gtk.ComboBox: ... + @overload + def get(self, name: Literal['server_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['invite_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class ManagePepServicesWindowBuilder(Builder): + + @overload + def get(self, name: Literal['manage_pep_services']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['services_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['treeview-selection1']) -> Gtk.TreeSelection: ... + @overload + def get(self, name: Literal['configure_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['image1']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['delete_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class GroupchatRosterBuilder(Builder): + + @overload + def get(self, name: Literal['participant_store']) -> Gtk.TreeStore: ... + @overload + def get(self, name: Literal['roster_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['contact_column']) -> Gtk.TreeViewColumn: ... + @overload + def get(self, name: Literal['avatar_renderer']) -> Gtk.CellRendererPixbuf: ... + @overload + def get(self, name: Literal['text_renderer']) -> Gtk.CellRendererText: ... + @overload + def get(self, name: Literal['event_column']) -> Gtk.TreeViewColumn: ... + @overload + def get(self, name: Literal['icon']) -> Gtk.CellRendererPixbuf: ... + @overload + def get(self, name: Literal['expander']) -> Gtk.TreeViewColumn: ... + def get(self, name: str) -> GObject.Object: ... + + +class ServiceDiscoveryWindowBuilder(Builder): + + @overload + def get(self, name: Literal['liststore1']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['service_discovery_window']) -> Gtk.Window: ... + @overload + def get(self, name: Literal['service_discovery']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['banner_agent_icon']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['banner_agent_header']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['banner_agent_subheader']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['address_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['address_comboboxtext']) -> Gtk.ComboBoxText: ... + @overload + def get(self, name: Literal['address_comboboxtext_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['browse_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['services_progressbar']) -> Gtk.ProgressBar: ... + @overload + def get(self, name: Literal['services_scrollwin']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['services_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['treeview-selection1']) -> Gtk.TreeSelection: ... + @overload + def get(self, name: Literal['action_buttonbox']) -> Gtk.Box: ... + def get(self, name: str) -> GObject.Object: ... + + +class MainBuilder(Builder): + + @overload + def get(self, name: Literal['main_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['left_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['account_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['workspace_scrolled']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['app_box']) -> Gtk.Box: ... + def get(self, name: str) -> GObject.Object: ... + + +class PreviewContextMenuBuilder(Builder): + + @overload + def get(self, name: Literal['context_menu']) -> Gtk.Menu: ... + @overload + def get(self, name: Literal['download']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['open']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['save_as']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['open_folder']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['encryption_separator']) -> Gtk.SeparatorMenuItem: ... + @overload + def get(self, name: Literal['copy_link_location']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['open_link_in_browser']) -> Gtk.MenuItem: ... + def get(self, name: str) -> GObject.Object: ... + + +class VideoPreviewBuilder(Builder): + + @overload + def get(self, name: Literal['video_preview_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['video_source_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['video_preview_placeholder']) -> Gtk.Box: ... + def get(self, name: str) -> GObject.Object: ... + + +class ProfileBuilder(Builder): + + @overload + def get(self, name: Literal['privacy_popover']) -> Gtk.Popover: ... + @overload + def get(self, name: Literal['avatar_nick_access']) -> Gtk.Switch: ... + @overload + def get(self, name: Literal['vcard_access']) -> Gtk.Switch: ... + @overload + def get(self, name: Literal['avatar_nick_access_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['vcard_access_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['profile_stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['spinner']) -> Gtk.Spinner: ... + @overload + def get(self, name: Literal['scrolled']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['profile_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['avatar_overlay']) -> Gtk.Overlay: ... + @overload + def get(self, name: Literal['avatar_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['remove_avatar_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['edit_avatar_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['nickname_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['cancel_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['add_entry_button']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['privacy_button']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['save_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['edit_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['avatar_selector_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['avatar_update_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class CallWidgetBuilder(Builder): + + @overload + def get(self, name: Literal['adjustment1']) -> Gtk.Adjustment: ... + @overload + def get(self, name: Literal['adjustment2']) -> Gtk.Adjustment: ... + @overload + def get(self, name: Literal['dtmf_popover']) -> Gtk.Popover: ... + @overload + def get(self, name: Literal['grid1']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['1_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label1']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['2_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label2']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['3_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label3']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['4_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label4']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['5_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label5']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['6_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label6']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['7_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label7']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['8_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label8']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['9_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label9']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['*_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label10']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['0_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label11']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['#_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['label12']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['av_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['video_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['outgoing_viewport']) -> Gtk.Viewport: ... + @overload + def get(self, name: Literal['incoming_viewport']) -> Gtk.Viewport: ... + @overload + def get(self, name: Literal['av_start_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['av_start_mic_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['av_start_mic_cam_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['jingle_audio_state']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['jingle_connection_state']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['jingle_connection_spinner']) -> Gtk.Spinner: ... + @overload + def get(self, name: Literal['answer_video_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['audio_buttons_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['mic_hscale']) -> Gtk.VolumeButton: ... + @overload + def get(self, name: Literal['volumebutton-plus_button2']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['volumebutton-minus_button2']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['sound_hscale']) -> Gtk.VolumeButton: ... + @overload + def get(self, name: Literal['volumebutton-plus_button1']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['volumebutton-minus_button1']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['dtmf_button']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['av_cam_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['av_cam_image']) -> Gtk.Image: ... + def get(self, name: str) -> GObject.Object: ... + + +class WorkspaceDialogBuilder(Builder): + + @overload + def get(self, name: Literal['box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['preview']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['remove_workspace_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['image_switch']) -> Gtk.Switch: ... + @overload + def get(self, name: Literal['style_stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['color_chooser']) -> Gtk.ColorButton: ... + @overload + def get(self, name: Literal['image_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['save_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class FiletransfersBuilder(Builder): + + @overload + def get(self, name: Literal['accelgroup1']) -> Gtk.AccelGroup: ... + @overload + def get(self, name: Literal['file_transfers_menu']) -> Gtk.Menu: ... + @overload + def get(self, name: Literal['remove_menuitem']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['pause_resume_menuitem']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['cancel_menuitem']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['open_folder_menuitem']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['file_transfers_window']) -> Gtk.Window: ... + @overload + def get(self, name: Literal['notify_ft_complete']) -> Gtk.Switch: ... + @overload + def get(self, name: Literal['transfers_scrolledwindow']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['transfers_list']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['transfers_list-atkobject']) -> Atk.Object: ... + @overload + def get(self, name: Literal['cleanup_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['pause_resume_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['cancel_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['file_transfers_window-atkobject']) -> Atk.Object: ... + def get(self, name: str) -> GObject.Object: ... + + +class GroupchatInviteBuilder(Builder): + + @overload + def get(self, name: Literal['account_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['contacts_placeholder']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['invite_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['invitees']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['invitees_listbox']) -> Gtk.ListBox: ... + @overload + def get(self, name: Literal['search_entry']) -> Gtk.SearchEntry: ... + @overload + def get(self, name: Literal['scrolledwindow']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['contacts_listbox']) -> Gtk.ListBox: ... + @overload + def get(self, name: Literal['invitees_placeholder']) -> Gtk.Box: ... + def get(self, name: str) -> GObject.Object: ... + + +class PreviewBuilder(Builder): + + @overload + def get(self, name: Literal['preview_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['icon_event_box']) -> Gtk.EventBox: ... + @overload + def get(self, name: Literal['icon_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['right_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['button_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['download_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['save_as_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['open_folder_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['file_name']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['file_size']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['image_event_box']) -> Gtk.EventBox: ... + @overload + def get(self, name: Literal['image_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class ExceptionDialogBuilder(Builder): + + @overload + def get(self, name: Literal['exception_dialog']) -> Gtk.ApplicationWindow: ... + @overload + def get(self, name: Literal['close_btn']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['report_btn']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['exception_view']) -> Gtk.TextView: ... + def get(self, name: str) -> GObject.Object: ... + + +class GroupchatCreationBuilder(Builder): + + @overload + def get(self, name: Literal['account_liststore']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['public_private_popover']) -> Gtk.Popover: ... + @overload + def get(self, name: Literal['create_group_chat']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['name_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['description_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['public_switch']) -> Gtk.Switch: ... + @overload + def get(self, name: Literal['address_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['account_combo']) -> Gtk.ComboBox: ... + @overload + def get(self, name: Literal['account_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['spinner']) -> Gtk.Spinner: ... + @overload + def get(self, name: Literal['create_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class PluginsWindowBuilder(Builder): + + @overload + def get(self, name: Literal['plugins_notebook']) -> Gtk.Notebook: ... + @overload + def get(self, name: Literal['installed_plugins_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['treeview-selection']) -> Gtk.TreeSelection: ... + @overload + def get(self, name: Literal['install_plugin_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['uninstall_plugin_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['plugin_name_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['configure_plugin_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['available_text']) -> Gtk.InfoBar: ... + @overload + def get(self, name: Literal['available_text_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['description']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['plugin_version_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['plugin_authors_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['plugin_homepage_linkbutton']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['textbuffer1']) -> Gtk.TextBuffer: ... + def get(self, name: str) -> GObject.Object: ... + + +class PasswordDialogBuilder(Builder): + + @overload + def get(self, name: Literal['pass_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['header']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['message_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['pass_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['save_pass_checkbutton']) -> Gtk.CheckButton: ... + @overload + def get(self, name: Literal['cancel_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['ok_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['keyring_hint']) -> Gtk.Label: ... + def get(self, name: str) -> GObject.Object: ... + + +class ThemesWindowBuilder(Builder): + + @overload + def get(self, name: Literal['option_popover']) -> Gtk.Popover: ... + @overload + def get(self, name: Literal['choose_option_listbox']) -> Gtk.ListBox: ... + @overload + def get(self, name: Literal['placeholder']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['theme_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['theme_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['theme_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['option_listbox']) -> Gtk.ListBox: ... + @overload + def get(self, name: Literal['add_option_button']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['add_theme_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['remove_theme_button']) -> Gtk.ToolButton: ... + def get(self, name: str) -> GObject.Object: ... + + +class AddContactBuilder(Builder): + + @overload + def get(self, name: Literal['account_liststore']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['address_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['account_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['account_combo']) -> Gtk.ComboBox: ... + @overload + def get(self, name: Literal['cellrenderertext3']) -> Gtk.CellRendererText: ... + @overload + def get(self, name: Literal['address_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['contact_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['status_switch']) -> Gtk.Switch: ... + @overload + def get(self, name: Literal['group_combo']) -> Gtk.ComboBoxText: ... + @overload + def get(self, name: Literal['message_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['contact_info_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['gateway_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['gateway_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['gateway_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['register_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['commands_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class RosterBuilder(Builder): + + @overload + def get(self, name: Literal['contact_store']) -> Gtk.TreeStore: ... + @overload + def get(self, name: Literal['roster_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['contact_column']) -> Gtk.TreeViewColumn: ... + @overload + def get(self, name: Literal['avatar_renderer']) -> Gtk.CellRendererPixbuf: ... + @overload + def get(self, name: Literal['text_renderer']) -> Gtk.CellRendererText: ... + @overload + def get(self, name: Literal['expander']) -> Gtk.TreeViewColumn: ... + def get(self, name: str) -> GObject.Object: ... + + +class GroupchatConfigBuilder(Builder): + + @overload + def get(self, name: Literal['affiliation_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['combo_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['info_popover']) -> Gtk.Popover: ... + @overload + def get(self, name: Literal['outcast_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['treeview_buttonbox']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['info_button']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['add_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['remove_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['ok_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['config_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['affiliation_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['reserved_name_column']) -> Gtk.TreeViewColumn: ... + @overload + def get(self, name: Literal['role_column']) -> Gtk.TreeViewColumn: ... + @overload + def get(self, name: Literal['outcast_treeview']) -> Gtk.TreeView: ... + def get(self, name: str) -> GObject.Object: ... + + +class AppPageBuilder(Builder): + + @overload + def get(self, name: Literal['gajim_update']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['update_message']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['gajim_update_check']) -> Gtk.Box: ... + def get(self, name: str) -> GObject.Object: ... + + +class ShortcutsWindowBuilder(Builder): + + @overload + def get(self, name: Literal['shortcuts_window']) -> Gtk.ShortcutsWindow: ... + def get(self, name: str) -> GObject.Object: ... + + +class XmlConsoleBuilder(Builder): + + @overload + def get(self, name: Literal['headerbar']) -> Gtk.HeaderBar: ... + @overload + def get(self, name: Literal['search_toggle']) -> Gtk.ToggleButton: ... + @overload + def get(self, name: Literal['popover']) -> Gtk.Popover: ... + @overload + def get(self, name: Literal['box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['paned']) -> Gtk.Paned: ... + @overload + def get(self, name: Literal['search_revealer']) -> Gtk.Revealer: ... + @overload + def get(self, name: Literal['search_entry']) -> Gtk.SearchEntry: ... + @overload + def get(self, name: Literal['search_forward']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['search_backward']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['scrolled']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['sourceview']) -> GtkSource.View: ... + @overload + def get(self, name: Literal['scrolled_input']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['input_entry']) -> Gtk.TextView: ... + @overload + def get(self, name: Literal['actionbar']) -> Gtk.ActionBar: ... + @overload + def get(self, name: Literal['paste']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['menubutton']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['send']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class ChatControlBuilder(Builder): + + @overload + def get(self, name: Literal['drop_area']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['formattings_menu']) -> Gtk.Menu: ... + @overload + def get(self, name: Literal['bold']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['italic']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['strike']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['chat_control_hbox']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['overlay']) -> Gtk.Overlay: ... + @overload + def get(self, name: Literal['paned1']) -> Gtk.Paned: ... + @overload + def get(self, name: Literal['textview_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['banner_eventbox']) -> Gtk.EventBox: ... + @overload + def get(self, name: Literal['avatar_eventbox']) -> Gtk.EventBox: ... + @overload + def get(self, name: Literal['avatar_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['banner_name_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['banner_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['phone_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['account_badge_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['hbox2']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['tune_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['location_eventbox']) -> Gtk.EventBox: ... + @overload + def get(self, name: Literal['location_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['conv_view_overlay']) -> Gtk.Overlay: ... + @overload + def get(self, name: Literal['hbox']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['emoticons_button']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['formattings_button']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['label_selector']) -> Gtk.ComboBox: ... + @overload + def get(self, name: Literal['settings_menu']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['authentication_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['lock_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['encryption_menu']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['sendfile_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['send_message_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class FileTransferSendBuilder(Builder): + + @overload + def get(self, name: Literal['send_stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['listbox']) -> Gtk.ListBox: ... + @overload + def get(self, name: Literal['description']) -> Gtk.TextView: ... + @overload + def get(self, name: Literal['files_send']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['resource_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['resource_send']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['resource_instructions']) -> Gtk.Label: ... + def get(self, name: str) -> GObject.Object: ... + + +class RosterItemExchangeBuilder(Builder): + + @overload + def get(self, name: Literal['textbuffer1']) -> Gtk.TextBuffer: ... + @overload + def get(self, name: Literal['roster_item_exchange']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['type_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['body_scrolledwindow']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['body_textview']) -> Gtk.TextView: ... + @overload + def get(self, name: Literal['items_list_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['treeview-selection1']) -> Gtk.TreeSelection: ... + @overload + def get(self, name: Literal['cancel_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['accept_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class PopupNotificationWindowBuilder(Builder): + + @overload + def get(self, name: Literal['eventbox']) -> Gtk.EventBox: ... + @overload + def get(self, name: Literal['color_bar']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['event_type_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['close_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['event_description_label']) -> Gtk.Label: ... + def get(self, name: str) -> GObject.Object: ... + + +class HistoryManagerBuilder(Builder): + + @overload + def get(self, name: Literal['context_menu']) -> Gtk.Menu: ... + @overload + def get(self, name: Literal['export_menuitem']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['delete_menuitem']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['history_manager_window']) -> Gtk.Window: ... + @overload + def get(self, name: Literal['jids_scrolledwindow']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['jids_listview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['treeview-selection1']) -> Gtk.TreeSelection: ... + @overload + def get(self, name: Literal['welcome_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['logs_scrolledwindow']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['logs_listview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['treeview-selection2']) -> Gtk.TreeSelection: ... + @overload + def get(self, name: Literal['search_results_scrolledwindow']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['search_results_listview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['treeview-selection3']) -> Gtk.TreeSelection: ... + @overload + def get(self, name: Literal['search_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['search_db_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class ChatPanedBuilder(Builder): + + @overload + def get(self, name: Literal['paned']) -> Gtk.Paned: ... + @overload + def get(self, name: Literal['middle_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['header_bar']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['workspace_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['filter_bar_toggle']) -> Gtk.ToggleButton: ... + @overload + def get(self, name: Literal['search_entry']) -> Gtk.SearchEntry: ... + @overload + def get(self, name: Literal['start_chat_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['filter_bar_revealer']) -> Gtk.Revealer: ... + @overload + def get(self, name: Literal['filter_bar']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['chat_list_scrolled']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['right_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['right_grid_overlay']) -> Gtk.Overlay: ... + def get(self, name: str) -> GObject.Object: ... + + +class ContactInfoBuilder(Builder): + + @overload + def get(self, name: Literal['groups_model']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['main_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['header_revealer']) -> Gtk.Revealer: ... + @overload + def get(self, name: Literal['header_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['name_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['edit_name_button']) -> Gtk.ToggleButton: ... + @overload + def get(self, name: Literal['main_stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['vcard_scrolled']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['vcard_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['avatar_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['contact_name_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['contact_jid_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['group_chat_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['role_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['affiliation_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['settings_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['subscription_listbox']) -> Gtk.ListBox: ... + @overload + def get(self, name: Literal['from_subscription_switch']) -> Gtk.Switch: ... + @overload + def get(self, name: Literal['to_subscription_stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['request_stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['to_subscription_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['groups_page_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['groups_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['tree_selection']) -> Gtk.TreeSelection: ... + @overload + def get(self, name: Literal['toggle_renderer']) -> Gtk.CellRendererToggle: ... + @overload + def get(self, name: Literal['text_renderer']) -> Gtk.CellRendererText: ... + @overload + def get(self, name: Literal['group_add_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['group_remove_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['notes_page_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['scrolledwindow_annotation']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['textview_annotation']) -> Gtk.TextView: ... + @overload + def get(self, name: Literal['devices_stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['devices_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['devices_spinner']) -> Gtk.Spinner: ... + def get(self, name: str) -> GObject.Object: ... + + +class GroupchatInfoScrolledBuilder(Builder): + + @overload + def get(self, name: Literal['info_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['address_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['description_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['subject_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['author_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['description']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['author']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['users']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['contact_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['logs_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['lang']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['logs']) -> Gtk.LinkButton: ... + @overload + def get(self, name: Literal['users_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['lang_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['contact_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['subject']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['name']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['avatar_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['address']) -> Gtk.Label: ... + def get(self, name: str) -> GObject.Object: ... + + +class GroupchatControlBuilder(Builder): + + @overload + def get(self, name: Literal['drop_area']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['formattings_menu']) -> Gtk.Menu: ... + @overload + def get(self, name: Literal['bold']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['italic']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['strike']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['manage_popover']) -> Gtk.Popover: ... + @overload + def get(self, name: Literal['manage_change_subject_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['manage_advanced_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['manage_destroy_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['groupchat_control_hbox']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['overlay']) -> Gtk.Overlay: ... + @overload + def get(self, name: Literal['stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['groupchat_control_vbox']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['textview_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['banner_eventbox']) -> Gtk.EventBox: ... + @overload + def get(self, name: Literal['avatar_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['banner_name_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['account_badge_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['toggle_roster_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['toggle_roster_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['conv_view_overlay']) -> Gtk.Overlay: ... + @overload + def get(self, name: Literal['hbox']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['quick_invite_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['settings_menu']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['authentication_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['lock_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['encryption_menu']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['sendfile_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['emoticons_button']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['send_message_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['formattings_button']) -> Gtk.MenuButton: ... + @overload + def get(self, name: Literal['label_selector']) -> Gtk.ComboBox: ... + @overload + def get(self, name: Literal['roster_revealer']) -> Gtk.Revealer: ... + @overload + def get(self, name: Literal['nickname_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['nickname_change_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['subject_change_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['subject_textview']) -> Gtk.TextView: ... + @overload + def get(self, name: Literal['password_set_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['password_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['captcha_set_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['captcha_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['remove_bookmark_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['retry_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['close_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['error_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['error_heading']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['captcha_close_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['captcha_try_again_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['captcha_error_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['info_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['info_close_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['info_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['kick_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['kick_participant_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['kick_reason_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['ban_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['ban_participant_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['ban_reason_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['destroy_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['destroy_alternate_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['destroy_reason_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['name_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['rename_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['invite_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['invite_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['settings_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['settings_scrolled_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['avatar_button_image']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['avatar_select_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['muc_description_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['muc_name_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['manage_save_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['avatar_selector_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['avatar_update_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class StartChatDialogBuilder(Builder): + + @overload + def get(self, name: Literal['account_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['infobar']) -> Gtk.InfoBar: ... + @overload + def get(self, name: Literal['box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['search_entry']) -> Gtk.SearchEntry: ... + @overload + def get(self, name: Literal['filter_bar_toggle']) -> Gtk.ToggleButton: ... + @overload + def get(self, name: Literal['global_search_toggle']) -> Gtk.ToggleButton: ... + @overload + def get(self, name: Literal['filter_bar_revealer']) -> Gtk.Revealer: ... + @overload + def get(self, name: Literal['scrolledwindow']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['listbox']) -> Gtk.ListBox: ... + @overload + def get(self, name: Literal['spinner']) -> Gtk.Spinner: ... + @overload + def get(self, name: Literal['error_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['info_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['join_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['join_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['account_view']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['icon_pixbuf']) -> Gtk.CellRendererPixbuf: ... + @overload + def get(self, name: Literal['account_text']) -> Gtk.CellRendererText: ... + @overload + def get(self, name: Literal['placeholder']) -> Gtk.Box: ... + def get(self, name: str) -> GObject.Object: ... + + +class AdvancedConfigurationBuilder(Builder): + + @overload + def get(self, name: Literal['box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['search_entry']) -> Gtk.SearchEntry: ... + @overload + def get(self, name: Literal['advanced_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['description']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['reset_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class SystrayContextMenuBuilder(Builder): + + @overload + def get(self, name: Literal['accelgroup1']) -> Gtk.AccelGroup: ... + @overload + def get(self, name: Literal['systray_context_menu']) -> Gtk.Menu: ... + @overload + def get(self, name: Literal['status_menu']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['start_chat_menuitem']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['sounds_mute_menuitem']) -> Gtk.CheckMenuItem: ... + @overload + def get(self, name: Literal['toggle_window_menuitem']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['preferences_menuitem']) -> Gtk.MenuItem: ... + @overload + def get(self, name: Literal['separator']) -> Gtk.SeparatorMenuItem: ... + @overload + def get(self, name: Literal['quit_menuitem']) -> Gtk.MenuItem: ... + def get(self, name: str) -> GObject.Object: ... + + +class FileTransferJingleBuilder(Builder): + + @overload + def get(self, name: Literal['transfer_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['transfer_action']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['file_name']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['file_description']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['file_size']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['action_stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['error_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['progress_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['progress_bar']) -> Gtk.ProgressBar: ... + def get(self, name: str) -> GObject.Object: ... + + +class GroupchatStateBuilder(Builder): + + @overload + def get(self, name: Literal['groupchat_state']) -> Gtk.Stack: ... + def get(self, name: str) -> GObject.Object: ... + + +class RosterTooltipBuilder(Builder): + + @overload + def get(self, name: Literal['tooltip_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['jid']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['tune_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['location_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['tune']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['location']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['name']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['avatar']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['sub_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['sub']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['resources_box']) -> Gtk.Box: ... + def get(self, name: str) -> GObject.Object: ... + + +class SynchronizeAccountsBuilder(Builder): + + @overload + def get(self, name: Literal['stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['sync_accounts_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['accounts_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['sync_contacts_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['contacts_treeview']) -> Gtk.TreeView: ... + def get(self, name: str) -> GObject.Object: ... + + +class AccountWizardBuilder(Builder): + + @overload + def get(self, name: Literal['account_label_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['account_name_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['account_color_button']) -> Gtk.ColorButton: ... + @overload + def get(self, name: Literal['badge_preview']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['advanced_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['custom_port_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['custom_host_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['proxies_combobox']) -> Gtk.ComboBox: ... + @overload + def get(self, name: Literal['manage_proxies_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['con_type_combo']) -> Gtk.ComboBoxText: ... + @overload + def get(self, name: Literal['entrycompletion1']) -> Gtk.EntryCompletion: ... + @overload + def get(self, name: Literal['login_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['log_in_address_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['log_in_password_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['login_advanced_checkbutton']) -> Gtk.CheckButton: ... + @overload + def get(self, name: Literal['log_in_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['sign_up_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['entrycompletion2']) -> Gtk.EntryCompletion: ... + @overload + def get(self, name: Literal['redirect_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['instructions']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['link_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['security_warning_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['error_list']) -> Gtk.ListBox: ... + @overload + def get(self, name: Literal['view_cert_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['trust_cert_checkbutton']) -> Gtk.CheckButton: ... + @overload + def get(self, name: Literal['server_recommendations']) -> Gtk.Popover: ... + @overload + def get(self, name: Literal['visit_server_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['recommendation_link1']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['recommendation_link2']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['signup_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['server_comboboxtext_sign_up']) -> Gtk.ComboBoxText: ... + @overload + def get(self, name: Literal['server_comboboxtext_sign_up_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['sign_up_anonymously']) -> Gtk.CheckButton: ... + @overload + def get(self, name: Literal['sign_up_advanced_checkbutton']) -> Gtk.CheckButton: ... + def get(self, name: str) -> GObject.Object: ... + + +class ServerInfoBuilder(Builder): + + @overload + def get(self, name: Literal['server_info_notebook']) -> Gtk.Notebook: ... + @overload + def get(self, name: Literal['server']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['server_hostname']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['server_software']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['server_uptime']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['no_addresses_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['connection_type']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['proxy_type']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['cert_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['proxy_host']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['domain_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['dns_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['ip_port_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['websocket_label']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['domain']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['dns']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['ip_port']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['websocket']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['features']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['features_scrolled']) -> Gtk.ScrolledWindow: ... + @overload + def get(self, name: Literal['clipboard_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class PreferencesBuilder(Builder): + + @overload + def get(self, name: Literal['grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['stack']) -> Gtk.Stack: ... + @overload + def get(self, name: Literal['window_behaviour']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['chats']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['group_chats']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['file_preview']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['visual_notifications']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['sounds']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['status_message']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['automatic_status']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['themes']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['emoji']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['audio_video_info_bar']) -> Gtk.InfoBar: ... + @overload + def get(self, name: Literal['button1']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['server']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['audio']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['video']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['miscellaneous']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['reset_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['advanced']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['ace_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +class ManageSoundsBuilder(Builder): + + @overload + def get(self, name: Literal['liststore1']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['manage_sounds']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['sounds_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['filechooser']) -> Gtk.FileChooserButton: ... + def get(self, name: str) -> GObject.Object: ... + + +class ManageProxiesBuilder(Builder): + + @overload + def get(self, name: Literal['liststore1']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['proxies_treeview']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['treeview-selection1']) -> Gtk.TreeSelection: ... + @overload + def get(self, name: Literal['add_proxy_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['remove_proxy_button']) -> Gtk.ToolButton: ... + @overload + def get(self, name: Literal['settings_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['proxypass_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['proxyuser_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['useauth_checkbutton']) -> Gtk.CheckButton: ... + @overload + def get(self, name: Literal['proxyport_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['proxyhost_entry']) -> Gtk.Entry: ... + @overload + def get(self, name: Literal['proxytype_combobox']) -> Gtk.ComboBox: ... + @overload + def get(self, name: Literal['proxyname_entry']) -> Gtk.Entry: ... + def get(self, name: str) -> GObject.Object: ... + + +class ApplicationMenuBuilder(Builder): + + def get(self, name: str) -> GObject.Object: ... + + +class GroupchatRosterTooltipBuilder(Builder): + + @overload + def get(self, name: Literal['tooltip_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['avatar']) -> Gtk.Image: ... + @overload + def get(self, name: Literal['jid']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['nick']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['fillelement']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['status']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['affiliation']) -> Gtk.Label: ... + def get(self, name: str) -> GObject.Object: ... + + +class FileTransferBuilder(Builder): + + @overload + def get(self, name: Literal['transfer_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['transfer_description']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['file_name']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['file_size']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['progress_bar']) -> Gtk.ProgressBar: ... + @overload + def get(self, name: Literal['transfer_progress']) -> Gtk.Label: ... + def get(self, name: str) -> GObject.Object: ... + + +class BookmarksBuilder(Builder): + + @overload + def get(self, name: Literal['bookmarks_store']) -> Gtk.ListStore: ... + @overload + def get(self, name: Literal['bookmarks_grid']) -> Gtk.Grid: ... + @overload + def get(self, name: Literal['bookmarks_view']) -> Gtk.TreeView: ... + @overload + def get(self, name: Literal['jid']) -> Gtk.CellRendererText: ... + @overload + def get(self, name: Literal['name']) -> Gtk.CellRendererText: ... + @overload + def get(self, name: Literal['nick']) -> Gtk.CellRendererText: ... + @overload + def get(self, name: Literal['password']) -> Gtk.CellRendererText: ... + @overload + def get(self, name: Literal['autojoin']) -> Gtk.CellRendererToggle: ... + def get(self, name: str) -> GObject.Object: ... + + +class SslErrorDialogBuilder(Builder): + + @overload + def get(self, name: Literal['ssl_error_box']) -> Gtk.Box: ... + @overload + def get(self, name: Literal['intro_text']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['ssl_error']) -> Gtk.Label: ... + @overload + def get(self, name: Literal['add_certificate_checkbutton']) -> Gtk.CheckButton: ... + @overload + def get(self, name: Literal['view_cert_button']) -> Gtk.Button: ... + @overload + def get(self, name: Literal['connect_button']) -> Gtk.Button: ... + def get(self, name: str) -> GObject.Object: ... + + +@overload +def get_builder(file_name: Literal['certificate_dialog.ui'], widgets: list[str] = ...) -> CertificateDialogBuilder: ... +@overload +def get_builder(file_name: Literal['zeroconf_information_window.ui'], widgets: list[str] = ...) -> ZeroconfInformationWindowBuilder: ... +@overload +def get_builder(file_name: Literal['chat_list_row.ui'], widgets: list[str] = ...) -> ChatListRowBuilder: ... +@overload +def get_builder(file_name: Literal['single_message_window.ui'], widgets: list[str] = ...) -> SingleMessageWindowBuilder: ... +@overload +def get_builder(file_name: Literal['search_view.ui'], widgets: list[str] = ...) -> SearchViewBuilder: ... +@overload +def get_builder(file_name: Literal['assistant.ui'], widgets: list[str] = ...) -> AssistantBuilder: ... +@overload +def get_builder(file_name: Literal['blocking_list.ui'], widgets: list[str] = ...) -> BlockingListBuilder: ... +@overload +def get_builder(file_name: Literal['account_page.ui'], widgets: list[str] = ...) -> AccountPageBuilder: ... +@overload +def get_builder(file_name: Literal['groupchat_nick_chooser.ui'], widgets: list[str] = ...) -> GroupchatNickChooserBuilder: ... +@overload +def get_builder(file_name: Literal['groups_post_window.ui'], widgets: list[str] = ...) -> GroupsPostWindowBuilder: ... +@overload +def get_builder(file_name: Literal['mam_preferences.ui'], widgets: list[str] = ...) -> MamPreferencesBuilder: ... +@overload +def get_builder(file_name: Literal['emoji_chooser.ui'], widgets: list[str] = ...) -> EmojiChooserBuilder: ... +@overload +def get_builder(file_name: Literal['adhoc_muc.ui'], widgets: list[str] = ...) -> AdhocMucBuilder: ... +@overload +def get_builder(file_name: Literal['manage_pep_services_window.ui'], widgets: list[str] = ...) -> ManagePepServicesWindowBuilder: ... +@overload +def get_builder(file_name: Literal['groupchat_roster.ui'], widgets: list[str] = ...) -> GroupchatRosterBuilder: ... +@overload +def get_builder(file_name: Literal['service_discovery_window.ui'], widgets: list[str] = ...) -> ServiceDiscoveryWindowBuilder: ... +@overload +def get_builder(file_name: Literal['main.ui'], widgets: list[str] = ...) -> MainBuilder: ... +@overload +def get_builder(file_name: Literal['preview_context_menu.ui'], widgets: list[str] = ...) -> PreviewContextMenuBuilder: ... +@overload +def get_builder(file_name: Literal['video_preview.ui'], widgets: list[str] = ...) -> VideoPreviewBuilder: ... +@overload +def get_builder(file_name: Literal['profile.ui'], widgets: list[str] = ...) -> ProfileBuilder: ... +@overload +def get_builder(file_name: Literal['call_widget.ui'], widgets: list[str] = ...) -> CallWidgetBuilder: ... +@overload +def get_builder(file_name: Literal['workspace_dialog.ui'], widgets: list[str] = ...) -> WorkspaceDialogBuilder: ... +@overload +def get_builder(file_name: Literal['filetransfers.ui'], widgets: list[str] = ...) -> FiletransfersBuilder: ... +@overload +def get_builder(file_name: Literal['groupchat_invite.ui'], widgets: list[str] = ...) -> GroupchatInviteBuilder: ... +@overload +def get_builder(file_name: Literal['preview.ui'], widgets: list[str] = ...) -> PreviewBuilder: ... +@overload +def get_builder(file_name: Literal['exception_dialog.ui'], widgets: list[str] = ...) -> ExceptionDialogBuilder: ... +@overload +def get_builder(file_name: Literal['groupchat_creation.ui'], widgets: list[str] = ...) -> GroupchatCreationBuilder: ... +@overload +def get_builder(file_name: Literal['plugins_window.ui'], widgets: list[str] = ...) -> PluginsWindowBuilder: ... +@overload +def get_builder(file_name: Literal['password_dialog.ui'], widgets: list[str] = ...) -> PasswordDialogBuilder: ... +@overload +def get_builder(file_name: Literal['themes_window.ui'], widgets: list[str] = ...) -> ThemesWindowBuilder: ... +@overload +def get_builder(file_name: Literal['add_contact.ui'], widgets: list[str] = ...) -> AddContactBuilder: ... +@overload +def get_builder(file_name: Literal['roster.ui'], widgets: list[str] = ...) -> RosterBuilder: ... +@overload +def get_builder(file_name: Literal['groupchat_config.ui'], widgets: list[str] = ...) -> GroupchatConfigBuilder: ... +@overload +def get_builder(file_name: Literal['app_page.ui'], widgets: list[str] = ...) -> AppPageBuilder: ... +@overload +def get_builder(file_name: Literal['shortcuts_window.ui'], widgets: list[str] = ...) -> ShortcutsWindowBuilder: ... +@overload +def get_builder(file_name: Literal['xml_console.ui'], widgets: list[str] = ...) -> XmlConsoleBuilder: ... +@overload +def get_builder(file_name: Literal['chat_control.ui'], widgets: list[str] = ...) -> ChatControlBuilder: ... +@overload +def get_builder(file_name: Literal['file_transfer_send.ui'], widgets: list[str] = ...) -> FileTransferSendBuilder: ... +@overload +def get_builder(file_name: Literal['roster_item_exchange.ui'], widgets: list[str] = ...) -> RosterItemExchangeBuilder: ... +@overload +def get_builder(file_name: Literal['popup_notification_window.ui'], widgets: list[str] = ...) -> PopupNotificationWindowBuilder: ... +@overload +def get_builder(file_name: Literal['history_manager.ui'], widgets: list[str] = ...) -> HistoryManagerBuilder: ... +@overload +def get_builder(file_name: Literal['chat_paned.ui'], widgets: list[str] = ...) -> ChatPanedBuilder: ... +@overload +def get_builder(file_name: Literal['contact_info.ui'], widgets: list[str] = ...) -> ContactInfoBuilder: ... +@overload +def get_builder(file_name: Literal['groupchat_info_scrolled.ui'], widgets: list[str] = ...) -> GroupchatInfoScrolledBuilder: ... +@overload +def get_builder(file_name: Literal['groupchat_control.ui'], widgets: list[str] = ...) -> GroupchatControlBuilder: ... +@overload +def get_builder(file_name: Literal['start_chat_dialog.ui'], widgets: list[str] = ...) -> StartChatDialogBuilder: ... +@overload +def get_builder(file_name: Literal['advanced_configuration.ui'], widgets: list[str] = ...) -> AdvancedConfigurationBuilder: ... +@overload +def get_builder(file_name: Literal['systray_context_menu.ui'], widgets: list[str] = ...) -> SystrayContextMenuBuilder: ... +@overload +def get_builder(file_name: Literal['file_transfer_jingle.ui'], widgets: list[str] = ...) -> FileTransferJingleBuilder: ... +@overload +def get_builder(file_name: Literal['groupchat_state.ui'], widgets: list[str] = ...) -> GroupchatStateBuilder: ... +@overload +def get_builder(file_name: Literal['roster_tooltip.ui'], widgets: list[str] = ...) -> RosterTooltipBuilder: ... +@overload +def get_builder(file_name: Literal['synchronize_accounts.ui'], widgets: list[str] = ...) -> SynchronizeAccountsBuilder: ... +@overload +def get_builder(file_name: Literal['account_wizard.ui'], widgets: list[str] = ...) -> AccountWizardBuilder: ... +@overload +def get_builder(file_name: Literal['server_info.ui'], widgets: list[str] = ...) -> ServerInfoBuilder: ... +@overload +def get_builder(file_name: Literal['preferences.ui'], widgets: list[str] = ...) -> PreferencesBuilder: ... +@overload +def get_builder(file_name: Literal['manage_sounds.ui'], widgets: list[str] = ...) -> ManageSoundsBuilder: ... +@overload +def get_builder(file_name: Literal['manage_proxies.ui'], widgets: list[str] = ...) -> ManageProxiesBuilder: ... +@overload +def get_builder(file_name: Literal['application_menu.ui'], widgets: list[str] = ...) -> ApplicationMenuBuilder: ... +@overload +def get_builder(file_name: Literal['groupchat_roster_tooltip.ui'], widgets: list[str] = ...) -> GroupchatRosterTooltipBuilder: ... +@overload +def get_builder(file_name: Literal['file_transfer.ui'], widgets: list[str] = ...) -> FileTransferBuilder: ... +@overload +def get_builder(file_name: Literal['bookmarks.ui'], widgets: list[str] = ...) -> BookmarksBuilder: ... +@overload +def get_builder(file_name: Literal['ssl_error_dialog.ui'], widgets: list[str] = ...) -> SslErrorDialogBuilder: ... +def get_builder(file_name: str, widgets: list[str] = ...) -> Builder: ...
===================================== gajim/gtk/search_view.py ===================================== @@ -37,7 +37,7 @@ from gajim.common.i18n import _
from .conversation.message_widget import MessageWidget -from .builder import SearchViewBuilder +from .builder import get_builder
log = logging.getLogger('gajim.gui.search_view')
@@ -59,7 +59,7 @@ def __init__(self) -> None: self._results: list[str] = [] self._scope: Optional[str] = None
- self._ui = SearchViewBuilder() + self._ui = get_builder('search_view.ui') self._ui.get('results_listbox').set_header_func(self._header_func) self.add(self._ui.get('search_box'))
@@ -279,7 +279,7 @@ def __init__(self, account: str, jid: JID, timestamp: float) -> None: Gtk.Box.__init__(self) self.set_hexpand(True)
- self._ui = SearchViewBuilder() + self._ui = get_builder('search_view.ui') self.add(self._ui.get('header_box'))
client = app.get_client(account) @@ -330,7 +330,7 @@ def __init__(self, msg: Any, account: str, jid: JID) -> None: self.contact = self._client.get_module('Contacts').get_contact( jid, groupchat=self.type == 'groupchat')
- self._ui = SearchViewBuilder() + self._ui = get_builder('search_view.ui') self.add(self._ui.get('result_row_grid'))
kind = 'status'
===================================== scripts/dev/generate_ui_types.py ===================================== @@ -0,0 +1,103 @@ +#!/usr/bin/env python3 + +import sys +from pathlib import Path + +from xml.etree import ElementTree as ET + +try: + path = sys.argv[1] +except Exception: + print('path to file/folder missing') + exit() + +path = Path(path) + +if path.is_dir(): + paths = list(path.iterdir()) + +elif path.is_file(): + paths = [path] + +else: + print('Path must be folder or file:', path) + exit() + + +IMPORTS = ''' +from typing import Literal +from typing import overload + +from gi.repository import Atk +from gi.repository import Gtk +from gi.repository import GtkSource +from gi.repository import GObject + + +class Builder: ... +''' + +CLASS_DEF = ''' +class %s(Builder): +''' + +OVERLOAD = ''' + @overload + def get(self, name: Literal['%s']) -> %s: ...''' + +METHOD = ''' + def get(self, name: str) -> GObject.Object: ...''' + + +GET_BUILDER_OVERLOAD = ''' +@overload +def get_builder(file_name: Literal['%s'], widgets: list[str] = ...) -> %s: ...''' + +GET_BUILDER = ''' +def get_builder(file_name: str, widgets: list[str] = ...) -> Builder: ...''' + + +def make_class_name(path): + name = path.name.removesuffix('.ui') + names = name.split('_') + names = map(lambda x: x.capitalize(), names) + return ''.join(names) + 'Builder' + + +def parse(path, file): + print('read', path) + klass_name = make_class_name(path) + file.write(CLASS_DEF % klass_name) + tree = ET.parse(path) + for node in tree.iter(tag='object'): + id_ = node.attrib.get('id') + if id_ is None: + continue + klass = node.attrib.get('class') + if klass.startswith('GtkSource'): + klass = f'GtkSource.{klass.removeprefix("GtkSource")}' + elif klass.startswith('Atk'): + klass = f'Atk.{klass.removeprefix("Atk")}' + else: + klass = f'Gtk.{klass.removeprefix("Gtk")}' + file.write(OVERLOAD % (id_, klass)) + file.write(METHOD) + file.write('\n\n') + return klass_name + + +builder_names = [] + +current_dir = Path('./builder.pyi') +with current_dir.open(mode='w') as file: + file.write(IMPORTS) + for path in paths: + if path.name.endswith('~'): + continue + name = parse(path, file) + builder_names.append((name, path.name)) + + for name, file_name in builder_names: + file.write(GET_BUILDER_OVERLOAD % (file_name, name)) + file.write(GET_BUILDER) + file.write('\n')
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/17b370035ffa64aa78d210f3e58209b8...