gtk

package
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2024 License: MPL-2.0 Imports: 19 Imported by: 49

Documentation

Index

Constants

View Source
const BINARY_AGE = 2427

BINARY_AGE: like gtk_get_binary_age(), but from the headers used at application compile time, rather than from the library linked against at application run time.

View Source
const INPUT_ERROR = -1

INPUT_ERROR: constant to return from a signal handler for the SpinButton::input signal in case of conversion failure.

View Source
const INTERFACE_AGE = 23

INTERFACE_AGE: like gtk_get_interface_age(), but from the headers used at application compile time, rather than from the library linked against at application run time.

View Source
const LEVEL_BAR_OFFSET_FULL = "full"

LEVEL_BAR_OFFSET_FULL: name used for the stock full offset included by LevelBar.

View Source
const LEVEL_BAR_OFFSET_HIGH = "high"

LEVEL_BAR_OFFSET_HIGH: name used for the stock high offset included by LevelBar.

View Source
const LEVEL_BAR_OFFSET_LOW = "low"

LEVEL_BAR_OFFSET_LOW: name used for the stock low offset included by LevelBar.

View Source
const MAJOR_VERSION = 3

MAJOR_VERSION: like gtk_get_major_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.

View Source
const MAX_COMPOSE_LEN = 7

MAX_COMPOSE_LEN: maximum length of sequences in compose tables.

View Source
const MICRO_VERSION = 27

MICRO_VERSION: like gtk_get_micro_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.

View Source
const MINOR_VERSION = 24

MINOR_VERSION: like gtk_get_minor_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.

View Source
const PAPER_NAME_A3 = "iso_a3"

PAPER_NAME_A3: name for the A3 paper size.

View Source
const PAPER_NAME_A4 = "iso_a4"

PAPER_NAME_A4: name for the A4 paper size.

View Source
const PAPER_NAME_A5 = "iso_a5"

PAPER_NAME_A5: name for the A5 paper size.

View Source
const PAPER_NAME_B5 = "iso_b5"

PAPER_NAME_B5: name for the B5 paper size.

View Source
const PAPER_NAME_EXECUTIVE = "na_executive"

PAPER_NAME_EXECUTIVE: name for the Executive paper size.

View Source
const PAPER_NAME_LEGAL = "na_legal"

PAPER_NAME_LEGAL: name for the Legal paper size.

View Source
const PAPER_NAME_LETTER = "na_letter"

PAPER_NAME_LETTER: name for the Letter paper size.

View Source
const PATH_PRIO_MASK = 15
View Source
const PRINT_SETTINGS_COLLATE = "collate"
View Source
const PRINT_SETTINGS_DEFAULT_SOURCE = "default-source"
View Source
const PRINT_SETTINGS_DITHER = "dither"
View Source
const PRINT_SETTINGS_DUPLEX = "duplex"
View Source
const PRINT_SETTINGS_FINISHINGS = "finishings"
View Source
const PRINT_SETTINGS_MEDIA_TYPE = "media-type"
View Source
const PRINT_SETTINGS_NUMBER_UP = "number-up"
View Source
const PRINT_SETTINGS_NUMBER_UP_LAYOUT = "number-up-layout"
View Source
const PRINT_SETTINGS_N_COPIES = "n-copies"
View Source
const PRINT_SETTINGS_ORIENTATION = "orientation"
View Source
const PRINT_SETTINGS_OUTPUT_BASENAME = "output-basename"

PRINT_SETTINGS_OUTPUT_BASENAME: key used by the “Print to file” printer to store the file name of the output without the path to the directory and the file extension.

View Source
const PRINT_SETTINGS_OUTPUT_BIN = "output-bin"
View Source
const PRINT_SETTINGS_OUTPUT_DIR = "output-dir"

PRINT_SETTINGS_OUTPUT_DIR: key used by the “Print to file” printer to store the directory to which the output should be written.

View Source
const PRINT_SETTINGS_OUTPUT_FILE_FORMAT = "output-file-format"

PRINT_SETTINGS_OUTPUT_FILE_FORMAT: key used by the “Print to file” printer to store the format of the output. The supported values are “PS” and “PDF”.

View Source
const PRINT_SETTINGS_OUTPUT_URI = "output-uri"

PRINT_SETTINGS_OUTPUT_URI: key used by the “Print to file” printer to store the URI to which the output should be written. GTK+ itself supports only “file://” URIs.

View Source
const PRINT_SETTINGS_PAGE_RANGES = "page-ranges"
View Source
const PRINT_SETTINGS_PAGE_SET = "page-set"
View Source
const PRINT_SETTINGS_PAPER_FORMAT = "paper-format"
View Source
const PRINT_SETTINGS_PAPER_HEIGHT = "paper-height"
View Source
const PRINT_SETTINGS_PAPER_WIDTH = "paper-width"
View Source
const PRINT_SETTINGS_PRINTER = "printer"
View Source
const PRINT_SETTINGS_PRINTER_LPI = "printer-lpi"
View Source
const PRINT_SETTINGS_PRINT_PAGES = "print-pages"
View Source
const PRINT_SETTINGS_QUALITY = "quality"
View Source
const PRINT_SETTINGS_RESOLUTION = "resolution"
View Source
const PRINT_SETTINGS_RESOLUTION_X = "resolution-x"
View Source
const PRINT_SETTINGS_RESOLUTION_Y = "resolution-y"
View Source
const PRINT_SETTINGS_REVERSE = "reverse"
View Source
const PRINT_SETTINGS_SCALE = "scale"
View Source
const PRINT_SETTINGS_USE_COLOR = "use-color"
View Source
const PRINT_SETTINGS_WIN32_DRIVER_EXTRA = "win32-driver-extra"
View Source
const PRINT_SETTINGS_WIN32_DRIVER_VERSION = "win32-driver-version"
View Source
const PRIORITY_RESIZE = 110

PRIORITY_RESIZE: use this priority for functionality related to size allocation.

It is used internally by GTK+ to compute the sizes of widgets. This priority is higher than GDK_PRIORITY_REDRAW to avoid resizing a widget which was just redrawn.

View Source
const STOCK_ABOUT = "gtk-about"

STOCK_ABOUT: “About” item. ! (help-about.png)

Deprecated: Use named icon "help-about" or the label "_About".

View Source
const STOCK_ADD = "gtk-add"

STOCK_ADD: “Add” item and icon.

Deprecated: Use named icon "list-add" or the label "_Add".

View Source
const STOCK_APPLY = "gtk-apply"

STOCK_APPLY: “Apply” item and icon.

Deprecated: Do not use an icon. Use label "_Apply".

View Source
const STOCK_BOLD = "gtk-bold"

STOCK_BOLD: “Bold” item and icon.

Deprecated: Use named icon "format-text-bold".

View Source
const STOCK_CANCEL = "gtk-cancel"

STOCK_CANCEL: “Cancel” item and icon.

Deprecated: Do not use an icon. Use label "_Cancel".

View Source
const STOCK_CAPS_LOCK_WARNING = "gtk-caps-lock-warning"

STOCK_CAPS_LOCK_WARNING “Caps Lock Warning” icon.

Deprecated: Use named icon "dialog-warning-symbolic".

View Source
const STOCK_CDROM = "gtk-cdrom"

STOCK_CDROM: “CD-Rom” item and icon.

Deprecated: Use named icon "media-optical".

View Source
const STOCK_CLEAR = "gtk-clear"

STOCK_CLEAR: “Clear” item and icon.

Deprecated: Use named icon "edit-clear".

View Source
const STOCK_CLOSE = "gtk-close"

STOCK_CLOSE: “Close” item and icon.

Deprecated: Use named icon "window-close" or the label "_Close".

View Source
const STOCK_COLOR_PICKER = "gtk-color-picker"

STOCK_COLOR_PICKER: “Color Picker” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_CONNECT = "gtk-connect"

STOCK_CONNECT: “Connect” icon.

Deprecated: since version 3.10.

View Source
const STOCK_CONVERT = "gtk-convert"

STOCK_CONVERT: “Convert” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_COPY = "gtk-copy"

STOCK_COPY: “Copy” item and icon.

Deprecated: Use the named icon "edit-copy" or the label "_Copy".

View Source
const STOCK_CUT = "gtk-cut"

STOCK_CUT: “Cut” item and icon.

Deprecated: Use the named icon "edit-cut" or the label "Cu_t".

View Source
const STOCK_DELETE = "gtk-delete"

STOCK_DELETE: “Delete” item and icon.

Deprecated: Use the named icon "edit-delete" or the label "_Delete".

View Source
const STOCK_DIALOG_AUTHENTICATION = "gtk-dialog-authentication"

STOCK_DIALOG_AUTHENTICATION: “Authentication” item and icon.

Deprecated: Use named icon "dialog-password".

View Source
const STOCK_DIALOG_ERROR = "gtk-dialog-error"

STOCK_DIALOG_ERROR: “Error” item and icon.

Deprecated: Use named icon "dialog-error".

View Source
const STOCK_DIALOG_INFO = "gtk-dialog-info"

STOCK_DIALOG_INFO: “Information” item and icon.

Deprecated: Use named icon "dialog-information".

View Source
const STOCK_DIALOG_QUESTION = "gtk-dialog-question"

STOCK_DIALOG_QUESTION: “Question” item and icon.

Deprecated: Use named icon "dialog-question".

View Source
const STOCK_DIALOG_WARNING = "gtk-dialog-warning"

STOCK_DIALOG_WARNING: “Warning” item and icon.

Deprecated: Use named icon "dialog-warning".

View Source
const STOCK_DIRECTORY = "gtk-directory"

STOCK_DIRECTORY: “Directory” icon.

Deprecated: Use named icon "folder".

View Source
const STOCK_DISCARD = "gtk-discard"

STOCK_DISCARD: “Discard” item.

Deprecated: since version 3.10.

View Source
const STOCK_DISCONNECT = "gtk-disconnect"

STOCK_DISCONNECT: “Disconnect” icon.

Deprecated: since version 3.10.

View Source
const STOCK_DND = "gtk-dnd"

STOCK_DND: “Drag-And-Drop” icon.

Deprecated: since version 3.10.

View Source
const STOCK_DND_MULTIPLE = "gtk-dnd-multiple"

STOCK_DND_MULTIPLE: “Drag-And-Drop multiple” icon.

Deprecated: since version 3.10.

View Source
const STOCK_EDIT = "gtk-edit"

STOCK_EDIT: “Edit” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_EXECUTE = "gtk-execute"

STOCK_EXECUTE: “Execute” item and icon.

Deprecated: Use named icon "system-run".

View Source
const STOCK_FILE = "gtk-file"

STOCK_FILE: “File” item and icon.

Since 3.0, this item has a label, before it only had an icon.

Deprecated: Use named icon "text-x-generic".

View Source
const STOCK_FIND = "gtk-find"

STOCK_FIND: “Find” item and icon.

Deprecated: Use named icon "edit-find".

View Source
const STOCK_FIND_AND_REPLACE = "gtk-find-and-replace"

STOCK_FIND_AND_REPLACE: “Find and Replace” item and icon.

Deprecated: Use named icon "edit-find-replace".

View Source
const STOCK_FLOPPY = "gtk-floppy"

STOCK_FLOPPY: “Floppy” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_FULLSCREEN = "gtk-fullscreen"

STOCK_FULLSCREEN: “Fullscreen” item and icon.

Deprecated: Use named icon "view-fullscreen".

View Source
const STOCK_GOTO_BOTTOM = "gtk-goto-bottom"

STOCK_GOTO_BOTTOM: “Bottom” item and icon.

Deprecated: Use named icon "go-bottom".

View Source
const STOCK_GOTO_FIRST = "gtk-goto-first"

STOCK_GOTO_FIRST: “First” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "go-first".

View Source
const STOCK_GOTO_LAST = "gtk-goto-last"

STOCK_GOTO_LAST: “Last” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "go-last".

View Source
const STOCK_GOTO_TOP = "gtk-goto-top"

STOCK_GOTO_TOP: “Top” item and icon.

Deprecated: Use named icon "go-top".

View Source
const STOCK_GO_BACK = "gtk-go-back"

STOCK_GO_BACK: “Back” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "go-previous".

View Source
const STOCK_GO_DOWN = "gtk-go-down"

STOCK_GO_DOWN: “Down” item and icon.

Deprecated: Use named icon "go-down".

View Source
const STOCK_GO_FORWARD = "gtk-go-forward"

STOCK_GO_FORWARD: “Forward” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "go-next".

View Source
const STOCK_GO_UP = "gtk-go-up"

STOCK_GO_UP: “Up” item and icon.

Deprecated: Use named icon "go-up".

View Source
const STOCK_HARDDISK = "gtk-harddisk"

STOCK_HARDDISK: “Harddisk” item and icon.

Deprecated: Use named icon "drive-harddisk".

View Source
const STOCK_HELP = "gtk-help"

STOCK_HELP: “Help” item and icon.

Deprecated: Use named icon "help-browser".

View Source
const STOCK_HOME = "gtk-home"

STOCK_HOME: “Home” item and icon.

Deprecated: Use named icon "go-home".

View Source
const STOCK_INDENT = "gtk-indent"

STOCK_INDENT: “Indent” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "format-indent-more".

View Source
const STOCK_INDEX = "gtk-index"

STOCK_INDEX: “Index” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_INFO = "gtk-info"

STOCK_INFO: “Info” item and icon.

Deprecated: Use named icon "dialog-information".

View Source
const STOCK_ITALIC = "gtk-italic"

STOCK_ITALIC: “Italic” item and icon.

Deprecated: Use named icon "format-text-italic".

View Source
const STOCK_JUMP_TO = "gtk-jump-to"

STOCK_JUMP_TO: “Jump to” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "go-jump".

View Source
const STOCK_JUSTIFY_CENTER = "gtk-justify-center"

STOCK_JUSTIFY_CENTER: “Center” item and icon.

Deprecated: Use named icon "format-justify-center".

View Source
const STOCK_JUSTIFY_FILL = "gtk-justify-fill"

STOCK_JUSTIFY_FILL: “Fill” item and icon.

Deprecated: Use named icon "format-justify-fill".

View Source
const STOCK_JUSTIFY_LEFT = "gtk-justify-left"

STOCK_JUSTIFY_LEFT: “Left” item and icon.

Deprecated: Use named icon "format-justify-left".

View Source
const STOCK_JUSTIFY_RIGHT = "gtk-justify-right"

STOCK_JUSTIFY_RIGHT: “Right” item and icon.

Deprecated: Use named icon "format-justify-right".

View Source
const STOCK_LEAVE_FULLSCREEN = "gtk-leave-fullscreen"

STOCK_LEAVE_FULLSCREEN: “Leave Fullscreen” item and icon.

Deprecated: Use named icon "view-restore".

View Source
const STOCK_MEDIA_FORWARD = "gtk-media-forward"

STOCK_MEDIA_FORWARD: “Media Forward” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "media-seek-forward" or the label "_Forward".

View Source
const STOCK_MEDIA_NEXT = "gtk-media-next"

STOCK_MEDIA_NEXT: “Media Next” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "media-skip-forward" or the label "_Next".

View Source
const STOCK_MEDIA_PAUSE = "gtk-media-pause"

STOCK_MEDIA_PAUSE: “Media Pause” item and icon.

Deprecated: Use named icon "media-playback-pause" or the label "P_ause".

View Source
const STOCK_MEDIA_PLAY = "gtk-media-play"

STOCK_MEDIA_PLAY: “Media Play” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "media-playback-start" or the label "_Play".

View Source
const STOCK_MEDIA_PREVIOUS = "gtk-media-previous"

STOCK_MEDIA_PREVIOUS: “Media Previous” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "media-skip-backward" or the label "Pre_vious".

View Source
const STOCK_MEDIA_RECORD = "gtk-media-record"

STOCK_MEDIA_RECORD: “Media Record” item and icon.

Deprecated: Use named icon "media-record" or the label "_Record".

View Source
const STOCK_MEDIA_REWIND = "gtk-media-rewind"

STOCK_MEDIA_REWIND: “Media Rewind” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "media-seek-backward" or the label "R_ewind".

View Source
const STOCK_MEDIA_STOP = "gtk-media-stop"

STOCK_MEDIA_STOP: “Media Stop” item and icon.

Deprecated: Use named icon "media-playback-stop" or the label "_Stop".

View Source
const STOCK_MISSING_IMAGE = "gtk-missing-image"

STOCK_MISSING_IMAGE: “Missing image” icon.

Deprecated: Use named icon "image-missing".

View Source
const STOCK_NETWORK = "gtk-network"

STOCK_NETWORK: “Network” item and icon.

Deprecated: Use named icon "network-workgroup".

View Source
const STOCK_NEW = "gtk-new"

STOCK_NEW: “New” item and icon.

Deprecated: Use named icon "document-new" or the label "_New".

View Source
const STOCK_NO = "gtk-no"

STOCK_NO: “No” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_OK = "gtk-ok"

STOCK_OK: “OK” item and icon.

Deprecated: Do not use an icon. Use label "_OK".

View Source
const STOCK_OPEN = "gtk-open"

STOCK_OPEN: “Open” item and icon.

Deprecated: Use named icon "document-open" or the label "_Open".

View Source
const STOCK_ORIENTATION_LANDSCAPE = "gtk-orientation-landscape"

STOCK_ORIENTATION_LANDSCAPE: “Landscape Orientation” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_ORIENTATION_PORTRAIT = "gtk-orientation-portrait"

STOCK_ORIENTATION_PORTRAIT: “Portrait Orientation” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_ORIENTATION_REVERSE_LANDSCAPE = "gtk-orientation-reverse-landscape"

STOCK_ORIENTATION_REVERSE_LANDSCAPE: “Reverse Landscape Orientation” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_ORIENTATION_REVERSE_PORTRAIT = "gtk-orientation-reverse-portrait"

STOCK_ORIENTATION_REVERSE_PORTRAIT: “Reverse Portrait Orientation” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_PAGE_SETUP = "gtk-page-setup"

STOCK_PAGE_SETUP: “Page Setup” item and icon.

Deprecated: Use named icon "document-page-setup" or the label "Page Set_up".

View Source
const STOCK_PASTE = "gtk-paste"

STOCK_PASTE: “Paste” item and icon.

Deprecated: Use named icon "edit-paste" or the label "_Paste".

View Source
const STOCK_PREFERENCES = "gtk-preferences"

STOCK_PREFERENCES: “Preferences” item and icon.

Deprecated: Use named icon "preferences-system" or the label "_Preferences".

View Source
const STOCK_PRINT = "gtk-print"

STOCK_PRINT: “Print” item and icon.

Deprecated: Use named icon "document-print" or the label "_Print".

View Source
const STOCK_PRINT_ERROR = "gtk-print-error"

STOCK_PRINT_ERROR: “Print Error” icon.

Deprecated: Use named icon "printer-error".

View Source
const STOCK_PRINT_PAUSED = "gtk-print-paused"

STOCK_PRINT_PAUSED: “Print Paused” icon.

Deprecated: since version 3.10.

View Source
const STOCK_PRINT_PREVIEW = "gtk-print-preview"

STOCK_PRINT_PREVIEW: “Print Preview” item and icon.

Deprecated: Use label "Pre_view".

View Source
const STOCK_PRINT_REPORT = "gtk-print-report"

STOCK_PRINT_REPORT: “Print Report” icon.

Deprecated: since version 3.10.

View Source
const STOCK_PRINT_WARNING = "gtk-print-warning"

STOCK_PRINT_WARNING: “Print Warning” icon.

Deprecated: since version 3.10.

View Source
const STOCK_PROPERTIES = "gtk-properties"

STOCK_PROPERTIES: “Properties” item and icon.

Deprecated: Use named icon "document-properties" or the label "_Properties".

View Source
const STOCK_QUIT = "gtk-quit"

STOCK_QUIT: “Quit” item and icon.

Deprecated: Use named icon "application-exit" or the label "_Quit".

View Source
const STOCK_REDO = "gtk-redo"

STOCK_REDO: “Redo” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "edit-redo" or the label "_Redo".

View Source
const STOCK_REFRESH = "gtk-refresh"

STOCK_REFRESH: “Refresh” item and icon.

Deprecated: Use named icon "view-refresh" or the label "_Refresh".

View Source
const STOCK_REMOVE = "gtk-remove"

STOCK_REMOVE: “Remove” item and icon.

Deprecated: Use named icon "list-remove" or the label "_Remove".

View Source
const STOCK_REVERT_TO_SAVED = "gtk-revert-to-saved"

STOCK_REVERT_TO_SAVED: “Revert” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "document-revert" or the label "_Revert".

View Source
const STOCK_SAVE = "gtk-save"

STOCK_SAVE: “Save” item and icon.

Deprecated: Use named icon "document-save" or the label "_Save".

View Source
const STOCK_SAVE_AS = "gtk-save-as"

STOCK_SAVE_AS: “Save As” item and icon.

Deprecated: Use named icon "document-save-as" or the label "Save _As".

View Source
const STOCK_SELECT_ALL = "gtk-select-all"

STOCK_SELECT_ALL: “Select All” item and icon.

Deprecated: Use named icon "edit-select-all" or the label "Select _All".

View Source
const STOCK_SELECT_COLOR = "gtk-select-color"

STOCK_SELECT_COLOR: “Color” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_SELECT_FONT = "gtk-select-font"

STOCK_SELECT_FONT: “Font” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_SORT_ASCENDING = "gtk-sort-ascending"

STOCK_SORT_ASCENDING: “Ascending” item and icon.

Deprecated: Use named icon "view-sort-ascending".

View Source
const STOCK_SORT_DESCENDING = "gtk-sort-descending"

STOCK_SORT_DESCENDING: “Descending” item and icon.

Deprecated: Use named icon "view-sort-descending".

View Source
const STOCK_SPELL_CHECK = "gtk-spell-check"

STOCK_SPELL_CHECK: “Spell Check” item and icon.

Deprecated: Use named icon "tools-check-spelling".

View Source
const STOCK_STOP = "gtk-stop"

STOCK_STOP: “Stop” item and icon.

Deprecated: Use named icon "process-stop" or the label "_Stop".

View Source
const STOCK_STRIKETHROUGH = "gtk-strikethrough"

STOCK_STRIKETHROUGH: “Strikethrough” item and icon.

Deprecated: Use named icon "format-text-strikethrough" or the label "_Strikethrough".

View Source
const STOCK_UNDELETE = "gtk-undelete"

STOCK_UNDELETE: “Undelete” item and icon. The icon has an RTL variant.

Deprecated: since version 3.10.

View Source
const STOCK_UNDERLINE = "gtk-underline"

STOCK_UNDERLINE: “Underline” item and icon.

Deprecated: Use named icon "format-text-underline" or the label "_Underline".

View Source
const STOCK_UNDO = "gtk-undo"

STOCK_UNDO: “Undo” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "edit-undo" or the label "_Undo".

View Source
const STOCK_UNINDENT = "gtk-unindent"

STOCK_UNINDENT: “Unindent” item and icon. The icon has an RTL variant.

Deprecated: Use named icon "format-indent-less".

View Source
const STOCK_YES = "gtk-yes"

STOCK_YES: “Yes” item and icon.

Deprecated: since version 3.10.

View Source
const STOCK_ZOOM_100 = "gtk-zoom-100"

STOCK_ZOOM_100: “Zoom 100%” item and icon.

Deprecated: Use named icon "zoom-original" or the label "_Normal Size".

View Source
const STOCK_ZOOM_FIT = "gtk-zoom-fit"

STOCK_ZOOM_FIT: “Zoom to Fit” item and icon.

Deprecated: Use named icon "zoom-fit-best" or the label "Best _Fit".

View Source
const STOCK_ZOOM_IN = "gtk-zoom-in"

STOCK_ZOOM_IN: “Zoom In” item and icon.

Deprecated: Use named icon "zoom-in" or the label "Zoom _In".

View Source
const STOCK_ZOOM_OUT = "gtk-zoom-out"

STOCK_ZOOM_OUT: “Zoom Out” item and icon.

Deprecated: Use named icon "zoom-out" or the label "Zoom _Out".

View Source
const STYLE_CLASS_ACCELERATOR = "accelerator"

STYLE_CLASS_ACCELERATOR: CSS class to match an accelerator.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_ARROW = "arrow"

STYLE_CLASS_ARROW: CSS class used when rendering an arrow element.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_BACKGROUND = "background"

STYLE_CLASS_BACKGROUND: CSS class to match the window background.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_BOTTOM = "bottom"

STYLE_CLASS_BOTTOM: CSS class to indicate an area at the bottom of a widget.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_BUTTON = "button"

STYLE_CLASS_BUTTON: CSS class to match buttons.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_CALENDAR = "calendar"

STYLE_CLASS_CALENDAR: CSS class to match calendars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_CELL = "cell"

STYLE_CLASS_CELL: CSS class to match content rendered in cell views.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_CHECK = "check"

STYLE_CLASS_CHECK: CSS class to match check boxes.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_COMBOBOX_ENTRY = "combobox-entry"

STYLE_CLASS_COMBOBOX_ENTRY: CSS class to match combobox entries.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_CONTEXT_MENU = "context-menu"

STYLE_CLASS_CONTEXT_MENU: CSS class to match context menus.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_CSD = "csd"

STYLE_CLASS_CSD: CSS class that gets added to windows which have client-side decorations.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_CURSOR_HANDLE = "cursor-handle"

STYLE_CLASS_CURSOR_HANDLE: CSS class used when rendering a drag handle for text selection.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_DEFAULT = "default"

STYLE_CLASS_DEFAULT: CSS class to match the default widget.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_DESTRUCTIVE_ACTION = "destructive-action"

STYLE_CLASS_DESTRUCTIVE_ACTION: CSS class used when an action (usually a button) is one that is expected to remove or destroy something visible to the user.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_DIM_LABEL = "dim-label"

STYLE_CLASS_DIM_LABEL: CSS class to match dimmed labels.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_DND = "dnd"

STYLE_CLASS_DND: CSS class for a drag-and-drop indicator.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_DOCK = "dock"

STYLE_CLASS_DOCK: CSS class defining a dock area.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_ENTRY = "entry"

STYLE_CLASS_ENTRY: CSS class to match text entries.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_ERROR = "error"

STYLE_CLASS_ERROR: CSS class for an area displaying an error message, such as those in infobars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_EXPANDER = "expander"

STYLE_CLASS_EXPANDER: CSS class defining an expander, such as those in treeviews.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_FLAT = "flat"

STYLE_CLASS_FLAT: CSS class that is added when widgets that usually have a frame or border (like buttons or entries) should appear without it.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_FRAME = "frame"

STYLE_CLASS_FRAME: CSS class defining a frame delimiting content, such as Frame or the scrolled window frame around the scrollable area.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_GRIP = "grip"

STYLE_CLASS_GRIP: CSS class defining a resize grip.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_HEADER = "header"

STYLE_CLASS_HEADER: CSS class to match a header element.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_HIGHLIGHT = "highlight"

STYLE_CLASS_HIGHLIGHT: CSS class defining a highlighted area, such as headings in assistants and calendars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_HORIZONTAL = "horizontal"

STYLE_CLASS_HORIZONTAL: CSS class for horizontally layered widgets.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_IMAGE = "image"

STYLE_CLASS_IMAGE: CSS class defining an image, such as the icon in an entry.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_INFO = "info"

STYLE_CLASS_INFO: CSS class for an area displaying an informational message, such as those in infobars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_INLINE_TOOLBAR = "inline-toolbar"

STYLE_CLASS_INLINE_TOOLBAR: CSS class to match inline toolbars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_INSERTION_CURSOR = "insertion-cursor"

STYLE_CLASS_INSERTION_CURSOR: CSS class used when rendering a drag handle for the insertion cursor position.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_LABEL = "label"

STYLE_CLASS_LABEL: CSS class to match labels.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_LEFT = "left"

STYLE_CLASS_LEFT: CSS class to indicate an area at the left of a widget.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_LEVEL_BAR = "level-bar"

STYLE_CLASS_LEVEL_BAR: CSS class used when rendering a level indicator, such as a battery charge level, or a password strength.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_LINKED = "linked"

STYLE_CLASS_LINKED: CSS class to match a linked area, such as a box containing buttons belonging to the same control.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_LIST = "list"

STYLE_CLASS_LIST: CSS class to match lists.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_LIST_ROW = "list-row"

STYLE_CLASS_LIST_ROW: CSS class to match list rows.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_MARK = "mark"

STYLE_CLASS_MARK: CSS class defining marks in a widget, such as in scales.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_MENU = "menu"

STYLE_CLASS_MENU: CSS class to match menus.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_MENUBAR = "menubar"

STYLE_CLASS_MENUBAR: CSS class to menubars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_MENUITEM = "menuitem"

STYLE_CLASS_MENUITEM: CSS class to match menu items.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_MESSAGE_DIALOG = "message-dialog"

STYLE_CLASS_MESSAGE_DIALOG: CSS class that is added to message dialogs.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_MONOSPACE = "monospace"

STYLE_CLASS_MONOSPACE: CSS class that is added to text view that should use a monospace font.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_NEEDS_ATTENTION = "needs-attention"

STYLE_CLASS_NEEDS_ATTENTION: CSS class used when an element needs the user attention, for instance a button in a stack switcher corresponding to a hidden page that changed state.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_NOTEBOOK = "notebook"

STYLE_CLASS_NOTEBOOK: CSS class defining a notebook.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_OSD = "osd"

STYLE_CLASS_OSD: CSS class used when rendering an OSD (On Screen Display) element, on top of another container.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_OVERSHOOT = "overshoot"

STYLE_CLASS_OVERSHOOT: CSS class that is added on the visual hints that happen when scrolling is attempted past the limits of a scrollable area.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_PANE_SEPARATOR = "pane-separator"

STYLE_CLASS_PANE_SEPARATOR: CSS class for a pane separator, such as those in Paned.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_PAPER = "paper"

STYLE_CLASS_PAPER: CSS class that is added to areas that should look like paper.

This is used in print previews and themes are encouraged to style it as black text on white background.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_POPOVER = "popover"

STYLE_CLASS_POPOVER: CSS class that matches popovers.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_POPUP = "popup"

STYLE_CLASS_POPUP: CSS class that is added to the toplevel windows used for menus.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_PRIMARY_TOOLBAR = "primary-toolbar"

STYLE_CLASS_PRIMARY_TOOLBAR: CSS class to match primary toolbars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_PROGRESSBAR = "progressbar"

STYLE_CLASS_PROGRESSBAR: CSS class to use when rendering activity as a progressbar.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_PULSE = "pulse"

STYLE_CLASS_PULSE: CSS class to use when rendering a pulse in an indeterminate progress bar.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_QUESTION = "question"

STYLE_CLASS_QUESTION: CSS class for an area displaying a question to the user, such as those in infobars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_RADIO = "radio"

STYLE_CLASS_RADIO: CSS class to match radio buttons.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_RAISED = "raised"

STYLE_CLASS_RAISED: CSS class to match a raised control, such as a raised button on a toolbar.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_READ_ONLY = "read-only"

STYLE_CLASS_READ_ONLY: CSS class used to indicate a read-only state.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_RIGHT = "right"

STYLE_CLASS_RIGHT: CSS class to indicate an area at the right of a widget.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_RUBBERBAND = "rubberband"

STYLE_CLASS_RUBBERBAND: CSS class to match the rubberband selection rectangle.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SCALE = "scale"

STYLE_CLASS_SCALE: CSS class to match scale widgets.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SCALE_HAS_MARKS_ABOVE = "scale-has-marks-above"

STYLE_CLASS_SCALE_HAS_MARKS_ABOVE: CSS class to match scale widgets with marks attached, all the marks are above for horizontal Scale. left for vertical Scale.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SCALE_HAS_MARKS_BELOW = "scale-has-marks-below"

STYLE_CLASS_SCALE_HAS_MARKS_BELOW: CSS class to match scale widgets with marks attached, all the marks are below for horizontal Scale, right for vertical Scale.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SCROLLBAR = "scrollbar"

STYLE_CLASS_SCROLLBAR: CSS class to match scrollbars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SCROLLBARS_JUNCTION = "scrollbars-junction"

STYLE_CLASS_SCROLLBARS_JUNCTION: CSS class to match the junction area between an horizontal and vertical scrollbar, when they’re both shown.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SEPARATOR = "separator"

STYLE_CLASS_SEPARATOR: CSS class for a separator.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SIDEBAR = "sidebar"

STYLE_CLASS_SIDEBAR: CSS class defining a sidebar, such as the left side in a file chooser.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SLIDER = "slider"

STYLE_CLASS_SLIDER: CSS class to match sliders.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SPINBUTTON = "spinbutton"

STYLE_CLASS_SPINBUTTON: CSS class defining an spinbutton.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SPINNER = "spinner"

STYLE_CLASS_SPINNER: CSS class to use when rendering activity as a “spinner”.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_STATUSBAR = "statusbar"

STYLE_CLASS_STATUSBAR: CSS class to match statusbars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SUBTITLE = "subtitle"

STYLE_CLASS_SUBTITLE: CSS class used for the subtitle label in a titlebar in a toplevel window.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_SUGGESTED_ACTION = "suggested-action"

STYLE_CLASS_SUGGESTED_ACTION: CSS class used when an action (usually a button) is the primary suggested action in a specific context.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_TITLE = "title"

STYLE_CLASS_TITLE: CSS class used for the title label in a titlebar in a toplevel window.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_TITLEBAR = "titlebar"

STYLE_CLASS_TITLEBAR: CSS class used when rendering a titlebar in a toplevel window.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_TOOLBAR = "toolbar"

STYLE_CLASS_TOOLBAR: CSS class to match toolbars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_TOOLTIP = "tooltip"

STYLE_CLASS_TOOLTIP: CSS class to match tooltip windows.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_TOP = "top"

STYLE_CLASS_TOP: CSS class to indicate an area at the top of a widget.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_TOUCH_SELECTION = "touch-selection"

STYLE_CLASS_TOUCH_SELECTION: CSS class for touch selection popups on entries and text views.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_TROUGH = "trough"

STYLE_CLASS_TROUGH: CSS class to match troughs, as in scrollbars and progressbars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_UNDERSHOOT = "undershoot"

STYLE_CLASS_UNDERSHOOT: CSS class that is added on the visual hints that happen where content is 'scrolled off' and can be made visible by scrolling.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_VERTICAL = "vertical"

STYLE_CLASS_VERTICAL: CSS class for vertically layered widgets.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_VIEW = "view"

STYLE_CLASS_VIEW: CSS class defining a view, such as iconviews or treeviews.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_WARNING = "warning"

STYLE_CLASS_WARNING: CSS class for an area displaying a warning message, such as those in infobars.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_CLASS_WIDE = "wide"

STYLE_CLASS_WIDE: CSS class to indicate that a UI element should be 'wide'. Used by Paned.

Refer to individual widget documentation for used style classes.

View Source
const STYLE_PROPERTY_BACKGROUND_COLOR = "background-color"

STYLE_PROPERTY_BACKGROUND_COLOR: property holding the background color of rendered elements as a RGBA.

View Source
const STYLE_PROPERTY_BACKGROUND_IMAGE = "background-image"

STYLE_PROPERTY_BACKGROUND_IMAGE: property holding the element’s background as a #cairo_pattern_t.

View Source
const STYLE_PROPERTY_BORDER_COLOR = "border-color"

STYLE_PROPERTY_BORDER_COLOR: property holding the element’s border color as a RGBA.

View Source
const STYLE_PROPERTY_BORDER_RADIUS = "border-radius"

STYLE_PROPERTY_BORDER_RADIUS: property holding the rendered element’s border radius in pixels as a #gint.

View Source
const STYLE_PROPERTY_BORDER_STYLE = "border-style"

STYLE_PROPERTY_BORDER_STYLE: property holding the element’s border style as a BorderStyle.

View Source
const STYLE_PROPERTY_BORDER_WIDTH = "border-width"

STYLE_PROPERTY_BORDER_WIDTH: property holding the rendered element’s border width in pixels as a Border. The border is the intermediary spacing property of the padding/border/margin series.

gtk_render_frame() uses this property to find out the frame line width, so Widgets rendering frames may need to add up this padding when requesting size.

View Source
const STYLE_PROPERTY_COLOR = "color"

STYLE_PROPERTY_COLOR: property holding the foreground color of rendered elements as a RGBA.

View Source
const STYLE_PROPERTY_FONT = "font"

STYLE_PROPERTY_FONT: property holding the font properties used when rendering text as a FontDescription.

View Source
const STYLE_PROPERTY_MARGIN = "margin"

STYLE_PROPERTY_MARGIN: property holding the rendered element’s margin as a Border. The margin is defined as the spacing between the border of the element and its surrounding elements. It is external to Widget's size allocations, and the most external spacing property of the padding/border/margin series.

View Source
const STYLE_PROPERTY_PADDING = "padding"

STYLE_PROPERTY_PADDING: property holding the rendered element’s padding as a Border. The padding is defined as the spacing between the inner part of the element border and its child. It’s the innermost spacing property of the padding/border/margin series.

View Source
const STYLE_PROVIDER_PRIORITY_APPLICATION = 600

STYLE_PROVIDER_PRIORITY_APPLICATION: priority that can be used when adding a StyleProvider for application-specific style information.

View Source
const STYLE_PROVIDER_PRIORITY_FALLBACK = 1

STYLE_PROVIDER_PRIORITY_FALLBACK: priority used for default style information that is used in the absence of themes.

Note that this is not very useful for providing default styling for custom style classes - themes are likely to override styling provided at this priority with catch-all * {...} rules.

View Source
const STYLE_PROVIDER_PRIORITY_SETTINGS = 400

STYLE_PROVIDER_PRIORITY_SETTINGS: priority used for style information provided via Settings.

This priority is higher than K_STYLE_PROVIDER_PRIORITY_THEME to let settings override themes.

View Source
const STYLE_PROVIDER_PRIORITY_THEME = 200

STYLE_PROVIDER_PRIORITY_THEME: priority used for style information provided by themes.

View Source
const STYLE_PROVIDER_PRIORITY_USER = 800

STYLE_PROVIDER_PRIORITY_USER: priority used for the style information from XDG_CONFIG_HOME/gtk-3.0/gtk.css.

You should not use priorities higher than this, to give the user the last word.

View Source
const STYLE_REGION_COLUMN = "column"

STYLE_REGION_COLUMN: widget region name to define a treeview column.

Deprecated: Don't use regions.

View Source
const STYLE_REGION_COLUMN_HEADER = "column-header"

STYLE_REGION_COLUMN_HEADER: widget region name to define a treeview column header.

Deprecated: Don't use regions.

View Source
const STYLE_REGION_ROW = "row"

STYLE_REGION_ROW: widget region name to define a treeview row.

Deprecated: Don't use regions.

View Source
const STYLE_REGION_TAB = "tab"

STYLE_REGION_TAB: widget region name to define a notebook tab.

Deprecated: Don't use regions.

View Source
const TEXT_VIEW_PRIORITY_VALIDATE = 125

TEXT_VIEW_PRIORITY_VALIDATE: priority at which the text view validates onscreen lines in an idle job in the background.

View Source
const TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID = -1

TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID can be used to make a TreeSortable use the default sort function.

See also gtk_tree_sortable_set_sort_column_id().

View Source
const TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID = -2

TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID: GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID can be used to make a TreeSortable use no sorting.

See also gtk_tree_sortable_set_sort_column_id().

Variables

View Source
var (
	GTypeAlign                      = coreglib.Type(C.gtk_align_get_type())
	GTypeArrowPlacement             = coreglib.Type(C.gtk_arrow_placement_get_type())
	GTypeArrowType                  = coreglib.Type(C.gtk_arrow_type_get_type())
	GTypeAssistantPageType          = coreglib.Type(C.gtk_assistant_page_type_get_type())
	GTypeBaselinePosition           = coreglib.Type(C.gtk_baseline_position_get_type())
	GTypeBorderStyle                = coreglib.Type(C.gtk_border_style_get_type())
	GTypeBuilderError               = coreglib.Type(C.gtk_builder_error_get_type())
	GTypeButtonBoxStyle             = coreglib.Type(C.gtk_button_box_style_get_type())
	GTypeButtonRole                 = coreglib.Type(C.gtk_button_role_get_type())
	GTypeButtonsType                = coreglib.Type(C.gtk_buttons_type_get_type())
	GTypeCellRendererAccelMode      = coreglib.Type(C.gtk_cell_renderer_accel_mode_get_type())
	GTypeCellRendererMode           = coreglib.Type(C.gtk_cell_renderer_mode_get_type())
	GTypeCornerType                 = coreglib.Type(C.gtk_corner_type_get_type())
	GTypeCSSProviderError           = coreglib.Type(C.gtk_css_provider_error_get_type())
	GTypeCSSSectionType             = coreglib.Type(C.gtk_css_section_type_get_type())
	GTypeDeleteType                 = coreglib.Type(C.gtk_delete_type_get_type())
	GTypeDirectionType              = coreglib.Type(C.gtk_direction_type_get_type())
	GTypeDragResult                 = coreglib.Type(C.gtk_drag_result_get_type())
	GTypeEntryIconPosition          = coreglib.Type(C.gtk_entry_icon_position_get_type())
	GTypeEventSequenceState         = coreglib.Type(C.gtk_event_sequence_state_get_type())
	GTypeExpanderStyle              = coreglib.Type(C.gtk_expander_style_get_type())
	GTypeFileChooserAction          = coreglib.Type(C.gtk_file_chooser_action_get_type())
	GTypeFileChooserConfirmation    = coreglib.Type(C.gtk_file_chooser_confirmation_get_type())
	GTypeFileChooserError           = coreglib.Type(C.gtk_file_chooser_error_get_type())
	GTypeIMPreeditStyle             = coreglib.Type(C.gtk_im_preedit_style_get_type())
	GTypeIMStatusStyle              = coreglib.Type(C.gtk_im_status_style_get_type())
	GTypeIconSize                   = coreglib.Type(C.gtk_icon_size_get_type())
	GTypeIconThemeError             = coreglib.Type(C.gtk_icon_theme_error_get_type())
	GTypeIconViewDropPosition       = coreglib.Type(C.gtk_icon_view_drop_position_get_type())
	GTypeImageType                  = coreglib.Type(C.gtk_image_type_get_type())
	GTypeInputPurpose               = coreglib.Type(C.gtk_input_purpose_get_type())
	GTypeJustification              = coreglib.Type(C.gtk_justification_get_type())
	GTypeLevelBarMode               = coreglib.Type(C.gtk_level_bar_mode_get_type())
	GTypeLicense                    = coreglib.Type(C.gtk_license_get_type())
	GTypeMenuDirectionType          = coreglib.Type(C.gtk_menu_direction_type_get_type())
	GTypeMessageType                = coreglib.Type(C.gtk_message_type_get_type())
	GTypeMovementStep               = coreglib.Type(C.gtk_movement_step_get_type())
	GTypeNotebookTab                = coreglib.Type(C.gtk_notebook_tab_get_type())
	GTypeNumberUpLayout             = coreglib.Type(C.gtk_number_up_layout_get_type())
	GTypeOrientation                = coreglib.Type(C.gtk_orientation_get_type())
	GTypePackDirection              = coreglib.Type(C.gtk_pack_direction_get_type())
	GTypePackType                   = coreglib.Type(C.gtk_pack_type_get_type())
	GTypePadActionType              = coreglib.Type(C.gtk_pad_action_type_get_type())
	GTypePageOrientation            = coreglib.Type(C.gtk_page_orientation_get_type())
	GTypePageSet                    = coreglib.Type(C.gtk_page_set_get_type())
	GTypePanDirection               = coreglib.Type(C.gtk_pan_direction_get_type())
	GTypePathPriorityType           = coreglib.Type(C.gtk_path_priority_type_get_type())
	GTypePathType                   = coreglib.Type(C.gtk_path_type_get_type())
	GTypePolicyType                 = coreglib.Type(C.gtk_policy_type_get_type())
	GTypePopoverConstraint          = coreglib.Type(C.gtk_popover_constraint_get_type())
	GTypePositionType               = coreglib.Type(C.gtk_position_type_get_type())
	GTypePrintDuplex                = coreglib.Type(C.gtk_print_duplex_get_type())
	GTypePrintError                 = coreglib.Type(C.gtk_print_error_get_type())
	GTypePrintOperationAction       = coreglib.Type(C.gtk_print_operation_action_get_type())
	GTypePrintOperationResult       = coreglib.Type(C.gtk_print_operation_result_get_type())
	GTypePrintPages                 = coreglib.Type(C.gtk_print_pages_get_type())
	GTypePrintQuality               = coreglib.Type(C.gtk_print_quality_get_type())
	GTypePrintStatus                = coreglib.Type(C.gtk_print_status_get_type())
	GTypePropagationPhase           = coreglib.Type(C.gtk_propagation_phase_get_type())
	GTypeRCTokenType                = coreglib.Type(C.gtk_rc_token_type_get_type())
	GTypeRecentChooserError         = coreglib.Type(C.gtk_recent_chooser_error_get_type())
	GTypeRecentManagerError         = coreglib.Type(C.gtk_recent_manager_error_get_type())
	GTypeRecentSortType             = coreglib.Type(C.gtk_recent_sort_type_get_type())
	GTypeReliefStyle                = coreglib.Type(C.gtk_relief_style_get_type())
	GTypeResizeMode                 = coreglib.Type(C.gtk_resize_mode_get_type())
	GTypeResponseType               = coreglib.Type(C.gtk_response_type_get_type())
	GTypeRevealerTransitionType     = coreglib.Type(C.gtk_revealer_transition_type_get_type())
	GTypeScrollStep                 = coreglib.Type(C.gtk_scroll_step_get_type())
	GTypeScrollType                 = coreglib.Type(C.gtk_scroll_type_get_type())
	GTypeScrollablePolicy           = coreglib.Type(C.gtk_scrollable_policy_get_type())
	GTypeSelectionMode              = coreglib.Type(C.gtk_selection_mode_get_type())
	GTypeSensitivityType            = coreglib.Type(C.gtk_sensitivity_type_get_type())
	GTypeShadowType                 = coreglib.Type(C.gtk_shadow_type_get_type())
	GTypeShortcutType               = coreglib.Type(C.gtk_shortcut_type_get_type())
	GTypeSizeGroupMode              = coreglib.Type(C.gtk_size_group_mode_get_type())
	GTypeSizeRequestMode            = coreglib.Type(C.gtk_size_request_mode_get_type())
	GTypeSortType                   = coreglib.Type(C.gtk_sort_type_get_type())
	GTypeSpinButtonUpdatePolicy     = coreglib.Type(C.gtk_spin_button_update_policy_get_type())
	GTypeSpinType                   = coreglib.Type(C.gtk_spin_type_get_type())
	GTypeStackTransitionType        = coreglib.Type(C.gtk_stack_transition_type_get_type())
	GTypeStateType                  = coreglib.Type(C.gtk_state_type_get_type())
	GTypeTextBufferTargetInfo       = coreglib.Type(C.gtk_text_buffer_target_info_get_type())
	GTypeTextDirection              = coreglib.Type(C.gtk_text_direction_get_type())
	GTypeTextExtendSelection        = coreglib.Type(C.gtk_text_extend_selection_get_type())
	GTypeTextViewLayer              = coreglib.Type(C.gtk_text_view_layer_get_type())
	GTypeTextWindowType             = coreglib.Type(C.gtk_text_window_type_get_type())
	GTypeToolbarSpaceStyle          = coreglib.Type(C.gtk_toolbar_space_style_get_type())
	GTypeToolbarStyle               = coreglib.Type(C.gtk_toolbar_style_get_type())
	GTypeTreeViewColumnSizing       = coreglib.Type(C.gtk_tree_view_column_sizing_get_type())
	GTypeTreeViewDropPosition       = coreglib.Type(C.gtk_tree_view_drop_position_get_type())
	GTypeTreeViewGridLines          = coreglib.Type(C.gtk_tree_view_grid_lines_get_type())
	GTypeUnit                       = coreglib.Type(C.gtk_unit_get_type())
	GTypeWidgetHelpType             = coreglib.Type(C.gtk_widget_help_type_get_type())
	GTypeWindowPosition             = coreglib.Type(C.gtk_window_position_get_type())
	GTypeWindowType                 = coreglib.Type(C.gtk_window_type_get_type())
	GTypeWrapMode                   = coreglib.Type(C.gtk_wrap_mode_get_type())
	GTypeAccelFlags                 = coreglib.Type(C.gtk_accel_flags_get_type())
	GTypeApplicationInhibitFlags    = coreglib.Type(C.gtk_application_inhibit_flags_get_type())
	GTypeAttachOptions              = coreglib.Type(C.gtk_attach_options_get_type())
	GTypeCalendarDisplayOptions     = coreglib.Type(C.gtk_calendar_display_options_get_type())
	GTypeCellRendererState          = coreglib.Type(C.gtk_cell_renderer_state_get_type())
	GTypeDebugFlag                  = coreglib.Type(C.gtk_debug_flag_get_type())
	GTypeDestDefaults               = coreglib.Type(C.gtk_dest_defaults_get_type())
	GTypeDialogFlags                = coreglib.Type(C.gtk_dialog_flags_get_type())
	GTypeEventControllerScrollFlags = coreglib.Type(C.gtk_event_controller_scroll_flags_get_type())
	GTypeFileFilterFlags            = coreglib.Type(C.gtk_file_filter_flags_get_type())
	GTypeFontChooserLevel           = coreglib.Type(C.gtk_font_chooser_level_get_type())
	GTypeIconLookupFlags            = coreglib.Type(C.gtk_icon_lookup_flags_get_type())
	GTypeInputHints                 = coreglib.Type(C.gtk_input_hints_get_type())
	GTypeJunctionSides              = coreglib.Type(C.gtk_junction_sides_get_type())
	GTypePlacesOpenFlags            = coreglib.Type(C.gtk_places_open_flags_get_type())
	GTypeRCFlags                    = coreglib.Type(C.gtk_rc_flags_get_type())
	GTypeRecentFilterFlags          = coreglib.Type(C.gtk_recent_filter_flags_get_type())
	GTypeRegionFlags                = coreglib.Type(C.gtk_region_flags_get_type())
	GTypeStateFlags                 = coreglib.Type(C.gtk_state_flags_get_type())
	GTypeStyleContextPrintFlags     = coreglib.Type(C.gtk_style_context_print_flags_get_type())
	GTypeTargetFlags                = coreglib.Type(C.gtk_target_flags_get_type())
	GTypeTextSearchFlags            = coreglib.Type(C.gtk_text_search_flags_get_type())
	GTypeToolPaletteDragTargets     = coreglib.Type(C.gtk_tool_palette_drag_targets_get_type())
	GTypeTreeModelFlags             = coreglib.Type(C.gtk_tree_model_flags_get_type())
	GTypeUIManagerItemType          = coreglib.Type(C.gtk_ui_manager_item_type_get_type())
	GTypeActionable                 = coreglib.Type(C.gtk_actionable_get_type())
	GTypeActivatable                = coreglib.Type(C.gtk_activatable_get_type())
	GTypeAppChooser                 = coreglib.Type(C.gtk_app_chooser_get_type())
	GTypeBuildable                  = coreglib.Type(C.gtk_buildable_get_type())
	GTypeCellAccessibleParent       = coreglib.Type(C.gtk_cell_accessible_parent_get_type())
	GTypeCellEditable               = coreglib.Type(C.gtk_cell_editable_get_type())
	GTypeCellLayout                 = coreglib.Type(C.gtk_cell_layout_get_type())
	GTypeColorChooser               = coreglib.Type(C.gtk_color_chooser_get_type())
	GTypeEditable                   = coreglib.Type(C.gtk_editable_get_type())
	GTypeFileChooser                = coreglib.Type(C.gtk_file_chooser_get_type())
	GTypeFontChooser                = coreglib.Type(C.gtk_font_chooser_get_type())
	GTypeOrientable                 = coreglib.Type(C.gtk_orientable_get_type())
	GTypePrintOperationPreview      = coreglib.Type(C.gtk_print_operation_preview_get_type())
	GTypeRecentChooser              = coreglib.Type(C.gtk_recent_chooser_get_type())
	GTypeScrollable                 = coreglib.Type(C.gtk_scrollable_get_type())
	GTypeStyleProvider              = coreglib.Type(C.gtk_style_provider_get_type())
	GTypeToolShell                  = coreglib.Type(C.gtk_tool_shell_get_type())
	GTypeTreeDragDest               = coreglib.Type(C.gtk_tree_drag_dest_get_type())
	GTypeTreeDragSource             = coreglib.Type(C.gtk_tree_drag_source_get_type())
	GTypeTreeModel                  = coreglib.Type(C.gtk_tree_model_get_type())
	GTypeTreeSortable               = coreglib.Type(C.gtk_tree_sortable_get_type())
	GTypeAboutDialog                = coreglib.Type(C.gtk_about_dialog_get_type())
	GTypeAccelGroup                 = coreglib.Type(C.gtk_accel_group_get_type())
	GTypeAccelLabel                 = coreglib.Type(C.gtk_accel_label_get_type())
	GTypeAccelMap                   = coreglib.Type(C.gtk_accel_map_get_type())
	GTypeAccessible                 = coreglib.Type(C.gtk_accessible_get_type())
	GTypeAction                     = coreglib.Type(C.gtk_action_get_type())
	GTypeActionBar                  = coreglib.Type(C.gtk_action_bar_get_type())
	GTypeActionGroup                = coreglib.Type(C.gtk_action_group_get_type())
	GTypeAdjustment                 = coreglib.Type(C.gtk_adjustment_get_type())
	GTypeAlignment                  = coreglib.Type(C.gtk_alignment_get_type())
	GTypeAppChooserButton           = coreglib.Type(C.gtk_app_chooser_button_get_type())
	GTypeAppChooserDialog           = coreglib.Type(C.gtk_app_chooser_dialog_get_type())
	GTypeAppChooserWidget           = coreglib.Type(C.gtk_app_chooser_widget_get_type())
	GTypeApplication                = coreglib.Type(C.gtk_application_get_type())
	GTypeApplicationWindow          = coreglib.Type(C.gtk_application_window_get_type())
	GTypeArrow                      = coreglib.Type(C.gtk_arrow_get_type())
	GTypeArrowAccessible            = coreglib.Type(C.gtk_arrow_accessible_get_type())
	GTypeAspectFrame                = coreglib.Type(C.gtk_aspect_frame_get_type())
	GTypeAssistant                  = coreglib.Type(C.gtk_assistant_get_type())
	GTypeBin                        = coreglib.Type(C.gtk_bin_get_type())
	GTypeBooleanCellAccessible      = coreglib.Type(C.gtk_boolean_cell_accessible_get_type())
	GTypeBox                        = coreglib.Type(C.gtk_box_get_type())
	GTypeBuilder                    = coreglib.Type(C.gtk_builder_get_type())
	GTypeButton                     = coreglib.Type(C.gtk_button_get_type())
	GTypeButtonAccessible           = coreglib.Type(C.gtk_button_accessible_get_type())
	GTypeButtonBox                  = coreglib.Type(C.gtk_button_box_get_type())
	GTypeCalendar                   = coreglib.Type(C.gtk_calendar_get_type())
	GTypeCellAccessible             = coreglib.Type(C.gtk_cell_accessible_get_type())
	GTypeCellArea                   = coreglib.Type(C.gtk_cell_area_get_type())
	GTypeCellAreaBox                = coreglib.Type(C.gtk_cell_area_box_get_type())
	GTypeCellAreaContext            = coreglib.Type(C.gtk_cell_area_context_get_type())
	GTypeCellRenderer               = coreglib.Type(C.gtk_cell_renderer_get_type())
	GTypeCellRendererAccel          = coreglib.Type(C.gtk_cell_renderer_accel_get_type())
	GTypeCellRendererCombo          = coreglib.Type(C.gtk_cell_renderer_combo_get_type())
	GTypeCellRendererPixbuf         = coreglib.Type(C.gtk_cell_renderer_pixbuf_get_type())
	GTypeCellRendererProgress       = coreglib.Type(C.gtk_cell_renderer_progress_get_type())
	GTypeCellRendererSpin           = coreglib.Type(C.gtk_cell_renderer_spin_get_type())
	GTypeCellRendererSpinner        = coreglib.Type(C.gtk_cell_renderer_spinner_get_type())
	GTypeCellRendererText           = coreglib.Type(C.gtk_cell_renderer_text_get_type())
	GTypeCellRendererToggle         = coreglib.Type(C.gtk_cell_renderer_toggle_get_type())
	GTypeCellView                   = coreglib.Type(C.gtk_cell_view_get_type())
	GTypeCheckButton                = coreglib.Type(C.gtk_check_button_get_type())
	GTypeCheckMenuItem              = coreglib.Type(C.gtk_check_menu_item_get_type())
	GTypeCheckMenuItemAccessible    = coreglib.Type(C.gtk_check_menu_item_accessible_get_type())
	GTypeClipboard                  = coreglib.Type(C.gtk_clipboard_get_type())
	GTypeColorButton                = coreglib.Type(C.gtk_color_button_get_type())
	GTypeColorChooserDialog         = coreglib.Type(C.gtk_color_chooser_dialog_get_type())
	GTypeColorChooserWidget         = coreglib.Type(C.gtk_color_chooser_widget_get_type())
	GTypeColorSelection             = coreglib.Type(C.gtk_color_selection_get_type())
	GTypeColorSelectionDialog       = coreglib.Type(C.gtk_color_selection_dialog_get_type())
	GTypeComboBox                   = coreglib.Type(C.gtk_combo_box_get_type())
	GTypeComboBoxAccessible         = coreglib.Type(C.gtk_combo_box_accessible_get_type())
	GTypeComboBoxText               = coreglib.Type(C.gtk_combo_box_text_get_type())
	GTypeContainer                  = coreglib.Type(C.gtk_container_get_type())
	GTypeContainerAccessible        = coreglib.Type(C.gtk_container_accessible_get_type())
	GTypeContainerCellAccessible    = coreglib.Type(C.gtk_container_cell_accessible_get_type())
	GTypeCSSProvider                = coreglib.Type(C.gtk_css_provider_get_type())
	GTypeDialog                     = coreglib.Type(C.gtk_dialog_get_type())
	GTypeDrawingArea                = coreglib.Type(C.gtk_drawing_area_get_type())
	GTypeEntry                      = coreglib.Type(C.gtk_entry_get_type())
	GTypeEntryAccessible            = coreglib.Type(C.gtk_entry_accessible_get_type())
	GTypeEntryBuffer                = coreglib.Type(C.gtk_entry_buffer_get_type())
	GTypeEntryCompletion            = coreglib.Type(C.gtk_entry_completion_get_type())
	GTypeEntryIconAccessible        = coreglib.Type(C.gtk_entry_icon_accessible_get_type())
	GTypeEventBox                   = coreglib.Type(C.gtk_event_box_get_type())
	GTypeEventController            = coreglib.Type(C.gtk_event_controller_get_type())
	GTypeEventControllerKey         = coreglib.Type(C.gtk_event_controller_key_get_type())
	GTypeEventControllerMotion      = coreglib.Type(C.gtk_event_controller_motion_get_type())
	GTypeEventControllerScroll      = coreglib.Type(C.gtk_event_controller_scroll_get_type())
	GTypeExpander                   = coreglib.Type(C.gtk_expander_get_type())
	GTypeExpanderAccessible         = coreglib.Type(C.gtk_expander_accessible_get_type())
	GTypeFileChooserButton          = coreglib.Type(C.gtk_file_chooser_button_get_type())
	GTypeFileChooserDialog          = coreglib.Type(C.gtk_file_chooser_dialog_get_type())
	GTypeFileChooserNative          = coreglib.Type(C.gtk_file_chooser_native_get_type())
	GTypeFileChooserWidget          = coreglib.Type(C.gtk_file_chooser_widget_get_type())
	GTypeFileFilter                 = coreglib.Type(C.gtk_file_filter_get_type())
	GTypeFixed                      = coreglib.Type(C.gtk_fixed_get_type())
	GTypeFlowBox                    = coreglib.Type(C.gtk_flow_box_get_type())
	GTypeFlowBoxAccessible          = coreglib.Type(C.gtk_flow_box_accessible_get_type())
	GTypeFlowBoxChild               = coreglib.Type(C.gtk_flow_box_child_get_type())
	GTypeFlowBoxChildAccessible     = coreglib.Type(C.gtk_flow_box_child_accessible_get_type())
	GTypeFontButton                 = coreglib.Type(C.gtk_font_button_get_type())
	GTypeFontChooserDialog          = coreglib.Type(C.gtk_font_chooser_dialog_get_type())
	GTypeFontChooserWidget          = coreglib.Type(C.gtk_font_chooser_widget_get_type())
	GTypeFontSelection              = coreglib.Type(C.gtk_font_selection_get_type())
	GTypeFontSelectionDialog        = coreglib.Type(C.gtk_font_selection_dialog_get_type())
	GTypeFrame                      = coreglib.Type(C.gtk_frame_get_type())
	GTypeFrameAccessible            = coreglib.Type(C.gtk_frame_accessible_get_type())
	GTypeGLArea                     = coreglib.Type(C.gtk_gl_area_get_type())
	GTypeGesture                    = coreglib.Type(C.gtk_gesture_get_type())
	GTypeGestureDrag                = coreglib.Type(C.gtk_gesture_drag_get_type())
	GTypeGestureLongPress           = coreglib.Type(C.gtk_gesture_long_press_get_type())
	GTypeGestureMultiPress          = coreglib.Type(C.gtk_gesture_multi_press_get_type())
	GTypeGesturePan                 = coreglib.Type(C.gtk_gesture_pan_get_type())
	GTypeGestureRotate              = coreglib.Type(C.gtk_gesture_rotate_get_type())
	GTypeGestureSingle              = coreglib.Type(C.gtk_gesture_single_get_type())
	GTypeGestureStylus              = coreglib.Type(C.gtk_gesture_stylus_get_type())
	GTypeGestureSwipe               = coreglib.Type(C.gtk_gesture_swipe_get_type())
	GTypeGestureZoom                = coreglib.Type(C.gtk_gesture_zoom_get_type())
	GTypeGrid                       = coreglib.Type(C.gtk_grid_get_type())
	GTypeHBox                       = coreglib.Type(C.gtk_hbox_get_type())
	GTypeHButtonBox                 = coreglib.Type(C.gtk_hbutton_box_get_type())
	GTypeHPaned                     = coreglib.Type(C.gtk_hpaned_get_type())
	GTypeHSV                        = coreglib.Type(C.gtk_hsv_get_type())
	GTypeHScale                     = coreglib.Type(C.gtk_hscale_get_type())
	GTypeHScrollbar                 = coreglib.Type(C.gtk_hscrollbar_get_type())
	GTypeHSeparator                 = coreglib.Type(C.gtk_hseparator_get_type())
	GTypeHandleBox                  = coreglib.Type(C.gtk_handle_box_get_type())
	GTypeHeaderBar                  = coreglib.Type(C.gtk_header_bar_get_type())
	GTypeIMContext                  = coreglib.Type(C.gtk_im_context_get_type())
	GTypeIMContextSimple            = coreglib.Type(C.gtk_im_context_simple_get_type())
	GTypeIMMulticontext             = coreglib.Type(C.gtk_im_multicontext_get_type())
	GTypeIconFactory                = coreglib.Type(C.gtk_icon_factory_get_type())
	GTypeIconInfo                   = coreglib.Type(C.gtk_icon_info_get_type())
	GTypeIconTheme                  = coreglib.Type(C.gtk_icon_theme_get_type())
	GTypeIconView                   = coreglib.Type(C.gtk_icon_view_get_type())
	GTypeIconViewAccessible         = coreglib.Type(C.gtk_icon_view_accessible_get_type())
	GTypeImage                      = coreglib.Type(C.gtk_image_get_type())
	GTypeImageAccessible            = coreglib.Type(C.gtk_image_accessible_get_type())
	GTypeImageCellAccessible        = coreglib.Type(C.gtk_image_cell_accessible_get_type())
	GTypeImageMenuItem              = coreglib.Type(C.gtk_image_menu_item_get_type())
	GTypeInfoBar                    = coreglib.Type(C.gtk_info_bar_get_type())
	GTypeInvisible                  = coreglib.Type(C.gtk_invisible_get_type())
	GTypeLabel                      = coreglib.Type(C.gtk_label_get_type())
	GTypeLabelAccessible            = coreglib.Type(C.gtk_label_accessible_get_type())
	GTypeLayout                     = coreglib.Type(C.gtk_layout_get_type())
	GTypeLevelBar                   = coreglib.Type(C.gtk_level_bar_get_type())
	GTypeLevelBarAccessible         = coreglib.Type(C.gtk_level_bar_accessible_get_type())
	GTypeLinkButton                 = coreglib.Type(C.gtk_link_button_get_type())
	GTypeLinkButtonAccessible       = coreglib.Type(C.gtk_link_button_accessible_get_type())
	GTypeListBox                    = coreglib.Type(C.gtk_list_box_get_type())
	GTypeListBoxAccessible          = coreglib.Type(C.gtk_list_box_accessible_get_type())
	GTypeListBoxRow                 = coreglib.Type(C.gtk_list_box_row_get_type())
	GTypeListBoxRowAccessible       = coreglib.Type(C.gtk_list_box_row_accessible_get_type())
	GTypeListStore                  = coreglib.Type(C.gtk_list_store_get_type())
	GTypeLockButton                 = coreglib.Type(C.gtk_lock_button_get_type())
	GTypeLockButtonAccessible       = coreglib.Type(C.gtk_lock_button_accessible_get_type())
	GTypeMenu                       = coreglib.Type(C.gtk_menu_get_type())
	GTypeMenuAccessible             = coreglib.Type(C.gtk_menu_accessible_get_type())
	GTypeMenuBar                    = coreglib.Type(C.gtk_menu_bar_get_type())
	GTypeMenuButton                 = coreglib.Type(C.gtk_menu_button_get_type())
	GTypeMenuButtonAccessible       = coreglib.Type(C.gtk_menu_button_accessible_get_type())
	GTypeMenuItem                   = coreglib.Type(C.gtk_menu_item_get_type())
	GTypeMenuItemAccessible         = coreglib.Type(C.gtk_menu_item_accessible_get_type())
	GTypeMenuShell                  = coreglib.Type(C.gtk_menu_shell_get_type())
	GTypeMenuShellAccessible        = coreglib.Type(C.gtk_menu_shell_accessible_get_type())
	GTypeMenuToolButton             = coreglib.Type(C.gtk_menu_tool_button_get_type())
	GTypeMessageDialog              = coreglib.Type(C.gtk_message_dialog_get_type())
	GTypeMisc                       = coreglib.Type(C.gtk_misc_get_type())
	GTypeModelButton                = coreglib.Type(C.gtk_model_button_get_type())
	GTypeMountOperation             = coreglib.Type(C.gtk_mount_operation_get_type())
	GTypeNativeDialog               = coreglib.Type(C.gtk_native_dialog_get_type())
	GTypeNotebook                   = coreglib.Type(C.gtk_notebook_get_type())
	GTypeNotebookAccessible         = coreglib.Type(C.gtk_notebook_accessible_get_type())
	GTypeNotebookPageAccessible     = coreglib.Type(C.gtk_notebook_page_accessible_get_type())
	GTypeNumerableIcon              = coreglib.Type(C.gtk_numerable_icon_get_type())
	GTypeOffscreenWindow            = coreglib.Type(C.gtk_offscreen_window_get_type())
	GTypeOverlay                    = coreglib.Type(C.gtk_overlay_get_type())
	GTypePadController              = coreglib.Type(C.gtk_pad_controller_get_type())
	GTypePageSetup                  = coreglib.Type(C.gtk_page_setup_get_type())
	GTypePaned                      = coreglib.Type(C.gtk_paned_get_type())
	GTypePanedAccessible            = coreglib.Type(C.gtk_paned_accessible_get_type())
	GTypePlacesSidebar              = coreglib.Type(C.gtk_places_sidebar_get_type())
	GTypePlug                       = coreglib.Type(C.gtk_plug_get_type())
	GTypePlugAccessible             = coreglib.Type(C.gtk_plug_accessible_get_type())
	GTypePopover                    = coreglib.Type(C.gtk_popover_get_type())
	GTypePopoverAccessible          = coreglib.Type(C.gtk_popover_accessible_get_type())
	GTypePopoverMenu                = coreglib.Type(C.gtk_popover_menu_get_type())
	GTypePrintContext               = coreglib.Type(C.gtk_print_context_get_type())
	GTypePrintOperation             = coreglib.Type(C.gtk_print_operation_get_type())
	GTypePrintSettings              = coreglib.Type(C.gtk_print_settings_get_type())
	GTypeProgressBar                = coreglib.Type(C.gtk_progress_bar_get_type())
	GTypeProgressBarAccessible      = coreglib.Type(C.gtk_progress_bar_accessible_get_type())
	GTypeRadioAction                = coreglib.Type(C.gtk_radio_action_get_type())
	GTypeRadioButton                = coreglib.Type(C.gtk_radio_button_get_type())
	GTypeRadioButtonAccessible      = coreglib.Type(C.gtk_radio_button_accessible_get_type())
	GTypeRadioMenuItem              = coreglib.Type(C.gtk_radio_menu_item_get_type())
	GTypeRadioMenuItemAccessible    = coreglib.Type(C.gtk_radio_menu_item_accessible_get_type())
	GTypeRadioToolButton            = coreglib.Type(C.gtk_radio_tool_button_get_type())
	GTypeRange                      = coreglib.Type(C.gtk_range_get_type())
	GTypeRangeAccessible            = coreglib.Type(C.gtk_range_accessible_get_type())
	GTypeRCStyle                    = coreglib.Type(C.gtk_rc_style_get_type())
	GTypeRecentAction               = coreglib.Type(C.gtk_recent_action_get_type())
	GTypeRecentChooserDialog        = coreglib.Type(C.gtk_recent_chooser_dialog_get_type())
	GTypeRecentChooserMenu          = coreglib.Type(C.gtk_recent_chooser_menu_get_type())
	GTypeRecentChooserWidget        = coreglib.Type(C.gtk_recent_chooser_widget_get_type())
	GTypeRecentFilter               = coreglib.Type(C.gtk_recent_filter_get_type())
	GTypeRecentManager              = coreglib.Type(C.gtk_recent_manager_get_type())
	GTypeRendererCellAccessible     = coreglib.Type(C.gtk_renderer_cell_accessible_get_type())
	GTypeRevealer                   = coreglib.Type(C.gtk_revealer_get_type())
	GTypeScale                      = coreglib.Type(C.gtk_scale_get_type())
	GTypeScaleAccessible            = coreglib.Type(C.gtk_scale_accessible_get_type())
	GTypeScaleButton                = coreglib.Type(C.gtk_scale_button_get_type())
	GTypeScaleButtonAccessible      = coreglib.Type(C.gtk_scale_button_accessible_get_type())
	GTypeScrollbar                  = coreglib.Type(C.gtk_scrollbar_get_type())
	GTypeScrolledWindow             = coreglib.Type(C.gtk_scrolled_window_get_type())
	GTypeScrolledWindowAccessible   = coreglib.Type(C.gtk_scrolled_window_accessible_get_type())
	GTypeSearchBar                  = coreglib.Type(C.gtk_search_bar_get_type())
	GTypeSearchEntry                = coreglib.Type(C.gtk_search_entry_get_type())
	GTypeSeparator                  = coreglib.Type(C.gtk_separator_get_type())
	GTypeSeparatorMenuItem          = coreglib.Type(C.gtk_separator_menu_item_get_type())
	GTypeSeparatorToolItem          = coreglib.Type(C.gtk_separator_tool_item_get_type())
	GTypeSettings                   = coreglib.Type(C.gtk_settings_get_type())
	GTypeShortcutLabel              = coreglib.Type(C.gtk_shortcut_label_get_type())
	GTypeShortcutsGroup             = coreglib.Type(C.gtk_shortcuts_group_get_type())
	GTypeShortcutsSection           = coreglib.Type(C.gtk_shortcuts_section_get_type())
	GTypeShortcutsShortcut          = coreglib.Type(C.gtk_shortcuts_shortcut_get_type())
	GTypeShortcutsWindow            = coreglib.Type(C.gtk_shortcuts_window_get_type())
	GTypeSizeGroup                  = coreglib.Type(C.gtk_size_group_get_type())
	GTypeSocket                     = coreglib.Type(C.gtk_socket_get_type())
	GTypeSocketAccessible           = coreglib.Type(C.gtk_socket_accessible_get_type())
	GTypeSpinButton                 = coreglib.Type(C.gtk_spin_button_get_type())
	GTypeSpinButtonAccessible       = coreglib.Type(C.gtk_spin_button_accessible_get_type())
	GTypeSpinner                    = coreglib.Type(C.gtk_spinner_get_type())
	GTypeSpinnerAccessible          = coreglib.Type(C.gtk_spinner_accessible_get_type())
	GTypeStack                      = coreglib.Type(C.gtk_stack_get_type())
	GTypeStackAccessible            = coreglib.Type(C.gtk_stack_accessible_get_type())
	GTypeStackSidebar               = coreglib.Type(C.gtk_stack_sidebar_get_type())
	GTypeStackSwitcher              = coreglib.Type(C.gtk_stack_switcher_get_type())
	GTypeStatusIcon                 = coreglib.Type(C.gtk_status_icon_get_type())
	GTypeStatusbar                  = coreglib.Type(C.gtk_statusbar_get_type())
	GTypeStatusbarAccessible        = coreglib.Type(C.gtk_statusbar_accessible_get_type())
	GTypeStyle                      = coreglib.Type(C.gtk_style_get_type())
	GTypeStyleContext               = coreglib.Type(C.gtk_style_context_get_type())
	GTypeStyleProperties            = coreglib.Type(C.gtk_style_properties_get_type())
	GTypeSwitch                     = coreglib.Type(C.gtk_switch_get_type())
	GTypeSwitchAccessible           = coreglib.Type(C.gtk_switch_accessible_get_type())
	GTypeTable                      = coreglib.Type(C.gtk_table_get_type())
	GTypeTearoffMenuItem            = coreglib.Type(C.gtk_tearoff_menu_item_get_type())
	GTypeTextBuffer                 = coreglib.Type(C.gtk_text_buffer_get_type())
	GTypeTextCellAccessible         = coreglib.Type(C.gtk_text_cell_accessible_get_type())
	GTypeTextChildAnchor            = coreglib.Type(C.gtk_text_child_anchor_get_type())
	GTypeTextMark                   = coreglib.Type(C.gtk_text_mark_get_type())
	GTypeTextTag                    = coreglib.Type(C.gtk_text_tag_get_type())
	GTypeTextTagTable               = coreglib.Type(C.gtk_text_tag_table_get_type())
	GTypeTextView                   = coreglib.Type(C.gtk_text_view_get_type())
	GTypeTextViewAccessible         = coreglib.Type(C.gtk_text_view_accessible_get_type())
	GTypeThemingEngine              = coreglib.Type(C.gtk_theming_engine_get_type())
	GTypeToggleAction               = coreglib.Type(C.gtk_toggle_action_get_type())
	GTypeToggleButton               = coreglib.Type(C.gtk_toggle_button_get_type())
	GTypeToggleButtonAccessible     = coreglib.Type(C.gtk_toggle_button_accessible_get_type())
	GTypeToggleToolButton           = coreglib.Type(C.gtk_toggle_tool_button_get_type())
	GTypeToolButton                 = coreglib.Type(C.gtk_tool_button_get_type())
	GTypeToolItem                   = coreglib.Type(C.gtk_tool_item_get_type())
	GTypeToolItemGroup              = coreglib.Type(C.gtk_tool_item_group_get_type())
	GTypeToolPalette                = coreglib.Type(C.gtk_tool_palette_get_type())
	GTypeToolbar                    = coreglib.Type(C.gtk_toolbar_get_type())
	GTypeTooltip                    = coreglib.Type(C.gtk_tooltip_get_type())
	GTypeToplevelAccessible         = coreglib.Type(C.gtk_toplevel_accessible_get_type())
	GTypeTreeModelFilter            = coreglib.Type(C.gtk_tree_model_filter_get_type())
	GTypeTreeModelSort              = coreglib.Type(C.gtk_tree_model_sort_get_type())
	GTypeTreeSelection              = coreglib.Type(C.gtk_tree_selection_get_type())
	GTypeTreeStore                  = coreglib.Type(C.gtk_tree_store_get_type())
	GTypeTreeView                   = coreglib.Type(C.gtk_tree_view_get_type())
	GTypeTreeViewAccessible         = coreglib.Type(C.gtk_tree_view_accessible_get_type())
	GTypeTreeViewColumn             = coreglib.Type(C.gtk_tree_view_column_get_type())
	GTypeUIManager                  = coreglib.Type(C.gtk_ui_manager_get_type())
	GTypeVBox                       = coreglib.Type(C.gtk_vbox_get_type())
	GTypeVButtonBox                 = coreglib.Type(C.gtk_vbutton_box_get_type())
	GTypeVPaned                     = coreglib.Type(C.gtk_vpaned_get_type())
	GTypeVScale                     = coreglib.Type(C.gtk_vscale_get_type())
	GTypeVScrollbar                 = coreglib.Type(C.gtk_vscrollbar_get_type())
	GTypeVSeparator                 = coreglib.Type(C.gtk_vseparator_get_type())
	GTypeViewport                   = coreglib.Type(C.gtk_viewport_get_type())
	GTypeVolumeButton               = coreglib.Type(C.gtk_volume_button_get_type())
	GTypeWidget                     = coreglib.Type(C.gtk_widget_get_type())
	GTypeWidgetAccessible           = coreglib.Type(C.gtk_widget_accessible_get_type())
	GTypeWindow                     = coreglib.Type(C.gtk_window_get_type())
	GTypeWindowAccessible           = coreglib.Type(C.gtk_window_accessible_get_type())
	GTypeWindowGroup                = coreglib.Type(C.gtk_window_group_get_type())
	GTypeBorder                     = coreglib.Type(C.gtk_border_get_type())
	GTypeCSSSection                 = coreglib.Type(C.gtk_css_section_get_type())
	GTypeGradient                   = coreglib.Type(C.gtk_gradient_get_type())
	GTypeIconSet                    = coreglib.Type(C.gtk_icon_set_get_type())
	GTypeIconSource                 = coreglib.Type(C.gtk_icon_source_get_type())
	GTypePaperSize                  = coreglib.Type(C.gtk_paper_size_get_type())
	GTypeRecentInfo                 = coreglib.Type(C.gtk_recent_info_get_type())
	GTypeRequisition                = coreglib.Type(C.gtk_requisition_get_type())
	GTypeSelectionData              = coreglib.Type(C.gtk_selection_data_get_type())
	GTypeSymbolicColor              = coreglib.Type(C.gtk_symbolic_color_get_type())
	GTypeTargetEntry                = coreglib.Type(C.gtk_target_entry_get_type())
	GTypeTargetList                 = coreglib.Type(C.gtk_target_list_get_type())
	GTypeTextAttributes             = coreglib.Type(C.gtk_text_attributes_get_type())
	GTypeTextIter                   = coreglib.Type(C.gtk_text_iter_get_type())
	GTypeTreeIter                   = coreglib.Type(C.gtk_tree_iter_get_type())
	GTypeTreePath                   = coreglib.Type(C.gtk_tree_path_get_type())
	GTypeTreeRowReference           = coreglib.Type(C.gtk_tree_row_reference_get_type())
	GTypeWidgetPath                 = coreglib.Type(C.gtk_widget_path_get_type())
)

GType values.

Functions

func AccelGroupsActivate

func AccelGroupsActivate(object *coreglib.Object, accelKey uint, accelMods gdk.ModifierType) bool

AccelGroupsActivate finds the first accelerator in any AccelGroup attached to object that matches accel_key and accel_mods, and activates that accelerator.

The function takes the following parameters:

  • object usually a Window, on which to activate the accelerator.
  • accelKey: accelerator keyval from a key event.
  • accelMods: keyboard state mask from a key event.

The function returns the following values:

  • ok: TRUE if an accelerator was activated and handled this keypress.

func AccelMapAddEntry

func AccelMapAddEntry(accelPath string, accelKey uint, accelMods gdk.ModifierType)

AccelMapAddEntry registers a new accelerator with the global accelerator map. This function should only be called once per accel_path with the canonical accel_key and accel_mods for this path. To change the accelerator during runtime programatically, use gtk_accel_map_change_entry().

Set accel_key and accel_mods to 0 to request a removal of the accelerator.

Note that accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().

The function takes the following parameters:

  • accelPath: valid accelerator path.
  • accelKey: accelerator key.
  • accelMods: accelerator modifiers.

func AccelMapAddFilter

func AccelMapAddFilter(filterPattern string)

AccelMapAddFilter adds a filter to the global list of accel path filters.

Accel map entries whose accel path matches one of the filters are skipped by gtk_accel_map_foreach().

This function is intended for GTK+ modules that create their own menus, but don’t want them to be saved into the applications accelerator map dump.

The function takes the following parameters:

  • filterPattern: pattern (see Spec).

func AccelMapChangeEntry

func AccelMapChangeEntry(accelPath string, accelKey uint, accelMods gdk.ModifierType, replace bool) bool

AccelMapChangeEntry changes the accel_key and accel_mods currently associated with accel_path. Due to conflicts with other accelerators, a change may not always be possible, replace indicates whether other accelerators may be deleted to resolve such conflicts. A change will only occur if all conflicts could be resolved (which might not be the case if conflicting accelerators are locked). Successful changes are indicated by a TRUE return value.

Note that accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().

The function takes the following parameters:

  • accelPath: valid accelerator path.
  • accelKey: new accelerator key.
  • accelMods: new accelerator modifiers.
  • replace: TRUE if other accelerators may be deleted upon conflicts.

The function returns the following values:

  • ok: TRUE if the accelerator could be changed, FALSE otherwise.

func AccelMapLoad

func AccelMapLoad(fileName string)

AccelMapLoad parses a file previously saved with gtk_accel_map_save() for accelerator specifications, and propagates them accordingly.

The function takes the following parameters:

  • fileName: file containing accelerator specifications, in the GLib file name encoding.

func AccelMapLoadFd

func AccelMapLoadFd(fd int)

AccelMapLoadFd: filedescriptor variant of gtk_accel_map_load().

Note that the file descriptor will not be closed by this function.

The function takes the following parameters:

  • fd: valid readable file descriptor.

func AccelMapLoadScanner

func AccelMapLoadScanner(scanner *glib.Scanner)

AccelMapLoadScanner variant of gtk_accel_map_load().

The function takes the following parameters:

  • scanner which has already been provided with an input file.

func AccelMapLockPath

func AccelMapLockPath(accelPath string)

AccelMapLockPath locks the given accelerator path. If the accelerator map doesn’t yet contain an entry for accel_path, a new one is created.

Locking an accelerator path prevents its accelerator from being changed during runtime. A locked accelerator path can be unlocked by gtk_accel_map_unlock_path(). Refer to gtk_accel_map_change_entry() for information about runtime accelerator changes.

If called more than once, accel_path remains locked until gtk_accel_map_unlock_path() has been called an equivalent number of times.

Note that locking of individual accelerator paths is independent from locking the AccelGroup containing them. For runtime accelerator changes to be possible, both the accelerator path and its AccelGroup have to be unlocked.

The function takes the following parameters:

  • accelPath: valid accelerator path.

func AccelMapSave

func AccelMapSave(fileName string)

AccelMapSave saves current accelerator specifications (accelerator path, key and modifiers) to file_name. The file is written in a format suitable to be read back in by gtk_accel_map_load().

The function takes the following parameters:

  • fileName: name of the file to contain accelerator specifications, in the GLib file name encoding.

func AccelMapSaveFd

func AccelMapSaveFd(fd int)

AccelMapSaveFd: filedescriptor variant of gtk_accel_map_save().

Note that the file descriptor will not be closed by this function.

The function takes the following parameters:

  • fd: valid writable file descriptor.

func AccelMapUnlockPath

func AccelMapUnlockPath(accelPath string)

AccelMapUnlockPath undoes the last call to gtk_accel_map_lock_path() on this accel_path. Refer to gtk_accel_map_lock_path() for information about accelerator path locking.

The function takes the following parameters:

  • accelPath: valid accelerator path.

func AcceleratorGetDefaultModMask

func AcceleratorGetDefaultModMask() gdk.ModifierType

AcceleratorGetDefaultModMask gets the modifier mask.

The modifier mask determines which modifiers are considered significant for keyboard accelerators. See gtk_accelerator_set_default_mod_mask().

The function returns the following values:

  • modifierType: default accelerator modifier mask.

func AcceleratorGetLabel

func AcceleratorGetLabel(acceleratorKey uint, acceleratorMods gdk.ModifierType) string

AcceleratorGetLabel converts an accelerator keyval and modifier mask into a string which can be used to represent the accelerator to the user.

The function takes the following parameters:

  • acceleratorKey: accelerator keyval.
  • acceleratorMods: accelerator modifier mask.

The function returns the following values:

  • utf8: newly-allocated string representing the accelerator.

func AcceleratorGetLabelWithKeycode

func AcceleratorGetLabelWithKeycode(display *gdk.Display, acceleratorKey, keycode uint, acceleratorMods gdk.ModifierType) string

AcceleratorGetLabelWithKeycode converts an accelerator keyval and modifier mask into a (possibly translated) string that can be displayed to a user, similarly to gtk_accelerator_get_label(), but handling keycodes.

This is only useful for system-level components, applications should use gtk_accelerator_parse() instead.

The function takes the following parameters:

  • display (optional) or NULL to use the default display.
  • acceleratorKey: accelerator keyval.
  • keycode: accelerator keycode.
  • acceleratorMods: accelerator modifier mask.

The function returns the following values:

  • utf8: newly-allocated string representing the accelerator.

func AcceleratorName

func AcceleratorName(acceleratorKey uint, acceleratorMods gdk.ModifierType) string

AcceleratorName converts an accelerator keyval and modifier mask into a string parseable by gtk_accelerator_parse(). For example, if you pass in K_KEY_q and K_CONTROL_MASK, this function returns “<Control>q”.

If you need to display accelerators in the user interface, see gtk_accelerator_get_label().

The function takes the following parameters:

  • acceleratorKey: accelerator keyval.
  • acceleratorMods: accelerator modifier mask.

The function returns the following values:

  • utf8: newly-allocated accelerator name.

func AcceleratorNameWithKeycode

func AcceleratorNameWithKeycode(display *gdk.Display, acceleratorKey, keycode uint, acceleratorMods gdk.ModifierType) string

AcceleratorNameWithKeycode converts an accelerator keyval and modifier mask into a string parseable by gtk_accelerator_parse_with_keycode(), similarly to gtk_accelerator_name() but handling keycodes. This is only useful for system-level components, applications should use gtk_accelerator_parse() instead.

The function takes the following parameters:

  • display (optional) or NULL to use the default display.
  • acceleratorKey: accelerator keyval.
  • keycode: accelerator keycode.
  • acceleratorMods: accelerator modifier mask.

The function returns the following values:

  • utf8: newly allocated accelerator name.

func AcceleratorParse

func AcceleratorParse(accelerator string) (uint, gdk.ModifierType)

AcceleratorParse parses a string representing an accelerator. The format looks like “<Control>a” or “<Shift><Alt>F1” or “<Release>z” (the last one is for key release).

The parser is fairly liberal and allows lower or upper case, and also abbreviations such as “<Ctl>” and “<Ctrl>”. Key names are parsed using gdk_keyval_from_name(). For character keys the name is not the symbol, but the lowercase name, e.g. one would use “<Ctrl>minus” instead of “<Ctrl>-”.

If the parse fails, accelerator_key and accelerator_mods will be set to 0 (zero).

The function takes the following parameters:

  • accelerator: string representing an accelerator.

The function returns the following values:

  • acceleratorKey (optional): return location for accelerator keyval, or NULL.
  • acceleratorMods (optional): return location for accelerator modifier mask, NULL.

func AcceleratorParseWithKeycode

func AcceleratorParseWithKeycode(accelerator string) (uint, []uint, gdk.ModifierType)

AcceleratorParseWithKeycode parses a string representing an accelerator, similarly to gtk_accelerator_parse() but handles keycodes as well. This is only useful for system-level components, applications should use gtk_accelerator_parse() instead.

If accelerator_codes is given and the result stored in it is non-NULL, the result must be freed with g_free().

If a keycode is present in the accelerator and no accelerator_codes is given, the parse will fail.

If the parse fails, accelerator_key, accelerator_mods and accelerator_codes will be set to 0 (zero).

The function takes the following parameters:

  • accelerator: string representing an accelerator.

The function returns the following values:

  • acceleratorKey (optional): return location for accelerator keyval, or NULL.
  • acceleratorCodes (optional): return location for accelerator keycodes, or NULL.
  • acceleratorMods (optional): return location for accelerator modifier mask, NULL.

func AcceleratorSetDefaultModMask

func AcceleratorSetDefaultModMask(defaultModMask gdk.ModifierType)

AcceleratorSetDefaultModMask sets the modifiers that will be considered significant for keyboard accelerators. The default mod mask depends on the GDK backend in use, but will typically include K_CONTROL_MASK | K_SHIFT_MASK | K_MOD1_MASK | K_SUPER_MASK | K_HYPER_MASK | K_META_MASK. In other words, Control, Shift, Alt, Super, Hyper and Meta. Other modifiers will by default be ignored by AccelGroup.

You must include at least the three modifiers Control, Shift and Alt in any value you pass to this function.

The default mod mask should be changed on application startup, before using any accelerator groups.

The function takes the following parameters:

  • defaultModMask: accelerator modifier mask.

func AcceleratorValid

func AcceleratorValid(keyval uint, modifiers gdk.ModifierType) bool

AcceleratorValid determines whether a given keyval and modifier mask constitute a valid keyboard accelerator. For example, the K_KEY_a keyval plus K_CONTROL_MASK is valid - this is a “Ctrl+a” accelerator. But, you can't, for instance, use the K_KEY_Control_L keyval as an accelerator.

The function takes the following parameters:

  • keyval: GDK keyval.
  • modifiers: modifier mask.

The function returns the following values:

  • ok: TRUE if the accelerator is valid.

func AlternativeDialogButtonOrder deprecated

func AlternativeDialogButtonOrder(screen *gdk.Screen) bool

AlternativeDialogButtonOrder returns TRUE if dialogs are expected to use an alternative button order on the screen screen. See gtk_dialog_set_alternative_button_order() for more details about alternative button order.

If you need to use this function, you should probably connect to the ::notify:gtk-alternative-button-order signal on the Settings object associated to screen, in order to be notified if the button order setting changes.

Deprecated: Deprecated.

The function takes the following parameters:

  • screen (optional) or NULL to use the default screen.

The function returns the following values:

  • ok: whether the alternative button order should be used.

func BindingEntryAddSignalFromString

func BindingEntryAddSignalFromString(bindingSet *BindingSet, signalDesc string) glib.TokenType

BindingEntryAddSignalFromString parses a signal description from signal_desc and incorporates it into binding_set.

Signal descriptions may either bind a key combination to one or more signals:

bind "key" {
  "signalname" (param, ...)
  ...
}

Or they may also unbind a key combination:

unbind "key"

Key combinations must be in a format that can be parsed by gtk_accelerator_parse().

The function takes the following parameters:

  • bindingSet: BindingSet.
  • signalDesc: signal description.

The function returns the following values:

  • tokenType: G_TOKEN_NONE if the signal was successfully parsed and added, the expected token otherwise.

func BindingEntryAddSignall

func BindingEntryAddSignall(bindingSet *BindingSet, keyval uint, modifiers gdk.ModifierType, signalName string, bindingArgs []*BindingArg)

BindingEntryAddSignall: override or install a new key binding for keyval with modifiers on binding_set.

The function takes the following parameters:

  • bindingSet to add a signal to.
  • keyval: key value.
  • modifiers: key modifier.
  • signalName: signal name to be bound.
  • bindingArgs: list of BindingArg signal arguments.

func BindingEntryRemove

func BindingEntryRemove(bindingSet *BindingSet, keyval uint, modifiers gdk.ModifierType)

BindingEntryRemove: remove a binding previously installed via gtk_binding_entry_add_signal() on binding_set.

The function takes the following parameters:

  • bindingSet to remove an entry of.
  • keyval: key value of binding to remove.
  • modifiers: key modifier of binding to remove.

func BindingEntrySkip

func BindingEntrySkip(bindingSet *BindingSet, keyval uint, modifiers gdk.ModifierType)

BindingEntrySkip: install a binding on binding_set which causes key lookups to be aborted, to prevent bindings from lower priority sets to be activated.

The function takes the following parameters:

  • bindingSet to skip an entry of.
  • keyval: key value of binding to skip.
  • modifiers: key modifier of binding to skip.

func BindingsActivate

func BindingsActivate(object *coreglib.Object, keyval uint, modifiers gdk.ModifierType) bool

BindingsActivate: find a key binding matching keyval and modifiers and activate the binding on object.

The function takes the following parameters:

  • object to activate when binding found.
  • keyval: key value of the binding.
  • modifiers: key modifier of the binding.

The function returns the following values:

  • ok: TRUE if a binding was found and activated.

func BindingsActivateEvent

func BindingsActivateEvent(object *coreglib.Object, event *gdk.EventKey) bool

BindingsActivateEvent looks up key bindings for object to find one matching event, and if one was found, activate it.

The function takes the following parameters:

  • object (generally must be a widget).
  • event: EventKey.

The function returns the following values:

  • ok: TRUE if a matching key binding was found.

func BuilderErrorQuark

func BuilderErrorQuark() glib.Quark

The function returns the following values:

func CSSProviderErrorQuark

func CSSProviderErrorQuark() glib.Quark

The function returns the following values:

func CairoShouldDrawWindow

func CairoShouldDrawWindow(cr *cairo.Context, window gdk.Windower) bool

CairoShouldDrawWindow: this function is supposed to be called in Widget::draw implementations for widgets that support multiple windows. cr must be untransformed from invoking of the draw function. This function will return TRUE if the contents of the given window are supposed to be drawn and FALSE otherwise. Note that when the drawing was not initiated by the windowing system this function will return TRUE for all windows, so you need to draw the bottommost window first. Also, do not use “else if” statements to check which window should be drawn.

The function takes the following parameters:

  • cr: cairo context.
  • window to check. window may not be an input-only window.

The function returns the following values:

  • ok: TRUE if window should be drawn.

func CairoTransformToWindow

func CairoTransformToWindow(cr *cairo.Context, widget Widgetter, window gdk.Windower)

CairoTransformToWindow transforms the given cairo context cr that from widget-relative coordinates to window-relative coordinates. If the widget’s window is not an ancestor of window, no modification will be applied.

This is the inverse to the transformation GTK applies when preparing an expose event to be emitted with the Widget::draw signal. It is intended to help porting multiwindow widgets from GTK+ 2 to the rendering architecture of GTK+ 3.

The function takes the following parameters:

  • cr: cairo context to transform.
  • widget the context is currently centered for.
  • window to transform the context to.

func CheckVersion

func CheckVersion(requiredMajor, requiredMinor, requiredMicro uint) string

CheckVersion checks that the GTK+ library in use is compatible with the given version. Generally you would pass in the constants K_MAJOR_VERSION, K_MINOR_VERSION, K_MICRO_VERSION as the three arguments to this function; that produces a check that the library in use is compatible with the version of GTK+ the application or module was compiled against.

Compatibility is defined by two things: first the version of the running library is newer than the version required_major.required_minor.required_micro. Second the running library must be binary compatible with the version required_major.required_minor.required_micro (same major version.)

This function is primarily for GTK+ modules; the module can call this function to check that it wasn’t loaded into an incompatible version of GTK+. However, such a check isn’t completely reliable, since the module may be linked against an old version of GTK+ and calling the old version of gtk_check_version(), but still get loaded into an application using a newer version of GTK+.

The function takes the following parameters:

  • requiredMajor: required major version.
  • requiredMinor: required minor version.
  • requiredMicro: required micro version.

The function returns the following values:

  • utf8 (optional): NULL if the GTK+ library is compatible with the given version, or a string describing the version mismatch. The returned string is owned by GTK+ and should not be modified or freed.

func ColorSelectionPaletteFromString

func ColorSelectionPaletteFromString(str string) ([]gdk.Color, bool)

ColorSelectionPaletteFromString parses a color palette string; the string is a colon-separated list of color names readable by gdk_color_parse().

The function takes the following parameters:

  • str: string encoding a color palette.

The function returns the following values:

  • colors: return location for allocated array of Color.
  • ok: TRUE if a palette was successfully parsed.

func ColorSelectionPaletteToString

func ColorSelectionPaletteToString(colors []gdk.Color) string

ColorSelectionPaletteToString encodes a palette as a string, useful for persistent storage.

The function takes the following parameters:

  • colors: array of colors.

The function returns the following values:

  • utf8: allocated string encoding the palette.

func DeviceGrabAdd

func DeviceGrabAdd(widget Widgetter, device gdk.Devicer, blockOthers bool)

DeviceGrabAdd adds a GTK+ grab on device, so all the events on device and its associated pointer or keyboard (if any) are delivered to widget. If the block_others parameter is TRUE, any other devices will be unable to interact with widget during the grab.

The function takes the following parameters:

  • widget: Widget.
  • device to grab on.
  • blockOthers: TRUE to prevent other devices to interact with widget.

func DeviceGrabRemove

func DeviceGrabRemove(widget Widgetter, device gdk.Devicer)

DeviceGrabRemove removes a device grab from the given widget.

You have to pair calls to gtk_device_grab_add() and gtk_device_grab_remove().

The function takes the following parameters:

  • widget: Widget.
  • device: Device.

func DisableSetlocale

func DisableSetlocale()

DisableSetlocale prevents gtk_init(), gtk_init_check(), gtk_init_with_args() and gtk_parse_args() from automatically calling setlocale (LC_ALL, ""). You would want to use this function if you wanted to set the locale for your program to something other than the user’s locale, or if you wanted to set different values for different locale categories.

Most programs should not need to call this function.

func DistributeNaturalAllocation

func DistributeNaturalAllocation(extraSpace int, nRequestedSizes uint, sizes *RequestedSize) int

DistributeNaturalAllocation distributes extra_space to child sizes by bringing smaller children up to natural size first.

The remaining space will be added to the minimum_size member of the GtkRequestedSize struct. If all sizes reach their natural size then the remaining space is returned.

The function takes the following parameters:

  • extraSpace: extra space to redistribute among children after subtracting minimum sizes and any child padding from the overall allocation.
  • nRequestedSizes: number of requests to fit into the allocation.
  • sizes: array of structs with a client pointer and a minimum/natural size in the orientation of the allocation.

The function returns the following values:

  • gint: remainder of extra_space after redistributing space to sizes.

func DragCancel

func DragCancel(context *gdk.DragContext)

DragCancel cancels an ongoing drag operation on the source side.

If you want to be able to cancel a drag operation in this way, you need to keep a pointer to the drag context, either from an explicit call to gtk_drag_begin_with_coordinates(), or by connecting to Widget::drag-begin.

If context does not refer to an ongoing drag operation, this function does nothing.

If a drag is cancelled in this way, the result argument of Widget::drag-failed is set to GTK_DRAG_RESULT_ERROR.

The function takes the following parameters:

  • context as e.g. returned by gtk_drag_begin_with_coordinates().

func DragFinish

func DragFinish(context *gdk.DragContext, success, del bool, time_ uint32)

DragFinish informs the drag source that the drop is finished, and that the data of the drag will no longer be required.

The function takes the following parameters:

  • context: drag context.
  • success: flag indicating whether the drop was successful.
  • del: flag indicating whether the source should delete the original data. (This should be TRUE for a move).
  • time_: timestamp from the Widget::drag-drop signal.

func DragSetIconDefault

func DragSetIconDefault(context *gdk.DragContext)

DragSetIconDefault sets the icon for a particular drag to the default icon.

The function takes the following parameters:

  • context for a drag (This must be called with a context for the source side of a drag).

func DragSetIconGIcon

func DragSetIconGIcon(context *gdk.DragContext, icon gio.Iconner, hotX, hotY int)

DragSetIconGIcon sets the icon for a given drag from the given icon. See the documentation for gtk_drag_set_icon_name() for more details about using icons in drag and drop.

The function takes the following parameters:

  • context for a drag (This must be called with a context for the source side of a drag).
  • icon: #GIcon.
  • hotX: x offset of the hotspot within the icon.
  • hotY: y offset of the hotspot within the icon.

func DragSetIconName

func DragSetIconName(context *gdk.DragContext, iconName string, hotX, hotY int)

DragSetIconName sets the icon for a given drag from a named themed icon. See the docs for IconTheme for more details. Note that the size of the icon depends on the icon theme (the icon is loaded at the symbolic size K_ICON_SIZE_DND), thus hot_x and hot_y have to be used with care.

The function takes the following parameters:

  • context for a drag (This must be called with a context for the source side of a drag).
  • iconName: name of icon to use.
  • hotX: x offset of the hotspot within the icon.
  • hotY: y offset of the hotspot within the icon.

func DragSetIconPixbuf

func DragSetIconPixbuf(context *gdk.DragContext, pixbuf *gdkpixbuf.Pixbuf, hotX, hotY int)

DragSetIconPixbuf sets pixbuf as the icon for a given drag.

The function takes the following parameters:

  • context for a drag (This must be called with a context for the source side of a drag).
  • pixbuf to use as the drag icon.
  • hotX: x offset within widget of the hotspot.
  • hotY: y offset within widget of the hotspot.

func DragSetIconStock deprecated

func DragSetIconStock(context *gdk.DragContext, stockId string, hotX, hotY int)

DragSetIconStock sets the icon for a given drag from a stock ID.

Deprecated: Use gtk_drag_set_icon_name() instead.

The function takes the following parameters:

  • context for a drag (This must be called with a context for the source side of a drag).
  • stockId: ID of the stock icon to use for the drag.
  • hotX: x offset within the icon of the hotspot.
  • hotY: y offset within the icon of the hotspot.

func DragSetIconSurface

func DragSetIconSurface(context *gdk.DragContext, surface *cairo.Surface)

DragSetIconSurface sets surface as the icon for a given drag. GTK+ retains references for the arguments, and will release them when they are no longer needed.

To position the surface relative to the mouse, use cairo_surface_set_device_offset() on surface. The mouse cursor will be positioned at the (0,0) coordinate of the surface.

The function takes the following parameters:

  • context for a drag (This must be called with a context for the source side of a drag).
  • surface to use as icon.

func DragSetIconWidget

func DragSetIconWidget(context *gdk.DragContext, widget Widgetter, hotX, hotY int)

DragSetIconWidget changes the icon for drag operation to a given widget. GTK+ will not destroy the widget, so if you don’t want it to persist, you should connect to the “drag-end” signal and destroy it yourself.

The function takes the following parameters:

  • context for a drag. (This must be called with a context for the source side of a drag).
  • widget to use as an icon.
  • hotX: x offset within widget of the hotspot.
  • hotY: y offset within widget of the hotspot.

func DrawInsertionCursor deprecated

func DrawInsertionCursor(widget Widgetter, cr *cairo.Context, location *gdk.Rectangle, isPrimary bool, direction TextDirection, drawArrow bool)

DrawInsertionCursor draws a text caret on cr at location. This is not a style function but merely a convenience function for drawing the standard cursor shape.

Deprecated: Use gtk_render_insertion_cursor() instead.

The function takes the following parameters:

  • widget: Widget.
  • cr: cairo context to draw to.
  • location where to draw the cursor (location->width is ignored).
  • isPrimary: if the cursor should be the primary cursor color.
  • direction: whether the cursor is left-to-right or right-to-left. Should never be K_TEXT_DIR_NONE.
  • drawArrow: TRUE to draw a directional arrow on the cursor. Should be FALSE unless the cursor is split.

func EventsPending

func EventsPending() bool

EventsPending checks if any events are pending.

This can be used to update the UI and invoke timeouts etc. while doing some time intensive computation.

Updating the UI during a long computation

// computation going on...

while (gtk_events_pending ())
  gtk_main_iteration ();

// ...computation continued.

The function returns the following values:

  • ok: TRUE if any events are pending, FALSE otherwise.

func False

func False() bool

False: analogical to gtk_true(), this function does nothing but always returns FALSE.

The function returns the following values:

  • ok: FALSE.

func FileChooserErrorQuark

func FileChooserErrorQuark() glib.Quark

FileChooserErrorQuark registers an error quark for FileChooser if necessary.

The function returns the following values:

  • quark: error quark used for FileChooser errors.

func GetBinaryAge

func GetBinaryAge() uint

GetBinaryAge returns the binary age as passed to libtool when building the GTK+ library the process is running against. If libtool means nothing to you, don't worry about it.

The function returns the following values:

  • guint: binary age of the GTK+ library.

func GetCurrentEvent

func GetCurrentEvent() *gdk.Event

GetCurrentEvent obtains a copy of the event currently being processed by GTK+.

For example, if you are handling a Button::clicked signal, the current event will be the EventButton that triggered the ::clicked signal.

The function returns the following values:

  • event (optional): copy of the current event, or NULL if there is no current event. The returned event must be freed with gdk_event_free().

func GetCurrentEventDevice

func GetCurrentEventDevice() gdk.Devicer

GetCurrentEventDevice: if there is a current event and it has a device, return that device, otherwise return NULL.

The function returns the following values:

  • device (optional) or NULL.

func GetCurrentEventState

func GetCurrentEventState() (gdk.ModifierType, bool)

GetCurrentEventState: if there is a current event and it has a state field, place that state field in state and return TRUE, otherwise return FALSE.

The function returns the following values:

  • state: location to store the state of the current event.
  • ok: TRUE if there was a current event and it had a state field.

func GetCurrentEventTime

func GetCurrentEventTime() uint32

GetCurrentEventTime: if there is a current event and it has a timestamp, return that timestamp, otherwise return GDK_CURRENT_TIME.

The function returns the following values:

  • guint32: timestamp from the current event, or GDK_CURRENT_TIME.

func GetDebugFlags

func GetDebugFlags() uint

GetDebugFlags returns the GTK+ debug flags.

This function is intended for GTK+ modules that want to adjust their debug output based on GTK+ debug flags.

The function returns the following values:

  • guint: GTK+ debug flags.

func GetDefaultLanguage

func GetDefaultLanguage() *pango.Language

GetDefaultLanguage returns the Language for the default language currently in effect. (Note that this can change over the life of an application.) The default language is derived from the current locale. It determines, for example, whether GTK+ uses the right-to-left or left-to-right text direction.

This function is equivalent to pango_language_get_default(). See that function for details.

The function returns the following values:

  • language: default language as a Language, must not be freed.

func GetInterfaceAge

func GetInterfaceAge() uint

GetInterfaceAge returns the interface age as passed to libtool when building the GTK+ library the process is running against. If libtool means nothing to you, don't worry about it.

The function returns the following values:

  • guint: interface age of the GTK+ library.

func GetMajorVersion

func GetMajorVersion() uint

GetMajorVersion returns the major version number of the GTK+ library. (e.g. in GTK+ version 3.1.5 this is 3.)

This function is in the library, so it represents the GTK+ library your code is running against. Contrast with the K_MAJOR_VERSION macro, which represents the major version of the GTK+ headers you have included when compiling your code.

The function returns the following values:

  • guint: major version number of the GTK+ library.

func GetMicroVersion

func GetMicroVersion() uint

GetMicroVersion returns the micro version number of the GTK+ library. (e.g. in GTK+ version 3.1.5 this is 5.)

This function is in the library, so it represents the GTK+ library your code is are running against. Contrast with the K_MICRO_VERSION macro, which represents the micro version of the GTK+ headers you have included when compiling your code.

The function returns the following values:

  • guint: micro version number of the GTK+ library.

func GetMinorVersion

func GetMinorVersion() uint

GetMinorVersion returns the minor version number of the GTK+ library. (e.g. in GTK+ version 3.1.5 this is 1.)

This function is in the library, so it represents the GTK+ library your code is are running against. Contrast with the K_MINOR_VERSION macro, which represents the minor version of the GTK+ headers you have included when compiling your code.

The function returns the following values:

  • guint: minor version number of the GTK+ library.

func GetOptionGroup

func GetOptionGroup(openDefaultDisplay bool) *glib.OptionGroup

GetOptionGroup returns a Group for the commandline arguments recognized by GTK+ and GDK.

You should add this group to your Context with g_option_context_add_group(), if you are using g_option_context_parse() to parse your commandline arguments.

The function takes the following parameters:

  • openDefaultDisplay: whether to open the default display when parsing the commandline arguments.

The function returns the following values:

  • optionGroup for the commandline arguments recognized by GTK+.

func HSVToRGB

func HSVToRGB(h, s, v float64) (r, g, b float64)

HSVToRGB converts a color from HSV space to RGB.

Input values must be in the [0.0, 1.0] range; output values will be in the same range.

The function takes the following parameters:

  • h: hue.
  • s: saturation.
  • v: value.

The function returns the following values:

  • r: return value for the red component.
  • g: return value for the green component.
  • b: return value for the blue component.

func IconSizeFromName deprecated

func IconSizeFromName(name string) int

IconSizeFromName looks up the icon size associated with name.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • name to look up.

The function returns the following values:

  • gint: icon size (IconSize).

func IconSizeGetName deprecated

func IconSizeGetName(size int) string

IconSizeGetName gets the canonical name of the given icon size. The returned string is statically allocated and should not be freed.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • size: IconSize.

The function returns the following values:

  • utf8: name of the given icon size.

func IconSizeLookup

func IconSizeLookup(size int) (width, height int, ok bool)

IconSizeLookup obtains the pixel size of a semantic icon size size: K_ICON_SIZE_MENU, K_ICON_SIZE_BUTTON, etc. This function isn’t normally needed, gtk_icon_theme_load_icon() is the usual way to get an icon for rendering, then just look at the size of the rendered pixbuf. The rendered pixbuf may not even correspond to the width/height returned by gtk_icon_size_lookup(), because themes are free to render the pixbuf however they like, including changing the usual size.

The function takes the following parameters:

  • size: icon size (IconSize).

The function returns the following values:

  • width (optional): location to store icon width.
  • height (optional): location to store icon height.
  • ok: TRUE if size was a valid size.

func IconSizeLookupForSettings deprecated

func IconSizeLookupForSettings(settings *Settings, size int) (width, height int, ok bool)

IconSizeLookupForSettings obtains the pixel size of a semantic icon size, possibly modified by user preferences for a particular Settings. Normally size would be K_ICON_SIZE_MENU, K_ICON_SIZE_BUTTON, etc. This function isn’t normally needed, gtk_widget_render_icon_pixbuf() is the usual way to get an icon for rendering, then just look at the size of the rendered pixbuf. The rendered pixbuf may not even correspond to the width/height returned by gtk_icon_size_lookup(), because themes are free to render the pixbuf however they like, including changing the usual size.

Deprecated: Use gtk_icon_size_lookup() instead.

The function takes the following parameters:

  • settings object, used to determine which set of user preferences to used.
  • size: icon size (IconSize).

The function returns the following values:

  • width (optional): location to store icon width.
  • height (optional): location to store icon height.
  • ok: TRUE if size was a valid size.

func IconSizeRegister deprecated

func IconSizeRegister(name string, width, height int) int

IconSizeRegister registers a new icon size, along the same lines as K_ICON_SIZE_MENU, etc. Returns the integer value for the size.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • name of the icon size.
  • width: icon width.
  • height: icon height.

The function returns the following values:

  • gint: integer value representing the size (IconSize).

func IconSizeRegisterAlias deprecated

func IconSizeRegisterAlias(alias string, target int)

IconSizeRegisterAlias registers alias as another name for target. So calling gtk_icon_size_from_name() with alias as argument will return target.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • alias for target.
  • target: existing icon size (IconSize).

func IconThemeAddBuiltinIcon deprecated

func IconThemeAddBuiltinIcon(iconName string, size int, pixbuf *gdkpixbuf.Pixbuf)

IconThemeAddBuiltinIcon registers a built-in icon for icon theme lookups. The idea of built-in icons is to allow an application or library that uses themed icons to function requiring files to be present in the file system. For instance, the default images for all of GTK+’s stock icons are registered as built-icons.

In general, if you use gtk_icon_theme_add_builtin_icon() you should also install the icon in the icon theme, so that the icon is generally available.

This function will generally be used with pixbufs loaded via gdk_pixbuf_new_from_inline().

Deprecated: Use gtk_icon_theme_add_resource_path() to add application-specific icons to the icon theme.

The function takes the following parameters:

  • iconName: name of the icon to register.
  • size in pixels at which to register the icon (different images can be registered for the same icon name at different sizes.).
  • pixbuf that contains the image to use for icon_name.

func IconThemeErrorQuark

func IconThemeErrorQuark() glib.Quark

The function returns the following values:

func Init

func Init()

Init binds to the gtk_init() function. Argument parsing is not supported.

func KeySnooperRemove deprecated

func KeySnooperRemove(snooperHandlerId uint)

KeySnooperRemove removes the key snooper function with the given id.

Deprecated: Key snooping should not be done. Events should be handled by widgets.

The function takes the following parameters:

  • snooperHandlerId identifies the key snooper to remove.

func Main

func Main()

Main runs the main loop until gtk_main_quit() is called.

You can nest calls to gtk_main(). In that case gtk_main_quit() will make the innermost invocation of the main loop return.

func MainDoEvent

func MainDoEvent(event *gdk.Event)

MainDoEvent processes a single GDK event.

This is public only to allow filtering of events between GDK and GTK+. You will not usually need to call this function directly.

While you should not call this function directly, you might want to know how exactly events are handled. So here is what this function does with the event:

1. Compress enter/leave notify events. If the event passed build an enter/leave pair together with the next event (peeked from GDK), both events are thrown away. This is to avoid a backlog of (de-)highlighting widgets crossed by the pointer.

2. Find the widget which got the event. If the widget can’t be determined the event is thrown away unless it belongs to a INCR transaction.

3. Then the event is pushed onto a stack so you can query the currently handled event with gtk_get_current_event().

4. The event is sent to a widget. If a grab is active all events for widgets that are not in the contained in the grab widget are sent to the latter with a few exceptions: - Deletion and destruction events are still sent to the event widget for obvious reasons. - Events which directly relate to the visual representation of the event widget. - Leave events are delivered to the event widget if there was an enter event delivered to it before without the paired leave event. - Drag events are not redirected because it is unclear what the semantics of that would be. Another point of interest might be that all key events are first passed through the key snooper functions if there are any. Read the description of gtk_key_snooper_install() if you need this feature.

5. After finishing the delivery the event is popped from the event stack.

The function takes the following parameters:

  • event to process (normally passed by GDK).

func MainIteration

func MainIteration() bool

MainIteration runs a single iteration of the mainloop.

If no events are waiting to be processed GTK+ will block until the next event is noticed. If you don’t want to block look at gtk_main_iteration_do() or check if any events are pending with gtk_events_pending() first.

The function returns the following values:

  • ok: TRUE if gtk_main_quit() has been called for the innermost mainloop.

func MainIterationDo

func MainIterationDo(blocking bool) bool

MainIterationDo runs a single iteration of the mainloop. If no events are available either return or block depending on the value of blocking.

The function takes the following parameters:

  • blocking: TRUE if you want GTK+ to block if no events are pending.

The function returns the following values:

  • ok: TRUE if gtk_main_quit() has been called for the innermost mainloop.

func MainLevel

func MainLevel() uint

MainLevel asks for the current nesting level of the main loop.

The function returns the following values:

  • guint: nesting level of the current invocation of the main loop.

func MainQuit

func MainQuit()

MainQuit makes the innermost invocation of the main loop return when it regains control.

func NewNumerableIcon deprecated

func NewNumerableIcon(baseIcon gio.Iconner) *gio.Icon

NewNumerableIcon creates a new unthemed NumerableIcon.

Deprecated: since version 3.14.

The function takes the following parameters:

  • baseIcon to overlay on.

The function returns the following values:

  • icon: new #GIcon.

func NewNumerableIconWithStyleContext deprecated

func NewNumerableIconWithStyleContext(baseIcon gio.Iconner, context *StyleContext) *gio.Icon

NewNumerableIconWithStyleContext creates a new NumerableIcon which will themed according to the passed StyleContext. This is a convenience constructor that calls gtk_numerable_icon_set_style_context() internally.

Deprecated: since version 3.14.

The function takes the following parameters:

  • baseIcon to overlay on.
  • context: StyleContext.

The function returns the following values:

  • icon: new #GIcon.

func PaintArrow deprecated

func PaintArrow(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, arrowType ArrowType, fill bool, x, y, width, height int)

PaintArrow draws an arrow in the given rectangle on cr using the given parameters. arrow_type determines the direction of the arrow.

Deprecated: Use gtk_render_arrow() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • arrowType: type of arrow to draw.
  • fill: TRUE if the arrow tip should be filled.
  • x origin of the rectangle to draw the arrow in.
  • y origin of the rectangle to draw the arrow in.
  • width of the rectangle to draw the arrow in.
  • height of the rectangle to draw the arrow in.

func PaintBox deprecated

func PaintBox(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)

PaintBox draws a box on cr with the given parameters.

Deprecated: Use gtk_render_frame() and gtk_render_background() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the box.
  • y origin of the box.
  • width of the box.
  • height of the box.

func PaintBoxGap deprecated

func PaintBoxGap(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int, gapSide PositionType, gapX, gapWidth int)

PaintBoxGap draws a box in cr using the given style and state and shadow type, leaving a gap in one side.

Deprecated: Use gtk_render_frame_gap() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the rectangle.
  • y origin of the rectangle.
  • width of the rectangle.
  • height: width of the rectangle.
  • gapSide: side in which to leave the gap.
  • gapX: starting position of the gap.
  • gapWidth: width of the gap.

func PaintCheck deprecated

func PaintCheck(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)

PaintCheck draws a check button indicator in the given rectangle on cr with the given parameters.

Deprecated: Use gtk_render_check() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the rectangle to draw the check in.
  • y origin of the rectangle to draw the check in.
  • width of the rectangle to draw the check in.
  • height of the rectangle to draw the check in.

func PaintDiamond deprecated

func PaintDiamond(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)

PaintDiamond draws a diamond in the given rectangle on window using the given parameters.

Deprecated: Use cairo instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the rectangle to draw the diamond in.
  • y origin of the rectangle to draw the diamond in.
  • width of the rectangle to draw the diamond in.
  • height of the rectangle to draw the diamond in.

func PaintExpander deprecated

func PaintExpander(style *Style, cr *cairo.Context, stateType StateType, widget Widgetter, detail string, x, y int, expanderStyle ExpanderStyle)

PaintExpander draws an expander as used in TreeView. x and y specify the center the expander. The size of the expander is determined by the “expander-size” style property of widget. (If widget is not specified or doesn’t have an “expander-size” property, an unspecified default size will be used, since the caller doesn't have sufficient information to position the expander, this is likely not useful.) The expander is expander_size pixels tall in the collapsed position and expander_size pixels wide in the expanded position.

Deprecated: Use gtk_render_expander() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x position to draw the expander at.
  • y position to draw the expander at.
  • expanderStyle: style to draw the expander in; determines whether the expander is collapsed, expanded, or in an intermediate state.

func PaintExtension deprecated

func PaintExtension(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int, gapSide PositionType)

PaintExtension draws an extension, i.e. a notebook tab.

Deprecated: Use gtk_render_extension() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the extension.
  • y origin of the extension.
  • width of the extension.
  • height: width of the extension.
  • gapSide: side on to which the extension is attached.

func PaintFlatBox deprecated

func PaintFlatBox(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)

PaintFlatBox draws a flat box on cr with the given parameters.

Deprecated: Use gtk_render_frame() and gtk_render_background() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the box.
  • y origin of the box.
  • width of the box.
  • height of the box.

func PaintFocus deprecated

func PaintFocus(style *Style, cr *cairo.Context, stateType StateType, widget Widgetter, detail string, x, y, width, height int)

PaintFocus draws a focus indicator around the given rectangle on cr using the given style.

Deprecated: Use gtk_render_focus() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the rectangle around which to draw a focus indicator.
  • y origin of the rectangle around which to draw a focus indicator.
  • width of the rectangle around which to draw a focus indicator.
  • height of the rectangle around which to draw a focus indicator.

func PaintHandle deprecated

func PaintHandle(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int, orientation Orientation)

PaintHandle draws a handle as used in HandleBox and Paned.

Deprecated: Use gtk_render_handle() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the handle.
  • y origin of the handle.
  • width: with of the handle.
  • height of the handle.
  • orientation of the handle.

func PaintHline deprecated

func PaintHline(style *Style, cr *cairo.Context, stateType StateType, widget Widgetter, detail string, x1, x2, y int)

PaintHline draws a horizontal line from (x1, y) to (x2, y) in cr using the given style and state.

Deprecated: Use gtk_render_line() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #caio_t.
  • stateType: state.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x1: starting x coordinate.
  • x2: ending x coordinate.
  • y coordinate.

func PaintLayout deprecated

func PaintLayout(style *Style, cr *cairo.Context, stateType StateType, useText bool, widget Widgetter, detail string, x, y int, layout *pango.Layout)

PaintLayout draws a layout on cr using the given parameters.

Deprecated: Use gtk_render_layout() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • useText: whether to use the text or foreground graphics context of style.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin.
  • y origin.
  • layout to draw.

func PaintOption deprecated

func PaintOption(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)

PaintOption draws a radio button indicator in the given rectangle on cr with the given parameters.

Deprecated: Use gtk_render_option() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the rectangle to draw the option in.
  • y origin of the rectangle to draw the option in.
  • width of the rectangle to draw the option in.
  • height of the rectangle to draw the option in.

func PaintResizeGrip deprecated

func PaintResizeGrip(style *Style, cr *cairo.Context, stateType StateType, widget Widgetter, detail string, edge gdk.WindowEdge, x, y, width, height int)

PaintResizeGrip draws a resize grip in the given rectangle on cr using the given parameters.

Deprecated: Use gtk_render_handle() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • widget (optional): widget.
  • detail (optional): style detail.
  • edge in which to draw the resize grip.
  • x origin of the rectangle in which to draw the resize grip.
  • y origin of the rectangle in which to draw the resize grip.
  • width of the rectangle in which to draw the resize grip.
  • height of the rectangle in which to draw the resize grip.

func PaintShadow deprecated

func PaintShadow(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)

PaintShadow draws a shadow around the given rectangle in cr using the given style and state and shadow type.

Deprecated: Use gtk_render_frame() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the rectangle.
  • y origin of the rectangle.
  • width of the rectangle.
  • height: width of the rectangle.

func PaintShadowGap deprecated

func PaintShadowGap(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int, gapSide PositionType, gapX, gapWidth int)

PaintShadowGap draws a shadow around the given rectangle in cr using the given style and state and shadow type, leaving a gap in one side.

Deprecated: Use gtk_render_frame_gap() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the rectangle.
  • y origin of the rectangle.
  • width of the rectangle.
  • height: width of the rectangle.
  • gapSide: side in which to leave the gap.
  • gapX: starting position of the gap.
  • gapWidth: width of the gap.

func PaintSlider deprecated

func PaintSlider(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int, orientation Orientation)

PaintSlider draws a slider in the given rectangle on cr using the given style and orientation.

Deprecated: Use gtk_render_slider() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: shadow.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the rectangle in which to draw a slider.
  • y origin of the rectangle in which to draw a slider.
  • width of the rectangle in which to draw a slider.
  • height of the rectangle in which to draw a slider.
  • orientation to be used.

func PaintSpinner deprecated

func PaintSpinner(style *Style, cr *cairo.Context, stateType StateType, widget Widgetter, detail string, step uint, x, y, width, height int)

PaintSpinner draws a spinner on window using the given parameters.

Deprecated: Use gtk_render_icon() and the StyleContext you are drawing instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • widget (optional) (may be NULL).
  • detail (optional): style detail (may be NULL).
  • step: nth step.
  • x origin of the rectangle in which to draw the spinner.
  • y origin of the rectangle in which to draw the spinner.
  • width of the rectangle in which to draw the spinner.
  • height of the rectangle in which to draw the spinner.

func PaintTab deprecated

func PaintTab(style *Style, cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)

PaintTab draws an option menu tab (i.e. the up and down pointing arrows) in the given rectangle on cr using the given parameters.

Deprecated: Use cairo instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • shadowType: type of shadow to draw.
  • widget (optional): widget.
  • detail (optional): style detail.
  • x origin of the rectangle to draw the tab in.
  • y origin of the rectangle to draw the tab in.
  • width of the rectangle to draw the tab in.
  • height of the rectangle to draw the tab in.

func PaintVline deprecated

func PaintVline(style *Style, cr *cairo.Context, stateType StateType, widget Widgetter, detail string, y1, y2, x int)

PaintVline draws a vertical line from (x, y1_) to (x, y2_) in cr using the given style and state.

Deprecated: Use gtk_render_line() instead.

The function takes the following parameters:

  • style: Style.
  • cr: #cairo_t.
  • stateType: state.
  • widget (optional): widget.
  • detail (optional): style detail.
  • y1: starting y coordinate.
  • y2: ending y coordinate.
  • x coordinate.

func PaperSizeGetDefault

func PaperSizeGetDefault() string

PaperSizeGetDefault returns the name of the default paper size, which depends on the current locale.

The function returns the following values:

  • utf8: name of the default paper size. The string is owned by GTK+ and should not be modified.

func PrintErrorQuark

func PrintErrorQuark() glib.Quark

PrintErrorQuark registers an error quark for PrintOperation if necessary.

The function returns the following values:

  • quark: error quark used for PrintOperation errors.

func PrintRunPageSetupDialogAsync

func PrintRunPageSetupDialogAsync(parent *Window, pageSetup *PageSetup, settings *PrintSettings, doneCb PageSetupDoneFunc)

PrintRunPageSetupDialogAsync runs a page setup dialog, letting the user modify the values from page_setup.

In contrast to gtk_print_run_page_setup_dialog(), this function returns after showing the page setup dialog on platforms that support this, and calls done_cb from a signal handler for the ::response signal of the dialog.

The function takes the following parameters:

  • parent (optional): transient parent, or NULL.
  • pageSetup (optional): existing PageSetup, or NULL.
  • settings: PrintSettings.
  • doneCb: function to call when the user saves the modified page setup.

func PropagateEvent

func PropagateEvent(widget Widgetter, event *gdk.Event)

PropagateEvent sends an event to a widget, propagating the event to parent widgets if the event remains unhandled.

Events received by GTK+ from GDK normally begin in gtk_main_do_event(). Depending on the type of event, existence of modal dialogs, grabs, etc., the event may be propagated; if so, this function is used.

gtk_propagate_event() calls gtk_widget_event() on each widget it decides to send the event to. So gtk_widget_event() is the lowest-level function; it simply emits the Widget::event and possibly an event-specific signal on a widget. gtk_propagate_event() is a bit higher-level, and gtk_main_do_event() is the highest level.

All that said, you most likely don’t want to use any of these functions; synthesizing events is rarely needed. There are almost certainly better ways to achieve your goals. For example, use gdk_window_invalidate_rect() or gtk_widget_queue_draw() instead of making up expose events.

The function takes the following parameters:

  • widget: Widget.
  • event: event.

func RCAddDefaultFile deprecated

func RCAddDefaultFile(filename string)

RCAddDefaultFile adds a file to the list of files to be parsed at the end of gtk_init().

Deprecated: Use StyleContext with a custom StyleProvider instead.

The function takes the following parameters:

  • filename: pathname to the file. If filename is not absolute, it is searched in the current directory.

func RCFindModuleInPath deprecated

func RCFindModuleInPath(moduleFile string) string

RCFindModuleInPath searches for a theme engine in the GTK+ search path. This function is not useful for applications and should not be used.

Deprecated: Use CssProvider instead.

The function takes the following parameters:

  • moduleFile: name of a theme engine.

The function returns the following values:

  • filename: filename, if found (must be freed with g_free()), otherwise NULL.

func RCFindPixmapInPath deprecated

func RCFindPixmapInPath(settings *Settings, scanner *glib.Scanner, pixmapFile string) string

RCFindPixmapInPath looks up a file in pixmap path for the specified Settings. If the file is not found, it outputs a warning message using g_warning() and returns NULL.

Deprecated: Use CssProvider instead.

The function takes the following parameters:

  • settings: Settings.
  • scanner: scanner used to get line number information for the warning message, or NULL.
  • pixmapFile: name of the pixmap file to locate.

The function returns the following values:

  • filename: filename.

func RCGetDefaultFiles deprecated

func RCGetDefaultFiles() []string

RCGetDefaultFiles retrieves the current list of RC files that will be parsed at the end of gtk_init().

Deprecated: Use StyleContext instead.

The function returns the following values:

  • filenames: A NULL-terminated array of filenames. This memory is owned by GTK+ and must not be freed by the application. If you want to store this information, you should make a copy.

func RCGetIMModuleFile deprecated

func RCGetIMModuleFile() string

RCGetIMModuleFile obtains the path to the IM modules file. See the documentation of the GTK_IM_MODULE_FILE environment variable for more details.

Deprecated: Use CssProvider instead.

The function returns the following values:

  • filename: newly-allocated string containing the name of the file listing the IM modules available for loading.

func RCGetIMModulePath deprecated

func RCGetIMModulePath() string

RCGetIMModulePath obtains the path in which to look for IM modules. See the documentation of the GTK_PATH environment variable for more details about looking up modules. This function is useful solely for utilities supplied with GTK+ and should not be used by applications under normal circumstances.

Deprecated: Use CssProvider instead.

The function returns the following values:

  • filename: newly-allocated string containing the path in which to look for IM modules.

func RCGetModuleDir deprecated

func RCGetModuleDir() string

RCGetModuleDir returns a directory in which GTK+ looks for theme engines. For full information about the search for theme engines, see the docs for GTK_PATH in [Running GTK+ Applications][gtk-running].

Deprecated: Use CssProvider instead.

The function returns the following values:

  • filename: directory. (Must be freed with g_free()).

func RCGetThemeDir deprecated

func RCGetThemeDir() string

RCGetThemeDir returns the standard directory in which themes should be installed. (GTK+ does not actually use this directory itself.)

Deprecated: Use CssProvider instead.

The function returns the following values:

  • utf8: directory (must be freed with g_free()).

func RCParse deprecated

func RCParse(filename string)

RCParse parses a given resource file.

Deprecated: Use CssProvider instead.

The function takes the following parameters:

  • filename of a file to parse. If filename is not absolute, it is searched in the current directory.

func RCParseColor deprecated

func RCParseColor(scanner *glib.Scanner) (*gdk.Color, uint)

RCParseColor parses a color in the format expected in a RC file.

Note that theme engines should use gtk_rc_parse_color_full() in order to support symbolic colors.

Deprecated: Use CssProvider instead.

The function takes the following parameters:

  • scanner: #GScanner.

The function returns the following values:

  • color: pointer to a Color in which to store the result.
  • guint: G_TOKEN_NONE if parsing succeeded, otherwise the token that was expected but not found.

func RCParseColorFull deprecated

func RCParseColorFull(scanner *glib.Scanner, style *RCStyle) (*gdk.Color, uint)

RCParseColorFull parses a color in the format expected in a RC file. If style is not NULL, it will be consulted to resolve references to symbolic colors.

Deprecated: Use CssProvider instead.

The function takes the following parameters:

  • scanner: #GScanner.
  • style (optional) or NULL.

The function returns the following values:

  • color: pointer to a Color in which to store the result.
  • guint: G_TOKEN_NONE if parsing succeeded, otherwise the token that was expected but not found.

func RCParsePriority deprecated

func RCParsePriority(scanner *glib.Scanner, priority *PathPriorityType) uint

RCParsePriority parses a PathPriorityType variable from the format expected in a RC file.

Deprecated: Use CssProvider instead.

The function takes the following parameters:

  • scanner (must be initialized for parsing an RC file).
  • priority: pointer to PathPriorityType variable in which to store the result.

The function returns the following values:

  • guint: G_TOKEN_NONE if parsing succeeded, otherwise the token that was expected but not found.

func RCParseString deprecated

func RCParseString(rcString string)

RCParseString parses resource information directly from a string.

Deprecated: Use CssProvider instead.

The function takes the following parameters:

  • rcString: string to parse.

func RCReparseAll deprecated

func RCReparseAll() bool

RCReparseAll: if the modification time on any previously read file for the default Settings has changed, discard all style information and then reread all previously read RC files.

Deprecated: Use CssProvider instead.

The function returns the following values:

  • ok: TRUE if the files were reread.

func RCReparseAllForSettings deprecated

func RCReparseAllForSettings(settings *Settings, forceLoad bool) bool

RCReparseAllForSettings: if the modification time on any previously read file for the given Settings has changed, discard all style information and then reread all previously read RC files.

Deprecated: Use CssProvider instead.

The function takes the following parameters:

  • settings: Settings.
  • forceLoad: load whether or not anything changed.

The function returns the following values:

  • ok: TRUE if the files were reread.

func RCResetStyles deprecated

func RCResetStyles(settings *Settings)

RCResetStyles: this function recomputes the styles for all widgets that use a particular Settings object. (There is one Settings object per Screen, see gtk_settings_get_for_screen()); It is useful when some global parameter has changed that affects the appearance of all widgets, because when a widget gets a new style, it will both redraw and recompute any cached information about its appearance. As an example, it is used when the default font size set by the operating system changes. Note that this function doesn’t affect widgets that have a style set explicitly on them with gtk_widget_set_style().

Deprecated: Use CssProvider instead.

The function takes the following parameters:

  • settings: Settings.

func RCSetDefaultFiles deprecated

func RCSetDefaultFiles(filenames []string)

RCSetDefaultFiles sets the list of files that GTK+ will read at the end of gtk_init().

Deprecated: Use StyleContext with a custom StyleProvider instead.

The function takes the following parameters:

  • filenames: a NULL-terminated list of filenames.

func RGBToHSV

func RGBToHSV(r, g, b float64) (h, s, v float64)

RGBToHSV converts a color from RGB space to HSV.

Input values must be in the [0.0, 1.0] range; output values will be in the same range.

The function takes the following parameters:

  • r: red.
  • g: green.
  • b: blue.

The function returns the following values:

  • h: return value for the hue component.
  • s: return value for the saturation component.
  • v: return value for the value component.

func RecentChooserErrorQuark

func RecentChooserErrorQuark() glib.Quark

The function returns the following values:

func RecentManagerErrorQuark

func RecentManagerErrorQuark() glib.Quark

The function returns the following values:

func RenderActivity

func RenderActivity(context *StyleContext, cr *cairo.Context, x, y, width, height float64)

RenderActivity renders an activity indicator (such as in Spinner). The state GTK_STATE_FLAG_CHECKED determines whether there is activity going on.

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.

func RenderArrow

func RenderArrow(context *StyleContext, cr *cairo.Context, angle, x, y, size float64)

RenderArrow renders an arrow pointing to angle.

Typical arrow rendering at 0, 1⁄2 π;, π; and 3⁄2 π:

! (arrows.png).

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • angle: arrow angle from 0 to 2 * G_PI, being 0 the arrow pointing to the north.
  • x: x origin of the render area.
  • y: y origin of the render area.
  • size: square side for render area.

func RenderBackground

func RenderBackground(context *StyleContext, cr *cairo.Context, x, y, width, height float64)

RenderBackground renders the background of an element.

Typical background rendering, showing the effect of background-image, border-width and border-radius:

! (background.png).

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.

func RenderBackgroundGetClip

func RenderBackgroundGetClip(context *StyleContext, x, y, width, height float64) *gdk.Rectangle

RenderBackgroundGetClip returns the area that will be affected (i.e. drawn to) when calling gtk_render_background() for the given context and rectangle.

The function takes the following parameters:

  • context: StyleContext.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.

The function returns the following values:

  • outClip: return location for the clip.

func RenderCheck

func RenderCheck(context *StyleContext, cr *cairo.Context, x, y, width, height float64)

RenderCheck renders a checkmark (as in a CheckButton).

The GTK_STATE_FLAG_CHECKED state determines whether the check is on or off, and GTK_STATE_FLAG_INCONSISTENT determines whether it should be marked as undefined.

Typical checkmark rendering:

! (checks.png).

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.

func RenderExpander

func RenderExpander(context *StyleContext, cr *cairo.Context, x, y, width, height float64)

RenderExpander renders an expander (as used in TreeView and Expander) in the area defined by x, y, width, height. The state GTK_STATE_FLAG_CHECKED determines whether the expander is collapsed or expanded.

Typical expander rendering:

! (expanders.png).

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.

func RenderExtension

func RenderExtension(context *StyleContext, cr *cairo.Context, x, y, width, height float64, gapSide PositionType)

RenderExtension renders a extension (as in a Notebook tab) in the rectangle defined by x, y, width, height. The side where the extension connects to is defined by gap_side.

Typical extension rendering:

! (extensions.png).

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.
  • gapSide: side where the gap is.

func RenderFocus

func RenderFocus(context *StyleContext, cr *cairo.Context, x, y, width, height float64)

RenderFocus renders a focus indicator on the rectangle determined by x, y, width, height.

Typical focus rendering:

! (focus.png).

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.

func RenderFrame

func RenderFrame(context *StyleContext, cr *cairo.Context, x, y, width, height float64)

RenderFrame renders a frame around the rectangle defined by x, y, width, height.

Examples of frame rendering, showing the effect of border-image, border-color, border-width, border-radius and junctions:

! (frames.png).

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.

func RenderFrameGap deprecated

func RenderFrameGap(context *StyleContext, cr *cairo.Context, x, y, width, height float64, gapSide PositionType, xy0Gap, xy1Gap float64)

RenderFrameGap renders a frame around the rectangle defined by (x, y, width, height), leaving a gap on one side. xy0_gap and xy1_gap will mean X coordinates for GTK_POS_TOP and GTK_POS_BOTTOM gap sides, and Y coordinates for GTK_POS_LEFT and GTK_POS_RIGHT.

Typical rendering of a frame with a gap:

! (frame-gap.png)

Deprecated: Use gtk_render_frame() instead. Themes can create gaps by omitting borders via CSS.

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.
  • gapSide: side where the gap is.
  • xy0Gap: initial coordinate (X or Y depending on gap_side) for the gap.
  • xy1Gap: end coordinate (X or Y depending on gap_side) for the gap.

func RenderHandle

func RenderHandle(context *StyleContext, cr *cairo.Context, x, y, width, height float64)

RenderHandle renders a handle (as in HandleBox, Paned and Window’s resize grip), in the rectangle determined by x, y, width, height.

Handles rendered for the paned and grip classes:

! (handles.png).

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.

func RenderIcon

func RenderIcon(context *StyleContext, cr *cairo.Context, pixbuf *gdkpixbuf.Pixbuf, x, y float64)

RenderIcon renders the icon in pixbuf at the specified x and y coordinates.

This function will render the icon in pixbuf at exactly its size, regardless of scaling factors, which may not be appropriate when drawing on displays with high pixel densities.

You probably want to use gtk_render_icon_surface() instead, if you already have a Cairo surface.

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • pixbuf containing the icon to draw.
  • x: x position for the pixbuf.
  • y: y position for the pixbuf.

func RenderIconPixbuf deprecated

func RenderIconPixbuf(context *StyleContext, source *IconSource, size int) *gdkpixbuf.Pixbuf

RenderIconPixbuf renders the icon specified by source at the given size, returning the result in a pixbuf.

Deprecated: Use gtk_icon_theme_load_icon() instead.

The function takes the following parameters:

  • context: StyleContext.
  • source specifying the icon to render.
  • size (IconSize) to render the icon at. A size of (GtkIconSize) -1 means render at the size of the source and don’t scale.

The function returns the following values:

  • pixbuf: newly-created Pixbuf containing the rendered icon.

func RenderIconSurface

func RenderIconSurface(context *StyleContext, cr *cairo.Context, surface *cairo.Surface, x, y float64)

RenderIconSurface renders the icon in surface at the specified x and y coordinates.

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • surface containing the icon to draw.
  • x: x position for the icon.
  • y: y position for the incon.

func RenderInsertionCursor

func RenderInsertionCursor(context *StyleContext, cr *cairo.Context, x, y float64, layout *pango.Layout, index int, direction pango.Direction)

RenderInsertionCursor draws a text caret on cr at the specified index of layout.

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin.
  • y: y origin.
  • layout of the text.
  • index in the Layout.
  • direction of the text.

func RenderLayout

func RenderLayout(context *StyleContext, cr *cairo.Context, x, y float64, layout *pango.Layout)

RenderLayout renders layout on the coordinates x, y.

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin.
  • y: y origin.
  • layout to render.

func RenderLine

func RenderLine(context *StyleContext, cr *cairo.Context, x0, y0, x1, y1 float64)

RenderLine renders a line from (x0, y0) to (x1, y1).

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x0: x coordinate for the origin of the line.
  • y0: y coordinate for the origin of the line.
  • x1: x coordinate for the end of the line.
  • y1: y coordinate for the end of the line.

func RenderOption

func RenderOption(context *StyleContext, cr *cairo.Context, x, y, width, height float64)

RenderOption renders an option mark (as in a RadioButton), the GTK_STATE_FLAG_CHECKED state will determine whether the option is on or off, and GTK_STATE_FLAG_INCONSISTENT whether it should be marked as undefined.

Typical option mark rendering:

! (options.png).

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.

func RenderSlider

func RenderSlider(context *StyleContext, cr *cairo.Context, x, y, width, height float64, orientation Orientation)

RenderSlider renders a slider (as in Scale) in the rectangle defined by x, y, width, height. orientation defines whether the slider is vertical or horizontal.

Typical slider rendering:

! (sliders.png).

The function takes the following parameters:

  • context: StyleContext.
  • cr: #cairo_t.
  • x: x origin of the rectangle.
  • y: y origin of the rectangle.
  • width: rectangle width.
  • height: rectangle height.
  • orientation of the slider.

func SelectionRemoveAll

func SelectionRemoveAll(widget Widgetter)

SelectionRemoveAll removes all handlers and unsets ownership of all selections for a widget. Called when widget is being destroyed. This function will not generally be called by applications.

The function takes the following parameters:

  • widget: Widget.

func SetDebugFlags

func SetDebugFlags(flags uint)

SetDebugFlags sets the GTK+ debug flags.

The function takes the following parameters:

func ShowURI deprecated

func ShowURI(screen *gdk.Screen, uri string, timestamp uint32) error

ShowURI: convenience function for launching the default application to show the uri. Like gtk_show_uri_on_window(), but takes a screen as transient parent instead of a window.

Note that this function is deprecated as it does not pass the necessary information for helpers to parent their dialog properly, when run from sandboxed applications for example.

Deprecated: Use gtk_show_uri_on_window() instead.

The function takes the following parameters:

  • screen (optional) to show the uri on or NULL for the default screen.
  • uri to show.
  • timestamp to prevent focus stealing.

func ShowURIOnWindow

func ShowURIOnWindow(parent *Window, uri string, timestamp uint32) error

ShowURIOnWindow: this is a convenience function for launching the default application to show the uri. The uri must be of a form understood by GIO (i.e. you need to install gvfs to get support for uri schemes such as http:// or ftp://, as only local files are handled by GIO itself). Typical examples are

- file:///home/gnome/pict.jpg

- http://www.gnome.org

- mailto:megnome.org

Ideally the timestamp is taken from the event triggering the gtk_show_uri() call. If timestamp is not known you can take GDK_CURRENT_TIME.

This is the recommended call to be used as it passes information necessary for sandbox helpers to parent their dialogs properly.

The function takes the following parameters:

  • parent (optional) window.
  • uri to show.
  • timestamp to prevent focus stealing.

func StockAdd deprecated

func StockAdd(items []StockItem)

StockAdd registers each of the stock items in items. If an item already exists with the same stock ID as one of the items, the old item gets replaced. The stock items are copied, so GTK+ does not hold any pointer into items and items can be freed. Use gtk_stock_add_static() if items is persistent and GTK+ need not copy the array.

Deprecated: since version 3.10.

The function takes the following parameters:

  • items or array of items.

func StockAddStatic deprecated

func StockAddStatic(items []StockItem)

StockAddStatic: same as gtk_stock_add(), but doesn’t copy items, so items must persist until application exit.

Deprecated: since version 3.10.

The function takes the following parameters:

  • items or array of StockItem.

func StockListIDs deprecated

func StockListIDs() []string

StockListIDs retrieves a list of all known stock IDs added to a IconFactory or registered with gtk_stock_add(). The list must be freed with g_slist_free(), and each string in the list must be freed with g_free().

Deprecated: since version 3.10.

The function returns the following values:

  • sList: list of known stock IDs.

func StockSetTranslateFunc deprecated

func StockSetTranslateFunc(domain string, fn TranslateFunc)

StockSetTranslateFunc sets a function to be used for translating the label of a stock item.

If no function is registered for a translation domain, g_dgettext() is used.

The function is used for all stock items whose translation_domain matches domain. Note that it is possible to use strings different from the actual gettext translation domain of your application for this, as long as your TranslateFunc uses the correct domain when calling dgettext(). This can be useful, e.g. when dealing with message contexts:

GtkStockItem items[] = {
 { MY_ITEM1, NC_("odd items", "Item 1"), 0, 0, "odd-item-domain" },
 { MY_ITEM2, NC_("even items", "Item 2"), 0, 0, "even-item-domain" },
};

gchar *
my_translate_func (const gchar *msgid,
                   gpointer     data)
{
  gchar *msgctxt = data;

  return (gchar*)g_dpgettext2 (GETTEXT_PACKAGE, msgctxt, msgid);
}

...

gtk_stock_add (items, G_N_ELEMENTS (items));
gtk_stock_set_translate_func ("odd-item-domain", my_translate_func, "odd items");
gtk_stock_set_translate_func ("even-item-domain", my_translate_func, "even items");

Deprecated: since version 3.10.

The function takes the following parameters:

  • domain: translation domain for which func shall be used.
  • fn: TranslateFunc.

func StyleContextAddProviderForScreen

func StyleContextAddProviderForScreen(screen *gdk.Screen, provider StyleProviderer, priority uint)

StyleContextAddProviderForScreen adds a global style provider to screen, which will be used in style construction for all StyleContexts under screen.

GTK+ uses this to make styling information from Settings available.

Note: If both priorities are the same, A StyleProvider added through gtk_style_context_add_provider() takes precedence over another added through this function.

The function takes the following parameters:

  • screen: Screen.
  • provider: StyleProvider.
  • priority of the style provider. The lower it is, the earlier it will be used in the style construction. Typically this will be in the range between GTK_STYLE_PROVIDER_PRIORITY_FALLBACK and GTK_STYLE_PROVIDER_PRIORITY_USER.

func StyleContextRemoveProviderForScreen

func StyleContextRemoveProviderForScreen(screen *gdk.Screen, provider StyleProviderer)

StyleContextRemoveProviderForScreen removes provider from the global style providers list in screen.

The function takes the following parameters:

  • screen: Screen.
  • provider: StyleProvider.

func StyleContextResetWidgets

func StyleContextResetWidgets(screen *gdk.Screen)

StyleContextResetWidgets: this function recomputes the styles for all widgets under a particular Screen. This is useful when some global parameter has changed that affects the appearance of all widgets, because when a widget gets a new style, it will both redraw and recompute any cached information about its appearance. As an example, it is used when the color scheme changes in the related Settings object.

The function takes the following parameters:

  • screen: Screen.

func TestListAllTypes

func TestListAllTypes() []coreglib.Type

TestListAllTypes: return the type ids that have been registered after calling gtk_test_register_all_types().

The function returns the following values:

  • gTypes: 0-terminated array of type ids.

func TestRegisterAllTypes

func TestRegisterAllTypes()

TestRegisterAllTypes: force registration of all core Gtk+ and Gdk object types. This allowes to refer to any of those object types via g_type_from_name() after calling this function.

func TestSliderGetValue deprecated

func TestSliderGetValue(widget Widgetter) float64

TestSliderGetValue: retrive the literal adjustment value for GtkRange based widgets and spin buttons. Note that the value returned by this function is anything between the lower and upper bounds of the adjustment belonging to widget, and is not a percentage as passed in to gtk_test_slider_set_perc().

Deprecated: This testing infrastructure is phased out in favor of reftests.

The function takes the following parameters:

  • widget: valid widget pointer.

The function returns the following values:

  • gdouble: gtk_adjustment_get_value (adjustment) for an adjustment belonging to widget.

func TestSliderSetPerc deprecated

func TestSliderSetPerc(widget Widgetter, percentage float64)

TestSliderSetPerc: this function will adjust the slider position of all GtkRange based widgets, such as scrollbars or scales, it’ll also adjust spin buttons. The adjustment value of these widgets is set to a value between the lower and upper limits, according to the percentage argument.

Deprecated: This testing infrastructure is phased out in favor of reftests.

The function takes the following parameters:

  • widget: valid widget pointer.
  • percentage: value between 0 and 100.

func TestSpinButtonClick deprecated

func TestSpinButtonClick(spinner *SpinButton, button uint, upwards bool) bool

TestSpinButtonClick: this function will generate a button click in the upwards or downwards spin button arrow areas, usually leading to an increase or decrease of spin button’s value.

Deprecated: This testing infrastructure is phased out in favor of reftests.

The function takes the following parameters:

  • spinner: valid GtkSpinButton widget.
  • button: number of the pointer button for the event, usually 1, 2 or 3.
  • upwards: TRUE for upwards arrow click, FALSE for downwards arrow click.

The function returns the following values:

  • ok: whether all actions neccessary for the button click simulation were carried out successfully.

func TestTextGet deprecated

func TestTextGet(widget Widgetter) string

TestTextGet: retrive the text string of widget if it is a GtkLabel, GtkEditable (entry and text widgets) or GtkTextView.

Deprecated: This testing infrastructure is phased out in favor of reftests.

The function takes the following parameters:

  • widget: valid widget pointer.

The function returns the following values:

  • utf8: new 0-terminated C string, needs to be released with g_free().

func TestTextSet deprecated

func TestTextSet(widget Widgetter, str string)

TestTextSet: set the text string of widget to string if it is a GtkLabel, GtkEditable (entry and text widgets) or GtkTextView.

Deprecated: This testing infrastructure is phased out in favor of reftests.

The function takes the following parameters:

  • widget: valid widget pointer.
  • str: 0-terminated C string.

func TestWidgetClick deprecated

func TestWidgetClick(widget Widgetter, button uint, modifiers gdk.ModifierType) bool

TestWidgetClick: this function will generate a button click (button press and button release event) in the middle of the first GdkWindow found that belongs to widget. For windowless widgets like Button (which returns FALSE from gtk_widget_get_has_window()), this will often be an input-only event window. For other widgets, this is usually widget->window. Certain caveats should be considered when using this function, in particular because the mouse pointer is warped to the button click location, see gdk_test_simulate_button() for details.

Deprecated: This testing infrastructure is phased out in favor of reftests.

The function takes the following parameters:

  • widget: widget to generate a button click on.
  • button: number of the pointer button for the event, usually 1, 2 or 3.
  • modifiers: keyboard modifiers the event is setup with.

The function returns the following values:

  • ok: whether all actions neccessary for the button click simulation were carried out successfully.

func TestWidgetSendKey

func TestWidgetSendKey(widget Widgetter, keyval uint, modifiers gdk.ModifierType) bool

TestWidgetSendKey: this function will generate keyboard press and release events in the middle of the first GdkWindow found that belongs to widget. For windowless widgets like Button (which returns FALSE from gtk_widget_get_has_window()), this will often be an input-only event window. For other widgets, this is usually widget->window. Certain caveats should be considered when using this function, in particular because the mouse pointer is warped to the key press location, see gdk_test_simulate_key() for details.

The function takes the following parameters:

  • widget: widget to generate a key press and release on.
  • keyval: gdk keyboard value.
  • modifiers: keyboard modifiers the event is setup with.

The function returns the following values:

  • ok: whether all actions neccessary for the key event simulation were carried out successfully.

func TestWidgetWaitForDraw

func TestWidgetWaitForDraw(widget Widgetter)

TestWidgetWaitForDraw enters the main loop and waits for widget to be “drawn”. In this context that means it waits for the frame clock of widget to have run a full styling, layout and drawing cycle.

This function is intended to be used for syncing with actions that depend on widget relayouting or on interaction with the display server.

The function takes the following parameters:

  • widget to wait for.

func TooltipTriggerTooltipQuery

func TooltipTriggerTooltipQuery(display *gdk.Display)

TooltipTriggerTooltipQuery triggers a new tooltip query on display, in order to update the current visible tooltip, or to show/hide the current tooltip. This function is useful to call when, for example, the state of the widget changed by a key press.

The function takes the following parameters:

  • display: Display.

func TreeGetRowDragData

func TreeGetRowDragData(selectionData *SelectionData) (*TreeModel, *TreePath, bool)

TreeGetRowDragData obtains a tree_model and path from selection data of target type GTK_TREE_MODEL_ROW. Normally called from a drag_data_received handler. This function can only be used if selection_data originates from the same process that’s calling this function, because a pointer to the tree model is being passed around. If you aren’t in the same process, then you'll get memory corruption. In the TreeDragDest drag_data_received handler, you can assume that selection data of type GTK_TREE_MODEL_ROW is in from the current process. The returned path must be freed with gtk_tree_path_free().

The function takes the following parameters:

  • selectionData: SelectionData.

The function returns the following values:

  • treeModel (optional): TreeModel.
  • path (optional): row in tree_model.
  • ok: TRUE if selection_data had target type GTK_TREE_MODEL_ROW and is otherwise valid.

func TreeRowReferenceDeleted

func TreeRowReferenceDeleted(proxy *coreglib.Object, path *TreePath)

TreeRowReferenceDeleted lets a set of row reference created by gtk_tree_row_reference_new_proxy() know that the model emitted the TreeModel::row-deleted signal.

The function takes the following parameters:

  • proxy: #GObject.
  • path position that was deleted.

func TreeRowReferenceInserted

func TreeRowReferenceInserted(proxy *coreglib.Object, path *TreePath)

TreeRowReferenceInserted lets a set of row reference created by gtk_tree_row_reference_new_proxy() know that the model emitted the TreeModel::row-inserted signal.

The function takes the following parameters:

  • proxy: #GObject.
  • path: row position that was inserted.

func TreeSetRowDragData

func TreeSetRowDragData(selectionData *SelectionData, treeModel TreeModeller, path *TreePath) bool

TreeSetRowDragData sets selection data of target type GTK_TREE_MODEL_ROW. Normally used in a drag_data_get handler.

The function takes the following parameters:

  • selectionData: some SelectionData.
  • treeModel: TreeModel.
  • path: row in tree_model.

The function returns the following values:

  • ok: TRUE if the SelectionData had the proper target type to allow us to set a tree row.

func True

func True() bool

True: all this function does it to return TRUE.

This can be useful for example if you want to inhibit the deletion of a window. Of course you should not do this as the user expects a reaction from clicking the close icon of the window...

A persistent window

#include <gtk/gtk.h>

int
main (int argc, char **argv)
{
  GtkWidget *win, *but;
  const char *text = "Close yourself. I mean it!";

  gtk_init (&argc, &argv);

  win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  g_signal_connect (win,
                    "delete-event",
                    G_CALLBACK (gtk_true),
                    NULL);
  g_signal_connect (win, "destroy",
                    G_CALLBACK (gtk_main_quit),
                    NULL);

  but = gtk_button_new_with_label (text);
  g_signal_connect_swapped (but, "clicked",
                            G_CALLBACK (gtk_object_destroy),
                            win);
  gtk_container_add (GTK_CONTAINER (win), but);

  gtk_widget_show_all (win);

  gtk_main ();

  return 0;
}.

The function returns the following values:

  • ok: TRUE.

func WidgetPopCompositeChild deprecated

func WidgetPopCompositeChild()

WidgetPopCompositeChild cancels the effect of a previous call to gtk_widget_push_composite_child().

Deprecated: Use gtk_widget_class_set_template(), or don’t use this API at all.

func WidgetPushCompositeChild deprecated

func WidgetPushCompositeChild()

WidgetPushCompositeChild makes all newly-created widgets as composite children until the corresponding gtk_widget_pop_composite_child() call.

A composite child is a child that’s an implementation detail of the container it’s inside and should not be visible to people using the container. Composite children aren’t treated differently by GTK+ (but see gtk_container_foreach() vs. gtk_container_forall()), but e.g. GUI builders might want to treat them in a different way.

Deprecated: This API never really worked well and was mostly unused, now we have a more complete mechanism for composite children, see gtk_widget_class_set_template().

func WidgetSetDefaultDirection

func WidgetSetDefaultDirection(dir TextDirection)

WidgetSetDefaultDirection sets the default reading direction for widgets where the direction has not been explicitly set by gtk_widget_set_direction().

The function takes the following parameters:

  • dir: new default direction. This cannot be GTK_TEXT_DIR_NONE.

func WindowGetDefaultIconList

func WindowGetDefaultIconList() []*gdkpixbuf.Pixbuf

WindowGetDefaultIconList gets the value set by gtk_window_set_default_icon_list(). The list is a copy and should be freed with g_list_free(), but the pixbufs in the list have not had their reference count incremented.

The function returns the following values:

  • list: copy of default icon list.

func WindowGetDefaultIconName

func WindowGetDefaultIconName() string

WindowGetDefaultIconName returns the fallback icon name for windows that has been set with gtk_window_set_default_icon_name(). The returned string is owned by GTK+ and should not be modified. It is only valid until the next call to gtk_window_set_default_icon_name().

The function returns the following values:

  • utf8: fallback icon name for windows.

func WindowSetAutoStartupNotification

func WindowSetAutoStartupNotification(setting bool)

WindowSetAutoStartupNotification: by default, after showing the first Window, GTK+ calls gdk_notify_startup_complete(). Call this function to disable the automatic startup notification. You might do this if your first window is a splash screen, and you want to delay notification until after your real main window has been shown, for example.

In that example, you would disable startup notification temporarily, show your splash screen, then re-enable it so that showing the main window would automatically result in notification.

The function takes the following parameters:

  • setting: TRUE to automatically do startup notification.

func WindowSetDefaultIcon

func WindowSetDefaultIcon(icon *gdkpixbuf.Pixbuf)

WindowSetDefaultIcon sets an icon to be used as fallback for windows that haven't had gtk_window_set_icon() called on them from a pixbuf.

The function takes the following parameters:

  • icon: icon.

func WindowSetDefaultIconFromFile

func WindowSetDefaultIconFromFile(filename string) error

WindowSetDefaultIconFromFile sets an icon to be used as fallback for windows that haven't had gtk_window_set_icon_list() called on them from a file on disk. Warns on failure if err is NULL.

The function takes the following parameters:

  • filename: location of icon file.

func WindowSetDefaultIconList

func WindowSetDefaultIconList(list []*gdkpixbuf.Pixbuf)

WindowSetDefaultIconList sets an icon list to be used as fallback for windows that haven't had gtk_window_set_icon_list() called on them to set up a window-specific icon list. This function allows you to set up the icon for all windows in your app at once.

See gtk_window_set_icon_list() for more details.

The function takes the following parameters:

  • list of Pixbuf.

func WindowSetDefaultIconName

func WindowSetDefaultIconName(name string)

WindowSetDefaultIconName sets an icon to be used as fallback for windows that haven't had gtk_window_set_icon_list() called on them from a named themed icon, see gtk_window_set_icon_name().

The function takes the following parameters:

  • name of the themed icon.

func WindowSetInteractiveDebugging

func WindowSetInteractiveDebugging(enable bool)

WindowSetInteractiveDebugging opens or closes the [interactive debugger][interactive-debugging], which offers access to the widget hierarchy of the application and to useful debugging tools.

The function takes the following parameters:

  • enable: TRUE to enable interactive debugging.

Types

type AboutDialog

type AboutDialog struct {
	Dialog
	// contains filtered or unexported fields
}

AboutDialog offers a simple way to display information about a program like its logo, name, copyright, website and license. It is also possible to give credits to the authors, documenters, translators and artists who have worked on the program. An about dialog is typically opened when the user selects the About option from the Help menu. All parts of the dialog are optional.

About dialogs often contain links and email addresses. GtkAboutDialog displays these as clickable links. By default, it calls gtk_show_uri_on_window() when a user clicks one. The behaviour can be overridden with the AboutDialog::activate-link signal.

To specify a person with an email address, use a string like "Edgar Allan Poe <edgar\poe.com>". To specify a website with a title, use a string like "GTK+ team http://www.gtk.org".

To make constructing a GtkAboutDialog as convenient as possible, you can use the function gtk_show_about_dialog() which constructs and shows a dialog and keeps it around so that it can be shown again.

Note that GTK+ sets a default title of _("About s") on the dialog window (where \s is replaced by the name of the application, but in order to ensure proper translation of the title, applications should set the title property explicitly when constructing a GtkAboutDialog, as shown in the following example:

GdkPixbuf *example_logo = gdk_pixbuf_new_from_file ("./logo.png", NULL);
gtk_show_about_dialog (NULL,
                       "program-name", "ExampleCode",
                       "logo", example_logo,
                       "title", _("About ExampleCode"),
                       NULL);

It is also possible to show a AboutDialog like any other Dialog, e.g. using gtk_dialog_run(). In this case, you might need to know that the “Close” button returns the K_RESPONSE_CANCEL response id.

func NewAboutDialog

func NewAboutDialog() *AboutDialog

NewAboutDialog creates a new AboutDialog.

The function returns the following values:

  • aboutDialog: newly created AboutDialog.

func (*AboutDialog) AddCreditSection

func (about *AboutDialog) AddCreditSection(sectionName string, people []string)

AddCreditSection creates a new section in the Credits page.

The function takes the following parameters:

  • sectionName: name of the section.
  • people who belong to that section.

func (*AboutDialog) Artists

func (about *AboutDialog) Artists() []string

Artists returns the string which are displayed in the artists tab of the secondary credits dialog.

The function returns the following values:

  • utf8s: a NULL-terminated string array containing the artists. The array is owned by the about dialog and must not be modified.

func (*AboutDialog) Authors

func (about *AboutDialog) Authors() []string

Authors returns the string which are displayed in the authors tab of the secondary credits dialog.

The function returns the following values:

  • utf8s: a NULL-terminated string array containing the authors. The array is owned by the about dialog and must not be modified.

func (*AboutDialog) Comments

func (about *AboutDialog) Comments() string

Comments returns the comments string.

The function returns the following values:

  • utf8: comments. The string is owned by the about dialog and must not be modified.
func (about *AboutDialog) ConnectActivateLink(f func(uri string) (ok bool)) coreglib.SignalHandle

ConnectActivateLink: signal which gets emitted to activate a URI. Applications may connect to it to override the default behaviour, which is to call gtk_show_uri_on_window().

func (*AboutDialog) Copyright

func (about *AboutDialog) Copyright() string

Copyright returns the copyright string.

The function returns the following values:

  • utf8: copyright string. The string is owned by the about dialog and must not be modified.

func (*AboutDialog) Documenters

func (about *AboutDialog) Documenters() []string

Documenters returns the string which are displayed in the documenters tab of the secondary credits dialog.

The function returns the following values:

  • utf8s: a NULL-terminated string array containing the documenters. The array is owned by the about dialog and must not be modified.

func (*AboutDialog) License

func (about *AboutDialog) License() string

License returns the license information.

The function returns the following values:

  • utf8: license information. The string is owned by the about dialog and must not be modified.

func (*AboutDialog) LicenseType

func (about *AboutDialog) LicenseType() License

LicenseType retrieves the license set using gtk_about_dialog_set_license_type().

The function returns the following values:

  • license: License value.
func (about *AboutDialog) Logo() *gdkpixbuf.Pixbuf

Logo returns the pixbuf displayed as logo in the about dialog.

The function returns the following values:

  • pixbuf displayed as logo. The pixbuf is owned by the about dialog. If you want to keep a reference to it, you have to call g_object_ref() on it.

func (*AboutDialog) LogoIconName

func (about *AboutDialog) LogoIconName() string

LogoIconName returns the icon name displayed as logo in the about dialog.

The function returns the following values:

  • utf8: icon name displayed as logo. The string is owned by the dialog. If you want to keep a reference to it, you have to call g_strdup() on it.

func (*AboutDialog) ProgramName

func (about *AboutDialog) ProgramName() string

ProgramName returns the program name displayed in the about dialog.

The function returns the following values:

  • utf8: program name. The string is owned by the about dialog and must not be modified.

func (*AboutDialog) SetArtists

func (about *AboutDialog) SetArtists(artists []string)

SetArtists sets the strings which are displayed in the artists tab of the secondary credits dialog.

The function takes the following parameters:

  • artists: NULL-terminated array of strings.

func (*AboutDialog) SetAuthors

func (about *AboutDialog) SetAuthors(authors []string)

SetAuthors sets the strings which are displayed in the authors tab of the secondary credits dialog.

The function takes the following parameters:

  • authors: NULL-terminated array of strings.

func (*AboutDialog) SetComments

func (about *AboutDialog) SetComments(comments string)

SetComments sets the comments string to display in the about dialog. This should be a short string of one or two lines.

The function takes the following parameters:

  • comments (optional) string.

func (*AboutDialog) SetCopyright

func (about *AboutDialog) SetCopyright(copyright string)

SetCopyright sets the copyright string to display in the about dialog. This should be a short string of one or two lines.

The function takes the following parameters:

  • copyright (optional) string.

func (*AboutDialog) SetDocumenters

func (about *AboutDialog) SetDocumenters(documenters []string)

SetDocumenters sets the strings which are displayed in the documenters tab of the secondary credits dialog.

The function takes the following parameters:

  • documenters: NULL-terminated array of strings.

func (*AboutDialog) SetLicense

func (about *AboutDialog) SetLicense(license string)

SetLicense sets the license information to be displayed in the secondary license dialog. If license is NULL, the license button is hidden.

The function takes the following parameters:

  • license (optional) information or NULL.

func (*AboutDialog) SetLicenseType

func (about *AboutDialog) SetLicenseType(licenseType License)

SetLicenseType sets the license of the application showing the about dialog from a list of known licenses.

This function overrides the license set using gtk_about_dialog_set_license().

The function takes the following parameters:

  • licenseType: type of license.
func (about *AboutDialog) SetLogo(logo *gdkpixbuf.Pixbuf)

SetLogo sets the pixbuf to be displayed as logo in the about dialog. If it is NULL, the default window icon set with gtk_window_set_default_icon() will be used.

The function takes the following parameters:

  • logo (optional) or NULL.

func (*AboutDialog) SetLogoIconName

func (about *AboutDialog) SetLogoIconName(iconName string)

SetLogoIconName sets the pixbuf to be displayed as logo in the about dialog. If it is NULL, the default window icon set with gtk_window_set_default_icon() will be used.

The function takes the following parameters:

  • iconName (optional): icon name, or NULL.

func (*AboutDialog) SetProgramName

func (about *AboutDialog) SetProgramName(name string)

SetProgramName sets the name to display in the about dialog. If this is not set, it defaults to g_get_application_name().

The function takes the following parameters:

  • name: program name.

func (*AboutDialog) SetTranslatorCredits

func (about *AboutDialog) SetTranslatorCredits(translatorCredits string)

SetTranslatorCredits sets the translator credits string which is displayed in the translators tab of the secondary credits dialog.

The intended use for this string is to display the translator of the language which is currently used in the user interface. Using gettext(), a simple way to achieve that is to mark the string for translation:

GtkWidget *about = gtk_about_dialog_new ();
gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG (about),
                                         _("translator-credits"));

It is a good idea to use the customary msgid “translator-credits” for this purpose, since translators will already know the purpose of that msgid, and since AboutDialog will detect if “translator-credits” is untranslated and hide the tab.

The function takes the following parameters:

  • translatorCredits (optional): translator credits.

func (*AboutDialog) SetVersion

func (about *AboutDialog) SetVersion(version string)

SetVersion sets the version string to display in the about dialog.

The function takes the following parameters:

  • version (optional) string.

func (*AboutDialog) SetWebsite

func (about *AboutDialog) SetWebsite(website string)

SetWebsite sets the URL to use for the website link.

The function takes the following parameters:

  • website (optional): URL string starting with "http://".

func (*AboutDialog) SetWebsiteLabel

func (about *AboutDialog) SetWebsiteLabel(websiteLabel string)

SetWebsiteLabel sets the label to be used for the website link.

The function takes the following parameters:

  • websiteLabel: label used for the website link.

func (*AboutDialog) SetWrapLicense

func (about *AboutDialog) SetWrapLicense(wrapLicense bool)

SetWrapLicense sets whether the license text in about is automatically wrapped.

The function takes the following parameters:

  • wrapLicense: whether to wrap the license.

func (*AboutDialog) TranslatorCredits

func (about *AboutDialog) TranslatorCredits() string

TranslatorCredits returns the translator credits string which is displayed in the translators tab of the secondary credits dialog.

The function returns the following values:

  • utf8: translator credits string. The string is owned by the about dialog and must not be modified.

func (*AboutDialog) Version

func (about *AboutDialog) Version() string

Version returns the version string.

The function returns the following values:

  • utf8: version string. The string is owned by the about dialog and must not be modified.

func (*AboutDialog) Website

func (about *AboutDialog) Website() string

Website returns the website URL.

The function returns the following values:

  • utf8: website URL. The string is owned by the about dialog and must not be modified.

func (*AboutDialog) WebsiteLabel

func (about *AboutDialog) WebsiteLabel() string

WebsiteLabel returns the label used for the website link.

The function returns the following values:

  • utf8: label used for the website link. The string is owned by the about dialog and must not be modified.

func (*AboutDialog) WrapLicense

func (about *AboutDialog) WrapLicense() bool

WrapLicense returns whether the license text in about is automatically wrapped.

The function returns the following values:

  • ok: TRUE if the license text is wrapped.

type AboutDialogClass added in v0.0.5

type AboutDialogClass struct {
	// contains filtered or unexported fields
}

AboutDialogClass: instance of this type is always passed by reference.

func (*AboutDialogClass) ParentClass added in v0.0.5

func (a *AboutDialogClass) ParentClass() *DialogClass

type AboutDialogOverrides added in v0.0.5

type AboutDialogOverrides struct {
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ActivateLink func(uri string) bool
}

AboutDialogOverrides contains methods that are overridable.

type AccelFlags

type AccelFlags C.guint

AccelFlags: accelerator flags used with gtk_accel_group_connect().

const (
	// AccelVisible: accelerator is visible.
	AccelVisible AccelFlags = 0b1
	// AccelLocked: accelerator not removable.
	AccelLocked AccelFlags = 0b10
	// AccelMask: mask.
	AccelMask AccelFlags = 0b111
)

func (AccelFlags) Has

func (a AccelFlags) Has(other AccelFlags) bool

Has returns true if a contains other.

func (AccelFlags) String

func (a AccelFlags) String() string

String returns the names in string for AccelFlags.

type AccelGroup

type AccelGroup struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

AccelGroup represents a group of keyboard accelerators, typically attached to a toplevel Window (with gtk_window_add_accel_group()). Usually you won’t need to create a AccelGroup directly; instead, when using UIManager, GTK+ automatically sets up the accelerators for your menus in the ui manager’s AccelGroup.

Note that “accelerators” are different from “mnemonics”. Accelerators are shortcuts for activating a menu item; they appear alongside the menu item they’re a shortcut for. For example “Ctrl+Q” might appear alongside the “Quit” menu item. Mnemonics are shortcuts for GUI elements such as text entries or buttons; they appear as underlined characters. See gtk_label_new_with_mnemonic(). Menu items can have both accelerators and mnemonics, of course.

func AccelGroupsFromObject

func AccelGroupsFromObject(object *coreglib.Object) []*AccelGroup

AccelGroupsFromObject gets a list of all accel groups which are attached to object.

The function takes the following parameters:

  • object usually a Window.

The function returns the following values:

  • sList: list of all accel groups which are attached to object.

func NewAccelGroup

func NewAccelGroup() *AccelGroup

NewAccelGroup creates a new AccelGroup.

The function returns the following values:

  • accelGroup: new AccelGroup object.

func (*AccelGroup) Activate

func (accelGroup *AccelGroup) Activate(accelQuark glib.Quark, acceleratable *coreglib.Object, accelKey uint, accelMods gdk.ModifierType) bool

Activate finds the first accelerator in accel_group that matches accel_key and accel_mods, and activates it.

The function takes the following parameters:

  • accelQuark: quark for the accelerator name.
  • acceleratable usually a Window, on which to activate the accelerator.
  • accelKey: accelerator keyval from a key event.
  • accelMods: keyboard state mask from a key event.

The function returns the following values:

  • ok: TRUE if an accelerator was activated and handled this keypress.

func (*AccelGroup) ConnectAccelActivate

func (accelGroup *AccelGroup) ConnectAccelActivate(f func(acceleratable *coreglib.Object, keyval uint, modifier gdk.ModifierType) (ok bool)) coreglib.SignalHandle

ConnectAccelActivate signal is an implementation detail of AccelGroup and not meant to be used by applications.

func (*AccelGroup) ConnectAccelGroup

func (accelGroup *AccelGroup) ConnectAccelGroup(accelKey uint, accelMods gdk.ModifierType, accelFlags AccelFlags, closure coreglib.AnyClosure)

ConnectAccelGroup installs an accelerator in this group. When accel_group is being activated in response to a call to gtk_accel_groups_activate(), closure will be invoked if the accel_key and accel_mods from gtk_accel_groups_activate() match those of this connection.

The signature used for the closure is that of AccelGroupActivate.

Note that, due to implementation details, a single closure can only be connected to one accelerator group.

The function takes the following parameters:

  • accelKey: key value of the accelerator.
  • accelMods: modifier combination of the accelerator.
  • accelFlags: flag mask to configure this accelerator.
  • closure to be executed upon accelerator activation.

func (*AccelGroup) ConnectByPath

func (accelGroup *AccelGroup) ConnectByPath(accelPath string, closure coreglib.AnyClosure)

ConnectByPath installs an accelerator in this group, using an accelerator path to look up the appropriate key and modifiers (see gtk_accel_map_add_entry()). When accel_group is being activated in response to a call to gtk_accel_groups_activate(), closure will be invoked if the accel_key and accel_mods from gtk_accel_groups_activate() match the key and modifiers for the path.

The signature used for the closure is that of AccelGroupActivate.

Note that accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().

The function takes the following parameters:

  • accelPath: path used for determining key and modifiers.
  • closure to be executed upon accelerator activation.

func (*AccelGroup) Disconnect

func (accelGroup *AccelGroup) Disconnect(closure coreglib.AnyClosure) bool

Disconnect removes an accelerator previously installed through gtk_accel_group_connect().

Since 2.20 closure can be NULL.

The function takes the following parameters:

  • closure (optional) to remove from this accelerator group, or NULL to remove all closures.

The function returns the following values:

  • ok: TRUE if the closure was found and got disconnected.

func (*AccelGroup) DisconnectKey

func (accelGroup *AccelGroup) DisconnectKey(accelKey uint, accelMods gdk.ModifierType) bool

DisconnectKey removes an accelerator previously installed through gtk_accel_group_connect().

The function takes the following parameters:

  • accelKey: key value of the accelerator.
  • accelMods: modifier combination of the accelerator.

The function returns the following values:

  • ok: TRUE if there was an accelerator which could be removed, FALSE otherwise.

func (*AccelGroup) IsLocked

func (accelGroup *AccelGroup) IsLocked() bool

IsLocked locks are added and removed using gtk_accel_group_lock() and gtk_accel_group_unlock().

The function returns the following values:

  • ok: TRUE if there are 1 or more locks on the accel_group, FALSE otherwise.

func (*AccelGroup) Lock

func (accelGroup *AccelGroup) Lock()

Lock locks the given accelerator group.

Locking an acelerator group prevents the accelerators contained within it to be changed during runtime. Refer to gtk_accel_map_change_entry() about runtime accelerator changes.

If called more than once, accel_group remains locked until gtk_accel_group_unlock() has been called an equivalent number of times.

func (*AccelGroup) ModifierMask

func (accelGroup *AccelGroup) ModifierMask() gdk.ModifierType

ModifierMask gets a ModifierType representing the mask for this accel_group. For example, K_CONTROL_MASK, K_SHIFT_MASK, etc.

The function returns the following values:

  • modifierType: modifier mask for this accel group.

func (*AccelGroup) Query

func (accelGroup *AccelGroup) Query(accelKey uint, accelMods gdk.ModifierType) []AccelGroupEntry

Query queries an accelerator group for all entries matching accel_key and accel_mods.

The function takes the following parameters:

  • accelKey: key value of the accelerator.
  • accelMods: modifier combination of the accelerator.

The function returns the following values:

  • accelGroupEntrys (optional): array of n_entries AccelGroupEntry elements, or NULL. The array is owned by GTK+ and must not be freed.

func (*AccelGroup) Unlock

func (accelGroup *AccelGroup) Unlock()

Unlock undoes the last call to gtk_accel_group_lock() on this accel_group.

type AccelGroupClass added in v0.0.5

type AccelGroupClass struct {
	// contains filtered or unexported fields
}

AccelGroupClass: instance of this type is always passed by reference.

type AccelGroupEntry

type AccelGroupEntry struct {
	// contains filtered or unexported fields
}

AccelGroupEntry: instance of this type is always passed by reference.

func (*AccelGroupEntry) AccelPathQuark

func (a *AccelGroupEntry) AccelPathQuark() glib.Quark

func (*AccelGroupEntry) Key

func (a *AccelGroupEntry) Key() *AccelKey

type AccelGroupOverrides added in v0.0.5

type AccelGroupOverrides struct {
}

AccelGroupOverrides contains methods that are overridable.

type AccelKey

type AccelKey struct {
	// contains filtered or unexported fields
}

AccelKey: instance of this type is always passed by reference.

func AccelMapLookupEntry

func AccelMapLookupEntry(accelPath string) (*AccelKey, bool)

AccelMapLookupEntry looks up the accelerator entry for accel_path and fills in key.

The function takes the following parameters:

  • accelPath: valid accelerator path.

The function returns the following values:

  • key (optional): accelerator key to be filled in (optional).
  • ok: TRUE if accel_path is known, FALSE otherwise.

func (*AccelKey) AccelKey

func (a *AccelKey) AccelKey() uint

AccelKey: accelerator keyval.

func (*AccelKey) AccelMods

func (a *AccelKey) AccelMods() gdk.ModifierType

AccelMods: accelerator modifiers.

func (*AccelKey) SetAccelKey

func (a *AccelKey) SetAccelKey(accelKey uint)

AccelKey: accelerator keyval.

type AccelLabel

type AccelLabel struct {
	Label
	// contains filtered or unexported fields
}

AccelLabel widget is a subclass of Label that also displays an accelerator key on the right of the label text, e.g. “Ctrl+S”. It is commonly used in menus to show the keyboard short-cuts for commands.

The accelerator key to display is typically not set explicitly (although it can be, with gtk_accel_label_set_accel()). Instead, the AccelLabel displays the accelerators which have been added to a particular widget. This widget is set by calling gtk_accel_label_set_accel_widget().

For example, a MenuItem widget may have an accelerator added to emit the “activate” signal when the “Ctrl+S” key combination is pressed. A AccelLabel is created and added to the MenuItem, and gtk_accel_label_set_accel_widget() is called with the MenuItem as the second argument. The AccelLabel will now display “Ctrl+S” after its label.

Note that creating a MenuItem with gtk_menu_item_new_with_label() (or one of the similar functions for CheckMenuItem and RadioMenuItem) automatically adds a AccelLabel to the MenuItem and calls gtk_accel_label_set_accel_widget() to set it up for you.

A AccelLabel will only display accelerators which have GTK_ACCEL_VISIBLE set (see AccelFlags). A AccelLabel can display multiple accelerators and even signal names, though it is almost always used to display just one accelerator key.

Creating a simple menu item with an accelerator key.

label
╰── accelerator

Like Label, GtkAccelLabel has a main CSS node with the name label. It adds a subnode with name accelerator.

func NewAccelLabel

func NewAccelLabel(str string) *AccelLabel

NewAccelLabel creates a new AccelLabel.

The function takes the following parameters:

  • str: label string. Must be non-NULL.

The function returns the following values:

  • accelLabel: new AccelLabel.

func (*AccelLabel) Accel

func (accelLabel *AccelLabel) Accel() (uint, gdk.ModifierType)

Accel gets the keyval and modifier mask set with gtk_accel_label_set_accel().

The function returns the following values:

  • acceleratorKey: return location for the keyval.
  • acceleratorMods: return location for the modifier mask.

func (*AccelLabel) AccelWidget

func (accelLabel *AccelLabel) AccelWidget() Widgetter

AccelWidget fetches the widget monitored by this accelerator label. See gtk_accel_label_set_accel_widget().

The function returns the following values:

  • widget (optional): object monitored by the accelerator label, or NULL.

func (*AccelLabel) AccelWidth

func (accelLabel *AccelLabel) AccelWidth() uint

AccelWidth returns the width needed to display the accelerator key(s). This is used by menus to align all of the MenuItem widgets, and shouldn't be needed by applications.

The function returns the following values:

  • guint: width needed to display the accelerator key(s).

func (*AccelLabel) Refetch

func (accelLabel *AccelLabel) Refetch() bool

Refetch recreates the string representing the accelerator keys. This should not be needed since the string is automatically updated whenever accelerators are added or removed from the associated widget.

The function returns the following values:

  • ok always returns FALSE.

func (*AccelLabel) SetAccel

func (accelLabel *AccelLabel) SetAccel(acceleratorKey uint, acceleratorMods gdk.ModifierType)

SetAccel: manually sets a keyval and modifier mask as the accelerator rendered by accel_label.

If a keyval and modifier are explicitly set then these values are used regardless of any associated accel closure or widget.

Providing an accelerator_key of 0 removes the manual setting.

The function takes the following parameters:

  • acceleratorKey: keyval, or 0.
  • acceleratorMods: modifier mask for the accel.

func (*AccelLabel) SetAccelClosure

func (accelLabel *AccelLabel) SetAccelClosure(accelClosure coreglib.AnyClosure)

SetAccelClosure sets the closure to be monitored by this accelerator label. The closure must be connected to an accelerator group; see gtk_accel_group_connect(). Passing NULL for accel_closure will dissociate accel_label from its current closure, if any.

The function takes the following parameters:

  • accelClosure (optional): closure to monitor for accelerator changes, or NULL.

func (*AccelLabel) SetAccelWidget

func (accelLabel *AccelLabel) SetAccelWidget(accelWidget Widgetter)

SetAccelWidget sets the widget to be monitored by this accelerator label. Passing NULL for accel_widget will dissociate accel_label from its current widget, if any.

The function takes the following parameters:

  • accelWidget (optional): widget to be monitored, or NULL.

type AccelLabelClass added in v0.0.5

type AccelLabelClass struct {
	// contains filtered or unexported fields
}

AccelLabelClass: instance of this type is always passed by reference.

func (*AccelLabelClass) ModNameAlt added in v0.0.5

func (a *AccelLabelClass) ModNameAlt() string

func (*AccelLabelClass) ModNameControl added in v0.0.5

func (a *AccelLabelClass) ModNameControl() string

func (*AccelLabelClass) ModNameShift added in v0.0.5

func (a *AccelLabelClass) ModNameShift() string

func (*AccelLabelClass) ModSeparator added in v0.0.5

func (a *AccelLabelClass) ModSeparator() string

func (*AccelLabelClass) ParentClass added in v0.0.5

func (a *AccelLabelClass) ParentClass() *LabelClass

func (*AccelLabelClass) SignalQuote1 added in v0.0.5

func (a *AccelLabelClass) SignalQuote1() string

func (*AccelLabelClass) SignalQuote2 added in v0.0.5

func (a *AccelLabelClass) SignalQuote2() string

type AccelLabelOverrides added in v0.0.5

type AccelLabelOverrides struct {
}

AccelLabelOverrides contains methods that are overridable.

type AccelMap

type AccelMap struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

AccelMap: accelerator maps are used to define runtime configurable accelerators. Functions for manipulating them are are usually used by higher level convenience mechanisms like UIManager and are thus considered “low-level”. You’ll want to use them if you’re manually creating menus that should have user-configurable accelerators.

An accelerator is uniquely defined by:

- accelerator path

- accelerator key

- accelerator modifiers

The accelerator path must consist of “<WINDOWTYPE>/Category1/Category2/.../Action”, where WINDOWTYPE should be a unique application-specific identifier that corresponds to the kind of window the accelerator is being used in, e.g. “Gimp-Image”, “Abiword-Document” or “Gnumeric-Settings”. The “Category1/.../Action” portion is most appropriately chosen by the action the accelerator triggers, i.e. for accelerators on menu items, choose the item’s menu path, e.g. “File/Save As”, “Image/View/Zoom” or “Edit/Select All”. So a full valid accelerator path may look like: “<Gimp-Toolbox>/File/Dialogs/Tool Options...”.

All accelerators are stored inside one global AccelMap that can be obtained using gtk_accel_map_get(). See [Monitoring changes][monitoring-changes] for additional details.

Manipulating accelerators

New accelerators can be added using gtk_accel_map_add_entry(). To search for specific accelerator, use gtk_accel_map_lookup_entry(). Modifications of existing accelerators should be done using gtk_accel_map_change_entry().

In order to avoid having some accelerators changed, they can be locked using gtk_accel_map_lock_path(). Unlocking is done using gtk_accel_map_unlock_path().

Saving and loading accelerator maps

Accelerator maps can be saved to and loaded from some external resource. For simple saving and loading from file, gtk_accel_map_save() and gtk_accel_map_load() are provided. Saving and loading can also be done by providing file descriptor to gtk_accel_map_save_fd() and gtk_accel_map_load_fd().

Monitoring changes

AccelMap object is only useful for monitoring changes of accelerators. By connecting to AccelMap::changed signal, one can monitor changes of all accelerators. It is also possible to monitor only single accelerator path by using it as a detail of the AccelMap::changed signal.

func AccelMapGet

func AccelMapGet() *AccelMap

AccelMapGet gets the singleton global AccelMap object. This object is useful only for notification of changes to the accelerator map via the ::changed signal; it isn’t a parameter to the other accelerator map functions.

The function returns the following values:

  • accelMap: global AccelMap object.

func (*AccelMap) ConnectChanged

func (v *AccelMap) ConnectChanged(f func(accelPath string, accelKey uint, accelMods gdk.ModifierType)) coreglib.SignalHandle

ConnectChanged notifies of a change in the global accelerator map. The path is also used as the detail for the signal, so it is possible to connect to changed::accel_path.

type Accessible

type Accessible struct {
	atk.AtkObject
	// contains filtered or unexported fields
}

Accessible class is the base class for accessible implementations for Widget subclasses. It is a thin wrapper around Object, which adds facilities for associating a widget with its accessible object.

An accessible implementation for a third-party widget should derive from Accessible and implement the suitable interfaces from ATK, such as Text or Selection. To establish the connection between the widget class and its corresponding acccessible implementation, override the get_accessible vfunc in WidgetClass.

func (*Accessible) ConnectWidgetDestroyed deprecated

func (accessible *Accessible) ConnectWidgetDestroyed()

ConnectWidgetDestroyed: this function specifies the callback function to be called when the widget corresponding to a GtkAccessible is destroyed.

Deprecated: Use gtk_accessible_set_widget() and its vfuncs.

func (*Accessible) SetWidget

func (accessible *Accessible) SetWidget(widget Widgetter)

SetWidget sets the Widget corresponding to the Accessible.

accessible will not hold a reference to widget. It is the caller’s responsibility to ensure that when widget is destroyed, the widget is unset by calling this function again with widget set to NULL.

The function takes the following parameters:

  • widget (optional) or NULL to unset.

func (*Accessible) Widget

func (accessible *Accessible) Widget() Widgetter

Widget gets the Widget corresponding to the Accessible. The returned widget does not have a reference added, so you do not need to unref it.

The function returns the following values:

  • widget (optional): pointer to the Widget corresponding to the Accessible, or NULL.

type AccessibleClass added in v0.0.5

type AccessibleClass struct {
	// contains filtered or unexported fields
}

AccessibleClass: instance of this type is always passed by reference.

func (*AccessibleClass) ParentClass added in v0.0.5

func (a *AccessibleClass) ParentClass() *atk.ObjectClass

type AccessibleOverrides added in v0.0.5

type AccessibleOverrides struct {
	// ConnectWidgetDestroyed: this function specifies the callback function to
	// be called when the widget corresponding to a GtkAccessible is destroyed.
	//
	// Deprecated: Use gtk_accessible_set_widget() and its vfuncs.
	ConnectWidgetDestroyed func()
	WidgetSet              func()
	WidgetUnset            func()
}

AccessibleOverrides contains methods that are overridable.

type Action

type Action struct {
	*coreglib.Object

	Buildable
	// contains filtered or unexported fields
}

Action: > In GTK+ 3.10, GtkAction has been deprecated. Use #GAction > instead, and associate actions with Actionable widgets. Use > Model for creating menus with gtk_menu_new_from_model().

Actions represent operations that the user can be perform, along with some information how it should be presented in the interface. Each action provides methods to create icons, menu items and toolbar items representing itself.

As well as the callback that is called when the action gets activated, the following also gets associated with the action:

- a name (not translated, for path lookup)

- a label (translated, for display)

- an accelerator

- whether label indicates a stock id

- a tooltip (optional, translated)

- a toolbar label (optional, shorter than label)

The action will also have some state information:

- visible (shown/hidden)

- sensitive (enabled/disabled)

Apart from regular actions, there are [toggle actions][GtkToggleAction], which can be toggled between two states and [radio actions][GtkRadioAction], of which only one in a group can be in the “active” state. Other actions can be implemented as Action subclasses.

Each action can have one or more proxy widgets. To act as an action proxy, widget needs to implement Activatable interface. Proxies mirror the state of the action and should change when the action’s state changes. Properties that are always mirrored by proxies are Action:sensitive and Action:visible. Action:gicon, Action:icon-name, Action:label, Action:short-label and Action:stock-id properties are only mirorred if proxy widget has Activatable:use-action-appearance property set to TRUE.

When the proxy is activated, it should activate its action.

func NewAction deprecated

func NewAction(name, label, tooltip, stockId string) *Action

NewAction creates a new Action object. To add the action to a ActionGroup and set the accelerator for the action, call gtk_action_group_add_action_with_accel(). See the [UI Definition section][XML-UI] for information on allowed action names.

Deprecated: Use #GAction instead, associating it to a widget with Actionable or creating a Menu with gtk_menu_new_from_model().

The function takes the following parameters:

  • name: unique name for the action.
  • label (optional) displayed in menu items and on buttons, or NULL.
  • tooltip (optional) for the action, or NULL.
  • stockId (optional): stock icon to display in widgets representing the action, or NULL.

The function returns the following values:

  • action: new Action.

func (*Action) AccelPath deprecated

func (action *Action) AccelPath() string

AccelPath returns the accel path for this action.

Deprecated: Use #GAction and the accelerator path on an associated Menu instead.

The function returns the following values:

  • utf8: accel path for this action, or NULL if none is set. The returned string is owned by GTK+ and must not be freed or modified.

func (*Action) Activate deprecated

func (action *Action) Activate()

Activate emits the “activate” signal on the specified action, if it isn't insensitive. This gets called by the proxy widgets when they get activated.

It can also be used to manually activate an action.

Deprecated: Use g_action_group_activate_action() on a #GAction instead.

func (*Action) AlwaysShowImage deprecated

func (action *Action) AlwaysShowImage() bool

AlwaysShowImage returns whether action's menu item proxies will always show their image, if available.

Deprecated: Use g_menu_item_get_attribute_value() on a Item instead.

The function returns the following values:

  • ok: TRUE if the menu item proxies will always show their image.

func (*Action) BlockActivate deprecated

func (action *Action) BlockActivate()

BlockActivate: disable activation signals from the action

This is needed when updating the state of your proxy Activatable widget could result in calling gtk_action_activate(), this is a convenience function to avoid recursing in those cases (updating toggle state for instance).

Deprecated: Use g_simple_action_set_enabled() to disable the Action instead.

func (*Action) ConnectAccelerator deprecated

func (action *Action) ConnectAccelerator()

ConnectAccelerator installs the accelerator for action if action has an accel path and group. See gtk_action_set_accel_path() and gtk_action_set_accel_group()

Since multiple proxies may independently trigger the installation of the accelerator, the action counts the number of times this function has been called and doesn’t remove the accelerator until gtk_action_disconnect_accelerator() has been called as many times.

Deprecated: Use #GAction and the accelerator group on an associated Menu instead.

func (*Action) ConnectActivate

func (action *Action) ConnectActivate(f func()) coreglib.SignalHandle

ConnectActivate: "activate" signal is emitted when the action is activated.

func (*Action) CreateIcon deprecated

func (action *Action) CreateIcon(iconSize int) Widgetter

CreateIcon: this function is intended for use by action implementations to create icons displayed in the proxy widgets.

Deprecated: Use g_menu_item_set_icon() to set an icon on a Item, or gtk_container_add() to add a Image to a Button.

The function takes the following parameters:

  • iconSize: size of the icon (IconSize) that should be created.

The function returns the following values:

  • widget that displays the icon for this action.

func (*Action) CreateMenu deprecated

func (action *Action) CreateMenu() Widgetter

CreateMenu: if action provides a Menu widget as a submenu for the menu item or the toolbar item it creates, this function returns an instance of that menu.

Deprecated: Use #GAction and Model instead, and create a Menu with gtk_menu_new_from_model().

The function returns the following values:

  • widget: menu item provided by the action, or NULL.

func (*Action) CreateMenuItem deprecated

func (action *Action) CreateMenuItem() Widgetter

CreateMenuItem creates a menu item widget that proxies for the given action.

Deprecated: Use g_menu_item_new() and associate it with a #GAction instead.

The function returns the following values:

  • widget: menu item connected to the action.

func (*Action) CreateToolItem deprecated

func (action *Action) CreateToolItem() Widgetter

CreateToolItem creates a toolbar item widget that proxies for the given action.

Deprecated: Use a ToolItem and associate it with a #GAction using gtk_actionable_set_action_name() instead.

The function returns the following values:

  • widget: toolbar item connected to the action.

func (*Action) DisconnectAccelerator deprecated

func (action *Action) DisconnectAccelerator()

DisconnectAccelerator undoes the effect of one call to gtk_action_connect_accelerator().

Deprecated: Use #GAction and the accelerator group on an associated Menu instead.

func (*Action) GIcon deprecated

func (action *Action) GIcon() *gio.Icon

GIcon gets the gicon of action.

Deprecated: Use #GAction instead, and g_menu_item_get_attribute_value() to get an icon from a Item associated with a #GAction.

The function returns the following values:

  • icon action’s #GIcon if one is set.

func (*Action) IconName deprecated

func (action *Action) IconName() string

IconName gets the icon name of action.

Deprecated: Use #GAction instead, and g_menu_item_get_attribute_value() to get an icon from a Item associated with a #GAction.

The function returns the following values:

  • utf8: icon name.

func (*Action) IsImportant deprecated

func (action *Action) IsImportant() bool

IsImportant checks whether action is important or not

Deprecated: Use #GAction instead, and control and monitor whether labels are shown directly.

The function returns the following values:

  • ok: whether action is important.

func (*Action) IsSensitive deprecated

func (action *Action) IsSensitive() bool

IsSensitive returns whether the action is effectively sensitive.

Deprecated: Use g_action_get_enabled() on a #GAction instead.

The function returns the following values:

  • ok: TRUE if the action and its associated action group are both sensitive.

func (*Action) IsVisible deprecated

func (action *Action) IsVisible() bool

IsVisible returns whether the action is effectively visible.

Deprecated: Use #GAction instead, and control and monitor the state of Actionable widgets directly.

The function returns the following values:

  • ok: TRUE if the action and its associated action group are both visible.

func (*Action) Label deprecated

func (action *Action) Label() string

Label gets the label text of action.

Deprecated: Use #GAction instead, and get a label from a menu item with g_menu_item_get_attribute_value(). For Actionable widgets, use the widget-specific API to get a label.

The function returns the following values:

  • utf8: label text.

func (*Action) Name deprecated

func (action *Action) Name() string

Name returns the name of the action.

Deprecated: Use g_action_get_name() on a #GAction instead.

The function returns the following values:

  • utf8: name of the action. The string belongs to GTK+ and should not be freed.

func (*Action) Proxies deprecated

func (action *Action) Proxies() []Widgetter

Proxies returns the proxy widgets for an action. See also gtk_activatable_get_related_action().

Deprecated: since version 3.10.

The function returns the following values:

  • sList of proxy widgets. The list is owned by GTK+ and must not be modified.

func (*Action) Sensitive deprecated

func (action *Action) Sensitive() bool

Sensitive returns whether the action itself is sensitive. Note that this doesn’t necessarily mean effective sensitivity. See gtk_action_is_sensitive() for that.

Deprecated: Use g_action_get_enabled() on a #GAction instead.

The function returns the following values:

  • ok: TRUE if the action itself is sensitive.

func (*Action) SetAccelGroup deprecated

func (action *Action) SetAccelGroup(accelGroup *AccelGroup)

SetAccelGroup sets the AccelGroup in which the accelerator for this action will be installed.

Deprecated: Use #GAction and the accelerator group on an associated Menu instead.

The function takes the following parameters:

  • accelGroup (optional) or NULL.

func (*Action) SetAccelPath deprecated

func (action *Action) SetAccelPath(accelPath string)

SetAccelPath sets the accel path for this action. All proxy widgets associated with the action will have this accel path, so that their accelerators are consistent.

Note that accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().

Deprecated: Use #GAction and the accelerator path on an associated Menu instead.

The function takes the following parameters:

  • accelPath: accelerator path.

func (*Action) SetAlwaysShowImage deprecated

func (action *Action) SetAlwaysShowImage(alwaysShow bool)

SetAlwaysShowImage sets whether action's menu item proxies will ignore the Settings:gtk-menu-images setting and always show their image, if available.

Use this if the menu item would be useless or hard to use without their image.

Deprecated: Use g_menu_item_set_icon() on a Item instead, if the item should have an image.

The function takes the following parameters:

  • alwaysShow: TRUE if menuitem proxies should always show their image.

func (*Action) SetGIcon deprecated

func (action *Action) SetGIcon(icon gio.Iconner)

SetGIcon sets the icon of action.

Deprecated: Use #GAction instead, and g_menu_item_set_icon() to set an icon on a Item associated with a #GAction, or gtk_container_add() to add a Image to a Button.

The function takes the following parameters:

  • icon to set.

func (*Action) SetIconName deprecated

func (action *Action) SetIconName(iconName string)

SetIconName sets the icon name on action

Deprecated: Use #GAction instead, and g_menu_item_set_icon() to set an icon on a Item associated with a #GAction, or gtk_container_add() to add a Image to a Button.

The function takes the following parameters:

  • iconName: icon name to set.

func (*Action) SetIsImportant deprecated

func (action *Action) SetIsImportant(isImportant bool)

SetIsImportant sets whether the action is important, this attribute is used primarily by toolbar items to decide whether to show a label or not.

Deprecated: Use #GAction instead, and control and monitor whether labels are shown directly.

The function takes the following parameters:

  • isImportant: TRUE to make the action important.

func (*Action) SetLabel deprecated

func (action *Action) SetLabel(label string)

SetLabel sets the label of action.

Deprecated: Use #GAction instead, and set a label on a menu item with g_menu_item_set_label(). For Actionable widgets, use the widget-specific API to set a label.

The function takes the following parameters:

  • label text to set.

func (*Action) SetSensitive deprecated

func (action *Action) SetSensitive(sensitive bool)

SetSensitive sets the :sensitive property of the action to sensitive. Note that this doesn’t necessarily mean effective sensitivity. See gtk_action_is_sensitive() for that.

Deprecated: Use g_simple_action_set_enabled() on a Action instead.

The function takes the following parameters:

  • sensitive: TRUE to make the action sensitive.

func (*Action) SetShortLabel deprecated

func (action *Action) SetShortLabel(shortLabel string)

SetShortLabel sets a shorter label text on action.

Deprecated: Use #GAction instead, which has no equivalent of short labels.

The function takes the following parameters:

  • shortLabel: label text to set.

func (*Action) SetStockID deprecated

func (action *Action) SetStockID(stockId string)

SetStockID sets the stock id on action

Deprecated: Use #GAction instead, which has no equivalent of stock items.

The function takes the following parameters:

  • stockId: stock id.

func (*Action) SetTooltip deprecated

func (action *Action) SetTooltip(tooltip string)

SetTooltip sets the tooltip text on action

Deprecated: Use #GAction instead, and set tooltips on associated Actionable widgets with gtk_widget_set_tooltip_text().

The function takes the following parameters:

  • tooltip text.

func (*Action) SetVisible deprecated

func (action *Action) SetVisible(visible bool)

SetVisible sets the :visible property of the action to visible. Note that this doesn’t necessarily mean effective visibility. See gtk_action_is_visible() for that.

Deprecated: Use #GAction instead, and control and monitor the state of Actionable widgets directly.

The function takes the following parameters:

  • visible: TRUE to make the action visible.

func (*Action) SetVisibleHorizontal deprecated

func (action *Action) SetVisibleHorizontal(visibleHorizontal bool)

SetVisibleHorizontal sets whether action is visible when horizontal

Deprecated: Use #GAction instead, and control and monitor the visibility of associated widgets and menu items directly.

The function takes the following parameters:

  • visibleHorizontal: whether the action is visible horizontally.

func (*Action) SetVisibleVertical deprecated

func (action *Action) SetVisibleVertical(visibleVertical bool)

SetVisibleVertical sets whether action is visible when vertical

Deprecated: Use #GAction instead, and control and monitor the visibility of associated widgets and menu items directly.

The function takes the following parameters:

  • visibleVertical: whether the action is visible vertically.

func (*Action) ShortLabel deprecated

func (action *Action) ShortLabel() string

ShortLabel gets the short label text of action.

Deprecated: Use #GAction instead, which has no equivalent of short labels.

The function returns the following values:

  • utf8: short label text.

func (*Action) StockID deprecated

func (action *Action) StockID() string

StockID gets the stock id of action.

Deprecated: Use #GAction instead, which has no equivalent of stock items.

The function returns the following values:

  • utf8: stock id.

func (*Action) Tooltip deprecated

func (action *Action) Tooltip() string

Tooltip gets the tooltip text of action.

Deprecated: Use #GAction instead, and get tooltips from associated Actionable widgets with gtk_widget_get_tooltip_text().

The function returns the following values:

  • utf8: tooltip text.

func (*Action) UnblockActivate deprecated

func (action *Action) UnblockActivate()

UnblockActivate: reenable activation signals from the action

Deprecated: Use g_simple_action_set_enabled() to enable the Action instead.

func (*Action) Visible deprecated

func (action *Action) Visible() bool

Visible returns whether the action itself is visible. Note that this doesn’t necessarily mean effective visibility. See gtk_action_is_sensitive() for that.

Deprecated: Use #GAction instead, and control and monitor the state of Actionable widgets directly.

The function returns the following values:

  • ok: TRUE if the action itself is visible.

func (*Action) VisibleHorizontal deprecated

func (action *Action) VisibleHorizontal() bool

VisibleHorizontal checks whether action is visible when horizontal

Deprecated: Use #GAction instead, and control and monitor the visibility of associated widgets and menu items directly.

The function returns the following values:

  • ok: whether action is visible when horizontal.

func (*Action) VisibleVertical deprecated

func (action *Action) VisibleVertical() bool

VisibleVertical checks whether action is visible when horizontal

Deprecated: Use #GAction instead, and control and monitor the visibility of associated widgets and menu items directly.

The function returns the following values:

  • ok: whether action is visible when horizontal.

type ActionBar

type ActionBar struct {
	Bin
	// contains filtered or unexported fields
}

ActionBar is designed to present contextual actions. It is expected to be displayed below the content and expand horizontally to fill the area.

It allows placing children at the start or the end. In addition, it contains an internal centered box which is centered with respect to the full width of the box, even if the children at either side take up different amounts of space.

CSS nodes

GtkActionBar has a single CSS node with name actionbar.

func NewActionBar

func NewActionBar() *ActionBar

NewActionBar creates a new ActionBar widget.

The function returns the following values:

  • actionBar: new ActionBar.

func (*ActionBar) CenterWidget

func (actionBar *ActionBar) CenterWidget() Widgetter

CenterWidget retrieves the center bar widget of the bar.

The function returns the following values:

  • widget (optional): center Widget or NULL.

func (*ActionBar) PackEnd

func (actionBar *ActionBar) PackEnd(child Widgetter)

PackEnd adds child to action_bar, packed with reference to the end of the action_bar.

The function takes the following parameters:

  • child to be added to action_bar.

func (*ActionBar) PackStart

func (actionBar *ActionBar) PackStart(child Widgetter)

PackStart adds child to action_bar, packed with reference to the start of the action_bar.

The function takes the following parameters:

  • child to be added to action_bar.

func (*ActionBar) SetCenterWidget

func (actionBar *ActionBar) SetCenterWidget(centerWidget Widgetter)

SetCenterWidget sets the center widget for the ActionBar.

The function takes the following parameters:

  • centerWidget (optional): widget to use for the center.

type ActionBarClass added in v0.0.5

type ActionBarClass struct {
	// contains filtered or unexported fields
}

ActionBarClass: instance of this type is always passed by reference.

type ActionBarOverrides added in v0.0.5

type ActionBarOverrides struct {
}

ActionBarOverrides contains methods that are overridable.

type ActionClass added in v0.0.5

type ActionClass struct {
	// contains filtered or unexported fields
}

ActionClass: instance of this type is always passed by reference.

type ActionEntry deprecated

type ActionEntry struct {
	// contains filtered or unexported fields
}

ActionEntry structs are used with gtk_action_group_add_actions() to construct actions.

Deprecated: since version 3.10.

An instance of this type is always passed by reference.

func (*ActionEntry) Accelerator

func (a *ActionEntry) Accelerator() string

Accelerator: accelerator for the action, in the format understood by gtk_accelerator_parse().

func (*ActionEntry) Label

func (a *ActionEntry) Label() string

Label: label for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain(). If label is NULL, the label of the stock item with id stock_id is used.

func (*ActionEntry) Name

func (a *ActionEntry) Name() string

Name: name of the action.

func (*ActionEntry) StockID

func (a *ActionEntry) StockID() string

StockID: stock id for the action, or the name of an icon from the icon theme.

func (*ActionEntry) Tooltip

func (a *ActionEntry) Tooltip() string

Tooltip: tooltip for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain().

type ActionGroup

type ActionGroup struct {
	*coreglib.Object

	Buildable
	// contains filtered or unexported fields
}

ActionGroup actions are organised into groups. An action group is essentially a map from names to Action objects.

All actions that would make sense to use in a particular context should be in a single group. Multiple action groups may be used for a particular user interface. In fact, it is expected that most nontrivial applications will make use of multiple groups. For example, in an application that can edit multiple documents, one group holding global actions (e.g. quit, about, new), and one group per document holding actions that act on that document (eg. save, cut/copy/paste, etc). Each window’s menus would be constructed from a combination of two action groups.

Accelerators

Accelerators are handled by the GTK+ accelerator map. All actions are assigned an accelerator path (which normally has the form <Actions>/group-name/action-name) and a shortcut is associated with this accelerator path. All menuitems and toolitems take on this accelerator path. The GTK+ accelerator map code makes sure that the correct shortcut is displayed next to the menu item.

GtkActionGroup as GtkBuildable

The ActionGroup implementation of the Buildable interface accepts Action objects as <child> elements in UI definitions.

Note that it is probably more common to define actions and action groups in the code, since they are directly related to what the code can do.

The GtkActionGroup implementation of the GtkBuildable interface supports a custom <accelerator> element, which has attributes named “key“ and “modifiers“ and allows to specify accelerators. This is similar to the <accelerator> element of Widget, the main difference is that it doesn’t allow you to specify a signal.

A Dialog UI definition fragment. ##

<object class="GtkActionGroup" id="actiongroup">
  <child>
      <object class="GtkAction" id="About">
          <property name="name">About</property>
          <property name="stock_id">gtk-about</property>
          <signal handler="about_activate" name="activate"/>
      </object>
      <accelerator key="F1" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK"/>
  </child>
</object>.

func NewActionGroup deprecated

func NewActionGroup(name string) *ActionGroup

NewActionGroup creates a new ActionGroup object. The name of the action group is used when associating [keybindings][Action-Accel] with the actions.

Deprecated: since version 3.10.

The function takes the following parameters:

  • name of the action group.

The function returns the following values:

  • actionGroup: new ActionGroup.

func (*ActionGroup) AccelGroup deprecated

func (actionGroup *ActionGroup) AccelGroup() *AccelGroup

AccelGroup gets the accelerator group.

Deprecated: since version 3.10.

The function returns the following values:

  • accelGroup: accelerator group associated with this action group or NULL if there is none.

func (*ActionGroup) Action deprecated

func (actionGroup *ActionGroup) Action(actionName string) *Action

Action looks up an action in the action group by name.

Deprecated: since version 3.10.

The function takes the following parameters:

  • actionName: name of the action.

The function returns the following values:

  • action: action, or NULL if no action by that name exists.

func (*ActionGroup) AddAction deprecated

func (actionGroup *ActionGroup) AddAction(action *Action)

AddAction adds an action object to the action group. Note that this function does not set up the accel path of the action, which can lead to problems if a user tries to modify the accelerator of a menuitem associated with the action. Therefore you must either set the accel path yourself with gtk_action_set_accel_path(), or use gtk_action_group_add_action_with_accel (..., NULL).

Deprecated: since version 3.10.

The function takes the following parameters:

  • action: action.

func (*ActionGroup) AddActionWithAccel deprecated

func (actionGroup *ActionGroup) AddActionWithAccel(action *Action, accelerator string)

AddActionWithAccel adds an action object to the action group and sets up the accelerator.

If accelerator is NULL, attempts to use the accelerator associated with the stock_id of the action.

Accel paths are set to <Actions>/group-name/action-name.

Deprecated: since version 3.10.

The function takes the following parameters:

  • action to add.
  • accelerator (optional) for the action, in the format understood by gtk_accelerator_parse(), or "" for no accelerator, or NULL to use the stock accelerator.

func (*ActionGroup) ConnectConnectProxy

func (actionGroup *ActionGroup) ConnectConnectProxy(f func(action *Action, proxy Widgetter)) coreglib.SignalHandle

ConnectConnectProxy signal is emitted after connecting a proxy to an action in the group. Note that the proxy may have been connected to a different action before.

This is intended for simple customizations for which a custom action class would be too clumsy, e.g. showing tooltips for menuitems in the statusbar.

UIManager proxies the signal and provides global notification just before any action is connected to a proxy, which is probably more convenient to use.

func (*ActionGroup) ConnectDisconnectProxy

func (actionGroup *ActionGroup) ConnectDisconnectProxy(f func(action *Action, proxy Widgetter)) coreglib.SignalHandle

ConnectDisconnectProxy signal is emitted after disconnecting a proxy from an action in the group.

UIManager proxies the signal and provides global notification just before any action is connected to a proxy, which is probably more convenient to use.

func (*ActionGroup) ConnectPostActivate

func (actionGroup *ActionGroup) ConnectPostActivate(f func(action *Action)) coreglib.SignalHandle

ConnectPostActivate signal is emitted just after the action in the action_group is activated

This is intended for UIManager to proxy the signal and provide global notification just after any action is activated.

func (*ActionGroup) ConnectPreActivate

func (actionGroup *ActionGroup) ConnectPreActivate(f func(action *Action)) coreglib.SignalHandle

ConnectPreActivate signal is emitted just before the action in the action_group is activated

This is intended for UIManager to proxy the signal and provide global notification just before any action is activated.

func (*ActionGroup) ListActions deprecated

func (actionGroup *ActionGroup) ListActions() []*Action

ListActions lists the actions in the action group.

Deprecated: since version 3.10.

The function returns the following values:

  • list: allocated list of the action objects in the action group.

func (*ActionGroup) Name deprecated

func (actionGroup *ActionGroup) Name() string

Name gets the name of the action group.

Deprecated: since version 3.10.

The function returns the following values:

  • utf8: name of the action group.

func (*ActionGroup) RemoveAction deprecated

func (actionGroup *ActionGroup) RemoveAction(action *Action)

RemoveAction removes an action object from the action group.

Deprecated: since version 3.10.

The function takes the following parameters:

  • action: action.

func (*ActionGroup) Sensitive deprecated

func (actionGroup *ActionGroup) Sensitive() bool

Sensitive returns TRUE if the group is sensitive. The constituent actions can only be logically sensitive (see gtk_action_is_sensitive()) if they are sensitive (see gtk_action_get_sensitive()) and their group is sensitive.

Deprecated: since version 3.10.

The function returns the following values:

  • ok: TRUE if the group is sensitive.

func (*ActionGroup) SetAccelGroup deprecated

func (actionGroup *ActionGroup) SetAccelGroup(accelGroup *AccelGroup)

SetAccelGroup sets the accelerator group to be used by every action in this group.

Deprecated: since version 3.10.

The function takes the following parameters:

  • accelGroup (optional) to set or NULL.

func (*ActionGroup) SetSensitive deprecated

func (actionGroup *ActionGroup) SetSensitive(sensitive bool)

SetSensitive changes the sensitivity of action_group

Deprecated: since version 3.10.

The function takes the following parameters:

  • sensitive: new sensitivity.

func (*ActionGroup) SetTranslateFunc deprecated

func (actionGroup *ActionGroup) SetTranslateFunc(fn TranslateFunc)

SetTranslateFunc sets a function to be used for translating the label and tooltip of ActionEntrys added by gtk_action_group_add_actions().

If you’re using gettext(), it is enough to set the translation domain with gtk_action_group_set_translation_domain().

Deprecated: since version 3.10.

The function takes the following parameters:

  • fn: TranslateFunc.

func (*ActionGroup) SetTranslationDomain deprecated

func (actionGroup *ActionGroup) SetTranslationDomain(domain string)

SetTranslationDomain sets the translation domain and uses g_dgettext() for translating the label and tooltip of ActionEntrys added by gtk_action_group_add_actions().

If you’re not using gettext() for localization, see gtk_action_group_set_translate_func().

Deprecated: since version 3.10.

The function takes the following parameters:

  • domain (optional): translation domain to use for g_dgettext() calls, or NULL to use the domain set with textdomain().

func (*ActionGroup) SetVisible deprecated

func (actionGroup *ActionGroup) SetVisible(visible bool)

SetVisible changes the visible of action_group.

Deprecated: since version 3.10.

The function takes the following parameters:

  • visible: new visiblity.

func (*ActionGroup) TranslateString deprecated

func (actionGroup *ActionGroup) TranslateString(str string) string

TranslateString translates a string using the function set with gtk_action_group_set_translate_func(). This is mainly intended for language bindings.

Deprecated: since version 3.10.

The function takes the following parameters:

  • str: string.

The function returns the following values:

  • utf8: translation of string.

func (*ActionGroup) Visible deprecated

func (actionGroup *ActionGroup) Visible() bool

Visible returns TRUE if the group is visible. The constituent actions can only be logically visible (see gtk_action_is_visible()) if they are visible (see gtk_action_get_visible()) and their group is visible.

Deprecated: since version 3.10.

The function returns the following values:

  • ok: TRUE if the group is visible.

type ActionGroupClass added in v0.0.5

type ActionGroupClass struct {
	// contains filtered or unexported fields
}

ActionGroupClass: instance of this type is always passed by reference.

type ActionGroupOverrides added in v0.0.5

type ActionGroupOverrides struct {
	// Action looks up an action in the action group by name.
	//
	// Deprecated: since version 3.10.
	//
	// The function takes the following parameters:
	//
	//   - actionName: name of the action.
	//
	// The function returns the following values:
	//
	//   - action: action, or NULL if no action by that name exists.
	//
	Action func(actionName string) *Action
}

ActionGroupOverrides contains methods that are overridable.

type ActionOverrides added in v0.0.5

type ActionOverrides struct {
	// Activate emits the “activate” signal on the specified action, if it
	// isn't insensitive. This gets called by the proxy widgets when they get
	// activated.
	//
	// It can also be used to manually activate an action.
	//
	// Deprecated: Use g_action_group_activate_action() on a #GAction instead.
	Activate func()
	// The function takes the following parameters:
	//
	ConnectProxy func(proxy Widgetter)
	// CreateMenu: if action provides a Menu widget as a submenu for the menu
	// item or the toolbar item it creates, this function returns an instance of
	// that menu.
	//
	// Deprecated: Use #GAction and Model instead, and create a Menu with
	// gtk_menu_new_from_model().
	//
	// The function returns the following values:
	//
	//   - widget: menu item provided by the action, or NULL.
	//
	CreateMenu func() Widgetter
	// CreateMenuItem creates a menu item widget that proxies for the given
	// action.
	//
	// Deprecated: Use g_menu_item_new() and associate it with a #GAction
	// instead.
	//
	// The function returns the following values:
	//
	//   - widget: menu item connected to the action.
	//
	CreateMenuItem func() Widgetter
	// CreateToolItem creates a toolbar item widget that proxies for the given
	// action.
	//
	// Deprecated: Use a ToolItem and associate it with a #GAction using
	// gtk_actionable_set_action_name() instead.
	//
	// The function returns the following values:
	//
	//   - widget: toolbar item connected to the action.
	//
	CreateToolItem func() Widgetter
	// The function takes the following parameters:
	//
	DisconnectProxy func(proxy Widgetter)
}

ActionOverrides contains methods that are overridable.

type Actionable

type Actionable struct {
	Widget
	// contains filtered or unexported fields
}

Actionable: this interface provides a convenient way of associating widgets with actions on a ApplicationWindow or Application.

It primarily consists of two properties: Actionable:action-name and Actionable:action-target. There are also some convenience APIs for setting these properties.

The action will be looked up in action groups that are found among the widgets ancestors. Most commonly, these will be the actions with the “win.” or “app.” prefix that are associated with the ApplicationWindow or Application, but other action groups that are added with gtk_widget_insert_action_group() will be consulted as well.

Actionable wraps an interface. This means the user can get the underlying type by calling Cast().

func (*Actionable) ActionName

func (actionable *Actionable) ActionName() string

ActionName gets the action name for actionable.

See gtk_actionable_set_action_name() for more information.

The function returns the following values:

  • utf8 (optional): action name, or NULL if none is set.

func (*Actionable) ActionTargetValue

func (actionable *Actionable) ActionTargetValue() *glib.Variant

ActionTargetValue gets the current target value of actionable.

See gtk_actionable_set_action_target_value() for more information.

The function returns the following values:

  • variant: current target value.

func (*Actionable) SetActionName

func (actionable *Actionable) SetActionName(actionName string)

SetActionName specifies the name of the action with which this widget should be associated. If action_name is NULL then the widget will be unassociated from any previous action.

Usually this function is used when the widget is located (or will be located) within the hierarchy of a ApplicationWindow.

Names are of the form “win.save” or “app.quit” for actions on the containing ApplicationWindow or its associated Application, respectively. This is the same form used for actions in the #GMenu associated with the window.

The function takes the following parameters:

  • actionName (optional): action name, or NULL.

func (*Actionable) SetActionTargetValue

func (actionable *Actionable) SetActionTargetValue(targetValue *glib.Variant)

SetActionTargetValue sets the target value of an actionable widget.

If target_value is NULL then the target value is unset.

The target value has two purposes. First, it is used as the parameter to activation of the action associated with the Actionable widget. Second, it is used to determine if the widget should be rendered as “active” — the widget is active if the state is equal to the given target.

Consider the example of associating a set of buttons with a #GAction with string state in a typical “radio button” situation. Each button will be associated with the same action, but with a different target value for that action. Clicking on a particular button will activate the action with the target of that button, which will typically cause the action’s state to change to that value. Since the action’s state is now equal to the target value of the button, the button will now be rendered as active (and the other buttons, with different targets, rendered inactive).

The function takes the following parameters:

  • targetValue (optional) to set as the target value, or NULL.

func (*Actionable) SetDetailedActionName

func (actionable *Actionable) SetDetailedActionName(detailedActionName string)

SetDetailedActionName sets the action-name and associated string target value of an actionable widget.

detailed_action_name is a string in the format accepted by g_action_parse_detailed_name().

(Note that prior to version 3.22.25, this function is only usable for actions with a simple "s" target, and detailed_action_name must be of the form "action::target" where action is the action name and target is the string to use as the target.).

The function takes the following parameters:

  • detailedActionName: detailed action name.

type ActionableInterface added in v0.0.5

type ActionableInterface struct {
	// contains filtered or unexported fields
}

ActionableInterface: interface vtable for Actionable.

An instance of this type is always passed by reference.

type Actionabler

type Actionabler interface {
	coreglib.Objector

	// ActionName gets the action name for actionable.
	ActionName() string
	// ActionTargetValue gets the current target value of actionable.
	ActionTargetValue() *glib.Variant
	// SetActionName specifies the name of the action with which this widget
	// should be associated.
	SetActionName(actionName string)
	// SetActionTargetValue sets the target value of an actionable widget.
	SetActionTargetValue(targetValue *glib.Variant)
	// SetDetailedActionName sets the action-name and associated string target
	// value of an actionable widget.
	SetDetailedActionName(detailedActionName string)
}

Actionabler describes Actionable's interface methods.

type Activatable

type Activatable struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

Activatable widgets can be connected to a Action and reflects the state of its action. A Activatable can also provide feedback through its action, as they are responsible for activating their related actions.

Implementing GtkActivatable

When extending a class that is already Activatable; it is only necessary to implement the Activatable->sync_action_properties() and Activatable->update() methods and chain up to the parent implementation, however when introducing a new Activatable class; the Activatable:related-action and Activatable:use-action-appearance properties need to be handled by the implementor. Handling these properties is mostly a matter of installing the action pointer and boolean flag on your instance, and calling gtk_activatable_do_set_related_action() and gtk_activatable_sync_action_properties() at the appropriate times.

A class fragment implementing Activatable

enum {
...

PROP_ACTIVATABLE_RELATED_ACTION,
PROP_ACTIVATABLE_USE_ACTION_APPEARANCE
}

struct _FooBarPrivate
{

  ...

  GtkAction      *action;
  gboolean        use_action_appearance;
};

...

static void foo_bar_activatable_interface_init         (GtkActivatableIface  *iface);
static void foo_bar_activatable_update                 (GtkActivatable       *activatable,
						           GtkAction            *action,
						           const gchar          *property_name);
static void foo_bar_activatable_sync_action_properties (GtkActivatable       *activatable,
						           GtkAction            *action);
...

static void
foo_bar_class_init (FooBarClass *klass)
{

  ...

  g_object_class_override_property (gobject_class, PROP_ACTIVATABLE_RELATED_ACTION, "related-action");
  g_object_class_override_property (gobject_class, PROP_ACTIVATABLE_USE_ACTION_APPEARANCE, "use-action-appearance");

  ...
}

static void
foo_bar_activatable_interface_init (GtkActivatableIface  *iface)
{
  iface->update = foo_bar_activatable_update;
  iface->sync_action_properties = foo_bar_activatable_sync_action_properties;
}

... Break the reference using gtk_activatable_do_set_related_action()...

static void
foo_bar_dispose (GObject *object)
{
  FooBar *bar = FOO_BAR (object);
  FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (bar);

  ...

  if (priv->action)
    {
      gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (bar), NULL);
      priv->action = NULL;
    }
  G_OBJECT_CLASS (foo_bar_parent_class)->dispose (object);
}

... Handle the “related-action” and “use-action-appearance” properties ...

static void
foo_bar_set_property (GObject         *object,
                      guint            prop_id,
                      const GValue    *value,
                      GParamSpec      *pspec)
{
  FooBar *bar = FOO_BAR (object);
  FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (bar);

  switch (prop_id)
    {

      ...

    case PROP_ACTIVATABLE_RELATED_ACTION:
      foo_bar_set_related_action (bar, g_value_get_object (value));
      break;
    case PROP_ACTIVATABLE_USE_ACTION_APPEARANCE:
      foo_bar_set_use_action_appearance (bar, g_value_get_boolean (value));
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
      break;
    }
}

static void
foo_bar_get_property (GObject         *object,
                         guint            prop_id,
                         GValue          *value,
                         GParamSpec      *pspec)
{
  FooBar *bar = FOO_BAR (object);
  FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (bar);

  switch (prop_id)
    {

      ...

    case PROP_ACTIVATABLE_RELATED_ACTION:
      g_value_set_object (value, priv->action);
      break;
    case PROP_ACTIVATABLE_USE_ACTION_APPEARANCE:
      g_value_set_boolean (value, priv->use_action_appearance);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
      break;
    }
}

static void
foo_bar_set_use_action_appearance (FooBar   *bar,
				   gboolean  use_appearance)
{
  FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (bar);

  if (priv->use_action_appearance != use_appearance)
    {
      priv->use_action_appearance = use_appearance;

      gtk_activatable_sync_action_properties (GTK_ACTIVATABLE (bar), priv->action);
    }
}

... call gtk_activatable_do_set_related_action() and then assign the action pointer,
no need to reference the action here since gtk_activatable_do_set_related_action() already
holds a reference here for you...
static void
foo_bar_set_related_action (FooBar    *bar,
			    GtkAction *action)
{
  FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (bar);

  if (priv->action == action)
    return;

  gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (bar), action);

  priv->action = action;
}

... Selectively reset and update activatable depending on the use-action-appearance property ...
static void
gtk_button_activatable_sync_action_properties (GtkActivatable       *activatable,
		                                  GtkAction            *action)
{
  GtkButtonPrivate *priv = GTK_BUTTON_GET_PRIVATE (activatable);

  if (!action)
    return;

  if (gtk_action_is_visible (action))
    gtk_widget_show (GTK_WIDGET (activatable));
  else
    gtk_widget_hide (GTK_WIDGET (activatable));

  gtk_widget_set_sensitive (GTK_WIDGET (activatable), gtk_action_is_sensitive (action));

  ...

  if (priv->use_action_appearance)
    {
      if (gtk_action_get_stock_id (action))
	foo_bar_set_stock (button, gtk_action_get_stock_id (action));
      else if (gtk_action_get_label (action))
	foo_bar_set_label (button, gtk_action_get_label (action));

      ...

    }
}

static void
foo_bar_activatable_update (GtkActivatable       *activatable,
			       GtkAction            *action,
			       const gchar          *property_name)
{
  FooBarPrivate *priv = FOO_BAR_GET_PRIVATE (activatable);

  if (strcmp (property_name, "visible") == 0)
    {
      if (gtk_action_is_visible (action))
	gtk_widget_show (GTK_WIDGET (activatable));
      else
	gtk_widget_hide (GTK_WIDGET (activatable));
    }
  else if (strcmp (property_name, "sensitive") == 0)
    gtk_widget_set_sensitive (GTK_WIDGET (activatable), gtk_action_is_sensitive (action));

  ...

  if (!priv->use_action_appearance)
    return;

  if (strcmp (property_name, "stock-id") == 0)
    foo_bar_set_stock (button, gtk_action_get_stock_id (action));
  else if (strcmp (property_name, "label") == 0)
    foo_bar_set_label (button, gtk_action_get_label (action));

  ...
}.

Activatable wraps an interface. This means the user can get the underlying type by calling Cast().

func (*Activatable) DoSetRelatedAction deprecated

func (activatable *Activatable) DoSetRelatedAction(action *Action)

DoSetRelatedAction: this is a utility function for Activatable implementors.

When implementing Activatable you must call this when handling changes of the Activatable:related-action, and you must also use this to break references in #GObject->dispose().

This function adds a reference to the currently set related action for you, it also makes sure the Activatable->update() method is called when the related Action properties change and registers to the action’s proxy list.

> Be careful to call this before setting the local > copy of the Action property, since this function uses > gtk_activatable_get_related_action() to retrieve the > previous action.

Deprecated: since version 3.10.

The function takes the following parameters:

  • action to set.

func (*Activatable) RelatedAction deprecated

func (activatable *Activatable) RelatedAction() *Action

RelatedAction gets the related Action for activatable.

Deprecated: since version 3.10.

The function returns the following values:

  • action: related Action if one is set.

func (*Activatable) SetRelatedAction deprecated

func (activatable *Activatable) SetRelatedAction(action *Action)

SetRelatedAction sets the related action on the activatable object.

> Activatable implementors need to handle the Activatable:related-action > property and call gtk_activatable_do_set_related_action() when it changes.

Deprecated: since version 3.10.

The function takes the following parameters:

  • action to set.

func (*Activatable) SetUseActionAppearance deprecated

func (activatable *Activatable) SetUseActionAppearance(useAppearance bool)

SetUseActionAppearance sets whether this activatable should reset its layout and appearance when setting the related action or when the action changes appearance

> Activatable implementors need to handle the > Activatable:use-action-appearance property and call > gtk_activatable_sync_action_properties() to update activatable > if needed.

Deprecated: since version 3.10.

The function takes the following parameters:

  • useAppearance: whether to use the actions appearance.

func (*Activatable) SyncActionProperties deprecated

func (activatable *Activatable) SyncActionProperties(action *Action)

SyncActionProperties: this is called to update the activatable completely, this is called internally when the Activatable:related-action property is set or unset and by the implementing class when Activatable:use-action-appearance changes.

Deprecated: since version 3.10.

The function takes the following parameters:

  • action (optional): related Action or NULL.

func (*Activatable) UseActionAppearance deprecated

func (activatable *Activatable) UseActionAppearance() bool

UseActionAppearance gets whether this activatable should reset its layout and appearance when setting the related action or when the action changes appearance.

Deprecated: since version 3.10.

The function returns the following values:

  • ok: whether activatable uses its actions appearance.

type ActivatableIface deprecated added in v0.0.5

type ActivatableIface struct {
	// contains filtered or unexported fields
}

ActivatableIface: > This method can be called with a NULL action at times.

Deprecated: since version 3.10.

An instance of this type is always passed by reference.

type Activatabler

type Activatabler interface {
	coreglib.Objector

	// DoSetRelatedAction: this is a utility function for Activatable
	// implementors.
	DoSetRelatedAction(action *Action)
	// RelatedAction gets the related Action for activatable.
	RelatedAction() *Action
	// UseActionAppearance gets whether this activatable should reset its layout
	// and appearance when setting the related action or when the action changes
	// appearance.
	UseActionAppearance() bool
	// SetRelatedAction sets the related action on the activatable object.
	SetRelatedAction(action *Action)
	// SetUseActionAppearance sets whether this activatable should reset its
	// layout and appearance when setting the related action or when the action
	// changes appearance.
	SetUseActionAppearance(useAppearance bool)
	// SyncActionProperties: this is called to update the activatable
	// completely, this is called internally when the Activatable:related-action
	// property is set or unset and by the implementing class when
	// Activatable:use-action-appearance changes.
	SyncActionProperties(action *Action)
}

Activatabler describes Activatable's interface methods.

type Adjustment

type Adjustment struct {
	coreglib.InitiallyUnowned
	// contains filtered or unexported fields
}

Adjustment object represents a value which has an associated lower and upper bound, together with step and page increments, and a page size. It is used within several GTK+ widgets, including SpinButton, Viewport, and Range (which is a base class for Scrollbar and Scale).

The Adjustment object does not update the value itself. Instead it is left up to the owner of the Adjustment to control the value.

func NewAdjustment

func NewAdjustment(value, lower, upper, stepIncrement, pageIncrement, pageSize float64) *Adjustment

NewAdjustment creates a new Adjustment.

The function takes the following parameters:

  • value: initial value.
  • lower: minimum value.
  • upper: maximum value.
  • stepIncrement: step increment.
  • pageIncrement: page increment.
  • pageSize: page size.

The function returns the following values:

  • adjustment: new Adjustment.

func (*Adjustment) Changed deprecated

func (adjustment *Adjustment) Changed()

Changed emits a Adjustment::changed signal from the Adjustment. This is typically called by the owner of the Adjustment after it has changed any of the Adjustment properties other than the value.

Deprecated: GTK+ emits Adjustment::changed itself whenever any of the properties (other than value) change.

func (*Adjustment) ClampPage

func (adjustment *Adjustment) ClampPage(lower, upper float64)

ClampPage updates the Adjustment:value property to ensure that the range between lower and upper is in the current page (i.e. between Adjustment:value and Adjustment:value + Adjustment:page-size). If the range is larger than the page size, then only the start of it will be in the current page.

A Adjustment::value-changed signal will be emitted if the value is changed.

The function takes the following parameters:

  • lower value.
  • upper value.

func (*Adjustment) Configure

func (adjustment *Adjustment) Configure(value, lower, upper, stepIncrement, pageIncrement, pageSize float64)

Configure sets all properties of the adjustment at once.

Use this function to avoid multiple emissions of the Adjustment::changed signal. See gtk_adjustment_set_lower() for an alternative way of compressing multiple emissions of Adjustment::changed into one.

The function takes the following parameters:

  • value: new value.
  • lower: new minimum value.
  • upper: new maximum value.
  • stepIncrement: new step increment.
  • pageIncrement: new page increment.
  • pageSize: new page size.

func (*Adjustment) ConnectChanged

func (adjustment *Adjustment) ConnectChanged(f func()) coreglib.SignalHandle

ConnectChanged is emitted when one or more of the Adjustment properties have been changed, other than the Adjustment:value property.

func (*Adjustment) ConnectValueChanged

func (adjustment *Adjustment) ConnectValueChanged(f func()) coreglib.SignalHandle

ConnectValueChanged is emitted when the Adjustment:value property has been changed.

func (*Adjustment) Lower

func (adjustment *Adjustment) Lower() float64

Lower retrieves the minimum value of the adjustment.

The function returns the following values:

  • gdouble: current minimum value of the adjustment.

func (*Adjustment) MinimumIncrement

func (adjustment *Adjustment) MinimumIncrement() float64

MinimumIncrement gets the smaller of step increment and page increment.

The function returns the following values:

  • gdouble: minimum increment of adjustment.

func (*Adjustment) PageIncrement

func (adjustment *Adjustment) PageIncrement() float64

PageIncrement retrieves the page increment of the adjustment.

The function returns the following values:

  • gdouble: current page increment of the adjustment.

func (*Adjustment) PageSize

func (adjustment *Adjustment) PageSize() float64

PageSize retrieves the page size of the adjustment.

The function returns the following values:

  • gdouble: current page size of the adjustment.

func (*Adjustment) SetLower

func (adjustment *Adjustment) SetLower(lower float64)

SetLower sets the minimum value of the adjustment.

When setting multiple adjustment properties via their individual setters, multiple Adjustment::changed signals will be emitted. However, since the emission of the Adjustment::changed signal is tied to the emission of the #GObject::notify signals of the changed properties, it’s possible to compress the Adjustment::changed signals into one by calling g_object_freeze_notify() and g_object_thaw_notify() around the calls to the individual setters.

Alternatively, using a single g_object_set() for all the properties to change, or using gtk_adjustment_configure() has the same effect of compressing Adjustment::changed emissions.

The function takes the following parameters:

  • lower: new minimum value.

func (*Adjustment) SetPageIncrement

func (adjustment *Adjustment) SetPageIncrement(pageIncrement float64)

SetPageIncrement sets the page increment of the adjustment.

See gtk_adjustment_set_lower() about how to compress multiple emissions of the Adjustment::changed signal when setting multiple adjustment properties.

The function takes the following parameters:

  • pageIncrement: new page increment.

func (*Adjustment) SetPageSize

func (adjustment *Adjustment) SetPageSize(pageSize float64)

SetPageSize sets the page size of the adjustment.

See gtk_adjustment_set_lower() about how to compress multiple emissions of the GtkAdjustment::changed signal when setting multiple adjustment properties.

The function takes the following parameters:

  • pageSize: new page size.

func (*Adjustment) SetStepIncrement

func (adjustment *Adjustment) SetStepIncrement(stepIncrement float64)

SetStepIncrement sets the step increment of the adjustment.

See gtk_adjustment_set_lower() about how to compress multiple emissions of the Adjustment::changed signal when setting multiple adjustment properties.

The function takes the following parameters:

  • stepIncrement: new step increment.

func (*Adjustment) SetUpper

func (adjustment *Adjustment) SetUpper(upper float64)

SetUpper sets the maximum value of the adjustment.

Note that values will be restricted by upper - page-size if the page-size property is nonzero.

See gtk_adjustment_set_lower() about how to compress multiple emissions of the Adjustment::changed signal when setting multiple adjustment properties.

The function takes the following parameters:

  • upper: new maximum value.

func (*Adjustment) SetValue

func (adjustment *Adjustment) SetValue(value float64)

SetValue sets the Adjustment value. The value is clamped to lie between Adjustment:lower and Adjustment:upper.

Note that for adjustments which are used in a Scrollbar, the effective range of allowed values goes from Adjustment:lower to Adjustment:upper - Adjustment:page-size.

The function takes the following parameters:

  • value: new value.

func (*Adjustment) StepIncrement

func (adjustment *Adjustment) StepIncrement() float64

StepIncrement retrieves the step increment of the adjustment.

The function returns the following values:

  • gdouble: current step increment of the adjustment.

func (*Adjustment) Upper

func (adjustment *Adjustment) Upper() float64

Upper retrieves the maximum value of the adjustment.

The function returns the following values:

  • gdouble: current maximum value of the adjustment.

func (*Adjustment) Value

func (adjustment *Adjustment) Value() float64

Value gets the current value of the adjustment. See gtk_adjustment_set_value().

The function returns the following values:

  • gdouble: current value of the adjustment.

func (*Adjustment) ValueChanged deprecated

func (adjustment *Adjustment) ValueChanged()

ValueChanged emits a Adjustment::value-changed signal from the Adjustment. This is typically called by the owner of the Adjustment after it has changed the Adjustment:value property.

Deprecated: GTK+ emits Adjustment::value-changed itself whenever the value changes.

type AdjustmentClass added in v0.0.5

type AdjustmentClass struct {
	// contains filtered or unexported fields
}

AdjustmentClass: instance of this type is always passed by reference.

type AdjustmentOverrides added in v0.0.5

type AdjustmentOverrides struct {
	// Changed emits a Adjustment::changed signal from the Adjustment. This is
	// typically called by the owner of the Adjustment after it has changed any
	// of the Adjustment properties other than the value.
	//
	// Deprecated: GTK+ emits Adjustment::changed itself whenever any of the
	// properties (other than value) change.
	Changed func()
	// ValueChanged emits a Adjustment::value-changed signal from the
	// Adjustment. This is typically called by the owner of the Adjustment after
	// it has changed the Adjustment:value property.
	//
	// Deprecated: GTK+ emits Adjustment::value-changed itself whenever the
	// value changes.
	ValueChanged func()
}

AdjustmentOverrides contains methods that are overridable.

type Align

type Align C.gint

Align controls how a widget deals with extra space in a single (x or y) dimension.

Alignment only matters if the widget receives a “too large” allocation, for example if you packed the widget with the Widget:expand flag inside a Box, then the widget might get extra space. If you have for example a 16x16 icon inside a 32x32 space, the icon could be scaled and stretched, it could be centered, or it could be positioned to one side of the space.

Note that in horizontal context GTK_ALIGN_START and GTK_ALIGN_END are interpreted relative to text direction.

GTK_ALIGN_BASELINE support for it is optional for containers and widgets, and it is only supported for vertical alignment. When its not supported by a child or a container it is treated as GTK_ALIGN_FILL.

const (
	// AlignFill: stretch to fill all space if possible, center if no meaningful
	// way to stretch.
	AlignFill Align = iota
	// AlignStart: snap to left or top side, leaving space on right or bottom.
	AlignStart
	// AlignEnd: snap to right or bottom side, leaving space on left or top.
	AlignEnd
	// AlignCenter: center natural width of widget inside the allocation.
	AlignCenter
	// AlignBaseline: align the widget according to the baseline. Since 3.10.
	AlignBaseline
)

func (Align) String

func (a Align) String() string

String returns the name in string for Align.

type Alignment

type Alignment struct {
	Bin
	// contains filtered or unexported fields
}

Alignment widget controls the alignment and size of its child widget. It has four settings: xscale, yscale, xalign, and yalign.

The scale settings are used to specify how much the child widget should expand to fill the space allocated to the Alignment. The values can range from 0 (meaning the child doesn’t expand at all) to 1 (meaning the child expands to fill all of the available space).

The align settings are used to place the child widget within the available area. The values range from 0 (top or left) to 1 (bottom or right). Of course, if the scale settings are both set to 1, the alignment settings have no effect.

GtkAlignment has been deprecated in 3.14 and should not be used in newly-written code. The desired effect can be achieved by using the Widget:halign, Widget:valign and Widget:margin properties on the child widget.

func NewAlignment deprecated

func NewAlignment(xalign, yalign, xscale, yscale float32) *Alignment

NewAlignment creates a new Alignment.

Deprecated: Use Widget alignment and margin properties.

The function takes the following parameters:

  • xalign: horizontal alignment of the child widget, from 0 (left) to 1 (right).
  • yalign: vertical alignment of the child widget, from 0 (top) to 1 (bottom).
  • xscale: amount that the child widget expands horizontally to fill up unused space, from 0 to 1. A value of 0 indicates that the child widget should never expand. A value of 1 indicates that the child widget will expand to fill all of the space allocated for the Alignment.
  • yscale: amount that the child widget expands vertically to fill up unused space, from 0 to 1. The values are similar to xscale.

The function returns the following values:

  • alignment: new Alignment.

func (*Alignment) Padding deprecated

func (alignment *Alignment) Padding() (paddingTop, paddingBottom, paddingLeft, paddingRight uint)

Padding gets the padding on the different sides of the widget. See gtk_alignment_set_padding ().

Deprecated: Use Widget alignment and margin properties.

The function returns the following values:

  • paddingTop (optional): location to store the padding for the top of the widget, or NULL.
  • paddingBottom (optional): location to store the padding for the bottom of the widget, or NULL.
  • paddingLeft (optional): location to store the padding for the left of the widget, or NULL.
  • paddingRight (optional): location to store the padding for the right of the widget, or NULL.

func (*Alignment) Set deprecated

func (alignment *Alignment) Set(xalign, yalign, xscale, yscale float32)

Set sets the Alignment values.

Deprecated: Use Widget alignment and margin properties.

The function takes the following parameters:

  • xalign: horizontal alignment of the child widget, from 0 (left) to 1 (right).
  • yalign: vertical alignment of the child widget, from 0 (top) to 1 (bottom).
  • xscale: amount that the child widget expands horizontally to fill up unused space, from 0 to 1. A value of 0 indicates that the child widget should never expand. A value of 1 indicates that the child widget will expand to fill all of the space allocated for the Alignment.
  • yscale: amount that the child widget expands vertically to fill up unused space, from 0 to 1. The values are similar to xscale.

func (*Alignment) SetPadding deprecated

func (alignment *Alignment) SetPadding(paddingTop, paddingBottom, paddingLeft, paddingRight uint)

SetPadding sets the padding on the different sides of the widget. The padding adds blank space to the sides of the widget. For instance, this can be used to indent the child widget towards the right by adding padding on the left.

Deprecated: Use Widget alignment and margin properties.

The function takes the following parameters:

  • paddingTop: padding at the top of the widget.
  • paddingBottom: padding at the bottom of the widget.
  • paddingLeft: padding at the left of the widget.
  • paddingRight: padding at the right of the widget.

type AlignmentClass added in v0.0.5

type AlignmentClass struct {
	// contains filtered or unexported fields
}

AlignmentClass: instance of this type is always passed by reference.

func (*AlignmentClass) ParentClass added in v0.0.5

func (a *AlignmentClass) ParentClass() *BinClass

ParentClass: parent class.

type AlignmentOverrides added in v0.0.5

type AlignmentOverrides struct {
}

AlignmentOverrides contains methods that are overridable.

type Allocation

type Allocation = gdk.Rectangle

Allocation of a widget represents region which has been allocated to the widget by its parent. It is a subregion of its parents allocation. See [GtkWidget’s geometry management section][geometry-management] for more information.

type AppChooser

type AppChooser struct {
	Widget
	// contains filtered or unexported fields
}

AppChooser is an interface that can be implemented by widgets which allow the user to choose an application (typically for the purpose of opening a file). The main objects that implement this interface are AppChooserWidget, AppChooserDialog and AppChooserButton.

Applications are represented by GIO Info objects here. GIO has a concept of recommended and fallback applications for a given content type. Recommended applications are those that claim to handle the content type itself, while fallback also includes applications that handle a more generic content type. GIO also knows the default and last-used application for a given content type. The AppChooserWidget provides detailed control over whether the shown list of applications should include default, recommended or fallback applications.

To obtain the application that has been selected in a AppChooser, use gtk_app_chooser_get_app_info().

AppChooser wraps an interface. This means the user can get the underlying type by calling Cast().

func (*AppChooser) AppInfo

func (self *AppChooser) AppInfo() *gio.AppInfo

AppInfo returns the currently selected application.

The function returns the following values:

  • appInfo (optional) for the currently selected application, or NULL if none is selected. Free with g_object_unref().

func (*AppChooser) ContentType

func (self *AppChooser) ContentType() string

ContentType returns the current value of the AppChooser:content-type property.

The function returns the following values:

  • utf8: content type of self. Free with g_free().

func (*AppChooser) Refresh

func (self *AppChooser) Refresh()

Refresh reloads the list of applications.

type AppChooserButton

type AppChooserButton struct {
	ComboBox

	*coreglib.Object
	AppChooser
	// contains filtered or unexported fields
}

AppChooserButton is a widget that lets the user select an application. It implements the AppChooser interface.

Initially, a AppChooserButton selects the first application in its list, which will either be the most-recently used application or, if AppChooserButton:show-default-item is TRUE, the default application.

The list of applications shown in a AppChooserButton includes the recommended applications for the given content type. When AppChooserButton:show-default-item is set, the default application is also included. To let the user chooser other applications, you can set the AppChooserButton:show-dialog-item property, which allows to open a full AppChooserDialog.

It is possible to add custom items to the list, using gtk_app_chooser_button_append_custom_item(). These items cause the AppChooserButton::custom-item-activated signal to be emitted when they are selected.

To track changes in the selected application, use the ComboBox::changed signal.

func NewAppChooserButton

func NewAppChooserButton(contentType string) *AppChooserButton

NewAppChooserButton creates a new AppChooserButton for applications that can handle content of the given type.

The function takes the following parameters:

  • contentType: content type to show applications for.

The function returns the following values:

  • appChooserButton: newly created AppChooserButton.

func (*AppChooserButton) AppendCustomItem

func (self *AppChooserButton) AppendCustomItem(name, label string, icon gio.Iconner)

AppendCustomItem appends a custom item to the list of applications that is shown in the popup; the item name must be unique per-widget. Clients can use the provided name as a detail for the AppChooserButton::custom-item-activated signal, to add a callback for the activation of a particular custom item in the list. See also gtk_app_chooser_button_append_separator().

The function takes the following parameters:

  • name of the custom item.
  • label for the custom item.
  • icon for the custom item.

func (*AppChooserButton) AppendSeparator

func (self *AppChooserButton) AppendSeparator()

AppendSeparator appends a separator to the list of applications that is shown in the popup.

func (*AppChooserButton) ConnectCustomItemActivated

func (self *AppChooserButton) ConnectCustomItemActivated(f func(itemName string)) coreglib.SignalHandle

ConnectCustomItemActivated is emitted when a custom item, previously added with gtk_app_chooser_button_append_custom_item(), is activated from the dropdown menu.

func (*AppChooserButton) Heading

func (self *AppChooserButton) Heading() string

Heading returns the text to display at the top of the dialog.

The function returns the following values:

  • utf8 (optional): text to display at the top of the dialog, or NULL, in which case a default text is displayed.

func (*AppChooserButton) SetActiveCustomItem

func (self *AppChooserButton) SetActiveCustomItem(name string)

SetActiveCustomItem selects a custom item previously added with gtk_app_chooser_button_append_custom_item().

Use gtk_app_chooser_refresh() to bring the selection to its initial state.

The function takes the following parameters:

  • name of the custom item.

func (*AppChooserButton) SetHeading

func (self *AppChooserButton) SetHeading(heading string)

SetHeading sets the text to display at the top of the dialog. If the heading is not set, the dialog displays a default text.

The function takes the following parameters:

  • heading: string containing Pango markup.

func (*AppChooserButton) SetShowDefaultItem

func (self *AppChooserButton) SetShowDefaultItem(setting bool)

SetShowDefaultItem sets whether the dropdown menu of this button should show the default application for the given content type at top.

The function takes the following parameters:

  • setting: new value for AppChooserButton:show-default-item.

func (*AppChooserButton) SetShowDialogItem

func (self *AppChooserButton) SetShowDialogItem(setting bool)

SetShowDialogItem sets whether the dropdown menu of this button should show an entry to trigger a AppChooserDialog.

The function takes the following parameters:

  • setting: new value for AppChooserButton:show-dialog-item.

func (*AppChooserButton) ShowDefaultItem

func (self *AppChooserButton) ShowDefaultItem() bool

ShowDefaultItem returns the current value of the AppChooserButton:show-default-item property.

The function returns the following values:

  • ok: value of AppChooserButton:show-default-item.

func (*AppChooserButton) ShowDialogItem

func (self *AppChooserButton) ShowDialogItem() bool

ShowDialogItem returns the current value of the AppChooserButton:show-dialog-item property.

The function returns the following values:

  • ok: value of AppChooserButton:show-dialog-item.

type AppChooserButtonClass added in v0.0.5

type AppChooserButtonClass struct {
	// contains filtered or unexported fields
}

AppChooserButtonClass: instance of this type is always passed by reference.

func (*AppChooserButtonClass) ParentClass added in v0.0.5

func (a *AppChooserButtonClass) ParentClass() *ComboBoxClass

ParentClass: parent class.

type AppChooserButtonOverrides added in v0.0.5

type AppChooserButtonOverrides struct {
	// The function takes the following parameters:
	//
	CustomItemActivated func(itemName string)
}

AppChooserButtonOverrides contains methods that are overridable.

type AppChooserDialog

type AppChooserDialog struct {
	Dialog

	*coreglib.Object
	AppChooser
	// contains filtered or unexported fields
}

AppChooserDialog shows a AppChooserWidget inside a Dialog.

Note that AppChooserDialog does not have any interesting methods of its own. Instead, you should get the embedded AppChooserWidget using gtk_app_chooser_dialog_get_widget() and call its methods if the generic AppChooser interface is not sufficient for your needs.

To set the heading that is shown above the AppChooserWidget, use gtk_app_chooser_dialog_set_heading().

func NewAppChooserDialog

func NewAppChooserDialog(parent *Window, flags DialogFlags, file gio.Filer) *AppChooserDialog

NewAppChooserDialog creates a new AppChooserDialog for the provided #GFile, to allow the user to select an application for it.

The function takes the following parameters:

  • parent (optional) or NULL.
  • flags for this dialog.
  • file: #GFile.

The function returns the following values:

  • appChooserDialog: newly created AppChooserDialog.

func NewAppChooserDialogForContentType

func NewAppChooserDialogForContentType(parent *Window, flags DialogFlags, contentType string) *AppChooserDialog

NewAppChooserDialogForContentType creates a new AppChooserDialog for the provided content type, to allow the user to select an application for it.

The function takes the following parameters:

  • parent (optional) or NULL.
  • flags for this dialog.
  • contentType: content type string.

The function returns the following values:

  • appChooserDialog: newly created AppChooserDialog.

func (*AppChooserDialog) Heading

func (self *AppChooserDialog) Heading() string

Heading returns the text to display at the top of the dialog.

The function returns the following values:

  • utf8 (optional): text to display at the top of the dialog, or NULL, in which case a default text is displayed.

func (*AppChooserDialog) SetHeading

func (self *AppChooserDialog) SetHeading(heading string)

SetHeading sets the text to display at the top of the dialog. If the heading is not set, the dialog displays a default text.

The function takes the following parameters:

  • heading: string containing Pango markup.

func (*AppChooserDialog) Widget

func (self *AppChooserDialog) Widget() Widgetter

Widget returns the AppChooserWidget of this dialog.

The function returns the following values:

  • widget of self.

type AppChooserDialogClass added in v0.0.5

type AppChooserDialogClass struct {
	// contains filtered or unexported fields
}

AppChooserDialogClass: instance of this type is always passed by reference.

func (*AppChooserDialogClass) ParentClass added in v0.0.5

func (a *AppChooserDialogClass) ParentClass() *DialogClass

ParentClass: parent class.

type AppChooserDialogOverrides added in v0.0.5

type AppChooserDialogOverrides struct {
}

AppChooserDialogOverrides contains methods that are overridable.

type AppChooserWidget

type AppChooserWidget struct {
	Box

	*coreglib.Object
	AppChooser
	// contains filtered or unexported fields
}

AppChooserWidget is a widget for selecting applications. It is the main building block for AppChooserDialog. Most applications only need to use the latter; but you can use this widget as part of a larger widget if you have special needs.

AppChooserWidget offers detailed control over what applications are shown, using the AppChooserWidget:show-default, AppChooserWidget:show-recommended, AppChooserWidget:show-fallback, AppChooserWidget:show-other and AppChooserWidget:show-all properties. See the AppChooser documentation for more information about these groups of applications.

To keep track of the selected application, use the AppChooserWidget::application-selected and AppChooserWidget::application-activated signals.

CSS nodes

GtkAppChooserWidget has a single CSS node with name appchooser.

func NewAppChooserWidget

func NewAppChooserWidget(contentType string) *AppChooserWidget

NewAppChooserWidget creates a new AppChooserWidget for applications that can handle content of the given type.

The function takes the following parameters:

  • contentType: content type to show applications for.

The function returns the following values:

  • appChooserWidget: newly created AppChooserWidget.

func (*AppChooserWidget) ConnectApplicationActivated

func (self *AppChooserWidget) ConnectApplicationActivated(f func(application gio.AppInfor)) coreglib.SignalHandle

ConnectApplicationActivated is emitted when an application item is activated from the widget's list.

This usually happens when the user double clicks an item, or an item is selected and the user presses one of the keys Space, Shift+Space, Return or Enter.

func (*AppChooserWidget) ConnectApplicationSelected

func (self *AppChooserWidget) ConnectApplicationSelected(f func(application gio.AppInfor)) coreglib.SignalHandle

ConnectApplicationSelected is emitted when an application item is selected from the widget's list.

func (*AppChooserWidget) ConnectPopulatePopup

func (self *AppChooserWidget) ConnectPopulatePopup(f func(menu *Menu, application gio.AppInfor)) coreglib.SignalHandle

ConnectPopulatePopup is emitted when a context menu is about to popup over an application item. Clients can insert menu items into the provided Menu object in the callback of this signal; the context menu will be shown over the item if at least one item has been added to the menu.

func (*AppChooserWidget) DefaultText

func (self *AppChooserWidget) DefaultText() string

DefaultText returns the text that is shown if there are not applications that can handle the content type.

The function returns the following values:

  • utf8: value of AppChooserWidget:default-text.

func (*AppChooserWidget) SetDefaultText

func (self *AppChooserWidget) SetDefaultText(text string)

SetDefaultText sets the text that is shown if there are not applications that can handle the content type.

The function takes the following parameters:

  • text: new value for AppChooserWidget:default-text.

func (*AppChooserWidget) SetShowAll

func (self *AppChooserWidget) SetShowAll(setting bool)

SetShowAll sets whether the app chooser should show all applications in a flat list.

The function takes the following parameters:

  • setting: new value for AppChooserWidget:show-all.

func (*AppChooserWidget) SetShowDefault

func (self *AppChooserWidget) SetShowDefault(setting bool)

SetShowDefault sets whether the app chooser should show the default handler for the content type in a separate section.

The function takes the following parameters:

  • setting: new value for AppChooserWidget:show-default.

func (*AppChooserWidget) SetShowFallback

func (self *AppChooserWidget) SetShowFallback(setting bool)

SetShowFallback sets whether the app chooser should show related applications for the content type in a separate section.

The function takes the following parameters:

  • setting: new value for AppChooserWidget:show-fallback.

func (*AppChooserWidget) SetShowOther

func (self *AppChooserWidget) SetShowOther(setting bool)

SetShowOther sets whether the app chooser should show applications which are unrelated to the content type.

The function takes the following parameters:

  • setting: new value for AppChooserWidget:show-other.

func (*AppChooserWidget) SetShowRecommended

func (self *AppChooserWidget) SetShowRecommended(setting bool)

SetShowRecommended sets whether the app chooser should show recommended applications for the content type in a separate section.

The function takes the following parameters:

  • setting: new value for AppChooserWidget:show-recommended.

func (*AppChooserWidget) ShowAll

func (self *AppChooserWidget) ShowAll() bool

ShowAll returns the current value of the AppChooserWidget:show-all property.

The function returns the following values:

  • ok: value of AppChooserWidget:show-all.

func (*AppChooserWidget) ShowDefault

func (self *AppChooserWidget) ShowDefault() bool

ShowDefault returns the current value of the AppChooserWidget:show-default property.

The function returns the following values:

  • ok: value of AppChooserWidget:show-default.

func (*AppChooserWidget) ShowFallback

func (self *AppChooserWidget) ShowFallback() bool

ShowFallback returns the current value of the AppChooserWidget:show-fallback property.

The function returns the following values:

  • ok: value of AppChooserWidget:show-fallback.

func (*AppChooserWidget) ShowOther

func (self *AppChooserWidget) ShowOther() bool

ShowOther returns the current value of the AppChooserWidget:show-other property.

The function returns the following values:

  • ok: value of AppChooserWidget:show-other.

func (*AppChooserWidget) ShowRecommended

func (self *AppChooserWidget) ShowRecommended() bool

ShowRecommended returns the current value of the AppChooserWidget:show-recommended property.

The function returns the following values:

  • ok: value of AppChooserWidget:show-recommended.

type AppChooserWidgetClass added in v0.0.5

type AppChooserWidgetClass struct {
	// contains filtered or unexported fields
}

AppChooserWidgetClass: instance of this type is always passed by reference.

func (*AppChooserWidgetClass) ParentClass added in v0.0.5

func (a *AppChooserWidgetClass) ParentClass() *BoxClass

ParentClass: parent class.

type AppChooserWidgetOverrides added in v0.0.5

type AppChooserWidgetOverrides struct {
	// The function takes the following parameters:
	//
	ApplicationActivated func(appInfo gio.AppInfor)
	// The function takes the following parameters:
	//
	ApplicationSelected func(appInfo gio.AppInfor)
	// The function takes the following parameters:
	//
	//   - menu
	//   - appInfo
	//
	PopulatePopup func(menu *Menu, appInfo gio.AppInfor)
}

AppChooserWidgetOverrides contains methods that are overridable.

type AppChooserer

type AppChooserer interface {
	coreglib.Objector

	// AppInfo returns the currently selected application.
	AppInfo() *gio.AppInfo
	// ContentType returns the current value of the AppChooser:content-type
	// property.
	ContentType() string
	// Refresh reloads the list of applications.
	Refresh()
}

AppChooserer describes AppChooser's interface methods.

type Application

type Application struct {
	gio.Application
	// contains filtered or unexported fields
}

Application is a class that handles many important aspects of a GTK+ application in a convenient fashion, without enforcing a one-size-fits-all application model.

Currently, GtkApplication handles GTK+ initialization, application uniqueness, session management, provides some basic scriptability and desktop shell integration by exporting actions and menus and manages a list of toplevel windows whose life-cycle is automatically tied to the life-cycle of your application.

While GtkApplication works fine with plain Windows, it is recommended to use it together with ApplicationWindow.

When GDK threads are enabled, GtkApplication will acquire the GDK lock when invoking actions that arrive from other processes. The GDK lock is not touched for local action invocations. In order to have actions invoked in a predictable context it is therefore recommended that the GDK lock be held while invoking actions locally with g_action_group_activate_action(). The same applies to actions associated with ApplicationWindow and to the “activate” and “open” #GApplication methods.

Automatic resources

Application will automatically load menus from the Builder resource located at "gtk/menus.ui", relative to the application's resource base path (see g_application_set_resource_base_path()). The menu with the ID "app-menu" is taken as the application's app menu and the menu with the ID "menubar" is taken as the application's menubar. Additional menus (most interesting submenus) can be named and accessed via gtk_application_get_menu_by_id() which allows for dynamic population of a part of the menu structure.

If the resources "gtk/menus-appmenu.ui" or "gtk/menus-traditional.ui" are present then these files will be used in preference, depending on the value of gtk_application_prefers_app_menu(). If the resource "gtk/menus-common.ui" is present it will be loaded as well. This is useful for storing items that are referenced from both "gtk/menus-appmenu.ui" and "gtk/menus-traditional.ui".

It is also possible to provide the menus manually using gtk_application_set_app_menu() and gtk_application_set_menubar().

Application will also automatically setup an icon search path for the default icon theme by appending "icons" to the resource base path. This allows your application to easily store its icons as resources. See gtk_icon_theme_add_resource_path() for more information.

If there is a resource located at "gtk/help-overlay.ui" which defines a ShortcutsWindow with ID "help_overlay" then GtkApplication associates an instance of this shortcuts window with each ApplicationWindow and sets up keyboard accelerators (Control-F1 and Control-?) to open it. To create a menu item that displays the shortcuts window, associate the item with the action win.show-help-overlay.

A simple application

A simple example (https://git.gnome.org/browse/gtk+/tree/examples/bp/bloatpad.c)

GtkApplication optionally registers with a session manager of the users session (if you set the Application:register-session property) and offers various functionality related to the session life-cycle.

An application can block various ways to end the session with the gtk_application_inhibit() function. Typical use cases for this kind of inhibiting are long-running, uninterruptible operations, such as burning a CD or performing a disk backup. The session manager may not honor the inhibitor, but it can be expected to inform the user about the negative consequences of ending the session while inhibitors are present.

See Also

HowDoI: Using GtkApplication (https://wiki.gnome.org/HowDoI/GtkApplication), Getting Started with GTK+: Basics (https://developer.gnome.org/gtk3/stable/gtk-getting-started.html#id-1.2.3.3).

func NewApplication

func NewApplication(applicationId string, flags gio.ApplicationFlags) *Application

NewApplication creates a new Application instance.

When using Application, it is not necessary to call gtk_init() manually. It is called as soon as the application gets registered as the primary instance.

Concretely, gtk_init() is called in the default handler for the #GApplication::startup signal. Therefore, Application subclasses should chain up in their #GApplication::startup handler before using any GTK+ API.

Note that commandline arguments are not passed to gtk_init(). All GTK+ functionality that is available via commandline arguments can also be achieved by setting suitable environment variables such as G_DEBUG, so this should not be a big problem. If you absolutely must support GTK+ commandline arguments, you can explicitly call gtk_init() before creating the application instance.

If non-NULL, the application ID must be valid. See g_application_id_is_valid().

If no application ID is given then some features (most notably application uniqueness) will be disabled. A null application ID is only allowed with GTK+ 3.6 or later.

The function takes the following parameters:

  • applicationId (optional): application ID.
  • flags: application flags.

The function returns the following values:

  • application: new Application instance.

func (*Application) AccelsForAction

func (application *Application) AccelsForAction(detailedActionName string) []string

AccelsForAction gets the accelerators that are currently associated with the given action.

The function takes the following parameters:

  • detailedActionName: detailed action name, specifying an action and target to obtain accelerators for.

The function returns the following values:

  • utf8s accelerators for detailed_action_name, as a NULL-terminated array. Free with g_strfreev() when no longer needed.

func (*Application) ActionsForAccel

func (application *Application) ActionsForAccel(accel string) []string

ActionsForAccel returns the list of actions (possibly empty) that accel maps to. Each item in the list is a detailed action name in the usual form.

This might be useful to discover if an accel already exists in order to prevent installation of a conflicting accelerator (from an accelerator editor or a plugin system, for example). Note that having more than one action per accelerator may not be a bad thing and might make sense in cases where the actions never appear in the same context.

In case there are no actions for a given accelerator, an empty array is returned. NULL is never returned.

It is a programmer error to pass an invalid accelerator string. If you are unsure, check it with gtk_accelerator_parse() first.

The function takes the following parameters:

  • accel: accelerator that can be parsed by gtk_accelerator_parse().

The function returns the following values:

  • utf8s: NULL-terminated array of actions for accel.

func (*Application) ActiveWindow

func (application *Application) ActiveWindow() *Window

ActiveWindow gets the “active” window for the application.

The active window is the one that was most recently focused (within the application). This window may not have the focus at the moment if another application has it — this is just the most recently-focused window within this application.

The function returns the following values:

  • window (optional): active window, or NULL if there isn't one.

func (*Application) AddAccelerator deprecated

func (application *Application) AddAccelerator(accelerator, actionName string, parameter *glib.Variant)

AddAccelerator installs an accelerator that will cause the named action to be activated when the key combination specificed by accelerator is pressed.

accelerator must be a string that can be parsed by gtk_accelerator_parse(), e.g. "<Primary>q" or “<Control><Alt>p”.

action_name must be the name of an action as it would be used in the app menu, i.e. actions that have been added to the application are referred to with an “app.” prefix, and window-specific actions with a “win.” prefix.

GtkApplication also extracts accelerators out of “accel” attributes in the Models passed to gtk_application_set_app_menu() and gtk_application_set_menubar(), which is usually more convenient than calling this function for each accelerator.

Deprecated: Use gtk_application_set_accels_for_action() instead.

The function takes the following parameters:

  • accelerator string.
  • actionName: name of the action to activate.
  • parameter (optional) to pass when activating the action, or NULL if the action does not accept an activation parameter.

func (*Application) AddWindow

func (application *Application) AddWindow(window *Window)

AddWindow adds a window to application.

This call can only happen after the application has started; typically, you should add new application windows in response to the emission of the #GApplication::activate signal.

This call is equivalent to setting the Window:application property of window to application.

Normally, the connection between the application and the window will remain until the window is destroyed, but you can explicitly remove it with gtk_application_remove_window().

GTK+ will keep the application running as long as it has any windows.

The function takes the following parameters:

  • window: Window.

func (*Application) AppMenu

func (application *Application) AppMenu() gio.MenuModeller

AppMenu returns the menu model that has been set with gtk_application_set_app_menu().

The function returns the following values:

  • menuModel (optional): application menu of application or NULL if no application menu has been set.

func (*Application) ConnectQueryEnd

func (application *Application) ConnectQueryEnd(f func()) coreglib.SignalHandle

ConnectQueryEnd is emitted when the session manager is about to end the session, only if Application::register-session is TRUE. Applications can connect to this signal and call gtk_application_inhibit() with GTK_APPLICATION_INHIBIT_LOGOUT to delay the end of the session until state has been saved.

func (*Application) ConnectWindowAdded

func (application *Application) ConnectWindowAdded(f func(window *Window)) coreglib.SignalHandle

ConnectWindowAdded is emitted when a Window is added to application through gtk_application_add_window().

func (*Application) ConnectWindowRemoved

func (application *Application) ConnectWindowRemoved(f func(window *Window)) coreglib.SignalHandle

ConnectWindowRemoved is emitted when a Window is removed from application, either as a side-effect of being destroyed or explicitly through gtk_application_remove_window().

func (*Application) Inhibit

func (application *Application) Inhibit(window *Window, flags ApplicationInhibitFlags, reason string) uint

Inhibit: inform the session manager that certain types of actions should be inhibited. This is not guaranteed to work on all platforms and for all types of actions.

Applications should invoke this method when they begin an operation that should not be interrupted, such as creating a CD or DVD. The types of actions that may be blocked are specified by the flags parameter. When the application completes the operation it should call gtk_application_uninhibit() to remove the inhibitor. Note that an application can have multiple inhibitors, and all of them must be individually removed. Inhibitors are also cleared when the application exits.

Applications should not expect that they will always be able to block the action. In most cases, users will be given the option to force the action to take place.

Reasons should be short and to the point.

If window is given, the session manager may point the user to this window to find out more about why the action is inhibited.

The function takes the following parameters:

  • window (optional) or NULL.
  • flags: what types of actions should be inhibited.
  • reason (optional): short, human-readable string that explains why these operations are inhibited.

The function returns the following values:

  • guint: non-zero cookie that is used to uniquely identify this request. It should be used as an argument to gtk_application_uninhibit() in order to remove the request. If the platform does not support inhibiting or the request failed for some reason, 0 is returned.

func (*Application) IsInhibited

func (application *Application) IsInhibited(flags ApplicationInhibitFlags) bool

IsInhibited determines if any of the actions specified in flags are currently inhibited (possibly by another application).

Note that this information may not be available (for example when the application is running in a sandbox).

The function takes the following parameters:

  • flags: what types of actions should be queried.

The function returns the following values:

  • ok: TRUE if any of the actions specified in flags are inhibited.

func (*Application) ListActionDescriptions

func (application *Application) ListActionDescriptions() []string

ListActionDescriptions lists the detailed action names which have associated accelerators. See gtk_application_set_accels_for_action().

The function returns the following values:

  • utf8s: NULL-terminated array of strings, free with g_strfreev() when done.

func (*Application) MenuByID

func (application *Application) MenuByID(id string) *gio.Menu

MenuByID gets a menu from automatically loaded resources. See [Automatic resources][automatic-resources] for more information.

The function takes the following parameters:

  • id of the menu to look up.

The function returns the following values:

  • menu gets the menu with the given id from the automatically loaded resources.

func (*Application) Menubar

func (application *Application) Menubar() gio.MenuModeller

Menubar returns the menu model that has been set with gtk_application_set_menubar().

The function returns the following values:

  • menuModel: menubar for windows of application.

func (*Application) PrefersAppMenu

func (application *Application) PrefersAppMenu() bool

PrefersAppMenu determines if the desktop environment in which the application is running would prefer an application menu be shown.

If this function returns TRUE then the application should call gtk_application_set_app_menu() with the contents of an application menu, which will be shown by the desktop environment. If it returns FALSE then you should consider using an alternate approach, such as a menubar.

The value returned by this function is purely advisory and you are free to ignore it. If you call gtk_application_set_app_menu() even if the desktop environment doesn't support app menus, then a fallback will be provided.

Applications are similarly free not to set an app menu even if the desktop environment wants to show one. In that case, a fallback will also be created by the desktop environment (GNOME, for example, uses a menu with only a "Quit" item in it).

The value returned by this function never changes. Once it returns a particular value, it is guaranteed to always return the same value.

You may only call this function after the application has been registered and after the base startup handler has run. You're most likely to want to use this from your own startup handler. It may also make sense to consult this function while constructing UI (in activate, open or an action activation handler) in order to determine if you should show a gear menu or not.

This function will return FALSE on Mac OS and a default app menu will be created automatically with the "usual" contents of that menu typical to most Mac OS applications. If you call gtk_application_set_app_menu() anyway, then this menu will be replaced with your own.

The function returns the following values:

  • ok: TRUE if you should set an app menu.

func (*Application) RemoveAccelerator deprecated

func (application *Application) RemoveAccelerator(actionName string, parameter *glib.Variant)

RemoveAccelerator removes an accelerator that has been previously added with gtk_application_add_accelerator().

Deprecated: Use gtk_application_set_accels_for_action() instead.

The function takes the following parameters:

  • actionName: name of the action to activate.
  • parameter (optional) to pass when activating the action, or NULL if the action does not accept an activation parameter.

func (*Application) RemoveWindow

func (application *Application) RemoveWindow(window *Window)

RemoveWindow: remove a window from application.

If window belongs to application then this call is equivalent to setting the Window:application property of window to NULL.

The application may stop running as a result of a call to this function.

The function takes the following parameters:

  • window: Window.

func (*Application) SetAccelsForAction

func (application *Application) SetAccelsForAction(detailedActionName string, accels []string)

SetAccelsForAction sets zero or more keyboard accelerators that will trigger the given action. The first item in accels will be the primary accelerator, which may be displayed in the UI.

To remove all accelerators for an action, use an empty, zero-terminated array for accels.

For the detailed_action_name, see g_action_parse_detailed_name() and g_action_print_detailed_name().

The function takes the following parameters:

  • detailedActionName: detailed action name, specifying an action and target to associate accelerators with.
  • accels: list of accelerators in the format understood by gtk_accelerator_parse().

func (*Application) SetAppMenu

func (application *Application) SetAppMenu(appMenu gio.MenuModeller)

SetAppMenu sets or unsets the application menu for application.

This can only be done in the primary instance of the application, after it has been registered. #GApplication::startup is a good place to call this.

The application menu is a single menu containing items that typically impact the application as a whole, rather than acting on a specific window or document. For example, you would expect to see “Preferences” or “Quit” in an application menu, but not “Save” or “Print”.

If supported, the application menu will be rendered by the desktop environment.

Use the base Map interface to add actions, to respond to the user selecting these menu items.

The function takes the following parameters:

  • appMenu (optional) or NULL.

func (*Application) SetMenubar

func (application *Application) SetMenubar(menubar gio.MenuModeller)

SetMenubar sets or unsets the menubar for windows of application.

This is a menubar in the traditional sense.

This can only be done in the primary instance of the application, after it has been registered. #GApplication::startup is a good place to call this.

Depending on the desktop environment, this may appear at the top of each window, or at the top of the screen. In some environments, if both the application menu and the menubar are set, the application menu will be presented as if it were the first item of the menubar. Other environments treat the two as completely separate — for example, the application menu may be rendered by the desktop shell while the menubar (if set) remains in each individual window.

Use the base Map interface to add actions, to respond to the user selecting these menu items.

The function takes the following parameters:

  • menubar (optional) or NULL.

func (*Application) Uninhibit

func (application *Application) Uninhibit(cookie uint)

Uninhibit removes an inhibitor that has been established with gtk_application_inhibit(). Inhibitors are also cleared when the application exits.

The function takes the following parameters:

  • cookie that was returned by gtk_application_inhibit().

func (*Application) WindowByID

func (application *Application) WindowByID(id uint) *Window

WindowByID returns the ApplicationWindow with the given ID.

The ID of a ApplicationWindow can be retrieved with gtk_application_window_get_id().

The function takes the following parameters:

  • id: identifier number.

The function returns the following values:

  • window (optional) with ID id, or NULL if there is no window with this ID.

func (*Application) Windows

func (application *Application) Windows() []*Window

Windows gets a list of the Windows associated with application.

The list is sorted by most recently focused window, such that the first element is the currently focused window. (Useful for choosing a parent for a transient window.)

The list that is returned should not be modified in any way. It will only remain valid until the next focus change or window creation or deletion.

The function returns the following values:

  • list of Window.

type ApplicationClass added in v0.0.5

type ApplicationClass struct {
	// contains filtered or unexported fields
}

ApplicationClass: instance of this type is always passed by reference.

func (*ApplicationClass) ParentClass added in v0.0.5

func (a *ApplicationClass) ParentClass() *gio.ApplicationClass

ParentClass: parent class.

type ApplicationInhibitFlags

type ApplicationInhibitFlags C.guint

ApplicationInhibitFlags types of user actions that may be blocked by gtk_application_inhibit().

const (
	// ApplicationInhibitLogout: inhibit ending the user session by logging out
	// or by shutting down the computer.
	ApplicationInhibitLogout ApplicationInhibitFlags = 0b1
	// ApplicationInhibitSwitch: inhibit user switching.
	ApplicationInhibitSwitch ApplicationInhibitFlags = 0b10
	// ApplicationInhibitSuspend: inhibit suspending the session or computer.
	ApplicationInhibitSuspend ApplicationInhibitFlags = 0b100
	// ApplicationInhibitIdle: inhibit the session being marked as idle (and
	// possibly locked).
	ApplicationInhibitIdle ApplicationInhibitFlags = 0b1000
)

func (ApplicationInhibitFlags) Has

Has returns true if a contains other.

func (ApplicationInhibitFlags) String

func (a ApplicationInhibitFlags) String() string

String returns the names in string for ApplicationInhibitFlags.

type ApplicationOverrides added in v0.0.5

type ApplicationOverrides struct {
	// The function takes the following parameters:
	//
	WindowAdded func(window *Window)
	// The function takes the following parameters:
	//
	WindowRemoved func(window *Window)
}

ApplicationOverrides contains methods that are overridable.

type ApplicationWindow

type ApplicationWindow struct {
	Window

	*coreglib.Object
	gio.ActionGroup
	gio.ActionMap
	// contains filtered or unexported fields
}

ApplicationWindow is a Window subclass that offers some extra functionality for better integration with Application features. Notably, it can handle both the application menu as well as the menubar. See gtk_application_set_app_menu() and gtk_application_set_menubar().

This class implements the Group and Map interfaces, to let you add window-specific actions that will be exported by the associated Application, together with its application-wide actions. Window-specific actions are prefixed with the “win.” prefix and application-wide actions are prefixed with the “app.” prefix. Actions must be addressed with the prefixed name when referring to them from a Model.

Note that widgets that are placed inside a ApplicationWindow can also activate these actions, if they implement the Actionable interface.

As with Application, the GDK lock will be acquired when processing actions arriving from other processes and should therefore be held when activating actions locally (if GDK threads are enabled).

The settings Settings:gtk-shell-shows-app-menu and Settings:gtk-shell-shows-menubar tell GTK+ whether the desktop environment is showing the application menu and menubar models outside the application as part of the desktop shell. For instance, on OS X, both menus will be displayed remotely; on Windows neither will be. gnome-shell (starting with version 3.4) will display the application menu, but not the menubar.

If the desktop environment does not display the menubar, then ApplicationWindow will automatically show a MenuBar for it. This behaviour can be overridden with the ApplicationWindow:show-menubar property. If the desktop environment does not display the application menu, then it will automatically be included in the menubar or in the windows client-side decorations.

A GtkApplicationWindow with a menubar

GtkApplication *app = gtk_application_new ("org.gtk.test", 0);

GtkBuilder *builder = gtk_builder_new_from_string (
    "<interface>"
    "  <menu id='menubar'>"
    "    <submenu label='_Edit'>"
    "      <item label='_Copy' action='win.copy'/>"
    "      <item label='_Paste' action='win.paste'/>"
    "    </submenu>"
    "  </menu>"
    "</interface>",
    -1);

GMenuModel *menubar = G_MENU_MODEL (gtk_builder_get_object (builder,
                                                            "menubar"));
gtk_application_set_menubar (GTK_APPLICATION (app), menubar);
g_object_unref (builder);

// ...

GtkWidget *window = gtk_application_window_new (app);

Handling fallback yourself

A simple example (https://git.gnome.org/browse/gtk+/tree/examples/sunny.c)

The XML format understood by Builder for Model consists of a toplevel <menu> element, which contains one or more <item> elements. Each <item> element contains <attribute> and <link> elements with a mandatory name attribute. <link> elements have the same content model as <menu>. Instead of <link name="submenu> or <link name="section">, you can use <submenu> or <section> elements.

Attribute values can be translated using gettext, like other Builder content. <attribute> elements can be marked for translation with a translatable="yes" attribute. It is also possible to specify message context and translator comments, using the context and comments attributes. To make use of this, the Builder must have been given the gettext domain to use.

The following attributes are used when constructing menu items:

- "label": a user-visible string to display

- "action": the prefixed name of the action to trigger

- "target": the parameter to use when activating the action

- "icon" and "verb-icon": names of icons that may be displayed

- "submenu-action": name of an action that may be used to determine if a submenu can be opened

- "hidden-when": a string used to determine when the item will be hidden. Possible values include "action-disabled", "action-missing", "macos-menubar".

The following attributes are used when constructing sections:

- "label": a user-visible string to use as section heading

- "display-hint": a string used to determine special formatting for the section. Possible values include "horizontal-buttons".

- "text-direction": a string used to determine the TextDirection to use when "display-hint" is set to "horizontal-buttons". Possible values include "rtl", "ltr", and "none".

The following attributes are used when constructing submenus:

- "label": a user-visible string to display

- "icon": icon name to display.

func NewApplicationWindow

func NewApplicationWindow(application *Application) *ApplicationWindow

NewApplicationWindow creates a new ApplicationWindow.

The function takes the following parameters:

  • application: Application.

The function returns the following values:

  • applicationWindow: newly created ApplicationWindow.

func (*ApplicationWindow) HelpOverlay

func (window *ApplicationWindow) HelpOverlay() *ShortcutsWindow

HelpOverlay gets the ShortcutsWindow that has been set up with a prior call to gtk_application_window_set_help_overlay().

The function returns the following values:

  • shortcutsWindow (optional): help overlay associated with window, or NULL.

func (*ApplicationWindow) ID

func (window *ApplicationWindow) ID() uint

ID returns the unique ID of the window. If the window has not yet been added to a Application, returns 0.

The function returns the following values:

  • guint: unique ID for window, or 0 if the window has not yet been added to a Application.

func (*ApplicationWindow) SetHelpOverlay

func (window *ApplicationWindow) SetHelpOverlay(helpOverlay *ShortcutsWindow)

SetHelpOverlay associates a shortcuts window with the application window, and sets up an action with the name win.show-help-overlay to present it.

window takes resposibility for destroying help_overlay.

The function takes the following parameters:

  • helpOverlay (optional): ShortcutsWindow.

func (*ApplicationWindow) SetShowMenubar

func (window *ApplicationWindow) SetShowMenubar(showMenubar bool)

SetShowMenubar sets whether the window will display a menubar for the app menu and menubar as needed.

The function takes the following parameters:

  • showMenubar: whether to show a menubar when needed.

func (*ApplicationWindow) ShowMenubar

func (window *ApplicationWindow) ShowMenubar() bool

ShowMenubar returns whether the window will display a menubar for the app menu and menubar as needed.

The function returns the following values:

  • ok: TRUE if window will display a menubar when needed.

type ApplicationWindowClass added in v0.0.5

type ApplicationWindowClass struct {
	// contains filtered or unexported fields
}

ApplicationWindowClass: instance of this type is always passed by reference.

func (*ApplicationWindowClass) ParentClass added in v0.0.5

func (a *ApplicationWindowClass) ParentClass() *WindowClass

ParentClass: parent class.

type ApplicationWindowOverrides added in v0.0.5

type ApplicationWindowOverrides struct {
}

ApplicationWindowOverrides contains methods that are overridable.

type Arrow

type Arrow struct {
	Misc
	// contains filtered or unexported fields
}

Arrow should be used to draw simple arrows that need to point in one of the four cardinal directions (up, down, left, or right). The style of the arrow can be one of shadow in, shadow out, etched in, or etched out. Note that these directions and style types may be amended in versions of GTK+ to come.

GtkArrow will fill any space alloted to it, but since it is inherited from Misc, it can be padded and/or aligned, to fill exactly the space the programmer desires.

Arrows are created with a call to gtk_arrow_new(). The direction or style of an arrow can be changed after creation by using gtk_arrow_set().

GtkArrow has been deprecated; you can simply use a Image with a suitable icon name, such as “pan-down-symbolic“. When replacing GtkArrow by an image, pay attention to the fact that GtkArrow is doing automatic flipping between K_ARROW_LEFT and K_ARROW_RIGHT, depending on the text direction. To get the same effect with an image, use the icon names “pan-start-symbolic“ and “pan-end-symbolic“, which react to the text direction.

func NewArrow deprecated

func NewArrow(arrowType ArrowType, shadowType ShadowType) *Arrow

NewArrow creates a new Arrow widget.

Deprecated: Use a Image with a suitable icon.

The function takes the following parameters:

  • arrowType: valid ArrowType.
  • shadowType: valid ShadowType.

The function returns the following values:

  • arrow: new Arrow widget.

func (*Arrow) Set deprecated

func (arrow *Arrow) Set(arrowType ArrowType, shadowType ShadowType)

Set sets the direction and style of the Arrow, arrow.

Deprecated: Use a Image with a suitable icon.

The function takes the following parameters:

  • arrowType: valid ArrowType.
  • shadowType: valid ShadowType.

type ArrowAccessible

type ArrowAccessible struct {
	WidgetAccessible

	atk.Image
	// contains filtered or unexported fields
}

type ArrowAccessibleClass added in v0.0.5

type ArrowAccessibleClass struct {
	// contains filtered or unexported fields
}

ArrowAccessibleClass: instance of this type is always passed by reference.

func (*ArrowAccessibleClass) ParentClass added in v0.0.5

func (a *ArrowAccessibleClass) ParentClass() *WidgetAccessibleClass

type ArrowAccessibleOverrides added in v0.0.5

type ArrowAccessibleOverrides struct {
}

ArrowAccessibleOverrides contains methods that are overridable.

type ArrowClass added in v0.0.5

type ArrowClass struct {
	// contains filtered or unexported fields
}

ArrowClass: instance of this type is always passed by reference.

func (*ArrowClass) ParentClass added in v0.0.5

func (a *ArrowClass) ParentClass() *MiscClass

type ArrowOverrides added in v0.0.5

type ArrowOverrides struct {
}

ArrowOverrides contains methods that are overridable.

type ArrowPlacement

type ArrowPlacement C.gint

ArrowPlacement: used to specify the placement of scroll arrows in scrolling menus.

const (
	// ArrowsBoth: place one arrow on each end of the menu.
	ArrowsBoth ArrowPlacement = iota
	// ArrowsStart: place both arrows at the top of the menu.
	ArrowsStart
	// ArrowsEnd: place both arrows at the bottom of the menu.
	ArrowsEnd
)

func (ArrowPlacement) String

func (a ArrowPlacement) String() string

String returns the name in string for ArrowPlacement.

type ArrowType

type ArrowType C.gint

ArrowType: used to indicate the direction in which an arrow should point.

const (
	// ArrowUp represents an upward pointing arrow.
	ArrowUp ArrowType = iota
	// ArrowDown represents a downward pointing arrow.
	ArrowDown
	// ArrowLeft represents a left pointing arrow.
	ArrowLeft
	// ArrowRight represents a right pointing arrow.
	ArrowRight
	// ArrowNone: no arrow. Since 2.10.
	ArrowNone
)

func (ArrowType) String

func (a ArrowType) String() string

String returns the name in string for ArrowType.

type AspectFrame

type AspectFrame struct {
	Frame
	// contains filtered or unexported fields
}

AspectFrame is useful when you want pack a widget so that it can resize but always retains the same aspect ratio. For instance, one might be drawing a small preview of a larger image. AspectFrame derives from Frame, so it can draw a label and a frame around the child. The frame will be “shrink-wrapped” to the size of the child.

CSS nodes

GtkAspectFrame uses a CSS node with name frame.

func NewAspectFrame

func NewAspectFrame(label string, xalign, yalign, ratio float32, obeyChild bool) *AspectFrame

NewAspectFrame: create a new AspectFrame.

The function takes the following parameters:

  • label (optional): label text.
  • xalign: horizontal alignment of the child within the allocation of the AspectFrame. This ranges from 0.0 (left aligned) to 1.0 (right aligned).
  • yalign: vertical alignment of the child within the allocation of the AspectFrame. This ranges from 0.0 (top aligned) to 1.0 (bottom aligned).
  • ratio: desired aspect ratio.
  • obeyChild: if TRUE, ratio is ignored, and the aspect ratio is taken from the requistion of the child.

The function returns the following values:

  • aspectFrame: new AspectFrame.

func (*AspectFrame) Set

func (aspectFrame *AspectFrame) Set(xalign, yalign, ratio float32, obeyChild bool)

Set parameters for an existing AspectFrame.

The function takes the following parameters:

  • xalign: horizontal alignment of the child within the allocation of the AspectFrame. This ranges from 0.0 (left aligned) to 1.0 (right aligned).
  • yalign: vertical alignment of the child within the allocation of the AspectFrame. This ranges from 0.0 (top aligned) to 1.0 (bottom aligned).
  • ratio: desired aspect ratio.
  • obeyChild: if TRUE, ratio is ignored, and the aspect ratio is taken from the requistion of the child.

type AspectFrameClass added in v0.0.5

type AspectFrameClass struct {
	// contains filtered or unexported fields
}

AspectFrameClass: instance of this type is always passed by reference.

func (*AspectFrameClass) ParentClass added in v0.0.5

func (a *AspectFrameClass) ParentClass() *FrameClass

ParentClass: parent class.

type AspectFrameOverrides added in v0.0.5

type AspectFrameOverrides struct {
}

AspectFrameOverrides contains methods that are overridable.

type Assistant

type Assistant struct {
	Window
	// contains filtered or unexported fields
}

Assistant is a widget used to represent a generally complex operation splitted in several steps, guiding the user through its pages and controlling the page flow to collect the necessary data.

The design of GtkAssistant is that it controls what buttons to show and to make sensitive, based on what it knows about the page sequence and the [type][GtkAssistantPageType] of each page, in addition to state information like the page [completion][gtk-assistant-set-page-complete] and [committed][gtk-assistant-commit] status.

If you have a case that doesn’t quite fit in Assistants way of handling buttons, you can use the K_ASSISTANT_PAGE_CUSTOM page type and handle buttons yourself.

GtkAssistant as GtkBuildable

The GtkAssistant implementation of the Buildable interface exposes the action_area as internal children with the name “action_area”.

To add pages to an assistant in Builder, simply add it as a child to the GtkAssistant object, and set its child properties as necessary.

CSS nodes

GtkAssistant has a single CSS node with the name assistant.

func NewAssistant

func NewAssistant() *Assistant

NewAssistant creates a new Assistant.

The function returns the following values:

  • assistant: newly created Assistant.

func (*Assistant) AddActionWidget

func (assistant *Assistant) AddActionWidget(child Widgetter)

AddActionWidget adds a widget to the action area of a Assistant.

The function takes the following parameters:

  • child: Widget.

func (*Assistant) AppendPage

func (assistant *Assistant) AppendPage(page Widgetter) int

AppendPage appends a page to the assistant.

The function takes the following parameters:

  • page: Widget.

The function returns the following values:

  • gint: index (starting at 0) of the inserted page.

func (*Assistant) Commit

func (assistant *Assistant) Commit()

Commit erases the visited page history so the back button is not shown on the current page, and removes the cancel button from subsequent pages.

Use this when the information provided up to the current page is hereafter deemed permanent and cannot be modified or undone. For example, showing a progress page to track a long-running, unreversible operation after the user has clicked apply on a confirmation page.

func (*Assistant) ConnectApply

func (assistant *Assistant) ConnectApply(f func()) coreglib.SignalHandle

ConnectApply signal is emitted when the apply button is clicked.

The default behavior of the Assistant is to switch to the page after the current page, unless the current page is the last one.

A handler for the ::apply signal should carry out the actions for which the wizard has collected data. If the action takes a long time to complete, you might consider putting a page of type GTK_ASSISTANT_PAGE_PROGRESS after the confirmation page and handle this operation within the Assistant::prepare signal of the progress page.

func (*Assistant) ConnectCancel

func (assistant *Assistant) ConnectCancel(f func()) coreglib.SignalHandle

ConnectCancel signal is emitted when then the cancel button is clicked.

func (*Assistant) ConnectClose

func (assistant *Assistant) ConnectClose(f func()) coreglib.SignalHandle

ConnectClose signal is emitted either when the close button of a summary page is clicked, or when the apply button in the last page in the flow (of type GTK_ASSISTANT_PAGE_CONFIRM) is clicked.

func (*Assistant) ConnectEscape

func (assistant *Assistant) ConnectEscape(f func()) coreglib.SignalHandle

func (*Assistant) ConnectPrepare

func (assistant *Assistant) ConnectPrepare(f func(page Widgetter)) coreglib.SignalHandle

ConnectPrepare signal is emitted when a new page is set as the assistant's current page, before making the new page visible.

A handler for this signal can do any preparations which are necessary before showing page.

func (*Assistant) CurrentPage

func (assistant *Assistant) CurrentPage() int

CurrentPage returns the page number of the current page.

The function returns the following values:

  • gint: index (starting from 0) of the current page in the assistant, or -1 if the assistant has no pages, or no current page.

func (*Assistant) InsertPage

func (assistant *Assistant) InsertPage(page Widgetter, position int) int

InsertPage inserts a page in the assistant at a given position.

The function takes the following parameters:

  • page: Widget.
  • position: index (starting at 0) at which to insert the page, or -1 to append the page to the assistant.

The function returns the following values:

  • gint: index (starting from 0) of the inserted page.

func (*Assistant) NPages

func (assistant *Assistant) NPages() int

NPages returns the number of pages in the assistant.

The function returns the following values:

  • gint: number of pages in the assistant.

func (*Assistant) NextPage

func (assistant *Assistant) NextPage()

NextPage: navigate to the next page.

It is a programming error to call this function when there is no next page.

This function is for use when creating pages of the K_ASSISTANT_PAGE_CUSTOM type.

func (*Assistant) NthPage

func (assistant *Assistant) NthPage(pageNum int) Widgetter

NthPage returns the child widget contained in page number page_num.

The function takes the following parameters:

  • pageNum: index of a page in the assistant, or -1 to get the last page.

The function returns the following values:

  • widget (optional): child widget, or NULL if page_num is out of bounds.

func (*Assistant) PageComplete

func (assistant *Assistant) PageComplete(page Widgetter) bool

PageComplete gets whether page is complete.

The function takes the following parameters:

  • page of assistant.

The function returns the following values:

  • ok: TRUE if page is complete.

func (*Assistant) PageHasPadding

func (assistant *Assistant) PageHasPadding(page Widgetter) bool

PageHasPadding gets whether page has padding.

The function takes the following parameters:

  • page of assistant.

The function returns the following values:

  • ok: TRUE if page has padding.

func (*Assistant) PageHeaderImage deprecated

func (assistant *Assistant) PageHeaderImage(page Widgetter) *gdkpixbuf.Pixbuf

PageHeaderImage gets the header image for page.

Deprecated: Since GTK+ 3.2, a header is no longer shown; add your header decoration to the page content instead.

The function takes the following parameters:

  • page of assistant.

The function returns the following values:

  • pixbuf: header image for page, or NULL if there’s no header image for the page.

func (*Assistant) PageSideImage deprecated

func (assistant *Assistant) PageSideImage(page Widgetter) *gdkpixbuf.Pixbuf

PageSideImage gets the side image for page.

Deprecated: Since GTK+ 3.2, sidebar images are not shown anymore.

The function takes the following parameters:

  • page of assistant.

The function returns the following values:

  • pixbuf: side image for page, or NULL if there’s no side image for the page.

func (*Assistant) PageTitle

func (assistant *Assistant) PageTitle(page Widgetter) string

PageTitle gets the title for page.

The function takes the following parameters:

  • page of assistant.

The function returns the following values:

  • utf8: title for page.

func (*Assistant) PageType

func (assistant *Assistant) PageType(page Widgetter) AssistantPageType

PageType gets the page type of page.

The function takes the following parameters:

  • page of assistant.

The function returns the following values:

  • assistantPageType: page type of page.

func (*Assistant) PrependPage

func (assistant *Assistant) PrependPage(page Widgetter) int

PrependPage prepends a page to the assistant.

The function takes the following parameters:

  • page: Widget.

The function returns the following values:

  • gint: index (starting at 0) of the inserted page.

func (*Assistant) PreviousPage

func (assistant *Assistant) PreviousPage()

PreviousPage: navigate to the previous visited page.

It is a programming error to call this function when no previous page is available.

This function is for use when creating pages of the K_ASSISTANT_PAGE_CUSTOM type.

func (*Assistant) RemoveActionWidget

func (assistant *Assistant) RemoveActionWidget(child Widgetter)

RemoveActionWidget removes a widget from the action area of a Assistant.

The function takes the following parameters:

  • child: Widget.

func (*Assistant) RemovePage

func (assistant *Assistant) RemovePage(pageNum int)

RemovePage removes the page_num’s page from assistant.

The function takes the following parameters:

  • pageNum: index of a page in the assistant, or -1 to remove the last page.

func (*Assistant) SetCurrentPage

func (assistant *Assistant) SetCurrentPage(pageNum int)

SetCurrentPage switches the page to page_num.

Note that this will only be necessary in custom buttons, as the assistant flow can be set with gtk_assistant_set_forward_page_func().

The function takes the following parameters:

  • pageNum: index of the page to switch to, starting from 0. If negative, the last page will be used. If greater than the number of pages in the assistant, nothing will be done.

func (*Assistant) SetForwardPageFunc

func (assistant *Assistant) SetForwardPageFunc(pageFunc AssistantPageFunc)

SetForwardPageFunc sets the page forwarding function to be page_func.

This function will be used to determine what will be the next page when the user presses the forward button. Setting page_func to NULL will make the assistant to use the default forward function, which just goes to the next visible page.

The function takes the following parameters:

  • pageFunc (optional) or NULL to use the default one.

func (*Assistant) SetPageComplete

func (assistant *Assistant) SetPageComplete(page Widgetter, complete bool)

SetPageComplete sets whether page contents are complete.

This will make assistant update the buttons state to be able to continue the task.

The function takes the following parameters:

  • page of assistant.
  • complete completeness status of the page.

func (*Assistant) SetPageHasPadding

func (assistant *Assistant) SetPageHasPadding(page Widgetter, hasPadding bool)

SetPageHasPadding sets whether the assistant is adding padding around the page.

The function takes the following parameters:

  • page of assistant.
  • hasPadding: whether this page has padding.

func (*Assistant) SetPageHeaderImage deprecated

func (assistant *Assistant) SetPageHeaderImage(page Widgetter, pixbuf *gdkpixbuf.Pixbuf)

SetPageHeaderImage sets a header image for page.

Deprecated: Since GTK+ 3.2, a header is no longer shown; add your header decoration to the page content instead.

The function takes the following parameters:

  • page of assistant.
  • pixbuf (optional): new header image page.

func (*Assistant) SetPageSideImage deprecated

func (assistant *Assistant) SetPageSideImage(page Widgetter, pixbuf *gdkpixbuf.Pixbuf)

SetPageSideImage sets a side image for page.

This image used to be displayed in the side area of the assistant when page is the current page.

Deprecated: Since GTK+ 3.2, sidebar images are not shown anymore.

The function takes the following parameters:

  • page of assistant.
  • pixbuf (optional): new side image page.

func (*Assistant) SetPageTitle

func (assistant *Assistant) SetPageTitle(page Widgetter, title string)

SetPageTitle sets a title for page.

The title is displayed in the header area of the assistant when page is the current page.

The function takes the following parameters:

  • page of assistant.
  • title: new title for page.

func (*Assistant) SetPageType

func (assistant *Assistant) SetPageType(page Widgetter, typ AssistantPageType)

SetPageType sets the page type for page.

The page type determines the page behavior in the assistant.

The function takes the following parameters:

  • page of assistant.
  • typ: new type for page.

func (*Assistant) UpdateButtonsState

func (assistant *Assistant) UpdateButtonsState()

UpdateButtonsState forces assistant to recompute the buttons state.

GTK+ automatically takes care of this in most situations, e.g. when the user goes to a different page, or when the visibility or completeness of a page changes.

One situation where it can be necessary to call this function is when changing a value on the current page affects the future page flow of the assistant.

type AssistantClass added in v0.0.5

type AssistantClass struct {
	// contains filtered or unexported fields
}

AssistantClass: instance of this type is always passed by reference.

func (*AssistantClass) ParentClass added in v0.0.5

func (a *AssistantClass) ParentClass() *WindowClass

ParentClass: parent class.

type AssistantOverrides added in v0.0.5

type AssistantOverrides struct {
	Apply  func()
	Cancel func()
	Close  func()
	// The function takes the following parameters:
	//
	Prepare func(page Widgetter)
}

AssistantOverrides contains methods that are overridable.

type AssistantPageFunc

type AssistantPageFunc func(currentPage int) (gint int)

AssistantPageFunc: function used by gtk_assistant_set_forward_page_func() to know which is the next page given a current one. It’s called both for computing the next page when the user presses the “forward” button and for handling the behavior of the “last” button.

type AssistantPageType

type AssistantPageType C.gint

AssistantPageType: enum for determining the page role inside the Assistant. It's used to handle buttons sensitivity and visibility.

Note that an assistant needs to end its page flow with a page of type GTK_ASSISTANT_PAGE_CONFIRM, GTK_ASSISTANT_PAGE_SUMMARY or GTK_ASSISTANT_PAGE_PROGRESS to be correct.

The Cancel button will only be shown if the page isn’t “committed”. See gtk_assistant_commit() for details.

const (
	// AssistantPageContent: page has regular contents. Both the Back and
	// forward buttons will be shown.
	AssistantPageContent AssistantPageType = iota
	// AssistantPageIntro: page contains an introduction to the assistant task.
	// Only the Forward button will be shown if there is a next page.
	AssistantPageIntro
	// AssistantPageConfirm: page lets the user confirm or deny the changes.
	// The Back and Apply buttons will be shown.
	AssistantPageConfirm
	// AssistantPageSummary: page informs the user of the changes done. Only the
	// Close button will be shown.
	AssistantPageSummary
	// AssistantPageProgress: used for tasks that take a long time to complete,
	// blocks the assistant until the page is marked as complete. Only the back
	// button will be shown.
	AssistantPageProgress
	// AssistantPageCustom: used for when other page types are not appropriate.
	// No buttons will be shown, and the application must add its own buttons
	// through gtk_assistant_add_action_widget().
	AssistantPageCustom
)

func (AssistantPageType) String

func (a AssistantPageType) String() string

String returns the name in string for AssistantPageType.

type AttachOptions

type AttachOptions C.guint

AttachOptions denotes the expansion properties that a widget will have when it (or its parent) is resized.

const (
	// Expand: widget should expand to take up any extra space in its container
	// that has been allocated.
	Expand AttachOptions = 0b1
	// Shrink: widget should shrink as and when possible.
	Shrink AttachOptions = 0b10
	// Fill: widget should fill the space allocated to it.
	Fill AttachOptions = 0b100
)

func (AttachOptions) Has

func (a AttachOptions) Has(other AttachOptions) bool

Has returns true if a contains other.

func (AttachOptions) String

func (a AttachOptions) String() string

String returns the names in string for AttachOptions.

type BaselinePosition

type BaselinePosition C.gint

BaselinePosition: whenever a container has some form of natural row it may align children in that row along a common typographical baseline. If the amount of verical space in the row is taller than the total requested height of the baseline-aligned children then it can use a BaselinePosition to select where to put the baseline inside the extra availible space.

const (
	// BaselinePositionTop: align the baseline at the top.
	BaselinePositionTop BaselinePosition = iota
	// BaselinePositionCenter: center the baseline.
	BaselinePositionCenter
	// BaselinePositionBottom: align the baseline at the bottom.
	BaselinePositionBottom
)

func (BaselinePosition) String

func (b BaselinePosition) String() string

String returns the name in string for BaselinePosition.

type Bin

type Bin struct {
	Container
	// contains filtered or unexported fields
}

Bin widget is a container with just one child. It is not very useful itself, but it is useful for deriving subclasses, since it provides common code needed for handling a single child widget.

Many GTK+ widgets are subclasses of Bin, including Window, Button, Frame, HandleBox or ScrolledWindow.

func BaseBin

func BaseBin(obj Binner) *Bin

BaseBin returns the underlying base object.

func (*Bin) Child

func (bin *Bin) Child() Widgetter

Child gets the child of the Bin, or NULL if the bin contains no child widget. The returned widget does not have a reference added, so you do not need to unref it.

The function returns the following values:

  • widget (optional): child of bin, or NULL if it does not have a child.

type BinClass added in v0.0.5

type BinClass struct {
	// contains filtered or unexported fields
}

BinClass: instance of this type is always passed by reference.

func (*BinClass) ParentClass added in v0.0.5

func (b *BinClass) ParentClass() *ContainerClass

ParentClass: parent class.

type BinOverrides added in v0.0.5

type BinOverrides struct {
}

BinOverrides contains methods that are overridable.

type BindingArg

type BindingArg struct {
	// contains filtered or unexported fields
}

BindingArg holds the data associated with an argument for a key binding signal emission as stored in BindingSignal.

An instance of this type is always passed by reference.

func (*BindingArg) ArgType

func (b *BindingArg) ArgType() coreglib.Type

ArgType: implementation detail.

type BindingEntry

type BindingEntry struct {
	// contains filtered or unexported fields
}

BindingEntry: each key binding element of a binding sets binding list is represented by a GtkBindingEntry.

An instance of this type is always passed by reference.

func (*BindingEntry) BindingSet

func (b *BindingEntry) BindingSet() *BindingSet

BindingSet: binding set this entry belongs to.

func (*BindingEntry) HashNext

func (b *BindingEntry) HashNext() *BindingEntry

HashNext: implementation detail.

func (*BindingEntry) Keyval

func (b *BindingEntry) Keyval() uint

Keyval: key value to match.

func (*BindingEntry) Modifiers

func (b *BindingEntry) Modifiers() gdk.ModifierType

Modifiers: key modifiers to match.

func (*BindingEntry) SetKeyval

func (b *BindingEntry) SetKeyval(keyval uint)

Keyval: key value to match.

func (*BindingEntry) SetNext

func (b *BindingEntry) SetNext() *BindingEntry

SetNext: linked list of entries maintained by binding set.

func (*BindingEntry) Signals

func (b *BindingEntry) Signals() *BindingSignal

Signals: action signals of this entry.

type BindingSet

type BindingSet struct {
	// contains filtered or unexported fields
}

BindingSet: binding set maintains a list of activatable key bindings. A single binding set can match multiple types of widgets. Similar to style contexts, can be matched by any information contained in a widgets WidgetPath. When a binding within a set is matched upon activation, an action signal is emitted on the target widget to carry out the actual activation.

An instance of this type is always passed by reference.

func BindingSetFind

func BindingSetFind(setName string) *BindingSet

BindingSetFind: find a binding set by its globally unique name.

The set_name can either be a name used for gtk_binding_set_new() or the type name of a class used in gtk_binding_set_by_class().

The function takes the following parameters:

  • setName: unique binding set name.

The function returns the following values:

  • bindingSet (optional): NULL or the specified binding set.

func (*BindingSet) Activate

func (bindingSet *BindingSet) Activate(keyval uint, modifiers gdk.ModifierType, object *coreglib.Object) bool

Activate: find a key binding matching keyval and modifiers within binding_set and activate the binding on object.

The function takes the following parameters:

  • keyval: key value of the binding.
  • modifiers: key modifier of the binding.
  • object to activate when binding found.

The function returns the following values:

  • ok: TRUE if a binding was found and activated.

func (*BindingSet) AddPath deprecated

func (bindingSet *BindingSet) AddPath(pathType PathType, pathPattern string, priority PathPriorityType)

AddPath: this function was used internally by the GtkRC parsing mechanism to assign match patterns to BindingSet structures.

In GTK+ 3, these match patterns are unused.

Deprecated: since version 3.0.

The function takes the following parameters:

  • pathType: path type the pattern applies to.
  • pathPattern: actual match pattern.
  • priority: binding priority.

func (*BindingSet) Current

func (b *BindingSet) Current() *BindingEntry

Current: implementation detail.

func (*BindingSet) Entries

func (b *BindingSet) Entries() *BindingEntry

Entries: key binding entries in this binding set.

func (*BindingSet) Priority

func (b *BindingSet) Priority() int

Priority: unused.

func (*BindingSet) SetName

func (b *BindingSet) SetName() string

SetName: unique name of this binding set.

func (*BindingSet) SetPriority

func (b *BindingSet) SetPriority(priority int)

Priority: unused.

type BindingSignal

type BindingSignal struct {
	// contains filtered or unexported fields
}

BindingSignal stores the necessary information to activate a widget in response to a key press via a signal emission.

An instance of this type is always passed by reference.

type Binner

type Binner interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

Binner describes types inherited from class Bin.

To get the original type, the caller must assert this to an interface or another type.

type BooleanCellAccessible

type BooleanCellAccessible struct {
	RendererCellAccessible
	// contains filtered or unexported fields
}

type BooleanCellAccessibleClass added in v0.0.5

type BooleanCellAccessibleClass struct {
	// contains filtered or unexported fields
}

BooleanCellAccessibleClass: instance of this type is always passed by reference.

func (*BooleanCellAccessibleClass) ParentClass added in v0.0.5

type BooleanCellAccessibleOverrides added in v0.0.5

type BooleanCellAccessibleOverrides struct {
}

BooleanCellAccessibleOverrides contains methods that are overridable.

type Border

type Border struct {
	// contains filtered or unexported fields
}

Border: struct that specifies a border around a rectangular area that can be of different width on each side.

An instance of this type is always passed by reference.

func NewBorder

func NewBorder() *Border

NewBorder constructs a struct Border.

func (*Border) Bottom

func (b *Border) Bottom() int16

Bottom: width of the bottom border.

func (*Border) Copy

func (border_ *Border) Copy() *Border

Copy copies a Border-struct.

The function returns the following values:

  • border: copy of border_.

func (*Border) Left

func (b *Border) Left() int16

Left: width of the left border.

func (*Border) Right

func (b *Border) Right() int16

Right: width of the right border.

func (*Border) SetBottom

func (b *Border) SetBottom(bottom int16)

Bottom: width of the bottom border.

func (*Border) SetLeft

func (b *Border) SetLeft(left int16)

Left: width of the left border.

func (*Border) SetRight

func (b *Border) SetRight(right int16)

Right: width of the right border.

func (*Border) SetTop

func (b *Border) SetTop(top int16)

Top: width of the top border.

func (*Border) Top

func (b *Border) Top() int16

Top: width of the top border.

type BorderStyle

type BorderStyle C.gint

BorderStyle describes how the border of a UI element should be rendered.

const (
	// BorderStyleNone: no visible border.
	BorderStyleNone BorderStyle = iota
	// BorderStyleSolid: single line segment.
	BorderStyleSolid
	// BorderStyleInset looks as if the content is sunken into the canvas.
	BorderStyleInset
	// BorderStyleOutset looks as if the content is coming out of the canvas.
	BorderStyleOutset
	// BorderStyleHidden: same as GTK_BORDER_STYLE_NONE.
	BorderStyleHidden
	// BorderStyleDotted series of round dots.
	BorderStyleDotted
	// BorderStyleDashed series of square-ended dashes.
	BorderStyleDashed
	// BorderStyleDouble: two parallel lines with some space between them.
	BorderStyleDouble
	// BorderStyleGroove looks as if it were carved in the canvas.
	BorderStyleGroove
	// BorderStyleRidge looks as if it were coming out of the canvas.
	BorderStyleRidge
)

func (BorderStyle) String

func (b BorderStyle) String() string

String returns the name in string for BorderStyle.

type Box

type Box struct {
	Container

	*coreglib.Object
	Orientable
	// contains filtered or unexported fields
}

Box widget arranges child widgets into a single row or column, depending upon the value of its Orientable:orientation property. Within the other dimension, all children are allocated the same size. Of course, the Widget:halign and Widget:valign properties can be used on the children to influence their allocation.

GtkBox uses a notion of packing. Packing refers to adding widgets with reference to a particular position in a Container. For a GtkBox, there are two reference positions: the start and the end of the box. For a vertical Box, the start is defined as the top of the box and the end is defined as the bottom. For a horizontal Box the start is defined as the left side and the end is defined as the right side.

Use repeated calls to gtk_box_pack_start() to pack widgets into a GtkBox from start to end. Use gtk_box_pack_end() to add widgets from end to start. You may intersperse these calls and add widgets from both ends of the same GtkBox.

Because GtkBox is a Container, you may also use gtk_container_add() to insert widgets into the box, and they will be packed with the default values for expand and fill child properties. Use gtk_container_remove() to remove widgets from the GtkBox.

Use gtk_box_set_homogeneous() to specify whether or not all children of the GtkBox are forced to get the same amount of space.

Use gtk_box_set_spacing() to determine how much space will be minimally placed between all children in the GtkBox. Note that spacing is added between the children, while padding added by gtk_box_pack_start() or gtk_box_pack_end() is added on either side of the widget it belongs to.

Use gtk_box_reorder_child() to move a GtkBox child to a different place in the box.

Use gtk_box_set_child_packing() to reset the expand, fill and padding child properties. Use gtk_box_query_child_packing() to query these fields.

CSS nodes

GtkBox uses a single CSS node with name box.

In horizontal orientation, the nodes of the children are always arranged from left to right. So :first-child will always select the leftmost child, regardless of text direction.

func NewBox

func NewBox(orientation Orientation, spacing int) *Box

NewBox creates a new Box.

The function takes the following parameters:

  • orientation box’s orientation.
  • spacing: number of pixels to place by default between children.

The function returns the following values:

  • box: new Box.

func (*Box) BaselinePosition

func (box *Box) BaselinePosition() BaselinePosition

BaselinePosition gets the value set by gtk_box_set_baseline_position().

The function returns the following values:

  • baselinePosition: baseline position.

func (*Box) CenterWidget

func (box *Box) CenterWidget() Widgetter

CenterWidget retrieves the center widget of the box.

The function returns the following values:

  • widget (optional): center widget or NULL in case no center widget is set.

func (*Box) Homogeneous

func (box *Box) Homogeneous() bool

Homogeneous returns whether the box is homogeneous (all children are the same size). See gtk_box_set_homogeneous().

The function returns the following values:

  • ok: TRUE if the box is homogeneous.

func (*Box) PackEnd

func (box *Box) PackEnd(child Widgetter, expand, fill bool, padding uint)

PackEnd adds child to box, packed with reference to the end of box. The child is packed after (away from end of) any other child packed with reference to the end of box.

The function takes the following parameters:

  • child to be added to box.
  • expand: TRUE if the new child is to be given extra space allocated to box. The extra space will be divided evenly between all children of box that use this option.
  • fill: TRUE if space given to child by the expand option is actually allocated to child, rather than just padding it. This parameter has no effect if expand is set to FALSE. A child is always allocated the full height of a horizontal Box and the full width of a vertical Box. This option affects the other dimension.
  • padding: extra space in pixels to put between this child and its neighbors, over and above the global amount specified by Box:spacing property. If child is a widget at one of the reference ends of box, then padding pixels are also put between child and the reference edge of box.

func (*Box) PackStart

func (box *Box) PackStart(child Widgetter, expand, fill bool, padding uint)

PackStart adds child to box, packed with reference to the start of box. The child is packed after any other child packed with reference to the start of box.

The function takes the following parameters:

  • child to be added to box.
  • expand: TRUE if the new child is to be given extra space allocated to box. The extra space will be divided evenly between all children that use this option.
  • fill: TRUE if space given to child by the expand option is actually allocated to child, rather than just padding it. This parameter has no effect if expand is set to FALSE. A child is always allocated the full height of a horizontal Box and the full width of a vertical Box. This option affects the other dimension.
  • padding: extra space in pixels to put between this child and its neighbors, over and above the global amount specified by Box:spacing property. If child is a widget at one of the reference ends of box, then padding pixels are also put between child and the reference edge of box.

func (*Box) QueryChildPacking

func (box *Box) QueryChildPacking(child Widgetter) (expand, fill bool, padding uint, packType PackType)

QueryChildPacking obtains information about how child is packed into box.

The function takes the following parameters:

  • child of the child to query.

The function returns the following values:

  • expand: pointer to return location for expand child property.
  • fill: pointer to return location for fill child property.
  • padding: pointer to return location for padding child property.
  • packType: pointer to return location for pack-type child property.

func (*Box) ReorderChild

func (box *Box) ReorderChild(child Widgetter, position int)

ReorderChild moves child to a new position in the list of box children. The list contains widgets packed K_PACK_START as well as widgets packed K_PACK_END, in the order that these widgets were added to box.

A widget’s position in the box children list determines where the widget is packed into box. A child widget at some position in the list will be packed just after all other widgets of the same packing type that appear earlier in the list.

The function takes the following parameters:

  • child to move.
  • position: new position for child in the list of children of box, starting from 0. If negative, indicates the end of the list.

func (*Box) SetBaselinePosition

func (box *Box) SetBaselinePosition(position BaselinePosition)

SetBaselinePosition sets the baseline position of a box. This affects only horizontal boxes with at least one baseline aligned child. If there is more vertical space available than requested, and the baseline is not allocated by the parent then position is used to allocate the baseline wrt the extra space available.

The function takes the following parameters:

  • position: BaselinePosition.

func (*Box) SetCenterWidget

func (box *Box) SetCenterWidget(widget Widgetter)

SetCenterWidget sets a center widget; that is a child widget that will be centered with respect to the full width of the box, even if the children at either side take up different amounts of space.

The function takes the following parameters:

  • widget (optional) to center.

func (*Box) SetChildPacking

func (box *Box) SetChildPacking(child Widgetter, expand, fill bool, padding uint, packType PackType)

SetChildPacking sets the way child is packed into box.

The function takes the following parameters:

  • child of the child to set.
  • expand: new value of the expand child property.
  • fill: new value of the fill child property.
  • padding: new value of the padding child property.
  • packType: new value of the pack-type child property.

func (*Box) SetHomogeneous

func (box *Box) SetHomogeneous(homogeneous bool)

SetHomogeneous sets the Box:homogeneous property of box, controlling whether or not all children of box are given equal space in the box.

The function takes the following parameters:

  • homogeneous: boolean value, TRUE to create equal allotments, FALSE for variable allotments.

func (*Box) SetSpacing

func (box *Box) SetSpacing(spacing int)

SetSpacing sets the Box:spacing property of box, which is the number of pixels to place between children of box.

The function takes the following parameters:

  • spacing: number of pixels to put between children.

func (*Box) Spacing

func (box *Box) Spacing() int

Spacing gets the value set by gtk_box_set_spacing().

The function returns the following values:

  • gint: spacing between children.

type BoxClass added in v0.0.5

type BoxClass struct {
	// contains filtered or unexported fields
}

BoxClass: instance of this type is always passed by reference.

func (*BoxClass) ParentClass added in v0.0.5

func (b *BoxClass) ParentClass() *ContainerClass

ParentClass: parent class.

type BoxOverrides added in v0.0.5

type BoxOverrides struct {
}

BoxOverrides contains methods that are overridable.

type Buildable

type Buildable struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

Buildable allows objects to extend and customize their deserialization from [GtkBuilder UI descriptions][BUILDER-UI]. The interface includes methods for setting names and properties of objects, parsing custom tags and constructing child objects.

The GtkBuildable interface is implemented by all widgets and many of the non-widget objects that are provided by GTK+. The main user of this interface is Builder. There should be very little need for applications to call any of these functions directly.

An object only needs to implement this interface if it needs to extend the Builder format or run any extra routines at deserialization time.

Buildable wraps an interface. This means the user can get the underlying type by calling Cast().

func (*Buildable) AddChild

func (buildable *Buildable) AddChild(builder *Builder, child *coreglib.Object, typ string)

AddChild adds a child to buildable. type is an optional string describing how the child should be added.

The function takes the following parameters:

  • builder: Builder.
  • child to add.
  • typ (optional): kind of child or NULL.

func (*Buildable) ConstructChild

func (buildable *Buildable) ConstructChild(builder *Builder, name string) *coreglib.Object

ConstructChild constructs a child of buildable with the name name.

Builder calls this function if a “constructor” has been specified in the UI definition.

The function takes the following parameters:

  • builder used to construct this object.
  • name of child to construct.

The function returns the following values:

  • object: constructed child.

func (*Buildable) CustomFinished

func (buildable *Buildable) CustomFinished(builder *Builder, child *coreglib.Object, tagname string, data unsafe.Pointer)

CustomFinished: this is similar to gtk_buildable_parser_finished() but is called once for each custom tag handled by the buildable.

The function takes the following parameters:

  • builder: Builder.
  • child (optional) object or NULL for non-child tags.
  • tagname: name of the tag.
  • data (optional): user data created in custom_tag_start.

func (*Buildable) CustomTagEnd

func (buildable *Buildable) CustomTagEnd(builder *Builder, child *coreglib.Object, tagname string, data *unsafe.Pointer)

CustomTagEnd: this is called at the end of each custom element handled by the buildable.

The function takes the following parameters:

  • builder used to construct this object.
  • child (optional) object or NULL for non-child tags.
  • tagname: name of tag.
  • data (optional): user data that will be passed in to parser functions.

func (*Buildable) CustomTagStart

func (buildable *Buildable) CustomTagStart(builder *Builder, child *coreglib.Object, tagname string) (*glib.MarkupParser, unsafe.Pointer, bool)

CustomTagStart: this is called for each unknown element under <child>.

The function takes the following parameters:

  • builder used to construct this object.
  • child (optional) object or NULL for non-child tags.
  • tagname: name of tag.

The function returns the following values:

  • parser to fill in.
  • data (optional): return location for user data that will be passed in to parser functions.
  • ok: TRUE if a object has a custom implementation, FALSE if it doesn't.

func (*Buildable) InternalChild

func (buildable *Buildable) InternalChild(builder *Builder, childname string) *coreglib.Object

InternalChild: get the internal child called childname of the buildable object.

The function takes the following parameters:

  • builder: Builder.
  • childname: name of child.

The function returns the following values:

  • object: internal child of the buildable object.

func (*Buildable) Name

func (buildable *Buildable) Name() string

Name gets the name of the buildable object.

Builder sets the name based on the [GtkBuilder UI definition][BUILDER-UI] used to construct the buildable.

The function returns the following values:

  • utf8: name set with gtk_buildable_set_name().

func (*Buildable) ParserFinished

func (buildable *Buildable) ParserFinished(builder *Builder)

ParserFinished: called when the builder finishes the parsing of a [GtkBuilder UI definition][BUILDER-UI]. Note that this will be called once for each time gtk_builder_add_from_file() or gtk_builder_add_from_string() is called on a builder.

The function takes the following parameters:

  • builder: Builder.

func (*Buildable) SetBuildableProperty

func (buildable *Buildable) SetBuildableProperty(builder *Builder, name string, value *coreglib.Value)

SetBuildableProperty sets the property name name to value on the buildable object.

The function takes the following parameters:

  • builder: Builder.
  • name of property.
  • value of property.

func (*Buildable) SetName

func (buildable *Buildable) SetName(name string)

SetName sets the name of the buildable object.

The function takes the following parameters:

  • name to set.

type BuildableIface added in v0.0.5

type BuildableIface struct {
	// contains filtered or unexported fields
}

BuildableIface interface contains method that are necessary to allow Builder to construct an object from a Builder UI definition.

An instance of this type is always passed by reference.

type Buildabler

type Buildabler interface {
	coreglib.Objector

	// AddChild adds a child to buildable.
	AddChild(builder *Builder, child *coreglib.Object, typ string)
	// ConstructChild constructs a child of buildable with the name name.
	ConstructChild(builder *Builder, name string) *coreglib.Object
	// CustomFinished: this is similar to gtk_buildable_parser_finished() but is
	// called once for each custom tag handled by the buildable.
	CustomFinished(builder *Builder, child *coreglib.Object, tagname string, data unsafe.Pointer)
	// CustomTagEnd: this is called at the end of each custom element handled by
	// the buildable.
	CustomTagEnd(builder *Builder, child *coreglib.Object, tagname string, data *unsafe.Pointer)
	// CustomTagStart: this is called for each unknown element under <child>.
	CustomTagStart(builder *Builder, child *coreglib.Object, tagname string) (*glib.MarkupParser, unsafe.Pointer, bool)
	// InternalChild: get the internal child called childname of the buildable
	// object.
	InternalChild(builder *Builder, childname string) *coreglib.Object
	// Name gets the name of the buildable object.
	Name() string
	// ParserFinished: called when the builder finishes the parsing of a
	// [GtkBuilder UI definition][BUILDER-UI].
	ParserFinished(builder *Builder)
	// SetBuildableProperty sets the property name name to value on the
	// buildable object.
	SetBuildableProperty(builder *Builder, name string, value *coreglib.Value)
	// SetName sets the name of the buildable object.
	SetName(name string)
}

Buildabler describes Buildable's interface methods.

type Builder

type Builder struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

Builder is an auxiliary object that reads textual descriptions of a user interface and instantiates the described objects. To create a GtkBuilder from a user interface description, call gtk_builder_new_from_file(), gtk_builder_new_from_resource() or gtk_builder_new_from_string().

In the (unusual) case that you want to add user interface descriptions from multiple sources to the same GtkBuilder you can call gtk_builder_new() to get an empty builder and populate it by (multiple) calls to gtk_builder_add_from_file(), gtk_builder_add_from_resource() or gtk_builder_add_from_string().

A GtkBuilder holds a reference to all objects that it has constructed and drops these references when it is finalized. This finalization can cause the destruction of non-widget objects or widgets which are not contained in a toplevel window. For toplevel windows constructed by a builder, it is the responsibility of the user to call gtk_widget_destroy() to get rid of them and all the widgets they contain.

The functions gtk_builder_get_object() and gtk_builder_get_objects() can be used to access the widgets in the interface by the names assigned to them inside the UI description. Toplevel windows returned by these functions will stay around until the user explicitly destroys them with gtk_widget_destroy(). Other widgets will either be part of a larger hierarchy constructed by the builder (in which case you should not have to worry about their lifecycle), or without a parent, in which case they have to be added to some container to make use of them. Non-widget objects need to be reffed with g_object_ref() to keep them beyond the lifespan of the builder.

The function gtk_builder_connect_signals() and variants thereof can be used to connect handlers to the named signals in the description.

GtkBuilder UI Definitions

GtkBuilder parses textual descriptions of user interfaces which are specified in an XML format which can be roughly described by the RELAX NG schema below. We refer to these descriptions as “GtkBuilder UI definitions” or just “UI definitions” if the context is clear. Do not confuse GtkBuilder UI Definitions with [GtkUIManager UI Definitions][XML-UI], which are more limited in scope. It is common to use .ui as the filename extension for files containing GtkBuilder UI definitions.

RELAX NG Compact Syntax (https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/gtkbuilder.rnc)

The toplevel element is <interface>. It optionally takes a “domain” attribute, which will make the builder look for translated strings using dgettext() in the domain specified. This can also be done by calling gtk_builder_set_translation_domain() on the builder. Objects are described by <object> elements, which can contain <property> elements to set properties, <signal> elements which connect signals to handlers, and <child> elements, which describe child objects (most often widgets inside a container, but also e.g. actions in an action group, or columns in a tree model). A <child> element contains an <object> element which describes the child object. The target toolkit version(s) are described by <requires> elements, the “lib” attribute specifies the widget library in question (currently the only supported value is “gtk+”) and the “version” attribute specifies the target version in the form “<major>.<minor>”. The builder will error out if the version requirements are not met.

Typically, the specific kind of object represented by an <object> element is specified by the “class” attribute. If the type has not been loaded yet, GTK+ tries to find the get_type() function from the class name by applying heuristics. This works in most cases, but if necessary, it is possible to specify the name of the get_type() function explictly with the "type-func" attribute. As a special case, GtkBuilder allows to use an object that has been constructed by a UIManager in another part of the UI definition by specifying the id of the UIManager in the “constructor” attribute and the name of the object in the “id” attribute.

Objects may be given a name with the “id” attribute, which allows the application to retrieve them from the builder with gtk_builder_get_object(). An id is also necessary to use the object as property value in other parts of the UI definition. GTK+ reserves ids starting and ending with ___ (3 underscores) for its own purposes.

Setting properties of objects is pretty straightforward with the <property> element: the “name” attribute specifies the name of the property, and the content of the element specifies the value. If the “translatable” attribute is set to a true value, GTK+ uses gettext() (or dgettext() if the builder has a translation domain set) to find a translation for the value. This happens before the value is parsed, so it can be used for properties of any type, but it is probably most useful for string properties. It is also possible to specify a context to disambiguate short strings, and comments which may help the translators.

GtkBuilder can parse textual representations for the most common property types: characters, strings, integers, floating-point numbers, booleans (strings like “TRUE”, “t”, “yes”, “y”, “1” are interpreted as TRUE, strings like “FALSE”, “f”, “no”, “n”, “0” are interpreted as FALSE), enumerations (can be specified by their name, nick or integer value), flags (can be specified by their name, nick, integer value, optionally combined with “|”, e.g. “GTK_VISIBLE|GTK_REALIZED”) and colors (in a format understood by gdk_rgba_parse()).

GVariants can be specified in the format understood by g_variant_parse(), and pixbufs can be specified as a filename of an image file to load.

Objects can be referred to by their name and by default refer to objects declared in the local xml fragment and objects exposed via gtk_builder_expose_object(). In general, GtkBuilder allows forward references to objects — declared in the local xml; an object doesn’t have to be constructed before it can be referred to. The exception to this rule is that an object has to be constructed before it can be used as the value of a construct-only property.

It is also possible to bind a property value to another object's property value using the attributes "bind-source" to specify the source object of the binding, "bind-property" to specify the source property and optionally "bind-flags" to specify the binding flags. Internally builder implements this using GBinding objects. For more information see g_object_bind_property()

Signal handlers are set up with the <signal> element. The “name” attribute specifies the name of the signal, and the “handler” attribute specifies the function to connect to the signal. By default, GTK+ tries to find the handler using g_module_symbol(), but this can be changed by passing a custom BuilderConnectFunc to gtk_builder_connect_signals_full(). The remaining attributes, “after”, “swapped” and “object”, have the same meaning as the corresponding parameters of the g_signal_connect_object() or g_signal_connect_data() functions. A “last_modification_time” attribute is also allowed, but it does not have a meaning to the builder.

Sometimes it is necessary to refer to widgets which have implicitly been constructed by GTK+ as part of a composite widget, to set properties on them or to add further children (e.g. the vbox of a Dialog). This can be achieved by setting the “internal-child” property of the <child> element to a true value. Note that GtkBuilder still requires an <object> element for the internal child, even if it has already been constructed.

A number of widgets have different places where a child can be added (e.g. tabs vs. page content in notebooks). This can be reflected in a UI definition by specifying the “type” attribute on a <child> The possible values for the “type” attribute are described in the sections describing the widget-specific portions of UI definitions.

A GtkBuilder UI Definition

<interface>
  <object class="GtkDialog" id="dialog1">
    <child internal-child="vbox">
      <object class="GtkBox" id="vbox1">
        <property name="border-width">10</property>
        <child internal-child="action_area">
          <object class="GtkButtonBox" id="hbuttonbox1">
            <property name="border-width">20</property>
            <child>
              <object class="GtkButton" id="ok_button">
                <property name="label">gtk-ok</property>
                <property name="use-stock">TRUE</property>
                <signal name="clicked" handler="ok_button_clicked"/>
              </object>
            </child>
          </object>
        </child>
      </object>
    </child>
  </object>
</interface>

Beyond this general structure, several object classes define their own XML DTD fragments for filling in the ANY placeholders in the DTD above. Note that a custom element in a <child> element gets parsed by the custom tag handler of the parent object, while a custom element in an <object> element gets parsed by the custom tag handler of the object.

These XML fragments are explained in the documentation of the respective objects.

Additionally, since 3.10 a special <template> tag has been added to the format allowing one to define a widget class’s components. See the [GtkWidget documentation][composite-templates] for details.

func NewBuilder

func NewBuilder() *Builder

NewBuilder creates a new empty builder object.

This function is only useful if you intend to make multiple calls to gtk_builder_add_from_file(), gtk_builder_add_from_resource() or gtk_builder_add_from_string() in order to merge multiple UI descriptions into a single builder.

Most users will probably want to use gtk_builder_new_from_file(), gtk_builder_new_from_resource() or gtk_builder_new_from_string().

The function returns the following values:

  • builder: new (empty) Builder object.

func NewBuilderFromFile

func NewBuilderFromFile(filename string) *Builder

NewBuilderFromFile builds the [GtkBuilder UI definition][BUILDER-UI] in the file filename.

If there is an error opening the file or parsing the description then the program will be aborted. You should only ever attempt to parse user interface descriptions that are shipped as part of your program.

The function takes the following parameters:

  • filename of user interface description file.

The function returns the following values:

  • builder containing the described interface.

func NewBuilderFromResource

func NewBuilderFromResource(resourcePath string) *Builder

NewBuilderFromResource builds the [GtkBuilder UI definition][BUILDER-UI] at resource_path.

If there is an error locating the resource or parsing the description, then the program will be aborted.

The function takes the following parameters:

  • resourcePath resource path.

The function returns the following values:

  • builder containing the described interface.

func NewBuilderFromString

func NewBuilderFromString(str string, length int) *Builder

NewBuilderFromString builds the user interface described by string (in the [GtkBuilder UI definition][BUILDER-UI] format).

If string is NULL-terminated, then length should be -1. If length is not -1, then it is the length of string.

If there is an error parsing string then the program will be aborted. You should not attempt to parse user interface description from untrusted sources.

The function takes the following parameters:

  • str: user interface (XML) description.
  • length of string, or -1.

The function returns the following values:

  • builder containing the interface described by string.

func (*Builder) AddFromFile

func (builder *Builder) AddFromFile(filename string) (uint, error)

AddFromFile parses a file containing a [GtkBuilder UI definition][BUILDER-UI] and merges it with the current contents of builder.

Most users will probably want to use gtk_builder_new_from_file().

If an error occurs, 0 will be returned and error will be assigned a #GError from the K_BUILDER_ERROR, MARKUP_ERROR or FILE_ERROR domain.

It’s not really reasonable to attempt to handle failures of this call. You should not use this function with untrusted files (ie: files that are not part of your application). Broken Builder files can easily crash your program, and it’s possible that memory was leaked leading up to the reported failure. The only reasonable thing to do when an error is detected is to call g_error().

The function takes the following parameters:

  • filename: name of the file to parse.

The function returns the following values:

  • guint: positive value on success, 0 if an error occurred.

func (*Builder) AddFromResource

func (builder *Builder) AddFromResource(resourcePath string) (uint, error)

AddFromResource parses a resource file containing a [GtkBuilder UI definition][BUILDER-UI] and merges it with the current contents of builder.

Most users will probably want to use gtk_builder_new_from_resource().

If an error occurs, 0 will be returned and error will be assigned a #GError from the K_BUILDER_ERROR, MARKUP_ERROR or RESOURCE_ERROR domain.

It’s not really reasonable to attempt to handle failures of this call. The only reasonable thing to do when an error is detected is to call g_error().

The function takes the following parameters:

  • resourcePath: path of the resource file to parse.

The function returns the following values:

  • guint: positive value on success, 0 if an error occurred.

func (*Builder) AddFromString

func (builder *Builder) AddFromString(buffer string, length uint) (uint, error)

AddFromString parses a string containing a [GtkBuilder UI definition][BUILDER-UI] and merges it with the current contents of builder.

Most users will probably want to use gtk_builder_new_from_string().

Upon errors 0 will be returned and error will be assigned a #GError from the K_BUILDER_ERROR, MARKUP_ERROR or VARIANT_PARSE_ERROR domain.

It’s not really reasonable to attempt to handle failures of this call. The only reasonable thing to do when an error is detected is to call g_error().

The function takes the following parameters:

  • buffer: string to parse.
  • length of buffer (may be -1 if buffer is nul-terminated).

The function returns the following values:

  • guint: positive value on success, 0 if an error occurred.

func (*Builder) AddObjectsFromFile

func (builder *Builder) AddObjectsFromFile(filename string, objectIds []string) (uint, error)

AddObjectsFromFile parses a file containing a [GtkBuilder UI definition][BUILDER-UI] building only the requested objects and merges them with the current contents of builder.

Upon errors 0 will be returned and error will be assigned a #GError from the K_BUILDER_ERROR, MARKUP_ERROR or FILE_ERROR domain.

If you are adding an object that depends on an object that is not its child (for instance a TreeView that depends on its TreeModel), you have to explicitly list all of them in object_ids.

The function takes the following parameters:

  • filename: name of the file to parse.
  • objectIds: nul-terminated array of objects to build.

The function returns the following values:

  • guint: positive value on success, 0 if an error occurred.

func (*Builder) AddObjectsFromResource

func (builder *Builder) AddObjectsFromResource(resourcePath string, objectIds []string) (uint, error)

AddObjectsFromResource parses a resource file containing a [GtkBuilder UI definition][BUILDER-UI] building only the requested objects and merges them with the current contents of builder.

Upon errors 0 will be returned and error will be assigned a #GError from the K_BUILDER_ERROR, MARKUP_ERROR or RESOURCE_ERROR domain.

If you are adding an object that depends on an object that is not its child (for instance a TreeView that depends on its TreeModel), you have to explicitly list all of them in object_ids.

The function takes the following parameters:

  • resourcePath: path of the resource file to parse.
  • objectIds: nul-terminated array of objects to build.

The function returns the following values:

  • guint: positive value on success, 0 if an error occurred.

func (*Builder) AddObjectsFromString

func (builder *Builder) AddObjectsFromString(buffer string, length uint, objectIds []string) (uint, error)

AddObjectsFromString parses a string containing a [GtkBuilder UI definition][BUILDER-UI] building only the requested objects and merges them with the current contents of builder.

Upon errors 0 will be returned and error will be assigned a #GError from the K_BUILDER_ERROR or MARKUP_ERROR domain.

If you are adding an object that depends on an object that is not its child (for instance a TreeView that depends on its TreeModel), you have to explicitly list all of them in object_ids.

The function takes the following parameters:

  • buffer: string to parse.
  • length of buffer (may be -1 if buffer is nul-terminated).
  • objectIds: nul-terminated array of objects to build.

The function returns the following values:

  • guint: positive value on success, 0 if an error occurred.

func (*Builder) Application

func (builder *Builder) Application() *Application

Application gets the Application associated with the builder.

The Application is used for creating action proxies as requested from XML that the builder is loading.

By default, the builder uses the default application: the one from g_application_get_default(). If you want to use another application for constructing proxies, use gtk_builder_set_application().

The function returns the following values:

  • application (optional) being used by the builder, or NULL.

func (*Builder) ConnectSignals

func (builder *Builder) ConnectSignals(userData unsafe.Pointer)

ConnectSignals: this method is a simpler variation of gtk_builder_connect_signals_full(). It uses symbols explicitly added to builder with prior calls to gtk_builder_add_callback_symbol(). In the case that symbols are not explicitly added; it uses #GModule’s introspective features (by opening the module NULL) to look at the application’s symbol table. From here it tries to match the signal handler names given in the interface description with symbols in the application and connects the signals. Note that this function can only be called once, subsequent calls will do nothing.

Note that unless gtk_builder_add_callback_symbol() is called for all signal callbacks which are referenced by the loaded XML, this function will require that #GModule be supported on the platform.

If you rely on #GModule support to lookup callbacks in the symbol table, the following details should be noted:

When compiling applications for Windows, you must declare signal callbacks with MODULE_EXPORT, or they will not be put in the symbol table. On Linux and Unices, this is not necessary; applications should instead be compiled with the -Wl,--export-dynamic CFLAGS, and linked against gmodule-export-2.0.

The function takes the following parameters:

  • userData (optional): user data to pass back with all signals.

func (*Builder) ExposeObject

func (builder *Builder) ExposeObject(name string, object *coreglib.Object)

ExposeObject: add object to the builder object pool so it can be referenced just like any other object built by builder.

The function takes the following parameters:

  • name of the object exposed to the builder.
  • object to expose.

func (*Builder) ExtendWithTemplate

func (builder *Builder) ExtendWithTemplate(widget Widgetter, templateType coreglib.Type, buffer string, length uint) (uint, error)

ExtendWithTemplate: main private entry point for building composite container components from template XML.

This is exported purely to let gtk-builder-tool validate templates, applications have no need to call this function.

The function takes the following parameters:

  • widget that is being extended.
  • templateType: type that the template is for.
  • buffer: string to parse.
  • length of buffer (may be -1 if buffer is nul-terminated).

The function returns the following values:

  • guint: positive value on success, 0 if an error occurred.

func (*Builder) GetObject

func (builder *Builder) GetObject(name string) *coreglib.Object

GetObject gets the object named name. Note that this function does not increment the reference count of the returned object.

The function takes the following parameters:

  • name of object to get.

The function returns the following values:

  • object (optional) named name or NULL if it could not be found in the object tree.

func (*Builder) Objects

func (builder *Builder) Objects() []*coreglib.Object

Objects gets all objects that have been constructed by builder. Note that this function does not increment the reference counts of the returned objects.

The function returns the following values:

  • sList: newly-allocated List containing all the objects constructed by the Builder instance. It should be freed by g_slist_free().

func (*Builder) SetApplication

func (builder *Builder) SetApplication(application *Application)

SetApplication sets the application associated with builder.

You only need this function if there is more than one #GApplication in your process. application cannot be NULL.

The function takes the following parameters:

  • application: Application.

func (*Builder) SetTranslationDomain

func (builder *Builder) SetTranslationDomain(domain string)

SetTranslationDomain sets the translation domain of builder. See Builder:translation-domain.

The function takes the following parameters:

  • domain (optional): translation domain or NULL.

func (*Builder) TranslationDomain

func (builder *Builder) TranslationDomain() string

TranslationDomain gets the translation domain of builder.

The function returns the following values:

  • utf8: translation domain. This string is owned by the builder object and must not be modified or freed.

func (*Builder) TypeFromName

func (builder *Builder) TypeFromName(typeName string) coreglib.Type

TypeFromName looks up a type by name, using the virtual function that Builder has for that purpose. This is mainly used when implementing the Buildable interface on a type.

The function takes the following parameters:

  • typeName: type name to lookup.

The function returns the following values:

  • gType found for type_name or TYPE_INVALID if no type was found.

func (*Builder) ValueFromStringType

func (builder *Builder) ValueFromStringType(typ coreglib.Type, str string) (coreglib.Value, error)

ValueFromStringType: like gtk_builder_value_from_string(), this function demarshals a value from a string, but takes a #GType instead of Spec. This function calls g_value_init() on the value argument, so it need not be initialised beforehand.

Upon errors FALSE will be returned and error will be assigned a #GError from the K_BUILDER_ERROR domain.

The function takes the following parameters:

  • typ of the value.
  • str: string representation of the value.

The function returns the following values:

  • value to store the result in.

type BuilderClass added in v0.0.5

type BuilderClass struct {
	// contains filtered or unexported fields
}

BuilderClass: instance of this type is always passed by reference.

type BuilderError

type BuilderError C.gint

BuilderError: error codes that identify various errors that can occur while using Builder.

const (
	// BuilderErrorInvalidTypeFunction: type-func attribute didn’t name a
	// function that returns a #GType.
	BuilderErrorInvalidTypeFunction BuilderError = iota
	// BuilderErrorUnhandledTag: input contained a tag that Builder can’t
	// handle.
	BuilderErrorUnhandledTag
	// BuilderErrorMissingAttribute: attribute that is required by Builder was
	// missing.
	BuilderErrorMissingAttribute
	// BuilderErrorInvalidAttribute found an attribute that it doesn’t
	// understand.
	BuilderErrorInvalidAttribute
	// BuilderErrorInvalidTag found a tag that it doesn’t understand.
	BuilderErrorInvalidTag
	// BuilderErrorMissingPropertyValue: required property value was missing.
	BuilderErrorMissingPropertyValue
	// BuilderErrorInvalidValue couldn’t parse some attribute value.
	BuilderErrorInvalidValue
	// BuilderErrorVersionMismatch: input file requires a newer version of GTK+.
	BuilderErrorVersionMismatch
	// BuilderErrorDuplicateID: object id occurred twice.
	BuilderErrorDuplicateID
	// BuilderErrorObjectTypeRefused: specified object type is of the same
	// type or derived from the type of the composite class being extended with
	// builder XML.
	BuilderErrorObjectTypeRefused
	// BuilderErrorTemplateMismatch: wrong type was specified in a composite
	// class’s template XML.
	BuilderErrorTemplateMismatch
	// BuilderErrorInvalidProperty: specified property is unknown for the object
	// class.
	BuilderErrorInvalidProperty
	// BuilderErrorInvalidSignal: specified signal is unknown for the object
	// class.
	BuilderErrorInvalidSignal
	// BuilderErrorInvalidID: object id is unknown.
	BuilderErrorInvalidID
)

func (BuilderError) String

func (b BuilderError) String() string

String returns the name in string for BuilderError.

type BuilderOverrides added in v0.0.5

type BuilderOverrides struct {
	// TypeFromName looks up a type by name, using the virtual function that
	// Builder has for that purpose. This is mainly used when implementing the
	// Buildable interface on a type.
	//
	// The function takes the following parameters:
	//
	//   - typeName: type name to lookup.
	//
	// The function returns the following values:
	//
	//   - gType found for type_name or TYPE_INVALID if no type was found.
	//
	TypeFromName func(typeName string) coreglib.Type
}

BuilderOverrides contains methods that are overridable.

type Button

type Button struct {
	Bin

	*coreglib.Object
	Actionable
	Activatable
	// contains filtered or unexported fields
}

Button widget is generally used to trigger a callback function that is called when the button is pressed. The various signals and how to use them are outlined below.

The Button widget can hold any valid child widget. That is, it can hold almost any other standard Widget. The most commonly used child is the Label.

CSS nodes

GtkButton has a single CSS node with name button. The node will get the style classes .image-button or .text-button, if the content is just an image or label, respectively. It may also receive the .flat style class.

Other style classes that are commonly used with GtkButton include .suggested-action and .destructive-action. In special cases, buttons can be made round by adding the .circular style class.

Button-like widgets like ToggleButton, MenuButton, VolumeButton, LockButton, ColorButton, FontButton or FileChooserButton use style classes such as .toggle, .popup, .scale, .lock, .color, .font, .file to differentiate themselves from a plain GtkButton.

func NewButton

func NewButton() *Button

NewButton creates a new Button widget. To add a child widget to the button, use gtk_container_add().

The function returns the following values:

  • button: newly created Button widget.

func NewButtonFromIconName

func NewButtonFromIconName(iconName string, size int) *Button

NewButtonFromIconName creates a new button containing an icon from the current icon theme.

If the icon name isn’t known, a “broken image” icon will be displayed instead. If the current icon theme is changed, the icon will be updated appropriately.

This function is a convenience wrapper around gtk_button_new() and gtk_button_set_image().

The function takes the following parameters:

  • iconName (optional): icon name or NULL.
  • size: icon size (IconSize).

The function returns the following values:

  • button: new Button displaying the themed icon.

func NewButtonFromStock deprecated

func NewButtonFromStock(stockId string) *Button

NewButtonFromStock creates a new Button containing the image and text from a [stock item][gtkstock]. Some stock ids have preprocessor macros like K_STOCK_OK and K_STOCK_APPLY.

If stock_id is unknown, then it will be treated as a mnemonic label (as for gtk_button_new_with_mnemonic()).

Deprecated: Stock items are deprecated. Use gtk_button_new_with_label() instead.

The function takes the following parameters:

  • stockId: name of the stock item.

The function returns the following values:

  • button: new Button.

func NewButtonWithLabel

func NewButtonWithLabel(label string) *Button

NewButtonWithLabel creates a Button widget with a Label child containing the given text.

The function takes the following parameters:

  • label: text you want the Label to hold.

The function returns the following values:

  • button: newly created Button widget.

func NewButtonWithMnemonic

func NewButtonWithMnemonic(label string) *Button

NewButtonWithMnemonic creates a new Button containing a label. If characters in label are preceded by an underscore, they are underlined. If you need a literal underscore character in a label, use “__” (two underscores). The first underlined character represents a keyboard accelerator called a mnemonic. Pressing Alt and that key activates the button.

The function takes the following parameters:

  • label: text of the button, with an underscore in front of the mnemonic character.

The function returns the following values:

  • button: new Button.

func (*Button) Alignment deprecated

func (button *Button) Alignment() (xalign, yalign float32)

Alignment gets the alignment of the child in the button.

Deprecated: Access the child widget directly if you need to control its alignment.

The function returns the following values:

  • xalign: return location for horizontal alignment.
  • yalign: return location for vertical alignment.

func (*Button) AlwaysShowImage

func (button *Button) AlwaysShowImage() bool

AlwaysShowImage returns whether the button will ignore the Settings:gtk-button-images setting and always show the image, if available.

The function returns the following values:

  • ok: TRUE if the button will always show the image.

func (*Button) Clicked

func (button *Button) Clicked()

Clicked emits a Button::clicked signal to the given Button.

func (*Button) ConnectActivate

func (button *Button) ConnectActivate(f func()) coreglib.SignalHandle

ConnectActivate signal on GtkButton is an action signal and emitting it causes the button to animate press then release. Applications should never connect to this signal, but use the Button::clicked signal.

func (*Button) ConnectClicked

func (button *Button) ConnectClicked(f func()) coreglib.SignalHandle

ConnectClicked is emitted when the button has been activated (pressed and released).

func (*Button) ConnectEnter

func (button *Button) ConnectEnter(f func()) coreglib.SignalHandle

ConnectEnter is emitted when the pointer enters the button.

func (*Button) ConnectLeave

func (button *Button) ConnectLeave(f func()) coreglib.SignalHandle

ConnectLeave is emitted when the pointer leaves the button.

func (*Button) ConnectPressed

func (button *Button) ConnectPressed(f func()) coreglib.SignalHandle

ConnectPressed is emitted when the button is pressed.

func (*Button) ConnectReleased

func (button *Button) ConnectReleased(f func()) coreglib.SignalHandle

ConnectReleased is emitted when the button is released.

func (*Button) Enter deprecated

func (button *Button) Enter()

Enter emits a Button::enter signal to the given Button.

Deprecated: Use the Widget::enter-notify-event signal.

func (*Button) EventWindow

func (button *Button) EventWindow() gdk.Windower

EventWindow returns the button’s event window if it is realized, NULL otherwise. This function should be rarely needed.

The function returns the following values:

  • window button’s event window.

func (*Button) FocusOnClick deprecated

func (button *Button) FocusOnClick() bool

FocusOnClick returns whether the button grabs focus when it is clicked with the mouse. See gtk_button_set_focus_on_click().

Deprecated: Use gtk_widget_get_focus_on_click() instead.

The function returns the following values:

  • ok: TRUE if the button grabs focus when it is clicked with the mouse.

func (*Button) Image

func (button *Button) Image() Widgetter

Image gets the widget that is currenty set as the image of button. This may have been explicitly set by gtk_button_set_image() or constructed by gtk_button_new_from_stock().

The function returns the following values:

  • widget (optional) or NULL in case there is no image.

func (*Button) ImagePosition

func (button *Button) ImagePosition() PositionType

ImagePosition gets the position of the image relative to the text inside the button.

The function returns the following values:

  • positionType: position.

func (*Button) Label

func (button *Button) Label() string

Label fetches the text from the label of the button, as set by gtk_button_set_label(). If the label text has not been set the return value will be NULL. This will be the case if you create an empty button with gtk_button_new() to use as a container.

The function returns the following values:

  • utf8: text of the label widget. This string is owned by the widget and must not be modified or freed.

func (*Button) Leave deprecated

func (button *Button) Leave()

Leave emits a Button::leave signal to the given Button.

Deprecated: Use the Widget::leave-notify-event signal.

func (*Button) Pressed deprecated

func (button *Button) Pressed()

Pressed emits a Button::pressed signal to the given Button.

Deprecated: Use the Widget::button-press-event signal.

func (*Button) Released deprecated

func (button *Button) Released()

Released emits a Button::released signal to the given Button.

Deprecated: Use the Widget::button-release-event signal.

func (*Button) Relief

func (button *Button) Relief() ReliefStyle

Relief returns the current relief style of the given Button.

The function returns the following values:

  • reliefStyle: current ReliefStyle.

func (*Button) SetAlignment deprecated

func (button *Button) SetAlignment(xalign, yalign float32)

SetAlignment sets the alignment of the child. This property has no effect unless the child is a Misc or a Alignment.

Deprecated: Access the child widget directly if you need to control its alignment.

The function takes the following parameters:

  • xalign: horizontal position of the child, 0.0 is left aligned, 1.0 is right aligned.
  • yalign: vertical position of the child, 0.0 is top aligned, 1.0 is bottom aligned.

func (*Button) SetAlwaysShowImage

func (button *Button) SetAlwaysShowImage(alwaysShow bool)

SetAlwaysShowImage: if TRUE, the button will ignore the Settings:gtk-button-images setting and always show the image, if available.

Use this property if the button would be useless or hard to use without the image.

The function takes the following parameters:

  • alwaysShow: TRUE if the menuitem should always show the image.

func (*Button) SetFocusOnClick deprecated

func (button *Button) SetFocusOnClick(focusOnClick bool)

SetFocusOnClick sets whether the button will grab focus when it is clicked with the mouse. Making mouse clicks not grab focus is useful in places like toolbars where you don’t want the keyboard focus removed from the main area of the application.

Deprecated: Use gtk_widget_set_focus_on_click() instead.

The function takes the following parameters:

  • focusOnClick: whether the button grabs focus when clicked with the mouse.

func (*Button) SetImage

func (button *Button) SetImage(image Widgetter)

SetImage: set the image of button to the given widget. The image will be displayed if the label text is NULL or if Button:always-show-image is TRUE. You don’t have to call gtk_widget_show() on image yourself.

The function takes the following parameters:

  • image (optional): widget to set as the image for the button, or NULL to unset.

func (*Button) SetImagePosition

func (button *Button) SetImagePosition(position PositionType)

SetImagePosition sets the position of the image relative to the text inside the button.

The function takes the following parameters:

  • position: position.

func (*Button) SetLabel

func (button *Button) SetLabel(label string)

SetLabel sets the text of the label of the button to str. This text is also used to select the stock item if gtk_button_set_use_stock() is used.

This will also clear any previously set labels.

The function takes the following parameters:

  • label: string.

func (*Button) SetRelief

func (button *Button) SetRelief(relief ReliefStyle)

SetRelief sets the relief style of the edges of the given Button widget. Two styles exist, GTK_RELIEF_NORMAL and GTK_RELIEF_NONE. The default style is, as one can guess, GTK_RELIEF_NORMAL. The deprecated value GTK_RELIEF_HALF behaves the same as GTK_RELIEF_NORMAL.

The function takes the following parameters:

  • relief: gtkReliefStyle as described above.

func (*Button) SetUseStock deprecated

func (button *Button) SetUseStock(useStock bool)

SetUseStock: if TRUE, the label set on the button is used as a stock id to select the stock item for the button.

Deprecated: since version 3.10.

The function takes the following parameters:

  • useStock: TRUE if the button should use a stock item.

func (*Button) SetUseUnderline

func (button *Button) SetUseUnderline(useUnderline bool)

SetUseUnderline: if true, an underline in the text of the button label indicates the next character should be used for the mnemonic accelerator key.

The function takes the following parameters:

  • useUnderline: TRUE if underlines in the text indicate mnemonics.

func (*Button) UseStock deprecated

func (button *Button) UseStock() bool

UseStock returns whether the button label is a stock item.

Deprecated: since version 3.10.

The function returns the following values:

  • ok: TRUE if the button label is used to select a stock item instead of being used directly as the label text.

func (*Button) UseUnderline

func (button *Button) UseUnderline() bool

UseUnderline returns whether an embedded underline in the button label indicates a mnemonic. See gtk_button_set_use_underline ().

The function returns the following values:

  • ok: TRUE if an embedded underline in the button label indicates the mnemonic accelerator keys.

type ButtonAccessible

type ButtonAccessible struct {
	ContainerAccessible

	*coreglib.Object
	atk.Action
	atk.Image
	// contains filtered or unexported fields
}

type ButtonAccessibleClass added in v0.0.5

type ButtonAccessibleClass struct {
	// contains filtered or unexported fields
}

ButtonAccessibleClass: instance of this type is always passed by reference.

func (*ButtonAccessibleClass) ParentClass added in v0.0.5

type ButtonAccessibleOverrides added in v0.0.5

type ButtonAccessibleOverrides struct {
}

ButtonAccessibleOverrides contains methods that are overridable.

type ButtonBox

type ButtonBox struct {
	Box
	// contains filtered or unexported fields
}

func NewButtonBox

func NewButtonBox(orientation Orientation) *ButtonBox

NewButtonBox creates a new ButtonBox.

The function takes the following parameters:

  • orientation box's orientation.

The function returns the following values:

  • buttonBox: new ButtonBox.

func (*ButtonBox) ChildNonHomogeneous

func (widget *ButtonBox) ChildNonHomogeneous(child Widgetter) bool

ChildNonHomogeneous returns whether the child is exempted from homogenous sizing.

The function takes the following parameters:

  • child of widget.

The function returns the following values:

  • ok: TRUE if the child is not subject to homogenous sizing.

func (*ButtonBox) ChildSecondary

func (widget *ButtonBox) ChildSecondary(child Widgetter) bool

ChildSecondary returns whether child should appear in a secondary group of children.

The function takes the following parameters:

  • child of widget.

The function returns the following values:

  • ok: whether child should appear in a secondary group of children.

func (*ButtonBox) Layout

func (widget *ButtonBox) Layout() ButtonBoxStyle

Layout retrieves the method being used to arrange the buttons in a button box.

The function returns the following values:

  • buttonBoxStyle: method used to lay out buttons in widget.

func (*ButtonBox) SetChildNonHomogeneous

func (widget *ButtonBox) SetChildNonHomogeneous(child Widgetter, nonHomogeneous bool)

SetChildNonHomogeneous sets whether the child is exempted from homogeous sizing.

The function takes the following parameters:

  • child of widget.
  • nonHomogeneous: new value.

func (*ButtonBox) SetChildSecondary

func (widget *ButtonBox) SetChildSecondary(child Widgetter, isSecondary bool)

SetChildSecondary sets whether child should appear in a secondary group of children. A typical use of a secondary child is the help button in a dialog.

This group appears after the other children if the style is GTK_BUTTONBOX_START, GTK_BUTTONBOX_SPREAD or GTK_BUTTONBOX_EDGE, and before the other children if the style is GTK_BUTTONBOX_END. For horizontal button boxes, the definition of before/after depends on direction of the widget (see gtk_widget_set_direction()). If the style is GTK_BUTTONBOX_START or GTK_BUTTONBOX_END, then the secondary children are aligned at the other end of the button box from the main children. For the other styles, they appear immediately next to the main children.

The function takes the following parameters:

  • child of widget.
  • isSecondary: if TRUE, the child appears in a secondary group of the button box.

func (*ButtonBox) SetLayout

func (widget *ButtonBox) SetLayout(layoutStyle ButtonBoxStyle)

SetLayout changes the way buttons are arranged in their container.

The function takes the following parameters:

  • layoutStyle: new layout style.

type ButtonBoxClass added in v0.0.5

type ButtonBoxClass struct {
	// contains filtered or unexported fields
}

ButtonBoxClass: instance of this type is always passed by reference.

func (*ButtonBoxClass) ParentClass added in v0.0.5

func (b *ButtonBoxClass) ParentClass() *BoxClass

ParentClass: parent class.

type ButtonBoxOverrides added in v0.0.5

type ButtonBoxOverrides struct {
}

ButtonBoxOverrides contains methods that are overridable.

type ButtonBoxStyle

type ButtonBoxStyle C.gint

ButtonBoxStyle: used to dictate the style that a ButtonBox uses to layout the buttons it contains.

const (
	// ButtonboxSpread buttons are evenly spread across the box.
	ButtonboxSpread ButtonBoxStyle = 1
	// ButtonboxEdge buttons are placed at the edges of the box.
	ButtonboxEdge ButtonBoxStyle = 2
	// ButtonboxStart buttons are grouped towards the start of the box, (on the
	// left for a HBox, or the top for a VBox).
	ButtonboxStart ButtonBoxStyle = 3
	// ButtonboxEnd buttons are grouped towards the end of the box, (on the
	// right for a HBox, or the bottom for a VBox).
	ButtonboxEnd ButtonBoxStyle = 4
	// ButtonboxCenter buttons are centered in the box. Since 2.12.
	ButtonboxCenter ButtonBoxStyle = 5
	// ButtonboxExpand buttons expand to fill the box. This entails giving
	// buttons a "linked" appearance, making button sizes homogeneous,
	// and setting spacing to 0 (same as calling gtk_box_set_homogeneous() and
	// gtk_box_set_spacing() manually). Since 3.12.
	ButtonboxExpand ButtonBoxStyle = 6
)

func (ButtonBoxStyle) String

func (b ButtonBoxStyle) String() string

String returns the name in string for ButtonBoxStyle.

type ButtonClass added in v0.0.5

type ButtonClass struct {
	// contains filtered or unexported fields
}

ButtonClass: instance of this type is always passed by reference.

func (*ButtonClass) ParentClass added in v0.0.5

func (b *ButtonClass) ParentClass() *BinClass

ParentClass: parent class.

type ButtonOverrides added in v0.0.5

type ButtonOverrides struct {
	Activate func()
	// Clicked emits a Button::clicked signal to the given Button.
	Clicked func()
	// Enter emits a Button::enter signal to the given Button.
	//
	// Deprecated: Use the Widget::enter-notify-event signal.
	Enter func()
	// Leave emits a Button::leave signal to the given Button.
	//
	// Deprecated: Use the Widget::leave-notify-event signal.
	Leave func()
	// Pressed emits a Button::pressed signal to the given Button.
	//
	// Deprecated: Use the Widget::button-press-event signal.
	Pressed func()
	// Released emits a Button::released signal to the given Button.
	//
	// Deprecated: Use the Widget::button-release-event signal.
	Released func()
}

ButtonOverrides contains methods that are overridable.

type ButtonRole

type ButtonRole C.gint

ButtonRole: role specifies the desired appearance of a ModelButton.

const (
	// ButtonRoleNormal: plain button.
	ButtonRoleNormal ButtonRole = iota
	// ButtonRoleCheck: check button.
	ButtonRoleCheck
	// ButtonRoleRadio: radio button.
	ButtonRoleRadio
)

func (ButtonRole) String

func (b ButtonRole) String() string

String returns the name in string for ButtonRole.

type ButtonsType

type ButtonsType C.gint

ButtonsType: prebuilt sets of buttons for the dialog. If none of these choices are appropriate, simply use GTK_BUTTONS_NONE then call gtk_dialog_add_buttons().

> Please note that GTK_BUTTONS_OK, GTK_BUTTONS_YES_NO > and GTK_BUTTONS_OK_CANCEL are discouraged by the > GNOME Human Interface Guidelines (http://library.gnome.org/devel/hig-book/stable/).

const (
	// ButtonsNone: no buttons at all.
	ButtonsNone ButtonsType = iota
	// ButtonsOK: OK button.
	ButtonsOK
	// ButtonsClose: close button.
	ButtonsClose
	// ButtonsCancel: cancel button.
	ButtonsCancel
	// ButtonsYesNo yes and No buttons.
	ButtonsYesNo
	// ButtonsOKCancel: OK and Cancel buttons.
	ButtonsOKCancel
)

func (ButtonsType) String

func (b ButtonsType) String() string

String returns the name in string for ButtonsType.

type CSSProvider

type CSSProvider struct {
	*coreglib.Object

	StyleProvider
	// contains filtered or unexported fields
}

CSSProvider is an object implementing the StyleProvider interface. It is able to parse [CSS-like][css-overview] input in order to style widgets.

An application can make GTK+ parse a specific CSS style sheet by calling gtk_css_provider_load_from_file() or gtk_css_provider_load_from_resource() and adding the provider with gtk_style_context_add_provider() or gtk_style_context_add_provider_for_screen().

In addition, certain files will be read when GTK+ is initialized. First, the file $XDG_CONFIG_HOME/gtk-3.0/gtk.css is loaded if it exists. Then, GTK+ loads the first existing file among XDG_DATA_HOME/themes/THEME/gtk-VERSION/gtk.css, $HOME/.themes/THEME/gtk-VERSION/gtk.css, $XDG_DATA_DIRS/themes/THEME/gtk-VERSION/gtk.css and DATADIR/share/themes/THEME/gtk-VERSION/gtk.css, where THEME is the name of the current theme (see the Settings:gtk-theme-name setting), DATADIR is the prefix configured when GTK+ was compiled (unless overridden by the GTK_DATA_PREFIX environment variable), and VERSION is the GTK+ version number. If no file is found for the current version, GTK+ tries older versions all the way back to 3.0.

In the same way, GTK+ tries to load a gtk-keys.css file for the current key theme, as defined by Settings:gtk-key-theme-name.

func CSSProviderGetDefault deprecated

func CSSProviderGetDefault() *CSSProvider

CSSProviderGetDefault returns the provider containing the style settings used as a fallback for all widgets.

Deprecated: Use gtk_css_provider_new() instead.

The function returns the following values:

  • cssProvider: provider used for fallback styling. This memory is owned by GTK+, and you must not free it.

func CSSProviderGetNamed

func CSSProviderGetNamed(name, variant string) *CSSProvider

CSSProviderGetNamed loads a theme from the usual theme paths.

The function takes the following parameters:

  • name: theme name.
  • variant (optional) to load, for example, "dark", or NULL for the default.

The function returns the following values:

  • cssProvider with the theme loaded. This memory is owned by GTK+, and you must not free it.

func NewCSSProvider

func NewCSSProvider() *CSSProvider

NewCSSProvider returns a newly created CssProvider.

The function returns the following values:

  • cssProvider: new CssProvider.

func (*CSSProvider) ConnectParsingError

func (cssProvider *CSSProvider) ConnectParsingError(f func(section *CSSSection, err error)) coreglib.SignalHandle

ConnectParsingError signals that a parsing error occurred. the path, line and position describe the actual location of the error as accurately as possible.

Parsing errors are never fatal, so the parsing will resume after the error. Errors may however cause parts of the given data or even all of it to not be parsed at all. So it is a useful idea to check that the parsing succeeds by connecting to this signal.

Note that this signal may be emitted at any time as the css provider may opt to defer parsing parts or all of the input to a later time than when a loading function was called.

func (*CSSProvider) LoadFromData

func (cssProvider *CSSProvider) LoadFromData(data string) error

LoadFromData loads data into css_provider, and by doing so clears any previously loaded information.

The function takes the following parameters:

  • data: CSS data loaded in memory.

func (*CSSProvider) LoadFromFile

func (cssProvider *CSSProvider) LoadFromFile(file gio.Filer) error

LoadFromFile loads the data contained in file into css_provider, making it clear any previously loaded information.

The function takes the following parameters:

  • file pointing to a file to load.

func (*CSSProvider) LoadFromPath

func (cssProvider *CSSProvider) LoadFromPath(path string) error

LoadFromPath loads the data contained in path into css_provider, making it clear any previously loaded information.

The function takes the following parameters:

  • path of a filename to load, in the GLib filename encoding.

func (*CSSProvider) LoadFromResource

func (cssProvider *CSSProvider) LoadFromResource(resourcePath string)

LoadFromResource loads the data contained in the resource at resource_path into the CssProvider, clearing any previously loaded information.

To track errors while loading CSS, connect to the CssProvider::parsing-error signal.

The function takes the following parameters:

  • resourcePath resource path.

func (*CSSProvider) String

func (provider *CSSProvider) String() string

String converts the provider into a string representation in CSS format.

Using gtk_css_provider_load_from_data() with the return value from this function on a new provider created with gtk_css_provider_new() will basically create a duplicate of this provider.

The function returns the following values:

  • utf8: new string representing the provider.

type CSSProviderClass added in v0.0.5

type CSSProviderClass struct {
	// contains filtered or unexported fields
}

CSSProviderClass: instance of this type is always passed by reference.

type CSSProviderError

type CSSProviderError C.gint

CSSProviderError: error codes for GTK_CSS_PROVIDER_ERROR.

const (
	// CSSProviderErrorFailed: failed.
	CSSProviderErrorFailed CSSProviderError = iota
	// CSSProviderErrorSyntax: syntax error.
	CSSProviderErrorSyntax
	// CSSProviderErrorImport: import error.
	CSSProviderErrorImport
	// CSSProviderErrorName: name error.
	CSSProviderErrorName
	// CSSProviderErrorDeprecated: deprecation error.
	CSSProviderErrorDeprecated
	// CSSProviderErrorUnknownValue: unknown value.
	CSSProviderErrorUnknownValue
)

func (CSSProviderError) String

func (c CSSProviderError) String() string

String returns the name in string for CSSProviderError.

type CSSProviderOverrides added in v0.0.5

type CSSProviderOverrides struct {
	// The function takes the following parameters:
	//
	//   - section
	//   - err
	//
	ParsingError func(section *CSSSection, err error)
}

CSSProviderOverrides contains methods that are overridable.

type CSSSection

type CSSSection struct {
	// contains filtered or unexported fields
}

CSSSection defines a part of a CSS document. Because sections are nested into one another, you can use gtk_css_section_get_parent() to get the containing region.

An instance of this type is always passed by reference.

func (*CSSSection) EndLine

func (section *CSSSection) EndLine() uint

EndLine returns the line in the CSS document where this section end. The line number is 0-indexed, so the first line of the document will return 0. This value may change in future invocations of this function if section is not yet parsed completely. This will for example happen in the GtkCssProvider::parsing-error signal. The end position and line may be identical to the start position and line for sections which failed to parse anything successfully.

The function returns the following values:

  • guint: line number.

func (*CSSSection) EndPosition

func (section *CSSSection) EndPosition() uint

EndPosition returns the offset in bytes from the start of the current line returned via gtk_css_section_get_end_line(). This value may change in future invocations of this function if section is not yet parsed completely. This will for example happen in the GtkCssProvider::parsing-error signal. The end position and line may be identical to the start position and line for sections which failed to parse anything successfully.

The function returns the following values:

  • guint: offset in bytes from the start of the line.

func (*CSSSection) File

func (section *CSSSection) File() *gio.File

File gets the file that section was parsed from. If no such file exists, for example because the CSS was loaded via gtk_css_provider_load_from_data(), then NULL is returned.

The function returns the following values:

  • file that section was parsed from or NULL if section was parsed from other data.

func (*CSSSection) Parent

func (section *CSSSection) Parent() *CSSSection

Parent gets the parent section for the given section. The parent section is the section that contains this section. A special case are sections of type K_CSS_SECTION_DOCUMENT. Their parent will either be NULL if they are the original CSS document that was loaded by gtk_css_provider_load_from_file() or a section of type K_CSS_SECTION_IMPORT if it was loaded with an import rule from a different file.

The function returns the following values:

  • cssSection (optional): parent section or NULL if none.

func (*CSSSection) SectionType

func (section *CSSSection) SectionType() CSSSectionType

SectionType gets the type of information that section describes.

The function returns the following values:

  • cssSectionType: type of section.

func (*CSSSection) StartLine

func (section *CSSSection) StartLine() uint

StartLine returns the line in the CSS document where this section starts. The line number is 0-indexed, so the first line of the document will return 0.

The function returns the following values:

  • guint: line number.

func (*CSSSection) StartPosition

func (section *CSSSection) StartPosition() uint

StartPosition returns the offset in bytes from the start of the current line returned via gtk_css_section_get_start_line().

The function returns the following values:

  • guint: offset in bytes from the start of the line.

type CSSSectionType

type CSSSectionType C.gint

CSSSectionType: different types of sections indicate parts of a CSS document as parsed by GTK’s CSS parser. They are oriented towards the CSS Grammar (http://www.w3.org/TR/CSS21/grammar.html), but may contain extensions.

More types might be added in the future as the parser incorporates more features.

const (
	// CSSSectionDocument: section describes a complete document. This section
	// time is the only one where gtk_css_section_get_parent() might return
	// NULL.
	CSSSectionDocument CSSSectionType = iota
	// CSSSectionImport: section defines an import rule.
	CSSSectionImport
	// CSSSectionColorDefinition: section defines a color. This is a GTK
	// extension to CSS.
	CSSSectionColorDefinition
	// CSSSectionBindingSet: section defines a binding set. This is a GTK
	// extension to CSS.
	CSSSectionBindingSet
	// CSSSectionRuleset: section defines a CSS ruleset.
	CSSSectionRuleset
	// CSSSectionSelector: section defines a CSS selector.
	CSSSectionSelector
	// CSSSectionDeclaration: section defines the declaration of a CSS variable.
	CSSSectionDeclaration
	// CSSSectionValue: section defines the value of a CSS declaration.
	CSSSectionValue
	// CSSSectionKeyframes: section defines keyframes. See [CSS
	// Animations](http://dev.w3.org/csswg/css3-animations/#keyframes) for
	// details. Since 3.6.
	CSSSectionKeyframes
)

func (CSSSectionType) String

func (c CSSSectionType) String() string

String returns the name in string for CSSSectionType.

type Calendar

type Calendar struct {
	Widget
	// contains filtered or unexported fields
}

Calendar is a widget that displays a Gregorian calendar, one month at a time. It can be created with gtk_calendar_new().

The month and year currently displayed can be altered with gtk_calendar_select_month(). The exact day can be selected from the displayed month using gtk_calendar_select_day().

To place a visual marker on a particular day, use gtk_calendar_mark_day() and to remove the marker, gtk_calendar_unmark_day(). Alternative, all marks can be cleared with gtk_calendar_clear_marks().

The way in which the calendar itself is displayed can be altered using gtk_calendar_set_display_options().

The selected date can be retrieved from a Calendar using gtk_calendar_get_date().

Users should be aware that, although the Gregorian calendar is the legal calendar in most countries, it was adopted progressively between 1582 and 1929. Display before these dates is likely to be historically incorrect.

func NewCalendar

func NewCalendar() *Calendar

NewCalendar creates a new calendar, with the current date being selected.

The function returns the following values:

  • calendar: newly Calendar widget.

func (*Calendar) ClearMarks

func (calendar *Calendar) ClearMarks()

ClearMarks: remove all visual markers.

func (*Calendar) ConnectDaySelected

func (calendar *Calendar) ConnectDaySelected(f func()) coreglib.SignalHandle

ConnectDaySelected is emitted when the user selects a day.

func (*Calendar) ConnectDaySelectedDoubleClick

func (calendar *Calendar) ConnectDaySelectedDoubleClick(f func()) coreglib.SignalHandle

ConnectDaySelectedDoubleClick is emitted when the user double-clicks a day.

func (*Calendar) ConnectMonthChanged

func (calendar *Calendar) ConnectMonthChanged(f func()) coreglib.SignalHandle

ConnectMonthChanged is emitted when the user clicks a button to change the selected month on a calendar.

func (*Calendar) ConnectNextMonth

func (calendar *Calendar) ConnectNextMonth(f func()) coreglib.SignalHandle

ConnectNextMonth is emitted when the user switched to the next month.

func (*Calendar) ConnectNextYear

func (calendar *Calendar) ConnectNextYear(f func()) coreglib.SignalHandle

ConnectNextYear is emitted when user switched to the next year.

func (*Calendar) ConnectPrevMonth

func (calendar *Calendar) ConnectPrevMonth(f func()) coreglib.SignalHandle

ConnectPrevMonth is emitted when the user switched to the previous month.

func (*Calendar) ConnectPrevYear

func (calendar *Calendar) ConnectPrevYear(f func()) coreglib.SignalHandle

ConnectPrevYear is emitted when user switched to the previous year.

func (*Calendar) Date

func (calendar *Calendar) Date() (year, month, day uint)

Date obtains the selected date from a Calendar.

The function returns the following values:

  • year (optional): location to store the year as a decimal number (e.g. 2011), or NULL.
  • month (optional): location to store the month number (between 0 and 11), or NULL.
  • day (optional): location to store the day number (between 1 and 31), or NULL.

func (*Calendar) DayIsMarked

func (calendar *Calendar) DayIsMarked(day uint) bool

DayIsMarked returns if the day of the calendar is already marked.

The function takes the following parameters:

  • day number between 1 and 31.

The function returns the following values:

  • ok: whether the day is marked.

func (*Calendar) DetailHeightRows

func (calendar *Calendar) DetailHeightRows() int

DetailHeightRows queries the height of detail cells, in rows. See Calendar:detail-width-chars.

The function returns the following values:

  • gint: height of detail cells, in rows.

func (*Calendar) DetailWidthChars

func (calendar *Calendar) DetailWidthChars() int

DetailWidthChars queries the width of detail cells, in characters. See Calendar:detail-width-chars.

The function returns the following values:

  • gint: width of detail cells, in characters.

func (*Calendar) DisplayOptions

func (calendar *Calendar) DisplayOptions() CalendarDisplayOptions

DisplayOptions returns the current display options of calendar.

The function returns the following values:

  • calendarDisplayOptions: display options.

func (*Calendar) MarkDay

func (calendar *Calendar) MarkDay(day uint)

MarkDay places a visual marker on a particular day.

The function takes the following parameters:

  • day number to mark between 1 and 31.

func (*Calendar) SelectDay

func (calendar *Calendar) SelectDay(day uint)

SelectDay selects a day from the current month.

The function takes the following parameters:

  • day number between 1 and 31, or 0 to unselect the currently selected day.

func (*Calendar) SelectMonth

func (calendar *Calendar) SelectMonth(month, year uint)

SelectMonth shifts the calendar to a different month.

The function takes the following parameters:

  • month number between 0 and 11.
  • year the month is in.

func (*Calendar) SetDetailFunc

func (calendar *Calendar) SetDetailFunc(fn CalendarDetailFunc)

SetDetailFunc installs a function which provides Pango markup with detail information for each day. Examples for such details are holidays or appointments. That information is shown below each day when Calendar:show-details is set. A tooltip containing with full detail information is provided, if the entire text should not fit into the details area, or if Calendar:show-details is not set.

The size of the details area can be restricted by setting the Calendar:detail-width-chars and Calendar:detail-height-rows properties.

The function takes the following parameters:

  • fn: function providing details for each day.

func (*Calendar) SetDetailHeightRows

func (calendar *Calendar) SetDetailHeightRows(rows int)

SetDetailHeightRows updates the height of detail cells. See Calendar:detail-height-rows.

The function takes the following parameters:

  • rows: detail height in rows.

func (*Calendar) SetDetailWidthChars

func (calendar *Calendar) SetDetailWidthChars(chars int)

SetDetailWidthChars updates the width of detail cells. See Calendar:detail-width-chars.

The function takes the following parameters:

  • chars: detail width in characters.

func (*Calendar) SetDisplayOptions

func (calendar *Calendar) SetDisplayOptions(flags CalendarDisplayOptions)

SetDisplayOptions sets display options (whether to display the heading and the month headings).

The function takes the following parameters:

  • flags: display options to set.

func (*Calendar) UnmarkDay

func (calendar *Calendar) UnmarkDay(day uint)

UnmarkDay removes the visual marker from a particular day.

The function takes the following parameters:

  • day number to unmark between 1 and 31.

type CalendarClass added in v0.0.5

type CalendarClass struct {
	// contains filtered or unexported fields
}

CalendarClass: instance of this type is always passed by reference.

func (*CalendarClass) ParentClass added in v0.0.5

func (c *CalendarClass) ParentClass() *WidgetClass

type CalendarDetailFunc

type CalendarDetailFunc func(calendar *Calendar, year, month, day uint) (utf8 string)

CalendarDetailFunc: this kind of functions provide Pango markup with detail information for the specified day. Examples for such details are holidays or appointments. The function returns NULL when no information is available.

type CalendarDisplayOptions

type CalendarDisplayOptions C.guint

CalendarDisplayOptions: these options can be used to influence the display and behaviour of a Calendar.

const (
	// CalendarShowHeading specifies that the month and year should be
	// displayed.
	CalendarShowHeading CalendarDisplayOptions = 0b1
	// CalendarShowDayNames specifies that three letter day descriptions should
	// be present.
	CalendarShowDayNames CalendarDisplayOptions = 0b10
	// CalendarNoMonthChange prevents the user from switching months with the
	// calendar.
	CalendarNoMonthChange CalendarDisplayOptions = 0b100
	// CalendarShowWeekNumbers displays each week numbers of the current year,
	// down the left side of the calendar.
	CalendarShowWeekNumbers CalendarDisplayOptions = 0b1000
	// CalendarShowDetails: just show an indicator, not the full details text
	// when details are provided. See gtk_calendar_set_detail_func().
	CalendarShowDetails CalendarDisplayOptions = 0b100000
)

func (CalendarDisplayOptions) Has

Has returns true if c contains other.

func (CalendarDisplayOptions) String

func (c CalendarDisplayOptions) String() string

String returns the names in string for CalendarDisplayOptions.

type CalendarOverrides added in v0.0.5

type CalendarOverrides struct {
	DaySelected            func()
	DaySelectedDoubleClick func()
	MonthChanged           func()
	NextMonth              func()
	NextYear               func()
	PrevMonth              func()
	PrevYear               func()
}

CalendarOverrides contains methods that are overridable.

type Callback

type Callback func(widget Widgetter)

Callback: type of the callback functions used for e.g. iterating over the children of a container, see gtk_container_foreach().

type CellAccessible

type CellAccessible struct {
	Accessible

	*coreglib.Object
	atk.Action
	atk.AtkObject
	atk.Component
	atk.TableCell
	// contains filtered or unexported fields
}

type CellAccessibleClass added in v0.0.5

type CellAccessibleClass struct {
	// contains filtered or unexported fields
}

CellAccessibleClass: instance of this type is always passed by reference.

func (*CellAccessibleClass) ParentClass added in v0.0.5

func (c *CellAccessibleClass) ParentClass() *AccessibleClass

type CellAccessibleOverrides added in v0.0.5

type CellAccessibleOverrides struct {
	// The function takes the following parameters:
	//
	UpdateCache func(emitSignal bool)
}

CellAccessibleOverrides contains methods that are overridable.

type CellAccessibleParent

type CellAccessibleParent struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

CellAccessibleParent wraps an interface. This means the user can get the underlying type by calling Cast().

func (*CellAccessibleParent) Activate

func (parent *CellAccessibleParent) Activate(cell *CellAccessible)

The function takes the following parameters:

func (*CellAccessibleParent) CellArea

func (parent *CellAccessibleParent) CellArea(cell *CellAccessible) *gdk.Rectangle

The function takes the following parameters:

The function returns the following values:

func (*CellAccessibleParent) CellExtents

func (parent *CellAccessibleParent) CellExtents(cell *CellAccessible, coordType atk.CoordType) (x, y, width, height int)

The function takes the following parameters:

  • cell
  • coordType

The function returns the following values:

  • x
  • y
  • width
  • height

func (*CellAccessibleParent) CellPosition

func (parent *CellAccessibleParent) CellPosition(cell *CellAccessible) (row, column int)

The function takes the following parameters:

The function returns the following values:

  • row
  • column

func (*CellAccessibleParent) ChildIndex

func (parent *CellAccessibleParent) ChildIndex(cell *CellAccessible) int

The function takes the following parameters:

The function returns the following values:

func (*CellAccessibleParent) Edit

func (parent *CellAccessibleParent) Edit(cell *CellAccessible)

The function takes the following parameters:

func (*CellAccessibleParent) ExpandCollapse

func (parent *CellAccessibleParent) ExpandCollapse(cell *CellAccessible)

The function takes the following parameters:

func (*CellAccessibleParent) GrabFocus

func (parent *CellAccessibleParent) GrabFocus(cell *CellAccessible) bool

The function takes the following parameters:

The function returns the following values:

func (*CellAccessibleParent) RendererState

func (parent *CellAccessibleParent) RendererState(cell *CellAccessible) CellRendererState

The function takes the following parameters:

The function returns the following values:

func (*CellAccessibleParent) UpdateRelationset

func (parent *CellAccessibleParent) UpdateRelationset(cell *CellAccessible, relationset *atk.RelationSet)

The function takes the following parameters:

  • cell
  • relationset

type CellAccessibleParentIface added in v0.0.5

type CellAccessibleParentIface struct {
	// contains filtered or unexported fields
}

CellAccessibleParentIface: instance of this type is always passed by reference.

type CellAccessibleParenter

type CellAccessibleParenter interface {
	coreglib.Objector

	Activate(cell *CellAccessible)
	Edit(cell *CellAccessible)
	ExpandCollapse(cell *CellAccessible)
	CellArea(cell *CellAccessible) *gdk.Rectangle
	CellExtents(cell *CellAccessible, coordType atk.CoordType) (x, y, width, height int)
	CellPosition(cell *CellAccessible) (row, column int)
	ChildIndex(cell *CellAccessible) int
	RendererState(cell *CellAccessible) CellRendererState
	GrabFocus(cell *CellAccessible) bool
	UpdateRelationset(cell *CellAccessible, relationset *atk.RelationSet)
}

CellAccessibleParenter describes CellAccessibleParent's interface methods.

type CellAllocCallback

type CellAllocCallback func(renderer CellRendererer, cellArea, cellBackground *gdk.Rectangle) (ok bool)

CellAllocCallback: type of the callback functions used for iterating over the cell renderers and their allocated areas inside a CellArea, see gtk_cell_area_foreach_alloc().

type CellArea

type CellArea struct {
	coreglib.InitiallyUnowned

	*coreglib.Object
	Buildable
	CellLayout
	// contains filtered or unexported fields
}

CellArea is an abstract class for CellLayout widgets (also referred to as "layouting widgets") to interface with an arbitrary number of CellRenderers and interact with the user for a given TreeModel row.

The cell area handles events, focus navigation, drawing and size requests and allocations for a given row of data.

Usually users dont have to interact with the CellArea directly unless they are implementing a cell-layouting widget themselves.

Requesting area sizes

As outlined in [GtkWidget’s geometry management section][geometry-management], GTK+ uses a height-for-width geometry management system to compute the sizes of widgets and user interfaces. CellArea uses the same semantics to calculate the size of an area for an arbitrary number of TreeModel rows.

When requesting the size of a cell area one needs to calculate the size for a handful of rows, and this will be done differently by different layouting widgets. For instance a TreeViewColumn always lines up the areas from top to bottom while a IconView on the other hand might enforce that all areas received the same width and wrap the areas around, requesting height for more cell areas when allocated less width.

It’s also important for areas to maintain some cell alignments with areas rendered for adjacent rows (cells can appear “columnized” inside an area even when the size of cells are different in each row). For this reason the CellArea uses a CellAreaContext object to store the alignments and sizes along the way (as well as the overall largest minimum and natural size for all the rows which have been calculated with the said context).

The CellAreaContext is an opaque object specific to the CellArea which created it (see gtk_cell_area_create_context()). The owning cell-layouting widget can create as many contexts as it wishes to calculate sizes of rows which should receive the same size in at least one orientation (horizontally or vertically), However, it’s important that the same CellAreaContext which was used to request the sizes for a given TreeModel row be used when rendering or processing events for that row.

In order to request the width of all the rows at the root level of a TreeModel one would do the following:

static gboolean
foo_focus (GtkWidget       *widget,
           GtkDirectionType direction)
{
  Foo        *foo  = FOO (widget);
  FooPrivate *priv = foo->priv;
  gint        focus_row;
  gboolean    have_focus = FALSE;

  focus_row = priv->focus_row;

  if (!gtk_widget_has_focus (widget))
    gtk_widget_grab_focus (widget);

  valid = gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, priv->focus_row);
  while (valid)
    {
      gtk_cell_area_apply_attributes (priv->area, priv->model, &iter, FALSE, FALSE);

      if (gtk_cell_area_focus (priv->area, direction))
        {
           priv->focus_row = focus_row;
           have_focus = TRUE;
           break;
        }
      else
        {
          if (direction == GTK_DIR_RIGHT ||
              direction == GTK_DIR_LEFT)
            break;
          else if (direction == GTK_DIR_UP ||
                   direction == GTK_DIR_TAB_BACKWARD)
           {
              if (focus_row == 0)
                break;
              else
               {
                  focus_row--;
                  valid = gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, focus_row);
               }
            }
          else
            {
              if (focus_row == last_row)
                break;
              else
                {
                  focus_row++;
                  valid = gtk_tree_model_iter_next (priv->model, &iter);
                }
            }
        }
    }
    return have_focus;
}

Note that the layouting widget is responsible for matching the GtkDirectionType values to the way it lays out its cells.

Cell Properties

The CellArea introduces cell properties for CellRenderers in very much the same way that Container introduces [child properties][child-properties] for Widgets. This provides some general interfaces for defining the relationship cell areas have with their cells. For instance in a CellAreaBox a cell might “expand” and receive extra space when the area is allocated more than its full natural request, or a cell might be configured to “align” with adjacent rows which were requested and rendered with the same CellAreaContext.

Use gtk_cell_area_class_install_cell_property() to install cell properties for a cell area class and gtk_cell_area_class_find_cell_property() or gtk_cell_area_class_list_cell_properties() to get information about existing cell properties.

To set the value of a cell property, use gtk_cell_area_cell_set_property(), gtk_cell_area_cell_set() or gtk_cell_area_cell_set_valist(). To obtain the value of a cell property, use gtk_cell_area_cell_get_property(), gtk_cell_area_cell_get() or gtk_cell_area_cell_get_valist().

func BaseCellArea

func BaseCellArea(obj CellAreaer) *CellArea

BaseCellArea returns the underlying base object.

func (*CellArea) Activate

func (area *CellArea) Activate(context *CellAreaContext, widget Widgetter, cellArea *gdk.Rectangle, flags CellRendererState, editOnly bool) bool

Activate activates area, usually by activating the currently focused cell, however some subclasses which embed widgets in the area can also activate a widget if it currently has the focus.

The function takes the following parameters:

  • context in context with the current row data.
  • widget that area is rendering on.
  • cellArea: size and location of area relative to widget’s allocation.
  • flags flags for area for this row of data.
  • editOnly: if TRUE then only cell renderers that are GTK_CELL_RENDERER_MODE_EDITABLE will be activated.

The function returns the following values:

  • ok: whether area was successfully activated.

func (*CellArea) ActivateCell

func (area *CellArea) ActivateCell(widget Widgetter, renderer CellRendererer, event *gdk.Event, cellArea *gdk.Rectangle, flags CellRendererState) bool

ActivateCell: this is used by CellArea subclasses when handling events to activate cells, the base CellArea class activates cells for keyboard events for free in its own GtkCellArea->activate() implementation.

The function takes the following parameters:

  • widget that area is rendering onto.
  • renderer in area to activate.
  • event for which cell activation should occur.
  • cellArea in widget relative coordinates of renderer for the current row.
  • flags for renderer.

The function returns the following values:

  • ok: whether cell activation was successful.

func (*CellArea) Add

func (area *CellArea) Add(renderer CellRendererer)

Add adds renderer to area with the default child cell properties.

The function takes the following parameters:

  • renderer to add to area.

func (*CellArea) AddFocusSibling

func (area *CellArea) AddFocusSibling(renderer, sibling CellRendererer)

AddFocusSibling adds sibling to renderer’s focusable area, focus will be drawn around renderer and all of its siblings if renderer can focus for a given row.

Events handled by focus siblings can also activate the given focusable renderer.

The function takes the following parameters:

  • renderer expected to have focus.
  • sibling to add to renderer’s focus area.

func (*CellArea) ApplyAttributes

func (area *CellArea) ApplyAttributes(treeModel TreeModeller, iter *TreeIter, isExpander, isExpanded bool)

ApplyAttributes applies any connected attributes to the renderers in area by pulling the values from tree_model.

The function takes the following parameters:

  • treeModel to pull values from.
  • iter in tree_model to apply values for.
  • isExpander: whether iter has children.
  • isExpanded: whether iter is expanded in the view and children are visible.

func (*CellArea) AttributeConnect

func (area *CellArea) AttributeConnect(renderer CellRendererer, attribute string, column int)

AttributeConnect connects an attribute to apply values from column for the TreeModel in use.

The function takes the following parameters:

  • renderer to connect an attribute for.
  • attribute name.
  • column column to fetch attribute values from.

func (*CellArea) AttributeDisconnect

func (area *CellArea) AttributeDisconnect(renderer CellRendererer, attribute string)

AttributeDisconnect disconnects attribute for the renderer in area so that attribute will no longer be updated with values from the model.

The function takes the following parameters:

  • renderer to disconnect an attribute for.
  • attribute name.

func (*CellArea) AttributeGetColumn

func (area *CellArea) AttributeGetColumn(renderer CellRendererer, attribute string) int

AttributeGetColumn returns the model column that an attribute has been mapped to, or -1 if the attribute is not mapped.

The function takes the following parameters:

  • renderer: CellRenderer.
  • attribute on the renderer.

The function returns the following values:

  • gint: model column, or -1.

func (*CellArea) CellAllocation

func (area *CellArea) CellAllocation(context *CellAreaContext, widget Widgetter, renderer CellRendererer, cellArea *gdk.Rectangle) *gdk.Rectangle

CellAllocation derives the allocation of renderer inside area if area were to be renderered in cell_area.

The function takes the following parameters:

  • context used to hold sizes for area.
  • widget that area is rendering on.
  • renderer to get the allocation for.
  • cellArea: whole allocated area for area in widget for this row.

The function returns the following values:

  • allocation: where to store the allocation for renderer.

func (*CellArea) CellAtPosition

func (area *CellArea) CellAtPosition(context *CellAreaContext, widget Widgetter, cellArea *gdk.Rectangle, x, y int) (*gdk.Rectangle, CellRendererer)

CellAtPosition gets the CellRenderer at x and y coordinates inside area and optionally returns the full cell allocation for it inside cell_area.

The function takes the following parameters:

  • context used to hold sizes for area.
  • widget that area is rendering on.
  • cellArea: whole allocated area for area in widget for this row.
  • x position.
  • y position.

The function returns the following values:

  • allocArea (optional): where to store the inner allocated area of the returned cell renderer, or NULL.
  • cellRenderer at x and y.

func (*CellArea) CellGetProperty

func (area *CellArea) CellGetProperty(renderer CellRendererer, propertyName string, value *coreglib.Value)

CellGetProperty gets the value of a cell property for renderer in area.

The function takes the following parameters:

  • renderer inside area.
  • propertyName: name of the property to get.
  • value: location to return the value.

func (*CellArea) CellSetProperty

func (area *CellArea) CellSetProperty(renderer CellRendererer, propertyName string, value *coreglib.Value)

CellSetProperty sets a cell property for renderer in area.

The function takes the following parameters:

  • renderer inside area.
  • propertyName: name of the cell property to set.
  • value to set the cell property to.

func (*CellArea) ConnectAddEditable

func (area *CellArea) ConnectAddEditable(f func(renderer CellRendererer, editable CellEditabler, cellArea *gdk.Rectangle, path string)) coreglib.SignalHandle

ConnectAddEditable indicates that editing has started on renderer and that editable should be added to the owning cell-layouting widget at cell_area.

func (*CellArea) ConnectApplyAttributes

func (area *CellArea) ConnectApplyAttributes(f func(model TreeModeller, iter *TreeIter, isExpander, isExpanded bool)) coreglib.SignalHandle

ConnectApplyAttributes: this signal is emitted whenever applying attributes to area from model.

func (*CellArea) ConnectFocusChanged

func (area *CellArea) ConnectFocusChanged(f func(renderer CellRendererer, path string)) coreglib.SignalHandle

ConnectFocusChanged indicates that focus changed on this area. This signal is emitted either as a result of focus handling or event handling.

It's possible that the signal is emitted even if the currently focused renderer did not change, this is because focus may change to the same renderer in the same cell area for a different row of data.

func (*CellArea) ConnectRemoveEditable

func (area *CellArea) ConnectRemoveEditable(f func(renderer CellRendererer, editable CellEditabler)) coreglib.SignalHandle

ConnectRemoveEditable indicates that editing finished on renderer and that editable should be removed from the owning cell-layouting widget.

func (*CellArea) CopyContext

func (area *CellArea) CopyContext(context *CellAreaContext) *CellAreaContext

CopyContext: this is sometimes needed for cases where rows need to share alignments in one orientation but may be separately grouped in the opposing orientation.

For instance, IconView creates all icons (rows) to have the same width and the cells theirin to have the same horizontal alignments. However each row of icons may have a separate collective height. IconView uses this to request the heights of each row based on a context which was already used to request all the row widths that are to be displayed.

The function takes the following parameters:

  • context to copy.

The function returns the following values:

  • cellAreaContext: newly created CellAreaContext copy of context.

func (*CellArea) CreateContext

func (area *CellArea) CreateContext() *CellAreaContext

CreateContext creates a CellAreaContext to be used with area for all purposes. CellAreaContext stores geometry information for rows for which it was operated on, it is important to use the same context for the same row of data at all times (i.e. one should render and handle events with the same CellAreaContext which was used to request the size of those rows of data).

The function returns the following values:

  • cellAreaContext: newly created CellAreaContext which can be used with area.

func (*CellArea) CurrentPathString

func (area *CellArea) CurrentPathString() string

CurrentPathString gets the current TreePath string for the currently applied TreeIter, this is implicitly updated when gtk_cell_area_apply_attributes() is called and can be used to interact with renderers from CellArea subclasses.

The function returns the following values:

  • utf8: current TreePath string for the current attributes applied to area. This string belongs to the area and should not be freed.

func (*CellArea) EditWidget

func (area *CellArea) EditWidget() *CellEditable

EditWidget gets the CellEditable widget currently used to edit the currently edited cell.

The function returns the following values:

  • cellEditable: currently active CellEditable widget.

func (*CellArea) EditedCell

func (area *CellArea) EditedCell() CellRendererer

EditedCell gets the CellRenderer in area that is currently being edited.

The function returns the following values:

  • cellRenderer: currently edited CellRenderer.

func (*CellArea) Event

func (area *CellArea) Event(context *CellAreaContext, widget Widgetter, event *gdk.Event, cellArea *gdk.Rectangle, flags CellRendererState) int

Event delegates event handling to a CellArea.

The function takes the following parameters:

  • context for this row of data.
  • widget that area is rendering to.
  • event to handle.
  • cellArea: widget relative coordinates for area.
  • flags for area in this row.

The function returns the following values:

  • gint: TRUE if the event was handled by area.

func (*CellArea) Focus

func (area *CellArea) Focus(direction DirectionType) bool

Focus: this should be called by the area’s owning layout widget when focus is to be passed to area, or moved within area for a given direction and row data.

Implementing CellArea classes should implement this method to receive and navigate focus in its own way particular to how it lays out cells.

The function takes the following parameters:

  • direction: DirectionType.

The function returns the following values:

  • ok: TRUE if focus remains inside area as a result of this call.

func (*CellArea) FocusCell

func (area *CellArea) FocusCell() CellRendererer

FocusCell retrieves the currently focused cell for area.

The function returns the following values:

  • cellRenderer: currently focused cell in area.

func (*CellArea) FocusFromSibling

func (area *CellArea) FocusFromSibling(renderer CellRendererer) CellRendererer

FocusFromSibling gets the CellRenderer which is expected to be focusable for which renderer is, or may be a sibling.

This is handy for CellArea subclasses when handling events, after determining the renderer at the event location it can then chose to activate the focus cell for which the event cell may have been a sibling.

The function takes the following parameters:

  • renderer: CellRenderer.

The function returns the following values:

  • cellRenderer (optional) for which renderer is a sibling, or NULL.

func (*CellArea) FocusSiblings

func (area *CellArea) FocusSiblings(renderer CellRendererer) []CellRendererer

FocusSiblings gets the focus sibling cell renderers for renderer.

The function takes the following parameters:

  • renderer expected to have focus.

The function returns the following values:

  • list of CellRenderers. The returned list is internal and should not be freed.

func (*CellArea) ForEach

func (area *CellArea) ForEach(callback CellCallback)

ForEach calls callback for every CellRenderer in area.

The function takes the following parameters:

  • callback to call.

func (*CellArea) ForEachAlloc

func (area *CellArea) ForEachAlloc(context *CellAreaContext, widget Widgetter, cellArea, backgroundArea *gdk.Rectangle, callback CellAllocCallback)

ForEachAlloc calls callback for every CellRenderer in area with the allocated rectangle inside cell_area.

The function takes the following parameters:

  • context for this row of data.
  • widget that area is rendering to.
  • cellArea: widget relative coordinates and size for area.
  • backgroundArea: widget relative coordinates of the background area.
  • callback to call.

func (*CellArea) HasRenderer

func (area *CellArea) HasRenderer(renderer CellRendererer) bool

HasRenderer checks if area contains renderer.

The function takes the following parameters:

  • renderer to check.

The function returns the following values:

  • ok: TRUE if renderer is in the area.

func (*CellArea) InnerCellArea

func (area *CellArea) InnerCellArea(widget Widgetter, cellArea *gdk.Rectangle) *gdk.Rectangle

InnerCellArea: this is a convenience function for CellArea implementations to get the inner area where a given CellRenderer will be rendered. It removes any padding previously added by gtk_cell_area_request_renderer().

The function takes the following parameters:

  • widget that area is rendering onto.
  • cellArea: widget relative coordinates where one of area’s cells is to be placed.

The function returns the following values:

  • innerArea: return location for the inner cell area.

func (*CellArea) IsActivatable

func (area *CellArea) IsActivatable() bool

IsActivatable returns whether the area can do anything when activated, after applying new attributes to area.

The function returns the following values:

  • ok: whether area can do anything when activated.

func (*CellArea) IsFocusSibling

func (area *CellArea) IsFocusSibling(renderer, sibling CellRendererer) bool

IsFocusSibling returns whether sibling is one of renderer’s focus siblings (see gtk_cell_area_add_focus_sibling()).

The function takes the following parameters:

  • renderer expected to have focus.
  • sibling to check against renderer’s sibling list.

The function returns the following values:

  • ok: TRUE if sibling is a focus sibling of renderer.

func (*CellArea) PreferredHeight

func (area *CellArea) PreferredHeight(context *CellAreaContext, widget Widgetter) (minimumHeight, naturalHeight int)

PreferredHeight retrieves a cell area’s initial minimum and natural height.

area will store some geometrical information in context along the way; when requesting sizes over an arbitrary number of rows, it’s not important to check the minimum_height and natural_height of this call but rather to consult gtk_cell_area_context_get_preferred_height() after a series of requests.

The function takes the following parameters:

  • context to perform this request with.
  • widget where area will be rendering.

The function returns the following values:

  • minimumHeight (optional): location to store the minimum height, or NULL.
  • naturalHeight (optional): location to store the natural height, or NULL.

func (*CellArea) PreferredHeightForWidth

func (area *CellArea) PreferredHeightForWidth(context *CellAreaContext, widget Widgetter, width int) (minimumHeight, naturalHeight int)

PreferredHeightForWidth retrieves a cell area’s minimum and natural height if it would be given the specified width.

area stores some geometrical information in context along the way while calling gtk_cell_area_get_preferred_width(). It’s important to perform a series of gtk_cell_area_get_preferred_width() requests with context first and then call gtk_cell_area_get_preferred_height_for_width() on each cell area individually to get the height for width of each fully requested row.

If at some point, the width of a single row changes, it should be requested with gtk_cell_area_get_preferred_width() again and then the full width of the requested rows checked again with gtk_cell_area_context_get_preferred_width().

The function takes the following parameters:

  • context which has already been requested for widths.
  • widget where area will be rendering.
  • width for which to check the height of this area.

The function returns the following values:

  • minimumHeight (optional): location to store the minimum height, or NULL.
  • naturalHeight (optional): location to store the natural height, or NULL.

func (*CellArea) PreferredWidth

func (area *CellArea) PreferredWidth(context *CellAreaContext, widget Widgetter) (minimumWidth, naturalWidth int)

PreferredWidth retrieves a cell area’s initial minimum and natural width.

area will store some geometrical information in context along the way; when requesting sizes over an arbitrary number of rows, it’s not important to check the minimum_width and natural_width of this call but rather to consult gtk_cell_area_context_get_preferred_width() after a series of requests.

The function takes the following parameters:

  • context to perform this request with.
  • widget where area will be rendering.

The function returns the following values:

  • minimumWidth (optional): location to store the minimum width, or NULL.
  • naturalWidth (optional): location to store the natural width, or NULL.

func (*CellArea) PreferredWidthForHeight

func (area *CellArea) PreferredWidthForHeight(context *CellAreaContext, widget Widgetter, height int) (minimumWidth, naturalWidth int)

PreferredWidthForHeight retrieves a cell area’s minimum and natural width if it would be given the specified height.

area stores some geometrical information in context along the way while calling gtk_cell_area_get_preferred_height(). It’s important to perform a series of gtk_cell_area_get_preferred_height() requests with context first and then call gtk_cell_area_get_preferred_width_for_height() on each cell area individually to get the height for width of each fully requested row.

If at some point, the height of a single row changes, it should be requested with gtk_cell_area_get_preferred_height() again and then the full height of the requested rows checked again with gtk_cell_area_context_get_preferred_height().

The function takes the following parameters:

  • context which has already been requested for widths.
  • widget where area will be rendering.
  • height for which to check the width of this area.

The function returns the following values:

  • minimumWidth (optional): location to store the minimum width, or NULL.
  • naturalWidth (optional): location to store the natural width, or NULL.

func (*CellArea) Remove

func (area *CellArea) Remove(renderer CellRendererer)

Remove removes renderer from area.

The function takes the following parameters:

  • renderer to remove from area.

func (*CellArea) RemoveFocusSibling

func (area *CellArea) RemoveFocusSibling(renderer, sibling CellRendererer)

RemoveFocusSibling removes sibling from renderer’s focus sibling list (see gtk_cell_area_add_focus_sibling()).

The function takes the following parameters:

  • renderer expected to have focus.
  • sibling to remove from renderer’s focus area.

func (*CellArea) Render

func (area *CellArea) Render(context *CellAreaContext, widget Widgetter, cr *cairo.Context, backgroundArea, cellArea *gdk.Rectangle, flags CellRendererState, paintFocus bool)

Render renders area’s cells according to area’s layout onto widget at the given coordinates.

The function takes the following parameters:

  • context for this row of data.
  • widget that area is rendering to.
  • cr to render with.
  • backgroundArea: widget relative coordinates for area’s background.
  • cellArea: widget relative coordinates for area.
  • flags for area in this row.
  • paintFocus: whether area should paint focus on focused cells for focused rows or not.

func (*CellArea) RequestMode

func (area *CellArea) RequestMode() SizeRequestMode

RequestMode gets whether the area prefers a height-for-width layout or a width-for-height layout.

The function returns the following values:

  • sizeRequestMode preferred by area.

func (*CellArea) RequestRenderer

func (area *CellArea) RequestRenderer(renderer CellRendererer, orientation Orientation, widget Widgetter, forSize int) (minimumSize, naturalSize int)

RequestRenderer: this is a convenience function for CellArea implementations to request size for cell renderers. It’s important to use this function to request size and then use gtk_cell_area_inner_cell_area() at render and event time since this function will add padding around the cell for focus painting.

The function takes the following parameters:

  • renderer to request size for.
  • orientation in which to request size.
  • widget that area is rendering onto.
  • forSize: allocation contextual size to request for, or -1 if the base request for the orientation is to be returned.

The function returns the following values:

  • minimumSize (optional): location to store the minimum size, or NULL.
  • naturalSize (optional): location to store the natural size, or NULL.

func (*CellArea) SetFocusCell

func (area *CellArea) SetFocusCell(renderer CellRendererer)

SetFocusCell: explicitly sets the currently focused cell to renderer.

This is generally called by implementations of CellAreaClass.focus() or CellAreaClass.event(), however it can also be used to implement functions such as gtk_tree_view_set_cursor_on_cell().

The function takes the following parameters:

  • renderer to give focus to.

func (*CellArea) StopEditing

func (area *CellArea) StopEditing(canceled bool)

StopEditing: explicitly stops the editing of the currently edited cell.

If canceled is TRUE, the currently edited cell renderer will emit the ::editing-canceled signal, otherwise the the ::editing-done signal will be emitted on the current edit widget.

See gtk_cell_area_get_edited_cell() and gtk_cell_area_get_edit_widget().

The function takes the following parameters:

  • canceled: whether editing was canceled.

type CellAreaBox

type CellAreaBox struct {
	CellArea

	*coreglib.Object
	Orientable
	// contains filtered or unexported fields
}

CellAreaBox renders cell renderers into a row or a column depending on its Orientation.

GtkCellAreaBox uses a notion of packing. Packing refers to adding cell renderers with reference to a particular position in a CellAreaBox. There are two reference positions: the start and the end of the box. When the CellAreaBox is oriented in the GTK_ORIENTATION_VERTICAL orientation, the start is defined as the top of the box and the end is defined as the bottom. In the GTK_ORIENTATION_HORIZONTAL orientation start is defined as the left side and the end is defined as the right side.

Alignments of CellRenderers rendered in adjacent rows can be configured by configuring the CellAreaBox align child cell property with gtk_cell_area_cell_set_property() or by specifying the "align" argument to gtk_cell_area_box_pack_start() and gtk_cell_area_box_pack_end().

func NewCellAreaBox

func NewCellAreaBox() *CellAreaBox

NewCellAreaBox creates a new CellAreaBox.

The function returns the following values:

  • cellAreaBox: newly created CellAreaBox.

func (*CellAreaBox) PackEnd

func (box *CellAreaBox) PackEnd(renderer CellRendererer, expand, align, fixed bool)

PackEnd adds renderer to box, packed with reference to the end of box.

The renderer is packed after (away from end of) any other CellRenderer packed with reference to the end of box.

The function takes the following parameters:

  • renderer to add.
  • expand: whether renderer should receive extra space when the area receives more than its natural size.
  • align: whether renderer should be aligned in adjacent rows.
  • fixed: whether renderer should have the same size in all rows.

func (*CellAreaBox) PackStart

func (box *CellAreaBox) PackStart(renderer CellRendererer, expand, align, fixed bool)

PackStart adds renderer to box, packed with reference to the start of box.

The renderer is packed after any other CellRenderer packed with reference to the start of box.

The function takes the following parameters:

  • renderer to add.
  • expand: whether renderer should receive extra space when the area receives more than its natural size.
  • align: whether renderer should be aligned in adjacent rows.
  • fixed: whether renderer should have the same size in all rows.

func (*CellAreaBox) SetSpacing

func (box *CellAreaBox) SetSpacing(spacing int)

SetSpacing sets the spacing to add between cell renderers in box.

The function takes the following parameters:

  • spacing: space to add between CellRenderers.

func (*CellAreaBox) Spacing

func (box *CellAreaBox) Spacing() int

Spacing gets the spacing added between cell renderers.

The function returns the following values:

  • gint: space added between cell renderers in box.

type CellAreaBoxClass added in v0.0.5

type CellAreaBoxClass struct {
	// contains filtered or unexported fields
}

CellAreaBoxClass: instance of this type is always passed by reference.

type CellAreaBoxOverrides added in v0.0.5

type CellAreaBoxOverrides struct {
}

CellAreaBoxOverrides contains methods that are overridable.

type CellAreaClass added in v0.0.5

type CellAreaClass struct {
	// contains filtered or unexported fields
}

CellAreaClass: instance of this type is always passed by reference.

type CellAreaContext

type CellAreaContext struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

CellAreaContext object is created by a given CellArea implementation via its CellAreaClass.create_context() virtual method and is used to store cell sizes and alignments for a series of TreeModel rows that are requested and rendered in the same context.

CellLayout widgets can create any number of contexts in which to request and render groups of data rows. However, it’s important that the same context which was used to request sizes for a given TreeModel row also be used for the same row when calling other CellArea APIs such as gtk_cell_area_render() and gtk_cell_area_event().

func (*CellAreaContext) Allocate

func (context *CellAreaContext) Allocate(width, height int)

Allocate allocates a width and/or a height for all rows which are to be rendered with context.

Usually allocation is performed only horizontally or sometimes vertically since a group of rows are usually rendered side by side vertically or horizontally and share either the same width or the same height. Sometimes they are allocated in both horizontal and vertical orientations producing a homogeneous effect of the rows. This is generally the case for TreeView when TreeView:fixed-height-mode is enabled.

Since 3.0.

The function takes the following parameters:

  • width: allocated width for all TreeModel rows rendered with context, or -1.
  • height: allocated height for all TreeModel rows rendered with context, or -1.

func (*CellAreaContext) Allocation

func (context *CellAreaContext) Allocation() (width, height int)

Allocation fetches the current allocation size for context.

If the context was not allocated in width or height, or if the context was recently reset with gtk_cell_area_context_reset(), the returned value will be -1.

The function returns the following values:

  • width (optional): location to store the allocated width, or NULL.
  • height (optional): location to store the allocated height, or NULL.

func (*CellAreaContext) Area

func (context *CellAreaContext) Area() CellAreaer

Area fetches the CellArea this context was created by.

This is generally unneeded by layouting widgets; however, it is important for the context implementation itself to fetch information about the area it is being used for.

For instance at CellAreaContextClass.allocate() time it’s important to know details about any cell spacing that the CellArea is configured with in order to compute a proper allocation.

The function returns the following values:

  • cellArea this context was created by.

func (*CellAreaContext) PreferredHeight

func (context *CellAreaContext) PreferredHeight() (minimumHeight, naturalHeight int)

PreferredHeight gets the accumulative preferred height for all rows which have been requested with this context.

After gtk_cell_area_context_reset() is called and/or before ever requesting the size of a CellArea, the returned values are 0.

The function returns the following values:

  • minimumHeight (optional): location to store the minimum height, or NULL.
  • naturalHeight (optional): location to store the natural height, or NULL.

func (*CellAreaContext) PreferredHeightForWidth

func (context *CellAreaContext) PreferredHeightForWidth(width int) (minimumHeight, naturalHeight int)

PreferredHeightForWidth gets the accumulative preferred height for width for all rows which have been requested for the same said width with this context.

After gtk_cell_area_context_reset() is called and/or before ever requesting the size of a CellArea, the returned values are -1.

The function takes the following parameters:

  • width: proposed width for allocation.

The function returns the following values:

  • minimumHeight (optional): location to store the minimum height, or NULL.
  • naturalHeight (optional): location to store the natural height, or NULL.

func (*CellAreaContext) PreferredWidth

func (context *CellAreaContext) PreferredWidth() (minimumWidth, naturalWidth int)

PreferredWidth gets the accumulative preferred width for all rows which have been requested with this context.

After gtk_cell_area_context_reset() is called and/or before ever requesting the size of a CellArea, the returned values are 0.

The function returns the following values:

  • minimumWidth (optional): location to store the minimum width, or NULL.
  • naturalWidth (optional): location to store the natural width, or NULL.

func (*CellAreaContext) PreferredWidthForHeight

func (context *CellAreaContext) PreferredWidthForHeight(height int) (minimumWidth, naturalWidth int)

PreferredWidthForHeight gets the accumulative preferred width for height for all rows which have been requested for the same said height with this context.

After gtk_cell_area_context_reset() is called and/or before ever requesting the size of a CellArea, the returned values are -1.

The function takes the following parameters:

  • height: proposed height for allocation.

The function returns the following values:

  • minimumWidth (optional): location to store the minimum width, or NULL.
  • naturalWidth (optional): location to store the natural width, or NULL.

func (*CellAreaContext) PushPreferredHeight

func (context *CellAreaContext) PushPreferredHeight(minimumHeight, naturalHeight int)

PushPreferredHeight causes the minimum and/or natural height to grow if the new proposed sizes exceed the current minimum and natural height.

This is used by CellAreaContext implementations during the request process over a series of TreeModel rows to progressively push the requested height over a series of gtk_cell_area_get_preferred_height() requests.

The function takes the following parameters:

  • minimumHeight: proposed new minimum height for context.
  • naturalHeight: proposed new natural height for context.

func (*CellAreaContext) PushPreferredWidth

func (context *CellAreaContext) PushPreferredWidth(minimumWidth, naturalWidth int)

PushPreferredWidth causes the minimum and/or natural width to grow if the new proposed sizes exceed the current minimum and natural width.

This is used by CellAreaContext implementations during the request process over a series of TreeModel rows to progressively push the requested width over a series of gtk_cell_area_get_preferred_width() requests.

The function takes the following parameters:

  • minimumWidth: proposed new minimum width for context.
  • naturalWidth: proposed new natural width for context.

func (*CellAreaContext) Reset

func (context *CellAreaContext) Reset()

Reset resets any previously cached request and allocation data.

When underlying TreeModel data changes its important to reset the context if the content size is allowed to shrink. If the content size is only allowed to grow (this is usually an option for views rendering large data stores as a measure of optimization), then only the row that changed or was inserted needs to be (re)requested with gtk_cell_area_get_preferred_width().

When the new overall size of the context requires that the allocated size changes (or whenever this allocation changes at all), the variable row sizes need to be re-requested for every row.

For instance, if the rows are displayed all with the same width from top to bottom then a change in the allocated width necessitates a recalculation of all the displayed row heights using gtk_cell_area_get_preferred_height_for_width().

Since 3.0.

type CellAreaContextClass added in v0.0.5

type CellAreaContextClass struct {
	// contains filtered or unexported fields
}

CellAreaContextClass: instance of this type is always passed by reference.

type CellAreaContextOverrides added in v0.0.5

type CellAreaContextOverrides struct {
	// Allocate allocates a width and/or a height for all rows which are to be
	// rendered with context.
	//
	// Usually allocation is performed only horizontally or sometimes vertically
	// since a group of rows are usually rendered side by side vertically
	// or horizontally and share either the same width or the same height.
	// Sometimes they are allocated in both horizontal and vertical orientations
	// producing a homogeneous effect of the rows. This is generally the case
	// for TreeView when TreeView:fixed-height-mode is enabled.
	//
	// Since 3.0.
	//
	// The function takes the following parameters:
	//
	//   - width: allocated width for all TreeModel rows rendered with context,
	//     or -1.
	//   - height: allocated height for all TreeModel rows rendered with
	//     context, or -1.
	//
	Allocate func(width, height int)
	// PreferredHeightForWidth gets the accumulative preferred height for width
	// for all rows which have been requested for the same said width with this
	// context.
	//
	// After gtk_cell_area_context_reset() is called and/or before ever
	// requesting the size of a CellArea, the returned values are -1.
	//
	// The function takes the following parameters:
	//
	//   - width: proposed width for allocation.
	//
	// The function returns the following values:
	//
	//   - minimumHeight (optional): location to store the minimum height,
	//     or NULL.
	//   - naturalHeight (optional): location to store the natural height,
	//     or NULL.
	//
	PreferredHeightForWidth func(width int) (minimumHeight, naturalHeight int)
	// PreferredWidthForHeight gets the accumulative preferred width for height
	// for all rows which have been requested for the same said height with this
	// context.
	//
	// After gtk_cell_area_context_reset() is called and/or before ever
	// requesting the size of a CellArea, the returned values are -1.
	//
	// The function takes the following parameters:
	//
	//   - height: proposed height for allocation.
	//
	// The function returns the following values:
	//
	//   - minimumWidth (optional): location to store the minimum width,
	//     or NULL.
	//   - naturalWidth (optional): location to store the natural width,
	//     or NULL.
	//
	PreferredWidthForHeight func(height int) (minimumWidth, naturalWidth int)
	// Reset resets any previously cached request and allocation data.
	//
	// When underlying TreeModel data changes its important to reset the
	// context if the content size is allowed to shrink. If the content
	// size is only allowed to grow (this is usually an option for views
	// rendering large data stores as a measure of optimization), then only
	// the row that changed or was inserted needs to be (re)requested with
	// gtk_cell_area_get_preferred_width().
	//
	// When the new overall size of the context requires that the allocated size
	// changes (or whenever this allocation changes at all), the variable row
	// sizes need to be re-requested for every row.
	//
	// For instance, if the rows are displayed all with the same
	// width from top to bottom then a change in the allocated width
	// necessitates a recalculation of all the displayed row heights using
	// gtk_cell_area_get_preferred_height_for_width().
	//
	// Since 3.0.
	Reset func()
}

CellAreaContextOverrides contains methods that are overridable.

type CellAreaOverrides added in v0.0.5

type CellAreaOverrides struct {
	// Activate activates area, usually by activating the currently focused
	// cell, however some subclasses which embed widgets in the area can also
	// activate a widget if it currently has the focus.
	//
	// The function takes the following parameters:
	//
	//   - context in context with the current row data.
	//   - widget that area is rendering on.
	//   - cellArea: size and location of area relative to widget’s allocation.
	//   - flags flags for area for this row of data.
	//   - editOnly: if TRUE then only cell renderers that are
	//     GTK_CELL_RENDERER_MODE_EDITABLE will be activated.
	//
	// The function returns the following values:
	//
	//   - ok: whether area was successfully activated.
	//
	Activate func(context *CellAreaContext, widget Widgetter, cellArea *gdk.Rectangle, flags CellRendererState, editOnly bool) bool
	// Add adds renderer to area with the default child cell properties.
	//
	// The function takes the following parameters:
	//
	//   - renderer to add to area.
	//
	Add func(renderer CellRendererer)
	// ApplyAttributes applies any connected attributes to the renderers in area
	// by pulling the values from tree_model.
	//
	// The function takes the following parameters:
	//
	//   - treeModel to pull values from.
	//   - iter in tree_model to apply values for.
	//   - isExpander: whether iter has children.
	//   - isExpanded: whether iter is expanded in the view and children are
	//     visible.
	//
	ApplyAttributes func(treeModel TreeModeller, iter *TreeIter, isExpander, isExpanded bool)
	// CopyContext: this is sometimes needed for cases where rows need to
	// share alignments in one orientation but may be separately grouped in the
	// opposing orientation.
	//
	// For instance, IconView creates all icons (rows) to have the same
	// width and the cells theirin to have the same horizontal alignments.
	// However each row of icons may have a separate collective height. IconView
	// uses this to request the heights of each row based on a context which was
	// already used to request all the row widths that are to be displayed.
	//
	// The function takes the following parameters:
	//
	//   - context to copy.
	//
	// The function returns the following values:
	//
	//   - cellAreaContext: newly created CellAreaContext copy of context.
	//
	CopyContext func(context *CellAreaContext) *CellAreaContext
	// CreateContext creates a CellAreaContext to be used with area for all
	// purposes. CellAreaContext stores geometry information for rows for which
	// it was operated on, it is important to use the same context for the same
	// row of data at all times (i.e. one should render and handle events with
	// the same CellAreaContext which was used to request the size of those rows
	// of data).
	//
	// The function returns the following values:
	//
	//   - cellAreaContext: newly created CellAreaContext which can be used with
	//     area.
	//
	CreateContext func() *CellAreaContext
	// Event delegates event handling to a CellArea.
	//
	// The function takes the following parameters:
	//
	//   - context for this row of data.
	//   - widget that area is rendering to.
	//   - event to handle.
	//   - cellArea: widget relative coordinates for area.
	//   - flags for area in this row.
	//
	// The function returns the following values:
	//
	//   - gint: TRUE if the event was handled by area.
	//
	Event func(context *CellAreaContext, widget Widgetter, event *gdk.Event, cellArea *gdk.Rectangle, flags CellRendererState) int
	// Focus: this should be called by the area’s owning layout widget when
	// focus is to be passed to area, or moved within area for a given direction
	// and row data.
	//
	// Implementing CellArea classes should implement this method to receive and
	// navigate focus in its own way particular to how it lays out cells.
	//
	// The function takes the following parameters:
	//
	//   - direction: DirectionType.
	//
	// The function returns the following values:
	//
	//   - ok: TRUE if focus remains inside area as a result of this call.
	//
	Focus func(direction DirectionType) bool
	// PreferredHeight retrieves a cell area’s initial minimum and natural
	// height.
	//
	// area will store some geometrical information in context along the way;
	// when requesting sizes over an arbitrary number of rows, it’s not
	// important to check the minimum_height and natural_height of this call but
	// rather to consult gtk_cell_area_context_get_preferred_height() after a
	// series of requests.
	//
	// The function takes the following parameters:
	//
	//   - context to perform this request with.
	//   - widget where area will be rendering.
	//
	// The function returns the following values:
	//
	//   - minimumHeight (optional): location to store the minimum height,
	//     or NULL.
	//   - naturalHeight (optional): location to store the natural height,
	//     or NULL.
	//
	PreferredHeight func(context *CellAreaContext, widget Widgetter) (minimumHeight, naturalHeight int)
	// PreferredHeightForWidth retrieves a cell area’s minimum and natural
	// height if it would be given the specified width.
	//
	// area stores some geometrical information in context along the way while
	// calling gtk_cell_area_get_preferred_width(). It’s important to perform a
	// series of gtk_cell_area_get_preferred_width() requests with context first
	// and then call gtk_cell_area_get_preferred_height_for_width() on each cell
	// area individually to get the height for width of each fully requested
	// row.
	//
	// If at some point, the width of a single row changes, it should
	// be requested with gtk_cell_area_get_preferred_width() again and
	// then the full width of the requested rows checked again with
	// gtk_cell_area_context_get_preferred_width().
	//
	// The function takes the following parameters:
	//
	//   - context which has already been requested for widths.
	//   - widget where area will be rendering.
	//   - width for which to check the height of this area.
	//
	// The function returns the following values:
	//
	//   - minimumHeight (optional): location to store the minimum height,
	//     or NULL.
	//   - naturalHeight (optional): location to store the natural height,
	//     or NULL.
	//
	PreferredHeightForWidth func(context *CellAreaContext, widget Widgetter, width int) (minimumHeight, naturalHeight int)
	// PreferredWidth retrieves a cell area’s initial minimum and natural width.
	//
	// area will store some geometrical information in context along the way;
	// when requesting sizes over an arbitrary number of rows, it’s not
	// important to check the minimum_width and natural_width of this call but
	// rather to consult gtk_cell_area_context_get_preferred_width() after a
	// series of requests.
	//
	// The function takes the following parameters:
	//
	//   - context to perform this request with.
	//   - widget where area will be rendering.
	//
	// The function returns the following values:
	//
	//   - minimumWidth (optional): location to store the minimum width,
	//     or NULL.
	//   - naturalWidth (optional): location to store the natural width,
	//     or NULL.
	//
	PreferredWidth func(context *CellAreaContext, widget Widgetter) (minimumWidth, naturalWidth int)
	// PreferredWidthForHeight retrieves a cell area’s minimum and natural width
	// if it would be given the specified height.
	//
	// area stores some geometrical information in context along the way while
	// calling gtk_cell_area_get_preferred_height(). It’s important to perform
	// a series of gtk_cell_area_get_preferred_height() requests with context
	// first and then call gtk_cell_area_get_preferred_width_for_height() on
	// each cell area individually to get the height for width of each fully
	// requested row.
	//
	// If at some point, the height of a single row changes, it should
	// be requested with gtk_cell_area_get_preferred_height() again and
	// then the full height of the requested rows checked again with
	// gtk_cell_area_context_get_preferred_height().
	//
	// The function takes the following parameters:
	//
	//   - context which has already been requested for widths.
	//   - widget where area will be rendering.
	//   - height for which to check the width of this area.
	//
	// The function returns the following values:
	//
	//   - minimumWidth (optional): location to store the minimum width,
	//     or NULL.
	//   - naturalWidth (optional): location to store the natural width,
	//     or NULL.
	//
	PreferredWidthForHeight func(context *CellAreaContext, widget Widgetter, height int) (minimumWidth, naturalWidth int)
	// RequestMode gets whether the area prefers a height-for-width layout or a
	// width-for-height layout.
	//
	// The function returns the following values:
	//
	//   - sizeRequestMode preferred by area.
	//
	RequestMode func() SizeRequestMode
	// IsActivatable returns whether the area can do anything when activated,
	// after applying new attributes to area.
	//
	// The function returns the following values:
	//
	//   - ok: whether area can do anything when activated.
	//
	IsActivatable func() bool
	// Remove removes renderer from area.
	//
	// The function takes the following parameters:
	//
	//   - renderer to remove from area.
	//
	Remove func(renderer CellRendererer)
	// Render renders area’s cells according to area’s layout onto widget at the
	// given coordinates.
	//
	// The function takes the following parameters:
	//
	//   - context for this row of data.
	//   - widget that area is rendering to.
	//   - cr to render with.
	//   - backgroundArea: widget relative coordinates for area’s background.
	//   - cellArea: widget relative coordinates for area.
	//   - flags for area in this row.
	//   - paintFocus: whether area should paint focus on focused cells for
	//     focused rows or not.
	//
	Render func(context *CellAreaContext, widget Widgetter, cr *cairo.Context, backgroundArea, cellArea *gdk.Rectangle, flags CellRendererState, paintFocus bool)
}

CellAreaOverrides contains methods that are overridable.

type CellAreaer

type CellAreaer interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

CellAreaer describes types inherited from class CellArea.

To get the original type, the caller must assert this to an interface or another type.

type CellCallback

type CellCallback func(renderer CellRendererer) (ok bool)

CellCallback: type of the callback functions used for iterating over the cell renderers of a CellArea, see gtk_cell_area_foreach().

type CellEditable

type CellEditable struct {
	Widget
	// contains filtered or unexported fields
}

CellEditable interface must be implemented for widgets to be usable to edit the contents of a TreeView cell. It provides a way to specify how temporary widgets should be configured for editing, get the new value, etc.

CellEditable wraps an interface. This means the user can get the underlying type by calling Cast().

func (*CellEditable) ConnectEditingDone

func (cellEditable *CellEditable) ConnectEditingDone(f func()) coreglib.SignalHandle

ConnectEditingDone: this signal is a sign for the cell renderer to update its value from the cell_editable.

Implementations of CellEditable are responsible for emitting this signal when they are done editing, e.g. Entry emits this signal when the user presses Enter. Typical things to do in a handler for ::editing-done are to capture the edited value, disconnect the cell_editable from signals on the CellRenderer, etc.

gtk_cell_editable_editing_done() is a convenience method for emitting CellEditable::editing-done.

func (*CellEditable) ConnectRemoveWidget

func (cellEditable *CellEditable) ConnectRemoveWidget(f func()) coreglib.SignalHandle

ConnectRemoveWidget: this signal is meant to indicate that the cell is finished editing, and the cell_editable widget is being removed and may subsequently be destroyed.

Implementations of CellEditable are responsible for emitting this signal when they are done editing. It must be emitted after the CellEditable::editing-done signal, to give the cell renderer a chance to update the cell's value before the widget is removed.

gtk_cell_editable_remove_widget() is a convenience method for emitting CellEditable::remove-widget.

func (*CellEditable) EditingDone

func (cellEditable *CellEditable) EditingDone()

EditingDone emits the CellEditable::editing-done signal.

func (*CellEditable) RemoveWidget

func (cellEditable *CellEditable) RemoveWidget()

RemoveWidget emits the CellEditable::remove-widget signal.

func (*CellEditable) StartEditing

func (cellEditable *CellEditable) StartEditing(event *gdk.Event)

StartEditing begins editing on a cell_editable.

The CellRenderer for the cell creates and returns a CellEditable from gtk_cell_renderer_start_editing(), configured for the CellRenderer type.

gtk_cell_editable_start_editing() can then set up cell_editable suitably for editing a cell, e.g. making the Esc key emit CellEditable::editing-done.

Note that the cell_editable is created on-demand for the current edit; its lifetime is temporary and does not persist across other edits and/or cells.

The function takes the following parameters:

  • event (optional) that began the editing process, or NULL if editing was initiated programmatically.

type CellEditableIface added in v0.0.5

type CellEditableIface struct {
	// contains filtered or unexported fields
}

CellEditableIface: instance of this type is always passed by reference.

type CellEditabler

type CellEditabler interface {
	coreglib.Objector

	// EditingDone emits the CellEditable::editing-done signal.
	EditingDone()
	// RemoveWidget emits the CellEditable::remove-widget signal.
	RemoveWidget()
	// StartEditing begins editing on a cell_editable.
	StartEditing(event *gdk.Event)

	// Editing-done: this signal is a sign for the cell renderer to update its
	// value from the cell_editable.
	ConnectEditingDone(func()) coreglib.SignalHandle
	// Remove-widget: this signal is meant to indicate that the cell is
	// finished editing, and the cell_editable widget is being removed and may
	// subsequently be destroyed.
	ConnectRemoveWidget(func()) coreglib.SignalHandle
}

CellEditabler describes CellEditable's interface methods.

type CellLayout

type CellLayout struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

CellLayout is an interface to be implemented by all objects which want to provide a TreeViewColumn like API for packing cells, setting attributes and data funcs.

One of the notable features provided by implementations of GtkCellLayout are attributes. Attributes let you set the properties in flexible ways. They can just be set to constant values like regular properties. But they can also be mapped to a column of the underlying tree model with gtk_cell_layout_set_attributes(), which means that the value of the attribute can change from cell to cell as they are rendered by the cell renderer. Finally, it is possible to specify a function with gtk_cell_layout_set_cell_data_func() that is called to determine the value of the attribute for each cell that is rendered.

GtkCellLayouts as GtkBuildable

Implementations of GtkCellLayout which also implement the GtkBuildable interface (CellView, IconView, ComboBox, EntryCompletion, TreeViewColumn) accept GtkCellRenderer objects as <child> elements in UI definitions. They support a custom <attributes> element for their children, which can contain multiple <attribute> elements. Each <attribute> element has a name attribute which specifies a property of the cell renderer; the content of the element is the attribute value.

This is an example of a UI definition fragment specifying attributes:

<object class="GtkCellView">
  <child>
    <object class="GtkCellRendererText"/>
    <attributes>
      <attribute name="text">0</attribute>
    </attributes>
  </child>"
</object>

Furthermore for implementations of GtkCellLayout that use a CellArea to lay out cells (all GtkCellLayouts in GTK+ use a GtkCellArea) [cell properties][cell-properties] can also be defined in the format by specifying the custom <cell-packing> attribute which can contain multiple <property> elements defined in the normal way.

Here is a UI definition fragment specifying cell properties:

<object class="GtkTreeViewColumn">
  <child>
    <object class="GtkCellRendererText"/>
    <cell-packing>
      <property name="align">True</property>
      <property name="expand">False</property>
    </cell-packing>
  </child>"
</object>

Subclassing GtkCellLayout implementations

When subclassing a widget that implements CellLayout like IconView or ComboBox, there are some considerations related to the fact that these widgets internally use a CellArea. The cell area is exposed as a construct-only property by these widgets. This means that it is possible to e.g. do

static void
my_combo_box_init (MyComboBox *b)
{
  GtkCellRenderer *cell;

  cell = gtk_cell_renderer_pixbuf_new ();
  // The following call causes the default cell area for combo boxes,
  // a GtkCellAreaBox, to be instantiated
  gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (b), cell, FALSE);
  ...
}

GtkWidget *
my_combo_box_new (GtkCellArea *area)
{
  // This call is going to cause a warning about area being ignored
  return g_object_new (MY_TYPE_COMBO_BOX, "cell-area", area, NULL);
}

If supporting alternative cell areas with your derived widget is not important, then this does not have to concern you. If you want to support alternative cell areas, you can do so by moving the problematic calls out of init() and into a constructor() for your class.

CellLayout wraps an interface. This means the user can get the underlying type by calling Cast().

func (*CellLayout) AddAttribute

func (cellLayout *CellLayout) AddAttribute(cell CellRendererer, attribute string, column int)

AddAttribute adds an attribute mapping to the list in cell_layout.

The column is the column of the model to get a value from, and the attribute is the parameter on cell to be set from the value. So for example if column 2 of the model contains strings, you could have the “text” attribute of a CellRendererText get its values from column 2.

The function takes the following parameters:

  • cell: CellRenderer.
  • attribute on the renderer.
  • column position on the model to get the attribute from.

func (*CellLayout) Area

func (cellLayout *CellLayout) Area() CellAreaer

Area returns the underlying CellArea which might be cell_layout if called on a CellArea or might be NULL if no CellArea is used by cell_layout.

The function returns the following values:

  • cellArea (optional): cell area used by cell_layout, or NULL in case no cell area is used.

func (*CellLayout) Cells

func (cellLayout *CellLayout) Cells() []CellRendererer

Cells returns the cell renderers which have been added to cell_layout.

The function returns the following values:

  • list: a list of cell renderers. The list, but not the renderers has been newly allocated and should be freed with g_list_free() when no longer needed.

func (*CellLayout) Clear

func (cellLayout *CellLayout) Clear()

Clear unsets all the mappings on all renderers on cell_layout and removes all renderers from cell_layout.

func (*CellLayout) ClearAttributes

func (cellLayout *CellLayout) ClearAttributes(cell CellRendererer)

ClearAttributes clears all existing attributes previously set with gtk_cell_layout_set_attributes().

The function takes the following parameters:

  • cell to clear the attribute mapping on.

func (*CellLayout) PackEnd

func (cellLayout *CellLayout) PackEnd(cell CellRendererer, expand bool)

PackEnd adds the cell to the end of cell_layout. If expand is FALSE, then the cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which expand is TRUE.

Note that reusing the same cell renderer is not supported.

The function takes the following parameters:

  • cell: CellRenderer.
  • expand: TRUE if cell is to be given extra space allocated to cell_layout.

func (*CellLayout) PackStart

func (cellLayout *CellLayout) PackStart(cell CellRendererer, expand bool)

PackStart packs the cell into the beginning of cell_layout. If expand is FALSE, then the cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which expand is TRUE.

Note that reusing the same cell renderer is not supported.

The function takes the following parameters:

  • cell: CellRenderer.
  • expand: TRUE if cell is to be given extra space allocated to cell_layout.

func (*CellLayout) Reorder

func (cellLayout *CellLayout) Reorder(cell CellRendererer, position int)

Reorder re-inserts cell at position.

Note that cell has already to be packed into cell_layout for this to function properly.

The function takes the following parameters:

  • cell to reorder.
  • position: new position to insert cell at.

func (*CellLayout) SetCellDataFunc

func (cellLayout *CellLayout) SetCellDataFunc(cell CellRendererer, fn CellLayoutDataFunc)

SetCellDataFunc sets the CellLayoutDataFunc to use for cell_layout.

This function is used instead of the standard attributes mapping for setting the column value, and should set the value of cell_layout’s cell renderer(s) as appropriate.

func may be NULL to remove a previously set function.

The function takes the following parameters:

  • cell: CellRenderer.
  • fn (optional) to use, or NULL.

type CellLayoutDataFunc

type CellLayoutDataFunc func(cellLayout CellLayouter, cell CellRendererer, treeModel TreeModeller, iter *TreeIter)

CellLayoutDataFunc: function which should set the value of cell_layout’s cell renderer(s) as appropriate.

type CellLayoutIface added in v0.0.5

type CellLayoutIface struct {
	// contains filtered or unexported fields
}

CellLayoutIface: instance of this type is always passed by reference.

type CellLayouter

type CellLayouter interface {
	coreglib.Objector

	// AddAttribute adds an attribute mapping to the list in cell_layout.
	AddAttribute(cell CellRendererer, attribute string, column int)
	// Clear unsets all the mappings on all renderers on cell_layout and removes
	// all renderers from cell_layout.
	Clear()
	// ClearAttributes clears all existing attributes previously set with
	// gtk_cell_layout_set_attributes().
	ClearAttributes(cell CellRendererer)
	// Area returns the underlying CellArea which might be cell_layout if called
	// on a CellArea or might be NULL if no CellArea is used by cell_layout.
	Area() CellAreaer
	// Cells returns the cell renderers which have been added to cell_layout.
	Cells() []CellRendererer
	// PackEnd adds the cell to the end of cell_layout.
	PackEnd(cell CellRendererer, expand bool)
	// PackStart packs the cell into the beginning of cell_layout.
	PackStart(cell CellRendererer, expand bool)
	// Reorder re-inserts cell at position.
	Reorder(cell CellRendererer, position int)
	// SetCellDataFunc sets the CellLayoutDataFunc to use for cell_layout.
	SetCellDataFunc(cell CellRendererer, fn CellLayoutDataFunc)
}

CellLayouter describes CellLayout's interface methods.

type CellRenderer

type CellRenderer struct {
	coreglib.InitiallyUnowned
	// contains filtered or unexported fields
}

CellRenderer is a base class of a set of objects used for rendering a cell to a #cairo_t. These objects are used primarily by the TreeView widget, though they aren’t tied to them in any specific way. It is worth noting that CellRenderer is not a Widget and cannot be treated as such.

The primary use of a CellRenderer is for drawing a certain graphical elements on a #cairo_t. Typically, one cell renderer is used to draw many cells on the screen. To this extent, it isn’t expected that a CellRenderer keep any permanent state around. Instead, any state is set just prior to use using #GObjects property system. Then, the cell is measured using gtk_cell_renderer_get_size(). Finally, the cell is rendered in the correct location using gtk_cell_renderer_render().

There are a number of rules that must be followed when writing a new CellRenderer. First and foremost, it’s important that a certain set of properties will always yield a cell renderer of the same size, barring a Style change. The CellRenderer also has a number of generic properties that are expected to be honored by all children.

Beyond merely rendering a cell, cell renderers can optionally provide active user interface elements. A cell renderer can be “activatable” like CellRendererToggle, which toggles when it gets activated by a mouse click, or it can be “editable” like CellRendererText, which allows the user to edit the text using a widget implementing the CellEditable interface, e.g. Entry. To make a cell renderer activatable or editable, you have to implement the CellRendererClass.activate or CellRendererClass.start_editing virtual functions, respectively.

Many properties of CellRenderer and its subclasses have a corresponding “set” property, e.g. “cell-background-set” corresponds to “cell-background”. These “set” properties reflect whether a property has been set or not. You should not set them independently.

func BaseCellRenderer

func BaseCellRenderer(obj CellRendererer) *CellRenderer

BaseCellRenderer returns the underlying base object.

func (*CellRenderer) Activate

func (cell *CellRenderer) Activate(event *gdk.Event, widget Widgetter, path string, backgroundArea, cellArea *gdk.Rectangle, flags CellRendererState) bool

Activate passes an activate event to the cell renderer for possible processing. Some cell renderers may use events; for example, CellRendererToggle toggles when it gets a mouse click.

The function takes the following parameters:

  • event: Event.
  • widget that received the event.
  • path: widget-dependent string representation of the event location; e.g. for TreeView, a string representation of TreePath.
  • backgroundArea: background area as passed to gtk_cell_renderer_render().
  • cellArea: cell area as passed to gtk_cell_renderer_render().
  • flags: render flags.

The function returns the following values:

  • ok: TRUE if the event was consumed/handled.

func (*CellRenderer) AlignedArea

func (cell *CellRenderer) AlignedArea(widget Widgetter, flags CellRendererState, cellArea *gdk.Rectangle) *gdk.Rectangle

AlignedArea gets the aligned area used by cell inside cell_area. Used for finding the appropriate edit and focus rectangle.

The function takes the following parameters:

  • widget this cell will be rendering to.
  • flags: render flags.
  • cellArea: cell area which would be passed to gtk_cell_renderer_render().

The function returns the following values:

  • alignedArea: return location for the space inside cell_area that would acually be used to render.

func (*CellRenderer) Alignment

func (cell *CellRenderer) Alignment() (xalign, yalign float32)

Alignment fills in xalign and yalign with the appropriate values of cell.

The function returns the following values:

  • xalign (optional): location to fill in with the x alignment of the cell, or NULL.
  • yalign (optional): location to fill in with the y alignment of the cell, or NULL.

func (*CellRenderer) ConnectEditingCanceled

func (cell *CellRenderer) ConnectEditingCanceled(f func()) coreglib.SignalHandle

ConnectEditingCanceled: this signal gets emitted when the user cancels the process of editing a cell. For example, an editable cell renderer could be written to cancel editing when the user presses Escape.

See also: gtk_cell_renderer_stop_editing().

func (*CellRenderer) ConnectEditingStarted

func (cell *CellRenderer) ConnectEditingStarted(f func(editable CellEditabler, path string)) coreglib.SignalHandle

ConnectEditingStarted: this signal gets emitted when a cell starts to be edited. The intended use of this signal is to do special setup on editable, e.g. adding a EntryCompletion or setting up additional columns in a ComboBox.

See gtk_cell_editable_start_editing() for information on the lifecycle of the editable and a way to do setup that doesn’t depend on the renderer.

Note that GTK+ doesn't guarantee that cell renderers will continue to use the same kind of widget for editing in future releases, therefore you should check the type of editable before doing any specific setup, as in the following example:

static void
text_editing_started (GtkCellRenderer *cell,
                      GtkCellEditable *editable,
                      const gchar     *path,
                      gpointer         data)
{
  if (GTK_IS_ENTRY (editable))
    {
      GtkEntry *entry = GTK_ENTRY (editable);

      // ... create a GtkEntryCompletion

      gtk_entry_set_completion (entry, completion);
    }
}.

func (*CellRenderer) FixedSize

func (cell *CellRenderer) FixedSize() (width, height int)

FixedSize fills in width and height with the appropriate size of cell.

The function returns the following values:

  • width (optional): location to fill in with the fixed width of the cell, or NULL.
  • height (optional): location to fill in with the fixed height of the cell, or NULL.

func (*CellRenderer) IsActivatable

func (cell *CellRenderer) IsActivatable() bool

IsActivatable checks whether the cell renderer can do something when activated.

The function returns the following values:

  • ok: TRUE if the cell renderer can do anything when activated.

func (*CellRenderer) Padding

func (cell *CellRenderer) Padding() (xpad, ypad int)

Padding fills in xpad and ypad with the appropriate values of cell.

The function returns the following values:

  • xpad (optional): location to fill in with the x padding of the cell, or NULL.
  • ypad (optional): location to fill in with the y padding of the cell, or NULL.

func (*CellRenderer) PreferredHeight

func (cell *CellRenderer) PreferredHeight(widget Widgetter) (minimumSize, naturalSize int)

PreferredHeight retreives a renderer’s natural size when rendered to widget.

The function takes the following parameters:

  • widget this cell will be rendering to.

The function returns the following values:

  • minimumSize (optional): location to store the minimum size, or NULL.
  • naturalSize (optional): location to store the natural size, or NULL.

func (*CellRenderer) PreferredHeightForWidth

func (cell *CellRenderer) PreferredHeightForWidth(widget Widgetter, width int) (minimumHeight, naturalHeight int)

PreferredHeightForWidth retreives a cell renderers’s minimum and natural height if it were rendered to widget with the specified width.

The function takes the following parameters:

  • widget this cell will be rendering to.
  • width: size which is available for allocation.

The function returns the following values:

  • minimumHeight (optional): location for storing the minimum size, or NULL.
  • naturalHeight (optional): location for storing the preferred size, or NULL.

func (*CellRenderer) PreferredSize

func (cell *CellRenderer) PreferredSize(widget Widgetter) (minimumSize, naturalSize *Requisition)

PreferredSize retrieves the minimum and natural size of a cell taking into account the widget’s preference for height-for-width management.

The function takes the following parameters:

  • widget this cell will be rendering to.

The function returns the following values:

  • minimumSize (optional): location for storing the minimum size, or NULL.
  • naturalSize (optional): location for storing the natural size, or NULL.

func (*CellRenderer) PreferredWidth

func (cell *CellRenderer) PreferredWidth(widget Widgetter) (minimumSize, naturalSize int)

PreferredWidth retreives a renderer’s natural size when rendered to widget.

The function takes the following parameters:

  • widget this cell will be rendering to.

The function returns the following values:

  • minimumSize (optional): location to store the minimum size, or NULL.
  • naturalSize (optional): location to store the natural size, or NULL.

func (*CellRenderer) PreferredWidthForHeight

func (cell *CellRenderer) PreferredWidthForHeight(widget Widgetter, height int) (minimumWidth, naturalWidth int)

PreferredWidthForHeight retreives a cell renderers’s minimum and natural width if it were rendered to widget with the specified height.

The function takes the following parameters:

  • widget this cell will be rendering to.
  • height: size which is available for allocation.

The function returns the following values:

  • minimumWidth (optional): location for storing the minimum size, or NULL.
  • naturalWidth (optional): location for storing the preferred size, or NULL.

func (*CellRenderer) Render

func (cell *CellRenderer) Render(cr *cairo.Context, widget Widgetter, backgroundArea, cellArea *gdk.Rectangle, flags CellRendererState)

Render invokes the virtual render function of the CellRenderer. The three passed-in rectangles are areas in cr. Most renderers will draw within cell_area; the xalign, yalign, xpad, and ypad fields of the CellRenderer should be honored with respect to cell_area. background_area includes the blank space around the cell, and also the area containing the tree expander; so the background_area rectangles for all cells tile to cover the entire window.

The function takes the following parameters:

  • cr: cairo context to draw to.
  • widget owning window.
  • backgroundArea: entire cell area (including tree expanders and maybe padding on the sides).
  • cellArea: area normally rendered by a cell renderer.
  • flags that affect rendering.

func (*CellRenderer) RequestMode

func (cell *CellRenderer) RequestMode() SizeRequestMode

RequestMode gets whether the cell renderer prefers a height-for-width layout or a width-for-height layout.

The function returns the following values:

  • sizeRequestMode preferred by this renderer.

func (*CellRenderer) Sensitive

func (cell *CellRenderer) Sensitive() bool

Sensitive returns the cell renderer’s sensitivity.

The function returns the following values:

  • ok: TRUE if the cell renderer is sensitive.

func (*CellRenderer) SetAlignment

func (cell *CellRenderer) SetAlignment(xalign, yalign float32)

SetAlignment sets the renderer’s alignment within its available space.

The function takes the following parameters:

  • xalign: x alignment of the cell renderer.
  • yalign: y alignment of the cell renderer.

func (*CellRenderer) SetFixedSize

func (cell *CellRenderer) SetFixedSize(width, height int)

SetFixedSize sets the renderer size to be explicit, independent of the properties set.

The function takes the following parameters:

  • width of the cell renderer, or -1.
  • height of the cell renderer, or -1.

func (*CellRenderer) SetPadding

func (cell *CellRenderer) SetPadding(xpad, ypad int)

SetPadding sets the renderer’s padding.

The function takes the following parameters:

  • xpad: x padding of the cell renderer.
  • ypad: y padding of the cell renderer.

func (*CellRenderer) SetSensitive

func (cell *CellRenderer) SetSensitive(sensitive bool)

SetSensitive sets the cell renderer’s sensitivity.

The function takes the following parameters:

  • sensitive: sensitivity of the cell.

func (*CellRenderer) SetVisible

func (cell *CellRenderer) SetVisible(visible bool)

SetVisible sets the cell renderer’s visibility.

The function takes the following parameters:

  • visible: visibility of the cell.

func (*CellRenderer) Size deprecated

func (cell *CellRenderer) Size(widget Widgetter, cellArea *gdk.Rectangle) (xOffset, yOffset, width, height int)

Size obtains the width and height needed to render the cell. Used by view widgets to determine the appropriate size for the cell_area passed to gtk_cell_renderer_render(). If cell_area is not NULL, fills in the x and y offsets (if set) of the cell relative to this location.

Please note that the values set in width and height, as well as those in x_offset and y_offset are inclusive of the xpad and ypad properties.

Deprecated: Use gtk_cell_renderer_get_preferred_size() instead.

The function takes the following parameters:

  • widget the renderer is rendering to.
  • cellArea (optional): area a cell will be allocated, or NULL.

The function returns the following values:

  • xOffset (optional): location to return x offset of cell relative to cell_area, or NULL.
  • yOffset (optional): location to return y offset of cell relative to cell_area, or NULL.
  • width (optional): location to return width needed to render a cell, or NULL.
  • height (optional): location to return height needed to render a cell, or NULL.

func (*CellRenderer) StartEditing

func (cell *CellRenderer) StartEditing(event *gdk.Event, widget Widgetter, path string, backgroundArea, cellArea *gdk.Rectangle, flags CellRendererState) *CellEditable

StartEditing starts editing the contents of this cell, through a new CellEditable widget created by the CellRendererClass.start_editing virtual function.

The function takes the following parameters:

  • event (optional): Event.
  • widget that received the event.
  • path: widget-dependent string representation of the event location; e.g. for TreeView, a string representation of TreePath.
  • backgroundArea: background area as passed to gtk_cell_renderer_render().
  • cellArea: cell area as passed to gtk_cell_renderer_render().
  • flags: render flags.

The function returns the following values:

  • cellEditable (optional): new CellEditable for editing this cell, or NULL if editing is not possible.

func (*CellRenderer) State

func (cell *CellRenderer) State(widget Widgetter, cellState CellRendererState) StateFlags

State translates the cell renderer state to StateFlags, based on the cell renderer and widget sensitivity, and the given CellRendererState.

The function takes the following parameters:

  • widget (optional) or NULL.
  • cellState: cell renderer state.

The function returns the following values:

  • stateFlags: widget state flags applying to cell.

func (*CellRenderer) StopEditing

func (cell *CellRenderer) StopEditing(canceled bool)

StopEditing informs the cell renderer that the editing is stopped. If canceled is TRUE, the cell renderer will emit the CellRenderer::editing-canceled signal.

This function should be called by cell renderer implementations in response to the CellEditable::editing-done signal of CellEditable.

The function takes the following parameters:

  • canceled: TRUE if the editing has been canceled.

func (*CellRenderer) Visible

func (cell *CellRenderer) Visible() bool

Visible returns the cell renderer’s visibility.

The function returns the following values:

  • ok: TRUE if the cell renderer is visible.

type CellRendererAccel

type CellRendererAccel struct {
	CellRendererText
	// contains filtered or unexported fields
}

CellRendererAccel displays a keyboard accelerator (i.e. a key combination like Control + a). If the cell renderer is editable, the accelerator can be changed by simply typing the new combination.

The CellRendererAccel cell renderer was added in GTK+ 2.10.

func NewCellRendererAccel

func NewCellRendererAccel() *CellRendererAccel

NewCellRendererAccel creates a new CellRendererAccel.

The function returns the following values:

  • cellRendererAccel: new cell renderer.

func (*CellRendererAccel) ConnectAccelCleared

func (v *CellRendererAccel) ConnectAccelCleared(f func(pathString string)) coreglib.SignalHandle

ConnectAccelCleared gets emitted when the user has removed the accelerator.

func (*CellRendererAccel) ConnectAccelEdited

func (v *CellRendererAccel) ConnectAccelEdited(f func(pathString string, accelKey uint, accelMods gdk.ModifierType, hardwareKeycode uint)) coreglib.SignalHandle

ConnectAccelEdited gets emitted when the user has selected a new accelerator.

type CellRendererAccelClass added in v0.0.5

type CellRendererAccelClass struct {
	// contains filtered or unexported fields
}

CellRendererAccelClass: instance of this type is always passed by reference.

func (*CellRendererAccelClass) ParentClass added in v0.0.5

type CellRendererAccelMode

type CellRendererAccelMode C.gint

CellRendererAccelMode determines if the edited accelerators are GTK+ accelerators. If they are, consumed modifiers are suppressed, only accelerators accepted by GTK+ are allowed, and the accelerators are rendered in the same way as they are in menus.

const (
	// CellRendererAccelModeGTK: GTK+ accelerators mode.
	CellRendererAccelModeGTK CellRendererAccelMode = iota
	// CellRendererAccelModeOther: other accelerator mode.
	CellRendererAccelModeOther
)

func (CellRendererAccelMode) String

func (c CellRendererAccelMode) String() string

String returns the name in string for CellRendererAccelMode.

type CellRendererAccelOverrides added in v0.0.5

type CellRendererAccelOverrides struct {
	// The function takes the following parameters:
	//
	AccelCleared func(pathString string)
	// The function takes the following parameters:
	//
	//   - pathString
	//   - accelKey
	//   - accelMods
	//   - hardwareKeycode
	//
	AccelEdited func(pathString string, accelKey uint, accelMods gdk.ModifierType, hardwareKeycode uint)
}

CellRendererAccelOverrides contains methods that are overridable.

type CellRendererClass added in v0.0.5

type CellRendererClass struct {
	// contains filtered or unexported fields
}

CellRendererClass: instance of this type is always passed by reference.

func (*CellRendererClass) SetAccessibleType added in v0.0.5

func (rendererClass *CellRendererClass) SetAccessibleType(typ coreglib.Type)

SetAccessibleType sets the type to be used for creating accessibles for cells rendered by cell renderers of renderer_class. Note that multiple accessibles will be created.

This function should only be called from class init functions of cell renderers.

The function takes the following parameters:

  • typ: object type that implements the accessible for widget_class. The type must be a subtype of RendererCellAccessible.

type CellRendererCombo

type CellRendererCombo struct {
	CellRendererText
	// contains filtered or unexported fields
}

CellRendererCombo renders text in a cell like CellRendererText from which it is derived. But while CellRendererText offers a simple entry to edit the text, CellRendererCombo offers a ComboBox widget to edit the text. The values to display in the combo box are taken from the tree model specified in the CellRendererCombo:model property.

The combo cell renderer takes care of adding a text cell renderer to the combo box and sets it to display the column specified by its CellRendererCombo:text-column property. Further properties of the combo box can be set in a handler for the CellRenderer::editing-started signal.

The CellRendererCombo cell renderer was added in GTK+ 2.6.

func NewCellRendererCombo

func NewCellRendererCombo() *CellRendererCombo

NewCellRendererCombo creates a new CellRendererCombo. Adjust how text is drawn using object properties. Object properties can be set globally (with g_object_set()). Also, with TreeViewColumn, you can bind a property to a value in a TreeModel. For example, you can bind the “text” property on the cell renderer to a string value in the model, thus rendering a different string in each row of the TreeView.

The function returns the following values:

  • cellRendererCombo: new cell renderer.

func (*CellRendererCombo) ConnectChanged

func (v *CellRendererCombo) ConnectChanged(f func(pathString string, newIter *TreeIter)) coreglib.SignalHandle

ConnectChanged: this signal is emitted each time after the user selected an item in the combo box, either by using the mouse or the arrow keys. Contrary to GtkComboBox, GtkCellRendererCombo::changed is not emitted for changes made to a selected item in the entry. The argument new_iter corresponds to the newly selected item in the combo box and it is relative to the GtkTreeModel set via the model property on GtkCellRendererCombo.

Note that as soon as you change the model displayed in the tree view, the tree view will immediately cease the editing operating. This means that you most probably want to refrain from changing the model until the combo cell renderer emits the edited or editing_canceled signal.

type CellRendererComboClass added in v0.0.5

type CellRendererComboClass struct {
	// contains filtered or unexported fields
}

CellRendererComboClass: instance of this type is always passed by reference.

func (*CellRendererComboClass) Parent added in v0.0.5

type CellRendererComboOverrides added in v0.0.5

type CellRendererComboOverrides struct {
}

CellRendererComboOverrides contains methods that are overridable.

type CellRendererMode

type CellRendererMode C.gint

CellRendererMode identifies how the user can interact with a particular cell.

const (
	// CellRendererModeInert: cell is just for display and cannot be interacted
	// with. Note that this doesn’t mean that eg. the row being drawn can’t be
	// selected -- just that a particular element of it cannot be individually
	// modified.
	CellRendererModeInert CellRendererMode = iota
	// CellRendererModeActivatable: cell can be clicked.
	CellRendererModeActivatable
	// CellRendererModeEditable: cell can be edited or otherwise modified.
	CellRendererModeEditable
)

func (CellRendererMode) String

func (c CellRendererMode) String() string

String returns the name in string for CellRendererMode.

type CellRendererOverrides added in v0.0.5

type CellRendererOverrides struct {
	// Activate passes an activate event to the cell renderer for possible
	// processing. Some cell renderers may use events; for example,
	// CellRendererToggle toggles when it gets a mouse click.
	//
	// The function takes the following parameters:
	//
	//   - event: Event.
	//   - widget that received the event.
	//   - path: widget-dependent string representation of the event location;
	//     e.g. for TreeView, a string representation of TreePath.
	//   - backgroundArea: background area as passed to
	//     gtk_cell_renderer_render().
	//   - cellArea: cell area as passed to gtk_cell_renderer_render().
	//   - flags: render flags.
	//
	// The function returns the following values:
	//
	//   - ok: TRUE if the event was consumed/handled.
	//
	Activate        func(event *gdk.Event, widget Widgetter, path string, backgroundArea, cellArea *gdk.Rectangle, flags CellRendererState) bool
	EditingCanceled func()
	// The function takes the following parameters:
	//
	//   - editable
	//   - path
	//
	EditingStarted func(editable CellEditabler, path string)
	// AlignedArea gets the aligned area used by cell inside cell_area. Used for
	// finding the appropriate edit and focus rectangle.
	//
	// The function takes the following parameters:
	//
	//   - widget this cell will be rendering to.
	//   - flags: render flags.
	//   - cellArea: cell area which would be passed to
	//     gtk_cell_renderer_render().
	//
	// The function returns the following values:
	//
	//   - alignedArea: return location for the space inside cell_area that
	//     would acually be used to render.
	//
	AlignedArea func(widget Widgetter, flags CellRendererState, cellArea *gdk.Rectangle) *gdk.Rectangle
	// PreferredHeight retreives a renderer’s natural size when rendered to
	// widget.
	//
	// The function takes the following parameters:
	//
	//   - widget this cell will be rendering to.
	//
	// The function returns the following values:
	//
	//   - minimumSize (optional): location to store the minimum size, or NULL.
	//   - naturalSize (optional): location to store the natural size, or NULL.
	//
	PreferredHeight func(widget Widgetter) (minimumSize, naturalSize int)
	// PreferredHeightForWidth retreives a cell renderers’s minimum and natural
	// height if it were rendered to widget with the specified width.
	//
	// The function takes the following parameters:
	//
	//   - widget this cell will be rendering to.
	//   - width: size which is available for allocation.
	//
	// The function returns the following values:
	//
	//   - minimumHeight (optional): location for storing the minimum size,
	//     or NULL.
	//   - naturalHeight (optional): location for storing the preferred size,
	//     or NULL.
	//
	PreferredHeightForWidth func(widget Widgetter, width int) (minimumHeight, naturalHeight int)
	// PreferredWidth retreives a renderer’s natural size when rendered to
	// widget.
	//
	// The function takes the following parameters:
	//
	//   - widget this cell will be rendering to.
	//
	// The function returns the following values:
	//
	//   - minimumSize (optional): location to store the minimum size, or NULL.
	//   - naturalSize (optional): location to store the natural size, or NULL.
	//
	PreferredWidth func(widget Widgetter) (minimumSize, naturalSize int)
	// PreferredWidthForHeight retreives a cell renderers’s minimum and natural
	// width if it were rendered to widget with the specified height.
	//
	// The function takes the following parameters:
	//
	//   - widget this cell will be rendering to.
	//   - height: size which is available for allocation.
	//
	// The function returns the following values:
	//
	//   - minimumWidth (optional): location for storing the minimum size,
	//     or NULL.
	//   - naturalWidth (optional): location for storing the preferred size,
	//     or NULL.
	//
	PreferredWidthForHeight func(widget Widgetter, height int) (minimumWidth, naturalWidth int)
	// RequestMode gets whether the cell renderer prefers a height-for-width
	// layout or a width-for-height layout.
	//
	// The function returns the following values:
	//
	//   - sizeRequestMode preferred by this renderer.
	//
	RequestMode func() SizeRequestMode
	// Size obtains the width and height needed to render the cell. Used by view
	// widgets to determine the appropriate size for the cell_area passed to
	// gtk_cell_renderer_render(). If cell_area is not NULL, fills in the x and
	// y offsets (if set) of the cell relative to this location.
	//
	// Please note that the values set in width and height, as well as those in
	// x_offset and y_offset are inclusive of the xpad and ypad properties.
	//
	// Deprecated: Use gtk_cell_renderer_get_preferred_size() instead.
	//
	// The function takes the following parameters:
	//
	//   - widget the renderer is rendering to.
	//   - cellArea (optional): area a cell will be allocated, or NULL.
	//
	// The function returns the following values:
	//
	//   - xOffset (optional): location to return x offset of cell relative to
	//     cell_area, or NULL.
	//   - yOffset (optional): location to return y offset of cell relative to
	//     cell_area, or NULL.
	//   - width (optional): location to return width needed to render a cell,
	//     or NULL.
	//   - height (optional): location to return height needed to render a cell,
	//     or NULL.
	//
	Size func(widget Widgetter, cellArea *gdk.Rectangle) (xOffset, yOffset, width, height int)
	// Render invokes the virtual render function of the CellRenderer. The three
	// passed-in rectangles are areas in cr. Most renderers will draw within
	// cell_area; the xalign, yalign, xpad, and ypad fields of the CellRenderer
	// should be honored with respect to cell_area. background_area includes
	// the blank space around the cell, and also the area containing the tree
	// expander; so the background_area rectangles for all cells tile to cover
	// the entire window.
	//
	// The function takes the following parameters:
	//
	//   - cr: cairo context to draw to.
	//   - widget owning window.
	//   - backgroundArea: entire cell area (including tree expanders and maybe
	//     padding on the sides).
	//   - cellArea: area normally rendered by a cell renderer.
	//   - flags that affect rendering.
	//
	Render func(cr *cairo.Context, widget Widgetter, backgroundArea, cellArea *gdk.Rectangle, flags CellRendererState)
	// StartEditing starts editing the contents of this cell, through a new
	// CellEditable widget created by the CellRendererClass.start_editing
	// virtual function.
	//
	// The function takes the following parameters:
	//
	//   - event (optional): Event.
	//   - widget that received the event.
	//   - path: widget-dependent string representation of the event location;
	//     e.g. for TreeView, a string representation of TreePath.
	//   - backgroundArea: background area as passed to
	//     gtk_cell_renderer_render().
	//   - cellArea: cell area as passed to gtk_cell_renderer_render().
	//   - flags: render flags.
	//
	// The function returns the following values:
	//
	//   - cellEditable (optional): new CellEditable for editing this cell,
	//     or NULL if editing is not possible.
	//
	StartEditing func(event *gdk.Event, widget Widgetter, path string, backgroundArea, cellArea *gdk.Rectangle, flags CellRendererState) *CellEditable
}

CellRendererOverrides contains methods that are overridable.

type CellRendererPixbuf

type CellRendererPixbuf struct {
	CellRenderer
	// contains filtered or unexported fields
}

CellRendererPixbuf can be used to render an image in a cell. It allows to render either a given Pixbuf (set via the CellRendererPixbuf:pixbuf property) or a named icon (set via the CellRendererPixbuf:icon-name property).

To support the tree view, CellRendererPixbuf also supports rendering two alternative pixbufs, when the CellRenderer:is-expander property is TRUE. If the CellRenderer:is-expanded property is TRUE and the CellRendererPixbuf:pixbuf-expander-open property is set to a pixbuf, it renders that pixbuf, if the CellRenderer:is-expanded property is FALSE and the CellRendererPixbuf:pixbuf-expander-closed property is set to a pixbuf, it renders that one.

func NewCellRendererPixbuf

func NewCellRendererPixbuf() *CellRendererPixbuf

NewCellRendererPixbuf creates a new CellRendererPixbuf. Adjust rendering parameters using object properties. Object properties can be set globally (with g_object_set()). Also, with TreeViewColumn, you can bind a property to a value in a TreeModel. For example, you can bind the “pixbuf” property on the cell renderer to a pixbuf value in the model, thus rendering a different image in each row of the TreeView.

The function returns the following values:

  • cellRendererPixbuf: new cell renderer.

type CellRendererPixbufClass added in v0.0.5

type CellRendererPixbufClass struct {
	// contains filtered or unexported fields
}

CellRendererPixbufClass: instance of this type is always passed by reference.

func (*CellRendererPixbufClass) ParentClass added in v0.0.5

func (c *CellRendererPixbufClass) ParentClass() *CellRendererClass

type CellRendererPixbufOverrides added in v0.0.5

type CellRendererPixbufOverrides struct {
}

CellRendererPixbufOverrides contains methods that are overridable.

type CellRendererProgress

type CellRendererProgress struct {
	CellRenderer

	Orientable
	// contains filtered or unexported fields
}

CellRendererProgress renders a numeric value as a progress par in a cell. Additionally, it can display a text on top of the progress bar.

The CellRendererProgress cell renderer was added in GTK+ 2.6.

func NewCellRendererProgress

func NewCellRendererProgress() *CellRendererProgress

NewCellRendererProgress creates a new CellRendererProgress.

The function returns the following values:

  • cellRendererProgress: new cell renderer.

type CellRendererProgressClass added in v0.0.5

type CellRendererProgressClass struct {
	// contains filtered or unexported fields
}

CellRendererProgressClass: instance of this type is always passed by reference.

func (*CellRendererProgressClass) ParentClass added in v0.0.5

func (c *CellRendererProgressClass) ParentClass() *CellRendererClass

type CellRendererProgressOverrides added in v0.0.5

type CellRendererProgressOverrides struct {
}

CellRendererProgressOverrides contains methods that are overridable.

type CellRendererSpin

type CellRendererSpin struct {
	CellRendererText
	// contains filtered or unexported fields
}

CellRendererSpin renders text in a cell like CellRendererText from which it is derived. But while CellRendererText offers a simple entry to edit the text, CellRendererSpin offers a SpinButton widget. Of course, that means that the text has to be parseable as a floating point number.

The range of the spinbutton is taken from the adjustment property of the cell renderer, which can be set explicitly or mapped to a column in the tree model, like all properties of cell renders. CellRendererSpin also has properties for the CellRendererSpin:climb-rate and the number of CellRendererSpin:digits to display. Other SpinButton properties can be set in a handler for the CellRenderer::editing-started signal.

The CellRendererSpin cell renderer was added in GTK+ 2.10.

func NewCellRendererSpin

func NewCellRendererSpin() *CellRendererSpin

NewCellRendererSpin creates a new CellRendererSpin.

The function returns the following values:

  • cellRendererSpin: new CellRendererSpin.

type CellRendererSpinClass added in v0.0.5

type CellRendererSpinClass struct {
	// contains filtered or unexported fields
}

CellRendererSpinClass: instance of this type is always passed by reference.

func (*CellRendererSpinClass) Parent added in v0.0.5

type CellRendererSpinOverrides added in v0.0.5

type CellRendererSpinOverrides struct {
}

CellRendererSpinOverrides contains methods that are overridable.

type CellRendererSpinner

type CellRendererSpinner struct {
	CellRenderer
	// contains filtered or unexported fields
}

CellRendererSpinner renders a spinning animation in a cell, very similar to Spinner. It can often be used as an alternative to a CellRendererProgress for displaying indefinite activity, instead of actual progress.

To start the animation in a cell, set the CellRendererSpinner:active property to TRUE and increment the CellRendererSpinner:pulse property at regular intervals. The usual way to set the cell renderer properties for each cell is to bind them to columns in your tree model using e.g. gtk_tree_view_column_add_attribute().

func NewCellRendererSpinner

func NewCellRendererSpinner() *CellRendererSpinner

NewCellRendererSpinner returns a new cell renderer which will show a spinner to indicate activity.

The function returns the following values:

  • cellRendererSpinner: new CellRenderer.

type CellRendererSpinnerClass added in v0.0.5

type CellRendererSpinnerClass struct {
	// contains filtered or unexported fields
}

CellRendererSpinnerClass: instance of this type is always passed by reference.

func (*CellRendererSpinnerClass) ParentClass added in v0.0.5

func (c *CellRendererSpinnerClass) ParentClass() *CellRendererClass

type CellRendererSpinnerOverrides added in v0.0.5

type CellRendererSpinnerOverrides struct {
}

CellRendererSpinnerOverrides contains methods that are overridable.

type CellRendererState

type CellRendererState C.guint

CellRendererState tells how a cell is to be rendered.

const (
	// CellRendererSelected: cell is currently selected, and probably has a
	// selection colored background to render to.
	CellRendererSelected CellRendererState = 0b1
	// CellRendererPrelit: mouse is hovering over the cell.
	CellRendererPrelit CellRendererState = 0b10
	// CellRendererInsensitive: cell is drawn in an insensitive manner.
	CellRendererInsensitive CellRendererState = 0b100
	// CellRendererSorted: cell is in a sorted row.
	CellRendererSorted CellRendererState = 0b1000
	// CellRendererFocused: cell is in the focus row.
	CellRendererFocused CellRendererState = 0b10000
	// CellRendererExpandable: cell is in a row that can be expanded. Since 3.4.
	CellRendererExpandable CellRendererState = 0b100000
	// CellRendererExpanded: cell is in a row that is expanded. Since 3.4.
	CellRendererExpanded CellRendererState = 0b1000000
)

func (CellRendererState) Has

Has returns true if c contains other.

func (CellRendererState) String

func (c CellRendererState) String() string

String returns the names in string for CellRendererState.

type CellRendererText

type CellRendererText struct {
	CellRenderer
	// contains filtered or unexported fields
}

CellRendererText renders a given text in its cell, using the font, color and style information provided by its properties. The text will be ellipsized if it is too long and the CellRendererText:ellipsize property allows it.

If the CellRenderer:mode is GTK_CELL_RENDERER_MODE_EDITABLE, the CellRendererText allows to edit its text using an entry.

func NewCellRendererText

func NewCellRendererText() *CellRendererText

NewCellRendererText creates a new CellRendererText. Adjust how text is drawn using object properties. Object properties can be set globally (with g_object_set()). Also, with TreeViewColumn, you can bind a property to a value in a TreeModel. For example, you can bind the “text” property on the cell renderer to a string value in the model, thus rendering a different string in each row of the TreeView.

The function returns the following values:

  • cellRendererText: new cell renderer.

func (*CellRendererText) ConnectEdited

func (renderer *CellRendererText) ConnectEdited(f func(path, newText string)) coreglib.SignalHandle

ConnectEdited: this signal is emitted after renderer has been edited.

It is the responsibility of the application to update the model and store new_text at the position indicated by path.

func (*CellRendererText) SetFixedHeightFromFont

func (renderer *CellRendererText) SetFixedHeightFromFont(numberOfRows int)

SetFixedHeightFromFont sets the height of a renderer to explicitly be determined by the “font” and “y_pad” property set on it. Further changes in these properties do not affect the height, so they must be accompanied by a subsequent call to this function. Using this function is unflexible, and should really only be used if calculating the size of a cell is too slow (ie, a massive number of cells displayed). If number_of_rows is -1, then the fixed height is unset, and the height is determined by the properties again.

The function takes the following parameters:

  • numberOfRows: number of rows of text each cell renderer is allocated, or -1.

type CellRendererTextClass added in v0.0.5

type CellRendererTextClass struct {
	// contains filtered or unexported fields
}

CellRendererTextClass: instance of this type is always passed by reference.

func (*CellRendererTextClass) ParentClass added in v0.0.5

func (c *CellRendererTextClass) ParentClass() *CellRendererClass

type CellRendererTextOverrides added in v0.0.5

type CellRendererTextOverrides struct {
	// The function takes the following parameters:
	//
	//   - path
	//   - newText
	//
	Edited func(path, newText string)
}

CellRendererTextOverrides contains methods that are overridable.

type CellRendererToggle

type CellRendererToggle struct {
	CellRenderer
	// contains filtered or unexported fields
}

CellRendererToggle renders a toggle button in a cell. The button is drawn as a radio or a checkbutton, depending on the CellRendererToggle:radio property. When activated, it emits the CellRendererToggle::toggled signal.

func NewCellRendererToggle

func NewCellRendererToggle() *CellRendererToggle

NewCellRendererToggle creates a new CellRendererToggle. Adjust rendering parameters using object properties. Object properties can be set globally (with g_object_set()). Also, with TreeViewColumn, you can bind a property to a value in a TreeModel. For example, you can bind the “active” property on the cell renderer to a boolean value in the model, thus causing the check button to reflect the state of the model.

The function returns the following values:

  • cellRendererToggle: new cell renderer.

func (*CellRendererToggle) Activatable

func (toggle *CellRendererToggle) Activatable() bool

Activatable returns whether the cell renderer is activatable. See gtk_cell_renderer_toggle_set_activatable().

The function returns the following values:

  • ok: TRUE if the cell renderer is activatable.

func (*CellRendererToggle) Active

func (toggle *CellRendererToggle) Active() bool

Active returns whether the cell renderer is active. See gtk_cell_renderer_toggle_set_active().

The function returns the following values:

  • ok: TRUE if the cell renderer is active.

func (*CellRendererToggle) ConnectToggled

func (toggle *CellRendererToggle) ConnectToggled(f func(path string)) coreglib.SignalHandle

ConnectToggled signal is emitted when the cell is toggled.

It is the responsibility of the application to update the model with the correct value to store at path. Often this is simply the opposite of the value currently stored at path.

func (*CellRendererToggle) Radio

func (toggle *CellRendererToggle) Radio() bool

Radio returns whether we’re rendering radio toggles rather than checkboxes.

The function returns the following values:

  • ok: TRUE if we’re rendering radio toggles rather than checkboxes.

func (*CellRendererToggle) SetActivatable

func (toggle *CellRendererToggle) SetActivatable(setting bool)

SetActivatable makes the cell renderer activatable.

The function takes the following parameters:

  • setting: value to set.

func (*CellRendererToggle) SetActive

func (toggle *CellRendererToggle) SetActive(setting bool)

SetActive activates or deactivates a cell renderer.

The function takes the following parameters:

  • setting: value to set.

func (*CellRendererToggle) SetRadio

func (toggle *CellRendererToggle) SetRadio(radio bool)

SetRadio: if radio is TRUE, the cell renderer renders a radio toggle (i.e. a toggle in a group of mutually-exclusive toggles). If FALSE, it renders a check toggle (a standalone boolean option). This can be set globally for the cell renderer, or changed just before rendering each cell in the model (for TreeView, you set up a per-row setting using TreeViewColumn to associate model columns with cell renderer properties).

The function takes the following parameters:

  • radio: TRUE to make the toggle look like a radio button.

type CellRendererToggleClass added in v0.0.5

type CellRendererToggleClass struct {
	// contains filtered or unexported fields
}

CellRendererToggleClass: instance of this type is always passed by reference.

func (*CellRendererToggleClass) ParentClass added in v0.0.5

func (c *CellRendererToggleClass) ParentClass() *CellRendererClass

type CellRendererToggleOverrides added in v0.0.5

type CellRendererToggleOverrides struct {
	// The function takes the following parameters:
	//
	Toggled func(path string)
}

CellRendererToggleOverrides contains methods that are overridable.

type CellRendererer

type CellRendererer interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

CellRendererer describes types inherited from class CellRenderer.

To get the original type, the caller must assert this to an interface or another type.

type CellView

type CellView struct {
	Widget

	*coreglib.Object
	CellLayout
	Orientable
	// contains filtered or unexported fields
}

CellView displays a single row of a TreeModel using a CellArea and CellAreaContext. A CellAreaContext can be provided to the CellView at construction time in order to keep the cellview in context of a group of cell views, this ensures that the renderers displayed will be properly aligned with eachother (like the aligned cells in the menus of ComboBox).

CellView is Orientable in order to decide in which orientation the underlying CellAreaContext should be allocated. Taking the ComboBox menu as an example, cellviews should be oriented horizontally if the menus are listed top-to-bottom and thus all share the same width but may have separate individual heights (left-to-right menus should be allocated vertically since they all share the same height but may have variable widths).

CSS nodes

GtkCellView has a single CSS node with name cellview.

func NewCellView

func NewCellView() *CellView

NewCellView creates a new CellView widget.

The function returns the following values:

  • cellView: newly created CellView widget.

func NewCellViewWithContext

func NewCellViewWithContext(area CellAreaer, context *CellAreaContext) *CellView

NewCellViewWithContext creates a new CellView widget with a specific CellArea to layout cells and a specific CellAreaContext.

Specifying the same context for a handfull of cells lets the underlying area synchronize the geometry for those cells, in this way alignments with cellviews for other rows are possible.

The function takes the following parameters:

  • area to layout cells.
  • context in which to calculate cell geometry.

The function returns the following values:

  • cellView: newly created CellView widget.

func NewCellViewWithMarkup

func NewCellViewWithMarkup(markup string) *CellView

NewCellViewWithMarkup creates a new CellView widget, adds a CellRendererText to it, and makes it show markup. The text can be marked up with the [Pango text markup language][PangoMarkupFormat].

The function takes the following parameters:

  • markup: text to display in the cell view.

The function returns the following values:

  • cellView: newly created CellView widget.

func NewCellViewWithPixbuf

func NewCellViewWithPixbuf(pixbuf *gdkpixbuf.Pixbuf) *CellView

NewCellViewWithPixbuf creates a new CellView widget, adds a CellRendererPixbuf to it, and makes it show pixbuf.

The function takes the following parameters:

  • pixbuf: image to display in the cell view.

The function returns the following values:

  • cellView: newly created CellView widget.

func NewCellViewWithText

func NewCellViewWithText(text string) *CellView

NewCellViewWithText creates a new CellView widget, adds a CellRendererText to it, and makes it show text.

The function takes the following parameters:

  • text to display in the cell view.

The function returns the following values:

  • cellView: newly created CellView widget.

func (*CellView) DisplayedRow

func (cellView *CellView) DisplayedRow() *TreePath

DisplayedRow returns a TreePath referring to the currently displayed row. If no row is currently displayed, NULL is returned.

The function returns the following values:

  • treePath (optional): currently displayed row or NULL.

func (*CellView) DrawSensitive

func (cellView *CellView) DrawSensitive() bool

DrawSensitive gets whether cell_view is configured to draw all of its cells in a sensitive state.

The function returns the following values:

  • ok: whether cell_view draws all of its cells in a sensitive state.

func (*CellView) FitModel

func (cellView *CellView) FitModel() bool

FitModel gets whether cell_view is configured to request space to fit the entire TreeModel.

The function returns the following values:

  • ok: whether cell_view requests space to fit the entire TreeModel.

func (*CellView) Model

func (cellView *CellView) Model() *TreeModel

Model returns the model for cell_view. If no model is used NULL is returned.

The function returns the following values:

  • treeModel (optional) used or NULL.

func (*CellView) SetBackgroundColor deprecated

func (cellView *CellView) SetBackgroundColor(color *gdk.Color)

SetBackgroundColor sets the background color of view.

Deprecated: Use gtk_cell_view_set_background_rgba() instead.

The function takes the following parameters:

  • color: new background color.

func (*CellView) SetBackgroundRGBA

func (cellView *CellView) SetBackgroundRGBA(rgba *gdk.RGBA)

SetBackgroundRGBA sets the background color of cell_view.

The function takes the following parameters:

  • rgba: new background color.

func (*CellView) SetDisplayedRow

func (cellView *CellView) SetDisplayedRow(path *TreePath)

SetDisplayedRow sets the row of the model that is currently displayed by the CellView. If the path is unset, then the contents of the cellview “stick” at their last value; this is not normally a desired result, but may be a needed intermediate state if say, the model for the CellView becomes temporarily empty.

The function takes the following parameters:

  • path (optional) or NULL to unset.

func (*CellView) SetDrawSensitive

func (cellView *CellView) SetDrawSensitive(drawSensitive bool)

SetDrawSensitive sets whether cell_view should draw all of its cells in a sensitive state, this is used by ComboBox menus to ensure that rows with insensitive cells that contain children appear sensitive in the parent menu item.

The function takes the following parameters:

  • drawSensitive: whether to draw all cells in a sensitive state.

func (*CellView) SetFitModel

func (cellView *CellView) SetFitModel(fitModel bool)

SetFitModel sets whether cell_view should request space to fit the entire TreeModel.

This is used by ComboBox to ensure that the cell view displayed on the combo box’s button always gets enough space and does not resize when selection changes.

The function takes the following parameters:

  • fitModel: whether cell_view should request space for the whole model.

func (*CellView) SetModel

func (cellView *CellView) SetModel(model TreeModeller)

SetModel sets the model for cell_view. If cell_view already has a model set, it will remove it before setting the new model. If model is NULL, then it will unset the old model.

The function takes the following parameters:

  • model (optional): TreeModel.

func (*CellView) SizeOfRow deprecated

func (cellView *CellView) SizeOfRow(path *TreePath) (*Requisition, bool)

SizeOfRow sets requisition to the size needed by cell_view to display the model row pointed to by path.

Deprecated: Combo box formerly used this to calculate the sizes for cellviews, now you can achieve this by either using the CellView:fit-model property or by setting the currently displayed row of the CellView and using gtk_widget_get_preferred_size().

The function takes the following parameters:

  • path: TreePath.

The function returns the following values:

  • requisition: return location for the size.
  • ok: TRUE.

type CellViewClass added in v0.0.5

type CellViewClass struct {
	// contains filtered or unexported fields
}

CellViewClass: instance of this type is always passed by reference.

func (*CellViewClass) ParentClass added in v0.0.5

func (c *CellViewClass) ParentClass() *WidgetClass

ParentClass: parent class.

type CellViewOverrides added in v0.0.5

type CellViewOverrides struct {
}

CellViewOverrides contains methods that are overridable.

type CheckButton

type CheckButton struct {
	ToggleButton
	// contains filtered or unexported fields
}

CheckButton places a discrete ToggleButton next to a widget, (usually a Label). See the section on ToggleButton widgets for more information about toggle/check buttons.

The important signal ( ToggleButton::toggled ) is also inherited from ToggleButton.

CSS nodes

button.check
├── check
╰── <child>

A GtkCheckButton without indicator changes the name of its main node to button and adds a .check style class to it. The subnode is invisible in this case.

func NewCheckButton

func NewCheckButton() *CheckButton

NewCheckButton creates a new CheckButton.

The function returns the following values:

  • checkButton: Widget.

func NewCheckButtonWithLabel

func NewCheckButtonWithLabel(label string) *CheckButton

NewCheckButtonWithLabel creates a new CheckButton with a Label to the right of it.

The function takes the following parameters:

  • label: text for the check button.

The function returns the following values:

  • checkButton: Widget.

func NewCheckButtonWithMnemonic

func NewCheckButtonWithMnemonic(label string) *CheckButton

NewCheckButtonWithMnemonic creates a new CheckButton containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in label indicate the mnemonic for the check button.

The function takes the following parameters:

  • label: text of the button, with an underscore in front of the mnemonic character.

The function returns the following values:

  • checkButton: new CheckButton.

type CheckButtonClass added in v0.0.5

type CheckButtonClass struct {
	// contains filtered or unexported fields
}

CheckButtonClass: instance of this type is always passed by reference.

func (*CheckButtonClass) ParentClass added in v0.0.5

func (c *CheckButtonClass) ParentClass() *ToggleButtonClass

type CheckButtonOverrides added in v0.0.5

type CheckButtonOverrides struct {
	// The function takes the following parameters:
	//
	DrawIndicator func(cr *cairo.Context)
}

CheckButtonOverrides contains methods that are overridable.

type CheckMenuItem

type CheckMenuItem struct {
	MenuItem
	// contains filtered or unexported fields
}

CheckMenuItem is a menu item that maintains the state of a boolean value in addition to a MenuItem usual role in activating application code.

A check box indicating the state of the boolean value is displayed at the left side of the MenuItem. Activating the MenuItem toggles the value.

CSS nodes

menuitem
├── check.left
╰── <child>

GtkCheckMenuItem has a main CSS node with name menuitem, and a subnode with name check, which gets the .left or .right style class.

func NewCheckMenuItem

func NewCheckMenuItem() *CheckMenuItem

NewCheckMenuItem creates a new CheckMenuItem.

The function returns the following values:

  • checkMenuItem: new CheckMenuItem.

func NewCheckMenuItemWithLabel

func NewCheckMenuItemWithLabel(label string) *CheckMenuItem

NewCheckMenuItemWithLabel creates a new CheckMenuItem with a label.

The function takes the following parameters:

  • label: string to use for the label.

The function returns the following values:

  • checkMenuItem: new CheckMenuItem.

func NewCheckMenuItemWithMnemonic

func NewCheckMenuItemWithMnemonic(label string) *CheckMenuItem

NewCheckMenuItemWithMnemonic creates a new CheckMenuItem containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in label indicate the mnemonic for the menu item.

The function takes the following parameters:

  • label: text of the button, with an underscore in front of the character.

The function returns the following values:

  • checkMenuItem: new CheckMenuItem.

func (*CheckMenuItem) Active

func (checkMenuItem *CheckMenuItem) Active() bool

Active returns whether the check menu item is active. See gtk_check_menu_item_set_active ().

The function returns the following values:

  • ok: TRUE if the menu item is checked.

func (*CheckMenuItem) ConnectToggled

func (checkMenuItem *CheckMenuItem) ConnectToggled(f func()) coreglib.SignalHandle

ConnectToggled: this signal is emitted when the state of the check box is changed.

A signal handler can use gtk_check_menu_item_get_active() to discover the new state.

func (*CheckMenuItem) DrawAsRadio

func (checkMenuItem *CheckMenuItem) DrawAsRadio() bool

DrawAsRadio returns whether check_menu_item looks like a RadioMenuItem.

The function returns the following values:

  • ok: whether check_menu_item looks like a RadioMenuItem.

func (*CheckMenuItem) Inconsistent

func (checkMenuItem *CheckMenuItem) Inconsistent() bool

Inconsistent retrieves the value set by gtk_check_menu_item_set_inconsistent().

The function returns the following values:

  • ok: TRUE if inconsistent.

func (*CheckMenuItem) SetActive

func (checkMenuItem *CheckMenuItem) SetActive(isActive bool)

SetActive sets the active state of the menu item’s check box.

The function takes the following parameters:

  • isActive: boolean value indicating whether the check box is active.

func (*CheckMenuItem) SetDrawAsRadio

func (checkMenuItem *CheckMenuItem) SetDrawAsRadio(drawAsRadio bool)

SetDrawAsRadio sets whether check_menu_item is drawn like a RadioMenuItem.

The function takes the following parameters:

  • drawAsRadio: whether check_menu_item is drawn like a RadioMenuItem.

func (*CheckMenuItem) SetInconsistent

func (checkMenuItem *CheckMenuItem) SetInconsistent(setting bool)

SetInconsistent: if the user has selected a range of elements (such as some text or spreadsheet cells) that are affected by a boolean setting, and the current values in that range are inconsistent, you may want to display the check in an “in between” state. This function turns on “in between” display. Normally you would turn off the inconsistent state again if the user explicitly selects a setting. This has to be done manually, gtk_check_menu_item_set_inconsistent() only affects visual appearance, it doesn’t affect the semantics of the widget.

The function takes the following parameters:

  • setting: TRUE to display an “inconsistent” third state check.

func (*CheckMenuItem) Toggled

func (checkMenuItem *CheckMenuItem) Toggled()

Toggled emits the CheckMenuItem::toggled signal.

type CheckMenuItemAccessible

type CheckMenuItemAccessible struct {
	MenuItemAccessible
	// contains filtered or unexported fields
}

type CheckMenuItemAccessibleClass added in v0.0.5

type CheckMenuItemAccessibleClass struct {
	// contains filtered or unexported fields
}

CheckMenuItemAccessibleClass: instance of this type is always passed by reference.

func (*CheckMenuItemAccessibleClass) ParentClass added in v0.0.5

type CheckMenuItemAccessibleOverrides added in v0.0.5

type CheckMenuItemAccessibleOverrides struct {
}

CheckMenuItemAccessibleOverrides contains methods that are overridable.

type CheckMenuItemClass added in v0.0.5

type CheckMenuItemClass struct {
	// contains filtered or unexported fields
}

CheckMenuItemClass: instance of this type is always passed by reference.

func (*CheckMenuItemClass) ParentClass added in v0.0.5

func (c *CheckMenuItemClass) ParentClass() *MenuItemClass

ParentClass: parent class.

type CheckMenuItemOverrides added in v0.0.5

type CheckMenuItemOverrides struct {
	// The function takes the following parameters:
	//
	DrawIndicator func(cr *cairo.Context)
	// Toggled emits the CheckMenuItem::toggled signal.
	Toggled func()
}

CheckMenuItemOverrides contains methods that are overridable.

type Clipboard

type Clipboard struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

Clipboard object represents a clipboard of data shared between different processes or between different widgets in the same process. Each clipboard is identified by a name encoded as a Atom. (Conversion to and from strings can be done with gdk_atom_intern() and gdk_atom_name().) The default clipboard corresponds to the “CLIPBOARD” atom; another commonly used clipboard is the “PRIMARY” clipboard, which, in X, traditionally contains the currently selected text.

To support having a number of different formats on the clipboard at the same time, the clipboard mechanism allows providing callbacks instead of the actual data. When you set the contents of the clipboard, you can either supply the data directly (via functions like gtk_clipboard_set_text()), or you can supply a callback to be called at a later time when the data is needed (via gtk_clipboard_set_with_data() or gtk_clipboard_set_with_owner().) Providing a callback also avoids having to make copies of the data when it is not needed.

gtk_clipboard_set_with_data() and gtk_clipboard_set_with_owner() are quite similar; the choice between the two depends mostly on which is more convenient in a particular situation. The former is most useful when you want to have a blob of data with callbacks to convert it into the various data types that you advertise. When the clear_func you provided is called, you simply free the data blob. The latter is more useful when the contents of clipboard reflect the internal state of a #GObject (As an example, for the PRIMARY clipboard, when an entry widget provides the clipboard’s contents the contents are simply the text within the selected region.) If the contents change, the entry widget can call gtk_clipboard_set_with_owner() to update the timestamp for clipboard ownership, without having to worry about clear_func being called.

Requesting the data from the clipboard is essentially asynchronous. If the contents of the clipboard are provided within the same process, then a direct function call will be made to retrieve the data, but if they are provided by another process, then the data needs to be retrieved from the other process, which may take some time. To avoid blocking the user interface, the call to request the selection, gtk_clipboard_request_contents() takes a callback that will be called when the contents are received (or when the request fails.) If you don’t want to deal with providing a separate callback, you can also use gtk_clipboard_wait_for_contents(). What this does is run the GLib main loop recursively waiting for the contents. This can simplify the code flow, but you still have to be aware that other callbacks in your program can be called while this recursive mainloop is running.

Along with the functions to get the clipboard contents as an arbitrary data chunk, there are also functions to retrieve it as text, gtk_clipboard_request_text() and gtk_clipboard_wait_for_text(). These functions take care of determining which formats are advertised by the clipboard provider, asking for the clipboard in the best available format and converting the results into the UTF-8 encoding. (The standard form for representing strings in GTK+.).

func ClipboardGetDefault

func ClipboardGetDefault(display *gdk.Display) *Clipboard

ClipboardGetDefault returns the default clipboard object for use with cut/copy/paste menu items and keyboard shortcuts.

The function takes the following parameters:

  • display for which the clipboard is to be retrieved.

The function returns the following values:

  • clipboard: default clipboard object.

func (*Clipboard) Clear

func (clipboard *Clipboard) Clear()

Clear clears the contents of the clipboard. Generally this should only be called between the time you call gtk_clipboard_set_with_owner() or gtk_clipboard_set_with_data(), and when the clear_func you supplied is called. Otherwise, the clipboard may be owned by someone else.

func (*Clipboard) ConnectOwnerChange

func (clipboard *Clipboard) ConnectOwnerChange(f func(event *gdk.EventOwnerChange)) coreglib.SignalHandle

ConnectOwnerChange signal is emitted when GTK+ receives an event that indicates that the ownership of the selection associated with clipboard has changed.

func (*Clipboard) Display

func (clipboard *Clipboard) Display() *gdk.Display

Display gets the Display associated with clipboard.

The function returns the following values:

  • display associated with clipboard.

func (*Clipboard) Owner

func (clipboard *Clipboard) Owner() *coreglib.Object

Owner: if the clipboard contents callbacks were set with gtk_clipboard_set_with_owner(), and the gtk_clipboard_set_with_data() or gtk_clipboard_clear() has not subsequently called, returns the owner set by gtk_clipboard_set_with_owner().

The function returns the following values:

  • object (optional): owner of the clipboard, if any; otherwise NULL.

func (*Clipboard) RequestImage

func (clipboard *Clipboard) RequestImage(callback ClipboardImageReceivedFunc)

RequestImage requests the contents of the clipboard as image. When the image is later received, it will be converted to a Pixbuf, and callback will be called.

The pixbuf parameter to callback will contain the resulting Pixbuf if the request succeeded, or NULL if it failed. This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into an image.

The function takes the following parameters:

  • callback: function to call when the image is received, or the retrieval fails. (It will always be called one way or the other.).

func (*Clipboard) RequestText

func (clipboard *Clipboard) RequestText(callback ClipboardTextReceivedFunc)

RequestText requests the contents of the clipboard as text. When the text is later received, it will be converted to UTF-8 if necessary, and callback will be called.

The text parameter to callback will contain the resulting text if the request succeeded, or NULL if it failed. This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into text form.

The function takes the following parameters:

  • callback: function to call when the text is received, or the retrieval fails. (It will always be called one way or the other.).

func (*Clipboard) RequestURIs

func (clipboard *Clipboard) RequestURIs(callback ClipboardURIReceivedFunc)

RequestURIs requests the contents of the clipboard as URIs. When the URIs are later received callback will be called.

The uris parameter to callback will contain the resulting array of URIs if the request succeeded, or NULL if it failed. This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into URI form.

The function takes the following parameters:

  • callback: function to call when the URIs are received, or the retrieval fails. (It will always be called one way or the other.).

func (*Clipboard) SetCanStore

func (clipboard *Clipboard) SetCanStore(targets []TargetEntry)

SetCanStore hints that the clipboard data should be stored somewhere when the application exits or when gtk_clipboard_store () is called.

This value is reset when the clipboard owner changes. Where the clipboard data is stored is platform dependent, see gdk_display_store_clipboard () for more information.

The function takes the following parameters:

  • targets (optional): array containing information about which forms should be stored or NULL to indicate that all forms should be stored.

func (*Clipboard) SetImage

func (clipboard *Clipboard) SetImage(pixbuf *gdkpixbuf.Pixbuf)

SetImage sets the contents of the clipboard to the given Pixbuf. GTK+ will take responsibility for responding for requests for the image, and for converting the image into the requested format.

The function takes the following parameters:

  • pixbuf: Pixbuf.

func (*Clipboard) SetText

func (clipboard *Clipboard) SetText(text string, len int)

SetText sets the contents of the clipboard to the given UTF-8 string. GTK+ will make a copy of the text and take responsibility for responding for requests for the text, and for converting the text into the requested format.

The function takes the following parameters:

  • text: UTF-8 string.
  • len: length of text, in bytes, or -1, in which case the length will be determined with strlen().

func (*Clipboard) Store

func (clipboard *Clipboard) Store()

Store stores the current clipboard data somewhere so that it will stay around after the application has quit.

func (*Clipboard) WaitForImage

func (clipboard *Clipboard) WaitForImage() *gdkpixbuf.Pixbuf

WaitForImage requests the contents of the clipboard as image and converts the result to a Pixbuf. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.

The function returns the following values:

  • pixbuf (optional): newly-allocated Pixbuf object which must be disposed with g_object_unref(), or NULL if retrieving the selection data failed. (This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into an image.).

func (*Clipboard) WaitForText

func (clipboard *Clipboard) WaitForText() string

WaitForText requests the contents of the clipboard as text and converts the result to UTF-8 if necessary. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.

The function returns the following values:

  • utf8 (optional): newly-allocated UTF-8 string which must be freed with g_free(), or NULL if retrieving the selection data failed. (This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into text form.).

func (*Clipboard) WaitForURIs

func (clipboard *Clipboard) WaitForURIs() []string

WaitForURIs requests the contents of the clipboard as URIs. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.

The function returns the following values:

  • utf8s (optional): a newly-allocated NULL-terminated array of strings which must be freed with g_strfreev(), or NULL if retrieving the selection data failed. (This could happen for various reasons, in particular if the clipboard was empty or if the contents of the clipboard could not be converted into URI form.).

func (*Clipboard) WaitIsImageAvailable

func (clipboard *Clipboard) WaitIsImageAvailable() bool

WaitIsImageAvailable: test to see if there is an image available to be pasted This is done by requesting the TARGETS atom and checking if it contains any of the supported image targets. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.

This function is a little faster than calling gtk_clipboard_wait_for_image() since it doesn’t need to retrieve the actual image data.

The function returns the following values:

  • ok: TRUE is there is an image available, FALSE otherwise.

func (*Clipboard) WaitIsRichTextAvailable

func (clipboard *Clipboard) WaitIsRichTextAvailable(buffer *TextBuffer) bool

WaitIsRichTextAvailable: test to see if there is rich text available to be pasted This is done by requesting the TARGETS atom and checking if it contains any of the supported rich text targets. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.

This function is a little faster than calling gtk_clipboard_wait_for_rich_text() since it doesn’t need to retrieve the actual text.

The function takes the following parameters:

  • buffer: TextBuffer.

The function returns the following values:

  • ok: TRUE is there is rich text available, FALSE otherwise.

func (*Clipboard) WaitIsTextAvailable

func (clipboard *Clipboard) WaitIsTextAvailable() bool

WaitIsTextAvailable: test to see if there is text available to be pasted This is done by requesting the TARGETS atom and checking if it contains any of the supported text targets. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.

This function is a little faster than calling gtk_clipboard_wait_for_text() since it doesn’t need to retrieve the actual text.

The function returns the following values:

  • ok: TRUE is there is text available, FALSE otherwise.

func (*Clipboard) WaitIsURIsAvailable

func (clipboard *Clipboard) WaitIsURIsAvailable() bool

WaitIsURIsAvailable: test to see if there is a list of URIs available to be pasted This is done by requesting the TARGETS atom and checking if it contains the URI targets. This function waits for the data to be received using the main loop, so events, timeouts, etc, may be dispatched during the wait.

This function is a little faster than calling gtk_clipboard_wait_for_uris() since it doesn’t need to retrieve the actual URI data.

The function returns the following values:

  • ok: TRUE is there is an URI list available, FALSE otherwise.

type ClipboardImageReceivedFunc

type ClipboardImageReceivedFunc func(clipboard *Clipboard, pixbuf *gdkpixbuf.Pixbuf)

ClipboardImageReceivedFunc: function to be called when the results of gtk_clipboard_request_image() are received, or when the request fails.

type ClipboardReceivedFunc

type ClipboardReceivedFunc func(clipboard *Clipboard, selectionData *SelectionData)

ClipboardReceivedFunc: function to be called when the results of gtk_clipboard_request_contents() are received, or when the request fails.

type ClipboardTextReceivedFunc

type ClipboardTextReceivedFunc func(clipboard *Clipboard, text string)

ClipboardTextReceivedFunc: function to be called when the results of gtk_clipboard_request_text() are received, or when the request fails.

type ClipboardURIReceivedFunc

type ClipboardURIReceivedFunc func(clipboard *Clipboard, uris []string)

ClipboardURIReceivedFunc: function to be called when the results of gtk_clipboard_request_uris() are received, or when the request fails.

type ColorButton

type ColorButton struct {
	Button

	*coreglib.Object
	ColorChooser
	// contains filtered or unexported fields
}

ColorButton is a button which displays the currently selected color and allows to open a color selection dialog to change the color. It is suitable widget for selecting a color in a preference dialog.

CSS nodes

GtkColorButton has a single CSS node with name button. To differentiate it from a plain Button, it gets the .color style class.

func NewColorButton

func NewColorButton() *ColorButton

NewColorButton creates a new color button.

This returns a widget in the form of a small button containing a swatch representing the current selected color. When the button is clicked, a color-selection dialog will open, allowing the user to select a color. The swatch will be updated to reflect the new color when the user finishes.

The function returns the following values:

  • colorButton: new color button.

func NewColorButtonWithColor deprecated

func NewColorButtonWithColor(color *gdk.Color) *ColorButton

NewColorButtonWithColor creates a new color button.

Deprecated: Use gtk_color_button_new_with_rgba() instead.

The function takes the following parameters:

  • color to set the current color with.

The function returns the following values:

  • colorButton: new color button.

func NewColorButtonWithRGBA

func NewColorButtonWithRGBA(rgba *gdk.RGBA) *ColorButton

NewColorButtonWithRGBA creates a new color button.

The function takes the following parameters:

  • rgba to set the current color with.

The function returns the following values:

  • colorButton: new color button.

func (*ColorButton) Alpha deprecated

func (button *ColorButton) Alpha() uint16

Alpha returns the current alpha value.

Deprecated: Use gtk_color_chooser_get_rgba() instead.

The function returns the following values:

  • guint16: integer between 0 and 65535.

func (*ColorButton) Color deprecated

func (button *ColorButton) Color() *gdk.Color

Color sets color to be the current color in the ColorButton widget.

Deprecated: Use gtk_color_chooser_get_rgba() instead.

The function returns the following values:

  • color to fill in with the current color.

func (*ColorButton) ConnectColorSet

func (button *ColorButton) ConnectColorSet(f func()) coreglib.SignalHandle

ConnectColorSet signal is emitted when the user selects a color. When handling this signal, use gtk_color_button_get_rgba() to find out which color was just selected.

Note that this signal is only emitted when the user changes the color. If you need to react to programmatic color changes as well, use the notify::color signal.

func (*ColorButton) SetAlpha deprecated

func (button *ColorButton) SetAlpha(alpha uint16)

SetAlpha sets the current opacity to be alpha.

Deprecated: Use gtk_color_chooser_set_rgba() instead.

The function takes the following parameters:

  • alpha: integer between 0 and 65535.

func (*ColorButton) SetColor deprecated

func (button *ColorButton) SetColor(color *gdk.Color)

SetColor sets the current color to be color.

Deprecated: Use gtk_color_chooser_set_rgba() instead.

The function takes the following parameters:

  • color to set the current color with.

func (*ColorButton) SetTitle

func (button *ColorButton) SetTitle(title string)

SetTitle sets the title for the color selection dialog.

The function takes the following parameters:

  • title: string containing new window title.

func (*ColorButton) SetUseAlpha deprecated

func (button *ColorButton) SetUseAlpha(useAlpha bool)

SetUseAlpha sets whether or not the color button should use the alpha channel.

Deprecated: Use gtk_color_chooser_set_use_alpha() instead.

The function takes the following parameters:

  • useAlpha: TRUE if color button should use alpha channel, FALSE if not.

func (*ColorButton) Title

func (button *ColorButton) Title() string

Title gets the title of the color selection dialog.

The function returns the following values:

  • utf8: internal string, do not free the return value.

func (*ColorButton) UseAlpha deprecated

func (button *ColorButton) UseAlpha() bool

UseAlpha does the color selection dialog use the alpha channel ?

Deprecated: Use gtk_color_chooser_get_use_alpha() instead.

The function returns the following values:

  • ok: TRUE if the color sample uses alpha channel, FALSE if not.

type ColorButtonClass added in v0.0.5

type ColorButtonClass struct {
	// contains filtered or unexported fields
}

ColorButtonClass: instance of this type is always passed by reference.

func (*ColorButtonClass) ParentClass added in v0.0.5

func (c *ColorButtonClass) ParentClass() *ButtonClass

type ColorButtonOverrides added in v0.0.5

type ColorButtonOverrides struct {
	ColorSet func()
}

ColorButtonOverrides contains methods that are overridable.

type ColorChooser

type ColorChooser struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

ColorChooser is an interface that is implemented by widgets for choosing colors. Depending on the situation, colors may be allowed to have alpha (translucency).

In GTK+, the main widgets that implement this interface are ColorChooserWidget, ColorChooserDialog and ColorButton.

ColorChooser wraps an interface. This means the user can get the underlying type by calling Cast().

func (*ColorChooser) AddPalette

func (chooser *ColorChooser) AddPalette(orientation Orientation, colorsPerLine int, colors []gdk.RGBA)

AddPalette adds a palette to the color chooser. If orientation is horizontal, the colors are grouped in rows, with colors_per_line colors in each row. If horizontal is FALSE, the colors are grouped in columns instead.

The default color palette of ColorChooserWidget has 27 colors, organized in columns of 3 colors. The default gray palette has 9 grays in a single row.

The layout of the color chooser widget works best when the palettes have 9-10 columns.

Calling this function for the first time has the side effect of removing the default color and gray palettes from the color chooser.

If colors is NULL, removes all previously added palettes.

The function takes the following parameters:

  • orientation: GTK_ORIENTATION_HORIZONTAL if the palette should be displayed in rows, GTK_ORIENTATION_VERTICAL for columns.
  • colorsPerLine: number of colors to show in each row/column.
  • colors (optional) of the palette, or NULL.

func (*ColorChooser) ConnectColorActivated

func (chooser *ColorChooser) ConnectColorActivated(f func(color *gdk.RGBA)) coreglib.SignalHandle

ConnectColorActivated is emitted when a color is activated from the color chooser. This usually happens when the user clicks a color swatch, or a color is selected and the user presses one of the keys Space, Shift+Space, Return or Enter.

func (*ColorChooser) RGBA

func (chooser *ColorChooser) RGBA() *gdk.RGBA

RGBA gets the currently-selected color.

The function returns the following values:

  • color to fill in with the current color.

func (*ColorChooser) SetRGBA

func (chooser *ColorChooser) SetRGBA(color *gdk.RGBA)

SetRGBA sets the color.

The function takes the following parameters:

  • color: new color.

func (*ColorChooser) SetUseAlpha

func (chooser *ColorChooser) SetUseAlpha(useAlpha bool)

SetUseAlpha sets whether or not the color chooser should use the alpha channel.

The function takes the following parameters:

  • useAlpha: TRUE if color chooser should use alpha channel, FALSE if not.

func (*ColorChooser) UseAlpha

func (chooser *ColorChooser) UseAlpha() bool

UseAlpha returns whether the color chooser shows the alpha channel.

The function returns the following values:

  • ok: TRUE if the color chooser uses the alpha channel, FALSE if not.

type ColorChooserDialog

type ColorChooserDialog struct {
	Dialog

	*coreglib.Object
	ColorChooser
	// contains filtered or unexported fields
}

ColorChooserDialog widget is a dialog for choosing a color. It implements the ColorChooser interface.

func NewColorChooserDialog

func NewColorChooserDialog(title string, parent *Window) *ColorChooserDialog

NewColorChooserDialog creates a new ColorChooserDialog.

The function takes the following parameters:

  • title (optional): title of the dialog, or NULL.
  • parent (optional): transient parent of the dialog, or NULL.

The function returns the following values:

  • colorChooserDialog: new ColorChooserDialog.

type ColorChooserDialogClass added in v0.0.5

type ColorChooserDialogClass struct {
	// contains filtered or unexported fields
}

ColorChooserDialogClass: instance of this type is always passed by reference.

func (*ColorChooserDialogClass) ParentClass added in v0.0.5

func (c *ColorChooserDialogClass) ParentClass() *DialogClass

type ColorChooserDialogOverrides added in v0.0.5

type ColorChooserDialogOverrides struct {
}

ColorChooserDialogOverrides contains methods that are overridable.

type ColorChooserInterface added in v0.0.5

type ColorChooserInterface struct {
	// contains filtered or unexported fields
}

ColorChooserInterface: instance of this type is always passed by reference.

func (*ColorChooserInterface) Padding added in v0.0.5

func (c *ColorChooserInterface) Padding() [12]unsafe.Pointer

type ColorChooserWidget

type ColorChooserWidget struct {
	Box

	*coreglib.Object
	ColorChooser
	// contains filtered or unexported fields
}

ColorChooserWidget widget lets the user select a color. By default, the chooser presents a predefined palette of colors, plus a small number of settable custom colors. It is also possible to select a different color with the single-color editor. To enter the single-color editing mode, use the context menu of any color of the palette, or use the '+' button to add a new custom color.

The chooser automatically remembers the last selection, as well as custom colors.

To change the initially selected color, use gtk_color_chooser_set_rgba(). To get the selected color use gtk_color_chooser_get_rgba().

The ColorChooserWidget is used in the ColorChooserDialog to provide a dialog for selecting colors.

CSS names

GtkColorChooserWidget has a single CSS node with name colorchooser.

func NewColorChooserWidget

func NewColorChooserWidget() *ColorChooserWidget

NewColorChooserWidget creates a new ColorChooserWidget.

The function returns the following values:

  • colorChooserWidget: new ColorChooserWidget.

type ColorChooserWidgetClass added in v0.0.5

type ColorChooserWidgetClass struct {
	// contains filtered or unexported fields
}

ColorChooserWidgetClass: instance of this type is always passed by reference.

func (*ColorChooserWidgetClass) ParentClass added in v0.0.5

func (c *ColorChooserWidgetClass) ParentClass() *BoxClass

ParentClass: parent class.

type ColorChooserWidgetOverrides added in v0.0.5

type ColorChooserWidgetOverrides struct {
}

ColorChooserWidgetOverrides contains methods that are overridable.

type ColorChooserer

type ColorChooserer interface {
	coreglib.Objector

	// AddPalette adds a palette to the color chooser.
	AddPalette(orientation Orientation, colorsPerLine int, colors []gdk.RGBA)
	// RGBA gets the currently-selected color.
	RGBA() *gdk.RGBA
	// UseAlpha returns whether the color chooser shows the alpha channel.
	UseAlpha() bool
	// SetRGBA sets the color.
	SetRGBA(color *gdk.RGBA)
	// SetUseAlpha sets whether or not the color chooser should use the alpha
	// channel.
	SetUseAlpha(useAlpha bool)

	// Color-activated is emitted when a color is activated from the color
	// chooser.
	ConnectColorActivated(func(color *gdk.RGBA)) coreglib.SignalHandle
}

ColorChooserer describes ColorChooser's interface methods.

type ColorSelection

type ColorSelection struct {
	Box
	// contains filtered or unexported fields
}

func NewColorSelection

func NewColorSelection() *ColorSelection

NewColorSelection creates a new GtkColorSelection.

The function returns the following values:

  • colorSelection: new ColorSelection.

func (*ColorSelection) ConnectColorChanged

func (colorsel *ColorSelection) ConnectColorChanged(f func()) coreglib.SignalHandle

ConnectColorChanged: this signal is emitted when the color changes in the ColorSelection according to its update policy.

func (*ColorSelection) CurrentAlpha

func (colorsel *ColorSelection) CurrentAlpha() uint16

CurrentAlpha returns the current alpha value.

The function returns the following values:

  • guint16: integer between 0 and 65535.

func (*ColorSelection) CurrentColor deprecated

func (colorsel *ColorSelection) CurrentColor() *gdk.Color

CurrentColor sets color to be the current color in the GtkColorSelection widget.

Deprecated: Use gtk_color_selection_get_current_rgba() instead.

The function returns the following values:

  • color to fill in with the current color.

func (*ColorSelection) CurrentRGBA

func (colorsel *ColorSelection) CurrentRGBA() *gdk.RGBA

CurrentRGBA sets rgba to be the current color in the GtkColorSelection widget.

The function returns the following values:

  • rgba to fill in with the current color.

func (*ColorSelection) HasOpacityControl

func (colorsel *ColorSelection) HasOpacityControl() bool

HasOpacityControl determines whether the colorsel has an opacity control.

The function returns the following values:

  • ok: TRUE if the colorsel has an opacity control, FALSE if it does't.

func (*ColorSelection) HasPalette

func (colorsel *ColorSelection) HasPalette() bool

HasPalette determines whether the color selector has a color palette.

The function returns the following values:

  • ok: TRUE if the selector has a palette, FALSE if it hasn't.

func (*ColorSelection) IsAdjusting

func (colorsel *ColorSelection) IsAdjusting() bool

IsAdjusting gets the current state of the colorsel.

The function returns the following values:

  • ok: TRUE if the user is currently dragging a color around, and FALSE if the selection has stopped.

func (*ColorSelection) PreviousAlpha

func (colorsel *ColorSelection) PreviousAlpha() uint16

PreviousAlpha returns the previous alpha value.

The function returns the following values:

  • guint16: integer between 0 and 65535.

func (*ColorSelection) PreviousColor deprecated

func (colorsel *ColorSelection) PreviousColor() *gdk.Color

PreviousColor fills color in with the original color value.

Deprecated: Use gtk_color_selection_get_previous_rgba() instead.

The function returns the following values:

  • color to fill in with the original color value.

func (*ColorSelection) PreviousRGBA

func (colorsel *ColorSelection) PreviousRGBA() *gdk.RGBA

PreviousRGBA fills rgba in with the original color value.

The function returns the following values:

  • rgba to fill in with the original color value.

func (*ColorSelection) SetCurrentAlpha

func (colorsel *ColorSelection) SetCurrentAlpha(alpha uint16)

SetCurrentAlpha sets the current opacity to be alpha.

The first time this is called, it will also set the original opacity to be alpha too.

The function takes the following parameters:

  • alpha: integer between 0 and 65535.

func (*ColorSelection) SetCurrentColor deprecated

func (colorsel *ColorSelection) SetCurrentColor(color *gdk.Color)

SetCurrentColor sets the current color to be color.

The first time this is called, it will also set the original color to be color too.

Deprecated: Use gtk_color_selection_set_current_rgba() instead.

The function takes the following parameters:

  • color to set the current color with.

func (*ColorSelection) SetCurrentRGBA

func (colorsel *ColorSelection) SetCurrentRGBA(rgba *gdk.RGBA)

SetCurrentRGBA sets the current color to be rgba.

The first time this is called, it will also set the original color to be rgba too.

The function takes the following parameters:

  • rgba to set the current color with.

func (*ColorSelection) SetHasOpacityControl

func (colorsel *ColorSelection) SetHasOpacityControl(hasOpacity bool)

SetHasOpacityControl sets the colorsel to use or not use opacity.

The function takes the following parameters:

  • hasOpacity: TRUE if colorsel can set the opacity, FALSE otherwise.

func (*ColorSelection) SetHasPalette

func (colorsel *ColorSelection) SetHasPalette(hasPalette bool)

SetHasPalette shows and hides the palette based upon the value of has_palette.

The function takes the following parameters:

  • hasPalette: TRUE if palette is to be visible, FALSE otherwise.

func (*ColorSelection) SetPreviousAlpha

func (colorsel *ColorSelection) SetPreviousAlpha(alpha uint16)

SetPreviousAlpha sets the “previous” alpha to be alpha.

This function should be called with some hesitations, as it might seem confusing to have that alpha change.

The function takes the following parameters:

  • alpha: integer between 0 and 65535.

func (*ColorSelection) SetPreviousColor deprecated

func (colorsel *ColorSelection) SetPreviousColor(color *gdk.Color)

SetPreviousColor sets the “previous” color to be color.

This function should be called with some hesitations, as it might seem confusing to have that color change. Calling gtk_color_selection_set_current_color() will also set this color the first time it is called.

Deprecated: Use gtk_color_selection_set_previous_rgba() instead.

The function takes the following parameters:

  • color to set the previous color with.

func (*ColorSelection) SetPreviousRGBA

func (colorsel *ColorSelection) SetPreviousRGBA(rgba *gdk.RGBA)

SetPreviousRGBA sets the “previous” color to be rgba.

This function should be called with some hesitations, as it might seem confusing to have that color change. Calling gtk_color_selection_set_current_rgba() will also set this color the first time it is called.

The function takes the following parameters:

  • rgba to set the previous color with.

type ColorSelectionClass added in v0.0.5

type ColorSelectionClass struct {
	// contains filtered or unexported fields
}

ColorSelectionClass: instance of this type is always passed by reference.

func (*ColorSelectionClass) ParentClass added in v0.0.5

func (c *ColorSelectionClass) ParentClass() *BoxClass

ParentClass: parent class.

type ColorSelectionDialog

type ColorSelectionDialog struct {
	Dialog
	// contains filtered or unexported fields
}

func NewColorSelectionDialog

func NewColorSelectionDialog(title string) *ColorSelectionDialog

NewColorSelectionDialog creates a new ColorSelectionDialog.

The function takes the following parameters:

  • title: string containing the title text for the dialog.

The function returns the following values:

  • colorSelectionDialog: ColorSelectionDialog.

func (*ColorSelectionDialog) ColorSelection

func (colorsel *ColorSelectionDialog) ColorSelection() Widgetter

ColorSelection retrieves the ColorSelection widget embedded in the dialog.

The function returns the following values:

  • widget: embedded ColorSelection.

type ColorSelectionDialogClass added in v0.0.5

type ColorSelectionDialogClass struct {
	// contains filtered or unexported fields
}

ColorSelectionDialogClass: instance of this type is always passed by reference.

func (*ColorSelectionDialogClass) ParentClass added in v0.0.5

func (c *ColorSelectionDialogClass) ParentClass() *DialogClass

type ColorSelectionDialogOverrides added in v0.0.5

type ColorSelectionDialogOverrides struct {
}

ColorSelectionDialogOverrides contains methods that are overridable.

type ColorSelectionOverrides added in v0.0.5

type ColorSelectionOverrides struct {
	ColorChanged func()
}

ColorSelectionOverrides contains methods that are overridable.

type ComboBox

type ComboBox struct {
	Bin

	*coreglib.Object
	CellEditable
	CellLayout
	// contains filtered or unexported fields
}

ComboBox is a widget that allows the user to choose from a list of valid choices. The GtkComboBox displays the selected choice. When activated, the GtkComboBox displays a popup which allows the user to make a new choice. The style in which the selected value is displayed, and the style of the popup is determined by the current theme. It may be similar to a Windows-style combo box.

The GtkComboBox uses the model-view pattern; the list of valid choices is specified in the form of a tree model, and the display of the choices can be adapted to the data in the model by using cell renderers, as you would in a tree view. This is possible since GtkComboBox implements the CellLayout interface. The tree model holding the valid choices is not restricted to a flat list, it can be a real tree, and the popup will reflect the tree structure.

To allow the user to enter values not in the model, the “has-entry” property allows the GtkComboBox to contain a Entry. This entry can be accessed by calling gtk_bin_get_child() on the combo box.

For a simple list of textual choices, the model-view API of GtkComboBox can be a bit overwhelming. In this case, ComboBoxText offers a simple alternative. Both GtkComboBox and ComboBoxText can contain an entry.

CSS nodes

combobox
├── box.linked
│   ├── entry.combo
│   ╰── button.combo
│       ╰── box
│           ╰── arrow
╰── window.popup

A GtkComboBox with an entry has a single CSS node with name combobox. It contains a box with the .linked class. That box contains an entry and a button, both with the .combo class added. The button also contains another node with name arrow.

func NewComboBox

func NewComboBox() *ComboBox

NewComboBox creates a new empty ComboBox.

The function returns the following values:

  • comboBox: new ComboBox.

func NewComboBoxWithArea

func NewComboBoxWithArea(area CellAreaer) *ComboBox

NewComboBoxWithArea creates a new empty ComboBox using area to layout cells.

The function takes the following parameters:

  • area to use to layout cell renderers.

The function returns the following values:

  • comboBox: new ComboBox.

func NewComboBoxWithAreaAndEntry

func NewComboBoxWithAreaAndEntry(area CellAreaer) *ComboBox

NewComboBoxWithAreaAndEntry creates a new empty ComboBox with an entry.

The new combo box will use area to layout cells.

The function takes the following parameters:

  • area to use to layout cell renderers.

The function returns the following values:

  • comboBox: new ComboBox.

func NewComboBoxWithEntry

func NewComboBoxWithEntry() *ComboBox

NewComboBoxWithEntry creates a new empty ComboBox with an entry.

The function returns the following values:

  • comboBox: new ComboBox.

func NewComboBoxWithModel

func NewComboBoxWithModel(model TreeModeller) *ComboBox

NewComboBoxWithModel creates a new ComboBox with the model initialized to model.

The function takes the following parameters:

  • model: TreeModel.

The function returns the following values:

  • comboBox: new ComboBox.

func NewComboBoxWithModelAndEntry

func NewComboBoxWithModelAndEntry(model TreeModeller) *ComboBox

NewComboBoxWithModelAndEntry creates a new empty ComboBox with an entry and with the model initialized to model.

The function takes the following parameters:

  • model: TreeModel.

The function returns the following values:

  • comboBox: new ComboBox.

func (*ComboBox) Active

func (comboBox *ComboBox) Active() int

Active returns the index of the currently active item, or -1 if there’s no active item. If the model is a non-flat treemodel, and the active item is not an immediate child of the root of the tree, this function returns gtk_tree_path_get_indices (path)[0], where path is the TreePath of the active item.

The function returns the following values:

  • gint: integer which is the index of the currently active item, or -1 if there’s no active item.

func (*ComboBox) ActiveID

func (comboBox *ComboBox) ActiveID() string

ActiveID returns the ID of the active row of combo_box. This value is taken from the active row and the column specified by the ComboBox:id-column property of combo_box (see gtk_combo_box_set_id_column()).

The returned value is an interned string which means that you can compare the pointer by value to other interned strings and that you must not free it.

If the ComboBox:id-column property of combo_box is not set, or if no row is active, or if the active row has a NULL ID value, then NULL is returned.

The function returns the following values:

  • utf8 (optional): ID of the active row, or NULL.

func (*ComboBox) ActiveIter

func (comboBox *ComboBox) ActiveIter() (*TreeIter, bool)

ActiveIter sets iter to point to the currently active item, if any item is active. Otherwise, iter is left unchanged.

The function returns the following values:

  • iter: TreeIter.
  • ok: TRUE if iter was set, FALSE otherwise.

func (*ComboBox) AddTearoffs deprecated

func (comboBox *ComboBox) AddTearoffs() bool

AddTearoffs gets the current value of the :add-tearoffs property.

Deprecated: since version 3.10.

The function returns the following values:

  • ok: current value of the :add-tearoffs property.

func (*ComboBox) ButtonSensitivity

func (comboBox *ComboBox) ButtonSensitivity() SensitivityType

ButtonSensitivity returns whether the combo box sets the dropdown button sensitive or not when there are no items in the model.

The function returns the following values:

  • sensitivityType: GTK_SENSITIVITY_ON if the dropdown button is sensitive when the model is empty, GTK_SENSITIVITY_OFF if the button is always insensitive or GTK_SENSITIVITY_AUTO if it is only sensitive as long as the model has one item to be selected.

func (*ComboBox) ColumnSpanColumn

func (comboBox *ComboBox) ColumnSpanColumn() int

ColumnSpanColumn returns the column with column span information for combo_box.

The function returns the following values:

  • gint: column span column.

func (*ComboBox) ConnectChanged

func (comboBox *ComboBox) ConnectChanged(f func()) coreglib.SignalHandle

ConnectChanged signal is emitted when the active item is changed. The can be due to the user selecting a different item from the list, or due to a call to gtk_combo_box_set_active_iter(). It will also be emitted while typing into the entry of a combo box with an entry.

func (*ComboBox) ConnectFormatEntryText

func (comboBox *ComboBox) ConnectFormatEntryText(f func(path string) (utf8 string)) coreglib.SignalHandle

ConnectFormatEntryText: for combo boxes that are created with an entry (See GtkComboBox:has-entry).

A signal which allows you to change how the text displayed in a combo box's entry is displayed.

Connect a signal handler which returns an allocated string representing path. That string will then be used to set the text in the combo box's entry. The default signal handler uses the text from the GtkComboBox::entry-text-column model column.

Here's an example signal handler which fetches data from the model and displays it in the entry.

static gchar*
format_entry_text_callback (GtkComboBox *combo,
                            const gchar *path,
                            gpointer     user_data)
{
  GtkTreeIter iter;
  GtkTreeModel model;
  gdouble      value;

  model = gtk_combo_box_get_model (combo);

  gtk_tree_model_get_iter_from_string (model, &iter, path);
  gtk_tree_model_get (model, &iter,
                      THE_DOUBLE_VALUE_COLUMN, &value,
                      -1);

  return g_strdup_printf ("g", value);
}.

func (*ComboBox) ConnectMoveActive

func (comboBox *ComboBox) ConnectMoveActive(f func(scrollType ScrollType)) coreglib.SignalHandle

ConnectMoveActive signal is a [keybinding signal][GtkBindingSignal] which gets emitted to move the active selection.

func (*ComboBox) ConnectPopdown

func (comboBox *ComboBox) ConnectPopdown(f func() (ok bool)) coreglib.SignalHandle

ConnectPopdown signal is a [keybinding signal][GtkBindingSignal] which gets emitted to popdown the combo box list.

The default bindings for this signal are Alt+Up and Escape.

func (*ComboBox) ConnectPopup

func (comboBox *ComboBox) ConnectPopup(f func()) coreglib.SignalHandle

ConnectPopup signal is a [keybinding signal][GtkBindingSignal] which gets emitted to popup the combo box list.

The default binding for this signal is Alt+Down.

func (*ComboBox) EntryTextColumn

func (comboBox *ComboBox) EntryTextColumn() int

EntryTextColumn returns the column which combo_box is using to get the strings from to display in the internal entry.

The function returns the following values:

  • gint: column in the data source model of combo_box.

func (*ComboBox) FocusOnClick deprecated

func (combo *ComboBox) FocusOnClick() bool

FocusOnClick returns whether the combo box grabs focus when it is clicked with the mouse. See gtk_combo_box_set_focus_on_click().

Deprecated: Use gtk_widget_get_focus_on_click() instead.

The function returns the following values:

  • ok: TRUE if the combo box grabs focus when it is clicked with the mouse.

func (*ComboBox) HasEntry

func (comboBox *ComboBox) HasEntry() bool

HasEntry returns whether the combo box has an entry.

The function returns the following values:

  • ok: whether there is an entry in combo_box.

func (*ComboBox) IDColumn

func (comboBox *ComboBox) IDColumn() int

IDColumn returns the column which combo_box is using to get string IDs for values from.

The function returns the following values:

  • gint: column in the data source model of combo_box.

func (*ComboBox) Model

func (comboBox *ComboBox) Model() *TreeModel

Model returns the TreeModel which is acting as data source for combo_box.

The function returns the following values:

  • treeModel which was passed during construction.

func (*ComboBox) Popdown

func (comboBox *ComboBox) Popdown()

Popdown hides the menu or dropdown list of combo_box.

This function is mostly intended for use by accessibility technologies; applications should have little use for it.

func (*ComboBox) Popup

func (comboBox *ComboBox) Popup()

Popup pops up the menu or dropdown list of combo_box.

This function is mostly intended for use by accessibility technologies; applications should have little use for it.

Before calling this, combo_box must be mapped, or nothing will happen.

func (*ComboBox) PopupAccessible

func (comboBox *ComboBox) PopupAccessible() *atk.AtkObject

PopupAccessible gets the accessible object corresponding to the combo box’s popup.

This function is mostly intended for use by accessibility technologies; applications should have little use for it.

The function returns the following values:

  • object: accessible object corresponding to the combo box’s popup.

func (*ComboBox) PopupFixedWidth

func (comboBox *ComboBox) PopupFixedWidth() bool

PopupFixedWidth gets whether the popup uses a fixed width matching the allocated width of the combo box.

The function returns the following values:

  • ok: TRUE if the popup uses a fixed width.

func (*ComboBox) PopupForDevice

func (comboBox *ComboBox) PopupForDevice(device gdk.Devicer)

PopupForDevice pops up the menu or dropdown list of combo_box, the popup window will be grabbed so only device and its associated pointer/keyboard are the only Devices able to send events to it.

The function takes the following parameters:

  • device: Device.

func (*ComboBox) RowSpanColumn

func (comboBox *ComboBox) RowSpanColumn() int

RowSpanColumn returns the column with row span information for combo_box.

The function returns the following values:

  • gint: row span column.

func (*ComboBox) SetActive

func (comboBox *ComboBox) SetActive(index_ int)

SetActive sets the active item of combo_box to be the item at index.

The function takes the following parameters:

  • index_: index in the model passed during construction, or -1 to have no active item.

func (*ComboBox) SetActiveID

func (comboBox *ComboBox) SetActiveID(activeId string) bool

SetActiveID changes the active row of combo_box to the one that has an ID equal to active_id, or unsets the active row if active_id is NULL. Rows having a NULL ID string cannot be made active by this function.

If the ComboBox:id-column property of combo_box is unset or if no row has the given ID then the function does nothing and returns FALSE.

The function takes the following parameters:

  • activeId (optional): ID of the row to select, or NULL.

The function returns the following values:

  • ok: TRUE if a row with a matching ID was found. If a NULL active_id was given to unset the active row, the function always returns TRUE.

func (*ComboBox) SetActiveIter

func (comboBox *ComboBox) SetActiveIter(iter *TreeIter)

SetActiveIter sets the current active item to be the one referenced by iter, or unsets the active item if iter is NULL.

The function takes the following parameters:

  • iter (optional) or NULL.

func (*ComboBox) SetAddTearoffs deprecated

func (comboBox *ComboBox) SetAddTearoffs(addTearoffs bool)

SetAddTearoffs sets whether the popup menu should have a tearoff menu item.

Deprecated: since version 3.10.

The function takes the following parameters:

  • addTearoffs: TRUE to add tearoff menu items.

func (*ComboBox) SetButtonSensitivity

func (comboBox *ComboBox) SetButtonSensitivity(sensitivity SensitivityType)

SetButtonSensitivity sets whether the dropdown button of the combo box should be always sensitive (GTK_SENSITIVITY_ON), never sensitive (GTK_SENSITIVITY_OFF) or only if there is at least one item to display (GTK_SENSITIVITY_AUTO).

The function takes the following parameters:

  • sensitivity: specify the sensitivity of the dropdown button.

func (*ComboBox) SetColumnSpanColumn

func (comboBox *ComboBox) SetColumnSpanColumn(columnSpan int)

SetColumnSpanColumn sets the column with column span information for combo_box to be column_span. The column span column contains integers which indicate how many columns an item should span.

The function takes the following parameters:

  • columnSpan: column in the model passed during construction.

func (*ComboBox) SetEntryTextColumn

func (comboBox *ComboBox) SetEntryTextColumn(textColumn int)

SetEntryTextColumn sets the model column which combo_box should use to get strings from to be text_column. The column text_column in the model of combo_box must be of type G_TYPE_STRING.

This is only relevant if combo_box has been created with ComboBox:has-entry as TRUE.

The function takes the following parameters:

  • textColumn: column in model to get the strings from for the internal entry.

func (*ComboBox) SetFocusOnClick deprecated

func (combo *ComboBox) SetFocusOnClick(focusOnClick bool)

SetFocusOnClick sets whether the combo box will grab focus when it is clicked with the mouse. Making mouse clicks not grab focus is useful in places like toolbars where you don’t want the keyboard focus removed from the main area of the application.

Deprecated: Use gtk_widget_set_focus_on_click() instead.

The function takes the following parameters:

  • focusOnClick: whether the combo box grabs focus when clicked with the mouse.

func (*ComboBox) SetIDColumn

func (comboBox *ComboBox) SetIDColumn(idColumn int)

SetIDColumn sets the model column which combo_box should use to get string IDs for values from. The column id_column in the model of combo_box must be of type G_TYPE_STRING.

The function takes the following parameters:

  • idColumn: column in model to get string IDs for values from.

func (*ComboBox) SetModel

func (comboBox *ComboBox) SetModel(model TreeModeller)

SetModel sets the model used by combo_box to be model. Will unset a previously set model (if applicable). If model is NULL, then it will unset the model.

Note that this function does not clear the cell renderers, you have to call gtk_cell_layout_clear() yourself if you need to set up different cell renderers for the new model.

The function takes the following parameters:

  • model (optional): TreeModel.

func (*ComboBox) SetPopupFixedWidth

func (comboBox *ComboBox) SetPopupFixedWidth(fixed bool)

SetPopupFixedWidth specifies whether the popup’s width should be a fixed width matching the allocated width of the combo box.

The function takes the following parameters:

  • fixed: whether to use a fixed popup width.

func (*ComboBox) SetRowSeparatorFunc

func (comboBox *ComboBox) SetRowSeparatorFunc(fn TreeViewRowSeparatorFunc)

SetRowSeparatorFunc sets the row separator function, which is used to determine whether a row should be drawn as a separator. If the row separator function is NULL, no separators are drawn. This is the default value.

The function takes the following parameters:

  • fn: TreeViewRowSeparatorFunc.

func (*ComboBox) SetRowSpanColumn

func (comboBox *ComboBox) SetRowSpanColumn(rowSpan int)

SetRowSpanColumn sets the column with row span information for combo_box to be row_span. The row span column contains integers which indicate how many rows an item should span.

The function takes the following parameters:

  • rowSpan: column in the model passed during construction.

func (*ComboBox) SetTitle deprecated

func (comboBox *ComboBox) SetTitle(title string)

SetTitle sets the menu’s title in tearoff mode.

Deprecated: since version 3.10.

The function takes the following parameters:

  • title for the menu in tearoff mode.

func (*ComboBox) SetWrapWidth

func (comboBox *ComboBox) SetWrapWidth(width int)

SetWrapWidth sets the wrap width of combo_box to be width. The wrap width is basically the preferred number of columns when you want the popup to be layed out in a table.

The function takes the following parameters:

  • width: preferred number of columns.

func (*ComboBox) Title deprecated

func (comboBox *ComboBox) Title() string

Title gets the current title of the menu in tearoff mode. See gtk_combo_box_set_add_tearoffs().

Deprecated: since version 3.10.

The function returns the following values:

  • utf8 menu’s title in tearoff mode. This is an internal copy of the string which must not be freed.

func (*ComboBox) WrapWidth

func (comboBox *ComboBox) WrapWidth() int

WrapWidth returns the wrap width which is used to determine the number of columns for the popup menu. If the wrap width is larger than 1, the combo box is in table mode.

The function returns the following values:

  • gint: wrap width.

type ComboBoxAccessible

type ComboBoxAccessible struct {
	ContainerAccessible

	*coreglib.Object
	atk.Action
	atk.Selection
	// contains filtered or unexported fields
}

type ComboBoxAccessibleClass added in v0.0.5

type ComboBoxAccessibleClass struct {
	// contains filtered or unexported fields
}

ComboBoxAccessibleClass: instance of this type is always passed by reference.

func (*ComboBoxAccessibleClass) ParentClass added in v0.0.5

type ComboBoxAccessibleOverrides added in v0.0.5

type ComboBoxAccessibleOverrides struct {
}

ComboBoxAccessibleOverrides contains methods that are overridable.

type ComboBoxClass added in v0.0.5

type ComboBoxClass struct {
	// contains filtered or unexported fields
}

ComboBoxClass: instance of this type is always passed by reference.

func (*ComboBoxClass) ParentClass added in v0.0.5

func (c *ComboBoxClass) ParentClass() *BinClass

ParentClass: parent class.

type ComboBoxOverrides added in v0.0.5

type ComboBoxOverrides struct {
	Changed func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	FormatEntryText func(path string) string
}

ComboBoxOverrides contains methods that are overridable.

type ComboBoxText

type ComboBoxText struct {
	ComboBox
	// contains filtered or unexported fields
}

ComboBoxText is a simple variant of ComboBox that hides the model-view complexity for simple text-only use cases.

To create a GtkComboBoxText, use gtk_combo_box_text_new() or gtk_combo_box_text_new_with_entry().

You can add items to a GtkComboBoxText with gtk_combo_box_text_append_text(), gtk_combo_box_text_insert_text() or gtk_combo_box_text_prepend_text() and remove options with gtk_combo_box_text_remove().

If the GtkComboBoxText contains an entry (via the “has-entry” property), its contents can be retrieved using gtk_combo_box_text_get_active_text(). The entry itself can be accessed by calling gtk_bin_get_child() on the combo box.

You should not call gtk_combo_box_set_model() or attempt to pack more cells into this combo box via its GtkCellLayout interface.

GtkComboBoxText as GtkBuildable

The GtkComboBoxText implementation of the GtkBuildable interface supports adding items directly using the <items> element and specifying <item> elements for each item. Each <item> element can specify the “id” corresponding to the appended text and also supports the regular translation attributes “translatable”, “context” and “comments”.

Here is a UI definition fragment specifying GtkComboBoxText items:

<object class="GtkComboBoxText">
  <items>
    <item translatable="yes" id="factory">Factory</item>
    <item translatable="yes" id="home">Home</item>
    <item translatable="yes" id="subway">Subway</item>
  </items>
</object>

CSS nodes

combobox
╰── box.linked
    ├── entry.combo
    ├── button.combo
    ╰── window.popup

GtkComboBoxText has a single CSS node with name combobox. It adds the style class .combo to the main CSS nodes of its entry and button children, and the .linked class to the node of its internal box.

func NewComboBoxText

func NewComboBoxText() *ComboBoxText

NewComboBoxText creates a new ComboBoxText, which is a ComboBox just displaying strings.

The function returns the following values:

  • comboBoxText: new ComboBoxText.

func NewComboBoxTextWithEntry

func NewComboBoxTextWithEntry() *ComboBoxText

NewComboBoxTextWithEntry creates a new ComboBoxText, which is a ComboBox just displaying strings. The combo box created by this function has an entry.

The function returns the following values:

  • comboBoxText: new ComboBoxText.

func (*ComboBoxText) ActiveText

func (comboBox *ComboBoxText) ActiveText() string

ActiveText returns the currently active string in combo_box, or NULL if none is selected. If combo_box contains an entry, this function will return its contents (which will not necessarily be an item from the list).

The function returns the following values:

  • utf8: newly allocated string containing the currently active text. Must be freed with g_free().

func (*ComboBoxText) Append

func (comboBox *ComboBoxText) Append(id, text string)

Append appends text to the list of strings stored in combo_box. If id is non-NULL then it is used as the ID of the row.

This is the same as calling gtk_combo_box_text_insert() with a position of -1.

The function takes the following parameters:

  • id (optional): string ID for this value, or NULL.
  • text: string.

func (*ComboBoxText) AppendText

func (comboBox *ComboBoxText) AppendText(text string)

AppendText appends text to the list of strings stored in combo_box.

This is the same as calling gtk_combo_box_text_insert_text() with a position of -1.

The function takes the following parameters:

  • text: string.

func (*ComboBoxText) Insert

func (comboBox *ComboBoxText) Insert(position int, id, text string)

Insert inserts text at position in the list of strings stored in combo_box. If id is non-NULL then it is used as the ID of the row. See ComboBox:id-column.

If position is negative then text is appended.

The function takes the following parameters:

  • position: index to insert text.
  • id (optional): string ID for this value, or NULL.
  • text: string to display.

func (*ComboBoxText) InsertText

func (comboBox *ComboBoxText) InsertText(position int, text string)

InsertText inserts text at position in the list of strings stored in combo_box.

If position is negative then text is appended.

This is the same as calling gtk_combo_box_text_insert() with a NULL ID string.

The function takes the following parameters:

  • position: index to insert text.
  • text: string.

func (*ComboBoxText) Prepend

func (comboBox *ComboBoxText) Prepend(id, text string)

Prepend prepends text to the list of strings stored in combo_box. If id is non-NULL then it is used as the ID of the row.

This is the same as calling gtk_combo_box_text_insert() with a position of 0.

The function takes the following parameters:

  • id (optional): string ID for this value, or NULL.
  • text: string.

func (*ComboBoxText) PrependText

func (comboBox *ComboBoxText) PrependText(text string)

PrependText prepends text to the list of strings stored in combo_box.

This is the same as calling gtk_combo_box_text_insert_text() with a position of 0.

The function takes the following parameters:

  • text: string.

func (*ComboBoxText) Remove

func (comboBox *ComboBoxText) Remove(position int)

Remove removes the string at position from combo_box.

The function takes the following parameters:

  • position: index of the item to remove.

func (*ComboBoxText) RemoveAll

func (comboBox *ComboBoxText) RemoveAll()

RemoveAll removes all the text entries from the combo box.

type ComboBoxTextClass added in v0.0.5

type ComboBoxTextClass struct {
	// contains filtered or unexported fields
}

ComboBoxTextClass: instance of this type is always passed by reference.

func (*ComboBoxTextClass) ParentClass added in v0.0.5

func (c *ComboBoxTextClass) ParentClass() *ComboBoxClass

type ComboBoxTextOverrides added in v0.0.5

type ComboBoxTextOverrides struct {
}

ComboBoxTextOverrides contains methods that are overridable.

type Container

type Container struct {
	Widget
	// contains filtered or unexported fields
}

Container: GTK+ user interface is constructed by nesting widgets inside widgets. Container widgets are the inner nodes in the resulting tree of widgets: they contain other widgets. So, for example, you might have a Window containing a Frame containing a Label. If you wanted an image instead of a textual label inside the frame, you might replace the Label widget with a Image widget.

There are two major kinds of container widgets in GTK+. Both are subclasses of the abstract GtkContainer base class.

The first type of container widget has a single child widget and derives from Bin. These containers are decorators, which add some kind of functionality to the child. For example, a Button makes its child into a clickable button; a Frame draws a frame around its child and a Window places its child widget inside a top-level window.

The second type of container can have more than one child; its purpose is to manage layout. This means that these containers assign sizes and positions to their children. For example, a HBox arranges its children in a horizontal row, and a Grid arranges the widgets it contains in a two-dimensional grid.

For implementations of Container the virtual method ContainerClass.forall() is always required, since it's used for drawing and other internal operations on the children. If the Container implementation expect to have non internal children it's needed to implement both ContainerClass.add() and ContainerClass.remove(). If the GtkContainer implementation has internal children, they should be added with gtk_widget_set_parent() on init() and removed with gtk_widget_unparent() in the WidgetClass.destroy() implementation. See more about implementing custom widgets at https://wiki.gnome.org/HowDoI/CustomWidgets

Height for width geometry management

GTK+ uses a height-for-width (and width-for-height) geometry management system. Height-for-width means that a widget can change how much vertical space it needs, depending on the amount of horizontal space that it is given (and similar for width-for-height).

There are some things to keep in mind when implementing container widgets that make use of GTK+’s height for width geometry management system. First, it’s important to note that a container must prioritize one of its dimensions, that is to say that a widget or container can only have a SizeRequestMode that is GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH or GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT. However, every widget and container must be able to respond to the APIs for both dimensions, i.e. even if a widget has a request mode that is height-for-width, it is possible that its parent will request its sizes using the width-for-height APIs.

To ensure that everything works properly, here are some guidelines to follow when implementing height-for-width (or width-for-height) containers.

Each request mode involves 2 virtual methods. Height-for-width apis run through gtk_widget_get_preferred_width() and then through gtk_widget_get_preferred_height_for_width(). When handling requests in the opposite SizeRequestMode it is important that every widget request at least enough space to display all of its content at all times.

When gtk_widget_get_preferred_height() is called on a container that is height-for-width, the container must return the height for its minimum width. This is easily achieved by simply calling the reverse apis implemented for itself as follows:

static void
foo_container_get_preferred_width_for_height (GtkWidget *widget,
                                              gint for_height,
                                              gint *min_width,
                                              gint *nat_width)
{
   if (i_am_in_height_for_width_mode)
     {
       GTK_WIDGET_GET_CLASS (widget)->get_preferred_width (widget,
                                                           min_width,
                                                           nat_width);
     }
   else
     {
       ... execute the real width-for-height request here based on
       the required width of the children collectively if the
       container were to be allocated the said height ...
     }
}

Height for width requests are generally implemented in terms of a virtual allocation of widgets in the input orientation. Assuming an height-for-width request mode, a container would implement the get_preferred_height_for_width() virtual function by first calling gtk_widget_get_preferred_width() for each of its children.

For each potential group of children that are lined up horizontally, the values returned by gtk_widget_get_preferred_width() should be collected in an array of RequestedSize structures. Any child spacing should be removed from the input for_width and then the collective size should be allocated using the gtk_distribute_natural_allocation() convenience function.

The container will then move on to request the preferred height for each child by using gtk_widget_get_preferred_height_for_width() and using the sizes stored in the RequestedSize array.

To allocate a height-for-width container, it’s again important to consider that a container must prioritize one dimension over the other. So if a container is a height-for-width container it must first allocate all widgets horizontally using a RequestedSize array and gtk_distribute_natural_allocation() and then add any extra space (if and where appropriate) for the widget to expand.

After adding all the expand space, the container assumes it was allocated sufficient height to fit all of its content. At this time, the container must use the total horizontal sizes of each widget to request the height-for-width of each of its children and store the requests in a RequestedSize array for any widgets that stack vertically (for tabular containers this can be generalized into the heights and widths of rows and columns). The vertical space must then again be distributed using gtk_distribute_natural_allocation() while this time considering the allocated height of the widget minus any vertical spacing that the container adds. Then vertical expand space should be added where appropriate and available and the container should go on to actually allocating the child widgets.

See [GtkWidget’s geometry management section][geometry-management] to learn more about implementing height-for-width geometry management for widgets.

Child properties

GtkContainer introduces child properties. These are object properties that are not specific to either the container or the contained widget, but rather to their relation. Typical examples of child properties are the position or pack-type of a widget which is contained in a Box.

Use gtk_container_class_install_child_property() to install child properties for a container class and gtk_container_class_find_child_property() or gtk_container_class_list_child_properties() to get information about existing child properties.

To set the value of a child property, use gtk_container_child_set_property(), gtk_container_child_set() or gtk_container_child_set_valist(). To obtain the value of a child property, use gtk_container_child_get_property(), gtk_container_child_get() or gtk_container_child_get_valist(). To emit notification about child property changes, use gtk_widget_child_notify().

GtkContainer as GtkBuildable

The GtkContainer implementation of the GtkBuildable interface supports a <packing> element for children, which can contain multiple <property> elements that specify child properties for the child.

Since 2.16, child properties can also be marked as translatable using the same “translatable”, “comments” and “context” attributes that are used for regular properties.

Since 3.16, containers can have a <focus-chain> element containing multiple <widget> elements, one for each child that should be added to the focus chain. The ”name” attribute gives the id of the widget.

An example of these properties in UI definitions:

<object class="GtkBox">
  <child>
    <object class="GtkEntry" id="entry1"/>
    <packing>
      <property name="pack-type">start</property>
    </packing>
  </child>
  <child>
    <object class="GtkEntry" id="entry2"/>
  </child>
  <focus-chain>
    <widget name="entry1"/>
    <widget name="entry2"/>
  </focus-chain>
</object>.

func BaseContainer

func BaseContainer(obj Containerer) *Container

BaseContainer returns the underlying base object.

func (*Container) Add

func (container *Container) Add(widget Widgetter)

Add adds widget to container. Typically used for simple containers such as Window, Frame, or Button; for more complicated layout containers such as Box or Grid, this function will pick default packing parameters that may not be correct. So consider functions such as gtk_box_pack_start() and gtk_grid_attach() as an alternative to gtk_container_add() in those cases. A widget may be added to only one container at a time; you can’t place the same widget inside two different containers.

Note that some containers, such as ScrolledWindow or ListBox, may add intermediate children between the added widget and the container.

The function takes the following parameters:

  • widget to be placed inside container.

func (*Container) BorderWidth

func (container *Container) BorderWidth() uint

BorderWidth retrieves the border width of the container. See gtk_container_set_border_width().

The function returns the following values:

  • guint: current border width.

func (*Container) CheckResize

func (container *Container) CheckResize()

func (*Container) ChildGetProperty

func (container *Container) ChildGetProperty(child Widgetter, propertyName string, value *coreglib.Value)

ChildGetProperty gets the value of a child property for child and container.

The function takes the following parameters:

  • child: widget which is a child of container.
  • propertyName: name of the property to get.
  • value: location to return the value.

func (*Container) ChildNotify

func (container *Container) ChildNotify(child Widgetter, childProperty string)

ChildNotify emits a Widget::child-notify signal for the [child property][child-properties] child_property on the child.

This is an analogue of g_object_notify() for child properties.

Also see gtk_widget_child_notify().

The function takes the following parameters:

  • child widget.
  • childProperty: name of a child property installed on the class of container.

func (*Container) ChildSetProperty

func (container *Container) ChildSetProperty(child Widgetter, propertyName string, value *coreglib.Value)

ChildSetProperty sets a child property for child and container.

The function takes the following parameters:

  • child: widget which is a child of container.
  • propertyName: name of the property to set.
  • value to set the property to.

func (*Container) ChildType

func (container *Container) ChildType() coreglib.Type

ChildType returns the type of the children supported by the container.

Note that this may return G_TYPE_NONE to indicate that no more children can be added, e.g. for a Paned which already has two children.

The function returns the following values:

  • gType: #GType.

func (*Container) Children

func (container *Container) Children() []Widgetter

Children returns the container’s non-internal children. See gtk_container_forall() for details on what constitutes an "internal" child.

The function returns the following values:

  • list: newly-allocated list of the container’s non-internal children.

func (*Container) ConnectAdd

func (container *Container) ConnectAdd(f func(object Widgetter)) coreglib.SignalHandle

func (*Container) ConnectCheckResize

func (container *Container) ConnectCheckResize(f func()) coreglib.SignalHandle

func (*Container) ConnectRemove

func (container *Container) ConnectRemove(f func(object Widgetter)) coreglib.SignalHandle

func (*Container) ConnectSetFocusChild

func (container *Container) ConnectSetFocusChild(f func(object Widgetter)) coreglib.SignalHandle

func (*Container) FocusChain deprecated

func (container *Container) FocusChain() ([]Widgetter, bool)

FocusChain retrieves the focus chain of the container, if one has been set explicitly. If no focus chain has been explicitly set, GTK+ computes the focus chain based on the positions of the children. In that case, GTK+ stores NULL in focusable_widgets and returns FALSE.

Deprecated: For overriding focus behavior, use the GtkWidgetClass::focus signal.

The function returns the following values:

  • focusableWidgets: location to store the focus chain of the container, or NULL. You should free this list using g_list_free() when you are done with it, however no additional reference count is added to the individual widgets in the focus chain.
  • ok: TRUE if the focus chain of the container has been set explicitly.

func (*Container) FocusChild

func (container *Container) FocusChild() Widgetter

FocusChild returns the current focus child widget inside container. This is not the currently focused widget. That can be obtained by calling gtk_window_get_focus().

The function returns the following values:

  • widget (optional): child widget which will receive the focus inside container when the container is focused, or NULL if none is set.

func (*Container) FocusHAdjustment

func (container *Container) FocusHAdjustment() *Adjustment

FocusHAdjustment retrieves the horizontal focus adjustment for the container. See gtk_container_set_focus_hadjustment ().

The function returns the following values:

  • adjustment (optional): horizontal focus adjustment, or NULL if none has been set.

func (*Container) FocusVAdjustment

func (container *Container) FocusVAdjustment() *Adjustment

FocusVAdjustment retrieves the vertical focus adjustment for the container. See gtk_container_set_focus_vadjustment().

The function returns the following values:

  • adjustment (optional): vertical focus adjustment, or NULL if none has been set.

func (*Container) ForEach

func (container *Container) ForEach(callback Callback)

ForEach invokes callback on each non-internal child of container. See gtk_container_forall() for details on what constitutes an “internal” child. For all practical purposes, this function should iterate over precisely those child widgets that were added to the container by the application with explicit add() calls.

It is permissible to remove the child from the callback handler.

Most applications should use gtk_container_foreach(), rather than gtk_container_forall().

The function takes the following parameters:

  • callback: callback.

func (*Container) Forall

func (container *Container) Forall(callback Callback)

Forall invokes callback on each direct child of container, including children that are considered “internal” (implementation details of the container). “Internal” children generally weren’t added by the user of the container, but were added by the container implementation itself.

Most applications should use gtk_container_foreach(), rather than gtk_container_forall().

The function takes the following parameters:

  • callback: callback.

func (*Container) PathForChild

func (container *Container) PathForChild(child Widgetter) *WidgetPath

PathForChild returns a newly created widget path representing all the widget hierarchy from the toplevel down to and including child.

The function takes the following parameters:

  • child of container.

The function returns the following values:

  • widgetPath: newly created WidgetPath.

func (*Container) PropagateDraw

func (container *Container) PropagateDraw(child Widgetter, cr *cairo.Context)

PropagateDraw: when a container receives a call to the draw function, it must send synthetic Widget::draw calls to all children that don’t have their own Windows. This function provides a convenient way of doing this. A container, when it receives a call to its Widget::draw function, calls gtk_container_propagate_draw() once for each child, passing in the cr the container received.

gtk_container_propagate_draw() takes care of translating the origin of cr, and deciding whether the draw needs to be sent to the child. It is a convenient and optimized way of getting the same effect as calling gtk_widget_draw() on the child directly.

In most cases, a container can simply either inherit the Widget::draw implementation from Container, or do some drawing and then chain to the ::draw implementation from Container.

The function takes the following parameters:

  • child of container.
  • cr: cairo context as passed to the container. If you want to use cr in container’s draw function, consider using cairo_save() and cairo_restore() before calling this function.

func (*Container) Remove

func (container *Container) Remove(widget Widgetter)

Remove removes widget from container. widget must be inside container. Note that container will own a reference to widget, and that this may be the last reference held; so removing a widget from its container can destroy that widget. If you want to use widget again, you need to add a reference to it before removing it from a container, using g_object_ref(). If you don’t want to use widget again it’s usually more efficient to simply destroy it directly using gtk_widget_destroy() since this will remove it from the container and help break any circular reference count cycles.

The function takes the following parameters:

  • widget: current child of container.

func (*Container) ResizeChildren

func (container *Container) ResizeChildren()

ResizeChildren: deprecated: since version 3.10.

func (*Container) ResizeMode deprecated

func (container *Container) ResizeMode() ResizeMode

ResizeMode returns the resize mode for the container. See gtk_container_set_resize_mode ().

Deprecated: Resize modes are deprecated. They aren’t necessary anymore since frame clocks and might introduce obscure bugs if used.

The function returns the following values:

  • resizeMode: current resize mode.

func (*Container) SetBorderWidth

func (container *Container) SetBorderWidth(borderWidth uint)

SetBorderWidth sets the border width of the container.

The border width of a container is the amount of space to leave around the outside of the container. The only exception to this is Window; because toplevel windows can’t leave space outside, they leave the space inside. The border is added on all sides of the container. To add space to only one side, use a specific Widget:margin property on the child widget, for example Widget:margin-top.

The function takes the following parameters:

  • borderWidth: amount of blank space to leave outside the container. Valid values are in the range 0-65535 pixels.

func (*Container) SetFocusChain deprecated

func (container *Container) SetFocusChain(focusableWidgets []Widgetter)

SetFocusChain sets a focus chain, overriding the one computed automatically by GTK+.

In principle each widget in the chain should be a descendant of the container, but this is not enforced by this method, since it’s allowed to set the focus chain before you pack the widgets, or have a widget in the chain that isn’t always packed. The necessary checks are done when the focus chain is actually traversed.

Deprecated: For overriding focus behavior, use the GtkWidgetClass::focus signal.

The function takes the following parameters:

  • focusableWidgets: the new focus chain.

func (*Container) SetFocusChild

func (container *Container) SetFocusChild(child Widgetter)

SetFocusChild: sets, or unsets if child is NULL, the focused child of container.

This function emits the GtkContainer::set_focus_child signal of container. Implementations of Container can override the default behaviour by overriding the class closure of this signal.

This is function is mostly meant to be used by widgets. Applications can use gtk_widget_grab_focus() to manually set the focus to a specific widget.

The function takes the following parameters:

  • child (optional) or NULL.

func (*Container) SetFocusHAdjustment

func (container *Container) SetFocusHAdjustment(adjustment *Adjustment)

SetFocusHAdjustment hooks up an adjustment to focus handling in a container, so when a child of the container is focused, the adjustment is scrolled to show that widget. This function sets the horizontal alignment. See gtk_scrolled_window_get_hadjustment() for a typical way of obtaining the adjustment and gtk_container_set_focus_vadjustment() for setting the vertical adjustment.

The adjustments have to be in pixel units and in the same coordinate system as the allocation for immediate children of the container.

The function takes the following parameters:

  • adjustment which should be adjusted when the focus is moved among the descendents of container.

func (*Container) SetFocusVAdjustment

func (container *Container) SetFocusVAdjustment(adjustment *Adjustment)

SetFocusVAdjustment hooks up an adjustment to focus handling in a container, so when a child of the container is focused, the adjustment is scrolled to show that widget. This function sets the vertical alignment. See gtk_scrolled_window_get_vadjustment() for a typical way of obtaining the adjustment and gtk_container_set_focus_hadjustment() for setting the horizontal adjustment.

The adjustments have to be in pixel units and in the same coordinate system as the allocation for immediate children of the container.

The function takes the following parameters:

  • adjustment which should be adjusted when the focus is moved among the descendents of container.

func (*Container) SetReallocateRedraws deprecated

func (container *Container) SetReallocateRedraws(needsRedraws bool)

SetReallocateRedraws sets the reallocate_redraws flag of the container to the given value.

Containers requesting reallocation redraws get automatically redrawn if any of their children changed allocation.

Deprecated: Call gtk_widget_queue_draw() in your size_allocate handler.

The function takes the following parameters:

  • needsRedraws: new value for the container’s reallocate_redraws flag.

func (*Container) SetResizeMode deprecated

func (container *Container) SetResizeMode(resizeMode ResizeMode)

SetResizeMode sets the resize mode for the container.

The resize mode of a container determines whether a resize request will be passed to the container’s parent, queued for later execution or executed immediately.

Deprecated: Resize modes are deprecated. They aren’t necessary anymore since frame clocks and might introduce obscure bugs if used.

The function takes the following parameters:

  • resizeMode: new resize mode.

func (*Container) UnsetFocusChain deprecated

func (container *Container) UnsetFocusChain()

UnsetFocusChain removes a focus chain explicitly set with gtk_container_set_focus_chain().

Deprecated: For overriding focus behavior, use the GtkWidgetClass::focus signal.

type ContainerAccessible

type ContainerAccessible struct {
	WidgetAccessible
	// contains filtered or unexported fields
}

type ContainerAccessibleClass added in v0.0.5

type ContainerAccessibleClass struct {
	// contains filtered or unexported fields
}

ContainerAccessibleClass: instance of this type is always passed by reference.

func (*ContainerAccessibleClass) ParentClass added in v0.0.5

type ContainerAccessibleOverrides added in v0.0.5

type ContainerAccessibleOverrides struct {
}

ContainerAccessibleOverrides contains methods that are overridable.

type ContainerCellAccessible

type ContainerCellAccessible struct {
	CellAccessible
	// contains filtered or unexported fields
}

func NewContainerCellAccessible

func NewContainerCellAccessible() *ContainerCellAccessible

The function returns the following values:

func (*ContainerCellAccessible) AddChild

func (container *ContainerCellAccessible) AddChild(child *CellAccessible)

The function takes the following parameters:

func (*ContainerCellAccessible) Children

func (container *ContainerCellAccessible) Children() []*CellAccessible

Children: get a list of children.

The function returns the following values:

func (*ContainerCellAccessible) RemoveChild

func (container *ContainerCellAccessible) RemoveChild(child *CellAccessible)

The function takes the following parameters:

type ContainerCellAccessibleClass added in v0.0.5

type ContainerCellAccessibleClass struct {
	// contains filtered or unexported fields
}

ContainerCellAccessibleClass: instance of this type is always passed by reference.

func (*ContainerCellAccessibleClass) ParentClass added in v0.0.5

type ContainerCellAccessibleOverrides added in v0.0.5

type ContainerCellAccessibleOverrides struct {
}

ContainerCellAccessibleOverrides contains methods that are overridable.

type ContainerClass added in v0.0.5

type ContainerClass struct {
	// contains filtered or unexported fields
}

ContainerClass: base class for containers.

An instance of this type is always passed by reference.

func (*ContainerClass) HandleBorderWidth added in v0.0.5

func (klass *ContainerClass) HandleBorderWidth()

HandleBorderWidth modifies a subclass of ContainerClass to automatically add and remove the border-width setting on GtkContainer. This allows the subclass to ignore the border width in its size request and allocate methods. The intent is for a subclass to invoke this in its class_init function.

gtk_container_class_handle_border_width() is necessary because it would break API too badly to make this behavior the default. So subclasses must “opt in” to the parent class handling border_width for them.

func (*ContainerClass) ParentClass added in v0.0.5

func (c *ContainerClass) ParentClass() *WidgetClass

ParentClass: parent class.

type ContainerOverrides added in v0.0.5

type ContainerOverrides struct {
	// Add adds widget to container. Typically used for simple containers such
	// as Window, Frame, or Button; for more complicated layout containers such
	// as Box or Grid, this function will pick default packing parameters that
	// may not be correct. So consider functions such as gtk_box_pack_start()
	// and gtk_grid_attach() as an alternative to gtk_container_add() in those
	// cases. A widget may be added to only one container at a time; you can’t
	// place the same widget inside two different containers.
	//
	// Note that some containers, such as ScrolledWindow or ListBox, may add
	// intermediate children between the added widget and the container.
	//
	// The function takes the following parameters:
	//
	//   - widget to be placed inside container.
	//
	Add         func(widget Widgetter)
	CheckResize func()
	// ChildType returns the type of the children supported by the container.
	//
	// Note that this may return G_TYPE_NONE to indicate that no more children
	// can be added, e.g. for a Paned which already has two children.
	//
	// The function returns the following values:
	//
	//   - gType: #GType.
	//
	ChildType func() coreglib.Type
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	CompositeName func(child Widgetter) string
	// PathForChild returns a newly created widget path representing all the
	// widget hierarchy from the toplevel down to and including child.
	//
	// The function takes the following parameters:
	//
	//   - child of container.
	//
	// The function returns the following values:
	//
	//   - widgetPath: newly created WidgetPath.
	//
	PathForChild func(child Widgetter) *WidgetPath
	// Remove removes widget from container. widget must be inside container.
	// Note that container will own a reference to widget, and that this
	// may be the last reference held; so removing a widget from its
	// container can destroy that widget. If you want to use widget again,
	// you need to add a reference to it before removing it from a container,
	// using g_object_ref(). If you don’t want to use widget again it’s usually
	// more efficient to simply destroy it directly using gtk_widget_destroy()
	// since this will remove it from the container and help break any circular
	// reference count cycles.
	//
	// The function takes the following parameters:
	//
	//   - widget: current child of container.
	//
	Remove func(widget Widgetter)
	// SetFocusChild: sets, or unsets if child is NULL, the focused child of
	// container.
	//
	// This function emits the GtkContainer::set_focus_child signal of
	// container. Implementations of Container can override the default
	// behaviour by overriding the class closure of this signal.
	//
	// This is function is mostly meant to be used by widgets. Applications
	// can use gtk_widget_grab_focus() to manually set the focus to a specific
	// widget.
	//
	// The function takes the following parameters:
	//
	//   - child (optional) or NULL.
	//
	SetFocusChild func(child Widgetter)
}

ContainerOverrides contains methods that are overridable.

type Containerer

type Containerer interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

Containerer describes types inherited from class Container.

To get the original type, the caller must assert this to an interface or another type.

type CornerType

type CornerType C.gint

CornerType specifies which corner a child widget should be placed in when packed into a ScrolledWindow. This is effectively the opposite of where the scroll bars are placed.

const (
	// CornerTopLeft: place the scrollbars on the right and bottom of the widget
	// (default behaviour).
	CornerTopLeft CornerType = iota
	// CornerBottomLeft: place the scrollbars on the top and right of the
	// widget.
	CornerBottomLeft
	// CornerTopRight: place the scrollbars on the left and bottom of the
	// widget.
	CornerTopRight
	// CornerBottomRight: place the scrollbars on the top and left of the
	// widget.
	CornerBottomRight
)

func (CornerType) String

func (c CornerType) String() string

String returns the name in string for CornerType.

type DebugFlag

type DebugFlag C.guint
const (
	DebugMisc         DebugFlag = 0b1
	DebugPlugsocket   DebugFlag = 0b10
	DebugText         DebugFlag = 0b100
	DebugTree         DebugFlag = 0b1000
	DebugUpdates      DebugFlag = 0b10000
	DebugKeybindings  DebugFlag = 0b100000
	DebugMultihead    DebugFlag = 0b1000000
	DebugModules      DebugFlag = 0b10000000
	DebugGeometry     DebugFlag = 0b100000000
	DebugIcontheme    DebugFlag = 0b1000000000
	DebugPrinting     DebugFlag = 0b10000000000
	DebugBuilder      DebugFlag = 0b100000000000
	DebugSizeRequest  DebugFlag = 0b1000000000000
	DebugNoCSSCache   DebugFlag = 0b10000000000000
	DebugBaselines    DebugFlag = 0b100000000000000
	DebugPixelCache   DebugFlag = 0b1000000000000000
	DebugNoPixelCache DebugFlag = 0b10000000000000000
	DebugInteractive  DebugFlag = 0b100000000000000000
	DebugTouchscreen  DebugFlag = 0b1000000000000000000
	DebugActions      DebugFlag = 0b10000000000000000000
	DebugResize       DebugFlag = 0b100000000000000000000
	DebugLayout       DebugFlag = 0b1000000000000000000000
)

func (DebugFlag) Has

func (d DebugFlag) Has(other DebugFlag) bool

Has returns true if d contains other.

func (DebugFlag) String

func (d DebugFlag) String() string

String returns the names in string for DebugFlag.

type DeleteType

type DeleteType C.gint

DeleteType: see also: Entry::delete-from-cursor.

const (
	// DeleteChars: delete characters.
	DeleteChars DeleteType = iota
	// DeleteWordEnds: delete only the portion of the word to the left/right of
	// cursor if we’re in the middle of a word.
	DeleteWordEnds
	// DeleteWords: delete words.
	DeleteWords
	// DeleteDisplayLines: delete display-lines. Display-lines refers to the
	// visible lines, with respect to to the current line breaks. As opposed to
	// paragraphs, which are defined by line breaks in the input.
	DeleteDisplayLines
	// DeleteDisplayLineEnds: delete only the portion of the display-line to the
	// left/right of cursor.
	DeleteDisplayLineEnds
	// DeleteParagraphEnds: delete to the end of the paragraph. Like C-k in
	// Emacs (or its reverse).
	DeleteParagraphEnds
	// DeleteParagraphs: delete entire line. Like C-k in pico.
	DeleteParagraphs
	// DeleteWhitespace: delete only whitespace. Like M-\ in Emacs.
	DeleteWhitespace
)

func (DeleteType) String

func (d DeleteType) String() string

String returns the name in string for DeleteType.

type DestDefaults

type DestDefaults C.guint

DestDefaults enumeration specifies the various types of action that will be taken on behalf of the user for a drag destination site.

const (
	// DestDefaultMotion: if set for a widget, GTK+, during a drag over
	// this widget will check if the drag matches this widget’s list of
	// possible targets and actions. GTK+ will then call gdk_drag_status() as
	// appropriate.
	DestDefaultMotion DestDefaults = 0b1
	// DestDefaultHighlight: if set for a widget, GTK+ will draw a highlight
	// on this widget as long as a drag is over this widget and the widget drag
	// format and action are acceptable.
	DestDefaultHighlight DestDefaults = 0b10
	// DestDefaultDrop: if set for a widget, when a drop occurs, GTK+ will
	// will check if the drag matches this widget’s list of possible targets
	// and actions. If so, GTK+ will call gtk_drag_get_data() on behalf of
	// the widget. Whether or not the drop is successful, GTK+ will call
	// gtk_drag_finish(). If the action was a move, then if the drag was
	// successful, then TRUE will be passed for the delete parameter to
	// gtk_drag_finish().
	DestDefaultDrop DestDefaults = 0b100
	// DestDefaultAll: if set, specifies that all default actions should be
	// taken.
	DestDefaultAll DestDefaults = 0b111
)

func (DestDefaults) Has

func (d DestDefaults) Has(other DestDefaults) bool

Has returns true if d contains other.

func (DestDefaults) String

func (d DestDefaults) String() string

String returns the names in string for DestDefaults.

type Dialog

type Dialog struct {
	Window
	// contains filtered or unexported fields
}

Dialog boxes are a convenient way to prompt the user for a small amount of input, e.g. to display a message, ask a question, or anything else that does not require extensive effort on the user’s part.

GTK+ treats a dialog as a window split vertically. The top section is a VBox, and is where widgets such as a Label or a Entry should be packed. The bottom area is known as the “action area”. This is generally used for packing buttons into the dialog which may perform functions such as cancel, ok, or apply.

Dialog boxes are created with a call to gtk_dialog_new() or gtk_dialog_new_with_buttons(). gtk_dialog_new_with_buttons() is recommended; it allows you to set the dialog title, some convenient flags, and add simple buttons.

If “dialog” is a newly created dialog, the two primary areas of the window can be accessed through gtk_dialog_get_content_area() and gtk_dialog_get_action_area(), as can be seen from the example below.

A “modal” dialog (that is, one which freezes the rest of the application from user input), can be created by calling gtk_window_set_modal() on the dialog. Use the GTK_WINDOW() macro to cast the widget returned from gtk_dialog_new() into a Window. When using gtk_dialog_new_with_buttons() you can also pass the K_DIALOG_MODAL flag to make a dialog modal.

If you add buttons to Dialog using gtk_dialog_new_with_buttons(), gtk_dialog_add_button(), gtk_dialog_add_buttons(), or gtk_dialog_add_action_widget(), clicking the button will emit a signal called Dialog::response with a response ID that you specified. GTK+ will never assign a meaning to positive response IDs; these are entirely user-defined. But for convenience, you can use the response IDs in the ResponseType enumeration (these all have values less than zero). If a dialog receives a delete event, the Dialog::response signal will be emitted with a response ID of K_RESPONSE_DELETE_EVENT.

If you want to block waiting for a dialog to return before returning control flow to your code, you can call gtk_dialog_run(). This function enters a recursive main loop and waits for the user to respond to the dialog, returning the response ID corresponding to the button the user clicked.

For the simple dialog in the following example, in reality you’d probably use MessageDialog to save yourself some effort. But you’d need to create the dialog contents manually if you had more than a simple message in the dialog.

An example for simple GtkDialog usage:

// Function to open a dialog box with a message
void
quick_message (GtkWindow *parent, gchar *message)
{
 GtkWidget *dialog, *label, *content_area;
 GtkDialogFlags flags;

 // Create the widgets
 flags = GTK_DIALOG_DESTROY_WITH_PARENT;
 dialog = gtk_dialog_new_with_buttons ("Message",
                                       parent,
                                       flags,
                                       _("_OK"),
                                       GTK_RESPONSE_NONE,
                                       NULL);
 content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
 label = gtk_label_new (message);

 // Ensure that the dialog box is destroyed when the user responds

 g_signal_connect_swapped (dialog,
                           "response",
                           G_CALLBACK (gtk_widget_destroy),
                           dialog);

 // Add the label, and show everything we’ve added

 gtk_container_add (GTK_CONTAINER (content_area), label);
 gtk_widget_show_all (dialog);
}

GtkDialog as GtkBuildable

The GtkDialog implementation of the Buildable interface exposes the vbox and action_area as internal children with the names “vbox” and “action_area”.

GtkDialog supports a custom <action-widgets> element, which can contain multiple <action-widget> elements. The “response” attribute specifies a numeric response, and the content of the element is the id of widget (which should be a child of the dialogs action_area). To mark a response as default, set the “default“ attribute of the <action-widget> element to true.

GtkDialog supports adding action widgets by specifying “action“ as the “type“ attribute of a <child> element. The widget will be added either to the action area or the headerbar of the dialog, depending on the “use-header-bar“ property. The response id has to be associated with the action widget using the <action-widgets> element.

An example of a Dialog UI definition fragment:

<object class="GtkDialog" id="dialog1">
  <child type="action">
    <object class="GtkButton" id="button_cancel"/>
  </child>
  <child type="action">
    <object class="GtkButton" id="button_ok">
      <property name="can-default">True</property>
    </object>
  </child>
  <action-widgets>
    <action-widget response="cancel">button_cancel</action-widget>
    <action-widget response="ok" default="true">button_ok</action-widget>
  </action-widgets>
</object>.

func NewDialog

func NewDialog() *Dialog

NewDialog creates a new dialog box.

Widgets should not be packed into this Window directly, but into the vbox and action_area, as described above.

The function returns the following values:

  • dialog: new dialog as a Widget.

func NewDialogWithFlags

func NewDialogWithFlags(title string, parent *Window, flags DialogFlags) *Dialog

NewDialogWithFlags is a slightly more advanced version of NewDialog, allowing the user to construct a new dialog with the given constructor-only dialog flags.

It is a wrapper around Gtk.Dialog.new_with_buttons in C.

func (*Dialog) ActionArea deprecated

func (dialog *Dialog) ActionArea() *Box

ActionArea returns the action area of dialog.

Deprecated: Direct access to the action area is discouraged; use gtk_dialog_add_button(), etc.

The function returns the following values:

  • box: action area.

func (*Dialog) AddActionWidget

func (dialog *Dialog) AddActionWidget(child Widgetter, responseId int)

AddActionWidget adds an activatable widget to the action area of a Dialog, connecting a signal handler that will emit the Dialog::response signal on the dialog when the widget is activated. The widget is appended to the end of the dialog’s action area. If you want to add a non-activatable widget, simply pack it into the action_area field of the Dialog struct.

The function takes the following parameters:

  • child: activatable widget.
  • responseId: response ID for child.

func (*Dialog) AddButton

func (dialog *Dialog) AddButton(buttonText string, responseId int) Widgetter

AddButton adds a button with the given text and sets things up so that clicking the button will emit the Dialog::response signal with the given response_id. The button is appended to the end of the dialog’s action area. The button widget is returned, but usually you don’t need it.

The function takes the following parameters:

  • buttonText: text of button.
  • responseId: response ID for the button.

The function returns the following values:

  • widget widget that was added.

func (*Dialog) ConnectClose

func (dialog *Dialog) ConnectClose(f func()) coreglib.SignalHandle

ConnectClose signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user uses a keybinding to close the dialog.

The default binding for this signal is the Escape key.

func (*Dialog) ConnectResponse

func (dialog *Dialog) ConnectResponse(f func(responseId int)) coreglib.SignalHandle

ConnectResponse is emitted when an action widget is clicked, the dialog receives a delete event, or the application programmer calls gtk_dialog_response(). On a delete event, the response ID is K_RESPONSE_DELETE_EVENT. Otherwise, it depends on which action widget was clicked.

func (*Dialog) ContentArea

func (dialog *Dialog) ContentArea() *Box

ContentArea returns the content area of dialog.

The function returns the following values:

  • box: content area Box.

func (*Dialog) HeaderBar

func (dialog *Dialog) HeaderBar() *HeaderBar

HeaderBar returns the header bar of dialog. Note that the headerbar is only used by the dialog if the Dialog:use-header-bar property is TRUE.

The function returns the following values:

  • headerBar: header bar.

func (*Dialog) Response

func (dialog *Dialog) Response(responseId int)

Response emits the Dialog::response signal with the given response ID. Used to indicate that the user has responded to the dialog in some way; typically either you or gtk_dialog_run() will be monitoring the ::response signal and take appropriate action.

The function takes the following parameters:

  • responseId: response ID.

func (*Dialog) ResponseForWidget

func (dialog *Dialog) ResponseForWidget(widget Widgetter) int

ResponseForWidget gets the response id of a widget in the action area of a dialog.

The function takes the following parameters:

  • widget in the action area of dialog.

The function returns the following values:

  • gint: response id of widget, or GTK_RESPONSE_NONE if widget doesn’t have a response id set.

func (*Dialog) Run

func (dialog *Dialog) Run() int

Run blocks in a recursive main loop until the dialog either emits the Dialog::response signal, or is destroyed. If the dialog is destroyed during the call to gtk_dialog_run(), gtk_dialog_run() returns K_RESPONSE_NONE. Otherwise, it returns the response ID from the ::response signal emission.

Before entering the recursive main loop, gtk_dialog_run() calls gtk_widget_show() on the dialog for you. Note that you still need to show any children of the dialog yourself.

During gtk_dialog_run(), the default behavior of Widget::delete-event is disabled; if the dialog receives ::delete_event, it will not be destroyed as windows usually are, and gtk_dialog_run() will return K_RESPONSE_DELETE_EVENT. Also, during gtk_dialog_run() the dialog will be modal. You can force gtk_dialog_run() to return at any time by calling gtk_dialog_response() to emit the ::response signal. Destroying the dialog during gtk_dialog_run() is a very bad idea, because your post-run code won’t know whether the dialog was destroyed or not.

After gtk_dialog_run() returns, you are responsible for hiding or destroying the dialog if you wish to do so.

Typical usage of this function might be:

GtkWidget *dialog = gtk_dialog_new ();
// Set up dialog...

int result = gtk_dialog_run (GTK_DIALOG (dialog));
switch (result)
  {
    case GTK_RESPONSE_ACCEPT:
       // do_application_specific_something ();
       break;
    default:
       // do_nothing_since_dialog_was_cancelled ();
       break;
  }
gtk_widget_destroy (dialog);

Note that even though the recursive main loop gives the effect of a modal dialog (it prevents the user from interacting with other windows in the same window group while the dialog is run), callbacks such as timeouts, IO channel watches, DND drops, etc, will be triggered during a gtk_dialog_run() call.

The function returns the following values:

  • gint: response ID.

func (*Dialog) SetAlternativeButtonOrderFromArray deprecated

func (dialog *Dialog) SetAlternativeButtonOrderFromArray(newOrder []int)

SetAlternativeButtonOrderFromArray sets an alternative button order. If the Settings:gtk-alternative-button-order setting is set to TRUE, the dialog buttons are reordered according to the order of the response ids in new_order.

See gtk_dialog_set_alternative_button_order() for more information.

This function is for use by language bindings.

Deprecated: Deprecated.

The function takes the following parameters:

  • newOrder: array of response ids of dialog’s buttons.

func (*Dialog) SetDefaultResponse

func (dialog *Dialog) SetDefaultResponse(responseId int)

SetDefaultResponse sets the last widget in the dialog’s action area with the given response_id as the default widget for the dialog. Pressing “Enter” normally activates the default widget.

The function takes the following parameters:

  • responseId: response ID.

func (*Dialog) SetResponseSensitive

func (dialog *Dialog) SetResponseSensitive(responseId int, setting bool)

SetResponseSensitive calls gtk_widget_set_sensitive (widget, setting) for each widget in the dialog’s action area with the given response_id. A convenient way to sensitize/desensitize dialog buttons.

The function takes the following parameters:

  • responseId: response ID.
  • setting: TRUE for sensitive.

func (*Dialog) WidgetForResponse

func (dialog *Dialog) WidgetForResponse(responseId int) Widgetter

WidgetForResponse gets the widget button that uses the given response ID in the action area of a dialog.

The function takes the following parameters:

  • responseId: response ID used by the dialog widget.

The function returns the following values:

  • widget (optional) button that uses the given response_id, or NULL.

type DialogClass added in v0.0.5

type DialogClass struct {
	// contains filtered or unexported fields
}

DialogClass: instance of this type is always passed by reference.

func (*DialogClass) ParentClass added in v0.0.5

func (d *DialogClass) ParentClass() *WindowClass

ParentClass: parent class.

type DialogFlags

type DialogFlags C.guint

DialogFlags flags used to influence dialog construction.

const (
	// DialogModal: make the constructed dialog modal, see
	// gtk_window_set_modal().
	DialogModal DialogFlags = 0b1
	// DialogDestroyWithParent: destroy the dialog when its parent is destroyed,
	// see gtk_window_set_destroy_with_parent().
	DialogDestroyWithParent DialogFlags = 0b10
	// DialogUseHeaderBar: create dialog with actions in header bar instead of
	// action area. Since 3.12.
	DialogUseHeaderBar DialogFlags = 0b100
)

func (DialogFlags) Has

func (d DialogFlags) Has(other DialogFlags) bool

Has returns true if d contains other.

func (DialogFlags) String

func (d DialogFlags) String() string

String returns the names in string for DialogFlags.

type DialogOverrides added in v0.0.5

type DialogOverrides struct {
	Close func()
	// Response emits the Dialog::response signal with the given response ID.
	// Used to indicate that the user has responded to the dialog in some way;
	// typically either you or gtk_dialog_run() will be monitoring the
	// ::response signal and take appropriate action.
	//
	// The function takes the following parameters:
	//
	//   - responseId: response ID.
	//
	Response func(responseId int)
}

DialogOverrides contains methods that are overridable.

type DirectionType

type DirectionType C.gint

DirectionType focus movement types.

const (
	// DirTabForward: move forward.
	DirTabForward DirectionType = iota
	// DirTabBackward: move backward.
	DirTabBackward
	// DirUp: move up.
	DirUp
	// DirDown: move down.
	DirDown
	// DirLeft: move left.
	DirLeft
	// DirRight: move right.
	DirRight
)

func (DirectionType) String

func (d DirectionType) String() string

String returns the name in string for DirectionType.

type DragResult

type DragResult C.gint

DragResult gives an indication why a drag operation failed. The value can by obtained by connecting to the Widget::drag-failed signal.

const (
	// DragResultSuccess: drag operation was successful.
	DragResultSuccess DragResult = iota
	// DragResultNoTarget: no suitable drag target.
	DragResultNoTarget
	// DragResultUserCancelled: user cancelled the drag operation.
	DragResultUserCancelled
	// DragResultTimeoutExpired: drag operation timed out.
	DragResultTimeoutExpired
	// DragResultGrabBroken: pointer or keyboard grab used for the drag
	// operation was broken.
	DragResultGrabBroken
	// DragResultError: drag operation failed due to some unspecified error.
	DragResultError
)

func (DragResult) String

func (d DragResult) String() string

String returns the name in string for DragResult.

type DrawingArea

type DrawingArea struct {
	Widget
	// contains filtered or unexported fields
}

DrawingArea widget is used for creating custom user interface elements. It’s essentially a blank widget; you can draw on it. After creating a drawing area, the application may want to connect to:

- Mouse and button press signals to respond to input from the user. (Use gtk_widget_add_events() to enable events you wish to receive.)

- The Widget::realize signal to take any necessary actions when the widget is instantiated on a particular display. (Create GDK resources in response to this signal.)

- The Widget::size-allocate signal to take any necessary actions when the widget changes size.

- The Widget::draw signal to handle redrawing the contents of the widget.

The following code portion demonstrates using a drawing area to display a circle in the normal widget foreground color.

Note that GDK automatically clears the exposed area before sending the expose event, and that drawing is implicitly clipped to the exposed area. If you want to have a theme-provided background, you need to call gtk_render_background() in your ::draw method.

Simple GtkDrawingArea usage

gboolean
draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data)
{
  guint width, height;
  GdkRGBA color;
  GtkStyleContext *context;

  context = gtk_widget_get_style_context (widget);

  width = gtk_widget_get_allocated_width (widget);
  height = gtk_widget_get_allocated_height (widget);

  gtk_render_background (context, cr, 0, 0, width, height);

  cairo_arc (cr,
             width / 2.0, height / 2.0,
             MIN (width, height) / 2.0,
             0, 2 * G_PI);

  gtk_style_context_get_color (context,
                               gtk_style_context_get_state (context),
                               &color);
  gdk_cairo_set_source_rgba (cr, &color);

  cairo_fill (cr);

 return FALSE;
}
[...]
  GtkWidget *drawing_area = gtk_drawing_area_new ();
  gtk_widget_set_size_request (drawing_area, 100, 100);
  g_signal_connect (G_OBJECT (drawing_area), "draw",
                    G_CALLBACK (draw_callback), NULL);

Draw signals are normally delivered when a drawing area first comes onscreen, or when it’s covered by another window and then uncovered. You can also force an expose event by adding to the “damage region” of the drawing area’s window; gtk_widget_queue_draw_area() and gdk_window_invalidate_rect() are equally good ways to do this. You’ll then get a draw signal for the invalid region.

The available routines for drawing are documented on the [GDK Drawing Primitives][gdk3-Cairo-Interaction] page and the cairo documentation.

To receive mouse events on a drawing area, you will need to enable them with gtk_widget_add_events(). To receive keyboard events, you will need to set the “can-focus” property on the drawing area, and you should probably draw some user-visible indication that the drawing area is focused. Use gtk_widget_has_focus() in your expose event handler to decide whether to draw the focus indicator. See gtk_render_focus() for one way to draw focus.

func NewDrawingArea

func NewDrawingArea() *DrawingArea

NewDrawingArea creates a new drawing area.

The function returns the following values:

  • drawingArea: new DrawingArea.

type DrawingAreaClass added in v0.0.5

type DrawingAreaClass struct {
	// contains filtered or unexported fields
}

DrawingAreaClass: instance of this type is always passed by reference.

func (*DrawingAreaClass) ParentClass added in v0.0.5

func (d *DrawingAreaClass) ParentClass() *WidgetClass

type DrawingAreaOverrides added in v0.0.5

type DrawingAreaOverrides struct {
}

DrawingAreaOverrides contains methods that are overridable.

type Editable

type Editable struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

Editable interface is an interface which should be implemented by text editing widgets, such as Entry and SpinButton. It contains functions for generically manipulating an editable widget, a large number of action signals used for key bindings, and several signals that an application can connect to to modify the behavior of a widget.

As an example of the latter usage, by connecting the following handler to Editable::insert-text, an application can convert all entry into a widget into uppercase.

Forcing entry to uppercase.

#include <ctype.h>;

void
insert_text_handler (GtkEditable *editable,
                     const gchar *text,
                     gint         length,
                     gint        *position,
                     gpointer     data)
{
  gchar *result = g_utf8_strup (text, length);

  g_signal_handlers_block_by_func (editable,
                               (gpointer) insert_text_handler, data);
  gtk_editable_insert_text (editable, result, length, position);
  g_signal_handlers_unblock_by_func (editable,
                                     (gpointer) insert_text_handler, data);

  g_signal_stop_emission_by_name (editable, "insert_text");

  g_free (result);
}.

Editable wraps an interface. This means the user can get the underlying type by calling Cast().

func (*Editable) Chars

func (editable *Editable) Chars(startPos, endPos int) string

Chars retrieves a sequence of characters. The characters that are retrieved are those characters at positions from start_pos up to, but not including end_pos. If end_pos is negative, then the characters retrieved are those characters from start_pos to the end of the text.

Note that positions are specified in characters, not bytes.

The function takes the following parameters:

  • startPos: start of text.
  • endPos: end of text.

The function returns the following values:

  • utf8: pointer to the contents of the widget as a string. This string is allocated by the Editable implementation and should be freed by the caller.

func (*Editable) ConnectChanged

func (editable *Editable) ConnectChanged(f func()) coreglib.SignalHandle

ConnectChanged signal is emitted at the end of a single user-visible operation on the contents of the Editable.

E.g., a paste operation that replaces the contents of the selection will cause only one signal emission (even though it is implemented by first deleting the selection, then inserting the new content, and may cause multiple ::notify::text signals to be emitted).

func (*Editable) ConnectDeleteText

func (editable *Editable) ConnectDeleteText(f func(startPos, endPos int)) coreglib.SignalHandle

ConnectDeleteText: this signal is emitted when text is deleted from the widget by the user. The default handler for this signal will normally be responsible for deleting the text, so by connecting to this signal and then stopping the signal with g_signal_stop_emission(), it is possible to modify the range of deleted text, or prevent it from being deleted entirely. The start_pos and end_pos parameters are interpreted as for gtk_editable_delete_text().

func (*Editable) CopyClipboard

func (editable *Editable) CopyClipboard()

CopyClipboard copies the contents of the currently selected content in the editable and puts it on the clipboard.

func (*Editable) CutClipboard

func (editable *Editable) CutClipboard()

CutClipboard removes the contents of the currently selected content in the editable and puts it on the clipboard.

func (*Editable) DeleteSelection

func (editable *Editable) DeleteSelection()

DeleteSelection deletes the currently selected text of the editable. This call doesn’t do anything if there is no selected text.

func (*Editable) DeleteText

func (editable *Editable) DeleteText(startPos, endPos int)

DeleteText deletes a sequence of characters. The characters that are deleted are those characters at positions from start_pos up to, but not including end_pos. If end_pos is negative, then the characters deleted are those from start_pos to the end of the text.

Note that the positions are specified in characters, not bytes.

The function takes the following parameters:

  • startPos: start position.
  • endPos: end position.

func (*Editable) Editable

func (editable *Editable) Editable() bool

Editable retrieves whether editable is editable. See gtk_editable_set_editable().

The function returns the following values:

  • ok: TRUE if editable is editable.

func (*Editable) PasteClipboard

func (editable *Editable) PasteClipboard()

PasteClipboard pastes the content of the clipboard to the current position of the cursor in the editable.

func (*Editable) Position

func (editable *Editable) Position() int

Position retrieves the current position of the cursor relative to the start of the content of the editable.

Note that this position is in characters, not in bytes.

The function returns the following values:

  • gint: cursor position.

func (*Editable) SelectRegion

func (editable *Editable) SelectRegion(startPos, endPos int)

SelectRegion selects a region of text. The characters that are selected are those characters at positions from start_pos up to, but not including end_pos. If end_pos is negative, then the characters selected are those characters from start_pos to the end of the text.

Note that positions are specified in characters, not bytes.

The function takes the following parameters:

  • startPos: start of region.
  • endPos: end of region.

func (*Editable) SelectionBounds

func (editable *Editable) SelectionBounds() (startPos, endPos int, ok bool)

SelectionBounds retrieves the selection bound of the editable. start_pos will be filled with the start of the selection and end_pos with end. If no text was selected both will be identical and FALSE will be returned.

Note that positions are specified in characters, not bytes.

The function returns the following values:

  • startPos (optional): location to store the starting position, or NULL.
  • endPos (optional): location to store the end position, or NULL.
  • ok: TRUE if an area is selected, FALSE otherwise.

func (*Editable) SetEditable

func (editable *Editable) SetEditable(isEditable bool)

SetEditable determines if the user can edit the text in the editable widget or not.

The function takes the following parameters:

  • isEditable: TRUE if the user is allowed to edit the text in the widget.

func (*Editable) SetPosition

func (editable *Editable) SetPosition(position int)

SetPosition sets the cursor position in the editable to the given value.

The cursor is displayed before the character with the given (base 0) index in the contents of the editable. The value must be less than or equal to the number of characters in the editable. A value of -1 indicates that the position should be set after the last character of the editable. Note that position is in characters, not in bytes.

The function takes the following parameters:

  • position of the cursor.

type EditableInterface added in v0.0.5

type EditableInterface struct {
	// contains filtered or unexported fields
}

EditableInterface: instance of this type is always passed by reference.

type Editabler

type Editabler interface {
	coreglib.Objector

	// CopyClipboard copies the contents of the currently selected content in
	// the editable and puts it on the clipboard.
	CopyClipboard()
	// CutClipboard removes the contents of the currently selected content in
	// the editable and puts it on the clipboard.
	CutClipboard()
	// DeleteSelection deletes the currently selected text of the editable.
	DeleteSelection()
	// DeleteText deletes a sequence of characters.
	DeleteText(startPos, endPos int)
	// Chars retrieves a sequence of characters.
	Chars(startPos, endPos int) string
	// Editable retrieves whether editable is editable.
	Editable() bool
	// Position retrieves the current position of the cursor relative to the
	// start of the content of the editable.
	Position() int
	// SelectionBounds retrieves the selection bound of the editable.
	SelectionBounds() (startPos, endPos int, ok bool)
	// PasteClipboard pastes the content of the clipboard to the current
	// position of the cursor in the editable.
	PasteClipboard()
	// SelectRegion selects a region of text.
	SelectRegion(startPos, endPos int)
	// SetEditable determines if the user can edit the text in the editable
	// widget or not.
	SetEditable(isEditable bool)
	// SetPosition sets the cursor position in the editable to the given value.
	SetPosition(position int)

	// Changed signal is emitted at the end of a single user-visible operation
	// on the contents of the Editable.
	ConnectChanged(func()) coreglib.SignalHandle
	// Delete-text: this signal is emitted when text is deleted from the widget
	// by the user.
	ConnectDeleteText(func(startPos, endPos int)) coreglib.SignalHandle
}

Editabler describes Editable's interface methods.

type Entry

type Entry struct {
	Widget

	*coreglib.Object
	CellEditable
	Editable
	// contains filtered or unexported fields
}

Entry widget is a single line text entry widget. A fairly large set of key bindings are supported by default. If the entered text is longer than the allocation of the widget, the widget will scroll so that the cursor position is visible.

When using an entry for passwords and other sensitive information, it can be put into “password mode” using gtk_entry_set_visibility(). In this mode, entered text is displayed using a “invisible” character. By default, GTK+ picks the best invisible character that is available in the current font, but it can be changed with gtk_entry_set_invisible_char(). Since 2.16, GTK+ displays a warning when Caps Lock or input methods might interfere with entering text in a password entry. The warning can be turned off with the Entry:caps-lock-warning property.

Since 2.16, GtkEntry has the ability to display progress or activity information behind the text. To make an entry display such information, use gtk_entry_set_progress_fraction() or gtk_entry_set_progress_pulse_step().

Additionally, GtkEntry can show icons at either side of the entry. These icons can be activatable by clicking, can be set up as drag source and can have tooltips. To add an icon, use gtk_entry_set_icon_from_gicon() or one of the various other functions that set an icon from a stock id, an icon name or a pixbuf. To trigger an action when the user clicks an icon, connect to the Entry::icon-press signal. To allow DND operations from an icon, use gtk_entry_set_icon_drag_source(). To set a tooltip on an icon, use gtk_entry_set_icon_tooltip_text() or the corresponding function for markup.

Note that functionality or information that is only available by clicking on an icon in an entry may not be accessible at all to users which are not able to use a mouse or other pointing device. It is therefore recommended that any such functionality should also be available by other means, e.g. via the context menu of the entry.

CSS nodes

entry[.read-only][.flat][.warning][.error]
├── image.left
├── image.right
├── undershoot.left
├── undershoot.right
├── [selection]
├── [progress[.pulse]]
╰── [window.popup]

GtkEntry has a main node with the name entry. Depending on the properties of the entry, the style classes .read-only and .flat may appear. The style classes .warning and .error may also be used with entries.

When the entry shows icons, it adds subnodes with the name image and the style class .left or .right, depending on where the icon appears.

When the entry has a selection, it adds a subnode with the name selection.

When the entry shows progress, it adds a subnode with the name progress. The node has the style class .pulse when the shown progress is pulsing.

The CSS node for a context menu is added as a subnode below entry as well.

The undershoot nodes are used to draw the underflow indication when content is scrolled out of view. These nodes get the .left and .right style classes added depending on where the indication is drawn.

When touch is used and touch selection handles are shown, they are using CSS nodes with name cursor-handle. They get the .top or .bottom style class depending on where they are shown in relation to the selection. If there is just a single handle for the text cursor, it gets the style class .insertion-cursor.

func NewEntry

func NewEntry() *Entry

NewEntry creates a new entry.

The function returns the following values:

  • entry: new Entry.

func NewEntryWithBuffer

func NewEntryWithBuffer(buffer *EntryBuffer) *Entry

NewEntryWithBuffer creates a new entry with the specified text buffer.

The function takes the following parameters:

  • buffer to use for the new Entry.

The function returns the following values:

  • entry: new Entry.

func (*Entry) ActivatesDefault

func (entry *Entry) ActivatesDefault() bool

ActivatesDefault retrieves the value set by gtk_entry_set_activates_default().

The function returns the following values:

  • ok: TRUE if the entry will activate the default widget.

func (*Entry) Alignment

func (entry *Entry) Alignment() float32

Alignment gets the value set by gtk_entry_set_alignment().

The function returns the following values:

  • gfloat: alignment.

func (*Entry) Attributes

func (entry *Entry) Attributes() *pango.AttrList

Attributes gets the attribute list that was set on the entry using gtk_entry_set_attributes(), if any.

The function returns the following values:

  • attrList (optional): attribute list, or NULL if none was set.

func (*Entry) Buffer

func (entry *Entry) Buffer() *EntryBuffer

Buffer: get the EntryBuffer object which holds the text for this widget.

The function returns the following values:

  • entryBuffer: EntryBuffer object.

func (*Entry) Completion

func (entry *Entry) Completion() *EntryCompletion

Completion returns the auxiliary completion object currently in use by entry.

The function returns the following values:

  • entryCompletion: auxiliary completion object currently in use by entry.

func (*Entry) ConnectActivate

func (entry *Entry) ConnectActivate(f func()) coreglib.SignalHandle

ConnectActivate signal is emitted when the user hits the Enter key.

While this signal is used as a [keybinding signal][GtkBindingSignal], it is also commonly used by applications to intercept activation of entries.

The default bindings for this signal are all forms of the Enter key.

func (*Entry) ConnectBackspace

func (entry *Entry) ConnectBackspace(f func()) coreglib.SignalHandle

ConnectBackspace signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

The default bindings for this signal are Backspace and Shift-Backspace.

func (*Entry) ConnectCopyClipboard

func (entry *Entry) ConnectCopyClipboard(f func()) coreglib.SignalHandle

ConnectCopyClipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to copy the selection to the clipboard.

The default bindings for this signal are Ctrl-c and Ctrl-Insert.

func (*Entry) ConnectCutClipboard

func (entry *Entry) ConnectCutClipboard(f func()) coreglib.SignalHandle

ConnectCutClipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cut the selection to the clipboard.

The default bindings for this signal are Ctrl-x and Shift-Delete.

func (*Entry) ConnectDeleteFromCursor

func (entry *Entry) ConnectDeleteFromCursor(f func(typ DeleteType, count int)) coreglib.SignalHandle

ConnectDeleteFromCursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a text deletion.

If the type is GTK_DELETE_CHARS, GTK+ deletes the selection if there is one, otherwise it deletes the requested number of characters.

The default bindings for this signal are Delete for deleting a character and Ctrl-Delete for deleting a word.

func (*Entry) ConnectIconPress

func (entry *Entry) ConnectIconPress(f func(iconPos EntryIconPosition, event *gdk.Event)) coreglib.SignalHandle

ConnectIconPress signal is emitted when an activatable icon is clicked.

func (*Entry) ConnectIconRelease

func (entry *Entry) ConnectIconRelease(f func(iconPos EntryIconPosition, event *gdk.Event)) coreglib.SignalHandle

ConnectIconRelease signal is emitted on the button release from a mouse click over an activatable icon.

func (*Entry) ConnectInsertAtCursor

func (entry *Entry) ConnectInsertAtCursor(f func(str string)) coreglib.SignalHandle

ConnectInsertAtCursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates the insertion of a fixed string at the cursor.

This signal has no default bindings.

func (*Entry) ConnectInsertEmoji

func (entry *Entry) ConnectInsertEmoji(f func()) coreglib.SignalHandle

ConnectInsertEmoji signal is a [keybinding signal][GtkBindingSignal] which gets emitted to present the Emoji chooser for the entry.

The default bindings for this signal are Ctrl-. and Ctrl-;.

func (*Entry) ConnectMoveCursor

func (entry *Entry) ConnectMoveCursor(f func(step MovementStep, count int, extendSelection bool)) coreglib.SignalHandle

ConnectMoveCursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a cursor movement. If the cursor is not visible in entry, this signal causes the viewport to be moved instead.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically.

The default bindings for this signal come in two variants, the variant with the Shift modifier extends the selection, the variant without the Shift modifer does not. There are too many key combinations to list them all here.

- Arrow keys move by individual characters/lines

- Ctrl-arrow key combinations move by words/paragraphs

- Home/End keys move to the ends of the buffer.

func (*Entry) ConnectPasteClipboard

func (entry *Entry) ConnectPasteClipboard(f func()) coreglib.SignalHandle

ConnectPasteClipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to paste the contents of the clipboard into the text view.

The default bindings for this signal are Ctrl-v and Shift-Insert.

func (*Entry) ConnectPopulatePopup

func (entry *Entry) ConnectPopulatePopup(f func(widget Widgetter)) coreglib.SignalHandle

ConnectPopulatePopup signal gets emitted before showing the context menu of the entry.

If you need to add items to the context menu, connect to this signal and append your items to the widget, which will be a Menu in this case.

If Entry:populate-all is TRUE, this signal will also be emitted to populate touch popups. In this case, widget will be a different container, e.g. a Toolbar. The signal handler should not make assumptions about the type of widget.

func (*Entry) ConnectPreeditChanged

func (entry *Entry) ConnectPreeditChanged(f func(preedit string)) coreglib.SignalHandle

ConnectPreeditChanged: if an input method is used, the typed text will not immediately be committed to the buffer. So if you are interested in the text, connect to this signal.

func (*Entry) ConnectToggleOverwrite

func (entry *Entry) ConnectToggleOverwrite(f func()) coreglib.SignalHandle

ConnectToggleOverwrite signal is a [keybinding signal][GtkBindingSignal] which gets emitted to toggle the overwrite mode of the entry.

The default bindings for this signal is Insert.

func (*Entry) CurrentIconDragSource

func (entry *Entry) CurrentIconDragSource() int

CurrentIconDragSource returns the index of the icon which is the source of the current DND operation, or -1.

This function is meant to be used in a Widget::drag-data-get callback.

The function returns the following values:

  • gint: index of the icon which is the source of the current DND operation, or -1.

func (*Entry) CursorHAdjustment

func (entry *Entry) CursorHAdjustment() *Adjustment

CursorHAdjustment retrieves the horizontal cursor adjustment for the entry. See gtk_entry_set_cursor_hadjustment().

The function returns the following values:

  • adjustment (optional): horizontal cursor adjustment, or NULL if none has been set.

func (*Entry) GrabFocusWithoutSelecting

func (entry *Entry) GrabFocusWithoutSelecting()

GrabFocusWithoutSelecting causes entry to have keyboard focus.

It behaves like gtk_widget_grab_focus(), except that it doesn't select the contents of the entry. You only want to call this on some special entries which the user usually doesn't want to replace all text in, such as search-as-you-type entries.

func (*Entry) HasFrame

func (entry *Entry) HasFrame() bool

HasFrame gets the value set by gtk_entry_set_has_frame().

The function returns the following values:

  • ok: whether the entry has a beveled frame.

func (*Entry) IMContextFilterKeypress

func (entry *Entry) IMContextFilterKeypress(event *gdk.EventKey) bool

IMContextFilterKeypress: allow the Entry input method to internally handle key press and release events. If this function returns TRUE, then no further processing should be done for this key event. See gtk_im_context_filter_keypress().

Note that you are expected to call this function from your handler when overriding key event handling. This is needed in the case when you need to insert your own key handling between the input method and the default key event handling of the Entry. See gtk_text_view_reset_im_context() for an example of use.

The function takes the following parameters:

  • event: key event.

The function returns the following values:

  • ok: TRUE if the input method handled the key event.

func (*Entry) IconActivatable

func (entry *Entry) IconActivatable(iconPos EntryIconPosition) bool

IconActivatable returns whether the icon is activatable.

The function takes the following parameters:

  • iconPos: icon position.

The function returns the following values:

  • ok: TRUE if the icon is activatable.

func (*Entry) IconArea

func (entry *Entry) IconArea(iconPos EntryIconPosition) *gdk.Rectangle

IconArea gets the area where entry’s icon at icon_pos is drawn. This function is useful when drawing something to the entry in a draw callback.

If the entry is not realized or has no icon at the given position, icon_area is filled with zeros. Otherwise, icon_area will be filled with the icon’s allocation, relative to entry’s allocation.

See also gtk_entry_get_text_area().

The function takes the following parameters:

  • iconPos: icon position.

The function returns the following values:

  • iconArea: return location for the icon’s area.

func (*Entry) IconAtPos

func (entry *Entry) IconAtPos(x, y int) int

IconAtPos finds the icon at the given position and return its index. The position’s coordinates are relative to the entry’s top left corner. If x, y doesn’t lie inside an icon, -1 is returned. This function is intended for use in a Widget::query-tooltip signal handler.

The function takes the following parameters:

  • x coordinate of the position to find.
  • y coordinate of the position to find.

The function returns the following values:

  • gint: index of the icon at the given position, or -1.

func (*Entry) IconGIcon

func (entry *Entry) IconGIcon(iconPos EntryIconPosition) *gio.Icon

IconGIcon retrieves the #GIcon used for the icon, or NULL if there is no icon or if the icon was set by some other method (e.g., by stock, pixbuf, or icon name).

The function takes the following parameters:

  • iconPos: icon position.

The function returns the following values:

  • icon (optional) or NULL if no icon is set or if the icon is not a #GIcon.

func (*Entry) IconName

func (entry *Entry) IconName(iconPos EntryIconPosition) string

IconName retrieves the icon name used for the icon, or NULL if there is no icon or if the icon was set by some other method (e.g., by pixbuf, stock or gicon).

The function takes the following parameters:

  • iconPos: icon position.

The function returns the following values:

  • utf8 (optional): icon name, or NULL if no icon is set or if the icon wasn’t set from an icon name.

func (*Entry) IconPixbuf

func (entry *Entry) IconPixbuf(iconPos EntryIconPosition) *gdkpixbuf.Pixbuf

IconPixbuf retrieves the image used for the icon.

Unlike the other methods of setting and getting icon data, this method will work regardless of whether the icon was set using a Pixbuf, a #GIcon, a stock item, or an icon name.

The function takes the following parameters:

  • iconPos: icon position.

The function returns the following values:

  • pixbuf (optional) or NULL if no icon is set for this position.

func (*Entry) IconSensitive

func (entry *Entry) IconSensitive(iconPos EntryIconPosition) bool

IconSensitive returns whether the icon appears sensitive or insensitive.

The function takes the following parameters:

  • iconPos: icon position.

The function returns the following values:

  • ok: TRUE if the icon is sensitive.

func (*Entry) IconStock deprecated

func (entry *Entry) IconStock(iconPos EntryIconPosition) string

IconStock retrieves the stock id used for the icon, or NULL if there is no icon or if the icon was set by some other method (e.g., by pixbuf, icon name or gicon).

Deprecated: Use gtk_entry_get_icon_name() instead.

The function takes the following parameters:

  • iconPos: icon position.

The function returns the following values:

  • utf8: stock id, or NULL if no icon is set or if the icon wasn’t set from a stock id.

func (*Entry) IconStorageType

func (entry *Entry) IconStorageType(iconPos EntryIconPosition) ImageType

IconStorageType gets the type of representation being used by the icon to store image data. If the icon has no image data, the return value will be GTK_IMAGE_EMPTY.

The function takes the following parameters:

  • iconPos: icon position.

The function returns the following values:

  • imageType: image representation being used.

func (*Entry) IconTooltipMarkup

func (entry *Entry) IconTooltipMarkup(iconPos EntryIconPosition) string

IconTooltipMarkup gets the contents of the tooltip on the icon at the specified position in entry.

The function takes the following parameters:

  • iconPos: icon position.

The function returns the following values:

  • utf8 (optional): tooltip text, or NULL. Free the returned string with g_free() when done.

func (*Entry) IconTooltipText

func (entry *Entry) IconTooltipText(iconPos EntryIconPosition) string

IconTooltipText gets the contents of the tooltip on the icon at the specified position in entry.

The function takes the following parameters:

  • iconPos: icon position.

The function returns the following values:

  • utf8 (optional): tooltip text, or NULL. Free the returned string with g_free() when done.

func (*Entry) InnerBorder deprecated

func (entry *Entry) InnerBorder() *Border

InnerBorder: this function returns the entry’s Entry:inner-border property. See gtk_entry_set_inner_border() for more information.

Deprecated: Use the standard border and padding CSS properties (through objects like StyleContext and CssProvider); the value returned by this function is ignored by Entry.

The function returns the following values:

  • border (optional) entry’s Border, or NULL if none was set.

func (*Entry) InputHints

func (entry *Entry) InputHints() InputHints

InputHints gets the value of the Entry:input-hints property.

The function returns the following values:

func (*Entry) InputPurpose

func (entry *Entry) InputPurpose() InputPurpose

InputPurpose gets the value of the Entry:input-purpose property.

The function returns the following values:

func (*Entry) InvisibleChar

func (entry *Entry) InvisibleChar() uint32

InvisibleChar retrieves the character displayed in place of the real characters for entries with visibility set to false. See gtk_entry_set_invisible_char().

The function returns the following values:

  • gunichar: current invisible char, or 0, if the entry does not show invisible text at all.

func (*Entry) Layout

func (entry *Entry) Layout() *pango.Layout

Layout gets the Layout used to display the entry. The layout is useful to e.g. convert text positions to pixel positions, in combination with gtk_entry_get_layout_offsets(). The returned layout is owned by the entry and must not be modified or freed by the caller.

Keep in mind that the layout text may contain a preedit string, so gtk_entry_layout_index_to_text_index() and gtk_entry_text_index_to_layout_index() are needed to convert byte indices in the layout to byte indices in the entry contents.

The function returns the following values:

  • layout for this entry.

func (*Entry) LayoutIndexToTextIndex

func (entry *Entry) LayoutIndexToTextIndex(layoutIndex int) int

LayoutIndexToTextIndex converts from a position in the entry’s Layout (returned by gtk_entry_get_layout()) to a position in the entry contents (returned by gtk_entry_get_text()).

The function takes the following parameters:

  • layoutIndex: byte index into the entry layout text.

The function returns the following values:

  • gint: byte index into the entry contents.

func (*Entry) LayoutOffsets

func (entry *Entry) LayoutOffsets() (x, y int)

LayoutOffsets obtains the position of the Layout used to render text in the entry, in widget coordinates. Useful if you want to line up the text in an entry with some other text, e.g. when using the entry to implement editable cells in a sheet widget.

Also useful to convert mouse events into coordinates inside the Layout, e.g. to take some action if some part of the entry text is clicked.

Note that as the user scrolls around in the entry the offsets will change; you’ll need to connect to the “notify::scroll-offset” signal to track this. Remember when using the Layout functions you need to convert to and from pixels using PANGO_PIXELS() or NGO_SCALE.

Keep in mind that the layout text may contain a preedit string, so gtk_entry_layout_index_to_text_index() and gtk_entry_text_index_to_layout_index() are needed to convert byte indices in the layout to byte indices in the entry contents.

The function returns the following values:

  • x (optional): location to store X offset of layout, or NULL.
  • y (optional): location to store Y offset of layout, or NULL.

func (*Entry) MaxLength

func (entry *Entry) MaxLength() int

MaxLength retrieves the maximum allowed length of the text in entry. See gtk_entry_set_max_length().

This is equivalent to getting entry's EntryBuffer and calling gtk_entry_buffer_get_max_length() on it.

The function returns the following values:

  • gint: maximum allowed number of characters in Entry, or 0 if there is no maximum.

func (*Entry) MaxWidthChars

func (entry *Entry) MaxWidthChars() int

MaxWidthChars retrieves the desired maximum width of entry, in characters. See gtk_entry_set_max_width_chars().

The function returns the following values:

  • gint: maximum width of the entry, in characters.

func (*Entry) OverwriteMode

func (entry *Entry) OverwriteMode() bool

OverwriteMode gets the value set by gtk_entry_set_overwrite_mode().

The function returns the following values:

  • ok: whether the text is overwritten when typing.

func (*Entry) PlaceholderText

func (entry *Entry) PlaceholderText() string

PlaceholderText retrieves the text that will be displayed when entry is empty and unfocused.

The function returns the following values:

  • utf8: pointer to the placeholder text as a string. This string points to internally allocated storage in the widget and must not be freed, modified or stored.

func (*Entry) ProgressFraction

func (entry *Entry) ProgressFraction() float64

ProgressFraction returns the current fraction of the task that’s been completed. See gtk_entry_set_progress_fraction().

The function returns the following values:

  • gdouble: fraction from 0.0 to 1.0.

func (*Entry) ProgressPulse

func (entry *Entry) ProgressPulse()

ProgressPulse indicates that some progress is made, but you don’t know how much. Causes the entry’s progress indicator to enter “activity mode,” where a block bounces back and forth. Each call to gtk_entry_progress_pulse() causes the block to move by a little bit (the amount of movement per pulse is determined by gtk_entry_set_progress_pulse_step()).

func (*Entry) ProgressPulseStep

func (entry *Entry) ProgressPulseStep() float64

ProgressPulseStep retrieves the pulse step set with gtk_entry_set_progress_pulse_step().

The function returns the following values:

  • gdouble: fraction from 0.0 to 1.0.

func (*Entry) ResetIMContext

func (entry *Entry) ResetIMContext()

ResetIMContext: reset the input method context of the entry if needed.

This can be necessary in the case where modifying the buffer would confuse on-going input method behavior.

func (*Entry) SetActivatesDefault

func (entry *Entry) SetActivatesDefault(setting bool)

SetActivatesDefault: if setting is TRUE, pressing Enter in the entry will activate the default widget for the window containing the entry. This usually means that the dialog box containing the entry will be closed, since the default widget is usually one of the dialog buttons.

(For experts: if setting is TRUE, the entry calls gtk_window_activate_default() on the window containing the entry, in the default handler for the Entry::activate signal.).

The function takes the following parameters:

  • setting: TRUE to activate window’s default widget on Enter keypress.

func (*Entry) SetAlignment

func (entry *Entry) SetAlignment(xalign float32)

SetAlignment sets the alignment for the contents of the entry. This controls the horizontal positioning of the contents when the displayed text is shorter than the width of the entry.

The function takes the following parameters:

  • xalign: horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL layouts.

func (*Entry) SetAttributes

func (entry *Entry) SetAttributes(attrs *pango.AttrList)

SetAttributes sets a AttrList; the attributes in the list are applied to the entry text.

The function takes the following parameters:

  • attrs: AttrList.

func (*Entry) SetBuffer

func (entry *Entry) SetBuffer(buffer *EntryBuffer)

SetBuffer: set the EntryBuffer object which holds the text for this widget.

The function takes the following parameters:

  • buffer: EntryBuffer.

func (*Entry) SetCompletion

func (entry *Entry) SetCompletion(completion *EntryCompletion)

SetCompletion sets completion to be the auxiliary completion object to use with entry. All further configuration of the completion mechanism is done on completion using the EntryCompletion API. Completion is disabled if completion is set to NULL.

The function takes the following parameters:

  • completion (optional) or NULL.

func (*Entry) SetCursorHAdjustment

func (entry *Entry) SetCursorHAdjustment(adjustment *Adjustment)

SetCursorHAdjustment hooks up an adjustment to the cursor position in an entry, so that when the cursor is moved, the adjustment is scrolled to show that position. See gtk_scrolled_window_get_hadjustment() for a typical way of obtaining the adjustment.

The adjustment has to be in pixel units and in the same coordinate system as the entry.

The function takes the following parameters:

  • adjustment (optional) which should be adjusted when the cursor is moved, or NULL.

func (*Entry) SetHasFrame

func (entry *Entry) SetHasFrame(setting bool)

SetHasFrame sets whether the entry has a beveled frame around it.

The function takes the following parameters:

  • setting: new value.

func (*Entry) SetIconActivatable

func (entry *Entry) SetIconActivatable(iconPos EntryIconPosition, activatable bool)

SetIconActivatable sets whether the icon is activatable.

The function takes the following parameters:

  • iconPos: icon position.
  • activatable: TRUE if the icon should be activatable.

func (*Entry) SetIconDragSource

func (entry *Entry) SetIconDragSource(iconPos EntryIconPosition, targetList *TargetList, actions gdk.DragAction)

SetIconDragSource sets up the icon at the given position so that GTK+ will start a drag operation when the user clicks and drags the icon.

To handle the drag operation, you need to connect to the usual Widget::drag-data-get (or possibly Widget::drag-data-delete) signal, and use gtk_entry_get_current_icon_drag_source() in your signal handler to find out if the drag was started from an icon.

By default, GTK+ uses the icon as the drag icon. You can use the Widget::drag-begin signal to set a different icon. Note that you have to use g_signal_connect_after() to ensure that your signal handler gets executed after the default handler.

The function takes the following parameters:

  • iconPos: icon position.
  • targetList targets (data formats) in which the data can be provided.
  • actions: bitmask of the allowed drag actions.

func (*Entry) SetIconFromGIcon

func (entry *Entry) SetIconFromGIcon(iconPos EntryIconPosition, icon gio.Iconner)

SetIconFromGIcon sets the icon shown in the entry at the specified position from the current icon theme. If the icon isn’t known, a “broken image” icon will be displayed instead.

If icon is NULL, no icon will be shown in the specified position.

The function takes the following parameters:

  • iconPos: position at which to set the icon.
  • icon (optional) to set, or NULL.

func (*Entry) SetIconFromIconName

func (entry *Entry) SetIconFromIconName(iconPos EntryIconPosition, iconName string)

SetIconFromIconName sets the icon shown in the entry at the specified position from the current icon theme.

If the icon name isn’t known, a “broken image” icon will be displayed instead.

If icon_name is NULL, no icon will be shown in the specified position.

The function takes the following parameters:

  • iconPos: position at which to set the icon.
  • iconName (optional): icon name, or NULL.

func (*Entry) SetIconFromPixbuf

func (entry *Entry) SetIconFromPixbuf(iconPos EntryIconPosition, pixbuf *gdkpixbuf.Pixbuf)

SetIconFromPixbuf sets the icon shown in the specified position using a pixbuf.

If pixbuf is NULL, no icon will be shown in the specified position.

The function takes the following parameters:

  • iconPos: icon position.
  • pixbuf (optional) or NULL.

func (*Entry) SetIconFromStock deprecated

func (entry *Entry) SetIconFromStock(iconPos EntryIconPosition, stockId string)

SetIconFromStock sets the icon shown in the entry at the specified position from a stock image.

If stock_id is NULL, no icon will be shown in the specified position.

Deprecated: Use gtk_entry_set_icon_from_icon_name() instead.

The function takes the following parameters:

  • iconPos: icon position.
  • stockId (optional): name of the stock item, or NULL.

func (*Entry) SetIconSensitive

func (entry *Entry) SetIconSensitive(iconPos EntryIconPosition, sensitive bool)

SetIconSensitive sets the sensitivity for the specified icon.

The function takes the following parameters:

  • iconPos: icon position.
  • sensitive specifies whether the icon should appear sensitive or insensitive.

func (*Entry) SetIconTooltipMarkup

func (entry *Entry) SetIconTooltipMarkup(iconPos EntryIconPosition, tooltip string)

SetIconTooltipMarkup sets tooltip as the contents of the tooltip for the icon at the specified position. tooltip is assumed to be marked up with the [Pango text markup language][PangoMarkupFormat].

Use NULL for tooltip to remove an existing tooltip.

See also gtk_widget_set_tooltip_markup() and gtk_entry_set_icon_tooltip_text().

The function takes the following parameters:

  • iconPos: icon position.
  • tooltip (optional) contents of the tooltip for the icon, or NULL.

func (*Entry) SetIconTooltipText

func (entry *Entry) SetIconTooltipText(iconPos EntryIconPosition, tooltip string)

SetIconTooltipText sets tooltip as the contents of the tooltip for the icon at the specified position.

Use NULL for tooltip to remove an existing tooltip.

See also gtk_widget_set_tooltip_text() and gtk_entry_set_icon_tooltip_markup().

If you unset the widget tooltip via gtk_widget_set_tooltip_text() or gtk_widget_set_tooltip_markup(), this sets GtkWidget:has-tooltip to FALSE, which suppresses icon tooltips too. You can resolve this by then calling gtk_widget_set_has_tooltip() to set GtkWidget:has-tooltip back to TRUE, or setting at least one non-empty tooltip on any icon achieves the same result.

The function takes the following parameters:

  • iconPos: icon position.
  • tooltip (optional) contents of the tooltip for the icon, or NULL.

func (*Entry) SetInnerBorder deprecated

func (entry *Entry) SetInnerBorder(border *Border)

SetInnerBorder sets entry’s inner-border property to border, or clears it if NULL is passed. The inner-border is the area around the entry’s text, but inside its frame.

If set, this property overrides the inner-border style property. Overriding the style-provided border is useful when you want to do in-place editing of some text in a canvas or list widget, where pixel-exact positioning of the entry is important.

Deprecated: Use the standard border and padding CSS properties (through objects like StyleContext and CssProvider); the value set with this function is ignored by Entry.

The function takes the following parameters:

  • border (optional) or NULL.

func (*Entry) SetInputHints

func (entry *Entry) SetInputHints(hints InputHints)

SetInputHints sets the Entry:input-hints property, which allows input methods to fine-tune their behaviour.

The function takes the following parameters:

  • hints: hints.

func (*Entry) SetInputPurpose

func (entry *Entry) SetInputPurpose(purpose InputPurpose)

SetInputPurpose sets the Entry:input-purpose property which can be used by on-screen keyboards and other input methods to adjust their behaviour.

The function takes the following parameters:

  • purpose: purpose.

func (*Entry) SetInvisibleChar

func (entry *Entry) SetInvisibleChar(ch uint32)

SetInvisibleChar sets the character to use in place of the actual text when gtk_entry_set_visibility() has been called to set text visibility to FALSE. i.e. this is the character used in “password mode” to show the user how many characters have been typed. By default, GTK+ picks the best invisible char available in the current font. If you set the invisible char to 0, then the user will get no feedback at all; there will be no text on the screen as they type.

The function takes the following parameters:

  • ch: unicode character.

func (*Entry) SetMaxLength

func (entry *Entry) SetMaxLength(max int)

SetMaxLength sets the maximum allowed length of the contents of the widget. If the current contents are longer than the given length, then they will be truncated to fit.

This is equivalent to getting entry's EntryBuffer and calling gtk_entry_buffer_set_max_length() on it. ]|.

The function takes the following parameters:

  • max: maximum length of the entry, or 0 for no maximum. (other than the maximum length of entries.) The value passed in will be clamped to the range 0-65536.

func (*Entry) SetMaxWidthChars

func (entry *Entry) SetMaxWidthChars(nChars int)

SetMaxWidthChars sets the desired maximum width in characters of entry.

The function takes the following parameters:

  • nChars: new desired maximum width, in characters.

func (*Entry) SetOverwriteMode

func (entry *Entry) SetOverwriteMode(overwrite bool)

SetOverwriteMode sets whether the text is overwritten when typing in the Entry.

The function takes the following parameters:

  • overwrite: new value.

func (*Entry) SetPlaceholderText

func (entry *Entry) SetPlaceholderText(text string)

SetPlaceholderText sets text to be displayed in entry when it is empty and unfocused. This can be used to give a visual hint of the expected contents of the Entry.

Note that since the placeholder text gets removed when the entry received focus, using this feature is a bit problematic if the entry is given the initial focus in a window. Sometimes this can be worked around by delaying the initial focus setting until the first key event arrives.

The function takes the following parameters:

  • text (optional): string to be displayed when entry is empty and unfocused, or NULL.

func (*Entry) SetProgressFraction

func (entry *Entry) SetProgressFraction(fraction float64)

SetProgressFraction causes the entry’s progress indicator to “fill in” the given fraction of the bar. The fraction should be between 0.0 and 1.0, inclusive.

The function takes the following parameters:

  • fraction of the task that’s been completed.

func (*Entry) SetProgressPulseStep

func (entry *Entry) SetProgressPulseStep(fraction float64)

SetProgressPulseStep sets the fraction of total entry width to move the progress bouncing block for each call to gtk_entry_progress_pulse().

The function takes the following parameters:

  • fraction between 0.0 and 1.0.

func (*Entry) SetTabs

func (entry *Entry) SetTabs(tabs *pango.TabArray)

SetTabs sets a TabArray; the tabstops in the array are applied to the entry text.

The function takes the following parameters:

  • tabs: TabArray.

func (*Entry) SetText

func (entry *Entry) SetText(text string)

SetText sets the text in the widget to the given value, replacing the current contents.

See gtk_entry_buffer_set_text().

The function takes the following parameters:

  • text: new text.

func (*Entry) SetVisibility

func (entry *Entry) SetVisibility(visible bool)

SetVisibility sets whether the contents of the entry are visible or not. When visibility is set to FALSE, characters are displayed as the invisible char, and will also appear that way when the text in the entry widget is copied elsewhere.

By default, GTK+ picks the best invisible character available in the current font, but it can be changed with gtk_entry_set_invisible_char().

Note that you probably want to set Entry:input-purpose to GTK_INPUT_PURPOSE_PASSWORD or GTK_INPUT_PURPOSE_PIN to inform input methods about the purpose of this entry, in addition to setting visibility to FALSE.

The function takes the following parameters:

  • visible: TRUE if the contents of the entry are displayed as plaintext.

func (*Entry) SetWidthChars

func (entry *Entry) SetWidthChars(nChars int)

SetWidthChars changes the size request of the entry to be about the right size for n_chars characters. Note that it changes the size request, the size can still be affected by how you pack the widget into containers. If n_chars is -1, the size reverts to the default entry size.

The function takes the following parameters:

  • nChars: width in chars.

func (*Entry) Tabs

func (entry *Entry) Tabs() *pango.TabArray

Tabs gets the tabstops that were set on the entry using gtk_entry_set_tabs(), if any.

The function returns the following values:

  • tabArray (optional): tabstops, or NULL if none was set.

func (*Entry) Text

func (entry *Entry) Text() string

Text retrieves the contents of the entry widget. See also gtk_editable_get_chars().

This is equivalent to getting entry's EntryBuffer and calling gtk_entry_buffer_get_text() on it.

The function returns the following values:

  • utf8: pointer to the contents of the widget as a string. This string points to internally allocated storage in the widget and must not be freed, modified or stored.

func (*Entry) TextArea

func (entry *Entry) TextArea() *gdk.Rectangle

TextArea gets the area where the entry’s text is drawn. This function is useful when drawing something to the entry in a draw callback.

If the entry is not realized, text_area is filled with zeros.

See also gtk_entry_get_icon_area().

The function returns the following values:

  • textArea: return location for the text area.

func (*Entry) TextIndexToLayoutIndex

func (entry *Entry) TextIndexToLayoutIndex(textIndex int) int

TextIndexToLayoutIndex converts from a position in the entry contents (returned by gtk_entry_get_text()) to a position in the entry’s Layout (returned by gtk_entry_get_layout(), with text retrieved via pango_layout_get_text()).

The function takes the following parameters:

  • textIndex: byte index into the entry contents.

The function returns the following values:

  • gint: byte index into the entry layout text.

func (*Entry) TextLength

func (entry *Entry) TextLength() uint16

TextLength retrieves the current length of the text in entry.

This is equivalent to getting entry's EntryBuffer and calling gtk_entry_buffer_get_length() on it.

The function returns the following values:

  • guint16: current number of characters in Entry, or 0 if there are none.

func (*Entry) UnsetInvisibleChar

func (entry *Entry) UnsetInvisibleChar()

UnsetInvisibleChar unsets the invisible char previously set with gtk_entry_set_invisible_char(). So that the default invisible char is used again.

func (*Entry) Visibility

func (entry *Entry) Visibility() bool

Visibility retrieves whether the text in entry is visible. See gtk_entry_set_visibility().

The function returns the following values:

  • ok: TRUE if the text is currently visible.

func (*Entry) WidthChars

func (entry *Entry) WidthChars() int

WidthChars gets the value set by gtk_entry_set_width_chars().

The function returns the following values:

  • gint: number of chars to request space for, or negative if unset.

type EntryAccessible

type EntryAccessible struct {
	WidgetAccessible

	*coreglib.Object
	atk.Action
	atk.EditableText
	atk.Text
	// contains filtered or unexported fields
}

type EntryAccessibleClass added in v0.0.5

type EntryAccessibleClass struct {
	// contains filtered or unexported fields
}

EntryAccessibleClass: instance of this type is always passed by reference.

func (*EntryAccessibleClass) ParentClass added in v0.0.5

func (e *EntryAccessibleClass) ParentClass() *WidgetAccessibleClass

type EntryAccessibleOverrides added in v0.0.5

type EntryAccessibleOverrides struct {
}

EntryAccessibleOverrides contains methods that are overridable.

type EntryBuffer

type EntryBuffer struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

EntryBuffer class contains the actual text displayed in a Entry widget.

A single EntryBuffer object can be shared by multiple Entry widgets which will then share the same text content, but not the cursor position, visibility attributes, icon etc.

EntryBuffer may be derived from. Such a derived class might allow text to be stored in an alternate location, such as non-pageable memory, useful in the case of important passwords. Or a derived class could integrate with an application’s concept of undo/redo.

func NewEntryBuffer

func NewEntryBuffer(initialChars string, nInitialChars int) *EntryBuffer

NewEntryBuffer: create a new GtkEntryBuffer object.

Optionally, specify initial text to set in the buffer.

The function takes the following parameters:

  • initialChars (optional): initial buffer text, or NULL.
  • nInitialChars: number of characters in initial_chars, or -1.

The function returns the following values:

  • entryBuffer: new GtkEntryBuffer object.

func (*EntryBuffer) Bytes

func (buffer *EntryBuffer) Bytes() uint

Bytes retrieves the length in bytes of the buffer. See gtk_entry_buffer_get_length().

The function returns the following values:

  • gsize: byte length of the buffer.

func (*EntryBuffer) ConnectDeletedText

func (buffer *EntryBuffer) ConnectDeletedText(f func(position, nChars uint)) coreglib.SignalHandle

ConnectDeletedText: this signal is emitted after text is deleted from the buffer.

func (*EntryBuffer) ConnectInsertedText

func (buffer *EntryBuffer) ConnectInsertedText(f func(position uint, chars string, nChars uint)) coreglib.SignalHandle

ConnectInsertedText: this signal is emitted after text is inserted into the buffer.

func (*EntryBuffer) DeleteText

func (buffer *EntryBuffer) DeleteText(position uint, nChars int) uint

DeleteText deletes a sequence of characters from the buffer. n_chars characters are deleted starting at position. If n_chars is negative, then all characters until the end of the text are deleted.

If position or n_chars are out of bounds, then they are coerced to sane values.

Note that the positions are specified in characters, not bytes.

The function takes the following parameters:

  • position at which to delete text.
  • nChars: number of characters to delete.

The function returns the following values:

  • guint: number of characters deleted.

func (*EntryBuffer) EmitDeletedText

func (buffer *EntryBuffer) EmitDeletedText(position, nChars uint)

EmitDeletedText: used when subclassing EntryBuffer.

The function takes the following parameters:

  • position at which text was deleted.
  • nChars: number of characters deleted.

func (*EntryBuffer) EmitInsertedText

func (buffer *EntryBuffer) EmitInsertedText(position uint, chars string, nChars uint)

EmitInsertedText: used when subclassing EntryBuffer.

The function takes the following parameters:

  • position at which text was inserted.
  • chars: text that was inserted.
  • nChars: number of characters inserted.

func (*EntryBuffer) InsertText

func (buffer *EntryBuffer) InsertText(position uint, chars string, nChars int) uint

InsertText inserts n_chars characters of chars into the contents of the buffer, at position position.

If n_chars is negative, then characters from chars will be inserted until a null-terminator is found. If position or n_chars are out of bounds, or the maximum buffer text length is exceeded, then they are coerced to sane values.

Note that the position and length are in characters, not in bytes.

The function takes the following parameters:

  • position at which to insert text.
  • chars: text to insert into the buffer.
  • nChars: length of the text in characters, or -1.

The function returns the following values:

  • guint: number of characters actually inserted.

func (*EntryBuffer) Length

func (buffer *EntryBuffer) Length() uint

Length retrieves the length in characters of the buffer.

The function returns the following values:

  • guint: number of characters in the buffer.

func (*EntryBuffer) MaxLength

func (buffer *EntryBuffer) MaxLength() int

MaxLength retrieves the maximum allowed length of the text in buffer. See gtk_entry_buffer_set_max_length().

The function returns the following values:

  • gint: maximum allowed number of characters in EntryBuffer, or 0 if there is no maximum.

func (*EntryBuffer) SetMaxLength

func (buffer *EntryBuffer) SetMaxLength(maxLength int)

SetMaxLength sets the maximum allowed length of the contents of the buffer. If the current contents are longer than the given length, then they will be truncated to fit.

The function takes the following parameters:

  • maxLength: maximum length of the entry buffer, or 0 for no maximum. (other than the maximum length of entries.) The value passed in will be clamped to the range 0-65536.

func (*EntryBuffer) SetText

func (buffer *EntryBuffer) SetText(chars string, nChars int)

SetText sets the text in the buffer.

This is roughly equivalent to calling gtk_entry_buffer_delete_text() and gtk_entry_buffer_insert_text().

Note that n_chars is in characters, not in bytes.

The function takes the following parameters:

  • chars: new text.
  • nChars: number of characters in text, or -1.

func (*EntryBuffer) Text

func (buffer *EntryBuffer) Text() string

Text retrieves the contents of the buffer.

The memory pointer returned by this call will not change unless this object emits a signal, or is finalized.

The function returns the following values:

  • utf8: pointer to the contents of the widget as a string. This string points to internally allocated storage in the buffer and must not be freed, modified or stored.

type EntryBufferClass added in v0.0.5

type EntryBufferClass struct {
	// contains filtered or unexported fields
}

EntryBufferClass: instance of this type is always passed by reference.

type EntryBufferOverrides added in v0.0.5

type EntryBufferOverrides struct {
	// DeleteText deletes a sequence of characters from the buffer. n_chars
	// characters are deleted starting at position. If n_chars is negative,
	// then all characters until the end of the text are deleted.
	//
	// If position or n_chars are out of bounds, then they are coerced to sane
	// values.
	//
	// Note that the positions are specified in characters, not bytes.
	//
	// The function takes the following parameters:
	//
	//   - position at which to delete text.
	//   - nChars: number of characters to delete.
	//
	// The function returns the following values:
	//
	//   - guint: number of characters deleted.
	//
	DeleteText func(position, nChars uint) uint
	// The function takes the following parameters:
	//
	//   - position
	//   - nChars
	//
	DeletedText func(position, nChars uint)
	// Length retrieves the length in characters of the buffer.
	//
	// The function returns the following values:
	//
	//   - guint: number of characters in the buffer.
	//
	Length func() uint
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	Text func(nBytes *uint) string
	// InsertText inserts n_chars characters of chars into the contents of the
	// buffer, at position position.
	//
	// If n_chars is negative, then characters from chars will be inserted until
	// a null-terminator is found. If position or n_chars are out of bounds,
	// or the maximum buffer text length is exceeded, then they are coerced to
	// sane values.
	//
	// Note that the position and length are in characters, not in bytes.
	//
	// The function takes the following parameters:
	//
	//   - position at which to insert text.
	//   - chars: text to insert into the buffer.
	//   - nChars: length of the text in characters, or -1.
	//
	// The function returns the following values:
	//
	//   - guint: number of characters actually inserted.
	//
	InsertText func(position uint, chars string, nChars uint) uint
	// The function takes the following parameters:
	//
	//   - position
	//   - chars
	//   - nChars
	//
	InsertedText func(position uint, chars string, nChars uint)
}

EntryBufferOverrides contains methods that are overridable.

type EntryClass added in v0.0.5

type EntryClass struct {
	// contains filtered or unexported fields
}

EntryClass class structure for Entry. All virtual functions have a default implementation. Derived classes may set the virtual function pointers for the signal handlers to NULL, but must keep get_text_area_size and get_frame_size non-NULL; either use the default implementation, or provide a custom one.

An instance of this type is always passed by reference.

func (*EntryClass) ParentClass added in v0.0.5

func (e *EntryClass) ParentClass() *WidgetClass

ParentClass: parent class.

type EntryCompletion

type EntryCompletion struct {
	*coreglib.Object

	Buildable
	CellLayout
	// contains filtered or unexported fields
}

EntryCompletion is an auxiliary object to be used in conjunction with Entry to provide the completion functionality. It implements the CellLayout interface, to allow the user to add extra cells to the TreeView with completion matches.

“Completion functionality” means that when the user modifies the text in the entry, EntryCompletion checks which rows in the model match the current content of the entry, and displays a list of matches. By default, the matching is done by comparing the entry text case-insensitively against the text column of the model (see gtk_entry_completion_set_text_column()), but this can be overridden with a custom match function (see gtk_entry_completion_set_match_func()).

When the user selects a completion, the content of the entry is updated. By default, the content of the entry is replaced by the text column of the model, but this can be overridden by connecting to the EntryCompletion::match-selected signal and updating the entry in the signal handler. Note that you should return TRUE from the signal handler to suppress the default behaviour.

To add completion functionality to an entry, use gtk_entry_set_completion().

In addition to regular completion matches, which will be inserted into the entry when they are selected, EntryCompletion also allows to display “actions” in the popup window. Their appearance is similar to menuitems, to differentiate them clearly from completion strings. When an action is selected, the EntryCompletion::action-activated signal is emitted.

GtkEntryCompletion uses a TreeModelFilter model to represent the subset of the entire model that is currently matching. While the GtkEntryCompletion signals EntryCompletion::match-selected and EntryCompletion::cursor-on-match take the original model and an iter pointing to that model as arguments, other callbacks and signals (such as CellLayoutDataFuncs or CellArea::apply-attributes) will generally take the filter model as argument. As long as you are only calling gtk_tree_model_get(), this will make no difference to you. If for some reason, you need the original model, use gtk_tree_model_filter_get_model(). Don’t forget to use gtk_tree_model_filter_convert_iter_to_child_iter() to obtain a matching iter.

func NewEntryCompletion

func NewEntryCompletion() *EntryCompletion

NewEntryCompletion creates a new EntryCompletion object.

The function returns the following values:

  • entryCompletion: newly created EntryCompletion object.

func NewEntryCompletionWithArea

func NewEntryCompletionWithArea(area CellAreaer) *EntryCompletion

NewEntryCompletionWithArea creates a new EntryCompletion object using the specified area to layout cells in the underlying TreeViewColumn for the drop-down menu.

The function takes the following parameters:

  • area used to layout cells.

The function returns the following values:

  • entryCompletion: newly created EntryCompletion object.

func (*EntryCompletion) Complete

func (completion *EntryCompletion) Complete()

Complete requests a completion operation, or in other words a refiltering of the current list with completions, using the current key. The completion list view will be updated accordingly.

func (*EntryCompletion) CompletionPrefix

func (completion *EntryCompletion) CompletionPrefix() string

CompletionPrefix: get the original text entered by the user that triggered the completion or NULL if there’s no completion ongoing.

The function returns the following values:

  • utf8: prefix for the current completion.

func (*EntryCompletion) ComputePrefix

func (completion *EntryCompletion) ComputePrefix(key string) string

ComputePrefix computes the common prefix that is shared by all rows in completion that start with key. If no row matches key, NULL will be returned. Note that a text column must have been set for this function to work, see gtk_entry_completion_set_text_column() for details.

The function takes the following parameters:

  • key: text to complete for.

The function returns the following values:

  • utf8 (optional): common prefix all rows starting with key or NULL if no row matches key.

func (*EntryCompletion) ConnectActionActivated

func (completion *EntryCompletion) ConnectActionActivated(f func(index int)) coreglib.SignalHandle

ConnectActionActivated gets emitted when an action is activated.

func (*EntryCompletion) ConnectCursorOnMatch

func (completion *EntryCompletion) ConnectCursorOnMatch(f func(model TreeModeller, iter *TreeIter) (ok bool)) coreglib.SignalHandle

ConnectCursorOnMatch gets emitted when a match from the cursor is on a match of the list. The default behaviour is to replace the contents of the entry with the contents of the text column in the row pointed to by iter.

Note that model is the model that was passed to gtk_entry_completion_set_model().

func (*EntryCompletion) ConnectInsertPrefix

func (completion *EntryCompletion) ConnectInsertPrefix(f func(prefix string) (ok bool)) coreglib.SignalHandle

ConnectInsertPrefix gets emitted when the inline autocompletion is triggered. The default behaviour is to make the entry display the whole prefix and select the newly inserted part.

Applications may connect to this signal in order to insert only a smaller part of the prefix into the entry - e.g. the entry used in the FileChooser inserts only the part of the prefix up to the next '/'.

func (*EntryCompletion) ConnectMatchSelected

func (completion *EntryCompletion) ConnectMatchSelected(f func(model TreeModeller, iter *TreeIter) (ok bool)) coreglib.SignalHandle

ConnectMatchSelected gets emitted when a match from the list is selected. The default behaviour is to replace the contents of the entry with the contents of the text column in the row pointed to by iter.

Note that model is the model that was passed to gtk_entry_completion_set_model().

func (*EntryCompletion) ConnectNoMatches

func (completion *EntryCompletion) ConnectNoMatches(f func()) coreglib.SignalHandle

ConnectNoMatches gets emitted when the filter model has zero number of rows in completion_complete method. (In other words when GtkEntryCompletion is out of suggestions).

func (*EntryCompletion) DeleteAction

func (completion *EntryCompletion) DeleteAction(index_ int)

DeleteAction deletes the action at index_ from completion’s action list.

Note that index_ is a relative position and the position of an action may have changed since it was inserted.

The function takes the following parameters:

  • index_: index of the item to delete.

func (*EntryCompletion) Entry

func (completion *EntryCompletion) Entry() Widgetter

Entry gets the entry completion has been attached to.

The function returns the following values:

  • widget: entry completion has been attached to.

func (*EntryCompletion) InlineCompletion

func (completion *EntryCompletion) InlineCompletion() bool

InlineCompletion returns whether the common prefix of the possible completions should be automatically inserted in the entry.

The function returns the following values:

  • ok: TRUE if inline completion is turned on.

func (*EntryCompletion) InlineSelection

func (completion *EntryCompletion) InlineSelection() bool

InlineSelection returns TRUE if inline-selection mode is turned on.

The function returns the following values:

  • ok: TRUE if inline-selection mode is on.

func (*EntryCompletion) InsertActionMarkup

func (completion *EntryCompletion) InsertActionMarkup(index_ int, markup string)

InsertActionMarkup inserts an action in completion’s action item list at position index_ with markup markup.

The function takes the following parameters:

  • index_: index of the item to insert.
  • markup of the item to insert.

func (*EntryCompletion) InsertActionText

func (completion *EntryCompletion) InsertActionText(index_ int, text string)

InsertActionText inserts an action in completion’s action item list at position index_ with text text. If you want the action item to have markup, use gtk_entry_completion_insert_action_markup().

Note that index_ is a relative position in the list of actions and the position of an action can change when deleting a different action.

The function takes the following parameters:

  • index_: index of the item to insert.
  • text of the item to insert.

func (*EntryCompletion) InsertPrefix

func (completion *EntryCompletion) InsertPrefix()

InsertPrefix requests a prefix insertion.

func (*EntryCompletion) MinimumKeyLength

func (completion *EntryCompletion) MinimumKeyLength() int

MinimumKeyLength returns the minimum key length as set for completion.

The function returns the following values:

  • gint: currently used minimum key length.

func (*EntryCompletion) Model

func (completion *EntryCompletion) Model() *TreeModel

Model returns the model the EntryCompletion is using as data source. Returns NULL if the model is unset.

The function returns the following values:

  • treeModel (optional) or NULL if none is currently being used.

func (*EntryCompletion) PopupCompletion

func (completion *EntryCompletion) PopupCompletion() bool

PopupCompletion returns whether the completions should be presented in a popup window.

The function returns the following values:

  • ok: TRUE if popup completion is turned on.

func (*EntryCompletion) PopupSetWidth

func (completion *EntryCompletion) PopupSetWidth() bool

PopupSetWidth returns whether the completion popup window will be resized to the width of the entry.

The function returns the following values:

  • ok: TRUE if the popup window will be resized to the width of the entry.

func (*EntryCompletion) PopupSingleMatch

func (completion *EntryCompletion) PopupSingleMatch() bool

PopupSingleMatch returns whether the completion popup window will appear even if there is only a single match.

The function returns the following values:

  • ok: TRUE if the popup window will appear regardless of the number of matches.

func (*EntryCompletion) SetInlineCompletion

func (completion *EntryCompletion) SetInlineCompletion(inlineCompletion bool)

SetInlineCompletion sets whether the common prefix of the possible completions should be automatically inserted in the entry.

The function takes the following parameters:

  • inlineCompletion: TRUE to do inline completion.

func (*EntryCompletion) SetInlineSelection

func (completion *EntryCompletion) SetInlineSelection(inlineSelection bool)

SetInlineSelection sets whether it is possible to cycle through the possible completions inside the entry.

The function takes the following parameters:

  • inlineSelection: TRUE to do inline selection.

func (*EntryCompletion) SetMatchFunc

func (completion *EntryCompletion) SetMatchFunc(fn EntryCompletionMatchFunc)

SetMatchFunc sets the match function for completion to be func. The match function is used to determine if a row should or should not be in the completion list.

The function takes the following parameters:

  • fn to use.

func (*EntryCompletion) SetMinimumKeyLength

func (completion *EntryCompletion) SetMinimumKeyLength(length int)

SetMinimumKeyLength requires the length of the search key for completion to be at least length. This is useful for long lists, where completing using a small key takes a lot of time and will come up with meaningless results anyway (ie, a too large dataset).

The function takes the following parameters:

  • length: minimum length of the key in order to start completing.

func (*EntryCompletion) SetModel

func (completion *EntryCompletion) SetModel(model TreeModeller)

SetModel sets the model for a EntryCompletion. If completion already has a model set, it will remove it before setting the new model. If model is NULL, then it will unset the model.

The function takes the following parameters:

  • model (optional): TreeModel.

func (*EntryCompletion) SetPopupCompletion

func (completion *EntryCompletion) SetPopupCompletion(popupCompletion bool)

SetPopupCompletion sets whether the completions should be presented in a popup window.

The function takes the following parameters:

  • popupCompletion: TRUE to do popup completion.

func (*EntryCompletion) SetPopupSetWidth

func (completion *EntryCompletion) SetPopupSetWidth(popupSetWidth bool)

SetPopupSetWidth sets whether the completion popup window will be resized to be the same width as the entry.

The function takes the following parameters:

  • popupSetWidth: TRUE to make the width of the popup the same as the entry.

func (*EntryCompletion) SetPopupSingleMatch

func (completion *EntryCompletion) SetPopupSingleMatch(popupSingleMatch bool)

SetPopupSingleMatch sets whether the completion popup window will appear even if there is only a single match. You may want to set this to FALSE if you are using [inline completion][GtkEntryCompletion--inline-completion].

The function takes the following parameters:

  • popupSingleMatch: TRUE if the popup should appear even for a single match.

func (*EntryCompletion) SetTextColumn

func (completion *EntryCompletion) SetTextColumn(column int)

SetTextColumn: convenience function for setting up the most used case of this code: a completion list with just strings. This function will set up completion to have a list displaying all (and just) strings in the completion list, and to get those strings from column in the model of completion.

This functions creates and adds a CellRendererText for the selected column. If you need to set the text column, but don't want the cell renderer, use g_object_set() to set the EntryCompletion:text-column property directly.

The function takes the following parameters:

  • column in the model of completion to get strings from.

func (*EntryCompletion) TextColumn

func (completion *EntryCompletion) TextColumn() int

TextColumn returns the column in the model of completion to get strings from.

The function returns the following values:

  • gint: column containing the strings.

type EntryCompletionClass added in v0.0.5

type EntryCompletionClass struct {
	// contains filtered or unexported fields
}

EntryCompletionClass: instance of this type is always passed by reference.

type EntryCompletionMatchFunc

type EntryCompletionMatchFunc func(completion *EntryCompletion, key string, iter *TreeIter) (ok bool)

EntryCompletionMatchFunc: function which decides whether the row indicated by iter matches a given key, and should be displayed as a possible completion for key. Note that key is normalized and case-folded (see g_utf8_normalize() and g_utf8_casefold()). If this is not appropriate, match functions have access to the unmodified key via gtk_entry_get_text (GTK_ENTRY (gtk_entry_completion_get_entry ())).

type EntryCompletionOverrides added in v0.0.5

type EntryCompletionOverrides struct {
	// The function takes the following parameters:
	//
	ActionActivated func(index_ int)
	// The function takes the following parameters:
	//
	//   - model
	//   - iter
	//
	// The function returns the following values:
	//
	CursorOnMatch func(model TreeModeller, iter *TreeIter) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	InsertPrefix func(prefix string) bool
	// The function takes the following parameters:
	//
	//   - model
	//   - iter
	//
	// The function returns the following values:
	//
	MatchSelected func(model TreeModeller, iter *TreeIter) bool
	NoMatches     func()
}

EntryCompletionOverrides contains methods that are overridable.

type EntryIconAccessible

type EntryIconAccessible struct {
	atk.AtkObject

	*coreglib.Object
	atk.Action
	atk.Component
	// contains filtered or unexported fields
}

type EntryIconPosition

type EntryIconPosition C.gint

EntryIconPosition specifies the side of the entry at which an icon is placed.

const (
	// EntryIconPrimary: at the beginning of the entry (depending on the text
	// direction).
	EntryIconPrimary EntryIconPosition = iota
	// EntryIconSecondary: at the end of the entry (depending on the text
	// direction).
	EntryIconSecondary
)

func (EntryIconPosition) String

func (e EntryIconPosition) String() string

String returns the name in string for EntryIconPosition.

type EntryOverrides added in v0.0.5

type EntryOverrides struct {
	Activate      func()
	Backspace     func()
	CopyClipboard func()
	CutClipboard  func()
	// The function takes the following parameters:
	//
	//   - typ
	//   - count
	//
	DeleteFromCursor func(typ DeleteType, count int)
	// The function takes the following parameters:
	//
	//   - x
	//   - y
	//   - width
	//   - height
	//
	FrameSize func(x, y, width, height *int)
	// The function takes the following parameters:
	//
	//   - x
	//   - y
	//   - width
	//   - height
	//
	TextAreaSize func(x, y, width, height *int)
	// The function takes the following parameters:
	//
	InsertAtCursor func(str string)
	InsertEmoji    func()
	// The function takes the following parameters:
	//
	//   - step
	//   - count
	//   - extendSelection
	//
	MoveCursor     func(step MovementStep, count int, extendSelection bool)
	PasteClipboard func()
	// The function takes the following parameters:
	//
	PopulatePopup   func(popup Widgetter)
	ToggleOverwrite func()
}

EntryOverrides contains methods that are overridable.

type EventBox

type EventBox struct {
	Bin
	// contains filtered or unexported fields
}

EventBox widget is a subclass of Bin which also has its own window. It is useful since it allows you to catch events for widgets which do not have their own window.

func NewEventBox

func NewEventBox() *EventBox

NewEventBox creates a new EventBox.

The function returns the following values:

  • eventBox: new EventBox.

func (*EventBox) AboveChild

func (eventBox *EventBox) AboveChild() bool

AboveChild returns whether the event box window is above or below the windows of its child. See gtk_event_box_set_above_child() for details.

The function returns the following values:

  • ok: TRUE if the event box window is above the window of its child.

func (*EventBox) SetAboveChild

func (eventBox *EventBox) SetAboveChild(aboveChild bool)

SetAboveChild: set whether the event box window is positioned above the windows of its child, as opposed to below it. If the window is above, all events inside the event box will go to the event box. If the window is below, events in windows of child widgets will first got to that widget, and then to its parents.

The default is to keep the window below the child.

The function takes the following parameters:

  • aboveChild: TRUE if the event box window is above its child.

func (*EventBox) SetVisibleWindow

func (eventBox *EventBox) SetVisibleWindow(visibleWindow bool)

SetVisibleWindow: set whether the event box uses a visible or invisible child window. The default is to use visible windows.

In an invisible window event box, the window that the event box creates is a GDK_INPUT_ONLY window, which means that it is invisible and only serves to receive events.

A visible window event box creates a visible (GDK_INPUT_OUTPUT) window that acts as the parent window for all the widgets contained in the event box.

You should generally make your event box invisible if you just want to trap events. Creating a visible window may cause artifacts that are visible to the user, especially if the user is using a theme with gradients or pixmaps.

The main reason to create a non input-only event box is if you want to set the background to a different color or draw on it.

There is one unexpected issue for an invisible event box that has its window below the child. (See gtk_event_box_set_above_child().) Since the input-only window is not an ancestor window of any windows that descendent widgets of the event box create, events on these windows aren’t propagated up by the windowing system, but only by GTK+. The practical effect of this is if an event isn’t in the event mask for the descendant window (see gtk_widget_add_events()), it won’t be received by the event box.

This problem doesn’t occur for visible event boxes, because in that case, the event box window is actually the ancestor of the descendant windows, not just at the same place on the screen.

The function takes the following parameters:

  • visibleWindow: TRUE to make the event box have a visible window.

func (*EventBox) VisibleWindow

func (eventBox *EventBox) VisibleWindow() bool

VisibleWindow returns whether the event box has a visible window. See gtk_event_box_set_visible_window() for details.

The function returns the following values:

  • ok: TRUE if the event box window is visible.

type EventBoxClass added in v0.0.5

type EventBoxClass struct {
	// contains filtered or unexported fields
}

EventBoxClass: instance of this type is always passed by reference.

func (*EventBoxClass) ParentClass added in v0.0.5

func (e *EventBoxClass) ParentClass() *BinClass

ParentClass: parent class.

type EventBoxOverrides added in v0.0.5

type EventBoxOverrides struct {
}

EventBoxOverrides contains methods that are overridable.

type EventController

type EventController struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

EventController is a base, low-level implementation for event controllers. Those react to a series of Events, and possibly trigger actions as a consequence of those.

func BaseEventController

func BaseEventController(obj EventControllerer) *EventController

BaseEventController returns the underlying base object.

func (*EventController) HandleEvent

func (controller *EventController) HandleEvent(event *gdk.Event) bool

HandleEvent feeds an events into controller, so it can be interpreted and the controller actions triggered.

The function takes the following parameters:

  • event: Event.

The function returns the following values:

  • ok: TRUE if the event was potentially useful to trigger the controller action.

func (*EventController) PropagationPhase

func (controller *EventController) PropagationPhase() PropagationPhase

PropagationPhase gets the propagation phase at which controller handles events.

The function returns the following values:

  • propagationPhase: propagation phase.

func (*EventController) Reset

func (controller *EventController) Reset()

Reset resets the controller to a clean state. Every interaction the controller did through EventController::handle-event will be dropped at this point.

func (*EventController) SetPropagationPhase

func (controller *EventController) SetPropagationPhase(phase PropagationPhase)

SetPropagationPhase sets the propagation phase at which a controller handles events.

If phase is GTK_PHASE_NONE, no automatic event handling will be performed, but other additional gesture maintenance will. In that phase, the events can be managed by calling gtk_event_controller_handle_event().

The function takes the following parameters:

  • phase: propagation phase.

func (*EventController) Widget

func (controller *EventController) Widget() Widgetter

Widget returns the Widget this controller relates to.

The function returns the following values:

  • widget: Widget.

type EventControllerKey

type EventControllerKey struct {
	EventController
	// contains filtered or unexported fields
}

EventControllerKey is an event controller meant for situations where you need access to key events.

This object was added in 3.24.

func NewEventControllerKey

func NewEventControllerKey(widget Widgetter) *EventControllerKey

The function takes the following parameters:

The function returns the following values:

func (*EventControllerKey) ConnectFocusIn

func (controller *EventControllerKey) ConnectFocusIn(f func()) coreglib.SignalHandle

func (*EventControllerKey) ConnectFocusOut

func (controller *EventControllerKey) ConnectFocusOut(f func()) coreglib.SignalHandle

func (*EventControllerKey) ConnectIMUpdate

func (controller *EventControllerKey) ConnectIMUpdate(f func()) coreglib.SignalHandle

func (*EventControllerKey) ConnectKeyPressed

func (controller *EventControllerKey) ConnectKeyPressed(f func(keyval, keycode uint, state gdk.ModifierType) (ok bool)) coreglib.SignalHandle

ConnectKeyPressed: this signal is emitted whenever a key is pressed.

func (*EventControllerKey) ConnectKeyReleased

func (controller *EventControllerKey) ConnectKeyReleased(f func(keyval, keycode uint, state gdk.ModifierType)) coreglib.SignalHandle

ConnectKeyReleased: this signal is emitted whenever a key is released.

func (*EventControllerKey) ConnectModifiers

func (controller *EventControllerKey) ConnectModifiers(f func(object gdk.ModifierType) (ok bool)) coreglib.SignalHandle

func (*EventControllerKey) Forward

func (controller *EventControllerKey) Forward(widget Widgetter) bool

The function takes the following parameters:

The function returns the following values:

func (*EventControllerKey) Group

func (controller *EventControllerKey) Group() uint

The function returns the following values:

func (*EventControllerKey) IMContext

func (controller *EventControllerKey) IMContext() IMContexter

IMContext gets the IM context of a key controller.

The function returns the following values:

  • imContext: IM context.

func (*EventControllerKey) SetIMContext

func (controller *EventControllerKey) SetIMContext(imContext IMContexter)

The function takes the following parameters:

type EventControllerMotion

type EventControllerMotion struct {
	EventController
	// contains filtered or unexported fields
}

EventControllerMotion is an event controller meant for situations where you need to track the position of the pointer.

This object was added in 3.24.

func NewEventControllerMotion

func NewEventControllerMotion(widget Widgetter) *EventControllerMotion

NewEventControllerMotion creates a new event controller that will handle motion events for the given widget.

The function takes the following parameters:

  • widget: Widget.

The function returns the following values:

  • eventControllerMotion: new EventControllerMotion.

func (*EventControllerMotion) ConnectEnter

func (v *EventControllerMotion) ConnectEnter(f func(x, y float64)) coreglib.SignalHandle

ConnectEnter signals that the pointer has entered the widget.

func (*EventControllerMotion) ConnectLeave

func (v *EventControllerMotion) ConnectLeave(f func()) coreglib.SignalHandle

ConnectLeave signals that pointer has left the widget.

func (*EventControllerMotion) ConnectMotion

func (v *EventControllerMotion) ConnectMotion(f func(x, y float64)) coreglib.SignalHandle

ConnectMotion is emitted when the pointer moves inside the widget.

type EventControllerScroll

type EventControllerScroll struct {
	EventController
	// contains filtered or unexported fields
}

EventControllerScroll is an event controller meant to handle scroll events from mice and touchpads. It is capable of handling both discrete and continuous scroll events, abstracting them both on the EventControllerScroll::scroll signal (deltas in the discrete case are multiples of 1).

In the case of continuous scroll events, EventControllerScroll encloses all EventControllerScroll::scroll events between two EventControllerScroll::scroll-begin and EventControllerScroll::scroll-end signals.

The behavior of the event controller can be modified by the flags given at creation time, or modified at a later point through gtk_event_controller_scroll_set_flags() (e.g. because the scrolling conditions of the widget changed).

The controller can be set up to emit motion for either/both vertical and horizontal scroll events through K_EVENT_CONTROLLER_SCROLL_VERTICAL, K_EVENT_CONTROLLER_SCROLL_HORIZONTAL and K_EVENT_CONTROLLER_SCROLL_BOTH. If any axis is disabled, the respective EventControllerScroll::scroll delta will be 0. Vertical scroll events will be translated to horizontal motion for the devices incapable of horizontal scrolling.

The event controller can also be forced to emit discrete events on all devices through K_EVENT_CONTROLLER_SCROLL_DISCRETE. This can be used to implement discrete actions triggered through scroll events (e.g. switching across combobox options).

The K_EVENT_CONTROLLER_SCROLL_KINETIC flag toggles the emission of the EventControllerScroll::decelerate signal, emitted at the end of scrolling with two X/Y velocity arguments that are consistent with the motion that was received.

This object was added in 3.24.

func NewEventControllerScroll

func NewEventControllerScroll(widget Widgetter, flags EventControllerScrollFlags) *EventControllerScroll

NewEventControllerScroll creates a new event controller that will handle scroll events for the given widget.

The function takes the following parameters:

  • widget: Widget.
  • flags: behavior flags.

The function returns the following values:

  • eventControllerScroll: new EventControllerScroll.

func (*EventControllerScroll) ConnectDecelerate

func (controller *EventControllerScroll) ConnectDecelerate(f func(velX, velY float64)) coreglib.SignalHandle

ConnectDecelerate is emitted after scroll is finished if the K_EVENT_CONTROLLER_SCROLL_KINETIC flag is set. vel_x and vel_y express the initial velocity that was imprinted by the scroll events. vel_x and vel_y are expressed in pixels/ms.

func (*EventControllerScroll) ConnectScroll

func (controller *EventControllerScroll) ConnectScroll(f func(dx, dy float64)) coreglib.SignalHandle

ConnectScroll signals that the widget should scroll by the amount specified by dx and dy.

func (*EventControllerScroll) ConnectScrollBegin

func (controller *EventControllerScroll) ConnectScrollBegin(f func()) coreglib.SignalHandle

ConnectScrollBegin signals that a new scrolling operation has begun. It will only be emitted on devices capable of it.

func (*EventControllerScroll) ConnectScrollEnd

func (controller *EventControllerScroll) ConnectScrollEnd(f func()) coreglib.SignalHandle

ConnectScrollEnd signals that a new scrolling operation has finished. It will only be emitted on devices capable of it.

func (*EventControllerScroll) Flags

Flags gets the flags conditioning the scroll controller behavior.

The function returns the following values:

  • eventControllerScrollFlags: controller flags.

func (*EventControllerScroll) SetFlags

func (controller *EventControllerScroll) SetFlags(flags EventControllerScrollFlags)

SetFlags sets the flags conditioning scroll controller behavior.

The function takes the following parameters:

  • flags: behavior flags.

type EventControllerScrollFlags

type EventControllerScrollFlags C.guint

EventControllerScrollFlags describes the behavior of a EventControllerScroll.

const (
	// EventControllerScrollNone: don't emit scroll.
	EventControllerScrollNone EventControllerScrollFlags = 0b0
	// EventControllerScrollVertical: emit scroll with vertical deltas.
	EventControllerScrollVertical EventControllerScrollFlags = 0b1
	// EventControllerScrollHorizontal: emit scroll with horizontal deltas.
	EventControllerScrollHorizontal EventControllerScrollFlags = 0b10
	// EventControllerScrollDiscrete: only emit deltas that are multiples of 1.
	EventControllerScrollDiscrete EventControllerScrollFlags = 0b100
	// EventControllerScrollKinetic: emit EventControllerScroll::decelerate
	// after continuous scroll finishes.
	EventControllerScrollKinetic EventControllerScrollFlags = 0b1000
	// EventControllerScrollBothAxes: emit scroll on both axes.
	EventControllerScrollBothAxes EventControllerScrollFlags = 0b11
)

func (EventControllerScrollFlags) Has

Has returns true if e contains other.

func (EventControllerScrollFlags) String

String returns the names in string for EventControllerScrollFlags.

type EventControllerer

type EventControllerer interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

EventControllerer describes types inherited from class EventController.

To get the original type, the caller must assert this to an interface or another type.

type EventSequenceState

type EventSequenceState C.gint

EventSequenceState describes the state of a EventSequence in a Gesture.

const (
	// EventSequenceNone: sequence is handled, but not grabbed.
	EventSequenceNone EventSequenceState = iota
	// EventSequenceClaimed: sequence is handled and grabbed.
	EventSequenceClaimed
	// EventSequenceDenied: sequence is denied.
	EventSequenceDenied
)

func (EventSequenceState) String

func (e EventSequenceState) String() string

String returns the name in string for EventSequenceState.

type Expander

type Expander struct {
	Bin
	// contains filtered or unexported fields
}

Expander allows the user to hide or show its child by clicking on an expander triangle similar to the triangles used in a TreeView.

Normally you use an expander as you would use any other descendant of Bin; you create the child widget and use gtk_container_add() to add it to the expander. When the expander is toggled, it will take care of showing and hiding the child automatically.

Special Usage

There are situations in which you may prefer to show and hide the expanded widget yourself, such as when you want to actually create the widget at expansion time. In this case, create a Expander but do not add a child to it. The expander widget has an Expander:expanded property which can be used to monitor its expansion state. You should watch this property with a signal connection as follows:

expander
├── title
│   ├── arrow
│   ╰── <label widget>
╰── <child>

GtkExpander has three CSS nodes, the main node with the name expander, a subnode with name title and node below it with name arrow. The arrow of an expander that is showing its child gets the :checked pseudoclass added to it.

func NewExpander

func NewExpander(label string) *Expander

NewExpander creates a new expander using label as the text of the label.

The function takes the following parameters:

  • label (optional): text of the label.

The function returns the following values:

  • expander: new Expander widget.

func NewExpanderWithMnemonic

func NewExpanderWithMnemonic(label string) *Expander

NewExpanderWithMnemonic creates a new expander using label as the text of the label. If characters in label are preceded by an underscore, they are underlined. If you need a literal underscore character in a label, use “__” (two underscores). The first underlined character represents a keyboard accelerator called a mnemonic. Pressing Alt and that key activates the button.

The function takes the following parameters:

  • label (optional): text of the label with an underscore in front of the mnemonic character.

The function returns the following values:

  • expander: new Expander widget.

func (*Expander) ConnectActivate

func (expander *Expander) ConnectActivate(f func()) coreglib.SignalHandle

func (*Expander) Expanded

func (expander *Expander) Expanded() bool

Expanded queries a Expander and returns its current state. Returns TRUE if the child widget is revealed.

See gtk_expander_set_expanded().

The function returns the following values:

  • ok: current state of the expander.

func (*Expander) Label

func (expander *Expander) Label() string

Label fetches the text from a label widget including any embedded underlines indicating mnemonics and Pango markup, as set by gtk_expander_set_label(). If the label text has not been set the return value will be NULL. This will be the case if you create an empty button with gtk_button_new() to use as a container.

Note that this function behaved differently in versions prior to 2.14 and used to return the label text stripped of embedded underlines indicating mnemonics and Pango markup. This problem can be avoided by fetching the label text directly from the label widget.

The function returns the following values:

  • utf8 (optional): text of the label widget. This string is owned by the widget and must not be modified or freed.

func (*Expander) LabelFill

func (expander *Expander) LabelFill() bool

LabelFill returns whether the label widget will fill all available horizontal space allocated to expander.

The function returns the following values:

  • ok: TRUE if the label widget will fill all available horizontal space.

func (*Expander) LabelWidget

func (expander *Expander) LabelWidget() Widgetter

LabelWidget retrieves the label widget for the frame. See gtk_expander_set_label_widget().

The function returns the following values:

  • widget (optional): label widget, or NULL if there is none.

func (*Expander) ResizeToplevel

func (expander *Expander) ResizeToplevel() bool

ResizeToplevel returns whether the expander will resize the toplevel widget containing the expander upon resizing and collpasing.

The function returns the following values:

  • ok: “resize toplevel” setting.

func (*Expander) SetExpanded

func (expander *Expander) SetExpanded(expanded bool)

SetExpanded sets the state of the expander. Set to TRUE, if you want the child widget to be revealed, and FALSE if you want the child widget to be hidden.

The function takes the following parameters:

  • expanded: whether the child widget is revealed.

func (*Expander) SetLabel

func (expander *Expander) SetLabel(label string)

SetLabel sets the text of the label of the expander to label.

This will also clear any previously set labels.

The function takes the following parameters:

  • label (optional): string.

func (*Expander) SetLabelFill

func (expander *Expander) SetLabelFill(labelFill bool)

SetLabelFill sets whether the label widget should fill all available horizontal space allocated to expander.

Note that this function has no effect since 3.20.

The function takes the following parameters:

  • labelFill: TRUE if the label should should fill all available horizontal space.

func (*Expander) SetLabelWidget

func (expander *Expander) SetLabelWidget(labelWidget Widgetter)

SetLabelWidget: set the label widget for the expander. This is the widget that will appear embedded alongside the expander arrow.

The function takes the following parameters:

  • labelWidget (optional): new label widget.

func (*Expander) SetResizeToplevel

func (expander *Expander) SetResizeToplevel(resizeToplevel bool)

SetResizeToplevel sets whether the expander will resize the toplevel widget containing the expander upon resizing and collpasing.

The function takes the following parameters:

  • resizeToplevel: whether to resize the toplevel.

func (*Expander) SetSpacing deprecated

func (expander *Expander) SetSpacing(spacing int)

SetSpacing sets the spacing field of expander, which is the number of pixels to place between expander and the child.

Deprecated: Use margins on the child instead.

The function takes the following parameters:

  • spacing: distance between the expander and child in pixels.

func (*Expander) SetUseMarkup

func (expander *Expander) SetUseMarkup(useMarkup bool)

SetUseMarkup sets whether the text of the label contains markup in [Pango’s text markup language][PangoMarkupFormat]. See gtk_label_set_markup().

The function takes the following parameters:

  • useMarkup: TRUE if the label’s text should be parsed for markup.

func (*Expander) SetUseUnderline

func (expander *Expander) SetUseUnderline(useUnderline bool)

SetUseUnderline: if true, an underline in the text of the expander label indicates the next character should be used for the mnemonic accelerator key.

The function takes the following parameters:

  • useUnderline: TRUE if underlines in the text indicate mnemonics.

func (*Expander) Spacing deprecated

func (expander *Expander) Spacing() int

Spacing gets the value set by gtk_expander_set_spacing().

Deprecated: Use margins on the child instead.

The function returns the following values:

  • gint: spacing between the expander and child.

func (*Expander) UseMarkup

func (expander *Expander) UseMarkup() bool

UseMarkup returns whether the label’s text is interpreted as marked up with the [Pango text markup language][PangoMarkupFormat]. See gtk_expander_set_use_markup().

The function returns the following values:

  • ok: TRUE if the label’s text will be parsed for markup.

func (*Expander) UseUnderline

func (expander *Expander) UseUnderline() bool

UseUnderline returns whether an embedded underline in the expander label indicates a mnemonic. See gtk_expander_set_use_underline().

The function returns the following values:

  • ok: TRUE if an embedded underline in the expander label indicates the mnemonic accelerator keys.

type ExpanderAccessible

type ExpanderAccessible struct {
	ContainerAccessible

	atk.Action
	// contains filtered or unexported fields
}

type ExpanderAccessibleClass added in v0.0.5

type ExpanderAccessibleClass struct {
	// contains filtered or unexported fields
}

ExpanderAccessibleClass: instance of this type is always passed by reference.

func (*ExpanderAccessibleClass) ParentClass added in v0.0.5

type ExpanderAccessibleOverrides added in v0.0.5

type ExpanderAccessibleOverrides struct {
}

ExpanderAccessibleOverrides contains methods that are overridable.

type ExpanderClass added in v0.0.5

type ExpanderClass struct {
	// contains filtered or unexported fields
}

ExpanderClass: instance of this type is always passed by reference.

func (*ExpanderClass) ParentClass added in v0.0.5

func (e *ExpanderClass) ParentClass() *BinClass

ParentClass: parent class.

type ExpanderOverrides added in v0.0.5

type ExpanderOverrides struct {
	Activate func()
}

ExpanderOverrides contains methods that are overridable.

type ExpanderStyle

type ExpanderStyle C.gint

ExpanderStyle: used to specify the style of the expanders drawn by a TreeView.

const (
	// ExpanderCollapsed: style used for a collapsed subtree.
	ExpanderCollapsed ExpanderStyle = iota
	// ExpanderSemiCollapsed: intermediate style used during animation.
	ExpanderSemiCollapsed
	// ExpanderSemiExpanded: intermediate style used during animation.
	ExpanderSemiExpanded
	// ExpanderExpanded: style used for an expanded subtree.
	ExpanderExpanded
)

func (ExpanderStyle) String

func (e ExpanderStyle) String() string

String returns the name in string for ExpanderStyle.

type FileChooser

type FileChooser struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

FileChooser is an interface that can be implemented by file selection widgets. In GTK+, the main objects that implement this interface are FileChooserWidget, FileChooserDialog, and FileChooserButton. You do not need to write an object that implements the FileChooser interface unless you are trying to adapt an existing file selector to expose a standard programming interface.

FileChooser allows for shortcuts to various places in the filesystem. In the default implementation these are displayed in the left pane. It may be a bit confusing at first that these shortcuts come from various sources and in various flavours, so lets explain the terminology here:

- Bookmarks: are created by the user, by dragging folders from the right pane to the left pane, or by using the “Add”. Bookmarks can be renamed and deleted by the user.

- Shortcuts: can be provided by the application. For example, a Paint program may want to add a shortcut for a Clipart folder. Shortcuts cannot be modified by the user.

- Volumes: are provided by the underlying filesystem abstraction. They are the “roots” of the filesystem.

File Names and Encodings

When the user is finished selecting files in a FileChooser, your program can get the selected names either as filenames or as URIs. For URIs, the normal escaping rules are applied if the URI contains non-ASCII characters. However, filenames are always returned in the character set specified by the G_FILENAME_ENCODING environment variable. Please see the GLib documentation for more details about this variable.

This means that while you can pass the result of gtk_file_chooser_get_filename() to g_open() or g_fopen(), you may not be able to directly set it as the text of a Label widget unless you convert it first to UTF-8, which all GTK+ widgets expect. You should use g_filename_to_utf8() to convert filenames into strings that can be passed to GTK+ widgets.

Adding a Preview Widget

You can add a custom preview widget to a file chooser and then get notification about when the preview needs to be updated. To install a preview widget, use gtk_file_chooser_set_preview_widget(). Then, connect to the FileChooser::update-preview signal to get notified when you need to update the contents of the preview.

Your callback should use gtk_file_chooser_get_preview_filename() to see what needs previewing. Once you have generated the preview for the corresponding file, you must call gtk_file_chooser_set_preview_widget_active() with a boolean flag that indicates whether your callback could successfully generate a preview.

Example: Using a Preview Widget

  GtkWidget *toggle;

  ...

  toggle = gtk_check_button_new_with_label ("Open file read-only");
  gtk_widget_show (toggle);
  gtk_file_chooser_set_extra_widget (my_file_chooser, toggle);
}

If you want to set more than one extra widget in the file chooser, you can a container such as a Box or a Grid and include your widgets in it. Then, set the container as the whole extra widget.

FileChooser wraps an interface. This means the user can get the underlying type by calling Cast().

func (*FileChooser) Action

func (chooser *FileChooser) Action() FileChooserAction

Action gets the type of operation that the file chooser is performing; see gtk_file_chooser_set_action().

The function returns the following values:

  • fileChooserAction: action that the file selector is performing.

func (*FileChooser) AddChoice

func (chooser *FileChooser) AddChoice(id, label string, options, optionLabels []string)

AddChoice adds a 'choice' to the file chooser. This is typically implemented as a combobox or, for boolean choices, as a checkbutton. You can select a value using gtk_file_chooser_set_choice() before the dialog is shown, and you can obtain the user-selected value in the ::response signal handler using gtk_file_chooser_get_choice().

Compare gtk_file_chooser_set_extra_widget().

The function takes the following parameters:

  • id for the added choice.
  • label: user-visible label for the added choice.
  • options (optional) ids for the options of the choice, or NULL for a boolean choice.
  • optionLabels (optional): user-visible labels for the options, must be the same length as options.

func (*FileChooser) AddFilter

func (chooser *FileChooser) AddFilter(filter *FileFilter)

AddFilter adds filter to the list of filters that the user can select between. When a filter is selected, only files that are passed by that filter are displayed.

Note that the chooser takes ownership of the filter, so you have to ref and sink it if you want to keep a reference.

The function takes the following parameters:

  • filter: FileFilter.

func (*FileChooser) AddShortcutFolder

func (chooser *FileChooser) AddShortcutFolder(folder string) error

AddShortcutFolder adds a folder to be displayed with the shortcut folders in a file chooser. Note that shortcut folders do not get saved, as they are provided by the application. For example, you can use this to add a “/usr/share/mydrawprogram/Clipart” folder to the volume list.

The function takes the following parameters:

  • folder: filename of the folder to add.

func (*FileChooser) AddShortcutFolderURI

func (chooser *FileChooser) AddShortcutFolderURI(uri string) error

AddShortcutFolderURI adds a folder URI to be displayed with the shortcut folders in a file chooser. Note that shortcut folders do not get saved, as they are provided by the application. For example, you can use this to add a “file:///usr/share/mydrawprogram/Clipart” folder to the volume list.

The function takes the following parameters:

  • uri: URI of the folder to add.

func (*FileChooser) Choice

func (chooser *FileChooser) Choice(id string) string

Choice gets the currently selected option in the 'choice' with the given ID.

The function takes the following parameters:

  • id: ID of the choice to get.

The function returns the following values:

  • utf8: ID of the currenly selected option.

func (*FileChooser) ConnectConfirmOverwrite

func (chooser *FileChooser) ConnectConfirmOverwrite(f func() (fileChooserConfirmation FileChooserConfirmation)) coreglib.SignalHandle

ConnectConfirmOverwrite: this signal gets emitted whenever it is appropriate to present a confirmation dialog when the user has selected a file name that already exists. The signal only gets emitted when the file chooser is in GTK_FILE_CHOOSER_ACTION_SAVE mode.

Most applications just need to turn on the FileChooser:do-overwrite-confirmation property (or call the gtk_file_chooser_set_do_overwrite_confirmation() function), and they will automatically get a stock confirmation dialog. Applications which need to customize this behavior should do that, and also connect to the FileChooser::confirm-overwrite signal.

A signal handler for this signal must return a FileChooserConfirmation value, which indicates the action to take. If the handler determines that the user wants to select a different filename, it should return GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN. If it determines that the user is satisfied with his choice of file name, it should return GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME. On the other hand, if it determines that the stock confirmation dialog should be used, it should return GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM. The following example illustrates this.

Custom confirmation

static GtkFileChooserConfirmation
confirm_overwrite_callback (GtkFileChooser *chooser, gpointer data)
{
  char *uri;

  uri = gtk_file_chooser_get_uri (chooser);

  if (is_uri_read_only (uri))
    {
      if (user_wants_to_replace_read_only_file (uri))
        return GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME;
      else
        return GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN;
    } else
      return GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM; // fall back to the default dialog
}

...

chooser = gtk_file_chooser_dialog_new (...);

gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
g_signal_connect (chooser, "confirm-overwrite",
                  G_CALLBACK (confirm_overwrite_callback), NULL);

if (gtk_dialog_run (chooser) == GTK_RESPONSE_ACCEPT)
        save_to_file (gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser));

gtk_widget_destroy (chooser);.

func (*FileChooser) ConnectCurrentFolderChanged

func (chooser *FileChooser) ConnectCurrentFolderChanged(f func()) coreglib.SignalHandle

ConnectCurrentFolderChanged: this signal is emitted when the current folder in a FileChooser changes. This can happen due to the user performing some action that changes folders, such as selecting a bookmark or visiting a folder on the file list. It can also happen as a result of calling a function to explicitly change the current folder in a file chooser.

Normally you do not need to connect to this signal, unless you need to keep track of which folder a file chooser is showing.

See also: gtk_file_chooser_set_current_folder(), gtk_file_chooser_get_current_folder(), gtk_file_chooser_set_current_folder_uri(), gtk_file_chooser_get_current_folder_uri().

func (*FileChooser) ConnectFileActivated

func (chooser *FileChooser) ConnectFileActivated(f func()) coreglib.SignalHandle

ConnectFileActivated: this signal is emitted when the user "activates" a file in the file chooser. This can happen by double-clicking on a file in the file list, or by pressing Enter.

Normally you do not need to connect to this signal. It is used internally by FileChooserDialog to know when to activate the default button in the dialog.

See also: gtk_file_chooser_get_filename(), gtk_file_chooser_get_filenames(), gtk_file_chooser_get_uri(), gtk_file_chooser_get_uris().

func (*FileChooser) ConnectSelectionChanged

func (chooser *FileChooser) ConnectSelectionChanged(f func()) coreglib.SignalHandle

ConnectSelectionChanged: this signal is emitted when there is a change in the set of selected files in a FileChooser. This can happen when the user modifies the selection with the mouse or the keyboard, or when explicitly calling functions to change the selection.

Normally you do not need to connect to this signal, as it is easier to wait for the file chooser to finish running, and then to get the list of selected files using the functions mentioned below.

See also: gtk_file_chooser_select_filename(), gtk_file_chooser_unselect_filename(), gtk_file_chooser_get_filename(), gtk_file_chooser_get_filenames(), gtk_file_chooser_select_uri(), gtk_file_chooser_unselect_uri(), gtk_file_chooser_get_uri(), gtk_file_chooser_get_uris().

func (*FileChooser) ConnectUpdatePreview

func (chooser *FileChooser) ConnectUpdatePreview(f func()) coreglib.SignalHandle

ConnectUpdatePreview: this signal is emitted when the preview in a file chooser should be regenerated. For example, this can happen when the currently selected file changes. You should use this signal if you want your file chooser to have a preview widget.

Once you have installed a preview widget with gtk_file_chooser_set_preview_widget(), you should update it when this signal is emitted. You can use the functions gtk_file_chooser_get_preview_filename() or gtk_file_chooser_get_preview_uri() to get the name of the file to preview. Your widget may not be able to preview all kinds of files; your callback must call gtk_file_chooser_set_preview_widget_active() to inform the file chooser about whether the preview was generated successfully or not.

Please see the example code in [Using a Preview Widget][gtkfilechooser-preview].

See also: gtk_file_chooser_set_preview_widget(), gtk_file_chooser_set_preview_widget_active(), gtk_file_chooser_set_use_preview_label(), gtk_file_chooser_get_preview_filename(), gtk_file_chooser_get_preview_uri().

func (*FileChooser) CreateFolders

func (chooser *FileChooser) CreateFolders() bool

CreateFolders gets whether file choser will offer to create new folders. See gtk_file_chooser_set_create_folders().

The function returns the following values:

  • ok: TRUE if the Create Folder button should be displayed.

func (*FileChooser) CurrentFolder

func (chooser *FileChooser) CurrentFolder() string

CurrentFolder gets the current folder of chooser as a local filename. See gtk_file_chooser_set_current_folder().

Note that this is the folder that the file chooser is currently displaying (e.g. "/home/username/Documents"), which is not the same as the currently-selected folder if the chooser is in GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER mode (e.g. "/home/username/Documents/selected-folder/". To get the currently-selected folder in that mode, use gtk_file_chooser_get_uri() as the usual way to get the selection.

The function returns the following values:

  • filename (optional): full path of the current folder, or NULL if the current path cannot be represented as a local filename. Free with g_free(). This function will also return NULL if the file chooser was unable to load the last folder that was requested from it; for example, as would be for calling gtk_file_chooser_set_current_folder() on a nonexistent folder.

func (*FileChooser) CurrentFolderFile

func (chooser *FileChooser) CurrentFolderFile() *gio.File

CurrentFolderFile gets the current folder of chooser as #GFile. See gtk_file_chooser_get_current_folder_uri().

The function returns the following values:

  • file for the current folder.

func (*FileChooser) CurrentFolderURI

func (chooser *FileChooser) CurrentFolderURI() string

CurrentFolderURI gets the current folder of chooser as an URI. See gtk_file_chooser_set_current_folder_uri().

Note that this is the folder that the file chooser is currently displaying (e.g. "file:///home/username/Documents"), which is not the same as the currently-selected folder if the chooser is in GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER mode (e.g. "file:///home/username/Documents/selected-folder/". To get the currently-selected folder in that mode, use gtk_file_chooser_get_uri() as the usual way to get the selection.

The function returns the following values:

  • utf8 (optional): URI for the current folder. Free with g_free(). This function will also return NULL if the file chooser was unable to load the last folder that was requested from it; for example, as would be for calling gtk_file_chooser_set_current_folder_uri() on a nonexistent folder.

func (*FileChooser) CurrentName

func (chooser *FileChooser) CurrentName() string

CurrentName gets the current name in the file selector, as entered by the user in the text entry for “Name”.

This is meant to be used in save dialogs, to get the currently typed filename when the file itself does not exist yet. For example, an application that adds a custom extra widget to the file chooser for “file format” may want to change the extension of the typed filename based on the chosen format, say, from “.jpg” to “.png”.

The function returns the following values:

  • utf8: raw text from the file chooser’s “Name” entry. Free this with g_free(). Note that this string is not a full pathname or URI; it is whatever the contents of the entry are. Note also that this string is in UTF-8 encoding, which is not necessarily the system’s encoding for filenames.

func (*FileChooser) DoOverwriteConfirmation

func (chooser *FileChooser) DoOverwriteConfirmation() bool

DoOverwriteConfirmation queries whether a file chooser is set to confirm for overwriting when the user types a file name that already exists.

The function returns the following values:

  • ok: TRUE if the file chooser will present a confirmation dialog; FALSE otherwise.

func (*FileChooser) ExtraWidget

func (chooser *FileChooser) ExtraWidget() Widgetter

ExtraWidget gets the current extra widget; see gtk_file_chooser_set_extra_widget().

The function returns the following values:

  • widget (optional): current extra widget, or NULL.

func (*FileChooser) File

func (chooser *FileChooser) File() *gio.File

File gets the #GFile for the currently selected file in the file selector. If multiple files are selected, one of the files will be returned at random.

If the file chooser is in folder mode, this function returns the selected folder.

The function returns the following values:

  • file: selected #GFile. You own the returned file; use g_object_unref() to release it.

func (*FileChooser) Filename

func (chooser *FileChooser) Filename() string

Filename gets the filename for the currently selected file in the file selector. The filename is returned as an absolute path. If multiple files are selected, one of the filenames will be returned at random.

If the file chooser is in folder mode, this function returns the selected folder.

The function returns the following values:

  • filename (optional): currently selected filename, or NULL if no file is selected, or the selected file can't be represented with a local filename. Free with g_free().

func (*FileChooser) Filenames

func (chooser *FileChooser) Filenames() []string

Filenames lists all the selected files and subfolders in the current folder of chooser. The returned names are full absolute paths. If files in the current folder cannot be represented as local filenames they will be ignored. (See gtk_file_chooser_get_uris()).

The function returns the following values:

  • sList: List containing the filenames of all selected files and subfolders in the current folder. Free the returned list with g_slist_free(), and the filenames with g_free().

func (*FileChooser) Files

func (chooser *FileChooser) Files() []*gio.File

Files lists all the selected files and subfolders in the current folder of chooser as #GFile. An internal function, see gtk_file_chooser_get_uris().

The function returns the following values:

  • sList: List containing a #GFile for each selected file and subfolder in the current folder. Free the returned list with g_slist_free(), and the files with g_object_unref().

func (*FileChooser) Filter

func (chooser *FileChooser) Filter() *FileFilter

Filter gets the current filter; see gtk_file_chooser_set_filter().

The function returns the following values:

  • fileFilter (optional): current filter, or NULL.

func (*FileChooser) ListFilters

func (chooser *FileChooser) ListFilters() []*FileFilter

ListFilters lists the current set of user-selectable filters; see gtk_file_chooser_add_filter(), gtk_file_chooser_remove_filter().

The function returns the following values:

  • sList: a List containing the current set of user selectable filters. The contents of the list are owned by GTK+, but you must free the list itself with g_slist_free() when you are done with it.

func (*FileChooser) ListShortcutFolderURIs

func (chooser *FileChooser) ListShortcutFolderURIs() []string

ListShortcutFolderURIs queries the list of shortcut folders in the file chooser, as set by gtk_file_chooser_add_shortcut_folder_uri().

The function returns the following values:

  • sList (optional): list of folder URIs, or NULL if there are no shortcut folders. Free the returned list with g_slist_free(), and the URIs with g_free().

func (*FileChooser) ListShortcutFolders

func (chooser *FileChooser) ListShortcutFolders() []string

ListShortcutFolders queries the list of shortcut folders in the file chooser, as set by gtk_file_chooser_add_shortcut_folder().

The function returns the following values:

  • sList (optional): list of folder filenames, or NULL if there are no shortcut folders. Free the returned list with g_slist_free(), and the filenames with g_free().

func (*FileChooser) LocalOnly

func (chooser *FileChooser) LocalOnly() bool

LocalOnly gets whether only local files can be selected in the file selector. See gtk_file_chooser_set_local_only().

The function returns the following values:

  • ok: TRUE if only local files can be selected.

func (*FileChooser) PreviewFile

func (chooser *FileChooser) PreviewFile() *gio.File

PreviewFile gets the #GFile that should be previewed in a custom preview Internal function, see gtk_file_chooser_get_preview_uri().

The function returns the following values:

  • file (optional) for the file to preview, or NULL if no file is selected. Free with g_object_unref().

func (*FileChooser) PreviewFilename

func (chooser *FileChooser) PreviewFilename() string

PreviewFilename gets the filename that should be previewed in a custom preview widget. See gtk_file_chooser_set_preview_widget().

The function returns the following values:

  • filename (optional) to preview, or NULL if no file is selected, or if the selected file cannot be represented as a local filename. Free with g_free().

func (*FileChooser) PreviewURI

func (chooser *FileChooser) PreviewURI() string

PreviewURI gets the URI that should be previewed in a custom preview widget. See gtk_file_chooser_set_preview_widget().

The function returns the following values:

  • utf8 (optional): URI for the file to preview, or NULL if no file is selected. Free with g_free().

func (*FileChooser) PreviewWidget

func (chooser *FileChooser) PreviewWidget() Widgetter

PreviewWidget gets the current preview widget; see gtk_file_chooser_set_preview_widget().

The function returns the following values:

  • widget (optional): current preview widget, or NULL.

func (*FileChooser) PreviewWidgetActive

func (chooser *FileChooser) PreviewWidgetActive() bool

PreviewWidgetActive gets whether the preview widget set by gtk_file_chooser_set_preview_widget() should be shown for the current filename. See gtk_file_chooser_set_preview_widget_active().

The function returns the following values:

  • ok: TRUE if the preview widget is active for the current filename.

func (*FileChooser) RemoveChoice

func (chooser *FileChooser) RemoveChoice(id string)

RemoveChoice removes a 'choice' that has been added with gtk_file_chooser_add_choice().

The function takes the following parameters:

  • id: ID of the choice to remove.

func (*FileChooser) RemoveFilter

func (chooser *FileChooser) RemoveFilter(filter *FileFilter)

RemoveFilter removes filter from the list of filters that the user can select between.

The function takes the following parameters:

  • filter: FileFilter.

func (*FileChooser) RemoveShortcutFolder

func (chooser *FileChooser) RemoveShortcutFolder(folder string) error

RemoveShortcutFolder removes a folder from a file chooser’s list of shortcut folders.

The function takes the following parameters:

  • folder: filename of the folder to remove.

func (*FileChooser) RemoveShortcutFolderURI

func (chooser *FileChooser) RemoveShortcutFolderURI(uri string) error

RemoveShortcutFolderURI removes a folder URI from a file chooser’s list of shortcut folders.

The function takes the following parameters:

  • uri: URI of the folder to remove.

func (*FileChooser) SelectAll

func (chooser *FileChooser) SelectAll()

SelectAll selects all the files in the current folder of a file chooser.

func (*FileChooser) SelectFile

func (chooser *FileChooser) SelectFile(file gio.Filer) error

SelectFile selects the file referred to by file. An internal function. See _gtk_file_chooser_select_uri().

The function takes the following parameters:

  • file to select.

func (*FileChooser) SelectFilename

func (chooser *FileChooser) SelectFilename(filename string) bool

SelectFilename selects a filename. If the file name isn’t in the current folder of chooser, then the current folder of chooser will be changed to the folder containing filename.

The function takes the following parameters:

  • filename to select.

The function returns the following values:

  • ok: not useful.

    See also: gtk_file_chooser_set_filename().

func (*FileChooser) SelectMultiple

func (chooser *FileChooser) SelectMultiple() bool

SelectMultiple gets whether multiple files can be selected in the file selector. See gtk_file_chooser_set_select_multiple().

The function returns the following values:

  • ok: TRUE if multiple files can be selected.

func (*FileChooser) SelectURI

func (chooser *FileChooser) SelectURI(uri string) bool

SelectURI selects the file to by uri. If the URI doesn’t refer to a file in the current folder of chooser, then the current folder of chooser will be changed to the folder containing filename.

The function takes the following parameters:

  • uri: URI to select.

The function returns the following values:

  • ok: not useful.

func (*FileChooser) SetAction

func (chooser *FileChooser) SetAction(action FileChooserAction)

SetAction sets the type of operation that the chooser is performing; the user interface is adapted to suit the selected action. For example, an option to create a new folder might be shown if the action is GTK_FILE_CHOOSER_ACTION_SAVE but not if the action is GTK_FILE_CHOOSER_ACTION_OPEN.

The function takes the following parameters:

  • action that the file selector is performing.

func (*FileChooser) SetChoice

func (chooser *FileChooser) SetChoice(id, option string)

SetChoice selects an option in a 'choice' that has been added with gtk_file_chooser_add_choice(). For a boolean choice, the possible options are "true" and "false".

The function takes the following parameters:

  • id: ID of the choice to set.
  • option: ID of the option to select.

func (*FileChooser) SetCreateFolders

func (chooser *FileChooser) SetCreateFolders(createFolders bool)

SetCreateFolders sets whether file choser will offer to create new folders. This is only relevant if the action is not set to be GTK_FILE_CHOOSER_ACTION_OPEN.

The function takes the following parameters:

  • createFolders: TRUE if the Create Folder button should be displayed.

func (*FileChooser) SetCurrentFolder

func (chooser *FileChooser) SetCurrentFolder(filename string) bool

SetCurrentFolder sets the current folder for chooser from a local filename. The user will be shown the full contents of the current folder, plus user interface elements for navigating to other folders.

In general, you should not use this function. See the [section on setting up a file chooser dialog][gtkfilechooserdialog-setting-up] for the rationale behind this.

The function takes the following parameters:

  • filename: full path of the new current folder.

The function returns the following values:

  • ok: not useful.

func (*FileChooser) SetCurrentFolderFile

func (chooser *FileChooser) SetCurrentFolderFile(file gio.Filer) error

SetCurrentFolderFile sets the current folder for chooser from a #GFile. Internal function, see gtk_file_chooser_set_current_folder_uri().

The function takes the following parameters:

  • file for the new folder.

func (*FileChooser) SetCurrentFolderURI

func (chooser *FileChooser) SetCurrentFolderURI(uri string) bool

SetCurrentFolderURI sets the current folder for chooser from an URI. The user will be shown the full contents of the current folder, plus user interface elements for navigating to other folders.

In general, you should not use this function. See the [section on setting up a file chooser dialog][gtkfilechooserdialog-setting-up] for the rationale behind this.

The function takes the following parameters:

  • uri: URI for the new current folder.

The function returns the following values:

  • ok: TRUE if the folder could be changed successfully, FALSE otherwise.

func (*FileChooser) SetCurrentName

func (chooser *FileChooser) SetCurrentName(name string)

SetCurrentName sets the current name in the file selector, as if entered by the user. Note that the name passed in here is a UTF-8 string rather than a filename. This function is meant for such uses as a suggested name in a “Save As...” dialog. You can pass “Untitled.doc” or a similarly suitable suggestion for the name.

If you want to preselect a particular existing file, you should use gtk_file_chooser_set_filename() or gtk_file_chooser_set_uri() instead. Please see the documentation for those functions for an example of using gtk_file_chooser_set_current_name() as well.

The function takes the following parameters:

  • name to use, as a UTF-8 string.

func (*FileChooser) SetDoOverwriteConfirmation

func (chooser *FileChooser) SetDoOverwriteConfirmation(doOverwriteConfirmation bool)

SetDoOverwriteConfirmation sets whether a file chooser in GTK_FILE_CHOOSER_ACTION_SAVE mode will present a confirmation dialog if the user types a file name that already exists. This is FALSE by default.

If set to TRUE, the chooser will emit the FileChooser::confirm-overwrite signal when appropriate.

If all you need is the stock confirmation dialog, set this property to TRUE. You can override the way confirmation is done by actually handling the FileChooser::confirm-overwrite signal; please refer to its documentation for the details.

The function takes the following parameters:

  • doOverwriteConfirmation: whether to confirm overwriting in save mode.

func (*FileChooser) SetExtraWidget

func (chooser *FileChooser) SetExtraWidget(extraWidget Widgetter)

SetExtraWidget sets an application-supplied widget to provide extra options to the user.

The function takes the following parameters:

  • extraWidget: widget for extra options.

func (*FileChooser) SetFile

func (chooser *FileChooser) SetFile(file gio.Filer) error

SetFile sets file as the current filename for the file chooser, by changing to the file’s parent folder and actually selecting the file in list. If the chooser is in GTK_FILE_CHOOSER_ACTION_SAVE mode, the file’s base name will also appear in the dialog’s file name entry.

If the file name isn’t in the current folder of chooser, then the current folder of chooser will be changed to the folder containing filename. This is equivalent to a sequence of gtk_file_chooser_unselect_all() followed by gtk_file_chooser_select_filename().

Note that the file must exist, or nothing will be done except for the directory change.

If you are implementing a save dialog, you should use this function if you already have a file name to which the user may save; for example, when the user opens an existing file and then does Save As... If you don’t have a file name already — for example, if the user just created a new file and is saving it for the first time, do not call this function. Instead, use something similar to this:

if (document_is_new)
  {
    // the user just created a new document
    gtk_file_chooser_set_current_folder_file (chooser, default_file_for_saving);
    gtk_file_chooser_set_current_name (chooser, "Untitled document");
  }
else
  {
    // the user edited an existing document
    gtk_file_chooser_set_file (chooser, existing_file);
  }.

The function takes the following parameters:

  • file to set as current.

func (*FileChooser) SetFilename

func (chooser *FileChooser) SetFilename(filename string) bool

SetFilename sets filename as the current filename for the file chooser, by changing to the file’s parent folder and actually selecting the file in list; all other files will be unselected. If the chooser is in GTK_FILE_CHOOSER_ACTION_SAVE mode, the file’s base name will also appear in the dialog’s file name entry.

Note that the file must exist, or nothing will be done except for the directory change.

You should use this function only when implementing a save dialog for which you already have a file name to which the user may save. For example, when the user opens an existing file and then does Save As... to save a copy or a modified version. If you don’t have a file name already — for example, if the user just created a new file and is saving it for the first time, do not call this function. Instead, use something similar to this:

if (document_is_new)
  {
    // the user just created a new document
    gtk_file_chooser_set_current_name (chooser, "Untitled document");
  }
else
  {
    // the user edited an existing document
    gtk_file_chooser_set_filename (chooser, existing_filename);
  }

In the first case, the file chooser will present the user with useful suggestions as to where to save his new file. In the second case, the file’s existing location is already known, so the file chooser will use it.

The function takes the following parameters:

  • filename to set as current.

The function returns the following values:

  • ok: not useful.

func (*FileChooser) SetFilter

func (chooser *FileChooser) SetFilter(filter *FileFilter)

SetFilter sets the current filter; only the files that pass the filter will be displayed. If the user-selectable list of filters is non-empty, then the filter should be one of the filters in that list. Setting the current filter when the list of filters is empty is useful if you want to restrict the displayed set of files without letting the user change it.

The function takes the following parameters:

  • filter: FileFilter.

func (*FileChooser) SetLocalOnly

func (chooser *FileChooser) SetLocalOnly(localOnly bool)

SetLocalOnly sets whether only local files can be selected in the file selector. If local_only is TRUE (the default), then the selected file or files are guaranteed to be accessible through the operating systems native file system and therefore the application only needs to worry about the filename functions in FileChooser, like gtk_file_chooser_get_filename(), rather than the URI functions like gtk_file_chooser_get_uri(),

On some systems non-native files may still be available using the native filesystem via a userspace filesystem (FUSE).

The function takes the following parameters:

  • localOnly: TRUE if only local files can be selected.

func (*FileChooser) SetPreviewWidget

func (chooser *FileChooser) SetPreviewWidget(previewWidget Widgetter)

SetPreviewWidget sets an application-supplied widget to use to display a custom preview of the currently selected file. To implement a preview, after setting the preview widget, you connect to the FileChooser::update-preview signal, and call gtk_file_chooser_get_preview_filename() or gtk_file_chooser_get_preview_uri() on each change. If you can display a preview of the new file, update your widget and set the preview active using gtk_file_chooser_set_preview_widget_active(). Otherwise, set the preview inactive.

When there is no application-supplied preview widget, or the application-supplied preview widget is not active, the file chooser will display no preview at all.

The function takes the following parameters:

  • previewWidget: widget for displaying preview.

func (*FileChooser) SetPreviewWidgetActive

func (chooser *FileChooser) SetPreviewWidgetActive(active bool)

SetPreviewWidgetActive sets whether the preview widget set by gtk_file_chooser_set_preview_widget() should be shown for the current filename. When active is set to false, the file chooser may display an internally generated preview of the current file or it may display no preview at all. See gtk_file_chooser_set_preview_widget() for more details.

The function takes the following parameters:

  • active: whether to display the user-specified preview widget.

func (*FileChooser) SetSelectMultiple

func (chooser *FileChooser) SetSelectMultiple(selectMultiple bool)

SetSelectMultiple sets whether multiple files can be selected in the file selector. This is only relevant if the action is set to be GTK_FILE_CHOOSER_ACTION_OPEN or GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.

The function takes the following parameters:

  • selectMultiple: TRUE if multiple files can be selected.

func (*FileChooser) SetShowHidden

func (chooser *FileChooser) SetShowHidden(showHidden bool)

SetShowHidden sets whether hidden files and folders are displayed in the file selector.

The function takes the following parameters:

  • showHidden: TRUE if hidden files and folders should be displayed.

func (*FileChooser) SetURI

func (chooser *FileChooser) SetURI(uri string) bool

SetURI sets the file referred to by uri as the current file for the file chooser, by changing to the URI’s parent folder and actually selecting the URI in the list. If the chooser is GTK_FILE_CHOOSER_ACTION_SAVE mode, the URI’s base name will also appear in the dialog’s file name entry.

Note that the URI must exist, or nothing will be done except for the directory change.

You should use this function only when implementing a save dialog for which you already have a file name to which the user may save. For example, when the user opens an existing file and then does Save As... to save a copy or a modified version. If you don’t have a file name already — for example, if the user just created a new file and is saving it for the first time, do not call this function. Instead, use something similar to this:

if (document_is_new)
  {
    // the user just created a new document
    gtk_file_chooser_set_current_name (chooser, "Untitled document");
  }
else
  {
    // the user edited an existing document
    gtk_file_chooser_set_uri (chooser, existing_uri);
  }

In the first case, the file chooser will present the user with useful suggestions as to where to save his new file. In the second case, the file’s existing location is already known, so the file chooser will use it.

The function takes the following parameters:

  • uri: URI to set as current.

The function returns the following values:

  • ok: not useful.

func (*FileChooser) SetUsePreviewLabel

func (chooser *FileChooser) SetUsePreviewLabel(useLabel bool)

SetUsePreviewLabel sets whether the file chooser should display a stock label with the name of the file that is being previewed; the default is TRUE. Applications that want to draw the whole preview area themselves should set this to FALSE and display the name themselves in their preview widget.

See also: gtk_file_chooser_set_preview_widget().

The function takes the following parameters:

  • useLabel: whether to display a stock label with the name of the previewed file.

func (*FileChooser) ShowHidden

func (chooser *FileChooser) ShowHidden() bool

ShowHidden gets whether hidden files and folders are displayed in the file selector. See gtk_file_chooser_set_show_hidden().

The function returns the following values:

  • ok: TRUE if hidden files and folders are displayed.

func (*FileChooser) URI

func (chooser *FileChooser) URI() string

URI gets the URI for the currently selected file in the file selector. If multiple files are selected, one of the filenames will be returned at random.

If the file chooser is in folder mode, this function returns the selected folder.

The function returns the following values:

  • utf8 (optional): currently selected URI, or NULL if no file is selected. If gtk_file_chooser_set_local_only() is set to TRUE (the default) a local URI will be returned for any FUSE locations. Free with g_free().

func (*FileChooser) URIs

func (chooser *FileChooser) URIs() []string

URIs lists all the selected files and subfolders in the current folder of chooser. The returned names are full absolute URIs.

The function returns the following values:

  • sList containing the URIs of all selected files and subfolders in the current folder. Free the returned list with g_slist_free(), and the filenames with g_free().

func (*FileChooser) UnselectAll

func (chooser *FileChooser) UnselectAll()

UnselectAll unselects all the files in the current folder of a file chooser.

func (*FileChooser) UnselectFile

func (chooser *FileChooser) UnselectFile(file gio.Filer)

UnselectFile unselects the file referred to by file. If the file is not in the current directory, does not exist, or is otherwise not currently selected, does nothing.

The function takes the following parameters:

  • file: #GFile.

func (*FileChooser) UnselectFilename

func (chooser *FileChooser) UnselectFilename(filename string)

UnselectFilename unselects a currently selected filename. If the filename is not in the current directory, does not exist, or is otherwise not currently selected, does nothing.

The function takes the following parameters:

  • filename to unselect.

func (*FileChooser) UnselectURI

func (chooser *FileChooser) UnselectURI(uri string)

UnselectURI unselects the file referred to by uri. If the file is not in the current directory, does not exist, or is otherwise not currently selected, does nothing.

The function takes the following parameters:

  • uri: URI to unselect.

func (*FileChooser) UsePreviewLabel

func (chooser *FileChooser) UsePreviewLabel() bool

UsePreviewLabel gets whether a stock label should be drawn with the name of the previewed file. See gtk_file_chooser_set_use_preview_label().

The function returns the following values:

  • ok: TRUE if the file chooser is set to display a label with the name of the previewed file, FALSE otherwise.

type FileChooserAction

type FileChooserAction C.gint

FileChooserAction describes whether a FileChooser is being used to open existing files or to save to a possibly new file.

const (
	// FileChooserActionOpen indicates open mode. The file chooser will only let
	// the user pick an existing file.
	FileChooserActionOpen FileChooserAction = iota
	// FileChooserActionSave indicates save mode. The file chooser will let the
	// user pick an existing file, or type in a new filename.
	FileChooserActionSave
	// FileChooserActionSelectFolder indicates an Open mode for selecting
	// folders. The file chooser will let the user pick an existing folder.
	FileChooserActionSelectFolder
	// FileChooserActionCreateFolder indicates a mode for creating a new folder.
	// The file chooser will let the user name an existing or new folder.
	FileChooserActionCreateFolder
)

func (FileChooserAction) String

func (f FileChooserAction) String() string

String returns the name in string for FileChooserAction.

type FileChooserButton

type FileChooserButton struct {
	Box

	*coreglib.Object
	FileChooser
	// contains filtered or unexported fields
}

FileChooserButton is a widget that lets the user select a file. It implements the FileChooser interface. Visually, it is a file name with a button to bring up a FileChooserDialog. The user can then use that dialog to change the file associated with that button. This widget does not support setting the FileChooser:select-multiple property to TRUE.

Create a button to let the user select a file in /etc

{
  GtkWidget *button;

  button = gtk_file_chooser_button_new (_("Select a file"),
                                        GTK_FILE_CHOOSER_ACTION_OPEN);
  gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button),
                                       "/etc");
}

The FileChooserButton supports the FileChooserActions GTK_FILE_CHOOSER_ACTION_OPEN and GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.

> The FileChooserButton will ellipsize the label, and will thus > request little horizontal space. To give the button more space, > you should call gtk_widget_get_preferred_size(), > gtk_file_chooser_button_set_width_chars(), or pack the button in > such a way that other interface elements give space to the > widget.

CSS nodes

GtkFileChooserButton has a CSS node with name “filechooserbutton”, containing a subnode for the internal button with name “button” and style class “.file”.

func NewFileChooserButton

func NewFileChooserButton(title string, action FileChooserAction) *FileChooserButton

NewFileChooserButton creates a new file-selecting button widget.

The function takes the following parameters:

  • title of the browse dialog.
  • action: open mode for the widget.

The function returns the following values:

  • fileChooserButton: new button widget.

func NewFileChooserButtonWithDialog

func NewFileChooserButtonWithDialog(dialog *Dialog) *FileChooserButton

NewFileChooserButtonWithDialog creates a FileChooserButton widget which uses dialog as its file-picking window.

Note that dialog must be a Dialog (or subclass) which implements the FileChooser interface and must not have GTK_DIALOG_DESTROY_WITH_PARENT set.

Also note that the dialog needs to have its confirmative button added with response GTK_RESPONSE_ACCEPT or GTK_RESPONSE_OK in order for the button to take over the file selected in the dialog.

The function takes the following parameters:

  • dialog: widget to use as dialog.

The function returns the following values:

  • fileChooserButton: new button widget.

func (*FileChooserButton) ConnectFileSet

func (button *FileChooserButton) ConnectFileSet(f func()) coreglib.SignalHandle

ConnectFileSet signal is emitted when the user selects a file.

Note that this signal is only emitted when the user changes the file.

func (*FileChooserButton) FocusOnClick deprecated

func (button *FileChooserButton) FocusOnClick() bool

FocusOnClick returns whether the button grabs focus when it is clicked with the mouse. See gtk_file_chooser_button_set_focus_on_click().

Deprecated: Use gtk_widget_get_focus_on_click() instead.

The function returns the following values:

  • ok: TRUE if the button grabs focus when it is clicked with the mouse.

func (*FileChooserButton) SetFocusOnClick deprecated

func (button *FileChooserButton) SetFocusOnClick(focusOnClick bool)

SetFocusOnClick sets whether the button will grab focus when it is clicked with the mouse. Making mouse clicks not grab focus is useful in places like toolbars where you don’t want the keyboard focus removed from the main area of the application.

Deprecated: Use gtk_widget_set_focus_on_click() instead.

The function takes the following parameters:

  • focusOnClick: whether the button grabs focus when clicked with the mouse.

func (*FileChooserButton) SetTitle

func (button *FileChooserButton) SetTitle(title string)

SetTitle modifies the title of the browse dialog used by button.

The function takes the following parameters:

  • title: new browse dialog title.

func (*FileChooserButton) SetWidthChars

func (button *FileChooserButton) SetWidthChars(nChars int)

SetWidthChars sets the width (in characters) that button will use to n_chars.

The function takes the following parameters:

  • nChars: new width, in characters.

func (*FileChooserButton) Title

func (button *FileChooserButton) Title() string

Title retrieves the title of the browse dialog used by button. The returned value should not be modified or freed.

The function returns the following values:

  • utf8: pointer to the browse dialog’s title.

func (*FileChooserButton) WidthChars

func (button *FileChooserButton) WidthChars() int

WidthChars retrieves the width in characters of the button widget’s entry and/or label.

The function returns the following values:

  • gint: integer width (in characters) that the button will use to size itself.

type FileChooserButtonClass added in v0.0.5

type FileChooserButtonClass struct {
	// contains filtered or unexported fields
}

FileChooserButtonClass: instance of this type is always passed by reference.

func (*FileChooserButtonClass) ParentClass added in v0.0.5

func (f *FileChooserButtonClass) ParentClass() *BoxClass

ParentClass: parent class.

type FileChooserButtonOverrides added in v0.0.5

type FileChooserButtonOverrides struct {
	FileSet func()
}

FileChooserButtonOverrides contains methods that are overridable.

type FileChooserConfirmation

type FileChooserConfirmation C.gint

FileChooserConfirmation: used as a return value of handlers for the FileChooser::confirm-overwrite signal of a FileChooser. This value determines whether the file chooser will present the stock confirmation dialog, accept the user’s choice of a filename, or let the user choose another filename.

const (
	// FileChooserConfirmationConfirm: file chooser will present its stock
	// dialog to confirm about overwriting an existing file.
	FileChooserConfirmationConfirm FileChooserConfirmation = iota
	// FileChooserConfirmationAcceptFilename: file chooser will terminate and
	// accept the user’s choice of a file name.
	FileChooserConfirmationAcceptFilename
	// FileChooserConfirmationSelectAgain: file chooser will continue running,
	// so as to let the user select another file name.
	FileChooserConfirmationSelectAgain
)

func (FileChooserConfirmation) String

func (f FileChooserConfirmation) String() string

String returns the name in string for FileChooserConfirmation.

type FileChooserDialog

type FileChooserDialog struct {
	Dialog

	*coreglib.Object
	FileChooser
	// contains filtered or unexported fields
}

FileChooserDialog is a dialog box suitable for use with “File/Open” or “File/Save as” commands. This widget works by putting a FileChooserWidget inside a Dialog. It exposes the FileChooser interface, so you can use all of the FileChooser functions on the file chooser dialog as well as those for Dialog.

Note that FileChooserDialog does not have any methods of its own. Instead, you should use the functions that work on a FileChooser.

If you want to integrate well with the platform you should use the FileChooserNative API, which will use a platform-specific dialog if available and fall back to GtkFileChooserDialog otherwise.

Typical usage

In the simplest of cases, you can the following code to use FileChooserDialog to select a file for opening:

GtkWidget *dialog;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
gint res;

dialog = gtk_file_chooser_dialog_new ("Open File",
                                      parent_window,
                                      action,
                                      _("_Cancel"),
                                      GTK_RESPONSE_CANCEL,
                                      _("_Open"),
                                      GTK_RESPONSE_ACCEPT,
                                      NULL);

res = gtk_dialog_run (GTK_DIALOG (dialog));
if (res == GTK_RESPONSE_ACCEPT)
  {
    char *filename;
    GtkFileChooser *chooser = GTK_FILE_CHOOSER (dialog);
    filename = gtk_file_chooser_get_filename (chooser);
    open_file (filename);
    g_free (filename);
  }

gtk_widget_destroy (dialog);

To use a dialog for saving, you can use this:

GtkWidget *dialog;
GtkFileChooser *chooser;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;
gint res;

dialog = gtk_file_chooser_dialog_new ("Save File",
                                      parent_window,
                                      action,
                                      _("_Cancel"),
                                      GTK_RESPONSE_CANCEL,
                                      _("_Save"),
                                      GTK_RESPONSE_ACCEPT,
                                      NULL);
chooser = GTK_FILE_CHOOSER (dialog);

gtk_file_chooser_set_do_overwrite_confirmation (chooser, TRUE);

if (user_edited_a_new_document)
  gtk_file_chooser_set_current_name (chooser,
                                     _("Untitled document"));
else
  gtk_file_chooser_set_filename (chooser,
                                 existing_filename);

res = gtk_dialog_run (GTK_DIALOG (dialog));
if (res == GTK_RESPONSE_ACCEPT)
  {
    char *filename;

    filename = gtk_file_chooser_get_filename (chooser);
    save_to_file (filename);
    g_free (filename);
  }

gtk_widget_destroy (dialog);

Setting up a file chooser dialog

There are various cases in which you may need to use a FileChooserDialog:

- To select a file for opening. Use K_FILE_CHOOSER_ACTION_OPEN.

- To save a file for the first time. Use K_FILE_CHOOSER_ACTION_SAVE, and suggest a name such as “Untitled” with gtk_file_chooser_set_current_name().

- To save a file under a different name. Use K_FILE_CHOOSER_ACTION_SAVE, and set the existing filename with gtk_file_chooser_set_filename().

- To choose a folder instead of a file. Use K_FILE_CHOOSER_ACTION_SELECT_FOLDER.

Note that old versions of the file chooser’s documentation suggested using gtk_file_chooser_set_current_folder() in various situations, with the intention of letting the application suggest a reasonable default folder. This is no longer considered to be a good policy, as now the file chooser is able to make good suggestions on its own. In general, you should only cause the file chooser to show a specific folder when it is appropriate to use gtk_file_chooser_set_filename(), i.e. when you are doing a Save As command and you already have a file saved somewhere.

Response Codes

FileChooserDialog inherits from Dialog, so buttons that go in its action area have response codes such as K_RESPONSE_ACCEPT and K_RESPONSE_CANCEL. For example, you could call gtk_file_chooser_dialog_new() as follows:

GtkWidget *dialog;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;

dialog = gtk_file_chooser_dialog_new ("Open File",
                                      parent_window,
                                      action,
                                      _("_Cancel"),
                                      GTK_RESPONSE_CANCEL,
                                      _("_Open"),
                                      GTK_RESPONSE_ACCEPT,
                                      NULL);

This will create buttons for “Cancel” and “Open” that use stock response identifiers from ResponseType. For most dialog boxes you can use your own custom response codes rather than the ones in ResponseType, but FileChooserDialog assumes that its “accept”-type action, e.g. an “Open” or “Save” button, will have one of the following response codes:

- K_RESPONSE_ACCEPT

- K_RESPONSE_OK

- K_RESPONSE_YES

- K_RESPONSE_APPLY

This is because FileChooserDialog must intercept responses and switch to folders if appropriate, rather than letting the dialog terminate — the implementation uses these known response codes to know which responses can be blocked if appropriate.

To summarize, make sure you use a [stock response code][gtkfilechooserdialog-responses] when you use FileChooserDialog to ensure proper operation.

type FileChooserDialogClass added in v0.0.5

type FileChooserDialogClass struct {
	// contains filtered or unexported fields
}

FileChooserDialogClass: instance of this type is always passed by reference.

func (*FileChooserDialogClass) ParentClass added in v0.0.5

func (f *FileChooserDialogClass) ParentClass() *DialogClass

type FileChooserDialogOverrides added in v0.0.5

type FileChooserDialogOverrides struct {
}

FileChooserDialogOverrides contains methods that are overridable.

type FileChooserError

type FileChooserError C.gint

FileChooserError: these identify the various errors that can occur while calling FileChooser functions.

const (
	// FileChooserErrorNonexistent indicates that a file does not exist.
	FileChooserErrorNonexistent FileChooserError = iota
	// FileChooserErrorBadFilename indicates a malformed filename.
	FileChooserErrorBadFilename
	// FileChooserErrorAlreadyExists indicates a duplicate path (e.g. when
	// adding a bookmark).
	FileChooserErrorAlreadyExists
	// FileChooserErrorIncompleteHostname indicates an incomplete hostname (e.g.
	// "http://foo" without a slash after that).
	FileChooserErrorIncompleteHostname
)

func (FileChooserError) String

func (f FileChooserError) String() string

String returns the name in string for FileChooserError.

type FileChooserNative

type FileChooserNative struct {
	NativeDialog

	*coreglib.Object
	FileChooser
	// contains filtered or unexported fields
}

FileChooserNative is an abstraction of a dialog box suitable for use with “File/Open” or “File/Save as” commands. By default, this just uses a FileChooserDialog to implement the actual dialog. However, on certain platforms, such as Windows and macOS, the native platform file chooser is used instead. When the application is running in a sandboxed environment without direct filesystem access (such as Flatpak), FileChooserNative may call the proper APIs (portals) to let the user choose a file and make it available to the application.

While the API of FileChooserNative closely mirrors FileChooserDialog, the main difference is that there is no access to any Window or Widget for the dialog. This is required, as there may not be one in the case of a platform native dialog. Showing, hiding and running the dialog is handled by the NativeDialog functions.

Typical usage

In the simplest of cases, you can the following code to use FileChooserDialog to select a file for opening:

GtkFileChooserNative *native;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
gint res;

native = gtk_file_chooser_native_new ("Open File",
                                      parent_window,
                                      action,
                                      "_Open",
                                      "_Cancel");

res = gtk_native_dialog_run (GTK_NATIVE_DIALOG (native));
if (res == GTK_RESPONSE_ACCEPT)
  {
    char *filename;
    GtkFileChooser *chooser = GTK_FILE_CHOOSER (native);
    filename = gtk_file_chooser_get_filename (chooser);
    open_file (filename);
    g_free (filename);
  }

g_object_unref (native);

To use a dialog for saving, you can use this:

GtkFileChooserNative *native;
GtkFileChooser *chooser;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;
gint res;

native = gtk_file_chooser_native_new ("Save File",
                                      parent_window,
                                      action,
                                      "_Save",
                                      "_Cancel");
chooser = GTK_FILE_CHOOSER (native);

gtk_file_chooser_set_do_overwrite_confirmation (chooser, TRUE);

if (user_edited_a_new_document)
  gtk_file_chooser_set_current_name (chooser,
                                     _("Untitled document"));
else
  gtk_file_chooser_set_filename (chooser,
                                 existing_filename);

res = gtk_native_dialog_run (GTK_NATIVE_DIALOG (native));
if (res == GTK_RESPONSE_ACCEPT)
  {
    char *filename;

    filename = gtk_file_chooser_get_filename (chooser);
    save_to_file (filename);
    g_free (filename);
  }

g_object_unref (native);

For more information on how to best set up a file dialog, see FileChooserDialog.

Response Codes

FileChooserNative inherits from NativeDialog, which means it will return K_RESPONSE_ACCEPT if the user accepted, and K_RESPONSE_CANCEL if he pressed cancel. It can also return K_RESPONSE_DELETE_EVENT if the window was unexpectedly closed.

Differences from FileChooserDialog ## {#gtkfilechooserdialognative-differences}

There are a few things in the GtkFileChooser API that are not possible to use with FileChooserNative, as such use would prohibit the use of a native dialog.

There is no support for the signals that are emitted when the user navigates in the dialog, including: * FileChooser::current-folder-changed * FileChooser::selection-changed * FileChooser::file-activated * FileChooser::confirm-overwrite

You can also not use the methods that directly control user navigation: * gtk_file_chooser_unselect_filename() * gtk_file_chooser_select_all() * gtk_file_chooser_unselect_all()

If you need any of the above you will have to use FileChooserDialog directly.

No operations that change the the dialog work while the dialog is visible. Set all the properties that are required before showing the dialog.

Win32 details

On windows the IFileDialog implementation (added in Windows Vista) is used. It supports many of the features that FileChooserDialog does, but there are some things it does not handle:

* Extra widgets added with gtk_file_chooser_set_extra_widget().

* Use of custom previews by connecting to FileChooser::update-preview.

* Any FileFilter added using a mimetype or custom filter.

If any of these features are used the regular FileChooserDialog will be used in place of the native one.

Portal details

When the org.freedesktop.portal.FileChooser portal is available on the session bus, it is used to bring up an out-of-process file chooser. Depending on the kind of session the application is running in, this may or may not be a GTK+ file chooser. In this situation, the following things are not supported and will be silently ignored:

* Extra widgets added with gtk_file_chooser_set_extra_widget().

* Use of custom previews by connecting to FileChooser::update-preview.

* Any FileFilter added with a custom filter.

macOS details

On macOS the NSSavePanel and NSOpenPanel classes are used to provide native file chooser dialogs. Some features provided by FileChooserDialog are not supported:

* Extra widgets added with gtk_file_chooser_set_extra_widget(), unless the widget is an instance of GtkLabel, in which case the label text will be used to set the NSSavePanel message instance property.

* Use of custom previews by connecting to FileChooser::update-preview.

* Any FileFilter added with a custom filter.

* Shortcut folders.

func NewFileChooserNative

func NewFileChooserNative(title string, parent *Window, action FileChooserAction, acceptLabel, cancelLabel string) *FileChooserNative

NewFileChooserNative creates a new FileChooserNative.

The function takes the following parameters:

  • title (optional): title of the native, or NULL.
  • parent (optional): transient parent of the native, or NULL.
  • action: open or save mode for the dialog.
  • acceptLabel (optional): text to go in the accept button, or NULL for the default.
  • cancelLabel (optional): text to go in the cancel button, or NULL for the default.

The function returns the following values:

  • fileChooserNative: new FileChooserNative.

func (*FileChooserNative) AcceptLabel

func (self *FileChooserNative) AcceptLabel() string

AcceptLabel retrieves the custom label text for the accept button.

The function returns the following values:

  • utf8 (optional): custom label, or NULL for the default. This string is owned by GTK+ and should not be modified or freed.

func (*FileChooserNative) CancelLabel

func (self *FileChooserNative) CancelLabel() string

CancelLabel retrieves the custom label text for the cancel button.

The function returns the following values:

  • utf8 (optional): custom label, or NULL for the default. This string is owned by GTK+ and should not be modified or freed.

func (*FileChooserNative) SetAcceptLabel

func (self *FileChooserNative) SetAcceptLabel(acceptLabel string)

SetAcceptLabel sets the custom label text for the accept button.

If characters in label are preceded by an underscore, they are underlined. If you need a literal underscore character in a label, use “__” (two underscores). The first underlined character represents a keyboard accelerator called a mnemonic. Pressing Alt and that key activates the button.

The function takes the following parameters:

  • acceptLabel (optional): custom label or NULL for the default.

func (*FileChooserNative) SetCancelLabel

func (self *FileChooserNative) SetCancelLabel(cancelLabel string)

SetCancelLabel sets the custom label text for the cancel button.

If characters in label are preceded by an underscore, they are underlined. If you need a literal underscore character in a label, use “__” (two underscores). The first underlined character represents a keyboard accelerator called a mnemonic. Pressing Alt and that key activates the button.

The function takes the following parameters:

  • cancelLabel (optional): custom label or NULL for the default.

type FileChooserNativeClass added in v0.0.5

type FileChooserNativeClass struct {
	// contains filtered or unexported fields
}

FileChooserNativeClass: instance of this type is always passed by reference.

func (*FileChooserNativeClass) ParentClass added in v0.0.5

func (f *FileChooserNativeClass) ParentClass() *NativeDialogClass

type FileChooserNativeOverrides added in v0.0.5

type FileChooserNativeOverrides struct {
}

FileChooserNativeOverrides contains methods that are overridable.

type FileChooserWidget

type FileChooserWidget struct {
	Box

	*coreglib.Object
	FileChooser
	// contains filtered or unexported fields
}

FileChooserWidget is a widget for choosing files. It exposes the FileChooser interface, and you should use the methods of this interface to interact with the widget.

CSS nodes

GtkFileChooserWidget has a single CSS node with name filechooser.

func NewFileChooserWidget

func NewFileChooserWidget(action FileChooserAction) *FileChooserWidget

NewFileChooserWidget creates a new FileChooserWidget. This is a file chooser widget that can be embedded in custom windows, and it is the same widget that is used by FileChooserDialog.

The function takes the following parameters:

  • action: open or save mode for the widget.

The function returns the following values:

  • fileChooserWidget: new FileChooserWidget.

func (*FileChooserWidget) ConnectDesktopFolder

func (v *FileChooserWidget) ConnectDesktopFolder(f func()) coreglib.SignalHandle

ConnectDesktopFolder signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to make the file chooser show the user's Desktop folder in the file list.

The default binding for this signal is Alt + D.

func (*FileChooserWidget) ConnectDownFolder

func (v *FileChooserWidget) ConnectDownFolder(f func()) coreglib.SignalHandle

ConnectDownFolder signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to make the file chooser go to a child of the current folder in the file hierarchy. The subfolder that will be used is displayed in the path bar widget of the file chooser. For example, if the path bar is showing "/foo/bar/baz", with bar currently displayed, then this will cause the file chooser to switch to the "baz" subfolder.

The default binding for this signal is Alt + Down.

func (*FileChooserWidget) ConnectHomeFolder

func (v *FileChooserWidget) ConnectHomeFolder(f func()) coreglib.SignalHandle

ConnectHomeFolder signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to make the file chooser show the user's home folder in the file list.

The default binding for this signal is Alt + Home.

func (*FileChooserWidget) ConnectLocationPopup

func (v *FileChooserWidget) ConnectLocationPopup(f func(path string)) coreglib.SignalHandle

ConnectLocationPopup signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to make the file chooser show a "Location" prompt which the user can use to manually type the name of the file he wishes to select.

The default bindings for this signal are Control + L with a path string of "" (the empty string). It is also bound to / with a path string of "/" (a slash): this lets you type / and immediately type a path name. On Unix systems, this is bound to ~ (tilde) with a path string of "~" itself for access to home directories.

func (*FileChooserWidget) ConnectLocationPopupOnPaste

func (v *FileChooserWidget) ConnectLocationPopupOnPaste(f func()) coreglib.SignalHandle

ConnectLocationPopupOnPaste signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to make the file chooser show a "Location" prompt when the user pastes into a FileChooserWidget.

The default binding for this signal is Control + V.

func (*FileChooserWidget) ConnectLocationTogglePopup

func (v *FileChooserWidget) ConnectLocationTogglePopup(f func()) coreglib.SignalHandle

ConnectLocationTogglePopup signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to toggle the visibility of a "Location" prompt which the user can use to manually type the name of the file he wishes to select.

The default binding for this signal is Control + L.

func (*FileChooserWidget) ConnectPlacesShortcut

func (v *FileChooserWidget) ConnectPlacesShortcut(f func()) coreglib.SignalHandle

ConnectPlacesShortcut signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to move the focus to the places sidebar.

The default binding for this signal is Alt + P.

func (*FileChooserWidget) ConnectQuickBookmark

func (v *FileChooserWidget) ConnectQuickBookmark(f func(bookmarkIndex int)) coreglib.SignalHandle

ConnectQuickBookmark signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to make the file chooser switch to the bookmark specified in the bookmark_index parameter. For example, if you have three bookmarks, you can pass 0, 1, 2 to this signal to switch to each of them, respectively.

The default binding for this signal is Alt + 1, Alt + 2, etc. until Alt + 0. Note that in the default binding, that Alt + 1 is actually defined to switch to the bookmark at index 0, and so on successively; Alt + 0 is defined to switch to the bookmark at index 10.

func (*FileChooserWidget) ConnectRecentShortcut

func (v *FileChooserWidget) ConnectRecentShortcut(f func()) coreglib.SignalHandle

ConnectRecentShortcut signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to make the file chooser show the Recent location.

The default binding for this signal is Alt + R.

func (*FileChooserWidget) ConnectSearchShortcut

func (v *FileChooserWidget) ConnectSearchShortcut(f func()) coreglib.SignalHandle

ConnectSearchShortcut signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to make the file chooser show the search entry.

The default binding for this signal is Alt + S.

func (*FileChooserWidget) ConnectShowHidden

func (v *FileChooserWidget) ConnectShowHidden(f func()) coreglib.SignalHandle

ConnectShowHidden signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to make the file chooser display hidden files.

The default binding for this signal is Control + H.

func (*FileChooserWidget) ConnectUpFolder

func (v *FileChooserWidget) ConnectUpFolder(f func()) coreglib.SignalHandle

ConnectUpFolder signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

This is used to make the file chooser go to the parent of the current folder in the file hierarchy.

The default binding for this signal is Alt + Up.

type FileChooserWidgetClass added in v0.0.5

type FileChooserWidgetClass struct {
	// contains filtered or unexported fields
}

FileChooserWidgetClass: instance of this type is always passed by reference.

func (*FileChooserWidgetClass) ParentClass added in v0.0.5

func (f *FileChooserWidgetClass) ParentClass() *BoxClass

ParentClass: parent class.

type FileChooserWidgetOverrides added in v0.0.5

type FileChooserWidgetOverrides struct {
}

FileChooserWidgetOverrides contains methods that are overridable.

type FileChooserer

type FileChooserer interface {
	coreglib.Objector

	// AddChoice adds a 'choice' to the file chooser.
	AddChoice(id, label string, options, optionLabels []string)
	// AddFilter adds filter to the list of filters that the user can select
	// between.
	AddFilter(filter *FileFilter)
	// AddShortcutFolder adds a folder to be displayed with the shortcut folders
	// in a file chooser.
	AddShortcutFolder(folder string) error
	// AddShortcutFolderURI adds a folder URI to be displayed with the shortcut
	// folders in a file chooser.
	AddShortcutFolderURI(uri string) error
	// Action gets the type of operation that the file chooser is performing;
	// see gtk_file_chooser_set_action().
	Action() FileChooserAction
	// Choice gets the currently selected option in the 'choice' with the given
	// ID.
	Choice(id string) string
	// CreateFolders gets whether file choser will offer to create new folders.
	CreateFolders() bool
	// CurrentFolder gets the current folder of chooser as a local filename.
	CurrentFolder() string
	// CurrentFolderFile gets the current folder of chooser as #GFile.
	CurrentFolderFile() *gio.File
	// CurrentFolderURI gets the current folder of chooser as an URI.
	CurrentFolderURI() string
	// CurrentName gets the current name in the file selector, as entered by the
	// user in the text entry for “Name”.
	CurrentName() string
	// DoOverwriteConfirmation queries whether a file chooser is set to confirm
	// for overwriting when the user types a file name that already exists.
	DoOverwriteConfirmation() bool
	// ExtraWidget gets the current extra widget; see
	// gtk_file_chooser_set_extra_widget().
	ExtraWidget() Widgetter
	// File gets the #GFile for the currently selected file in the file
	// selector.
	File() *gio.File
	// Filename gets the filename for the currently selected file in the file
	// selector.
	Filename() string
	// Filenames lists all the selected files and subfolders in the current
	// folder of chooser.
	Filenames() []string
	// Files lists all the selected files and subfolders in the current folder
	// of chooser as #GFile.
	Files() []*gio.File
	// Filter gets the current filter; see gtk_file_chooser_set_filter().
	Filter() *FileFilter
	// LocalOnly gets whether only local files can be selected in the file
	// selector.
	LocalOnly() bool
	// PreviewFile gets the #GFile that should be previewed in a custom preview
	// Internal function, see gtk_file_chooser_get_preview_uri().
	PreviewFile() *gio.File
	// PreviewFilename gets the filename that should be previewed in a custom
	// preview widget.
	PreviewFilename() string
	// PreviewURI gets the URI that should be previewed in a custom preview
	// widget.
	PreviewURI() string
	// PreviewWidget gets the current preview widget; see
	// gtk_file_chooser_set_preview_widget().
	PreviewWidget() Widgetter
	// PreviewWidgetActive gets whether the preview widget set by
	// gtk_file_chooser_set_preview_widget() should be shown for the current
	// filename.
	PreviewWidgetActive() bool
	// SelectMultiple gets whether multiple files can be selected in the file
	// selector.
	SelectMultiple() bool
	// ShowHidden gets whether hidden files and folders are displayed in the
	// file selector.
	ShowHidden() bool
	// URI gets the URI for the currently selected file in the file selector.
	URI() string
	// URIs lists all the selected files and subfolders in the current folder of
	// chooser.
	URIs() []string
	// UsePreviewLabel gets whether a stock label should be drawn with the name
	// of the previewed file.
	UsePreviewLabel() bool
	// ListFilters lists the current set of user-selectable filters; see
	// gtk_file_chooser_add_filter(), gtk_file_chooser_remove_filter().
	ListFilters() []*FileFilter
	// ListShortcutFolderURIs queries the list of shortcut folders in the file
	// chooser, as set by gtk_file_chooser_add_shortcut_folder_uri().
	ListShortcutFolderURIs() []string
	// ListShortcutFolders queries the list of shortcut folders in the file
	// chooser, as set by gtk_file_chooser_add_shortcut_folder().
	ListShortcutFolders() []string
	// RemoveChoice removes a 'choice' that has been added with
	// gtk_file_chooser_add_choice().
	RemoveChoice(id string)
	// RemoveFilter removes filter from the list of filters that the user can
	// select between.
	RemoveFilter(filter *FileFilter)
	// RemoveShortcutFolder removes a folder from a file chooser’s list of
	// shortcut folders.
	RemoveShortcutFolder(folder string) error
	// RemoveShortcutFolderURI removes a folder URI from a file chooser’s list
	// of shortcut folders.
	RemoveShortcutFolderURI(uri string) error
	// SelectAll selects all the files in the current folder of a file chooser.
	SelectAll()
	// SelectFile selects the file referred to by file.
	SelectFile(file gio.Filer) error
	// SelectFilename selects a filename.
	SelectFilename(filename string) bool
	// SelectURI selects the file to by uri.
	SelectURI(uri string) bool
	// SetAction sets the type of operation that the chooser is performing;
	// the user interface is adapted to suit the selected action.
	SetAction(action FileChooserAction)
	// SetChoice selects an option in a 'choice' that has been added with
	// gtk_file_chooser_add_choice().
	SetChoice(id, option string)
	// SetCreateFolders sets whether file choser will offer to create new
	// folders.
	SetCreateFolders(createFolders bool)
	// SetCurrentFolder sets the current folder for chooser from a local
	// filename.
	SetCurrentFolder(filename string) bool
	// SetCurrentFolderFile sets the current folder for chooser from a #GFile.
	SetCurrentFolderFile(file gio.Filer) error
	// SetCurrentFolderURI sets the current folder for chooser from an URI.
	SetCurrentFolderURI(uri string) bool
	// SetCurrentName sets the current name in the file selector, as if entered
	// by the user.
	SetCurrentName(name string)
	// SetDoOverwriteConfirmation sets whether a file chooser in
	// GTK_FILE_CHOOSER_ACTION_SAVE mode will present a confirmation dialog if
	// the user types a file name that already exists.
	SetDoOverwriteConfirmation(doOverwriteConfirmation bool)
	// SetExtraWidget sets an application-supplied widget to provide extra
	// options to the user.
	SetExtraWidget(extraWidget Widgetter)
	// SetFile sets file as the current filename for the file chooser,
	// by changing to the file’s parent folder and actually selecting the file
	// in list.
	SetFile(file gio.Filer) error
	// SetFilename sets filename as the current filename for the file chooser,
	// by changing to the file’s parent folder and actually selecting the file
	// in list; all other files will be unselected.
	SetFilename(filename string) bool
	// SetFilter sets the current filter; only the files that pass the filter
	// will be displayed.
	SetFilter(filter *FileFilter)
	// SetLocalOnly sets whether only local files can be selected in the file
	// selector.
	SetLocalOnly(localOnly bool)
	// SetPreviewWidget sets an application-supplied widget to use to display a
	// custom preview of the currently selected file.
	SetPreviewWidget(previewWidget Widgetter)
	// SetPreviewWidgetActive sets whether the preview widget set by
	// gtk_file_chooser_set_preview_widget() should be shown for the current
	// filename.
	SetPreviewWidgetActive(active bool)
	// SetSelectMultiple sets whether multiple files can be selected in the file
	// selector.
	SetSelectMultiple(selectMultiple bool)
	// SetShowHidden sets whether hidden files and folders are displayed in the
	// file selector.
	SetShowHidden(showHidden bool)
	// SetURI sets the file referred to by uri as the current file for the file
	// chooser, by changing to the URI’s parent folder and actually selecting
	// the URI in the list.
	SetURI(uri string) bool
	// SetUsePreviewLabel sets whether the file chooser should display a stock
	// label with the name of the file that is being previewed; the default is
	// TRUE.
	SetUsePreviewLabel(useLabel bool)
	// UnselectAll unselects all the files in the current folder of a file
	// chooser.
	UnselectAll()
	// UnselectFile unselects the file referred to by file.
	UnselectFile(file gio.Filer)
	// UnselectFilename unselects a currently selected filename.
	UnselectFilename(filename string)
	// UnselectURI unselects the file referred to by uri.
	UnselectURI(uri string)

	// Confirm-overwrite: this signal gets emitted whenever it is appropriate to
	// present a confirmation dialog when the user has selected a file name that
	// already exists.
	ConnectConfirmOverwrite(func() (fileChooserConfirmation FileChooserConfirmation)) coreglib.SignalHandle
	// Current-folder-changed: this signal is emitted when the current folder in
	// a FileChooser changes.
	ConnectCurrentFolderChanged(func()) coreglib.SignalHandle
	// File-activated: this signal is emitted when the user "activates" a file
	// in the file chooser.
	ConnectFileActivated(func()) coreglib.SignalHandle
	// Selection-changed: this signal is emitted when there is a change in the
	// set of selected files in a FileChooser.
	ConnectSelectionChanged(func()) coreglib.SignalHandle
	// Update-preview: this signal is emitted when the preview in a file chooser
	// should be regenerated.
	ConnectUpdatePreview(func()) coreglib.SignalHandle
}

FileChooserer describes FileChooser's interface methods.

type FileFilter

type FileFilter struct {
	coreglib.InitiallyUnowned

	*coreglib.Object
	Buildable
	// contains filtered or unexported fields
}

FileFilter can be used to restrict the files being shown in a FileChooser. Files can be filtered based on their name (with gtk_file_filter_add_pattern()), on their mime type (with gtk_file_filter_add_mime_type()), or by a custom filter function (with gtk_file_filter_add_custom()).

Filtering by mime types handles aliasing and subclassing of mime types; e.g. a filter for text/plain also matches a file with mime type application/rtf, since application/rtf is a subclass of text/plain. Note that FileFilter allows wildcards for the subtype of a mime type, so you can e.g. filter for image/\*.

Normally, filters are used by adding them to a FileChooser, see gtk_file_chooser_add_filter(), but it is also possible to manually use a filter on a file with gtk_file_filter_filter().

GtkFileFilter as GtkBuildable

The GtkFileFilter implementation of the GtkBuildable interface supports adding rules using the <mime-types>, <patterns> and <applications> elements and listing the rules within. Specifying a <mime-type> or <pattern> has the same effect as as calling gtk_file_filter_add_mime_type() or gtk_file_filter_add_pattern().

An example of a UI definition fragment specifying GtkFileFilter rules:

<object class="GtkFileFilter">
  <mime-types>
    <mime-type>text/plain</mime-type>
    <mime-type>image/ *</mime-type>
  </mime-types>
  <patterns>
    <pattern>*.txt</pattern>
    <pattern>*.png</pattern>
  </patterns>
</object>.

func NewFileFilter

func NewFileFilter() *FileFilter

NewFileFilter creates a new FileFilter with no rules added to it. Such a filter doesn’t accept any files, so is not particularly useful until you add rules with gtk_file_filter_add_mime_type(), gtk_file_filter_add_pattern(), or gtk_file_filter_add_custom(). To create a filter that accepts any file, use:

GtkFileFilter *filter = gtk_file_filter_new ();
gtk_file_filter_add_pattern (filter, "*");.

The function returns the following values:

  • fileFilter: new FileFilter.

func NewFileFilterFromGVariant

func NewFileFilterFromGVariant(variant *glib.Variant) *FileFilter

NewFileFilterFromGVariant: deserialize a file filter from an a{sv} variant in the format produced by gtk_file_filter_to_gvariant().

The function takes the following parameters:

  • variant: a{sv} #GVariant.

The function returns the following values:

  • fileFilter: new FileFilter object.

func (*FileFilter) AddCustom

func (filter *FileFilter) AddCustom(needed FileFilterFlags, fn FileFilterFunc)

AddCustom adds rule to a filter that allows files based on a custom callback function. The bitfield needed which is passed in provides information about what sorts of information that the filter function needs; this allows GTK+ to avoid retrieving expensive information when it isn’t needed by the filter.

The function takes the following parameters:

  • needed: bitfield of flags indicating the information that the custom filter function needs.
  • fn: callback function; if the function returns TRUE, then the file will be displayed.

func (*FileFilter) AddMIMEType

func (filter *FileFilter) AddMIMEType(mimeType string)

AddMIMEType adds a rule allowing a given mime type to filter.

The function takes the following parameters:

  • mimeType: name of a MIME type.

func (*FileFilter) AddPattern

func (filter *FileFilter) AddPattern(pattern string)

AddPattern adds a rule allowing a shell style glob to a filter.

The function takes the following parameters:

  • pattern: shell style glob.

func (*FileFilter) AddPixbufFormats

func (filter *FileFilter) AddPixbufFormats()

AddPixbufFormats adds a rule allowing image files in the formats supported by GdkPixbuf.

func (*FileFilter) Filter

func (filter *FileFilter) Filter(filterInfo *FileFilterInfo) bool

Filter tests whether a file should be displayed according to filter. The FileFilterInfo filter_info should include the fields returned from gtk_file_filter_get_needed().

This function will not typically be used by applications; it is intended principally for use in the implementation of FileChooser.

The function takes the following parameters:

  • filterInfo containing information about a file.

The function returns the following values:

  • ok: TRUE if the file should be displayed.

func (*FileFilter) Name

func (filter *FileFilter) Name() string

Name gets the human-readable name for the filter. See gtk_file_filter_set_name().

The function returns the following values:

  • utf8 (optional): human-readable name of the filter, or NULL. This value is owned by GTK+ and must not be modified or freed.

func (*FileFilter) Needed

func (filter *FileFilter) Needed() FileFilterFlags

Needed gets the fields that need to be filled in for the FileFilterInfo passed to gtk_file_filter_filter()

This function will not typically be used by applications; it is intended principally for use in the implementation of FileChooser.

The function returns the following values:

  • fileFilterFlags: bitfield of flags indicating needed fields when calling gtk_file_filter_filter().

func (*FileFilter) SetName

func (filter *FileFilter) SetName(name string)

SetName sets the human-readable name of the filter; this is the string that will be displayed in the file selector user interface if there is a selectable list of filters.

The function takes the following parameters:

  • name (optional) for the filter, or NULL to remove any existing name.

func (*FileFilter) ToGVariant

func (filter *FileFilter) ToGVariant() *glib.Variant

ToGVariant: serialize a file filter to an a{sv} variant.

The function returns the following values:

  • variant: new, floating, #GVariant.

type FileFilterFlags

type FileFilterFlags C.guint

FileFilterFlags: these flags indicate what parts of a FileFilterInfo struct are filled or need to be filled.

const (
	// FileFilterFilename: filename of the file being tested.
	FileFilterFilename FileFilterFlags = 0b1
	// FileFilterURI: URI for the file being tested.
	FileFilterURI FileFilterFlags = 0b10
	// FileFilterDisplayName: string that will be used to display the file in
	// the file chooser.
	FileFilterDisplayName FileFilterFlags = 0b100
	// FileFilterMIMEType: mime type of the file.
	FileFilterMIMEType FileFilterFlags = 0b1000
)

func (FileFilterFlags) Has

func (f FileFilterFlags) Has(other FileFilterFlags) bool

Has returns true if f contains other.

func (FileFilterFlags) String

func (f FileFilterFlags) String() string

String returns the names in string for FileFilterFlags.

type FileFilterFunc

type FileFilterFunc func(filterInfo *FileFilterInfo) (ok bool)

FileFilterFunc: type of function that is used with custom filters, see gtk_file_filter_add_custom().

type FileFilterInfo

type FileFilterInfo struct {
	// contains filtered or unexported fields
}

FileFilterInfo is used to pass information about the tested file to gtk_file_filter_filter().

An instance of this type is always passed by reference.

func (*FileFilterInfo) Contains

func (f *FileFilterInfo) Contains() FileFilterFlags

Contains flags indicating which of the following fields need are filled.

func (*FileFilterInfo) DisplayName

func (f *FileFilterInfo) DisplayName() string

DisplayName: string that will be used to display the file in the file chooser.

func (*FileFilterInfo) Filename

func (f *FileFilterInfo) Filename() string

Filename: filename of the file being tested.

func (*FileFilterInfo) MIMEType

func (f *FileFilterInfo) MIMEType() string

MIMEType: mime type of the file.

func (*FileFilterInfo) URI

func (f *FileFilterInfo) URI() string

URI for the file being tested.

type Fixed

type Fixed struct {
	Container
	// contains filtered or unexported fields
}

Fixed widget is a container which can place child widgets at fixed positions and with fixed sizes, given in pixels. Fixed performs no automatic layout management.

For most applications, you should not use this container! It keeps you from having to learn about the other GTK+ containers, but it results in broken applications. With Fixed, the following things will result in truncated text, overlapping widgets, and other display bugs:

- Themes, which may change widget sizes.

- Fonts other than the one you used to write the app will of course change the size of widgets containing text; keep in mind that users may use a larger font because of difficulty reading the default, or they may be using a different OS that provides different fonts.

- Translation of text into other languages changes its size. Also, display of non-English text will use a different font in many cases.

In addition, Fixed does not pay attention to text direction and thus may produce unwanted results if your app is run under right-to-left languages such as Hebrew or Arabic. That is: normally GTK+ will order containers appropriately for the text direction, e.g. to put labels to the right of the thing they label when using an RTL language, but it can’t do that with Fixed. So if you need to reorder widgets depending on the text direction, you would need to manually detect it and adjust child positions accordingly.

Finally, fixed positioning makes it kind of annoying to add/remove GUI elements, since you have to reposition all the other elements. This is a long-term maintenance problem for your application.

If you know none of these things are an issue for your application, and prefer the simplicity of Fixed, by all means use the widget. But you should be aware of the tradeoffs.

See also Layout, which shares the ability to perform fixed positioning of child widgets and additionally adds custom drawing and scrollability.

func NewFixed

func NewFixed() *Fixed

NewFixed creates a new Fixed.

The function returns the following values:

  • fixed: new Fixed.

func (*Fixed) Move

func (fixed *Fixed) Move(widget Widgetter, x, y int)

Move moves a child of a Fixed container to the given position.

The function takes the following parameters:

  • widget: child widget.
  • x: horizontal position to move the widget to.
  • y: vertical position to move the widget to.

func (*Fixed) Put

func (fixed *Fixed) Put(widget Widgetter, x, y int)

Put adds a widget to a Fixed container at the given position.

The function takes the following parameters:

  • widget to add.
  • x: horizontal position to place the widget at.
  • y: vertical position to place the widget at.

type FixedChild

type FixedChild struct {
	// contains filtered or unexported fields
}

FixedChild: instance of this type is always passed by reference.

func (*FixedChild) SetX

func (f *FixedChild) SetX(x int)

func (*FixedChild) SetY

func (f *FixedChild) SetY(y int)

func (*FixedChild) Widget

func (f *FixedChild) Widget() Widgetter

func (*FixedChild) X

func (f *FixedChild) X() int

func (*FixedChild) Y

func (f *FixedChild) Y() int

type FixedClass added in v0.0.5

type FixedClass struct {
	// contains filtered or unexported fields
}

FixedClass: instance of this type is always passed by reference.

func (*FixedClass) ParentClass added in v0.0.5

func (f *FixedClass) ParentClass() *ContainerClass

type FixedOverrides added in v0.0.5

type FixedOverrides struct {
}

FixedOverrides contains methods that are overridable.

type FlowBox

type FlowBox struct {
	Container

	*coreglib.Object
	Orientable
	// contains filtered or unexported fields
}

FlowBox positions child widgets in sequence according to its orientation.

For instance, with the horizontal orientation, the widgets will be arranged from left to right, starting a new row under the previous row when necessary. Reducing the width in this case will require more rows, so a larger height will be requested.

Likewise, with the vertical orientation, the widgets will be arranged from top to bottom, starting a new column to the right when necessary. Reducing the height will require more columns, so a larger width will be requested.

The size request of a GtkFlowBox alone may not be what you expect; if you need to be able to shrink it along both axes and dynamically reflow its children, you may have to wrap it in a ScrolledWindow to enable that.

The children of a GtkFlowBox can be dynamically sorted and filtered.

Although a GtkFlowBox must have only FlowBoxChild children, you can add any kind of widget to it via gtk_container_add(), and a GtkFlowBoxChild widget will automatically be inserted between the box and the widget.

Also see ListBox.

GtkFlowBox was added in GTK+ 3.12.

CSS nodes

flowbox
├── flowboxchild
│   ╰── <child>
├── flowboxchild
│   ╰── <child>
┊
╰── [rubberband]

GtkFlowBox uses a single CSS node with name flowbox. GtkFlowBoxChild uses a single CSS node with name flowboxchild. For rubberband selection, a subnode with name rubberband is used.

func NewFlowBox

func NewFlowBox() *FlowBox

NewFlowBox creates a GtkFlowBox.

The function returns the following values:

  • flowBox: new FlowBox container.

func (*FlowBox) ActivateOnSingleClick

func (box *FlowBox) ActivateOnSingleClick() bool

ActivateOnSingleClick returns whether children activate on single clicks.

The function returns the following values:

  • ok: TRUE if children are activated on single click, FALSE otherwise.

func (*FlowBox) BindModel

func (box *FlowBox) BindModel(model gio.ListModeller, createWidgetFunc FlowBoxCreateWidgetFunc)

BindModel binds model to box.

If box was already bound to a model, that previous binding is destroyed.

The contents of box are cleared and then filled with widgets that represent items from model. box is updated whenever model changes. If model is NULL, box is left empty.

It is undefined to add or remove widgets directly (for example, with gtk_flow_box_insert() or gtk_container_add()) while box is bound to a model.

Note that using a model is incompatible with the filtering and sorting functionality in GtkFlowBox. When using a model, filtering and sorting should be implemented by the model.

The function takes the following parameters:

  • model (optional) to be bound to box.
  • createWidgetFunc: function that creates widgets for items.

func (*FlowBox) ChildAtIndex

func (box *FlowBox) ChildAtIndex(idx int) *FlowBoxChild

ChildAtIndex gets the nth child in the box.

The function takes the following parameters:

  • idx: position of the child.

The function returns the following values:

  • flowBoxChild (optional): child widget, which will always be a FlowBoxChild or NULL in case no child widget with the given index exists.

func (*FlowBox) ChildAtPos

func (box *FlowBox) ChildAtPos(x, y int) *FlowBoxChild

ChildAtPos gets the child in the (x, y) position.

The function takes the following parameters:

  • x coordinate of the child.
  • y coordinate of the child.

The function returns the following values:

  • flowBoxChild (optional): child widget, which will always be a FlowBoxChild or NULL in case no child widget exists for the given x and y coordinates.

func (*FlowBox) ColumnSpacing

func (box *FlowBox) ColumnSpacing() uint

ColumnSpacing gets the horizontal spacing.

The function returns the following values:

  • guint: horizontal spacing.

func (*FlowBox) ConnectActivateCursorChild

func (box *FlowBox) ConnectActivateCursorChild(f func()) coreglib.SignalHandle

ConnectActivateCursorChild signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user activates the box.

func (*FlowBox) ConnectChildActivated

func (box *FlowBox) ConnectChildActivated(f func(child *FlowBoxChild)) coreglib.SignalHandle

ConnectChildActivated signal is emitted when a child has been activated by the user.

func (*FlowBox) ConnectMoveCursor

func (box *FlowBox) ConnectMoveCursor(f func(step MovementStep, count int) (ok bool)) coreglib.SignalHandle

ConnectMoveCursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a cursor movement.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically.

The default bindings for this signal come in two variants, the variant with the Shift modifier extends the selection, the variant without the Shift modifer does not. There are too many key combinations to list them all here.

- Arrow keys move by individual children

- Home/End keys move to the ends of the box

- PageUp/PageDown keys move vertically by pages.

func (*FlowBox) ConnectSelectAll

func (box *FlowBox) ConnectSelectAll(f func()) coreglib.SignalHandle

ConnectSelectAll signal is a [keybinding signal][GtkBindingSignal] which gets emitted to select all children of the box, if the selection mode permits it.

The default bindings for this signal is Ctrl-a.

func (*FlowBox) ConnectSelectedChildrenChanged

func (box *FlowBox) ConnectSelectedChildrenChanged(f func()) coreglib.SignalHandle

ConnectSelectedChildrenChanged signal is emitted when the set of selected children changes.

Use gtk_flow_box_selected_foreach() or gtk_flow_box_get_selected_children() to obtain the selected children.

func (*FlowBox) ConnectToggleCursorChild

func (box *FlowBox) ConnectToggleCursorChild(f func()) coreglib.SignalHandle

ConnectToggleCursorChild signal is a [keybinding signal][GtkBindingSignal] which toggles the selection of the child that has the focus.

The default binding for this signal is Ctrl-Space.

func (*FlowBox) ConnectUnselectAll

func (box *FlowBox) ConnectUnselectAll(f func()) coreglib.SignalHandle

ConnectUnselectAll signal is a [keybinding signal][GtkBindingSignal] which gets emitted to unselect all children of the box, if the selection mode permits it.

The default bindings for this signal is Ctrl-Shift-a.

func (*FlowBox) Homogeneous

func (box *FlowBox) Homogeneous() bool

Homogeneous returns whether the box is homogeneous (all children are the same size). See gtk_box_set_homogeneous().

The function returns the following values:

  • ok: TRUE if the box is homogeneous.

func (*FlowBox) Insert

func (box *FlowBox) Insert(widget Widgetter, position int)

Insert inserts the widget into box at position.

If a sort function is set, the widget will actually be inserted at the calculated position and this function has the same effect as gtk_container_add().

If position is -1, or larger than the total number of children in the box, then the widget will be appended to the end.

The function takes the following parameters:

  • widget to add.
  • position to insert child in.

func (*FlowBox) InvalidateFilter

func (box *FlowBox) InvalidateFilter()

InvalidateFilter updates the filtering for all children.

Call this function when the result of the filter function on the box is changed due ot an external factor. For instance, this would be used if the filter function just looked for a specific search term, and the entry with the string has changed.

func (*FlowBox) InvalidateSort

func (box *FlowBox) InvalidateSort()

InvalidateSort updates the sorting for all children.

Call this when the result of the sort function on box is changed due to an external factor.

func (*FlowBox) MaxChildrenPerLine

func (box *FlowBox) MaxChildrenPerLine() uint

MaxChildrenPerLine gets the maximum number of children per line.

The function returns the following values:

  • guint: maximum number of children per line.

func (*FlowBox) MinChildrenPerLine

func (box *FlowBox) MinChildrenPerLine() uint

MinChildrenPerLine gets the minimum number of children per line.

The function returns the following values:

  • guint: minimum number of children per line.

func (*FlowBox) RowSpacing

func (box *FlowBox) RowSpacing() uint

RowSpacing gets the vertical spacing.

The function returns the following values:

  • guint: vertical spacing.

func (*FlowBox) SelectAll

func (box *FlowBox) SelectAll()

SelectAll: select all children of box, if the selection mode allows it.

func (*FlowBox) SelectChild

func (box *FlowBox) SelectChild(child *FlowBoxChild)

SelectChild selects a single child of box, if the selection mode allows it.

The function takes the following parameters:

  • child of box.

func (*FlowBox) SelectedChildren

func (box *FlowBox) SelectedChildren() []*FlowBoxChild

SelectedChildren creates a list of all selected children.

The function returns the following values:

  • list: A #GList containing the Widget for each selected child. Free with g_list_free() when done.

func (*FlowBox) SelectedForEach

func (box *FlowBox) SelectedForEach(fn FlowBoxForEachFunc)

SelectedForEach calls a function for each selected child.

Note that the selection cannot be modified from within this function.

The function takes the following parameters:

  • fn: function to call for each selected child.

func (*FlowBox) SelectionMode

func (box *FlowBox) SelectionMode() SelectionMode

SelectionMode gets the selection mode of box.

The function returns the following values:

  • selectionMode: SelectionMode.

func (*FlowBox) SetActivateOnSingleClick

func (box *FlowBox) SetActivateOnSingleClick(single bool)

SetActivateOnSingleClick: if single is TRUE, children will be activated when you click on them, otherwise you need to double-click.

The function takes the following parameters:

  • single: TRUE to emit child-activated on a single click.

func (*FlowBox) SetColumnSpacing

func (box *FlowBox) SetColumnSpacing(spacing uint)

SetColumnSpacing sets the horizontal space to add between children. See the FlowBox:column-spacing property.

The function takes the following parameters:

  • spacing to use.

func (*FlowBox) SetFilterFunc

func (box *FlowBox) SetFilterFunc(filterFunc FlowBoxFilterFunc)

SetFilterFunc: by setting a filter function on the box one can decide dynamically which of the children to show. For instance, to implement a search function that only shows the children matching the search terms.

The filter_func will be called for each child after the call, and it will continue to be called each time a child changes (via gtk_flow_box_child_changed()) or when gtk_flow_box_invalidate_filter() is called.

Note that using a filter function is incompatible with using a model (see gtk_flow_box_bind_model()).

The function takes the following parameters:

  • filterFunc (optional): callback that lets you filter which children to show.

func (*FlowBox) SetHAdjustment

func (box *FlowBox) SetHAdjustment(adjustment *Adjustment)

SetHAdjustment hooks up an adjustment to focus handling in box. The adjustment is also used for autoscrolling during rubberband selection. See gtk_scrolled_window_get_hadjustment() for a typical way of obtaining the adjustment, and gtk_flow_box_set_vadjustment()for setting the vertical adjustment.

The adjustments have to be in pixel units and in the same coordinate system as the allocation for immediate children of the box.

The function takes the following parameters:

  • adjustment which should be adjusted when the focus is moved among the descendents of container.

func (*FlowBox) SetHomogeneous

func (box *FlowBox) SetHomogeneous(homogeneous bool)

SetHomogeneous sets the FlowBox:homogeneous property of box, controlling whether or not all children of box are given equal space in the box.

The function takes the following parameters:

  • homogeneous: TRUE to create equal allotments, FALSE for variable allotments.

func (*FlowBox) SetMaxChildrenPerLine

func (box *FlowBox) SetMaxChildrenPerLine(nChildren uint)

SetMaxChildrenPerLine sets the maximum number of children to request and allocate space for in box’s orientation.

Setting the maximum number of children per line limits the overall natural size request to be no more than n_children children long in the given orientation.

The function takes the following parameters:

  • nChildren: maximum number of children per line.

func (*FlowBox) SetMinChildrenPerLine

func (box *FlowBox) SetMinChildrenPerLine(nChildren uint)

SetMinChildrenPerLine sets the minimum number of children to line up in box’s orientation before flowing.

The function takes the following parameters:

  • nChildren: minimum number of children per line.

func (*FlowBox) SetRowSpacing

func (box *FlowBox) SetRowSpacing(spacing uint)

SetRowSpacing sets the vertical space to add between children. See the FlowBox:row-spacing property.

The function takes the following parameters:

  • spacing to use.

func (*FlowBox) SetSelectionMode

func (box *FlowBox) SetSelectionMode(mode SelectionMode)

SetSelectionMode sets how selection works in box. See SelectionMode for details.

The function takes the following parameters:

  • mode: new selection mode.

func (*FlowBox) SetSortFunc

func (box *FlowBox) SetSortFunc(sortFunc FlowBoxSortFunc)

SetSortFunc: by setting a sort function on the box, one can dynamically reorder the children of the box, based on the contents of the children.

The sort_func will be called for each child after the call, and will continue to be called each time a child changes (via gtk_flow_box_child_changed()) and when gtk_flow_box_invalidate_sort() is called.

Note that using a sort function is incompatible with using a model (see gtk_flow_box_bind_model()).

The function takes the following parameters:

  • sortFunc (optional): sort function.

func (*FlowBox) SetVAdjustment

func (box *FlowBox) SetVAdjustment(adjustment *Adjustment)

SetVAdjustment hooks up an adjustment to focus handling in box. The adjustment is also used for autoscrolling during rubberband selection. See gtk_scrolled_window_get_vadjustment() for a typical way of obtaining the adjustment, and gtk_flow_box_set_hadjustment()for setting the horizontal adjustment.

The adjustments have to be in pixel units and in the same coordinate system as the allocation for immediate children of the box.

The function takes the following parameters:

  • adjustment which should be adjusted when the focus is moved among the descendents of container.

func (*FlowBox) UnselectAll

func (box *FlowBox) UnselectAll()

UnselectAll: unselect all children of box, if the selection mode allows it.

func (*FlowBox) UnselectChild

func (box *FlowBox) UnselectChild(child *FlowBoxChild)

UnselectChild unselects a single child of box, if the selection mode allows it.

The function takes the following parameters:

  • child of box.

type FlowBoxAccessible

type FlowBoxAccessible struct {
	ContainerAccessible

	atk.Selection
	// contains filtered or unexported fields
}

type FlowBoxAccessibleClass added in v0.0.5

type FlowBoxAccessibleClass struct {
	// contains filtered or unexported fields
}

FlowBoxAccessibleClass: instance of this type is always passed by reference.

func (*FlowBoxAccessibleClass) ParentClass added in v0.0.5

type FlowBoxAccessibleOverrides added in v0.0.5

type FlowBoxAccessibleOverrides struct {
}

FlowBoxAccessibleOverrides contains methods that are overridable.

type FlowBoxChild

type FlowBoxChild struct {
	Bin
	// contains filtered or unexported fields
}

func NewFlowBoxChild

func NewFlowBoxChild() *FlowBoxChild

NewFlowBoxChild creates a new FlowBoxChild, to be used as a child of a FlowBox.

The function returns the following values:

  • flowBoxChild: new FlowBoxChild.

func (*FlowBoxChild) Changed

func (child *FlowBoxChild) Changed()

Changed marks child as changed, causing any state that depends on this to be updated. This affects sorting and filtering.

Note that calls to this method must be in sync with the data used for the sorting and filtering functions. For instance, if the list is mirroring some external data set, and *two* children changed in the external data set when you call gtk_flow_box_child_changed() on the first child, the sort function must only read the new data for the first of the two changed children, otherwise the resorting of the children will be wrong.

This generally means that if you don’t fully control the data model, you have to duplicate the data that affects the sorting and filtering functions into the widgets themselves. Another alternative is to call gtk_flow_box_invalidate_sort() on any model change, but that is more expensive.

func (*FlowBoxChild) ConnectActivate

func (child *FlowBoxChild) ConnectActivate(f func()) coreglib.SignalHandle

ConnectActivate signal is emitted when the user activates a child widget in a FlowBox, either by clicking or double-clicking, or by using the Space or Enter key.

While this signal is used as a [keybinding signal][GtkBindingSignal], it can be used by applications for their own purposes.

func (*FlowBoxChild) Index

func (child *FlowBoxChild) Index() int

Index gets the current index of the child in its FlowBox container.

The function returns the following values:

  • gint: index of the child, or -1 if the child is not in a flow box.

func (*FlowBoxChild) IsSelected

func (child *FlowBoxChild) IsSelected() bool

IsSelected returns whether the child is currently selected in its FlowBox container.

The function returns the following values:

  • ok: TRUE if child is selected.

type FlowBoxChildAccessible

type FlowBoxChildAccessible struct {
	ContainerAccessible
	// contains filtered or unexported fields
}

type FlowBoxChildAccessibleClass added in v0.0.5

type FlowBoxChildAccessibleClass struct {
	// contains filtered or unexported fields
}

FlowBoxChildAccessibleClass: instance of this type is always passed by reference.

func (*FlowBoxChildAccessibleClass) ParentClass added in v0.0.5

type FlowBoxChildAccessibleOverrides added in v0.0.5

type FlowBoxChildAccessibleOverrides struct {
}

FlowBoxChildAccessibleOverrides contains methods that are overridable.

type FlowBoxChildClass added in v0.0.5

type FlowBoxChildClass struct {
	// contains filtered or unexported fields
}

FlowBoxChildClass: instance of this type is always passed by reference.

func (*FlowBoxChildClass) ParentClass added in v0.0.5

func (f *FlowBoxChildClass) ParentClass() *BinClass

type FlowBoxChildOverrides added in v0.0.5

type FlowBoxChildOverrides struct {
	Activate func()
}

FlowBoxChildOverrides contains methods that are overridable.

type FlowBoxClass added in v0.0.5

type FlowBoxClass struct {
	// contains filtered or unexported fields
}

FlowBoxClass: instance of this type is always passed by reference.

func (*FlowBoxClass) ParentClass added in v0.0.5

func (f *FlowBoxClass) ParentClass() *ContainerClass

type FlowBoxCreateWidgetFunc

type FlowBoxCreateWidgetFunc func(item *coreglib.Object) (widget Widgetter)

FlowBoxCreateWidgetFunc: called for flow boxes that are bound to a Model with gtk_flow_box_bind_model() for each item that gets added to the model.

type FlowBoxFilterFunc

type FlowBoxFilterFunc func(child *FlowBoxChild) (ok bool)

FlowBoxFilterFunc: function that will be called whenrever a child changes or is added. It lets you control if the child should be visible or not.

type FlowBoxForEachFunc

type FlowBoxForEachFunc func(box *FlowBox, child *FlowBoxChild)

FlowBoxForEachFunc: function used by gtk_flow_box_selected_foreach(). It will be called on every selected child of the box.

type FlowBoxOverrides added in v0.0.5

type FlowBoxOverrides struct {
	ActivateCursorChild func()
	// The function takes the following parameters:
	//
	ChildActivated func(child *FlowBoxChild)
	// The function takes the following parameters:
	//
	//   - step
	//   - count
	//
	// The function returns the following values:
	//
	MoveCursor func(step MovementStep, count int) bool
	// SelectAll: select all children of box, if the selection mode allows it.
	SelectAll               func()
	SelectedChildrenChanged func()
	ToggleCursorChild       func()
	// UnselectAll: unselect all children of box, if the selection mode allows
	// it.
	UnselectAll func()
}

FlowBoxOverrides contains methods that are overridable.

type FlowBoxSortFunc

type FlowBoxSortFunc func(child1, child2 *FlowBoxChild) (gint int)

FlowBoxSortFunc: function to compare two children to determine which should come first.

type FontButton

type FontButton struct {
	Button

	*coreglib.Object
	FontChooser
	// contains filtered or unexported fields
}

FontButton is a button which displays the currently selected font an allows to open a font chooser dialog to change the font. It is suitable widget for selecting a font in a preference dialog.

CSS nodes

GtkFontButton has a single CSS node with name button and style class .font.

func NewFontButton

func NewFontButton() *FontButton

NewFontButton creates a new font picker widget.

The function returns the following values:

  • fontButton: new font picker widget.

func NewFontButtonWithFont

func NewFontButtonWithFont(fontname string) *FontButton

NewFontButtonWithFont creates a new font picker widget.

The function takes the following parameters:

  • fontname: name of font to display in font chooser dialog.

The function returns the following values:

  • fontButton: new font picker widget.

func (*FontButton) ConnectFontSet

func (fontButton *FontButton) ConnectFontSet(f func()) coreglib.SignalHandle

ConnectFontSet signal is emitted when the user selects a font. When handling this signal, use gtk_font_chooser_get_font() to find out which font was just selected.

Note that this signal is only emitted when the user changes the font. If you need to react to programmatic font changes as well, use the notify::font signal.

func (*FontButton) FontName deprecated

func (fontButton *FontButton) FontName() string

FontName retrieves the name of the currently selected font. This name includes style and size information as well. If you want to render something with the font, use this string with pango_font_description_from_string() . If you’re interested in peeking certain values (family name, style, size, weight) just query these properties from the FontDescription object.

Deprecated: Use gtk_font_chooser_get_font() instead.

The function returns the following values:

  • utf8: internal copy of the font name which must not be freed.

func (*FontButton) SetFontName deprecated

func (fontButton *FontButton) SetFontName(fontname string) bool

SetFontName sets or updates the currently-displayed font in font picker dialog.

Deprecated: Use gtk_font_chooser_set_font() instead.

The function takes the following parameters:

  • fontname: name of font to display in font chooser dialog.

The function returns the following values:

  • ok: TRUE.

func (*FontButton) SetShowSize

func (fontButton *FontButton) SetShowSize(showSize bool)

SetShowSize: if show_size is TRUE, the font size will be displayed along with the name of the selected font.

The function takes the following parameters:

  • showSize: TRUE if font size should be displayed in dialog.

func (*FontButton) SetShowStyle

func (fontButton *FontButton) SetShowStyle(showStyle bool)

SetShowStyle: if show_style is TRUE, the font style will be displayed along with name of the selected font.

The function takes the following parameters:

  • showStyle: TRUE if font style should be displayed in label.

func (*FontButton) SetTitle

func (fontButton *FontButton) SetTitle(title string)

SetTitle sets the title for the font chooser dialog.

The function takes the following parameters:

  • title: string containing the font chooser dialog title.

func (*FontButton) SetUseFont

func (fontButton *FontButton) SetUseFont(useFont bool)

SetUseFont: if use_font is TRUE, the font name will be written using the selected font.

The function takes the following parameters:

  • useFont: if TRUE, font name will be written using font chosen.

func (*FontButton) SetUseSize

func (fontButton *FontButton) SetUseSize(useSize bool)

SetUseSize: if use_size is TRUE, the font name will be written using the selected size.

The function takes the following parameters:

  • useSize: if TRUE, font name will be written using the selected size.

func (*FontButton) ShowSize

func (fontButton *FontButton) ShowSize() bool

ShowSize returns whether the font size will be shown in the label.

The function returns the following values:

  • ok: whether the font size will be shown in the label.

func (*FontButton) ShowStyle

func (fontButton *FontButton) ShowStyle() bool

ShowStyle returns whether the name of the font style will be shown in the label.

The function returns the following values:

  • ok: whether the font style will be shown in the label.

func (*FontButton) Title

func (fontButton *FontButton) Title() string

Title retrieves the title of the font chooser dialog.

The function returns the following values:

  • utf8: internal copy of the title string which must not be freed.

func (*FontButton) UseFont

func (fontButton *FontButton) UseFont() bool

UseFont returns whether the selected font is used in the label.

The function returns the following values:

  • ok: whether the selected font is used in the label.

func (*FontButton) UseSize

func (fontButton *FontButton) UseSize() bool

UseSize returns whether the selected size is used in the label.

The function returns the following values:

  • ok: whether the selected size is used in the label.

type FontButtonClass added in v0.0.5

type FontButtonClass struct {
	// contains filtered or unexported fields
}

FontButtonClass: instance of this type is always passed by reference.

func (*FontButtonClass) ParentClass added in v0.0.5

func (f *FontButtonClass) ParentClass() *ButtonClass

type FontButtonOverrides added in v0.0.5

type FontButtonOverrides struct {
	FontSet func()
}

FontButtonOverrides contains methods that are overridable.

type FontChooser

type FontChooser struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

FontChooser is an interface that can be implemented by widgets displaying the list of fonts. In GTK+, the main objects that implement this interface are FontChooserWidget, FontChooserDialog and FontButton. The GtkFontChooser interface has been introducted in GTK+ 3.2.

FontChooser wraps an interface. This means the user can get the underlying type by calling Cast().

func (*FontChooser) ConnectFontActivated

func (fontchooser *FontChooser) ConnectFontActivated(f func(fontname string)) coreglib.SignalHandle

ConnectFontActivated is emitted when a font is activated. This usually happens when the user double clicks an item, or an item is selected and the user presses one of the keys Space, Shift+Space, Return or Enter.

func (*FontChooser) Font

func (fontchooser *FontChooser) Font() string

Font gets the currently-selected font name.

Note that this can be a different string than what you set with gtk_font_chooser_set_font(), as the font chooser widget may normalize font names and thus return a string with a different structure. For example, “Helvetica Italic Bold 12” could be normalized to “Helvetica Bold Italic 12”.

Use pango_font_description_equal() if you want to compare two font descriptions.

The function returns the following values:

  • utf8 (optional): string with the name of the current font, or NULL if no font is selected. You must free this string with g_free().

func (*FontChooser) FontDesc

func (fontchooser *FontChooser) FontDesc() *pango.FontDescription

FontDesc gets the currently-selected font.

Note that this can be a different string than what you set with gtk_font_chooser_set_font(), as the font chooser widget may normalize font names and thus return a string with a different structure. For example, “Helvetica Italic Bold 12” could be normalized to “Helvetica Bold Italic 12”.

Use pango_font_description_equal() if you want to compare two font descriptions.

The function returns the following values:

  • fontDescription (optional) for the current font, or NULL if no font is selected.

func (*FontChooser) FontFace

func (fontchooser *FontChooser) FontFace() pango.FontFacer

FontFace gets the FontFace representing the selected font group details (i.e. family, slant, weight, width, etc).

If the selected font is not installed, returns NULL.

The function returns the following values:

  • fontFace (optional) representing the selected font group details, or NULL. The returned object is owned by fontchooser and must not be modified or freed.

func (*FontChooser) FontFamily

func (fontchooser *FontChooser) FontFamily() pango.FontFamilier

FontFamily gets the FontFamily representing the selected font family. Font families are a collection of font faces.

If the selected font is not installed, returns NULL.

The function returns the following values:

  • fontFamily (optional) representing the selected font family, or NULL. The returned object is owned by fontchooser and must not be modified or freed.

func (*FontChooser) FontFeatures

func (fontchooser *FontChooser) FontFeatures() string

FontFeatures gets the currently-selected font features.

The function returns the following values:

  • utf8: currently selected font features.

func (*FontChooser) FontMap

func (fontchooser *FontChooser) FontMap() pango.FontMapper

FontMap gets the custom font map of this font chooser widget, or NULL if it does not have one.

The function returns the following values:

  • fontMap (optional) or NULL.

func (*FontChooser) FontSize

func (fontchooser *FontChooser) FontSize() int

FontSize: selected font size.

The function returns the following values:

  • gint: n integer representing the selected font size, or -1 if no font size is selected.

func (*FontChooser) Language

func (fontchooser *FontChooser) Language() string

Language gets the language that is used for font features.

The function returns the following values:

  • utf8: currently selected language.

func (*FontChooser) Level

func (fontchooser *FontChooser) Level() FontChooserLevel

Level returns the current level of granularity for selecting fonts.

The function returns the following values:

  • fontChooserLevel: current granularity level.

func (*FontChooser) PreviewText

func (fontchooser *FontChooser) PreviewText() string

PreviewText gets the text displayed in the preview area.

The function returns the following values:

  • utf8: text displayed in the preview area.

func (*FontChooser) SetFilterFunc

func (fontchooser *FontChooser) SetFilterFunc(filter FontFilterFunc)

SetFilterFunc adds a filter function that decides which fonts to display in the font chooser.

The function takes the following parameters:

  • filter (optional) or NULL.

func (*FontChooser) SetFont

func (fontchooser *FontChooser) SetFont(fontname string)

SetFont sets the currently-selected font.

The function takes the following parameters:

  • fontname: font name like “Helvetica 12” or “Times Bold 18”.

func (*FontChooser) SetFontDesc

func (fontchooser *FontChooser) SetFontDesc(fontDesc *pango.FontDescription)

SetFontDesc sets the currently-selected font from font_desc.

The function takes the following parameters:

  • fontDesc: FontDescription.

func (*FontChooser) SetFontMap

func (fontchooser *FontChooser) SetFontMap(fontmap pango.FontMapper)

SetFontMap sets a custom font map to use for this font chooser widget. A custom font map can be used to present application-specific fonts instead of or in addition to the normal system fonts.

FcConfig *config;
PangoFontMap *fontmap;

config = FcInitLoadConfigAndFonts ();
FcConfigAppFontAddFile (config, my_app_font_file);

fontmap = pango_cairo_font_map_new_for_font_type (CAIRO_FONT_TYPE_FT);
pango_fc_font_map_set_config (PANGO_FC_FONT_MAP (fontmap), config);

gtk_font_chooser_set_font_map (font_chooser, fontmap);

Note that other GTK+ widgets will only be able to use the application-specific font if it is present in the font map they use:

context = gtk_widget_get_pango_context (label);
pango_context_set_font_map (context, fontmap);.

The function takes the following parameters:

  • fontmap (optional): FontMap.

func (*FontChooser) SetLanguage

func (fontchooser *FontChooser) SetLanguage(language string)

SetLanguage sets the language to use for font features.

The function takes the following parameters:

  • language: language.

func (*FontChooser) SetLevel

func (fontchooser *FontChooser) SetLevel(level FontChooserLevel)

SetLevel sets the desired level of granularity for selecting fonts.

The function takes the following parameters:

  • level: desired level of granularity.

func (*FontChooser) SetPreviewText

func (fontchooser *FontChooser) SetPreviewText(text string)

SetPreviewText sets the text displayed in the preview area. The text is used to show how the selected font looks.

The function takes the following parameters:

  • text to display in the preview area.

func (*FontChooser) SetShowPreviewEntry

func (fontchooser *FontChooser) SetShowPreviewEntry(showPreviewEntry bool)

SetShowPreviewEntry shows or hides the editable preview entry.

The function takes the following parameters:

  • showPreviewEntry: whether to show the editable preview entry or not.

func (*FontChooser) ShowPreviewEntry

func (fontchooser *FontChooser) ShowPreviewEntry() bool

ShowPreviewEntry returns whether the preview entry is shown or not.

The function returns the following values:

  • ok: TRUE if the preview entry is shown or FALSE if it is hidden.

type FontChooserDialog

type FontChooserDialog struct {
	Dialog

	*coreglib.Object
	FontChooser
	// contains filtered or unexported fields
}

FontChooserDialog widget is a dialog for selecting a font. It implements the FontChooser interface.

GtkFontChooserDialog as GtkBuildable

The GtkFontChooserDialog implementation of the Buildable interface exposes the buttons with the names “select_button” and “cancel_button”.

func NewFontChooserDialog

func NewFontChooserDialog(title string, parent *Window) *FontChooserDialog

NewFontChooserDialog creates a new FontChooserDialog.

The function takes the following parameters:

  • title (optional): title of the dialog, or NULL.
  • parent (optional): transient parent of the dialog, or NULL.

The function returns the following values:

  • fontChooserDialog: new FontChooserDialog.

type FontChooserDialogClass added in v0.0.5

type FontChooserDialogClass struct {
	// contains filtered or unexported fields
}

FontChooserDialogClass: instance of this type is always passed by reference.

func (*FontChooserDialogClass) ParentClass added in v0.0.5

func (f *FontChooserDialogClass) ParentClass() *DialogClass

ParentClass: parent class.

type FontChooserDialogOverrides added in v0.0.5

type FontChooserDialogOverrides struct {
}

FontChooserDialogOverrides contains methods that are overridable.

type FontChooserIface added in v0.0.5

type FontChooserIface struct {
	// contains filtered or unexported fields
}

FontChooserIface: instance of this type is always passed by reference.

func (*FontChooserIface) Padding added in v0.0.5

func (f *FontChooserIface) Padding() [10]unsafe.Pointer

type FontChooserLevel

type FontChooserLevel C.guint

FontChooserLevel: this enumeration specifies the granularity of font selection that is desired in a font chooser.

This enumeration may be extended in the future; applications should ignore unknown values.

const (
	// FontChooserLevelFamily: allow selecting a font family.
	FontChooserLevelFamily FontChooserLevel = 0b0
	// FontChooserLevelStyle: allow selecting a specific font face.
	FontChooserLevelStyle FontChooserLevel = 0b1
	// FontChooserLevelSize: allow selecting a specific font size.
	FontChooserLevelSize       FontChooserLevel = 0b10
	FontChooserLevelVariations FontChooserLevel = 0b100
	// FontChooserLevelFeatures: allow selecting specific OpenType font
	// features.
	FontChooserLevelFeatures FontChooserLevel = 0b1000
)

func (FontChooserLevel) Has

func (f FontChooserLevel) Has(other FontChooserLevel) bool

Has returns true if f contains other.

func (FontChooserLevel) String

func (f FontChooserLevel) String() string

String returns the names in string for FontChooserLevel.

type FontChooserWidget

type FontChooserWidget struct {
	Box

	*coreglib.Object
	FontChooser
	// contains filtered or unexported fields
}

FontChooserWidget widget lists the available fonts, styles and sizes, allowing the user to select a font. It is used in the FontChooserDialog widget to provide a dialog box for selecting fonts.

To set the font which is initially selected, use gtk_font_chooser_set_font() or gtk_font_chooser_set_font_desc().

To get the selected font use gtk_font_chooser_get_font() or gtk_font_chooser_get_font_desc().

To change the text which is shown in the preview area, use gtk_font_chooser_set_preview_text().

CSS nodes

GtkFontChooserWidget has a single CSS node with name fontchooser.

func NewFontChooserWidget

func NewFontChooserWidget() *FontChooserWidget

NewFontChooserWidget creates a new FontChooserWidget.

The function returns the following values:

  • fontChooserWidget: new FontChooserWidget.

type FontChooserWidgetClass added in v0.0.5

type FontChooserWidgetClass struct {
	// contains filtered or unexported fields
}

FontChooserWidgetClass: instance of this type is always passed by reference.

func (*FontChooserWidgetClass) ParentClass added in v0.0.5

func (f *FontChooserWidgetClass) ParentClass() *BoxClass

ParentClass: parent class.

type FontChooserWidgetOverrides added in v0.0.5

type FontChooserWidgetOverrides struct {
}

FontChooserWidgetOverrides contains methods that are overridable.

type FontChooserer

type FontChooserer interface {
	coreglib.Objector

	// Font gets the currently-selected font name.
	Font() string
	// FontDesc gets the currently-selected font.
	FontDesc() *pango.FontDescription
	// FontFace gets the FontFace representing the selected font group details
	// (i.e.
	FontFace() pango.FontFacer
	// FontFamily gets the FontFamily representing the selected font family.
	FontFamily() pango.FontFamilier
	// FontFeatures gets the currently-selected font features.
	FontFeatures() string
	// FontMap gets the custom font map of this font chooser widget, or NULL if
	// it does not have one.
	FontMap() pango.FontMapper
	// FontSize: selected font size.
	FontSize() int
	// Language gets the language that is used for font features.
	Language() string
	// Level returns the current level of granularity for selecting fonts.
	Level() FontChooserLevel
	// PreviewText gets the text displayed in the preview area.
	PreviewText() string
	// ShowPreviewEntry returns whether the preview entry is shown or not.
	ShowPreviewEntry() bool
	// SetFilterFunc adds a filter function that decides which fonts to display
	// in the font chooser.
	SetFilterFunc(filter FontFilterFunc)
	// SetFont sets the currently-selected font.
	SetFont(fontname string)
	// SetFontDesc sets the currently-selected font from font_desc.
	SetFontDesc(fontDesc *pango.FontDescription)
	// SetFontMap sets a custom font map to use for this font chooser widget.
	SetFontMap(fontmap pango.FontMapper)
	// SetLanguage sets the language to use for font features.
	SetLanguage(language string)
	// SetLevel sets the desired level of granularity for selecting fonts.
	SetLevel(level FontChooserLevel)
	// SetPreviewText sets the text displayed in the preview area.
	SetPreviewText(text string)
	// SetShowPreviewEntry shows or hides the editable preview entry.
	SetShowPreviewEntry(showPreviewEntry bool)

	// Font-activated is emitted when a font is activated.
	ConnectFontActivated(func(fontname string)) coreglib.SignalHandle
}

FontChooserer describes FontChooser's interface methods.

type FontFilterFunc

type FontFilterFunc func(family pango.FontFamilier, face pango.FontFacer) (ok bool)

FontFilterFunc: type of function that is used for deciding what fonts get shown in a FontChooser. See gtk_font_chooser_set_filter_func().

type FontSelection

type FontSelection struct {
	Box
	// contains filtered or unexported fields
}

func NewFontSelection deprecated

func NewFontSelection() *FontSelection

NewFontSelection creates a new FontSelection.

Deprecated: Use FontChooserWidget instead.

The function returns the following values:

  • fontSelection: new FontSelection.

func (*FontSelection) Face deprecated

func (fontsel *FontSelection) Face() pango.FontFacer

Face gets the FontFace representing the selected font group details (i.e. family, slant, weight, width, etc).

Deprecated: Use FontChooser.

The function returns the following values:

  • fontFace representing the selected font group details. The returned object is owned by fontsel and must not be modified or freed.

func (*FontSelection) FaceList deprecated

func (fontsel *FontSelection) FaceList() Widgetter

FaceList: this returns the TreeView which lists all styles available for the selected font. For example, “Regular”, “Bold”, etc.

Deprecated: Use FontChooser.

The function returns the following values:

  • widget that is part of fontsel.

func (*FontSelection) Family deprecated

func (fontsel *FontSelection) Family() pango.FontFamilier

Family gets the FontFamily representing the selected font family.

Deprecated: Use FontChooser.

The function returns the following values:

  • fontFamily representing the selected font family. Font families are a collection of font faces. The returned object is owned by fontsel and must not be modified or freed.

func (*FontSelection) FamilyList deprecated

func (fontsel *FontSelection) FamilyList() Widgetter

FamilyList: this returns the TreeView that lists font families, for example, “Sans”, “Serif”, etc.

Deprecated: Use FontChooser.

The function returns the following values:

  • widget that is part of fontsel.

func (*FontSelection) FontName deprecated

func (fontsel *FontSelection) FontName() string

FontName gets the currently-selected font name.

Note that this can be a different string than what you set with gtk_font_selection_set_font_name(), as the font selection widget may normalize font names and thus return a string with a different structure. For example, “Helvetica Italic Bold 12” could be normalized to “Helvetica Bold Italic 12”. Use pango_font_description_equal() if you want to compare two font descriptions.

Deprecated: Use FontChooser.

The function returns the following values:

  • utf8: string with the name of the current font, or NULL if no font is selected. You must free this string with g_free().

func (*FontSelection) PreviewEntry deprecated

func (fontsel *FontSelection) PreviewEntry() Widgetter

PreviewEntry: this returns the Entry used to display the font as a preview.

Deprecated: Use FontChooser.

The function returns the following values:

  • widget that is part of fontsel.

func (*FontSelection) PreviewText deprecated

func (fontsel *FontSelection) PreviewText() string

PreviewText gets the text displayed in the preview area.

Deprecated: Use FontChooser.

The function returns the following values:

  • utf8: text displayed in the preview area. This string is owned by the widget and should not be modified or freed.

func (*FontSelection) SetFontName deprecated

func (fontsel *FontSelection) SetFontName(fontname string) bool

SetFontName sets the currently-selected font.

Note that the fontsel needs to know the screen in which it will appear for this to work; this can be guaranteed by simply making sure that the fontsel is inserted in a toplevel window before you call this function.

Deprecated: Use FontChooser.

The function takes the following parameters:

  • fontname: font name like “Helvetica 12” or “Times Bold 18”.

The function returns the following values:

  • ok: TRUE if the font could be set successfully; FALSE if no such font exists or if the fontsel doesn’t belong to a particular screen yet.

func (*FontSelection) SetPreviewText deprecated

func (fontsel *FontSelection) SetPreviewText(text string)

SetPreviewText sets the text displayed in the preview area. The text is used to show how the selected font looks.

Deprecated: Use FontChooser.

The function takes the following parameters:

  • text to display in the preview area.

func (*FontSelection) Size deprecated

func (fontsel *FontSelection) Size() int

Size: selected font size.

Deprecated: Use FontChooser.

The function returns the following values:

  • gint: n integer representing the selected font size, or -1 if no font size is selected.

func (*FontSelection) SizeEntry deprecated

func (fontsel *FontSelection) SizeEntry() Widgetter

SizeEntry: this returns the Entry used to allow the user to edit the font number manually instead of selecting it from the list of font sizes.

Deprecated: Use FontChooser.

The function returns the following values:

  • widget that is part of fontsel.

func (*FontSelection) SizeList deprecated

func (fontsel *FontSelection) SizeList() Widgetter

SizeList: this returns the TreeView used to list font sizes.

Deprecated: Use FontChooser.

The function returns the following values:

  • widget that is part of fontsel.

type FontSelectionClass added in v0.0.5

type FontSelectionClass struct {
	// contains filtered or unexported fields
}

FontSelectionClass: instance of this type is always passed by reference.

func (*FontSelectionClass) ParentClass added in v0.0.5

func (f *FontSelectionClass) ParentClass() *BoxClass

type FontSelectionDialog

type FontSelectionDialog struct {
	Dialog
	// contains filtered or unexported fields
}

func NewFontSelectionDialog deprecated

func NewFontSelectionDialog(title string) *FontSelectionDialog

NewFontSelectionDialog creates a new FontSelectionDialog.

Deprecated: Use FontChooserDialog.

The function takes the following parameters:

  • title of the dialog window.

The function returns the following values:

  • fontSelectionDialog: new FontSelectionDialog.

func (*FontSelectionDialog) CancelButton deprecated

func (fsd *FontSelectionDialog) CancelButton() Widgetter

CancelButton gets the “Cancel” button.

Deprecated: Use FontChooserDialog.

The function returns the following values:

  • widget used in the dialog for the “Cancel” button.

func (*FontSelectionDialog) FontName deprecated

func (fsd *FontSelectionDialog) FontName() string

FontName gets the currently-selected font name.

Note that this can be a different string than what you set with gtk_font_selection_dialog_set_font_name(), as the font selection widget may normalize font names and thus return a string with a different structure. For example, “Helvetica Italic Bold 12” could be normalized to “Helvetica Bold Italic 12”. Use pango_font_description_equal() if you want to compare two font descriptions.

Deprecated: Use FontChooserDialog.

The function returns the following values:

  • utf8: string with the name of the current font, or NULL if no font is selected. You must free this string with g_free().

func (*FontSelectionDialog) FontSelection deprecated

func (fsd *FontSelectionDialog) FontSelection() Widgetter

FontSelection retrieves the FontSelection widget embedded in the dialog.

Deprecated: Use FontChooserDialog.

The function returns the following values:

  • widget: embedded FontSelection.

func (*FontSelectionDialog) OKButton deprecated

func (fsd *FontSelectionDialog) OKButton() Widgetter

OKButton gets the “OK” button.

Deprecated: Use FontChooserDialog.

The function returns the following values:

  • widget used in the dialog for the “OK” button.

func (*FontSelectionDialog) PreviewText deprecated

func (fsd *FontSelectionDialog) PreviewText() string

PreviewText gets the text displayed in the preview area.

Deprecated: Use FontChooserDialog.

The function returns the following values:

  • utf8: text displayed in the preview area. This string is owned by the widget and should not be modified or freed.

func (*FontSelectionDialog) SetFontName deprecated

func (fsd *FontSelectionDialog) SetFontName(fontname string) bool

SetFontName sets the currently selected font.

Deprecated: Use FontChooserDialog.

The function takes the following parameters:

  • fontname: font name like “Helvetica 12” or “Times Bold 18”.

The function returns the following values:

  • ok: TRUE if the font selected in fsd is now the fontname specified, FALSE otherwise.

func (*FontSelectionDialog) SetPreviewText deprecated

func (fsd *FontSelectionDialog) SetPreviewText(text string)

SetPreviewText sets the text displayed in the preview area.

Deprecated: Use FontChooserDialog.

The function takes the following parameters:

  • text to display in the preview area.

type FontSelectionDialogClass added in v0.0.5

type FontSelectionDialogClass struct {
	// contains filtered or unexported fields
}

FontSelectionDialogClass: instance of this type is always passed by reference.

func (*FontSelectionDialogClass) ParentClass added in v0.0.5

func (f *FontSelectionDialogClass) ParentClass() *DialogClass

type FontSelectionDialogOverrides added in v0.0.5

type FontSelectionDialogOverrides struct {
}

FontSelectionDialogOverrides contains methods that are overridable.

type FontSelectionOverrides added in v0.0.5

type FontSelectionOverrides struct {
}

FontSelectionOverrides contains methods that are overridable.

type Frame

type Frame struct {
	Bin
	// contains filtered or unexported fields
}

Frame: frame widget is a bin that surrounds its child with a decorative frame and an optional label. If present, the label is drawn in a gap in the top side of the frame. The position of the label can be controlled with gtk_frame_set_label_align().

GtkFrame as GtkBuildable

The GtkFrame implementation of the GtkBuildable interface supports placing a child in the label position by specifying “label” as the “type” attribute of a <child> element. A normal content child can be specified without specifying a <child> type attribute.

An example of a UI definition fragment with GtkFrame:

<object class="GtkFrame">
  <child type="label">
    <object class="GtkLabel" id="frame-label"/>
  </child>
  <child>
    <object class="GtkEntry" id="frame-content"/>
  </child>
</object>

CSS nodes

frame
├── border[.flat]
├── <label widget>
╰── <child>

GtkFrame has a main CSS node named “frame” and a subnode named “border”. The “border” node is used to draw the visible border. You can set the appearance of the border using CSS properties like “border-style” on the “border” node.

The border node can be given the style class “.flat”, which is used by themes to disable drawing of the border. To do this from code, call gtk_frame_set_shadow_type() with GTK_SHADOW_NONE to add the “.flat” class or any other shadow type to remove it.

func NewFrame

func NewFrame(label string) *Frame

NewFrame creates a new Frame, with optional label label. If label is NULL, the label is omitted.

The function takes the following parameters:

  • label (optional): text to use as the label of the frame.

The function returns the following values:

  • frame: new Frame widget.

func (*Frame) Label

func (frame *Frame) Label() string

Label: if the frame’s label widget is a Label, returns the text in the label widget. (The frame will have a Label for the label widget if a non-NULL argument was passed to gtk_frame_new().).

The function returns the following values:

  • utf8 (optional): text in the label, or NULL if there was no label widget or the lable widget was not a Label. This string is owned by GTK+ and must not be modified or freed.

func (*Frame) LabelAlign

func (frame *Frame) LabelAlign() (xalign, yalign float32)

LabelAlign retrieves the X and Y alignment of the frame’s label. See gtk_frame_set_label_align().

The function returns the following values:

  • xalign (optional): location to store X alignment of frame’s label, or NULL.
  • yalign (optional): location to store X alignment of frame’s label, or NULL.

func (*Frame) LabelWidget

func (frame *Frame) LabelWidget() Widgetter

LabelWidget retrieves the label widget for the frame. See gtk_frame_set_label_widget().

The function returns the following values:

  • widget (optional): label widget, or NULL if there is none.

func (*Frame) SetLabel

func (frame *Frame) SetLabel(label string)

SetLabel removes the current Frame:label-widget. If label is not NULL, creates a new Label with that text and adds it as the Frame:label-widget.

The function takes the following parameters:

  • label (optional): text to use as the label of the frame.

func (*Frame) SetLabelAlign

func (frame *Frame) SetLabelAlign(xalign, yalign float32)

SetLabelAlign sets the alignment of the frame widget’s label. The default values for a newly created frame are 0.0 and 0.5.

The function takes the following parameters:

  • xalign: position of the label along the top edge of the widget. A value of 0.0 represents left alignment; 1.0 represents right alignment.
  • yalign: y alignment of the label. A value of 0.0 aligns under the frame; 1.0 aligns above the frame. If the values are exactly 0.0 or 1.0 the gap in the frame won’t be painted because the label will be completely above or below the frame.

func (*Frame) SetLabelWidget

func (frame *Frame) SetLabelWidget(labelWidget Widgetter)

SetLabelWidget sets the Frame:label-widget for the frame. This is the widget that will appear embedded in the top edge of the frame as a title.

The function takes the following parameters:

  • labelWidget (optional): new label widget.

func (*Frame) SetShadowType

func (frame *Frame) SetShadowType(typ ShadowType)

SetShadowType sets the Frame:shadow-type for frame, i.e. whether it is drawn without (GTK_SHADOW_NONE) or with (other values) a visible border. Values other than GTK_SHADOW_NONE are treated identically by GtkFrame. The chosen type is applied by removing or adding the .flat class to the CSS node named border.

The function takes the following parameters:

  • typ: new ShadowType.

func (*Frame) ShadowType

func (frame *Frame) ShadowType() ShadowType

ShadowType retrieves the shadow type of the frame. See gtk_frame_set_shadow_type().

The function returns the following values:

  • shadowType: current shadow type of the frame.

type FrameAccessible

type FrameAccessible struct {
	ContainerAccessible
	// contains filtered or unexported fields
}

type FrameAccessibleClass added in v0.0.5

type FrameAccessibleClass struct {
	// contains filtered or unexported fields
}

FrameAccessibleClass: instance of this type is always passed by reference.

func (*FrameAccessibleClass) ParentClass added in v0.0.5

type FrameAccessibleOverrides added in v0.0.5

type FrameAccessibleOverrides struct {
}

FrameAccessibleOverrides contains methods that are overridable.

type FrameClass added in v0.0.5

type FrameClass struct {
	// contains filtered or unexported fields
}

FrameClass: instance of this type is always passed by reference.

func (*FrameClass) ParentClass added in v0.0.5

func (f *FrameClass) ParentClass() *BinClass

ParentClass: parent class.

type FrameOverrides added in v0.0.5

type FrameOverrides struct {
	// The function takes the following parameters:
	//
	ComputeChildAllocation func(allocation *Allocation)
}

FrameOverrides contains methods that are overridable.

type GLArea

type GLArea struct {
	Widget
	// contains filtered or unexported fields
}

GLArea is a widget that allows drawing with OpenGL.

GLArea sets up its own GLContext for the window it creates, and creates a custom GL framebuffer that the widget will do GL rendering onto. It also ensures that this framebuffer is the default GL rendering target when rendering.

In order to draw, you have to connect to the GLArea::render signal, or subclass GLArea and override the GtkGLAreaClass.render() virtual function.

The GLArea widget ensures that the GLContext is associated with the widget's drawing area, and it is kept updated when the size and position of the drawing area changes.

Drawing with GtkGLArea ##

The simplest way to draw using OpenGL commands in a GLArea is to create a widget instance and connect to the GLArea::render signal:

static void
on_realize (GtkGLarea *area)
{
  // We need to make the context current if we want to
  // call GL API
  gtk_gl_area_make_current (area);

  // If there were errors during the initialization or
  // when trying to make the context current, this
  // function will return a #GError for you to catch
  if (gtk_gl_area_get_error (area) != NULL)
    return;

  // You can also use gtk_gl_area_set_error() in order
  // to show eventual initialization errors on the
  // GtkGLArea widget itself
  GError *internal_error = NULL;
  init_buffer_objects (&error);
  if (error != NULL)
    {
      gtk_gl_area_set_error (area, error);
      g_error_free (error);
      return;
    }

  init_shaders (&error);
  if (error != NULL)
    {
      gtk_gl_area_set_error (area, error);
      g_error_free (error);
      return;
    }
}

If you need to change the options for creating the GLContext you should use the GLArea::create-context signal.

func NewGLArea

func NewGLArea() *GLArea

NewGLArea creates a new GLArea widget.

The function returns the following values:

  • glArea: new GLArea.

func (*GLArea) AttachBuffers

func (area *GLArea) AttachBuffers()

AttachBuffers ensures that the area framebuffer object is made the current draw and read target, and that all the required buffers for the area are created and bound to the frambuffer.

This function is automatically called before emitting the GLArea::render signal, and doesn't normally need to be called by application code.

func (*GLArea) AutoRender

func (area *GLArea) AutoRender() bool

AutoRender returns whether the area is in auto render mode or not.

The function returns the following values:

  • ok: TRUE if the area is auto rendering, FALSE otherwise.

func (*GLArea) ConnectCreateContext

func (area *GLArea) ConnectCreateContext(f func() (glContext gdk.GLContexter)) coreglib.SignalHandle

ConnectCreateContext signal is emitted when the widget is being realized, and allows you to override how the GL context is created. This is useful when you want to reuse an existing GL context, or if you want to try creating different kinds of GL options.

If context creation fails then the signal handler can use gtk_gl_area_set_error() to register a more detailed error of how the construction failed.

func (*GLArea) ConnectRender

func (area *GLArea) ConnectRender(f func(context gdk.GLContexter) (ok bool)) coreglib.SignalHandle

ConnectRender signal is emitted every time the contents of the GLArea should be redrawn.

The context is bound to the area prior to emitting this function, and the buffers are painted to the window once the emission terminates.

func (*GLArea) ConnectResize

func (area *GLArea) ConnectResize(f func(width, height int)) coreglib.SignalHandle

ConnectResize signal is emitted once when the widget is realized, and then each time the widget is changed while realized. This is useful in order to keep GL state up to date with the widget size, like for instance camera properties which may depend on the width/height ratio.

The GL context for the area is guaranteed to be current when this signal is emitted.

The default handler sets up the GL viewport.

func (*GLArea) Context

func (area *GLArea) Context() gdk.GLContexter

Context retrieves the GLContext used by area.

The function returns the following values:

  • glContext: GLContext.

func (*GLArea) Error

func (area *GLArea) Error() error

Error gets the current error set on the area.

The function returns the following values:

  • err (optional) or NULL.

func (*GLArea) HasAlpha

func (area *GLArea) HasAlpha() bool

HasAlpha returns whether the area has an alpha component.

The function returns the following values:

  • ok: TRUE if the area has an alpha component, FALSE otherwise.

func (*GLArea) HasDepthBuffer

func (area *GLArea) HasDepthBuffer() bool

HasDepthBuffer returns whether the area has a depth buffer.

The function returns the following values:

  • ok: TRUE if the area has a depth buffer, FALSE otherwise.

func (*GLArea) HasStencilBuffer

func (area *GLArea) HasStencilBuffer() bool

HasStencilBuffer returns whether the area has a stencil buffer.

The function returns the following values:

  • ok: TRUE if the area has a stencil buffer, FALSE otherwise.

func (*GLArea) MakeCurrent

func (area *GLArea) MakeCurrent()

MakeCurrent ensures that the GLContext used by area is associated with the GLArea.

This function is automatically called before emitting the GLArea::render signal, and doesn't normally need to be called by application code.

func (*GLArea) QueueRender

func (area *GLArea) QueueRender()

QueueRender marks the currently rendered data (if any) as invalid, and queues a redraw of the widget, ensuring that the GLArea::render signal is emitted during the draw.

This is only needed when the gtk_gl_area_set_auto_render() has been called with a FALSE value. The default behaviour is to emit GLArea::render on each draw.

func (*GLArea) RequiredVersion

func (area *GLArea) RequiredVersion() (major, minor int)

RequiredVersion retrieves the required version of OpenGL set using gtk_gl_area_set_required_version().

The function returns the following values:

  • major: return location for the required major version.
  • minor: return location for the required minor version.

func (*GLArea) SetAutoRender

func (area *GLArea) SetAutoRender(autoRender bool)

SetAutoRender: if auto_render is TRUE the GLArea::render signal will be emitted every time the widget draws. This is the default and is useful if drawing the widget is faster.

If auto_render is FALSE the data from previous rendering is kept around and will be used for drawing the widget the next time, unless the window is resized. In order to force a rendering gtk_gl_area_queue_render() must be called. This mode is useful when the scene changes seldomly, but takes a long time to redraw.

The function takes the following parameters:

  • autoRender: boolean.

func (*GLArea) SetError

func (area *GLArea) SetError(err error)

SetError sets an error on the area which will be shown instead of the GL rendering. This is useful in the GLArea::create-context signal if GL context creation fails.

The function takes the following parameters:

  • err (optional): new #GError, or NULL to unset the error.

func (*GLArea) SetHasAlpha

func (area *GLArea) SetHasAlpha(hasAlpha bool)

SetHasAlpha: if has_alpha is TRUE the buffer allocated by the widget will have an alpha channel component, and when rendering to the window the result will be composited over whatever is below the widget.

If has_alpha is FALSE there will be no alpha channel, and the buffer will fully replace anything below the widget.

The function takes the following parameters:

  • hasAlpha: TRUE to add an alpha component.

func (*GLArea) SetHasDepthBuffer

func (area *GLArea) SetHasDepthBuffer(hasDepthBuffer bool)

SetHasDepthBuffer: if has_depth_buffer is TRUE the widget will allocate and enable a depth buffer for the target framebuffer. Otherwise there will be none.

The function takes the following parameters:

  • hasDepthBuffer: TRUE to add a depth buffer.

func (*GLArea) SetHasStencilBuffer

func (area *GLArea) SetHasStencilBuffer(hasStencilBuffer bool)

SetHasStencilBuffer: if has_stencil_buffer is TRUE the widget will allocate and enable a stencil buffer for the target framebuffer. Otherwise there will be none.

The function takes the following parameters:

  • hasStencilBuffer: TRUE to add a stencil buffer.

func (*GLArea) SetRequiredVersion

func (area *GLArea) SetRequiredVersion(major, minor int)

SetRequiredVersion sets the required version of OpenGL to be used when creating the context for the widget.

This function must be called before the area has been realized.

The function takes the following parameters:

  • major version.
  • minor version.

func (*GLArea) SetUseES

func (area *GLArea) SetUseES(useEs bool)

SetUseES sets whether the area should create an OpenGL or an OpenGL ES context.

You should check the capabilities of the GLContext before drawing with either API.

The function takes the following parameters:

  • useEs: whether to use OpenGL or OpenGL ES.

func (*GLArea) UseES

func (area *GLArea) UseES() bool

UseES retrieves the value set by gtk_gl_area_set_use_es().

The function returns the following values:

  • ok: TRUE if the GLArea should create an OpenGL ES context and FALSE otherwise.

type GLAreaClass added in v0.0.5

type GLAreaClass struct {
	// contains filtered or unexported fields
}

GLAreaClass: GtkGLAreaClass structure contains only private data.

An instance of this type is always passed by reference.

type GLAreaOverrides added in v0.0.5

type GLAreaOverrides struct {
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	Render func(context gdk.GLContexter) bool
	// The function takes the following parameters:
	//
	//   - width
	//   - height
	//
	Resize func(width, height int)
}

GLAreaOverrides contains methods that are overridable.

type Gesture

type Gesture struct {
	EventController
	// contains filtered or unexported fields
}

Gesture is the base object for gesture recognition, although this object is quite generalized to serve as a base for multi-touch gestures, it is suitable to implement single-touch and pointer-based gestures (using the special NULL EventSequence value for these).

The number of touches that a Gesture need to be recognized is controlled by the Gesture:n-points property, if a gesture is keeping track of less or more than that number of sequences, it won't check wether the gesture is recognized.

As soon as the gesture has the expected number of touches, the gesture will run the Gesture::check signal regularly on input events until the gesture is recognized, the criteria to consider a gesture as "recognized" is left to Gesture subclasses.

A recognized gesture will then emit the following signals:

- Gesture::begin when the gesture is recognized.

- A number of Gesture::update, whenever an input event is processed.

- Gesture::end when the gesture is no longer recognized.

Event propagation

In order to receive events, a gesture needs to either set a propagation phase through gtk_event_controller_set_propagation_phase(), or feed those manually through gtk_event_controller_handle_event().

In the capture phase, events are propagated from the toplevel down to the target widget, and gestures that are attached to containers above the widget get a chance to interact with the event before it reaches the target.

After the capture phase, GTK+ emits the traditional Widget::button-press-event, Widget::button-release-event, Widget::touch-event, etc signals. Gestures with the GTK_PHASE_TARGET phase are fed events from the default Widget::event handlers.

In the bubble phase, events are propagated up from the target widget to the toplevel, and gestures that are attached to containers above the widget get a chance to interact with events that have not been handled yet.

States of a sequence

Whenever input interaction happens, a single event may trigger a cascade of Gestures, both across the parents of the widget receiving the event and in parallel within an individual widget. It is a responsibility of the widgets using those gestures to set the state of touch sequences accordingly in order to enable cooperation of gestures around the EventSequences triggering those.

Within a widget, gestures can be grouped through gtk_gesture_group(), grouped gestures synchronize the state of sequences, so calling gtk_gesture_set_sequence_state() on one will effectively propagate the state throughout the group.

By default, all sequences start out in the K_EVENT_SEQUENCE_NONE state, sequences in this state trigger the gesture event handler, but event propagation will continue unstopped by gestures.

If a sequence enters into the K_EVENT_SEQUENCE_DENIED state, the gesture group will effectively ignore the sequence, letting events go unstopped through the gesture, but the "slot" will still remain occupied while the touch is active.

If a sequence enters in the K_EVENT_SEQUENCE_CLAIMED state, the gesture group will grab all interaction on the sequence, by:

- Setting the same sequence to K_EVENT_SEQUENCE_DENIED on every other gesture group within the widget, and every gesture on parent widgets in the propagation chain.

- calling Gesture::cancel on every gesture in widgets underneath in the propagation chain.

- Stopping event propagation after the gesture group handles the event.

Note: if a sequence is set early to K_EVENT_SEQUENCE_CLAIMED on K_TOUCH_BEGIN/K_BUTTON_PRESS (so those events are captured before reaching the event widget, this implies K_PHASE_CAPTURE), one similar event will emulated if the sequence changes to K_EVENT_SEQUENCE_DENIED. This way event coherence is preserved before event propagation is unstopped again.

Sequence states can't be changed freely, see gtk_gesture_set_sequence_state() to know about the possible lifetimes of a EventSequence.

Touchpad gestures

On the platforms that support it, Gesture will handle transparently touchpad gesture events. The only precautions users of Gesture should do to enable this support are:

- Enabling GDK_TOUCHPAD_GESTURE_MASK on their Windows

- If the gesture has GTK_PHASE_NONE, ensuring events of type GDK_TOUCHPAD_SWIPE and GDK_TOUCHPAD_PINCH are handled by the Gesture.

func BaseGesture

func BaseGesture(obj Gesturer) *Gesture

BaseGesture returns the underlying base object.

func (*Gesture) BoundingBox

func (gesture *Gesture) BoundingBox() (*gdk.Rectangle, bool)

BoundingBox: if there are touch sequences being currently handled by gesture, this function returns TRUE and fills in rect with the bounding box containing all active touches. Otherwise, FALSE will be returned.

Note: This function will yield unexpected results on touchpad gestures. Since there is no correlation between physical and pixel distances, these will look as if constrained in an infinitely small area, rect width and height will thus be 0 regardless of the number of touchpoints.

The function returns the following values:

  • rect: bounding box containing all active touches.
  • ok: TRUE if there are active touches, FALSE otherwise.

func (*Gesture) BoundingBoxCenter

func (gesture *Gesture) BoundingBoxCenter() (x, y float64, ok bool)

BoundingBoxCenter: if there are touch sequences being currently handled by gesture, this function returns TRUE and fills in x and y with the center of the bounding box containing all active touches. Otherwise, FALSE will be returned.

The function returns the following values:

  • x: x coordinate for the bounding box center.
  • y: y coordinate for the bounding box center.
  • ok: FALSE if no active touches are present, TRUE otherwise.

func (*Gesture) ConnectBegin

func (gesture *Gesture) ConnectBegin(f func(sequence *gdk.EventSequence)) coreglib.SignalHandle

ConnectBegin: this signal is emitted when the gesture is recognized. This means the number of touch sequences matches Gesture:n-points, and the Gesture::check handler(s) returned UE.

Note: These conditions may also happen when an extra touch (eg. a third touch on a 2-touches gesture) is lifted, in that situation sequence won't pertain to the current set of active touches, so don't rely on this being true.

func (*Gesture) ConnectCancel

func (gesture *Gesture) ConnectCancel(f func(sequence *gdk.EventSequence)) coreglib.SignalHandle

ConnectCancel: this signal is emitted whenever a sequence is cancelled. This usually happens on active touches when gtk_event_controller_reset() is called on gesture (manually, due to grabs...), or the individual sequence was claimed by parent widgets' controllers (see gtk_gesture_set_sequence_state()).

gesture must forget everything about sequence as a reaction to this signal.

func (*Gesture) ConnectEnd

func (gesture *Gesture) ConnectEnd(f func(sequence *gdk.EventSequence)) coreglib.SignalHandle

ConnectEnd: this signal is emitted when gesture either stopped recognizing the event sequences as something to be handled (the Gesture::check handler returned FALSE), or the number of touch sequences became higher or lower than Gesture:n-points.

Note: sequence might not pertain to the group of sequences that were previously triggering recognition on gesture (ie. a just pressed touch sequence that exceeds Gesture:n-points). This situation may be detected by checking through gtk_gesture_handles_sequence().

func (*Gesture) ConnectSequenceStateChanged

func (gesture *Gesture) ConnectSequenceStateChanged(f func(sequence *gdk.EventSequence, state EventSequenceState)) coreglib.SignalHandle

ConnectSequenceStateChanged: this signal is emitted whenever a sequence state changes. See gtk_gesture_set_sequence_state() to know more about the expectable sequence lifetimes.

func (*Gesture) ConnectUpdate

func (gesture *Gesture) ConnectUpdate(f func(sequence *gdk.EventSequence)) coreglib.SignalHandle

ConnectUpdate: this signal is emitted whenever an event is handled while the gesture is recognized. sequence is guaranteed to pertain to the set of active touches.

func (*Gesture) Device

func (gesture *Gesture) Device() gdk.Devicer

Device returns the master Device that is currently operating on gesture, or NULL if the gesture is not being interacted.

The function returns the following values:

  • device (optional) or NULL.

func (*Gesture) GetGroup

func (gesture *Gesture) GetGroup() []Gesturer

GetGroup returns all gestures in the group of gesture.

The function returns the following values:

  • list: list of Gestures, free with g_list_free().

func (*Gesture) Group

func (groupGesture *Gesture) Group(gesture Gesturer)

Group adds gesture to the same group than group_gesture. Gestures are by default isolated in their own groups.

When gestures are grouped, the state of EventSequences is kept in sync for all of those, so calling gtk_gesture_set_sequence_state(), on one will transfer the same value to the others.

Groups also perform an "implicit grabbing" of sequences, if a EventSequence state is set to K_EVENT_SEQUENCE_CLAIMED on one group, every other gesture group attached to the same Widget will switch the state for that sequence to K_EVENT_SEQUENCE_DENIED.

The function takes the following parameters:

  • gesture: Gesture.

func (*Gesture) HandlesSequence

func (gesture *Gesture) HandlesSequence(sequence *gdk.EventSequence) bool

HandlesSequence returns TRUE if gesture is currently handling events corresponding to sequence.

The function takes the following parameters:

  • sequence (optional) or NULL.

The function returns the following values:

  • ok: TRUE if gesture is handling sequence, FALSE otherwise.

func (*Gesture) IsActive

func (gesture *Gesture) IsActive() bool

IsActive returns TRUE if the gesture is currently active. A gesture is active meanwhile there are touch sequences interacting with it.

The function returns the following values:

  • ok: TRUE if gesture is active.

func (*Gesture) IsGroupedWith

func (gesture *Gesture) IsGroupedWith(other Gesturer) bool

IsGroupedWith returns TRUE if both gestures pertain to the same group.

The function takes the following parameters:

  • other Gesture.

The function returns the following values:

  • ok: whether the gestures are grouped.

func (*Gesture) IsRecognized

func (gesture *Gesture) IsRecognized() bool

IsRecognized returns TRUE if the gesture is currently recognized. A gesture is recognized if there are as many interacting touch sequences as required by gesture, and Gesture::check returned TRUE for the sequences being currently interpreted.

The function returns the following values:

  • ok: TRUE if gesture is recognized.

func (*Gesture) LastEvent

func (gesture *Gesture) LastEvent(sequence *gdk.EventSequence) *gdk.Event

LastEvent returns the last event that was processed for sequence.

Note that the returned pointer is only valid as long as the sequence is still interpreted by the gesture. If in doubt, you should make a copy of the event.

The function takes the following parameters:

  • sequence (optional): EventSequence.

The function returns the following values:

  • event (optional): last event from sequence.

func (*Gesture) LastUpdatedSequence

func (gesture *Gesture) LastUpdatedSequence() *gdk.EventSequence

LastUpdatedSequence returns the EventSequence that was last updated on gesture.

The function returns the following values:

  • eventSequence (optional): last updated sequence.

func (*Gesture) Point

func (gesture *Gesture) Point(sequence *gdk.EventSequence) (x, y float64, ok bool)

Point: if sequence is currently being interpreted by gesture, this function returns TRUE and fills in x and y with the last coordinates stored for that event sequence. The coordinates are always relative to the widget allocation.

The function takes the following parameters:

  • sequence (optional) or NULL for pointer events.

The function returns the following values:

  • x (optional): return location for X axis of the sequence coordinates.
  • y (optional): return location for Y axis of the sequence coordinates.
  • ok: TRUE if sequence is currently interpreted.

func (*Gesture) SequenceState

func (gesture *Gesture) SequenceState(sequence *gdk.EventSequence) EventSequenceState

SequenceState returns the sequence state, as seen by gesture.

The function takes the following parameters:

  • sequence: EventSequence.

The function returns the following values:

  • eventSequenceState: sequence state in gesture.

func (*Gesture) Sequences

func (gesture *Gesture) Sequences() []*gdk.EventSequence

Sequences returns the list of EventSequences currently being interpreted by gesture.

The function returns the following values:

  • list: list of EventSequences, the list elements are owned by GTK+ and must not be freed or modified, the list itself must be deleted through g_list_free().

func (*Gesture) SetSequenceState

func (gesture *Gesture) SetSequenceState(sequence *gdk.EventSequence, state EventSequenceState) bool

SetSequenceState sets the state of sequence in gesture. Sequences start in state K_EVENT_SEQUENCE_NONE, and whenever they change state, they can never go back to that state. Likewise, sequences in state K_EVENT_SEQUENCE_DENIED cannot turn back to a not denied state. With these rules, the lifetime of an event sequence is constrained to the next four:

* None * None → Denied * None → Claimed * None → Claimed → Denied

Note: Due to event handling ordering, it may be unsafe to set the state on another gesture within a Gesture::begin signal handler, as the callback might be executed before the other gesture knows about the sequence. A safe way to perform this could be:

static void
first_gesture_begin_cb (GtkGesture       *first_gesture,
                        GdkEventSequence *sequence,
                        gpointer          user_data)
{
  gtk_gesture_set_sequence_state (first_gesture, sequence, GTK_EVENT_SEQUENCE_CLAIMED);
  gtk_gesture_set_sequence_state (second_gesture, sequence, GTK_EVENT_SEQUENCE_DENIED);
}

static void
second_gesture_begin_cb (GtkGesture       *second_gesture,
                         GdkEventSequence *sequence,
                         gpointer          user_data)
{
  if (gtk_gesture_get_sequence_state (first_gesture, sequence) == GTK_EVENT_SEQUENCE_CLAIMED)
    gtk_gesture_set_sequence_state (second_gesture, sequence, GTK_EVENT_SEQUENCE_DENIED);
}

If both gestures are in the same group, just set the state on the gesture emitting the event, the sequence will be already be initialized to the group's global state when the second gesture processes the event.

The function takes the following parameters:

  • sequence: EventSequence.
  • state: sequence state.

The function returns the following values:

  • ok: TRUE if sequence is handled by gesture, and the state is changed successfully.

func (*Gesture) SetState

func (gesture *Gesture) SetState(state EventSequenceState) bool

SetState sets the state of all sequences that gesture is currently interacting with. See gtk_gesture_set_sequence_state() for more details on sequence states.

The function takes the following parameters:

  • state: sequence state.

The function returns the following values:

  • ok: TRUE if the state of at least one sequence was changed successfully.

func (*Gesture) SetWindow

func (gesture *Gesture) SetWindow(window gdk.Windower)

SetWindow sets a specific window to receive events about, so gesture will effectively handle only events targeting window, or a child of it. window must pertain to gtk_event_controller_get_widget().

The function takes the following parameters:

  • window (optional) or NULL.

func (*Gesture) Ungroup

func (gesture *Gesture) Ungroup()

Ungroup separates gesture into an isolated group.

func (*Gesture) Window

func (gesture *Gesture) Window() gdk.Windower

Window returns the user-defined window that receives the events handled by gesture. See gtk_gesture_set_window() for more information.

The function returns the following values:

  • window (optional): user defined window, or NULL if none.

type GestureDrag

type GestureDrag struct {
	GestureSingle
	// contains filtered or unexported fields
}

GestureDrag is a Gesture implementation that recognizes drag operations. The drag operation itself can be tracked throught the GestureDrag::drag-begin, GestureDrag::drag-update and GestureDrag::drag-end signals, or the relevant coordinates be extracted through gtk_gesture_drag_get_offset() and gtk_gesture_drag_get_start_point().

func NewGestureDrag

func NewGestureDrag(widget Widgetter) *GestureDrag

NewGestureDrag returns a newly created Gesture that recognizes drags.

The function takes the following parameters:

  • widget: Widget.

The function returns the following values:

  • gestureDrag: newly created GestureDrag.

func (*GestureDrag) ConnectDragBegin

func (gesture *GestureDrag) ConnectDragBegin(f func(startX, startY float64)) coreglib.SignalHandle

ConnectDragBegin: this signal is emitted whenever dragging starts.

func (*GestureDrag) ConnectDragEnd

func (gesture *GestureDrag) ConnectDragEnd(f func(offsetX, offsetY float64)) coreglib.SignalHandle

ConnectDragEnd: this signal is emitted whenever the dragging is finished.

func (*GestureDrag) ConnectDragUpdate

func (gesture *GestureDrag) ConnectDragUpdate(f func(offsetX, offsetY float64)) coreglib.SignalHandle

ConnectDragUpdate: this signal is emitted whenever the dragging point moves.

func (*GestureDrag) Offset

func (gesture *GestureDrag) Offset() (x, y float64, ok bool)

Offset: if the gesture is active, this function returns TRUE and fills in x and y with the coordinates of the current point, as an offset to the starting drag point.

The function returns the following values:

  • x (optional): x offset for the current point.
  • y (optional): y offset for the current point.
  • ok: TRUE if the gesture is active.

func (*GestureDrag) StartPoint

func (gesture *GestureDrag) StartPoint() (x, y float64, ok bool)

StartPoint: if the gesture is active, this function returns TRUE and fills in x and y with the drag start coordinates, in window-relative coordinates.

The function returns the following values:

  • x (optional): x coordinate for the drag start point.
  • y (optional): y coordinate for the drag start point.
  • ok: TRUE if the gesture is active.

type GestureLongPress

type GestureLongPress struct {
	GestureSingle
	// contains filtered or unexported fields
}

GestureLongPress is a Gesture implementation able to recognize long presses, triggering the GestureLongPress::pressed after the timeout is exceeded.

If the touchpoint is lifted before the timeout passes, or if it drifts too far of the initial press point, the GestureLongPress::cancelled signal will be emitted.

func NewGestureLongPress

func NewGestureLongPress(widget Widgetter) *GestureLongPress

NewGestureLongPress returns a newly created Gesture that recognizes long presses.

The function takes the following parameters:

  • widget: Widget.

The function returns the following values:

  • gestureLongPress: newly created GestureLongPress.

func (*GestureLongPress) ConnectCancelled

func (v *GestureLongPress) ConnectCancelled(f func()) coreglib.SignalHandle

ConnectCancelled: this signal is emitted whenever a press moved too far, or was released before GestureLongPress::pressed happened.

func (*GestureLongPress) ConnectPressed

func (v *GestureLongPress) ConnectPressed(f func(x, y float64)) coreglib.SignalHandle

ConnectPressed: this signal is emitted whenever a press goes unmoved/unreleased longer than what the GTK+ defaults tell.

type GestureMultiPress

type GestureMultiPress struct {
	GestureSingle
	// contains filtered or unexported fields
}

GestureMultiPress is a Gesture implementation able to recognize multiple clicks on a nearby zone, which can be listened for through the GestureMultiPress::pressed signal. Whenever time or distance between clicks exceed the GTK+ defaults, GestureMultiPress::stopped is emitted, and the click counter is reset.

Callers may also restrict the area that is considered valid for a >1 touch/button press through gtk_gesture_multi_press_set_area(), so any click happening outside that area is considered to be a first click of its own.

func NewGestureMultiPress

func NewGestureMultiPress(widget Widgetter) *GestureMultiPress

NewGestureMultiPress returns a newly created Gesture that recognizes single and multiple presses.

The function takes the following parameters:

  • widget: Widget.

The function returns the following values:

  • gestureMultiPress: newly created GestureMultiPress.

func (*GestureMultiPress) Area

func (gesture *GestureMultiPress) Area() (*gdk.Rectangle, bool)

Area: if an area was set through gtk_gesture_multi_press_set_area(), this function will return TRUE and fill in rect with the press area. See gtk_gesture_multi_press_set_area() for more details on what the press area represents.

The function returns the following values:

  • rect: return location for the press area.
  • ok: TRUE if rect was filled with the press area.

func (*GestureMultiPress) ConnectPressed

func (gesture *GestureMultiPress) ConnectPressed(f func(nPress int, x, y float64)) coreglib.SignalHandle

ConnectPressed: this signal is emitted whenever a button or touch press happens.

func (*GestureMultiPress) ConnectReleased

func (gesture *GestureMultiPress) ConnectReleased(f func(nPress int, x, y float64)) coreglib.SignalHandle

ConnectReleased: this signal is emitted when a button or touch is released. n_press will report the number of press that is paired to this event, note that GestureMultiPress::stopped may have been emitted between the press and its release, n_press will only start over at the next press.

func (*GestureMultiPress) ConnectStopped

func (gesture *GestureMultiPress) ConnectStopped(f func()) coreglib.SignalHandle

ConnectStopped: this signal is emitted whenever any time/distance threshold has been exceeded.

func (*GestureMultiPress) SetArea

func (gesture *GestureMultiPress) SetArea(rect *gdk.Rectangle)

SetArea: if rect is non-NULL, the press area will be checked to be confined within the rectangle, otherwise the button count will be reset so the press is seen as being the first one. If rect is NULL, the area will be reset to an unrestricted state.

Note: The rectangle is only used to determine whether any non-first click falls within the expected area. This is not akin to an input shape.

The function takes the following parameters:

  • rect (optional): rectangle to receive coordinates on.

type GesturePan

type GesturePan struct {
	GestureDrag
	// contains filtered or unexported fields
}

GesturePan is a Gesture implementation able to recognize pan gestures, those are drags that are locked to happen along one axis. The axis that a GesturePan handles is defined at construct time, and can be changed through gtk_gesture_pan_set_orientation().

When the gesture starts to be recognized, GesturePan will attempt to determine as early as possible whether the sequence is moving in the expected direction, and denying the sequence if this does not happen.

Once a panning gesture along the expected axis is recognized, the GesturePan::pan signal will be emitted as input events are received, containing the offset in the given axis.

func NewGesturePan

func NewGesturePan(widget Widgetter, orientation Orientation) *GesturePan

NewGesturePan returns a newly created Gesture that recognizes pan gestures.

The function takes the following parameters:

  • widget: Widget.
  • orientation: expected orientation.

The function returns the following values:

  • gesturePan: newly created GesturePan.

func (*GesturePan) ConnectPan

func (gesture *GesturePan) ConnectPan(f func(direction PanDirection, offset float64)) coreglib.SignalHandle

ConnectPan: this signal is emitted once a panning gesture along the expected axis is detected.

func (*GesturePan) Orientation

func (gesture *GesturePan) Orientation() Orientation

Orientation returns the orientation of the pan gestures that this gesture expects.

The function returns the following values:

  • orientation: expected orientation for pan gestures.

func (*GesturePan) SetOrientation

func (gesture *GesturePan) SetOrientation(orientation Orientation)

SetOrientation sets the orientation to be expected on pan gestures.

The function takes the following parameters:

  • orientation: expected orientation.

type GestureRotate

type GestureRotate struct {
	Gesture
	// contains filtered or unexported fields
}

GestureRotate is a Gesture implementation able to recognize 2-finger rotations, whenever the angle between both handled sequences changes, the GestureRotate::angle-changed signal is emitted.

func NewGestureRotate

func NewGestureRotate(widget Widgetter) *GestureRotate

NewGestureRotate returns a newly created Gesture that recognizes 2-touch rotation gestures.

The function takes the following parameters:

  • widget: Widget.

The function returns the following values:

  • gestureRotate: newly created GestureRotate.

func (*GestureRotate) AngleDelta

func (gesture *GestureRotate) AngleDelta() float64

AngleDelta: if gesture is active, this function returns the angle difference in radians since the gesture was first recognized. If gesture is not active, 0 is returned.

The function returns the following values:

  • gdouble: angle delta in radians.

func (*GestureRotate) ConnectAngleChanged

func (gesture *GestureRotate) ConnectAngleChanged(f func(angle, angleDelta float64)) coreglib.SignalHandle

ConnectAngleChanged: this signal is emitted when the angle between both tracked points changes.

type GestureSingle

type GestureSingle struct {
	Gesture
	// contains filtered or unexported fields
}

GestureSingle is a subclass of Gesture, optimized (although not restricted) for dealing with mouse and single-touch gestures. Under interaction, these gestures stick to the first interacting sequence, which is accessible through gtk_gesture_single_get_current_sequence() while the gesture is being interacted with.

By default gestures react to both GDK_BUTTON_PRIMARY and touch events, gtk_gesture_single_set_touch_only() can be used to change the touch behavior. Callers may also specify a different mouse button number to interact with through gtk_gesture_single_set_button(), or react to any mouse button by setting 0. While the gesture is active, the button being currently pressed can be known through gtk_gesture_single_get_current_button().

func (*GestureSingle) Button

func (gesture *GestureSingle) Button() uint

Button returns the button number gesture listens for, or 0 if gesture reacts to any button press.

The function returns the following values:

  • guint: button number, or 0 for any button.

func (*GestureSingle) CurrentButton

func (gesture *GestureSingle) CurrentButton() uint

CurrentButton returns the button number currently interacting with gesture, or 0 if there is none.

The function returns the following values:

  • guint: current button number.

func (*GestureSingle) CurrentSequence

func (gesture *GestureSingle) CurrentSequence() *gdk.EventSequence

CurrentSequence returns the event sequence currently interacting with gesture. This is only meaningful if gtk_gesture_is_active() returns TRUE.

The function returns the following values:

  • eventSequence (optional): current sequence.

func (*GestureSingle) Exclusive

func (gesture *GestureSingle) Exclusive() bool

Exclusive gets whether a gesture is exclusive. For more information, see gtk_gesture_single_set_exclusive().

The function returns the following values:

  • ok: whether the gesture is exclusive.

func (*GestureSingle) SetButton

func (gesture *GestureSingle) SetButton(button uint)

SetButton sets the button number gesture listens to. If non-0, every button press from a different button number will be ignored. Touch events implicitly match with button 1.

The function takes the following parameters:

  • button number to listen to, or 0 for any button.

func (*GestureSingle) SetExclusive

func (gesture *GestureSingle) SetExclusive(exclusive bool)

SetExclusive sets whether gesture is exclusive. An exclusive gesture will only handle pointer and "pointer emulated" touch events, so at any given time, there is only one sequence able to interact with those.

The function takes the following parameters:

  • exclusive: TRUE to make gesture exclusive.

func (*GestureSingle) SetTouchOnly

func (gesture *GestureSingle) SetTouchOnly(touchOnly bool)

SetTouchOnly: if touch_only is TRUE, gesture will only handle events of type K_TOUCH_BEGIN, K_TOUCH_UPDATE or K_TOUCH_END. If FALSE, mouse events will be handled too.

The function takes the following parameters:

  • touchOnly: whether gesture handles only touch events.

func (*GestureSingle) TouchOnly

func (gesture *GestureSingle) TouchOnly() bool

TouchOnly returns TRUE if the gesture is only triggered by touch events.

The function returns the following values:

  • ok: TRUE if the gesture only handles touch events.

type GestureStylus

type GestureStylus struct {
	GestureSingle
	// contains filtered or unexported fields
}

GestureStylus is a Gesture implementation specific to stylus input. The provided signals just provide the basic information.

func NewGestureStylus

func NewGestureStylus(widget Widgetter) *GestureStylus

NewGestureStylus creates a new GestureStylus.

The function takes the following parameters:

  • widget: Widget.

The function returns the following values:

  • gestureStylus: newly created stylus gesture.

func (*GestureStylus) Axis

func (gesture *GestureStylus) Axis(axis gdk.AxisUse) (float64, bool)

Axis returns the current value for the requested axis. This function must be called from either the GestureStylus:down, GestureStylus:motion, GestureStylus:up or GestureStylus:proximity signals.

The function takes the following parameters:

  • axis: requested device axis.

The function returns the following values:

  • value: return location for the axis value.
  • ok if there is a current value for the axis.

func (*GestureStylus) ConnectDown

func (gesture *GestureStylus) ConnectDown(f func(object, p0 float64)) coreglib.SignalHandle

func (*GestureStylus) ConnectMotion

func (gesture *GestureStylus) ConnectMotion(f func(object, p0 float64)) coreglib.SignalHandle

func (*GestureStylus) ConnectProximity

func (gesture *GestureStylus) ConnectProximity(f func(object, p0 float64)) coreglib.SignalHandle

func (*GestureStylus) ConnectUp

func (gesture *GestureStylus) ConnectUp(f func(object, p0 float64)) coreglib.SignalHandle

func (*GestureStylus) DeviceTool

func (gesture *GestureStylus) DeviceTool() *gdk.DeviceTool

DeviceTool returns the DeviceTool currently driving input through this gesture. This function must be called from either the GestureStylus::down, GestureStylus::motion, GestureStylus::up or GestureStylus::proximity signal handlers.

The function returns the following values:

  • deviceTool (optional): current stylus tool.

type GestureSwipe

type GestureSwipe struct {
	GestureSingle
	// contains filtered or unexported fields
}

GestureSwipe is a Gesture implementation able to recognize swipes, after a press/move/.../move/release sequence happens, the GestureSwipe::swipe signal will be emitted, providing the velocity and directionality of the sequence at the time it was lifted.

If the velocity is desired in intermediate points, gtk_gesture_swipe_get_velocity() can be called on eg. a Gesture::update handler.

All velocities are reported in pixels/sec units.

func NewGestureSwipe

func NewGestureSwipe(widget Widgetter) *GestureSwipe

NewGestureSwipe returns a newly created Gesture that recognizes swipes.

The function takes the following parameters:

  • widget: Widget.

The function returns the following values:

  • gestureSwipe: newly created GestureSwipe.

func (*GestureSwipe) ConnectSwipe

func (gesture *GestureSwipe) ConnectSwipe(f func(velocityX, velocityY float64)) coreglib.SignalHandle

ConnectSwipe: this signal is emitted when the recognized gesture is finished, velocity and direction are a product of previously recorded events.

func (*GestureSwipe) Velocity

func (gesture *GestureSwipe) Velocity() (velocityX, velocityY float64, ok bool)

Velocity: if the gesture is recognized, this function returns TRUE and fill in velocity_x and velocity_y with the recorded velocity, as per the last event(s) processed.

The function returns the following values:

  • velocityX: return value for the velocity in the X axis, in pixels/sec.
  • velocityY: return value for the velocity in the Y axis, in pixels/sec.
  • ok: whether velocity could be calculated.

type GestureZoom

type GestureZoom struct {
	Gesture
	// contains filtered or unexported fields
}

GestureZoom is a Gesture implementation able to recognize pinch/zoom gestures, whenever the distance between both tracked sequences changes, the GestureZoom::scale-changed signal is emitted to report the scale factor.

func NewGestureZoom

func NewGestureZoom(widget Widgetter) *GestureZoom

NewGestureZoom returns a newly created Gesture that recognizes zoom in/out gestures (usually known as pinch/zoom).

The function takes the following parameters:

  • widget: Widget.

The function returns the following values:

  • gestureZoom: newly created GestureZoom.

func (*GestureZoom) ConnectScaleChanged

func (gesture *GestureZoom) ConnectScaleChanged(f func(scale float64)) coreglib.SignalHandle

ConnectScaleChanged: this signal is emitted whenever the distance between both tracked sequences changes.

func (*GestureZoom) ScaleDelta

func (gesture *GestureZoom) ScaleDelta() float64

ScaleDelta: if gesture is active, this function returns the zooming difference since the gesture was recognized (hence the starting point is considered 1:1). If gesture is not active, 1 is returned.

The function returns the following values:

  • gdouble: scale delta.

type Gesturer

type Gesturer interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

Gesturer describes types inherited from class Gesture.

To get the original type, the caller must assert this to an interface or another type.

type Gradient

type Gradient struct {
	// contains filtered or unexported fields
}

Gradient is a boxed type that represents a gradient. It is the result of parsing a [gradient expression][gtkcssprovider-gradients]. To obtain the gradient represented by a GtkGradient, it has to be resolved with gtk_gradient_resolve(), which replaces all symbolic color references by the colors they refer to (in a given context) and constructs a #cairo_pattern_t value.

It is not normally necessary to deal directly with Gradients, since they are mostly used behind the scenes by StyleContext and CssProvider.

Gradient is deprecated. It was used internally by GTK’s CSS engine to represent gradients. As its handling is not conforming to modern web standards, it is not used anymore. If you want to use gradients in your own code, please use Cairo directly.

An instance of this type is always passed by reference.

func NewGradientLinear

func NewGradientLinear(x0 float64, y0 float64, x1 float64, y1 float64) *Gradient

NewGradientLinear constructs a struct Gradient.

func NewGradientRadial

func NewGradientRadial(x0 float64, y0 float64, radius0 float64, x1 float64, y1 float64, radius1 float64) *Gradient

NewGradientRadial constructs a struct Gradient.

func (*Gradient) AddColorStop deprecated

func (gradient *Gradient) AddColorStop(offset float64, color *SymbolicColor)

AddColorStop adds a stop color to gradient.

Deprecated: Gradient is deprecated.

The function takes the following parameters:

  • offset for the color stop.
  • color to use.

func (*Gradient) Resolve deprecated

func (gradient *Gradient) Resolve(props *StyleProperties) (*cairo.Pattern, bool)

Resolve: if gradient is resolvable, resolved_gradient will be filled in with the resolved gradient as a cairo_pattern_t, and TRUE will be returned. Generally, if gradient can’t be resolved, it is due to it being defined on top of a named color that doesn't exist in props.

Deprecated: Gradient is deprecated.

The function takes the following parameters:

  • props to use when resolving named colors.

The function returns the following values:

  • resolvedGradient: return location for the resolved pattern.
  • ok: TRUE if the gradient has been resolved.

func (*Gradient) ResolveForContext

func (gradient *Gradient) ResolveForContext(context *StyleContext) *cairo.Pattern

The function takes the following parameters:

The function returns the following values:

func (*Gradient) String deprecated

func (gradient *Gradient) String() string

String creates a string representation for gradient that is suitable for using in GTK CSS files.

Deprecated: Gradient is deprecated.

The function returns the following values:

  • utf8: string representation for gradient.

type Grid

type Grid struct {
	Container

	*coreglib.Object
	Orientable
	// contains filtered or unexported fields
}

Grid is a container which arranges its child widgets in rows and columns, with arbitrary positions and horizontal/vertical spans.

Children are added using gtk_grid_attach(). They can span multiple rows or columns. It is also possible to add a child next to an existing child, using gtk_grid_attach_next_to(). The behaviour of GtkGrid when several children occupy the same grid cell is undefined.

GtkGrid can be used like a Box by just using gtk_container_add(), which will place children next to each other in the direction determined by the Orientable:orientation property. However, if all you want is a single row or column, then Box is the preferred widget.

CSS nodes

GtkGrid uses a single CSS node with name grid.

func NewGrid

func NewGrid() *Grid

NewGrid creates a new grid widget.

The function returns the following values:

  • grid: new Grid.

func (*Grid) Attach

func (grid *Grid) Attach(child Widgetter, left, top, width, height int)

Attach adds a widget to the grid.

The position of child is determined by left and top. The number of “cells” that child will occupy is determined by width and height.

The function takes the following parameters:

  • child: widget to add.
  • left: column number to attach the left side of child to.
  • top: row number to attach the top side of child to.
  • width: number of columns that child will span.
  • height: number of rows that child will span.

func (*Grid) AttachNextTo

func (grid *Grid) AttachNextTo(child, sibling Widgetter, side PositionType, width, height int)

AttachNextTo adds a widget to the grid.

The widget is placed next to sibling, on the side determined by side. When sibling is NULL, the widget is placed in row (for left or right placement) or column 0 (for top or bottom placement), at the end indicated by side.

Attaching widgets labeled [1], [2], [3] with sibling == NULL and side == GTK_POS_LEFT yields a layout of [3][2][1].

The function takes the following parameters:

  • child: widget to add.
  • sibling (optional): child of grid that child will be placed next to, or NULL to place child at the beginning or end.
  • side of sibling that child is positioned next to.
  • width: number of columns that child will span.
  • height: number of rows that child will span.

func (*Grid) BaselineRow

func (grid *Grid) BaselineRow() int

BaselineRow returns which row defines the global baseline of grid.

The function returns the following values:

  • gint: row index defining the global baseline.

func (*Grid) ChildAt

func (grid *Grid) ChildAt(left, top int) Widgetter

ChildAt gets the child of grid whose area covers the grid cell whose upper left corner is at left, top.

The function takes the following parameters:

  • left edge of the cell.
  • top edge of the cell.

The function returns the following values:

  • widget (optional): child at the given position, or NULL.

func (*Grid) ColumnHomogeneous

func (grid *Grid) ColumnHomogeneous() bool

ColumnHomogeneous returns whether all columns of grid have the same width.

The function returns the following values:

  • ok: whether all columns of grid have the same width.

func (*Grid) ColumnSpacing

func (grid *Grid) ColumnSpacing() uint

ColumnSpacing returns the amount of space between the columns of grid.

The function returns the following values:

  • guint: column spacing of grid.

func (*Grid) InsertColumn

func (grid *Grid) InsertColumn(position int)

InsertColumn inserts a column at the specified position.

Children which are attached at or to the right of this position are moved one column to the right. Children which span across this position are grown to span the new column.

The function takes the following parameters:

  • position to insert the column at.

func (*Grid) InsertNextTo

func (grid *Grid) InsertNextTo(sibling Widgetter, side PositionType)

InsertNextTo inserts a row or column at the specified position.

The new row or column is placed next to sibling, on the side determined by side. If side is GTK_POS_TOP or GTK_POS_BOTTOM, a row is inserted. If side is GTK_POS_LEFT of GTK_POS_RIGHT, a column is inserted.

The function takes the following parameters:

  • sibling: child of grid that the new row or column will be placed next to.
  • side of sibling that child is positioned next to.

func (*Grid) InsertRow

func (grid *Grid) InsertRow(position int)

InsertRow inserts a row at the specified position.

Children which are attached at or below this position are moved one row down. Children which span across this position are grown to span the new row.

The function takes the following parameters:

  • position to insert the row at.

func (*Grid) RemoveColumn

func (grid *Grid) RemoveColumn(position int)

RemoveColumn removes a column from the grid.

Children that are placed in this column are removed, spanning children that overlap this column have their width reduced by one, and children after the column are moved to the left.

The function takes the following parameters:

  • position of the column to remove.

func (*Grid) RemoveRow

func (grid *Grid) RemoveRow(position int)

RemoveRow removes a row from the grid.

Children that are placed in this row are removed, spanning children that overlap this row have their height reduced by one, and children below the row are moved up.

The function takes the following parameters:

  • position of the row to remove.

func (*Grid) RowBaselinePosition

func (grid *Grid) RowBaselinePosition(row int) BaselinePosition

RowBaselinePosition returns the baseline position of row as set by gtk_grid_set_row_baseline_position() or the default value GTK_BASELINE_POSITION_CENTER.

The function takes the following parameters:

  • row index.

The function returns the following values:

  • baselinePosition: baseline position of row.

func (*Grid) RowHomogeneous

func (grid *Grid) RowHomogeneous() bool

RowHomogeneous returns whether all rows of grid have the same height.

The function returns the following values:

  • ok: whether all rows of grid have the same height.

func (*Grid) RowSpacing

func (grid *Grid) RowSpacing() uint

RowSpacing returns the amount of space between the rows of grid.

The function returns the following values:

  • guint: row spacing of grid.

func (*Grid) SetBaselineRow

func (grid *Grid) SetBaselineRow(row int)

SetBaselineRow sets which row defines the global baseline for the entire grid. Each row in the grid can have its own local baseline, but only one of those is global, meaning it will be the baseline in the parent of the grid.

The function takes the following parameters:

  • row index.

func (*Grid) SetColumnHomogeneous

func (grid *Grid) SetColumnHomogeneous(homogeneous bool)

SetColumnHomogeneous sets whether all columns of grid will have the same width.

The function takes the following parameters:

  • homogeneous: TRUE to make columns homogeneous.

func (*Grid) SetColumnSpacing

func (grid *Grid) SetColumnSpacing(spacing uint)

SetColumnSpacing sets the amount of space between columns of grid.

The function takes the following parameters:

  • spacing: amount of space to insert between columns.

func (*Grid) SetRowBaselinePosition

func (grid *Grid) SetRowBaselinePosition(row int, pos BaselinePosition)

SetRowBaselinePosition sets how the baseline should be positioned on row of the grid, in case that row is assigned more space than is requested.

The function takes the following parameters:

  • row index.
  • pos: BaselinePosition.

func (*Grid) SetRowHomogeneous

func (grid *Grid) SetRowHomogeneous(homogeneous bool)

SetRowHomogeneous sets whether all rows of grid will have the same height.

The function takes the following parameters:

  • homogeneous: TRUE to make rows homogeneous.

func (*Grid) SetRowSpacing

func (grid *Grid) SetRowSpacing(spacing uint)

SetRowSpacing sets the amount of space between rows of grid.

The function takes the following parameters:

  • spacing: amount of space to insert between rows.

type GridClass added in v0.0.5

type GridClass struct {
	// contains filtered or unexported fields
}

GridClass: instance of this type is always passed by reference.

func (*GridClass) ParentClass added in v0.0.5

func (g *GridClass) ParentClass() *ContainerClass

ParentClass: parent class.

type GridOverrides added in v0.0.5

type GridOverrides struct {
}

GridOverrides contains methods that are overridable.

type HBox

type HBox struct {
	Box
	// contains filtered or unexported fields
}

HBox is a container that organizes child widgets into a single row.

Use the Box packing interface to determine the arrangement, spacing, width, and alignment of HBox children.

All children are allocated the same height.

GtkHBox has been deprecated. You can use Box instead, which is a very quick and easy change. If you have derived your own classes from GtkHBox, you can simply change the inheritance to derive directly from Box. No further changes are needed, since the default value of the Orientable:orientation property is GTK_ORIENTATION_HORIZONTAL.

If you have a grid-like layout composed of nested boxes, and you don’t need first-child or last-child styling, the recommendation is to switch to Grid. For more information about migrating to Grid, see [Migrating from other containers to GtkGrid][gtk-migrating-GtkGrid].

func NewHBox deprecated

func NewHBox(homogeneous bool, spacing int) *HBox

NewHBox creates a new HBox.

Deprecated: You can use gtk_box_new() with GTK_ORIENTATION_HORIZONTAL instead, which is a quick and easy change. But the recommendation is to switch to Grid, since Box is going to go away eventually. See [Migrating from other containers to GtkGrid][gtk-migrating-GtkGrid].

The function takes the following parameters:

  • homogeneous: TRUE if all children are to be given equal space allotments.
  • spacing: number of pixels to place by default between children.

The function returns the following values:

  • hBox: new HBox.

type HBoxClass added in v0.0.5

type HBoxClass struct {
	// contains filtered or unexported fields
}

HBoxClass: instance of this type is always passed by reference.

func (*HBoxClass) ParentClass added in v0.0.5

func (h *HBoxClass) ParentClass() *BoxClass

type HBoxOverrides added in v0.0.5

type HBoxOverrides struct {
}

HBoxOverrides contains methods that are overridable.

type HButtonBox

type HButtonBox struct {
	ButtonBox
	// contains filtered or unexported fields
}

func NewHButtonBox deprecated

func NewHButtonBox() *HButtonBox

NewHButtonBox creates a new horizontal button box.

Deprecated: Use gtk_button_box_new() with GTK_ORIENTATION_HORIZONTAL instead.

The function returns the following values:

  • hButtonBox: new button box Widget.

type HButtonBoxClass added in v0.0.5

type HButtonBoxClass struct {
	// contains filtered or unexported fields
}

HButtonBoxClass: instance of this type is always passed by reference.

func (*HButtonBoxClass) ParentClass added in v0.0.5

func (h *HButtonBoxClass) ParentClass() *ButtonBoxClass

type HButtonBoxOverrides added in v0.0.5

type HButtonBoxOverrides struct {
}

HButtonBoxOverrides contains methods that are overridable.

type HPaned

type HPaned struct {
	Paned
	// contains filtered or unexported fields
}

HPaned widget is a container widget with two children arranged horizontally. The division between the two panes is adjustable by the user by dragging a handle. See Paned for details.

GtkHPaned has been deprecated, use Paned instead.

func NewHPaned deprecated

func NewHPaned() *HPaned

NewHPaned: create a new HPaned

Deprecated: Use gtk_paned_new() with GTK_ORIENTATION_HORIZONTAL instead.

The function returns the following values:

  • hPaned: new HPaned.

type HPanedClass added in v0.0.5

type HPanedClass struct {
	// contains filtered or unexported fields
}

HPanedClass: instance of this type is always passed by reference.

func (*HPanedClass) ParentClass added in v0.0.5

func (h *HPanedClass) ParentClass() *PanedClass

type HPanedOverrides added in v0.0.5

type HPanedOverrides struct {
}

HPanedOverrides contains methods that are overridable.

type HSV

type HSV struct {
	Widget
	// contains filtered or unexported fields
}

HSV is the “color wheel” part of a complete color selector widget. It allows to select a color by determining its HSV components in an intuitive way. Moving the selection around the outer ring changes the hue, and moving the selection point inside the inner triangle changes value and saturation.

HSV has been deprecated together with ColorSelection, where it was used.

func NewHSV

func NewHSV() *HSV

NewHSV creates a new HSV color selector.

The function returns the following values:

  • hsV: newly-created HSV color selector.

func (*HSV) Color

func (hsv *HSV) Color() (h, s, v float64)

Color queries the current color in an HSV color selector. Returned values will be in the [0.0, 1.0] range.

The function returns the following values:

  • h: return value for the hue.
  • s: return value for the saturation.
  • v: return value for the value.

func (*HSV) ConnectChanged

func (hsv *HSV) ConnectChanged(f func()) coreglib.SignalHandle

func (*HSV) ConnectMove

func (hsv *HSV) ConnectMove(f func(object DirectionType)) coreglib.SignalHandle

func (*HSV) IsAdjusting

func (hsv *HSV) IsAdjusting() bool

IsAdjusting: HSV color selector can be said to be adjusting if multiple rapid changes are being made to its value, for example, when the user is adjusting the value with the mouse. This function queries whether the HSV color selector is being adjusted or not.

The function returns the following values:

  • ok: TRUE if clients can ignore changes to the color value, since they may be transitory, or FALSE if they should consider the color value status to be final.

func (*HSV) Metrics

func (hsv *HSV) Metrics() (size, ringWidth int)

Metrics queries the size and ring width of an HSV color selector.

The function returns the following values:

  • size: return value for the diameter of the hue ring.
  • ringWidth: return value for the width of the hue ring.

func (*HSV) SetColor

func (hsv *HSV) SetColor(h, s, v float64)

SetColor sets the current color in an HSV color selector. Color component values must be in the [0.0, 1.0] range.

The function takes the following parameters:

  • h: hue.
  • s: saturation.
  • v: value.

func (*HSV) SetMetrics

func (hsv *HSV) SetMetrics(size, ringWidth int)

SetMetrics sets the size and ring width of an HSV color selector.

The function takes the following parameters:

  • size: diameter for the hue ring.
  • ringWidth: width of the hue ring.

type HSVClass added in v0.0.5

type HSVClass struct {
	// contains filtered or unexported fields
}

HSVClass: instance of this type is always passed by reference.

func (*HSVClass) ParentClass added in v0.0.5

func (h *HSVClass) ParentClass() *WidgetClass

type HSVOverrides added in v0.0.5

type HSVOverrides struct {
	Changed func()
	// The function takes the following parameters:
	//
	Move func(typ DirectionType)
}

HSVOverrides contains methods that are overridable.

type HScale

type HScale struct {
	Scale
	// contains filtered or unexported fields
}

HScale widget is used to allow the user to select a value using a horizontal slider. To create one, use gtk_hscale_new_with_range().

The position to show the current value, and the number of decimal places shown can be set using the parent Scale class’s functions.

GtkHScale has been deprecated, use Scale instead.

func NewHScale deprecated

func NewHScale(adjustment *Adjustment) *HScale

NewHScale creates a new HScale.

Deprecated: Use gtk_scale_new() with GTK_ORIENTATION_HORIZONTAL instead.

The function takes the following parameters:

  • adjustment (optional) which sets the range of the scale.

The function returns the following values:

  • hScale: new HScale.

func NewHScaleWithRange deprecated

func NewHScaleWithRange(min, max, step float64) *HScale

NewHScaleWithRange creates a new horizontal scale widget that lets the user input a number between min and max (including min and max) with the increment step. step must be nonzero; it’s the distance the slider moves when using the arrow keys to adjust the scale value.

Note that the way in which the precision is derived works best if step is a power of ten. If the resulting precision is not suitable for your needs, use gtk_scale_set_digits() to correct it.

Deprecated: Use gtk_scale_new_with_range() with GTK_ORIENTATION_HORIZONTAL instead.

The function takes the following parameters:

  • min: minimum value.
  • max: maximum value.
  • step increment (tick size) used with keyboard shortcuts.

The function returns the following values:

  • hScale: new HScale.

type HScaleClass added in v0.0.5

type HScaleClass struct {
	// contains filtered or unexported fields
}

HScaleClass: instance of this type is always passed by reference.

func (*HScaleClass) ParentClass added in v0.0.5

func (h *HScaleClass) ParentClass() *ScaleClass

type HScaleOverrides added in v0.0.5

type HScaleOverrides struct {
}

HScaleOverrides contains methods that are overridable.

type HScrollbar

type HScrollbar struct {
	Scrollbar
	// contains filtered or unexported fields
}

HScrollbar widget is a widget arranged horizontally creating a scrollbar. See Scrollbar for details on scrollbars. Adjustment pointers may be added to handle the adjustment of the scrollbar or it may be left NULL in which case one will be created for you. See Scrollbar for a description of what the fields in an adjustment represent for a scrollbar.

GtkHScrollbar has been deprecated, use Scrollbar instead.

func NewHScrollbar deprecated

func NewHScrollbar(adjustment *Adjustment) *HScrollbar

NewHScrollbar creates a new horizontal scrollbar.

Deprecated: Use gtk_scrollbar_new() with GTK_ORIENTATION_HORIZONTAL instead.

The function takes the following parameters:

  • adjustment (optional) to use, or NULL to create a new adjustment.

The function returns the following values:

  • hScrollbar: new HScrollbar.

type HScrollbarClass added in v0.0.5

type HScrollbarClass struct {
	// contains filtered or unexported fields
}

HScrollbarClass: instance of this type is always passed by reference.

func (*HScrollbarClass) ParentClass added in v0.0.5

func (h *HScrollbarClass) ParentClass() *ScrollbarClass

type HScrollbarOverrides added in v0.0.5

type HScrollbarOverrides struct {
}

HScrollbarOverrides contains methods that are overridable.

type HSeparator

type HSeparator struct {
	Separator
	// contains filtered or unexported fields
}

HSeparator widget is a horizontal separator, used to group the widgets within a window. It displays a horizontal line with a shadow to make it appear sunken into the interface.

> The HSeparator widget is not used as a separator within menus. > To create a separator in a menu create an empty SeparatorMenuItem > widget using gtk_separator_menu_item_new() and add it to the menu with > gtk_menu_shell_append().

GtkHSeparator has been deprecated, use Separator instead.

func NewHSeparator deprecated

func NewHSeparator() *HSeparator

NewHSeparator creates a new HSeparator.

Deprecated: Use gtk_separator_new() with GTK_ORIENTATION_HORIZONTAL instead.

The function returns the following values:

  • hSeparator: new HSeparator.

type HSeparatorClass added in v0.0.5

type HSeparatorClass struct {
	// contains filtered or unexported fields
}

HSeparatorClass: instance of this type is always passed by reference.

func (*HSeparatorClass) ParentClass added in v0.0.5

func (h *HSeparatorClass) ParentClass() *SeparatorClass

type HSeparatorOverrides added in v0.0.5

type HSeparatorOverrides struct {
}

HSeparatorOverrides contains methods that are overridable.

type HandleBox

type HandleBox struct {
	Bin
	// contains filtered or unexported fields
}

HandleBox widget allows a portion of a window to be "torn off". It is a bin widget which displays its child and a handle that the user can drag to tear off a separate window (the “float window”) containing the child widget. A thin “ghost” is drawn in the original location of the handlebox. By dragging the separate window back to its original location, it can be reattached.

When reattaching, the ghost and float window, must be aligned along one of the edges, the “snap edge”. This either can be specified by the application programmer explicitly, or GTK+ will pick a reasonable default based on the handle position.

To make detaching and reattaching the handlebox as minimally confusing as possible to the user, it is important to set the snap edge so that the snap edge does not move when the handlebox is deattached. For instance, if the handlebox is packed at the bottom of a VBox, then when the handlebox is detached, the bottom edge of the handlebox's allocation will remain fixed as the height of the handlebox shrinks, so the snap edge should be set to GTK_POS_BOTTOM.

> HandleBox has been deprecated. It is very specialized, lacks features > to make it useful and most importantly does not fit well into modern > application design. Do not use it. There is no replacement.

func NewHandleBox deprecated

func NewHandleBox() *HandleBox

NewHandleBox: create a new handle box.

Deprecated: HandleBox has been deprecated.

The function returns the following values:

  • handleBox: new HandleBox.

func (*HandleBox) ChildDetached deprecated

func (handleBox *HandleBox) ChildDetached() bool

ChildDetached: whether the handlebox’s child is currently detached.

Deprecated: HandleBox has been deprecated.

The function returns the following values:

  • ok: TRUE if the child is currently detached, otherwise FALSE.

func (*HandleBox) ConnectChildAttached

func (handleBox *HandleBox) ConnectChildAttached(f func(widget Widgetter)) coreglib.SignalHandle

ConnectChildAttached: this signal is emitted when the contents of the handlebox are reattached to the main window.

func (*HandleBox) ConnectChildDetached

func (handleBox *HandleBox) ConnectChildDetached(f func(widget Widgetter)) coreglib.SignalHandle

ConnectChildDetached: this signal is emitted when the contents of the handlebox are detached from the main window.

func (*HandleBox) HandlePosition deprecated

func (handleBox *HandleBox) HandlePosition() PositionType

HandlePosition gets the handle position of the handle box. See gtk_handle_box_set_handle_position().

Deprecated: HandleBox has been deprecated.

The function returns the following values:

  • positionType: current handle position.

func (*HandleBox) SetHandlePosition deprecated

func (handleBox *HandleBox) SetHandlePosition(position PositionType)

SetHandlePosition sets the side of the handlebox where the handle is drawn.

Deprecated: HandleBox has been deprecated.

The function takes the following parameters:

  • position: side of the handlebox where the handle should be drawn.

func (*HandleBox) SetShadowType deprecated

func (handleBox *HandleBox) SetShadowType(typ ShadowType)

SetShadowType sets the type of shadow to be drawn around the border of the handle box.

Deprecated: HandleBox has been deprecated.

The function takes the following parameters:

  • typ: shadow type.

func (*HandleBox) SetSnapEdge deprecated

func (handleBox *HandleBox) SetSnapEdge(edge PositionType)

SetSnapEdge sets the snap edge of a handlebox. The snap edge is the edge of the detached child that must be aligned with the corresponding edge of the “ghost” left behind when the child was detached to reattach the torn-off window. Usually, the snap edge should be chosen so that it stays in the same place on the screen when the handlebox is torn off.

If the snap edge is not set, then an appropriate value will be guessed from the handle position. If the handle position is GTK_POS_RIGHT or GTK_POS_LEFT, then the snap edge will be GTK_POS_TOP, otherwise it will be GTK_POS_LEFT.

Deprecated: HandleBox has been deprecated.

The function takes the following parameters:

  • edge: snap edge, or -1 to unset the value; in which case GTK+ will try to guess an appropriate value in the future.

func (*HandleBox) ShadowType deprecated

func (handleBox *HandleBox) ShadowType() ShadowType

ShadowType gets the type of shadow drawn around the handle box. See gtk_handle_box_set_shadow_type().

Deprecated: HandleBox has been deprecated.

The function returns the following values:

  • shadowType: type of shadow currently drawn around the handle box.

func (*HandleBox) SnapEdge deprecated

func (handleBox *HandleBox) SnapEdge() PositionType

SnapEdge gets the edge used for determining reattachment of the handle box. See gtk_handle_box_set_snap_edge().

Deprecated: HandleBox has been deprecated.

The function returns the following values:

  • positionType: edge used for determining reattachment, or (GtkPositionType)-1 if this is determined (as per default) from the handle position.

type HandleBoxClass added in v0.0.5

type HandleBoxClass struct {
	// contains filtered or unexported fields
}

HandleBoxClass: instance of this type is always passed by reference.

func (*HandleBoxClass) ParentClass added in v0.0.5

func (h *HandleBoxClass) ParentClass() *BinClass

ParentClass: parent class.

type HandleBoxOverrides added in v0.0.5

type HandleBoxOverrides struct {
	// The function takes the following parameters:
	//
	ChildAttached func(child Widgetter)
	// The function takes the following parameters:
	//
	ChildDetached func(child Widgetter)
}

HandleBoxOverrides contains methods that are overridable.

type HeaderBar

type HeaderBar struct {
	Container
	// contains filtered or unexported fields
}

HeaderBar is similar to a horizontal Box. It allows children to be placed at the start or the end. In addition, it allows a title and subtitle to be displayed. The title will be centered with respect to the width of the box, even if the children at either side take up different amounts of space. The height of the titlebar will be set to provide sufficient space for the subtitle, even if none is currently set. If a subtitle is not needed, the space reservation can be turned off with gtk_header_bar_set_has_subtitle().

GtkHeaderBar can add typical window frame controls, such as minimize, maximize and close buttons, or the window icon.

For these reasons, GtkHeaderBar is the natural choice for use as the custom titlebar widget of a Window (see gtk_window_set_titlebar()), as it gives features typical of titlebars while allowing the addition of child widgets.

func NewHeaderBar

func NewHeaderBar() *HeaderBar

NewHeaderBar creates a new HeaderBar widget.

The function returns the following values:

  • headerBar: new HeaderBar.

func (*HeaderBar) CustomTitle

func (bar *HeaderBar) CustomTitle() Widgetter

CustomTitle retrieves the custom title widget of the header. See gtk_header_bar_set_custom_title().

The function returns the following values:

  • widget (optional): custom title widget of the header, or NULL if none has been set explicitly.

func (*HeaderBar) DecorationLayout

func (bar *HeaderBar) DecorationLayout() string

DecorationLayout gets the decoration layout set with gtk_header_bar_set_decoration_layout().

The function returns the following values:

  • utf8: decoration layout.

func (*HeaderBar) HasSubtitle

func (bar *HeaderBar) HasSubtitle() bool

HasSubtitle retrieves whether the header bar reserves space for a subtitle, regardless if one is currently set or not.

The function returns the following values:

  • ok: TRUE if the header bar reserves space for a subtitle.

func (*HeaderBar) PackEnd

func (bar *HeaderBar) PackEnd(child Widgetter)

PackEnd adds child to bar, packed with reference to the end of the bar.

The function takes the following parameters:

  • child to be added to bar.

func (*HeaderBar) PackStart

func (bar *HeaderBar) PackStart(child Widgetter)

PackStart adds child to bar, packed with reference to the start of the bar.

The function takes the following parameters:

  • child to be added to bar.

func (*HeaderBar) SetCustomTitle

func (bar *HeaderBar) SetCustomTitle(titleWidget Widgetter)

SetCustomTitle sets a custom title for the HeaderBar.

The title should help a user identify the current view. This supersedes any title set by gtk_header_bar_set_title() or gtk_header_bar_set_subtitle(). To achieve the same style as the builtin title and subtitle, use the “title” and “subtitle” style classes.

You should set the custom title to NULL, for the header title label to be visible again.

The function takes the following parameters:

  • titleWidget (optional): custom widget to use for a title.

func (*HeaderBar) SetDecorationLayout

func (bar *HeaderBar) SetDecorationLayout(layout string)

SetDecorationLayout sets the decoration layout for this header bar, overriding the Settings:gtk-decoration-layout setting.

There can be valid reasons for overriding the setting, such as a header bar design that does not allow for buttons to take room on the right, or only offers room for a single close button. Split header bars are another example for overriding the setting.

The format of the string is button names, separated by commas. A colon separates the buttons that should appear on the left from those on the right. Recognized button names are minimize, maximize, close, icon (the window icon) and menu (a menu button for the fallback app menu).

For example, “menu:minimize,maximize,close” specifies a menu on the left, and minimize, maximize and close buttons on the right.

The function takes the following parameters:

  • layout (optional): decoration layout, or NULL to unset the layout.

func (*HeaderBar) SetHasSubtitle

func (bar *HeaderBar) SetHasSubtitle(setting bool)

SetHasSubtitle sets whether the header bar should reserve space for a subtitle, even if none is currently set.

The function takes the following parameters:

  • setting: TRUE to reserve space for a subtitle.

func (*HeaderBar) SetShowCloseButton

func (bar *HeaderBar) SetShowCloseButton(setting bool)

SetShowCloseButton sets whether this header bar shows the standard window decorations, including close, maximize, and minimize.

The function takes the following parameters:

  • setting: TRUE to show standard window decorations.

func (*HeaderBar) SetSubtitle

func (bar *HeaderBar) SetSubtitle(subtitle string)

SetSubtitle sets the subtitle of the HeaderBar. The title should give a user an additional detail to help him identify the current view.

Note that GtkHeaderBar by default reserves room for the subtitle, even if none is currently set. If this is not desired, set the HeaderBar:has-subtitle property to FALSE.

The function takes the following parameters:

  • subtitle (optional): subtitle, or NULL.

func (*HeaderBar) SetTitle

func (bar *HeaderBar) SetTitle(title string)

SetTitle sets the title of the HeaderBar. The title should help a user identify the current view. A good title should not include the application name.

The function takes the following parameters:

  • title (optional): title, or NULL.

func (*HeaderBar) ShowCloseButton

func (bar *HeaderBar) ShowCloseButton() bool

ShowCloseButton returns whether this header bar shows the standard window decorations.

The function returns the following values:

  • ok: TRUE if the decorations are shown.

func (*HeaderBar) Subtitle

func (bar *HeaderBar) Subtitle() string

Subtitle retrieves the subtitle of the header. See gtk_header_bar_set_subtitle().

The function returns the following values:

  • utf8 (optional): subtitle of the header, or NULL if none has been set explicitly. The returned string is owned by the widget and must not be modified or freed.

func (*HeaderBar) Title

func (bar *HeaderBar) Title() string

Title retrieves the title of the header. See gtk_header_bar_set_title().

The function returns the following values:

  • utf8 (optional): title of the header, or NULL if none has been set explicitly. The returned string is owned by the widget and must not be modified or freed.

type HeaderBarAccessible

type HeaderBarAccessible struct {
	ContainerAccessible
	// contains filtered or unexported fields
}

type HeaderBarClass added in v0.0.5

type HeaderBarClass struct {
	// contains filtered or unexported fields
}

HeaderBarClass: instance of this type is always passed by reference.

func (*HeaderBarClass) ParentClass added in v0.0.5

func (h *HeaderBarClass) ParentClass() *ContainerClass

type HeaderBarOverrides added in v0.0.5

type HeaderBarOverrides struct {
}

HeaderBarOverrides contains methods that are overridable.

type IMContext

type IMContext struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

IMContext defines the interface for GTK+ input methods. An input method is used by GTK+ text input widgets like Entry to map from key events to Unicode character strings.

The default input method can be set programmatically via the Settings:gtk-im-module GtkSettings property. Alternatively, you may set the GTK_IM_MODULE environment variable as documented in [Running GTK+ Applications][gtk-running].

The Entry Entry:im-module and TextView TextView:im-module properties may also be used to set input methods for specific widget instances. For instance, a certain entry widget might be expected to contain certain characters which would be easier to input with a certain input method.

An input method may consume multiple key events in sequence and finally output the composed result. This is called preediting, and an input method may provide feedback about this process by displaying the intermediate composition states as preedit text. For instance, the default GTK+ input method implements the input of arbitrary Unicode code points by holding down the Control and Shift keys and then typing “U” followed by the hexadecimal digits of the code point. When releasing the Control and Shift keys, preediting ends and the character is inserted as text. Ctrl+Shift+u20AC for example results in the € sign.

Additional input methods can be made available for use by GTK+ widgets as loadable modules. An input method module is a small shared library which implements a subclass of IMContext or IMContextSimple and exports these four functions:

GtkIMContext * im_module_create(const gchar *context_id);

This function should return a pointer to a newly created instance of the IMContext subclass identified by context_id. The context ID is the same as specified in the IMContextInfo array returned by im_module_list().

After a new loadable input method module has been installed on the system, the configuration file gtk.immodules needs to be regenerated by [gtk-query-immodules-3.0][gtk-query-immodules-3.0], in order for the new input method to become available to GTK+ applications.

func BaseIMContext

func BaseIMContext(obj IMContexter) *IMContext

BaseIMContext returns the underlying base object.

func (*IMContext) ConnectCommit

func (context *IMContext) ConnectCommit(f func(str string)) coreglib.SignalHandle

ConnectCommit signal is emitted when a complete input sequence has been entered by the user. This can be a single character immediately after a key press or the final result of preediting.

func (*IMContext) ConnectDeleteSurrounding

func (context *IMContext) ConnectDeleteSurrounding(f func(offset, nChars int) (ok bool)) coreglib.SignalHandle

ConnectDeleteSurrounding signal is emitted when the input method needs to delete all or part of the context surrounding the cursor.

func (*IMContext) ConnectPreeditChanged

func (context *IMContext) ConnectPreeditChanged(f func()) coreglib.SignalHandle

ConnectPreeditChanged signal is emitted whenever the preedit sequence currently being entered has changed. It is also emitted at the end of a preedit sequence, in which case gtk_im_context_get_preedit_string() returns the empty string.

func (*IMContext) ConnectPreeditEnd

func (context *IMContext) ConnectPreeditEnd(f func()) coreglib.SignalHandle

ConnectPreeditEnd signal is emitted when a preediting sequence has been completed or canceled.

func (*IMContext) ConnectPreeditStart

func (context *IMContext) ConnectPreeditStart(f func()) coreglib.SignalHandle

ConnectPreeditStart signal is emitted when a new preediting sequence starts.

func (*IMContext) ConnectRetrieveSurrounding

func (context *IMContext) ConnectRetrieveSurrounding(f func() (ok bool)) coreglib.SignalHandle

ConnectRetrieveSurrounding signal is emitted when the input method requires the context surrounding the cursor. The callback should set the input method surrounding context by calling the gtk_im_context_set_surrounding() method.

func (*IMContext) DeleteSurrounding

func (context *IMContext) DeleteSurrounding(offset, nChars int) bool

DeleteSurrounding asks the widget that the input context is attached to to delete characters around the cursor position by emitting the GtkIMContext::delete_surrounding signal. Note that offset and n_chars are in characters not in bytes which differs from the usage other places in IMContext.

In order to use this function, you should first call gtk_im_context_get_surrounding() to get the current context, and call this function immediately afterwards to make sure that you know what you are deleting. You should also account for the fact that even if the signal was handled, the input context might not have deleted all the characters that were requested to be deleted.

This function is used by an input method that wants to make subsitutions in the existing text in response to new input. It is not useful for applications.

The function takes the following parameters:

  • offset from cursor position in chars; a negative value means start before the cursor.
  • nChars: number of characters to delete.

The function returns the following values:

  • ok: TRUE if the signal was handled.

func (*IMContext) FilterKeypress

func (context *IMContext) FilterKeypress(event *gdk.EventKey) bool

FilterKeypress: allow an input method to internally handle key press and release events. If this function returns TRUE, then no further processing should be done for this key event.

The function takes the following parameters:

  • event: key event.

The function returns the following values:

  • ok: TRUE if the input method handled the key event.

func (*IMContext) FocusIn

func (context *IMContext) FocusIn()

FocusIn: notify the input method that the widget to which this input context corresponds has gained focus. The input method may, for example, change the displayed feedback to reflect this change.

func (*IMContext) FocusOut

func (context *IMContext) FocusOut()

FocusOut: notify the input method that the widget to which this input context corresponds has lost focus. The input method may, for example, change the displayed feedback or reset the contexts state to reflect this change.

func (*IMContext) PreeditString

func (context *IMContext) PreeditString() (string, *pango.AttrList, int)

PreeditString: retrieve the current preedit string for the input context, and a list of attributes to apply to the string. This string should be displayed inserted at the insertion point.

The function returns the following values:

  • str: location to store the retrieved string. The string retrieved must be freed with g_free().
  • attrs: location to store the retrieved attribute list. When you are done with this list, you must unreference it with pango_attr_list_unref().
  • cursorPos: location to store position of cursor (in characters) within the preedit string.

func (*IMContext) Reset

func (context *IMContext) Reset()

Reset: notify the input method that a change such as a change in cursor position has been made. This will typically cause the input method to clear the preedit state.

func (*IMContext) SetClientWindow

func (context *IMContext) SetClientWindow(window gdk.Windower)

SetClientWindow: set the client window for the input context; this is the Window in which the input appears. This window is used in order to correctly position status windows, and may also be used for purposes internal to the input method.

The function takes the following parameters:

  • window (optional): client window. This may be NULL to indicate that the previous client window no longer exists.

func (*IMContext) SetCursorLocation

func (context *IMContext) SetCursorLocation(area *gdk.Rectangle)

SetCursorLocation: notify the input method that a change in cursor position has been made. The location is relative to the client window.

The function takes the following parameters:

  • area: new location.

func (*IMContext) SetSurrounding

func (context *IMContext) SetSurrounding(text string, len, cursorIndex int)

SetSurrounding sets surrounding context around the insertion point and preedit string. This function is expected to be called in response to the GtkIMContext::retrieve_surrounding signal, and will likely have no effect if called at other times.

The function takes the following parameters:

  • text surrounding the insertion point, as UTF-8. the preedit string should not be included within text.
  • len: length of text, or -1 if text is nul-terminated.
  • cursorIndex: byte index of the insertion cursor within text.

func (*IMContext) SetUsePreedit

func (context *IMContext) SetUsePreedit(usePreedit bool)

SetUsePreedit sets whether the IM context should use the preedit string to display feedback. If use_preedit is FALSE (default is TRUE), then the IM context may use some other method to display feedback, such as displaying it in a child of the root window.

The function takes the following parameters:

  • usePreedit: whether the IM context should use the preedit string.

func (*IMContext) Surrounding

func (context *IMContext) Surrounding() (string, int, bool)

Surrounding retrieves context around the insertion point. Input methods typically want context in order to constrain input text based on existing text; this is important for languages such as Thai where only some sequences of characters are allowed.

This function is implemented by emitting the GtkIMContext::retrieve_surrounding signal on the input method; in response to this signal, a widget should provide as much context as is available, up to an entire paragraph, by calling gtk_im_context_set_surrounding(). Note that there is no obligation for a widget to respond to the ::retrieve_surrounding signal, so input methods must be prepared to function without context.

The function returns the following values:

  • text: location to store a UTF-8 encoded string of text holding context around the insertion point. If the function returns TRUE, then you must free the result stored in this location with g_free().
  • cursorIndex: location to store byte index of the insertion cursor within text.
  • ok: TRUE if surrounding text was provided; in this case you must free the result stored in *text.

type IMContextClass added in v0.0.5

type IMContextClass struct {
	// contains filtered or unexported fields
}

IMContextClass: instance of this type is always passed by reference.

type IMContextInfo

type IMContextInfo struct {
	// contains filtered or unexported fields
}

IMContextInfo: bookkeeping information about a loadable input method.

An instance of this type is always passed by reference.

func (*IMContextInfo) ContextID

func (i *IMContextInfo) ContextID() string

ContextID: unique identification string of the input method.

func (*IMContextInfo) ContextName

func (i *IMContextInfo) ContextName() string

ContextName: human-readable name of the input method.

func (*IMContextInfo) DefaultLocales

func (i *IMContextInfo) DefaultLocales() string

DefaultLocales: colon-separated list of locales where this input method should be the default. The asterisk “*” sets the default for all locales.

func (*IMContextInfo) Domain

func (i *IMContextInfo) Domain() string

Domain: translation domain to be used with dgettext().

func (*IMContextInfo) DomainDirname

func (i *IMContextInfo) DomainDirname() string

DomainDirname: name of locale directory for use with bindtextdomain().

type IMContextOverrides added in v0.0.5

type IMContextOverrides struct {
	// The function takes the following parameters:
	//
	Commit func(str string)
	// DeleteSurrounding asks the widget that the input context is attached
	// to to delete characters around the cursor position by emitting the
	// GtkIMContext::delete_surrounding signal. Note that offset and n_chars are
	// in characters not in bytes which differs from the usage other places in
	// IMContext.
	//
	// In order to use this function, you should first call
	// gtk_im_context_get_surrounding() to get the current context, and call
	// this function immediately afterwards to make sure that you know what
	// you are deleting. You should also account for the fact that even if the
	// signal was handled, the input context might not have deleted all the
	// characters that were requested to be deleted.
	//
	// This function is used by an input method that wants to make subsitutions
	// in the existing text in response to new input. It is not useful for
	// applications.
	//
	// The function takes the following parameters:
	//
	//   - offset from cursor position in chars; a negative value means start
	//     before the cursor.
	//   - nChars: number of characters to delete.
	//
	// The function returns the following values:
	//
	//   - ok: TRUE if the signal was handled.
	//
	DeleteSurrounding func(offset, nChars int) bool
	// FilterKeypress: allow an input method to internally handle key press and
	// release events. If this function returns TRUE, then no further processing
	// should be done for this key event.
	//
	// The function takes the following parameters:
	//
	//   - event: key event.
	//
	// The function returns the following values:
	//
	//   - ok: TRUE if the input method handled the key event.
	//
	FilterKeypress func(event *gdk.EventKey) bool
	// FocusIn: notify the input method that the widget to which this input
	// context corresponds has gained focus. The input method may, for example,
	// change the displayed feedback to reflect this change.
	FocusIn func()
	// FocusOut: notify the input method that the widget to which this input
	// context corresponds has lost focus. The input method may, for example,
	// change the displayed feedback or reset the contexts state to reflect this
	// change.
	FocusOut func()
	// PreeditString: retrieve the current preedit string for the input context,
	// and a list of attributes to apply to the string. This string should be
	// displayed inserted at the insertion point.
	//
	// The function returns the following values:
	//
	//   - str: location to store the retrieved string. The string retrieved
	//     must be freed with g_free().
	//   - attrs: location to store the retrieved attribute list.
	//     When you are done with this list, you must unreference it with
	//     pango_attr_list_unref().
	//   - cursorPos: location to store position of cursor (in characters)
	//     within the preedit string.
	//
	PreeditString func() (string, *pango.AttrList, int)
	// Surrounding retrieves context around the insertion point. Input methods
	// typically want context in order to constrain input text based on existing
	// text; this is important for languages such as Thai where only some
	// sequences of characters are allowed.
	//
	// This function is implemented by emitting the
	// GtkIMContext::retrieve_surrounding signal on the input method;
	// in response to this signal, a widget should provide as much
	// context as is available, up to an entire paragraph, by calling
	// gtk_im_context_set_surrounding(). Note that there is no obligation for a
	// widget to respond to the ::retrieve_surrounding signal, so input methods
	// must be prepared to function without context.
	//
	// The function returns the following values:
	//
	//   - text: location to store a UTF-8 encoded string of text holding
	//     context around the insertion point. If the function returns TRUE,
	//     then you must free the result stored in this location with g_free().
	//   - cursorIndex: location to store byte index of the insertion cursor
	//     within text.
	//   - ok: TRUE if surrounding text was provided; in this case you must free
	//     the result stored in *text.
	//
	Surrounding    func() (string, int, bool)
	PreeditChanged func()
	PreeditEnd     func()
	PreeditStart   func()
	// Reset: notify the input method that a change such as a change in cursor
	// position has been made. This will typically cause the input method to
	// clear the preedit state.
	Reset func()
	// The function returns the following values:
	//
	RetrieveSurrounding func() bool
	// SetClientWindow: set the client window for the input context; this is
	// the Window in which the input appears. This window is used in order to
	// correctly position status windows, and may also be used for purposes
	// internal to the input method.
	//
	// The function takes the following parameters:
	//
	//   - window (optional): client window. This may be NULL to indicate that
	//     the previous client window no longer exists.
	//
	SetClientWindow func(window gdk.Windower)
	// SetCursorLocation: notify the input method that a change in cursor
	// position has been made. The location is relative to the client window.
	//
	// The function takes the following parameters:
	//
	//   - area: new location.
	//
	SetCursorLocation func(area *gdk.Rectangle)
	// SetSurrounding sets surrounding context around the insertion point and
	// preedit string. This function is expected to be called in response to the
	// GtkIMContext::retrieve_surrounding signal, and will likely have no effect
	// if called at other times.
	//
	// The function takes the following parameters:
	//
	//   - text surrounding the insertion point, as UTF-8. the preedit string
	//     should not be included within text.
	//   - len: length of text, or -1 if text is nul-terminated.
	//   - cursorIndex: byte index of the insertion cursor within text.
	//
	SetSurrounding func(text string, len, cursorIndex int)
	// SetUsePreedit sets whether the IM context should use the preedit
	// string to display feedback. If use_preedit is FALSE (default is TRUE),
	// then the IM context may use some other method to display feedback,
	// such as displaying it in a child of the root window.
	//
	// The function takes the following parameters:
	//
	//   - usePreedit: whether the IM context should use the preedit string.
	//
	SetUsePreedit func(usePreedit bool)
}

IMContextOverrides contains methods that are overridable.

type IMContextSimple

type IMContextSimple struct {
	IMContext
	// contains filtered or unexported fields
}

IMContextSimple is a simple input method context supporting table-based input methods. It has a built-in table of compose sequences that is derived from the X11 Compose files.

GtkIMContextSimple reads additional compose sequences from the first of the following files that is found: ~/.config/gtk-3.0/Compose, ~/.XCompose, /usr/share/X11/locale/$locale/Compose (for locales that have a nontrivial Compose file). The syntax of these files is described in the Compose(5) manual page.

Unicode characters

GtkIMContextSimple also supports numeric entry of Unicode characters by typing Ctrl-Shift-u, followed by a hexadecimal Unicode codepoint. For example, Ctrl-Shift-u 1 2 3 Enter yields U+0123 LATIN SMALL LETTER G WITH CEDILLA, i.e. ģ.

func NewIMContextSimple

func NewIMContextSimple() *IMContextSimple

NewIMContextSimple creates a new IMContextSimple.

The function returns the following values:

  • imContextSimple: new IMContextSimple.

func (*IMContextSimple) AddComposeFile

func (contextSimple *IMContextSimple) AddComposeFile(composeFile string)

AddComposeFile adds an additional table from the X11 compose file.

The function takes the following parameters:

  • composeFile: path of compose file.

type IMContextSimpleClass added in v0.0.5

type IMContextSimpleClass struct {
	// contains filtered or unexported fields
}

IMContextSimpleClass: instance of this type is always passed by reference.

func (*IMContextSimpleClass) ParentClass added in v0.0.5

func (i *IMContextSimpleClass) ParentClass() *IMContextClass

type IMContextSimpleOverrides added in v0.0.5

type IMContextSimpleOverrides struct {
}

IMContextSimpleOverrides contains methods that are overridable.

type IMContexter

type IMContexter interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

IMContexter describes types inherited from class IMContext.

To get the original type, the caller must assert this to an interface or another type.

type IMMulticontext

type IMMulticontext struct {
	IMContext
	// contains filtered or unexported fields
}

func NewIMMulticontext

func NewIMMulticontext() *IMMulticontext

NewIMMulticontext creates a new IMMulticontext.

The function returns the following values:

  • imMulticontext: new IMMulticontext.

func (*IMMulticontext) AppendMenuitems deprecated

func (context *IMMulticontext) AppendMenuitems(menushell MenuSheller)

AppendMenuitems: add menuitems for various available input methods to a menu; the menuitems, when selected, will switch the input method for the context and the global default input method.

Deprecated: It is better to use the system-wide input method framework for changing input methods. Modern desktop shells offer on-screen displays for this that can triggered with a keyboard shortcut, e.g. Super-Space.

The function takes the following parameters:

  • menushell: MenuShell.

func (*IMMulticontext) ContextID

func (context *IMMulticontext) ContextID() string

ContextID gets the id of the currently active slave of the context.

The function returns the following values:

  • utf8: id of the currently active slave.

func (*IMMulticontext) SetContextID

func (context *IMMulticontext) SetContextID(contextId string)

SetContextID sets the context id for context.

This causes the currently active slave of context to be replaced by the slave corresponding to the new context id.

The function takes the following parameters:

  • contextId: id to use.

type IMMulticontextClass added in v0.0.5

type IMMulticontextClass struct {
	// contains filtered or unexported fields
}

IMMulticontextClass: instance of this type is always passed by reference.

func (*IMMulticontextClass) ParentClass added in v0.0.5

func (i *IMMulticontextClass) ParentClass() *IMContextClass

type IMMulticontextOverrides added in v0.0.5

type IMMulticontextOverrides struct {
}

IMMulticontextOverrides contains methods that are overridable.

type IMPreeditStyle deprecated

type IMPreeditStyle C.gint

IMPreeditStyle: style for input method preedit. See also Settings:gtk-im-preedit-style

Deprecated: since version 3.10.

const (
	// IMPreeditNothing: deprecated.
	IMPreeditNothing IMPreeditStyle = iota
	// IMPreeditCallback: deprecated.
	IMPreeditCallback
	// IMPreeditNone: deprecated.
	IMPreeditNone
)

func (IMPreeditStyle) String

func (i IMPreeditStyle) String() string

String returns the name in string for IMPreeditStyle.

type IMStatusStyle deprecated

type IMStatusStyle C.gint

IMStatusStyle: style for input method status. See also Settings:gtk-im-status-style

Deprecated: since version 3.10.

const (
	// IMStatusNothing: deprecated.
	IMStatusNothing IMStatusStyle = iota
	// IMStatusCallback: deprecated.
	IMStatusCallback
	// IMStatusNone: deprecated.
	IMStatusNone
)

func (IMStatusStyle) String

func (i IMStatusStyle) String() string

String returns the name in string for IMStatusStyle.

type IconFactory

type IconFactory struct {
	*coreglib.Object

	Buildable
	// contains filtered or unexported fields
}

IconFactory: icon factory manages a collection of IconSet; a IconSet manages a set of variants of a particular icon (i.e. a IconSet contains variants for different sizes and widget states). Icons in an icon factory are named by a stock ID, which is a simple string identifying the icon. Each Style has a list of IconFactory derived from the current theme; those icon factories are consulted first when searching for an icon. If the theme doesn’t set a particular icon, GTK+ looks for the icon in a list of default icon factories, maintained by gtk_icon_factory_add_default() and gtk_icon_factory_remove_default(). Applications with icons should add a default icon factory with their icons, which will allow themes to override the icons for the application.

To display an icon, always use gtk_style_lookup_icon_set() on the widget that will display the icon, or the convenience function gtk_widget_render_icon(). These functions take the theme into account when looking up the icon to use for a given stock ID.

GtkIconFactory as GtkBuildable

GtkIconFactory supports a custom <sources> element, which can contain multiple <source> elements. The following attributes are allowed:

- stock-id

The stock id of the source, a string. This attribute is
mandatory

- filename

The filename of the source, a string.  This attribute is
optional

- icon-name

The icon name for the source, a string.  This attribute is
optional.

- size

Size of the icon, a IconSize enum value.  This attribute is
optional.

- direction

Direction of the source, a TextDirection enum value.  This
attribute is optional.

- state

State of the source, a StateType enum value.  This
attribute is optional.

A IconFactory UI definition fragment. ##

<object class="GtkIconFactory" id="iconfactory1">
  <sources>
    <source stock-id="apple-red" filename="apple-red.png"/>
  </sources>
</object>
<object class="GtkWindow" id="window1">
  <child>
    <object class="GtkButton" id="apple_button">
      <property name="label">apple-red</property>
      <property name="use-stock">True</property>
    </object>
  </child>
</object>.

func NewIconFactory deprecated

func NewIconFactory() *IconFactory

NewIconFactory creates a new IconFactory. An icon factory manages a collection of IconSets; a IconSet manages a set of variants of a particular icon (i.e. a IconSet contains variants for different sizes and widget states). Icons in an icon factory are named by a stock ID, which is a simple string identifying the icon. Each Style has a list of IconFactorys derived from the current theme; those icon factories are consulted first when searching for an icon. If the theme doesn’t set a particular icon, GTK+ looks for the icon in a list of default icon factories, maintained by gtk_icon_factory_add_default() and gtk_icon_factory_remove_default(). Applications with icons should add a default icon factory with their icons, which will allow themes to override the icons for the application.

Deprecated: Use IconTheme instead.

The function returns the following values:

  • iconFactory: new IconFactory.

func (*IconFactory) Add deprecated

func (factory *IconFactory) Add(stockId string, iconSet *IconSet)

Add adds the given icon_set to the icon factory, under the name stock_id. stock_id should be namespaced for your application, e.g. “myapp-whatever-icon”. Normally applications create a IconFactory, then add it to the list of default factories with gtk_icon_factory_add_default(). Then they pass the stock_id to widgets such as Image to display the icon. Themes can provide an icon with the same name (such as "myapp-whatever-icon") to override your application’s default icons. If an icon already existed in factory for stock_id, it is unreferenced and replaced with the new icon_set.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • stockId: icon name.
  • iconSet: icon set.

func (*IconFactory) AddDefault deprecated

func (factory *IconFactory) AddDefault()

AddDefault adds an icon factory to the list of icon factories searched by gtk_style_lookup_icon_set(). This means that, for example, gtk_image_new_from_stock() will be able to find icons in factory. There will normally be an icon factory added for each library or application that comes with icons. The default icon factories can be overridden by themes.

Deprecated: Use IconTheme instead.

func (*IconFactory) Lookup deprecated

func (factory *IconFactory) Lookup(stockId string) *IconSet

Lookup looks up stock_id in the icon factory, returning an icon set if found, otherwise NULL. For display to the user, you should use gtk_style_lookup_icon_set() on the Style for the widget that will display the icon, instead of using this function directly, so that themes are taken into account.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • stockId: icon name.

The function returns the following values:

  • iconSet: icon set of stock_id.

func (*IconFactory) RemoveDefault deprecated

func (factory *IconFactory) RemoveDefault()

RemoveDefault removes an icon factory from the list of default icon factories. Not normally used; you might use it for a library that can be unloaded or shut down.

Deprecated: Use IconTheme instead.

type IconFactoryClass added in v0.0.5

type IconFactoryClass struct {
	// contains filtered or unexported fields
}

IconFactoryClass: instance of this type is always passed by reference.

type IconFactoryOverrides added in v0.0.5

type IconFactoryOverrides struct {
}

IconFactoryOverrides contains methods that are overridable.

type IconInfo

type IconInfo struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

IconInfo contains information found when looking up an icon in an icon theme.

func NewIconInfoForPixbuf

func NewIconInfoForPixbuf(iconTheme *IconTheme, pixbuf *gdkpixbuf.Pixbuf) *IconInfo

NewIconInfoForPixbuf creates a IconInfo for a Pixbuf.

The function takes the following parameters:

  • iconTheme: IconTheme.
  • pixbuf to wrap in a IconInfo.

The function returns the following values:

  • iconInfo: IconInfo.

func (*IconInfo) AttachPoints deprecated

func (iconInfo *IconInfo) AttachPoints() ([]gdk.Point, bool)

AttachPoints: this function is deprecated and always returns FALSE.

Deprecated: Attachment points are deprecated.

The function returns the following values:

  • points (optional): location to store pointer to an array of points, or NULL free the array of points with g_free().
  • ok: FALSE.

func (*IconInfo) BaseScale

func (iconInfo *IconInfo) BaseScale() int

BaseScale gets the base scale for the icon. The base scale is a scale for the icon that was specified by the icon theme creator. For instance an icon drawn for a high-dpi screen with window scale 2 for a base size of 32 will be 64 pixels tall and have a base scale of 2.

The function returns the following values:

  • gint: base scale.

func (*IconInfo) BaseSize

func (iconInfo *IconInfo) BaseSize() int

BaseSize gets the base size for the icon. The base size is a size for the icon that was specified by the icon theme creator. This may be different than the actual size of image; an example of this is small emblem icons that can be attached to a larger icon. These icons will be given the same base size as the larger icons to which they are attached.

Note that for scaled icons the base size does not include the base scale.

The function returns the following values:

  • gint: base size, or 0, if no base size is known for the icon.

func (*IconInfo) BuiltinPixbuf deprecated

func (iconInfo *IconInfo) BuiltinPixbuf() *gdkpixbuf.Pixbuf

BuiltinPixbuf gets the built-in image for this icon, if any. To allow GTK+ to use built in icon images, you must pass the GTK_ICON_LOOKUP_USE_BUILTIN to gtk_icon_theme_lookup_icon().

Deprecated: This function is deprecated, use gtk_icon_theme_add_resource_path() instead of builtin icons.

The function returns the following values:

  • pixbuf (optional): built-in image pixbuf, or NULL. No extra reference is added to the returned pixbuf, so if you want to keep it around, you must use g_object_ref(). The returned image must not be modified.

func (*IconInfo) DisplayName deprecated

func (iconInfo *IconInfo) DisplayName() string

DisplayName: this function is deprecated and always returns NULL.

Deprecated: Display names are deprecated.

The function returns the following values:

  • utf8: NULL.

func (*IconInfo) EmbeddedRect deprecated

func (iconInfo *IconInfo) EmbeddedRect() (*gdk.Rectangle, bool)

EmbeddedRect: this function is deprecated and always returns FALSE.

Deprecated: Embedded rectangles are deprecated.

The function returns the following values:

  • rectangle in which to store embedded rectangle coordinates; coordinates are only stored when this function returns TRUE.
  • ok: FALSE.

func (*IconInfo) Filename

func (iconInfo *IconInfo) Filename() string

Filename gets the filename for the icon. If the GTK_ICON_LOOKUP_USE_BUILTIN flag was passed to gtk_icon_theme_lookup_icon(), there may be no filename if a builtin icon is returned; in this case, you should use gtk_icon_info_get_builtin_pixbuf().

The function returns the following values:

  • filename (optional) for the icon, or NULL if gtk_icon_info_get_builtin_pixbuf() should be used instead. The return value is owned by GTK+ and should not be modified or freed.

func (*IconInfo) IsSymbolic

func (iconInfo *IconInfo) IsSymbolic() bool

IsSymbolic checks if the icon is symbolic or not. This currently uses only the file name and not the file contents for determining this. This behaviour may change in the future.

The function returns the following values:

  • ok: TRUE if the icon is symbolic, FALSE otherwise.

func (*IconInfo) LoadIcon

func (iconInfo *IconInfo) LoadIcon() (*gdkpixbuf.Pixbuf, error)

LoadIcon renders an icon previously looked up in an icon theme using gtk_icon_theme_lookup_icon(); the size will be based on the size passed to gtk_icon_theme_lookup_icon(). Note that the resulting pixbuf may not be exactly this size; an icon theme may have icons that differ slightly from their nominal sizes, and in addition GTK+ will avoid scaling icons that it considers sufficiently close to the requested size or for which the source image would have to be scaled up too far. (This maintains sharpness.). This behaviour can be changed by passing the GTK_ICON_LOOKUP_FORCE_SIZE flag when obtaining the IconInfo. If this flag has been specified, the pixbuf returned by this function will be scaled to the exact size.

The function returns the following values:

  • pixbuf: rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon.

func (*IconInfo) LoadIconAsync

func (iconInfo *IconInfo) LoadIconAsync(ctx context.Context, callback gio.AsyncReadyCallback)

LoadIconAsync: asynchronously load, render and scale an icon previously looked up from the icon theme using gtk_icon_theme_lookup_icon().

For more details, see gtk_icon_info_load_icon() which is the synchronous version of this call.

The function takes the following parameters:

  • ctx (optional): optional #GCancellable object, NULL to ignore.
  • callback (optional) to call when the request is satisfied.

func (*IconInfo) LoadIconFinish

func (iconInfo *IconInfo) LoadIconFinish(res gio.AsyncResulter) (*gdkpixbuf.Pixbuf, error)

LoadIconFinish finishes an async icon load, see gtk_icon_info_load_icon_async().

The function takes the following parameters:

  • res: Result.

The function returns the following values:

  • pixbuf: rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon.

func (*IconInfo) LoadSurface

func (iconInfo *IconInfo) LoadSurface(forWindow gdk.Windower) (*cairo.Surface, error)

LoadSurface renders an icon previously looked up in an icon theme using gtk_icon_theme_lookup_icon(); the size will be based on the size passed to gtk_icon_theme_lookup_icon(). Note that the resulting surface may not be exactly this size; an icon theme may have icons that differ slightly from their nominal sizes, and in addition GTK+ will avoid scaling icons that it considers sufficiently close to the requested size or for which the source image would have to be scaled up too far. (This maintains sharpness.). This behaviour can be changed by passing the GTK_ICON_LOOKUP_FORCE_SIZE flag when obtaining the IconInfo. If this flag has been specified, the pixbuf returned by this function will be scaled to the exact size.

The function takes the following parameters:

  • forWindow (optional) to optimize drawing for, or NULL.

The function returns the following values:

  • surface: rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use cairo_surface_destroy() to release your reference to the icon.

func (*IconInfo) LoadSymbolic

func (iconInfo *IconInfo) LoadSymbolic(fg, successColor, warningColor, errorColor *gdk.RGBA) (bool, *gdkpixbuf.Pixbuf, error)

LoadSymbolic loads an icon, modifying it to match the system colours for the foreground, success, warning and error colors provided. If the icon is not a symbolic one, the function will return the result from gtk_icon_info_load_icon().

This allows loading symbolic icons that will match the system theme.

Unless you are implementing a widget, you will want to use g_themed_icon_new_with_default_fallbacks() to load the icon.

As implementation details, the icon loaded needs to be of SVG type, contain the “symbolic” term as the last component of the icon name, and use the “fg”, “success”, “warning” and “error” CSS styles in the SVG file itself.

See the Symbolic Icons Specification (http://www.freedesktop.org/wiki/SymbolicIcons) for more information about symbolic icons.

The function takes the following parameters:

  • fg representing the foreground color of the icon.
  • successColor (optional) representing the warning color of the icon or NULL to use the default color.
  • warningColor (optional) representing the warning color of the icon or NULL to use the default color.
  • errorColor (optional) representing the error color of the icon or NULL to use the default color (allow-none).

The function returns the following values:

  • wasSymbolic (optional) returns whether the loaded icon was a symbolic one and whether the fg color was applied to it.
  • pixbuf representing the loaded icon.

func (*IconInfo) LoadSymbolicAsync

func (iconInfo *IconInfo) LoadSymbolicAsync(ctx context.Context, fg, successColor, warningColor, errorColor *gdk.RGBA, callback gio.AsyncReadyCallback)

LoadSymbolicAsync: asynchronously load, render and scale a symbolic icon previously looked up from the icon theme using gtk_icon_theme_lookup_icon().

For more details, see gtk_icon_info_load_symbolic() which is the synchronous version of this call.

The function takes the following parameters:

  • ctx (optional): optional #GCancellable object, NULL to ignore.
  • fg representing the foreground color of the icon.
  • successColor (optional) representing the warning color of the icon or NULL to use the default color.
  • warningColor (optional) representing the warning color of the icon or NULL to use the default color.
  • errorColor (optional) representing the error color of the icon or NULL to use the default color (allow-none).
  • callback (optional) to call when the request is satisfied.

func (*IconInfo) LoadSymbolicFinish

func (iconInfo *IconInfo) LoadSymbolicFinish(res gio.AsyncResulter) (bool, *gdkpixbuf.Pixbuf, error)

LoadSymbolicFinish finishes an async icon load, see gtk_icon_info_load_symbolic_async().

The function takes the following parameters:

  • res: Result.

The function returns the following values:

  • wasSymbolic (optional) returns whether the loaded icon was a symbolic one and whether the fg color was applied to it.
  • pixbuf: rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon.

func (*IconInfo) LoadSymbolicForContext

func (iconInfo *IconInfo) LoadSymbolicForContext(context *StyleContext) (bool, *gdkpixbuf.Pixbuf, error)

LoadSymbolicForContext loads an icon, modifying it to match the system colors for the foreground, success, warning and error colors provided. If the icon is not a symbolic one, the function will return the result from gtk_icon_info_load_icon(). This function uses the regular foreground color and the symbolic colors with the names “success_color”, “warning_color” and “error_color” from the context.

This allows loading symbolic icons that will match the system theme.

See gtk_icon_info_load_symbolic() for more details.

The function takes the following parameters:

  • context: StyleContext.

The function returns the following values:

  • wasSymbolic (optional) returns whether the loaded icon was a symbolic one and whether the fg color was applied to it.
  • pixbuf representing the loaded icon.

func (*IconInfo) LoadSymbolicForContextAsync

func (iconInfo *IconInfo) LoadSymbolicForContextAsync(ctx context.Context, context *StyleContext, callback gio.AsyncReadyCallback)

LoadSymbolicForContextAsync: asynchronously load, render and scale a symbolic icon previously looked up from the icon theme using gtk_icon_theme_lookup_icon().

For more details, see gtk_icon_info_load_symbolic_for_context() which is the synchronous version of this call.

The function takes the following parameters:

  • ctx (optional): optional #GCancellable object, NULL to ignore.
  • context: StyleContext.
  • callback (optional) to call when the request is satisfied.

func (*IconInfo) LoadSymbolicForContextFinish

func (iconInfo *IconInfo) LoadSymbolicForContextFinish(res gio.AsyncResulter) (bool, *gdkpixbuf.Pixbuf, error)

LoadSymbolicForContextFinish finishes an async icon load, see gtk_icon_info_load_symbolic_for_context_async().

The function takes the following parameters:

  • res: Result.

The function returns the following values:

  • wasSymbolic (optional) returns whether the loaded icon was a symbolic one and whether the fg color was applied to it.
  • pixbuf: rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon.

func (*IconInfo) LoadSymbolicForStyle deprecated

func (iconInfo *IconInfo) LoadSymbolicForStyle(style *Style, state StateType) (bool, *gdkpixbuf.Pixbuf, error)

LoadSymbolicForStyle loads an icon, modifying it to match the system colours for the foreground, success, warning and error colors provided. If the icon is not a symbolic one, the function will return the result from gtk_icon_info_load_icon().

This allows loading symbolic icons that will match the system theme.

See gtk_icon_info_load_symbolic() for more details.

Deprecated: Use gtk_icon_info_load_symbolic_for_context() instead.

The function takes the following parameters:

  • style to take the colors from.
  • state: widget state to use for colors.

The function returns the following values:

  • wasSymbolic (optional) returns whether the loaded icon was a symbolic one and whether the fg color was applied to it.
  • pixbuf representing the loaded icon.

func (*IconInfo) SetRawCoordinates deprecated

func (iconInfo *IconInfo) SetRawCoordinates(rawCoordinates bool)

SetRawCoordinates sets whether the coordinates returned by gtk_icon_info_get_embedded_rect() and gtk_icon_info_get_attach_points() should be returned in their original form as specified in the icon theme, instead of scaled appropriately for the pixbuf returned by gtk_icon_info_load_icon().

Raw coordinates are somewhat strange; they are specified to be with respect to the unscaled pixmap for PNG and XPM icons, but for SVG icons, they are in a 1000x1000 coordinate space that is scaled to the final size of the icon. You can determine if the icon is an SVG icon by using gtk_icon_info_get_filename(), and seeing if it is non-NULL and ends in “.svg”.

This function is provided primarily to allow compatibility wrappers for older API's, and is not expected to be useful for applications.

Deprecated: Embedded rectangles and attachment points are deprecated.

The function takes the following parameters:

  • rawCoordinates: whether the coordinates of embedded rectangles and attached points should be returned in their original (unscaled) form.

type IconLookupFlags

type IconLookupFlags C.guint

IconLookupFlags: used to specify options for gtk_icon_theme_lookup_icon().

const (
	// IconLookupNoSVG: never get SVG icons, even if gdk-pixbuf supports them.
	// Cannot be used together with GTK_ICON_LOOKUP_FORCE_SVG.
	IconLookupNoSVG IconLookupFlags = 0b1
	// IconLookupForceSVG: get SVG icons, even if gdk-pixbuf doesn’t support
	// them. Cannot be used together with GTK_ICON_LOOKUP_NO_SVG.
	IconLookupForceSVG IconLookupFlags = 0b10
	// IconLookupUseBuiltin: when passed to gtk_icon_theme_lookup_icon()
	// includes builtin icons as well as files. For a builtin icon,
	// gtk_icon_info_get_filename() is NULL and you need to call
	// gtk_icon_info_get_builtin_pixbuf().
	IconLookupUseBuiltin IconLookupFlags = 0b100
	// IconLookupGenericFallback: try to shorten icon name at '-' characters
	// before looking at inherited themes. This flag is only supported in
	// functions that take a single icon name. For more general fallback,
	// see gtk_icon_theme_choose_icon(). Since 2.12.
	IconLookupGenericFallback IconLookupFlags = 0b1000
	// IconLookupForceSize always get the icon scaled to the requested size.
	// Since 2.14.
	IconLookupForceSize IconLookupFlags = 0b10000
	// IconLookupForceRegular: try to always load regular icons, even when
	// symbolic icon names are given. Since 3.14.
	IconLookupForceRegular IconLookupFlags = 0b100000
	// IconLookupForceSymbolic: try to always load symbolic icons, even when
	// regular icon names are given. Since 3.14.
	IconLookupForceSymbolic IconLookupFlags = 0b1000000
	// IconLookupDirLTR: try to load a variant of the icon for left-to-right
	// text direction. Since 3.14.
	IconLookupDirLTR IconLookupFlags = 0b10000000
	// IconLookupDirRTL: try to load a variant of the icon for right-to-left
	// text direction. Since 3.14.
	IconLookupDirRTL IconLookupFlags = 0b100000000
)

func (IconLookupFlags) Has

func (i IconLookupFlags) Has(other IconLookupFlags) bool

Has returns true if i contains other.

func (IconLookupFlags) String

func (i IconLookupFlags) String() string

String returns the names in string for IconLookupFlags.

type IconSet

type IconSet struct {
	// contains filtered or unexported fields
}

IconSet: instance of this type is always passed by reference.

func IconFactoryLookupDefault deprecated

func IconFactoryLookupDefault(stockId string) *IconSet

IconFactoryLookupDefault looks for an icon in the list of default icon factories. For display to the user, you should use gtk_style_lookup_icon_set() on the Style for the widget that will display the icon, instead of using this function directly, so that themes are taken into account.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • stockId: icon name.

The function returns the following values:

  • iconSet or NULL.

func NewIconSet

func NewIconSet() *IconSet

NewIconSet constructs a struct IconSet.

func NewIconSetFromPixbuf

func NewIconSetFromPixbuf(pixbuf *gdkpixbuf.Pixbuf) *IconSet

NewIconSetFromPixbuf constructs a struct IconSet.

func (*IconSet) AddSource deprecated

func (iconSet *IconSet) AddSource(source *IconSource)

AddSource: icon sets have a list of IconSource, which they use as base icons for rendering icons in different states and sizes. Icons are scaled, made to look insensitive, etc. in gtk_icon_set_render_icon(), but IconSet needs base images to work with. The base images and when to use them are described by a IconSource.

This function copies source, so you can reuse the same source immediately without affecting the icon set.

An example of when you’d use this function: a web browser’s "Back to Previous Page" icon might point in a different direction in Hebrew and in English; it might look different when insensitive; and it might change size depending on toolbar mode (small/large icons). So a single icon set would contain all those variants of the icon, and you might add a separate source for each one.

You should nearly always add a “default” icon source with all fields wildcarded, which will be used as a fallback if no more specific source matches. IconSet always prefers more specific icon sources to more generic icon sources. The order in which you add the sources to the icon set does not matter.

gtk_icon_set_new_from_pixbuf() creates a new icon set with a default icon source based on the given pixbuf.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • source: IconSource.

func (*IconSet) Copy deprecated

func (iconSet *IconSet) Copy() *IconSet

Copy copies icon_set by value.

Deprecated: Use IconTheme instead.

The function returns the following values:

  • iconSet: new IconSet identical to the first.

func (*IconSet) RenderIcon deprecated

func (iconSet *IconSet) RenderIcon(style *Style, direction TextDirection, state StateType, size int, widget Widgetter, detail string) *gdkpixbuf.Pixbuf

RenderIcon renders an icon using gtk_style_render_icon(). In most cases, gtk_widget_render_icon() is better, since it automatically provides most of the arguments from the current widget settings. This function never returns NULL; if the icon can’t be rendered (perhaps because an image file fails to load), a default "missing image" icon will be returned instead.

Deprecated: Use gtk_icon_set_render_icon_pixbuf() instead.

The function takes the following parameters:

  • style (optional) associated with widget, or NULL.
  • direction: text direction.
  • state: widget state.
  • size: icon size (IconSize). A size of (GtkIconSize)-1 means render at the size of the source and don’t scale.
  • widget (optional) that will display the icon, or NULL. The only use that is typically made of this is to determine the appropriate Screen.
  • detail (optional) to pass to the theme engine, or NULL. Note that passing a detail of anything but NULL will disable caching.

The function returns the following values:

  • pixbuf to be displayed.

func (*IconSet) RenderIconPixbuf deprecated

func (iconSet *IconSet) RenderIconPixbuf(context *StyleContext, size int) *gdkpixbuf.Pixbuf

RenderIconPixbuf renders an icon using gtk_render_icon_pixbuf(). In most cases, gtk_widget_render_icon_pixbuf() is better, since it automatically provides most of the arguments from the current widget settings. This function never returns NULL; if the icon can’t be rendered (perhaps because an image file fails to load), a default "missing image" icon will be returned instead.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • context: StyleContext.
  • size: icon size (IconSize). A size of (GtkIconSize)-1 means render at the size of the source and don’t scale.

The function returns the following values:

  • pixbuf to be displayed.

func (*IconSet) RenderIconSurface deprecated

func (iconSet *IconSet) RenderIconSurface(context *StyleContext, size int, scale int, forWindow gdk.Windower) *cairo.Surface

RenderIconSurface renders an icon using gtk_render_icon_pixbuf() and converts it to a cairo surface.

This function never returns NULL; if the icon can’t be rendered (perhaps because an image file fails to load), a default "missing image" icon will be returned instead.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • context: StyleContext.
  • size: icon size (IconSize). A size of (GtkIconSize)-1 means render at the size of the source and don’t scale.
  • scale: window scale to render for.
  • forWindow (optional) to optimize drawing for, or NULL.

The function returns the following values:

  • surface to be displayed.

func (*IconSet) Sizes deprecated

func (iconSet *IconSet) Sizes() []int

Sizes obtains a list of icon sizes this icon set can render. The returned array must be freed with g_free().

Deprecated: Use IconTheme instead.

The function returns the following values:

  • sizes: return location for array of sizes (IconSize).

type IconSize

type IconSize C.gint

IconSize: built-in stock icon sizes.

const (
	// IconSizeInvalid: invalid size.
	IconSizeInvalid IconSize = iota
	// IconSizeMenu: size appropriate for menus (16px).
	IconSizeMenu
	// IconSizeSmallToolbar: size appropriate for small toolbars (16px).
	IconSizeSmallToolbar
	// IconSizeLargeToolbar: size appropriate for large toolbars (24px).
	IconSizeLargeToolbar
	// IconSizeButton: size appropriate for buttons (16px).
	IconSizeButton
	// IconSizeDND: size appropriate for drag and drop (32px).
	IconSizeDND
	// IconSizeDialog: size appropriate for dialogs (48px).
	IconSizeDialog
)

func (IconSize) String

func (i IconSize) String() string

String returns the name in string for IconSize.

type IconSource

type IconSource struct {
	// contains filtered or unexported fields
}

IconSource: instance of this type is always passed by reference.

func NewIconSource

func NewIconSource() *IconSource

NewIconSource constructs a struct IconSource.

func (*IconSource) Copy deprecated

func (source *IconSource) Copy() *IconSource

Copy creates a copy of source; mostly useful for language bindings.

Deprecated: Use IconTheme instead.

The function returns the following values:

  • iconSource: new IconSource.

func (*IconSource) Direction deprecated

func (source *IconSource) Direction() TextDirection

Direction obtains the text direction this icon source applies to. The return value is only useful/meaningful if the text direction is not wildcarded.

Deprecated: Use IconTheme instead.

The function returns the following values:

  • textDirection: text direction this source matches.

func (*IconSource) DirectionWildcarded deprecated

func (source *IconSource) DirectionWildcarded() bool

DirectionWildcarded gets the value set by gtk_icon_source_set_direction_wildcarded().

Deprecated: Use IconTheme instead.

The function returns the following values:

  • ok: TRUE if this icon source is a base for any text direction variant.

func (*IconSource) Filename deprecated

func (source *IconSource) Filename() string

Filename retrieves the source filename, or NULL if none is set. The filename is not a copy, and should not be modified or expected to persist beyond the lifetime of the icon source.

Deprecated: Use IconTheme instead.

The function returns the following values:

  • filename: image filename. This string must not be modified or freed.

func (*IconSource) IconName deprecated

func (source *IconSource) IconName() string

IconName retrieves the source icon name, or NULL if none is set. The icon_name is not a copy, and should not be modified or expected to persist beyond the lifetime of the icon source.

Deprecated: Use IconTheme instead.

The function returns the following values:

  • utf8: icon name. This string must not be modified or freed.

func (*IconSource) Pixbuf deprecated

func (source *IconSource) Pixbuf() *gdkpixbuf.Pixbuf

Pixbuf retrieves the source pixbuf, or NULL if none is set. In addition, if a filename source is in use, this function in some cases will return the pixbuf from loaded from the filename. This is, for example, true for the GtkIconSource passed to the Style render_icon() virtual function. The reference count on the pixbuf is not incremented.

Deprecated: Use IconTheme instead.

The function returns the following values:

  • pixbuf: source pixbuf.

func (*IconSource) SetDirection deprecated

func (source *IconSource) SetDirection(direction TextDirection)

SetDirection sets the text direction this icon source is intended to be used with.

Setting the text direction on an icon source makes no difference if the text direction is wildcarded. Therefore, you should usually call gtk_icon_source_set_direction_wildcarded() to un-wildcard it in addition to calling this function.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • direction: text direction this source applies to.

func (*IconSource) SetDirectionWildcarded deprecated

func (source *IconSource) SetDirectionWildcarded(setting bool)

SetDirectionWildcarded: if the text direction is wildcarded, this source can be used as the base image for an icon in any TextDirection. If the text direction is not wildcarded, then the text direction the icon source applies to should be set with gtk_icon_source_set_direction(), and the icon source will only be used with that text direction.

IconSet prefers non-wildcarded sources (exact matches) over wildcarded sources, and will use an exact match when possible.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • setting: TRUE to wildcard the text direction.

func (*IconSource) SetFilename deprecated

func (source *IconSource) SetFilename(filename string)

SetFilename sets the name of an image file to use as a base image when creating icon variants for IconSet. The filename must be absolute.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • filename: image file to use.

func (*IconSource) SetIconName deprecated

func (source *IconSource) SetIconName(iconName string)

SetIconName sets the name of an icon to look up in the current icon theme to use as a base image when creating icon variants for IconSet.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • iconName (optional): name of icon to use.

func (*IconSource) SetPixbuf deprecated

func (source *IconSource) SetPixbuf(pixbuf *gdkpixbuf.Pixbuf)

SetPixbuf sets a pixbuf to use as a base image when creating icon variants for IconSet.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • pixbuf to use as a source.

func (*IconSource) SetSize deprecated

func (source *IconSource) SetSize(size int)

SetSize sets the icon size this icon source is intended to be used with.

Setting the icon size on an icon source makes no difference if the size is wildcarded. Therefore, you should usually call gtk_icon_source_set_size_wildcarded() to un-wildcard it in addition to calling this function.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • size: icon size (IconSize) this source applies to.

func (*IconSource) SetSizeWildcarded deprecated

func (source *IconSource) SetSizeWildcarded(setting bool)

SetSizeWildcarded: if the icon size is wildcarded, this source can be used as the base image for an icon of any size. If the size is not wildcarded, then the size the source applies to should be set with gtk_icon_source_set_size() and the icon source will only be used with that specific size.

IconSet prefers non-wildcarded sources (exact matches) over wildcarded sources, and will use an exact match when possible.

IconSet will normally scale wildcarded source images to produce an appropriate icon at a given size, but will not change the size of source images that match exactly.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • setting: TRUE to wildcard the widget state.

func (*IconSource) SetState deprecated

func (source *IconSource) SetState(state StateType)

SetState sets the widget state this icon source is intended to be used with.

Setting the widget state on an icon source makes no difference if the state is wildcarded. Therefore, you should usually call gtk_icon_source_set_state_wildcarded() to un-wildcard it in addition to calling this function.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • state: widget state this source applies to.

func (*IconSource) SetStateWildcarded deprecated

func (source *IconSource) SetStateWildcarded(setting bool)

SetStateWildcarded: if the widget state is wildcarded, this source can be used as the base image for an icon in any StateType. If the widget state is not wildcarded, then the state the source applies to should be set with gtk_icon_source_set_state() and the icon source will only be used with that specific state.

IconSet prefers non-wildcarded sources (exact matches) over wildcarded sources, and will use an exact match when possible.

IconSet will normally transform wildcarded source images to produce an appropriate icon for a given state, for example lightening an image on prelight, but will not modify source images that match exactly.

Deprecated: Use IconTheme instead.

The function takes the following parameters:

  • setting: TRUE to wildcard the widget state.

func (*IconSource) Size deprecated

func (source *IconSource) Size() int

Size obtains the icon size this source applies to. The return value is only useful/meaningful if the icon size is not wildcarded.

Deprecated: Use IconTheme instead.

The function returns the following values:

  • gint: icon size (IconSize) this source matches.

func (*IconSource) SizeWildcarded deprecated

func (source *IconSource) SizeWildcarded() bool

SizeWildcarded gets the value set by gtk_icon_source_set_size_wildcarded().

Deprecated: Use IconTheme instead.

The function returns the following values:

  • ok: TRUE if this icon source is a base for any icon size variant.

func (*IconSource) State deprecated

func (source *IconSource) State() StateType

State obtains the widget state this icon source applies to. The return value is only useful/meaningful if the widget state is not wildcarded.

Deprecated: Use IconTheme instead.

The function returns the following values:

  • stateType: widget state this source matches.

func (*IconSource) StateWildcarded deprecated

func (source *IconSource) StateWildcarded() bool

StateWildcarded gets the value set by gtk_icon_source_set_state_wildcarded().

Deprecated: Use IconTheme instead.

The function returns the following values:

  • ok: TRUE if this icon source is a base for any widget state variant.

type IconTheme

type IconTheme struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

IconTheme provides a facility for looking up icons by name and size. The main reason for using a name rather than simply providing a filename is to allow different icons to be used depending on what “icon theme” is selected by the user. The operation of icon themes on Linux and Unix follows the Icon Theme Specification (http://www.freedesktop.org/Standards/icon-theme-spec) There is a fallback icon theme, named hicolor, where applications should install their icons, but additional icon themes can be installed as operating system vendors and users choose.

Named icons are similar to the deprecated [Stock Items][gtkstock], and the distinction between the two may be a bit confusing. A few things to keep in mind:

- Stock images usually are used in conjunction with [Stock Items][gtkstock], such as GTK_STOCK_OK or GTK_STOCK_OPEN. Named icons are easier to set up and therefore are more useful for new icons that an application wants to add, such as application icons or window icons.

- Stock images can only be loaded at the symbolic sizes defined by the IconSize enumeration, or by custom sizes defined by gtk_icon_size_register(), while named icons are more flexible and any pixel size can be specified.

- Because stock images are closely tied to stock items, and thus to actions in the user interface, stock images may come in multiple variants for different widget states or writing directions.

A good rule of thumb is that if there is a stock image for what you want to use, use it, otherwise use a named icon. It turns out that internally stock images are generally defined in terms of one or more named icons. (An example of the more than one case is icons that depend on writing direction; GTK_STOCK_GO_FORWARD uses the two themed icons “gtk-stock-go-forward-ltr” and “gtk-stock-go-forward-rtl”.)

In many cases, named themes are used indirectly, via Image or stock items, rather than directly, but looking up icons directly is also simple. The IconTheme object acts as a database of all the icons in the current theme. You can create new IconTheme objects, but it’s much more efficient to use the standard icon theme for the Screen so that the icon information is shared with other people looking up icons.

GError *error = NULL;
GtkIconTheme *icon_theme;
GdkPixbuf *pixbuf;

icon_theme = gtk_icon_theme_get_default ();
pixbuf = gtk_icon_theme_load_icon (icon_theme,
                                   "my-icon-name", // icon name
                                   48, // icon size
                                   0,  // flags
                                   &error);
if (!pixbuf)
  {
    g_warning ("Couldn’t load icon: s", error->message);
    g_error_free (error);
  }
else
  {
    // Use the pixbuf
    g_object_unref (pixbuf);
  }.

func IconThemeGetDefault

func IconThemeGetDefault() *IconTheme

IconThemeGetDefault gets the icon theme for the default screen. See gtk_icon_theme_get_for_screen().

The function returns the following values:

  • iconTheme: unique IconTheme associated with the default screen. This icon theme is associated with the screen and can be used as long as the screen is open. Do not ref or unref it.

func IconThemeGetForScreen

func IconThemeGetForScreen(screen *gdk.Screen) *IconTheme

IconThemeGetForScreen gets the icon theme object associated with screen; if this function has not previously been called for the given screen, a new icon theme object will be created and associated with the screen. Icon theme objects are fairly expensive to create, so using this function is usually a better choice than calling than gtk_icon_theme_new() and setting the screen yourself; by using this function a single icon theme object will be shared between users.

The function takes the following parameters:

  • screen: Screen.

The function returns the following values:

  • iconTheme: unique IconTheme associated with the given screen. This icon theme is associated with the screen and can be used as long as the screen is open. Do not ref or unref it.

func NewIconTheme

func NewIconTheme() *IconTheme

NewIconTheme creates a new icon theme object. Icon theme objects are used to lookup up an icon by name in a particular icon theme. Usually, you’ll want to use gtk_icon_theme_get_default() or gtk_icon_theme_get_for_screen() rather than creating a new icon theme object for scratch.

The function returns the following values:

  • iconTheme: newly created IconTheme object.

func (*IconTheme) AddResourcePath

func (iconTheme *IconTheme) AddResourcePath(path string)

AddResourcePath adds a resource path that will be looked at when looking for icons, similar to search paths.

This function should be used to make application-specific icons available as part of the icon theme.

The resources are considered as part of the hicolor icon theme and must be located in subdirectories that are defined in the hicolor icon theme, such as path/16x16/actions/run.png. Icons that are directly placed in the resource path instead of a subdirectory are also considered as ultimate fallback.

The function takes the following parameters:

  • path: resource path.

func (*IconTheme) AppendSearchPath

func (iconTheme *IconTheme) AppendSearchPath(path string)

AppendSearchPath appends a directory to the search path. See gtk_icon_theme_set_search_path().

The function takes the following parameters:

  • path: directory name to append to the icon path.

func (*IconTheme) ChooseIcon

func (iconTheme *IconTheme) ChooseIcon(iconNames []string, size int, flags IconLookupFlags) *IconInfo

ChooseIcon looks up a named icon and returns a IconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() combines these two steps if all you need is the pixbuf.)

If icon_names contains more than one name, this function tries them all in the given order before falling back to inherited icon themes.

The function takes the following parameters:

  • iconNames: NULL-terminated array of icon names to lookup.
  • size: desired icon size.
  • flags modifying the behavior of the icon lookup.

The function returns the following values:

  • iconInfo (optional) object containing information about the icon, or NULL if the icon wasn’t found.

func (*IconTheme) ChooseIconForScale

func (iconTheme *IconTheme) ChooseIconForScale(iconNames []string, size, scale int, flags IconLookupFlags) *IconInfo

ChooseIconForScale looks up a named icon for a particular window scale and returns a IconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() combines these two steps if all you need is the pixbuf.)

If icon_names contains more than one name, this function tries them all in the given order before falling back to inherited icon themes.

The function takes the following parameters:

  • iconNames: NULL-terminated array of icon names to lookup.
  • size: desired icon size.
  • scale: desired scale.
  • flags modifying the behavior of the icon lookup.

The function returns the following values:

  • iconInfo (optional) object containing information about the icon, or NULL if the icon wasn’t found.

func (*IconTheme) ConnectChanged

func (iconTheme *IconTheme) ConnectChanged(f func()) coreglib.SignalHandle

ConnectChanged is emitted when the current icon theme is switched or GTK+ detects that a change has occurred in the contents of the current icon theme.

func (*IconTheme) ExampleIconName

func (iconTheme *IconTheme) ExampleIconName() string

ExampleIconName gets the name of an icon that is representative of the current theme (for instance, to use when presenting a list of themes to the user.).

The function returns the following values:

  • utf8 (optional): name of an example icon or NULL. Free with g_free().

func (*IconTheme) HasIcon

func (iconTheme *IconTheme) HasIcon(iconName string) bool

HasIcon checks whether an icon theme includes an icon for a particular name.

The function takes the following parameters:

  • iconName: name of an icon.

The function returns the following values:

  • ok: TRUE if icon_theme includes an icon for icon_name.

func (*IconTheme) IconSizes

func (iconTheme *IconTheme) IconSizes(iconName string) []int

IconSizes returns an array of integers describing the sizes at which the icon is available without scaling. A size of -1 means that the icon is available in a scalable format. The array is zero-terminated.

The function takes the following parameters:

  • iconName: name of an icon.

The function returns the following values:

  • gints: newly allocated array describing the sizes at which the icon is available. The array should be freed with g_free() when it is no longer needed.

func (*IconTheme) ListContexts

func (iconTheme *IconTheme) ListContexts() []string

ListContexts gets the list of contexts available within the current hierarchy of icon themes. See gtk_icon_theme_list_icons() for details about contexts.

The function returns the following values:

  • list list holding the names of all the contexts in the theme. You must first free each element in the list with g_free(), then free the list itself with g_list_free().

func (*IconTheme) ListIcons

func (iconTheme *IconTheme) ListIcons(context string) []string

ListIcons lists the icons in the current icon theme. Only a subset of the icons can be listed by providing a context string. The set of values for the context string is system dependent, but will typically include such values as “Applications” and “MimeTypes”. Contexts are explained in the Icon Theme Specification (http://www.freedesktop.org/wiki/Specifications/icon-theme-spec). The standard contexts are listed in the Icon Naming Specification (http://www.freedesktop.org/wiki/Specifications/icon-naming-spec). Also see gtk_icon_theme_list_contexts().

The function takes the following parameters:

  • context (optional): string identifying a particular type of icon, or NULL to list all icons.

The function returns the following values:

  • list list holding the names of all the icons in the theme. You must first free each element in the list with g_free(), then free the list itself with g_list_free().

func (*IconTheme) LoadIcon

func (iconTheme *IconTheme) LoadIcon(iconName string, size int, flags IconLookupFlags) (*gdkpixbuf.Pixbuf, error)

LoadIcon looks up an icon in an icon theme, scales it to the given size and renders it into a pixbuf. This is a convenience function; if more details about the icon are needed, use gtk_icon_theme_lookup_icon() followed by gtk_icon_info_load_icon().

Note that you probably want to listen for icon theme changes and update the icon. This is usually done by connecting to the GtkWidget::style-set signal. If for some reason you do not want to update the icon when the icon theme changes, you should consider using gdk_pixbuf_copy() to make a private copy of the pixbuf returned by this function. Otherwise GTK+ may need to keep the old icon theme loaded, which would be a waste of memory.

The function takes the following parameters:

  • iconName: name of the icon to lookup.
  • size: desired icon size. The resulting icon may not be exactly this size; see gtk_icon_info_load_icon().
  • flags modifying the behavior of the icon lookup.

The function returns the following values:

  • pixbuf (optional): rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon. NULL if the icon isn’t found.

func (*IconTheme) LoadIconForScale

func (iconTheme *IconTheme) LoadIconForScale(iconName string, size, scale int, flags IconLookupFlags) (*gdkpixbuf.Pixbuf, error)

LoadIconForScale looks up an icon in an icon theme for a particular window scale, scales it to the given size and renders it into a pixbuf. This is a convenience function; if more details about the icon are needed, use gtk_icon_theme_lookup_icon() followed by gtk_icon_info_load_icon().

Note that you probably want to listen for icon theme changes and update the icon. This is usually done by connecting to the GtkWidget::style-set signal. If for some reason you do not want to update the icon when the icon theme changes, you should consider using gdk_pixbuf_copy() to make a private copy of the pixbuf returned by this function. Otherwise GTK+ may need to keep the old icon theme loaded, which would be a waste of memory.

The function takes the following parameters:

  • iconName: name of the icon to lookup.
  • size: desired icon size. The resulting icon may not be exactly this size; see gtk_icon_info_load_icon().
  • scale: desired scale.
  • flags modifying the behavior of the icon lookup.

The function returns the following values:

  • pixbuf (optional): rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use g_object_unref() to release your reference to the icon. NULL if the icon isn’t found.

func (*IconTheme) LoadSurface

func (iconTheme *IconTheme) LoadSurface(iconName string, size, scale int, forWindow gdk.Windower, flags IconLookupFlags) (*cairo.Surface, error)

LoadSurface looks up an icon in an icon theme for a particular window scale, scales it to the given size and renders it into a cairo surface. This is a convenience function; if more details about the icon are needed, use gtk_icon_theme_lookup_icon() followed by gtk_icon_info_load_surface().

Note that you probably want to listen for icon theme changes and update the icon. This is usually done by connecting to the GtkWidget::style-set signal.

The function takes the following parameters:

  • iconName: name of the icon to lookup.
  • size: desired icon size. The resulting icon may not be exactly this size; see gtk_icon_info_load_icon().
  • scale: desired scale.
  • forWindow (optional) to optimize drawing for, or NULL.
  • flags modifying the behavior of the icon lookup.

The function returns the following values:

  • surface (optional): rendered icon; this may be a newly created icon or a new reference to an internal icon, so you must not modify the icon. Use cairo_surface_destroy() to release your reference to the icon. NULL if the icon isn’t found.

func (*IconTheme) LookupByGIcon

func (iconTheme *IconTheme) LookupByGIcon(icon gio.Iconner, size int, flags IconLookupFlags) *IconInfo

LookupByGIcon looks up an icon and returns a IconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon().

When rendering on displays with high pixel densities you should not use a size multiplied by the scaling factor returned by functions like gdk_window_get_scale_factor(). Instead, you should use gtk_icon_theme_lookup_by_gicon_for_scale(), as the assets loaded for a given scaling factor may be different.

The function takes the following parameters:

  • icon to look up.
  • size: desired icon size.
  • flags modifying the behavior of the icon lookup.

The function returns the following values:

  • iconInfo (optional) containing information about the icon, or NULL if the icon wasn’t found. Unref with g_object_unref().

func (*IconTheme) LookupByGIconForScale

func (iconTheme *IconTheme) LookupByGIconForScale(icon gio.Iconner, size, scale int, flags IconLookupFlags) *IconInfo

LookupByGIconForScale looks up an icon and returns a IconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon().

The function takes the following parameters:

  • icon to look up.
  • size: desired icon size.
  • scale: desired scale.
  • flags modifying the behavior of the icon lookup.

The function returns the following values:

  • iconInfo (optional) containing information about the icon, or NULL if the icon wasn’t found. Unref with g_object_unref().

func (*IconTheme) LookupIcon

func (iconTheme *IconTheme) LookupIcon(iconName string, size int, flags IconLookupFlags) *IconInfo

LookupIcon looks up a named icon and returns a IconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() combines these two steps if all you need is the pixbuf.)

When rendering on displays with high pixel densities you should not use a size multiplied by the scaling factor returned by functions like gdk_window_get_scale_factor(). Instead, you should use gtk_icon_theme_lookup_icon_for_scale(), as the assets loaded for a given scaling factor may be different.

The function takes the following parameters:

  • iconName: name of the icon to lookup.
  • size: desired icon size.
  • flags modifying the behavior of the icon lookup.

The function returns the following values:

  • iconInfo (optional) object containing information about the icon, or NULL if the icon wasn’t found.

func (*IconTheme) LookupIconForScale

func (iconTheme *IconTheme) LookupIconForScale(iconName string, size, scale int, flags IconLookupFlags) *IconInfo

LookupIconForScale looks up a named icon for a particular window scale and returns a IconInfo containing information such as the filename of the icon. The icon can then be rendered into a pixbuf using gtk_icon_info_load_icon(). (gtk_icon_theme_load_icon() combines these two steps if all you need is the pixbuf.).

The function takes the following parameters:

  • iconName: name of the icon to lookup.
  • size: desired icon size.
  • scale: desired scale.
  • flags modifying the behavior of the icon lookup.

The function returns the following values:

  • iconInfo (optional) object containing information about the icon, or NULL if the icon wasn’t found.

func (*IconTheme) PrependSearchPath

func (iconTheme *IconTheme) PrependSearchPath(path string)

PrependSearchPath prepends a directory to the search path. See gtk_icon_theme_set_search_path().

The function takes the following parameters:

  • path: directory name to prepend to the icon path.

func (*IconTheme) RescanIfNeeded

func (iconTheme *IconTheme) RescanIfNeeded() bool

RescanIfNeeded checks to see if the icon theme has changed; if it has, any currently cached information is discarded and will be reloaded next time icon_theme is accessed.

The function returns the following values:

  • ok: TRUE if the icon theme has changed and needed to be reloaded.

func (*IconTheme) SearchPath

func (iconTheme *IconTheme) SearchPath() []string

SearchPath gets the current search path. See gtk_icon_theme_set_search_path().

The function returns the following values:

  • path (optional): location to store a list of icon theme path directories or NULL. The stored value should be freed with g_strfreev().

func (*IconTheme) SetCustomTheme

func (iconTheme *IconTheme) SetCustomTheme(themeName string)

SetCustomTheme sets the name of the icon theme that the IconTheme object uses overriding system configuration. This function cannot be called on the icon theme objects returned from gtk_icon_theme_get_default() and gtk_icon_theme_get_for_screen().

The function takes the following parameters:

  • themeName (optional): name of icon theme to use instead of configured theme, or NULL to unset a previously set custom theme.

func (*IconTheme) SetScreen

func (iconTheme *IconTheme) SetScreen(screen *gdk.Screen)

SetScreen sets the screen for an icon theme; the screen is used to track the user’s currently configured icon theme, which might be different for different screens.

The function takes the following parameters:

  • screen: Screen.

func (*IconTheme) SetSearchPath

func (iconTheme *IconTheme) SetSearchPath(path []string)

SetSearchPath sets the search path for the icon theme object. When looking for an icon theme, GTK+ will search for a subdirectory of one or more of the directories in path with the same name as the icon theme containing an index.theme file. (Themes from multiple of the path elements are combined to allow themes to be extended by adding icons in the user’s home directory.)

In addition if an icon found isn’t found either in the current icon theme or the default icon theme, and an image file with the right name is found directly in one of the elements of path, then that image will be used for the icon name. (This is legacy feature, and new icons should be put into the fallback icon theme, which is called hicolor, rather than directly on the icon path.).

The function takes the following parameters:

  • path: array of directories that are searched for icon themes.

type IconThemeClass added in v0.0.5

type IconThemeClass struct {
	// contains filtered or unexported fields
}

IconThemeClass: instance of this type is always passed by reference.

type IconThemeError

type IconThemeError C.gint

IconThemeError: error codes for GtkIconTheme operations.

const (
	// IconThemeNotFound: icon specified does not exist in the theme.
	IconThemeNotFound IconThemeError = iota
	// IconThemeFailed: unspecified error occurred.
	IconThemeFailed
)

func (IconThemeError) String

func (i IconThemeError) String() string

String returns the name in string for IconThemeError.

type IconThemeOverrides added in v0.0.5

type IconThemeOverrides struct {
	Changed func()
}

IconThemeOverrides contains methods that are overridable.

type IconView

type IconView struct {
	Container

	*coreglib.Object
	CellLayout
	Scrollable
	// contains filtered or unexported fields
}

IconView provides an alternative view on a TreeModel. It displays the model as a grid of icons with labels. Like TreeView, it allows to select one or multiple items (depending on the selection mode, see gtk_icon_view_set_selection_mode()). In addition to selection with the arrow keys, IconView supports rubberband selection, which is controlled by dragging the pointer.

Note that if the tree model is backed by an actual tree store (as opposed to a flat list where the mapping to icons is obvious), IconView will only display the first level of the tree and ignore the tree’s branches.

CSS nodes

iconview.view
╰── [rubberband]

GtkIconView has a single CSS node with name iconview and style class .view. For rubberband selection, a subnode with name rubberband is used.

func NewIconView

func NewIconView() *IconView

NewIconView creates a new IconView widget.

The function returns the following values:

  • iconView: newly created IconView widget.

func NewIconViewWithArea

func NewIconViewWithArea(area CellAreaer) *IconView

NewIconViewWithArea creates a new IconView widget using the specified area to layout cells inside the icons.

The function takes the following parameters:

  • area to use to layout cells.

The function returns the following values:

  • iconView: newly created IconView widget.

func NewIconViewWithModel

func NewIconViewWithModel(model TreeModeller) *IconView

NewIconViewWithModel creates a new IconView widget with the model model.

The function takes the following parameters:

  • model: model.

The function returns the following values:

  • iconView: newly created IconView widget.

func (*IconView) ActivateOnSingleClick

func (iconView *IconView) ActivateOnSingleClick() bool

ActivateOnSingleClick gets the setting set by gtk_icon_view_set_activate_on_single_click().

The function returns the following values:

  • ok: TRUE if item-activated will be emitted on a single click.

func (*IconView) CellRect

func (iconView *IconView) CellRect(path *TreePath, cell CellRendererer) (*gdk.Rectangle, bool)

CellRect fills the bounding rectangle in widget coordinates for the cell specified by path and cell. If cell is NULL the main cell area is used.

This function is only valid if icon_view is realized.

The function takes the following parameters:

  • path: TreePath.
  • cell (optional) or NULL.

The function returns the following values:

  • rect: rectangle to fill with cell rect.
  • ok: FALSE if there is no such item, TRUE otherwise.

func (*IconView) ColumnSpacing

func (iconView *IconView) ColumnSpacing() int

ColumnSpacing returns the value of the ::column-spacing property.

The function returns the following values:

  • gint: space between columns.

func (*IconView) Columns

func (iconView *IconView) Columns() int

Columns returns the value of the ::columns property.

The function returns the following values:

  • gint: number of columns, or -1.

func (*IconView) ConnectActivateCursorItem

func (iconView *IconView) ConnectActivateCursorItem(f func() (ok bool)) coreglib.SignalHandle

ConnectActivateCursorItem: [keybinding signal][GtkBindingSignal] which gets emitted when the user activates the currently focused item.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control activation programmatically.

The default bindings for this signal are Space, Return and Enter.

func (*IconView) ConnectItemActivated

func (iconView *IconView) ConnectItemActivated(f func(path *TreePath)) coreglib.SignalHandle

ConnectItemActivated signal is emitted when the method gtk_icon_view_item_activated() is called, when the user double clicks an item with the "activate-on-single-click" property set to FALSE, or when the user single clicks an item when the "activate-on-single-click" property set to TRUE. It is also emitted when a non-editable item is selected and one of the keys: Space, Return or Enter is pressed.

func (*IconView) ConnectMoveCursor

func (iconView *IconView) ConnectMoveCursor(f func(step MovementStep, count int) (ok bool)) coreglib.SignalHandle

ConnectMoveCursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a cursor movement.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically.

The default bindings for this signal include

- Arrow keys which move by individual steps

- Home/End keys which move to the first/last item

- PageUp/PageDown which move by "pages" All of these will extend the selection when combined with the Shift modifier.

func (*IconView) ConnectSelectAll

func (iconView *IconView) ConnectSelectAll(f func()) coreglib.SignalHandle

ConnectSelectAll: [keybinding signal][GtkBindingSignal] which gets emitted when the user selects all items.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control selection programmatically.

The default binding for this signal is Ctrl-a.

func (*IconView) ConnectSelectCursorItem

func (iconView *IconView) ConnectSelectCursorItem(f func()) coreglib.SignalHandle

ConnectSelectCursorItem: [keybinding signal][GtkBindingSignal] which gets emitted when the user selects the item that is currently focused.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control selection programmatically.

There is no default binding for this signal.

func (*IconView) ConnectSelectionChanged

func (iconView *IconView) ConnectSelectionChanged(f func()) coreglib.SignalHandle

ConnectSelectionChanged signal is emitted when the selection (i.e. the set of selected items) changes.

func (*IconView) ConnectToggleCursorItem

func (iconView *IconView) ConnectToggleCursorItem(f func()) coreglib.SignalHandle

ConnectToggleCursorItem: [keybinding signal][GtkBindingSignal] which gets emitted when the user toggles whether the currently focused item is selected or not. The exact effect of this depend on the selection mode.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control selection programmatically.

There is no default binding for this signal is Ctrl-Space.

func (*IconView) ConnectUnselectAll

func (iconView *IconView) ConnectUnselectAll(f func()) coreglib.SignalHandle

ConnectUnselectAll: [keybinding signal][GtkBindingSignal] which gets emitted when the user unselects all items.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control selection programmatically.

The default binding for this signal is Ctrl-Shift-a.

func (*IconView) ConvertWidgetToBinWindowCoords

func (iconView *IconView) ConvertWidgetToBinWindowCoords(wx, wy int) (bx, by int)

ConvertWidgetToBinWindowCoords converts widget coordinates to coordinates for the bin_window, as expected by e.g. gtk_icon_view_get_path_at_pos().

The function takes the following parameters:

  • wx: x coordinate relative to the widget.
  • wy: y coordinate relative to the widget.

The function returns the following values:

  • bx: return location for bin_window X coordinate.
  • by: return location for bin_window Y coordinate.

func (*IconView) CreateDragIcon

func (iconView *IconView) CreateDragIcon(path *TreePath) *cairo.Surface

CreateDragIcon creates a #cairo_surface_t representation of the item at path. This image is used for a drag icon.

The function takes the following parameters:

  • path in icon_view.

The function returns the following values:

  • surface: newly-allocated surface of the drag icon.

func (*IconView) Cursor

func (iconView *IconView) Cursor() (*TreePath, CellRendererer, bool)

Cursor fills in path and cell with the current cursor path and cell. If the cursor isn’t currently set, then *path will be NULL. If no cell currently has focus, then *cell will be NULL.

The returned TreePath must be freed with gtk_tree_path_free().

The function returns the following values:

  • path (optional): return location for the current cursor path, or NULL.
  • cell (optional): return location the current focus cell, or NULL.
  • ok: TRUE if the cursor is set.

func (*IconView) DestItemAtPos

func (iconView *IconView) DestItemAtPos(dragX, dragY int) (*TreePath, IconViewDropPosition, bool)

DestItemAtPos determines the destination item for a given position.

The function takes the following parameters:

  • dragX: position to determine the destination item for.
  • dragY: position to determine the destination item for.

The function returns the following values:

  • path (optional): return location for the path of the item, or NULL.
  • pos (optional): return location for the drop position, or NULL.
  • ok: whether there is an item at the given position.

func (*IconView) DragDestItem

func (iconView *IconView) DragDestItem() (*TreePath, IconViewDropPosition)

DragDestItem gets information about the item that is highlighted for feedback.

The function returns the following values:

  • path (optional): return location for the path of the highlighted item, or NULL.
  • pos (optional): return location for the drop position, or NULL.

func (*IconView) EnableModelDragDest

func (iconView *IconView) EnableModelDragDest(targets []TargetEntry, actions gdk.DragAction)

EnableModelDragDest turns icon_view into a drop destination for automatic DND. Calling this method sets IconView:reorderable to FALSE.

The function takes the following parameters:

  • targets: table of targets that the drag will support.
  • actions: bitmask of possible actions for a drag to this widget.

func (*IconView) EnableModelDragSource

func (iconView *IconView) EnableModelDragSource(startButtonMask gdk.ModifierType, targets []TargetEntry, actions gdk.DragAction)

EnableModelDragSource turns icon_view into a drag source for automatic DND. Calling this method sets IconView:reorderable to FALSE.

The function takes the following parameters:

  • startButtonMask: mask of allowed buttons to start drag.
  • targets: table of targets that the drag will support.
  • actions: bitmask of possible actions for a drag from this widget.

func (*IconView) ItemActivated

func (iconView *IconView) ItemActivated(path *TreePath)

ItemActivated activates the item determined by path.

The function takes the following parameters:

  • path to be activated.

func (*IconView) ItemAtPos

func (iconView *IconView) ItemAtPos(x, y int) (*TreePath, CellRendererer, bool)

ItemAtPos finds the path at the point (x, y), relative to bin_window coordinates. In contrast to gtk_icon_view_get_path_at_pos(), this function also obtains the cell at the specified position. The returned path should be freed with gtk_tree_path_free(). See gtk_icon_view_convert_widget_to_bin_window_coords() for converting widget coordinates to bin_window coordinates.

The function takes the following parameters:

  • x position to be identified.
  • y position to be identified.

The function returns the following values:

  • path (optional): return location for the path, or NULL.
  • cell (optional): return location for the renderer responsible for the cell at (x, y), or NULL.
  • ok: TRUE if an item exists at the specified position.

func (*IconView) ItemColumn

func (iconView *IconView) ItemColumn(path *TreePath) int

ItemColumn gets the column in which the item path is currently displayed. Column numbers start at 0.

The function takes the following parameters:

  • path of the item.

The function returns the following values:

  • gint: column in which the item is displayed.

func (*IconView) ItemOrientation

func (iconView *IconView) ItemOrientation() Orientation

ItemOrientation returns the value of the ::item-orientation property which determines whether the labels are drawn beside the icons instead of below.

The function returns the following values:

  • orientation: relative position of texts and icons.

func (*IconView) ItemPadding

func (iconView *IconView) ItemPadding() int

ItemPadding returns the value of the ::item-padding property.

The function returns the following values:

  • gint: padding around items.

func (*IconView) ItemRow

func (iconView *IconView) ItemRow(path *TreePath) int

ItemRow gets the row in which the item path is currently displayed. Row numbers start at 0.

The function takes the following parameters:

  • path of the item.

The function returns the following values:

  • gint: row in which the item is displayed.

func (*IconView) ItemWidth

func (iconView *IconView) ItemWidth() int

ItemWidth returns the value of the ::item-width property.

The function returns the following values:

  • gint: width of a single item, or -1.

func (*IconView) Margin

func (iconView *IconView) Margin() int

Margin returns the value of the ::margin property.

The function returns the following values:

  • gint: space at the borders.

func (*IconView) MarkupColumn

func (iconView *IconView) MarkupColumn() int

MarkupColumn returns the column with markup text for icon_view.

The function returns the following values:

  • gint: markup column, or -1 if it’s unset.

func (*IconView) Model

func (iconView *IconView) Model() *TreeModel

Model returns the model the IconView is based on. Returns NULL if the model is unset.

The function returns the following values:

  • treeModel (optional) or NULL if none is currently being used.

func (*IconView) PathAtPos

func (iconView *IconView) PathAtPos(x, y int) *TreePath

PathAtPos finds the path at the point (x, y), relative to bin_window coordinates. See gtk_icon_view_get_item_at_pos(), if you are also interested in the cell at the specified position. See gtk_icon_view_convert_widget_to_bin_window_coords() for converting widget coordinates to bin_window coordinates.

The function takes the following parameters:

  • x position to be identified.
  • y position to be identified.

The function returns the following values:

  • treePath (optional) corresponding to the icon or NULL if no icon exists at that position.

func (*IconView) PathIsSelected

func (iconView *IconView) PathIsSelected(path *TreePath) bool

PathIsSelected returns TRUE if the icon pointed to by path is currently selected. If path does not point to a valid location, FALSE is returned.

The function takes the following parameters:

  • path to check selection on.

The function returns the following values:

  • ok: TRUE if path is selected.

func (*IconView) PixbufColumn

func (iconView *IconView) PixbufColumn() int

PixbufColumn returns the column with pixbufs for icon_view.

The function returns the following values:

  • gint: pixbuf column, or -1 if it’s unset.

func (*IconView) Reorderable

func (iconView *IconView) Reorderable() bool

Reorderable retrieves whether the user can reorder the list via drag-and-drop. See gtk_icon_view_set_reorderable().

The function returns the following values:

  • ok: TRUE if the list can be reordered.

func (*IconView) RowSpacing

func (iconView *IconView) RowSpacing() int

RowSpacing returns the value of the ::row-spacing property.

The function returns the following values:

  • gint: space between rows.

func (*IconView) ScrollToPath

func (iconView *IconView) ScrollToPath(path *TreePath, useAlign bool, rowAlign, colAlign float32)

ScrollToPath moves the alignments of icon_view to the position specified by path. row_align determines where the row is placed, and col_align determines where column is placed. Both are expected to be between 0.0 and 1.0. 0.0 means left/top alignment, 1.0 means right/bottom alignment, 0.5 means center.

If use_align is FALSE, then the alignment arguments are ignored, and the tree does the minimum amount of work to scroll the item onto the screen. This means that the item will be scrolled to the edge closest to its current position. If the item is currently visible on the screen, nothing is done.

This function only works if the model is set, and path is a valid row on the model. If the model changes before the icon_view is realized, the centered path will be modified to reflect this change.

The function takes the following parameters:

  • path of the item to move to.
  • useAlign: whether to use alignment arguments, or FALSE.
  • rowAlign: vertical alignment of the item specified by path.
  • colAlign: horizontal alignment of the item specified by path.

func (*IconView) SelectAll

func (iconView *IconView) SelectAll()

SelectAll selects all the icons. icon_view must has its selection mode set to K_SELECTION_MULTIPLE.

func (*IconView) SelectPath

func (iconView *IconView) SelectPath(path *TreePath)

SelectPath selects the row at path.

The function takes the following parameters:

  • path to be selected.

func (*IconView) SelectedForEach

func (iconView *IconView) SelectedForEach(fn IconViewForEachFunc)

SelectedForEach calls a function for each selected icon. Note that the model or selection cannot be modified from within this function.

The function takes the following parameters:

  • fn: function to call for each selected icon.

func (*IconView) SelectedItems

func (iconView *IconView) SelectedItems() []*TreePath

SelectedItems creates a list of paths of all selected items. Additionally, if you are planning on modifying the model after calling this function, you may want to convert the returned list into a list of TreeRowReferences. To do this, you can use gtk_tree_row_reference_new().

To free the return value, use:

g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);.

The function returns the following values:

  • list containing a TreePath for each selected row.

func (*IconView) SelectionMode

func (iconView *IconView) SelectionMode() SelectionMode

SelectionMode gets the selection mode of the icon_view.

The function returns the following values:

  • selectionMode: current selection mode.

func (*IconView) SetActivateOnSingleClick

func (iconView *IconView) SetActivateOnSingleClick(single bool)

SetActivateOnSingleClick causes the IconView::item-activated signal to be emitted on a single click instead of a double click.

The function takes the following parameters:

  • single: TRUE to emit item-activated on a single click.

func (*IconView) SetColumnSpacing

func (iconView *IconView) SetColumnSpacing(columnSpacing int)

SetColumnSpacing sets the ::column-spacing property which specifies the space which is inserted between the columns of the icon view.

The function takes the following parameters:

  • columnSpacing: column spacing.

func (*IconView) SetColumns

func (iconView *IconView) SetColumns(columns int)

SetColumns sets the ::columns property which determines in how many columns the icons are arranged. If columns is -1, the number of columns will be chosen automatically to fill the available area.

The function takes the following parameters:

  • columns: number of columns.

func (*IconView) SetCursor

func (iconView *IconView) SetCursor(path *TreePath, cell CellRendererer, startEditing bool)

SetCursor sets the current keyboard focus to be at path, and selects it. This is useful when you want to focus the user’s attention on a particular item. If cell is not NULL, then focus is given to the cell specified by it. Additionally, if start_editing is TRUE, then editing should be started in the specified cell.

This function is often followed by gtk_widget_grab_focus (icon_view) in order to give keyboard focus to the widget. Please note that editing can only happen when the widget is realized.

The function takes the following parameters:

  • path: TreePath.
  • cell (optional): one of the cell renderers of icon_view, or NULL.
  • startEditing: TRUE if the specified cell should start being edited.

func (*IconView) SetDragDestItem

func (iconView *IconView) SetDragDestItem(path *TreePath, pos IconViewDropPosition)

SetDragDestItem sets the item that is highlighted for feedback.

The function takes the following parameters:

  • path (optional) of the item to highlight, or NULL.
  • pos specifies where to drop, relative to the item.

func (*IconView) SetItemOrientation

func (iconView *IconView) SetItemOrientation(orientation Orientation)

SetItemOrientation sets the ::item-orientation property which determines whether the labels are drawn beside the icons instead of below.

The function takes the following parameters:

  • orientation: relative position of texts and icons.

func (*IconView) SetItemPadding

func (iconView *IconView) SetItemPadding(itemPadding int)

SetItemPadding sets the IconView:item-padding property which specifies the padding around each of the icon view’s items.

The function takes the following parameters:

  • itemPadding: item padding.

func (*IconView) SetItemWidth

func (iconView *IconView) SetItemWidth(itemWidth int)

SetItemWidth sets the ::item-width property which specifies the width to use for each item. If it is set to -1, the icon view will automatically determine a suitable item size.

The function takes the following parameters:

  • itemWidth: width for each item.

func (*IconView) SetMargin

func (iconView *IconView) SetMargin(margin int)

SetMargin sets the ::margin property which specifies the space which is inserted at the top, bottom, left and right of the icon view.

The function takes the following parameters:

  • margin: margin.

func (*IconView) SetMarkupColumn

func (iconView *IconView) SetMarkupColumn(column int)

SetMarkupColumn sets the column with markup information for icon_view to be column. The markup column must be of type TYPE_STRING. If the markup column is set to something, it overrides the text column set by gtk_icon_view_set_text_column().

The function takes the following parameters:

  • column in the currently used model, or -1 to display no text.

func (*IconView) SetModel

func (iconView *IconView) SetModel(model TreeModeller)

SetModel sets the model for a IconView. If the icon_view already has a model set, it will remove it before setting the new model. If model is NULL, then it will unset the old model.

The function takes the following parameters:

  • model (optional): model.

func (*IconView) SetPixbufColumn

func (iconView *IconView) SetPixbufColumn(column int)

SetPixbufColumn sets the column with pixbufs for icon_view to be column. The pixbuf column must be of type K_TYPE_PIXBUF.

The function takes the following parameters:

  • column in the currently used model, or -1 to disable.

func (*IconView) SetReorderable

func (iconView *IconView) SetReorderable(reorderable bool)

SetReorderable: this function is a convenience function to allow you to reorder models that support the TreeDragSourceIface and the TreeDragDestIface. Both TreeStore and ListStore support these. If reorderable is TRUE, then the user can reorder the model by dragging and dropping rows. The developer can listen to these changes by connecting to the model's row_inserted and row_deleted signals. The reordering is implemented by setting up the icon view as a drag source and destination. Therefore, drag and drop can not be used in a reorderable view for any other purpose.

This function does not give you any degree of control over the order -- any reordering is allowed. If more control is needed, you should probably handle drag and drop manually.

The function takes the following parameters:

  • reorderable: TRUE, if the list of items can be reordered.

func (*IconView) SetRowSpacing

func (iconView *IconView) SetRowSpacing(rowSpacing int)

SetRowSpacing sets the ::row-spacing property which specifies the space which is inserted between the rows of the icon view.

The function takes the following parameters:

  • rowSpacing: row spacing.

func (*IconView) SetSelectionMode

func (iconView *IconView) SetSelectionMode(mode SelectionMode)

SetSelectionMode sets the selection mode of the icon_view.

The function takes the following parameters:

  • mode: selection mode.

func (*IconView) SetSpacing

func (iconView *IconView) SetSpacing(spacing int)

SetSpacing sets the ::spacing property which specifies the space which is inserted between the cells (i.e. the icon and the text) of an item.

The function takes the following parameters:

  • spacing: spacing.

func (*IconView) SetTextColumn

func (iconView *IconView) SetTextColumn(column int)

SetTextColumn sets the column with text for icon_view to be column. The text column must be of type TYPE_STRING.

The function takes the following parameters:

  • column in the currently used model, or -1 to display no text.

func (*IconView) SetTooltipCell

func (iconView *IconView) SetTooltipCell(tooltip *Tooltip, path *TreePath, cell CellRendererer)

SetTooltipCell sets the tip area of tooltip to the area which cell occupies in the item pointed to by path. See also gtk_tooltip_set_tip_area().

See also gtk_icon_view_set_tooltip_column() for a simpler alternative.

The function takes the following parameters:

  • tooltip: Tooltip.
  • path: TreePath.
  • cell (optional) or NULL.

func (*IconView) SetTooltipColumn

func (iconView *IconView) SetTooltipColumn(column int)

SetTooltipColumn: if you only plan to have simple (text-only) tooltips on full items, you can use this function to have IconView handle these automatically for you. column should be set to the column in icon_view’s model containing the tooltip texts, or -1 to disable this feature.

When enabled, Widget:has-tooltip will be set to TRUE and icon_view will connect a Widget::query-tooltip signal handler.

Note that the signal handler sets the text with gtk_tooltip_set_markup(), so &, <, etc have to be escaped in the text.

The function takes the following parameters:

  • column: integer, which is a valid column number for icon_view’s model.

func (*IconView) SetTooltipItem

func (iconView *IconView) SetTooltipItem(tooltip *Tooltip, path *TreePath)

SetTooltipItem sets the tip area of tooltip to be the area covered by the item at path. See also gtk_icon_view_set_tooltip_column() for a simpler alternative. See also gtk_tooltip_set_tip_area().

The function takes the following parameters:

  • tooltip: Tooltip.
  • path: TreePath.

func (*IconView) Spacing

func (iconView *IconView) Spacing() int

Spacing returns the value of the ::spacing property.

The function returns the following values:

  • gint: space between cells.

func (*IconView) TextColumn

func (iconView *IconView) TextColumn() int

TextColumn returns the column with text for icon_view.

The function returns the following values:

  • gint: text column, or -1 if it’s unset.

func (*IconView) TooltipColumn

func (iconView *IconView) TooltipColumn() int

TooltipColumn returns the column of icon_view’s model which is being used for displaying tooltips on icon_view’s rows.

The function returns the following values:

  • gint: index of the tooltip column that is currently being used, or -1 if this is disabled.

func (*IconView) UnselectAll

func (iconView *IconView) UnselectAll()

UnselectAll unselects all the icons.

func (*IconView) UnselectPath

func (iconView *IconView) UnselectPath(path *TreePath)

UnselectPath unselects the row at path.

The function takes the following parameters:

  • path to be unselected.

func (*IconView) UnsetModelDragDest

func (iconView *IconView) UnsetModelDragDest()

UnsetModelDragDest undoes the effect of gtk_icon_view_enable_model_drag_dest(). Calling this method sets IconView:reorderable to FALSE.

func (*IconView) UnsetModelDragSource

func (iconView *IconView) UnsetModelDragSource()

UnsetModelDragSource undoes the effect of gtk_icon_view_enable_model_drag_source(). Calling this method sets IconView:reorderable to FALSE.

func (*IconView) VisibleRange

func (iconView *IconView) VisibleRange() (startPath, endPath *TreePath, ok bool)

VisibleRange sets start_path and end_path to be the first and last visible path. Note that there may be invisible paths in between.

Both paths should be freed with gtk_tree_path_free() after use.

The function returns the following values:

  • startPath (optional): return location for start of region, or NULL.
  • endPath (optional): return location for end of region, or NULL.
  • ok: TRUE, if valid paths were placed in start_path and end_path.

type IconViewAccessible

type IconViewAccessible struct {
	ContainerAccessible

	atk.Selection
	// contains filtered or unexported fields
}

type IconViewAccessibleClass added in v0.0.5

type IconViewAccessibleClass struct {
	// contains filtered or unexported fields
}

IconViewAccessibleClass: instance of this type is always passed by reference.

func (*IconViewAccessibleClass) ParentClass added in v0.0.5

type IconViewAccessibleOverrides added in v0.0.5

type IconViewAccessibleOverrides struct {
}

IconViewAccessibleOverrides contains methods that are overridable.

type IconViewClass added in v0.0.5

type IconViewClass struct {
	// contains filtered or unexported fields
}

IconViewClass: instance of this type is always passed by reference.

func (*IconViewClass) ParentClass added in v0.0.5

func (i *IconViewClass) ParentClass() *ContainerClass

type IconViewDropPosition

type IconViewDropPosition C.gint

IconViewDropPosition: enum for determining where a dropped item goes.

const (
	// IconViewNoDrop: no drop possible.
	IconViewNoDrop IconViewDropPosition = iota
	// IconViewDropInto: dropped item replaces the item.
	IconViewDropInto
	// IconViewDropLeft: droppped item is inserted to the left.
	IconViewDropLeft
	// IconViewDropRight: dropped item is inserted to the right.
	IconViewDropRight
	// IconViewDropAbove: dropped item is inserted above.
	IconViewDropAbove
	// IconViewDropBelow: dropped item is inserted below.
	IconViewDropBelow
)

func (IconViewDropPosition) String

func (i IconViewDropPosition) String() string

String returns the name in string for IconViewDropPosition.

type IconViewForEachFunc

type IconViewForEachFunc func(iconView *IconView, path *TreePath)

IconViewForEachFunc: function used by gtk_icon_view_selected_foreach() to map all selected rows. It will be called on every selected row in the view.

type IconViewOverrides added in v0.0.5

type IconViewOverrides struct {
	// The function returns the following values:
	//
	ActivateCursorItem func() bool
	// ItemActivated activates the item determined by path.
	//
	// The function takes the following parameters:
	//
	//   - path to be activated.
	//
	ItemActivated func(path *TreePath)
	// The function takes the following parameters:
	//
	//   - step
	//   - count
	//
	// The function returns the following values:
	//
	MoveCursor func(step MovementStep, count int) bool
	// SelectAll selects all the icons. icon_view must has its selection mode
	// set to K_SELECTION_MULTIPLE.
	SelectAll        func()
	SelectCursorItem func()
	SelectionChanged func()
	ToggleCursorItem func()
	// UnselectAll unselects all the icons.
	UnselectAll func()
}

IconViewOverrides contains methods that are overridable.

type Image

type Image struct {
	Misc
	// contains filtered or unexported fields
}

Image widget displays an image. Various kinds of object can be displayed as an image; most typically, you would load a Pixbuf ("pixel buffer") from a file, and then display that. There’s a convenience function to do this, gtk_image_new_from_file(), used as follows:

static gboolean
button_press_callback (GtkWidget      *event_box,
                       GdkEventButton *event,
                       gpointer        data)
{
  g_print ("Event box clicked at coordinates f,f\n",
           event->x, event->y);

  // Returning TRUE means we handled the event, so the signal
  // emission should be stopped (don’t call any further callbacks
  // that may be connected). Return FALSE to continue invoking callbacks.
  return TRUE;
}

static GtkWidget*
create_image (void)
{
  GtkWidget *image;
  GtkWidget *event_box;

  image = gtk_image_new_from_file ("myfile.png");

  event_box = gtk_event_box_new ();

  gtk_container_add (GTK_CONTAINER (event_box), image);

  g_signal_connect (G_OBJECT (event_box),
                    "button_press_event",
                    G_CALLBACK (button_press_callback),
                    image);

  return image;
}

When handling events on the event box, keep in mind that coordinates in the image may be different from event box coordinates due to the alignment and padding settings on the image (see Misc). The simplest way to solve this is to set the alignment to 0.0 (left/top), and set the padding to zero. Then the origin of the image will be the same as the origin of the event box.

Sometimes an application will want to avoid depending on external data files, such as image files. GTK+ comes with a program to avoid this, called “gdk-pixbuf-csource”. This library allows you to convert an image into a C variable declaration, which can then be loaded into a Pixbuf using gdk_pixbuf_new_from_inline().

CSS nodes

GtkImage has a single CSS node with the name image. The style classes may appear on image CSS nodes: .icon-dropshadow, .lowres-icon.

func NewImage

func NewImage() *Image

NewImage creates a new empty Image widget.

The function returns the following values:

  • image: newly created Image widget.

func NewImageFromAnimation

func NewImageFromAnimation(animation *gdkpixbuf.PixbufAnimation) *Image

NewImageFromAnimation creates a Image displaying the given animation. The Image does not assume a reference to the animation; you still need to unref it if you own references. Image will add its own reference rather than adopting yours.

Note that the animation frames are shown using a timeout with PRIORITY_DEFAULT. When using animations to indicate busyness, keep in mind that the animation will only be shown if the main loop is not busy with something that has a higher priority.

The function takes the following parameters:

  • animation: animation.

The function returns the following values:

  • image: new Image widget.

func NewImageFromFile

func NewImageFromFile(filename string) *Image

NewImageFromFile creates a new Image displaying the file filename. If the file isn’t found or can’t be loaded, the resulting Image will display a “broken image” icon. This function never returns NULL, it always returns a valid Image widget.

If the file contains an animation, the image will contain an animation.

If you need to detect failures to load the file, use gdk_pixbuf_new_from_file() to load the file yourself, then create the Image from the pixbuf. (Or for animations, use gdk_pixbuf_animation_new_from_file()).

The storage type (gtk_image_get_storage_type()) of the returned image is not defined, it will be whatever is appropriate for displaying the file.

The function takes the following parameters:

  • filename: filename.

The function returns the following values:

  • image: new Image.

func NewImageFromGIcon

func NewImageFromGIcon(icon gio.Iconner, size int) *Image

NewImageFromGIcon creates a Image displaying an icon from the current icon theme. If the icon name isn’t known, a “broken image” icon will be displayed instead. If the current icon theme is changed, the icon will be updated appropriately.

The function takes the following parameters:

  • icon: icon.
  • size: stock icon size (IconSize).

The function returns the following values:

  • image: new Image displaying the themed icon.

func NewImageFromIconName

func NewImageFromIconName(iconName string, size int) *Image

NewImageFromIconName creates a Image displaying an icon from the current icon theme. If the icon name isn’t known, a “broken image” icon will be displayed instead. If the current icon theme is changed, the icon will be updated appropriately.

The function takes the following parameters:

  • iconName (optional): icon name or NULL.
  • size: stock icon size (IconSize).

The function returns the following values:

  • image: new Image displaying the themed icon.

func NewImageFromIconSet deprecated

func NewImageFromIconSet(iconSet *IconSet, size int) *Image

NewImageFromIconSet creates a Image displaying an icon set. Sample stock sizes are K_ICON_SIZE_MENU, K_ICON_SIZE_SMALL_TOOLBAR. Instead of using this function, usually it’s better to create a IconFactory, put your icon sets in the icon factory, add the icon factory to the list of default factories with gtk_icon_factory_add_default(), and then use gtk_image_new_from_stock(). This will allow themes to override the icon you ship with your application.

The Image does not assume a reference to the icon set; you still need to unref it if you own references. Image will add its own reference rather than adopting yours.

Deprecated: Use gtk_image_new_from_icon_name() instead.

The function takes the following parameters:

  • iconSet: IconSet.
  • size: stock icon size (IconSize).

The function returns the following values:

  • image: new Image.

func NewImageFromPixbuf

func NewImageFromPixbuf(pixbuf *gdkpixbuf.Pixbuf) *Image

NewImageFromPixbuf creates a new Image displaying pixbuf. The Image does not assume a reference to the pixbuf; you still need to unref it if you own references. Image will add its own reference rather than adopting yours.

Note that this function just creates an Image from the pixbuf. The Image created will not react to state changes. Should you want that, you should use gtk_image_new_from_icon_name().

The function takes the following parameters:

  • pixbuf (optional) or NULL.

The function returns the following values:

  • image: new Image.

func NewImageFromResource

func NewImageFromResource(resourcePath string) *Image

NewImageFromResource creates a new Image displaying the resource file resource_path. If the file isn’t found or can’t be loaded, the resulting Image will display a “broken image” icon. This function never returns NULL, it always returns a valid Image widget.

If the file contains an animation, the image will contain an animation.

If you need to detect failures to load the file, use gdk_pixbuf_new_from_file() to load the file yourself, then create the Image from the pixbuf. (Or for animations, use gdk_pixbuf_animation_new_from_file()).

The storage type (gtk_image_get_storage_type()) of the returned image is not defined, it will be whatever is appropriate for displaying the file.

The function takes the following parameters:

  • resourcePath: resource path.

The function returns the following values:

  • image: new Image.

func NewImageFromStock deprecated

func NewImageFromStock(stockId string, size int) *Image

NewImageFromStock creates a Image displaying a stock icon. Sample stock icon names are K_STOCK_OPEN, K_STOCK_QUIT. Sample stock sizes are K_ICON_SIZE_MENU, K_ICON_SIZE_SMALL_TOOLBAR. If the stock icon name isn’t known, the image will be empty. You can register your own stock icon names, see gtk_icon_factory_add_default() and gtk_icon_factory_add().

Deprecated: Use gtk_image_new_from_icon_name() instead.

The function takes the following parameters:

  • stockId: stock icon name.
  • size: stock icon size (IconSize).

The function returns the following values:

  • image: new Image displaying the stock icon.

func NewImageFromSurface

func NewImageFromSurface(surface *cairo.Surface) *Image

NewImageFromSurface creates a new Image displaying surface. The Image does not assume a reference to the surface; you still need to unref it if you own references. Image will add its own reference rather than adopting yours.

The function takes the following parameters:

  • surface (optional) or NULL.

The function returns the following values:

  • image: new Image.

func (*Image) Animation

func (image *Image) Animation() *gdkpixbuf.PixbufAnimation

Animation gets the PixbufAnimation being displayed by the Image. The storage type of the image must be GTK_IMAGE_EMPTY or GTK_IMAGE_ANIMATION (see gtk_image_get_storage_type()). The caller of this function does not own a reference to the returned animation.

The function returns the following values:

  • pixbufAnimation (optional): displayed animation, or NULL if the image is empty.

func (*Image) Clear

func (image *Image) Clear()

Clear resets the image to be empty.

func (*Image) GIcon

func (image *Image) GIcon() (*gio.Icon, int)

GIcon gets the #GIcon and size being displayed by the Image. The storage type of the image must be GTK_IMAGE_EMPTY or GTK_IMAGE_GICON (see gtk_image_get_storage_type()). The caller of this function does not own a reference to the returned #GIcon.

The function returns the following values:

  • gicon (optional): place to store a #GIcon, or NULL.
  • size (optional): place to store an icon size (IconSize), or NULL.

func (*Image) IconName

func (image *Image) IconName() (string, int)

IconName gets the icon name and size being displayed by the Image. The storage type of the image must be GTK_IMAGE_EMPTY or GTK_IMAGE_ICON_NAME (see gtk_image_get_storage_type()). The returned string is owned by the Image and should not be freed.

The function returns the following values:

  • iconName (optional): place to store an icon name, or NULL.
  • size (optional): place to store an icon size (IconSize), or NULL.

func (*Image) IconSet deprecated

func (image *Image) IconSet() (*IconSet, int)

IconSet gets the icon set and size being displayed by the Image. The storage type of the image must be GTK_IMAGE_EMPTY or GTK_IMAGE_ICON_SET (see gtk_image_get_storage_type()).

Deprecated: Use gtk_image_get_icon_name() instead.

The function returns the following values:

  • iconSet (optional): location to store a IconSet, or NULL.
  • size (optional): location to store a stock icon size (IconSize), or NULL.

func (*Image) Pixbuf

func (image *Image) Pixbuf() *gdkpixbuf.Pixbuf

Pixbuf gets the Pixbuf being displayed by the Image. The storage type of the image must be GTK_IMAGE_EMPTY or GTK_IMAGE_PIXBUF (see gtk_image_get_storage_type()). The caller of this function does not own a reference to the returned pixbuf.

The function returns the following values:

  • pixbuf (optional): displayed pixbuf, or NULL if the image is empty.

func (*Image) PixelSize

func (image *Image) PixelSize() int

PixelSize gets the pixel size used for named icons.

The function returns the following values:

  • gint: pixel size used for named icons.

func (*Image) SetFromAnimation

func (image *Image) SetFromAnimation(animation *gdkpixbuf.PixbufAnimation)

SetFromAnimation causes the Image to display the given animation (or display nothing, if you set the animation to NULL).

The function takes the following parameters:

  • animation: PixbufAnimation.

func (*Image) SetFromFile

func (image *Image) SetFromFile(filename string)

SetFromFile: see gtk_image_new_from_file() for details.

The function takes the following parameters:

  • filename (optional) or NULL.

func (*Image) SetFromGIcon

func (image *Image) SetFromGIcon(icon gio.Iconner, size int)

SetFromGIcon: see gtk_image_new_from_gicon() for details.

The function takes the following parameters:

  • icon: icon.
  • size: icon size (IconSize).

func (*Image) SetFromIconName

func (image *Image) SetFromIconName(iconName string, size int)

SetFromIconName: see gtk_image_new_from_icon_name() for details.

The function takes the following parameters:

  • iconName (optional): icon name or NULL.
  • size: icon size (IconSize).

func (*Image) SetFromIconSet deprecated

func (image *Image) SetFromIconSet(iconSet *IconSet, size int)

SetFromIconSet: see gtk_image_new_from_icon_set() for details.

Deprecated: Use gtk_image_set_from_icon_name() instead.

The function takes the following parameters:

  • iconSet: IconSet.
  • size: stock icon size (IconSize).

func (*Image) SetFromPixbuf

func (image *Image) SetFromPixbuf(pixbuf *gdkpixbuf.Pixbuf)

SetFromPixbuf: see gtk_image_new_from_pixbuf() for details.

The function takes the following parameters:

  • pixbuf (optional) or NULL.

func (*Image) SetFromResource

func (image *Image) SetFromResource(resourcePath string)

SetFromResource: see gtk_image_new_from_resource() for details.

The function takes the following parameters:

  • resourcePath (optional): resource path or NULL.

func (*Image) SetFromStock deprecated

func (image *Image) SetFromStock(stockId string, size int)

SetFromStock: see gtk_image_new_from_stock() for details.

Deprecated: Use gtk_image_set_from_icon_name() instead.

The function takes the following parameters:

  • stockId: stock icon name.
  • size: stock icon size (IconSize).

func (*Image) SetFromSurface

func (image *Image) SetFromSurface(surface *cairo.Surface)

SetFromSurface: see gtk_image_new_from_surface() for details.

The function takes the following parameters:

  • surface (optional): cairo_surface_t or NULL.

func (*Image) SetPixelSize

func (image *Image) SetPixelSize(pixelSize int)

SetPixelSize sets the pixel size to use for named icons. If the pixel size is set to a value != -1, it is used instead of the icon size set by gtk_image_set_from_icon_name().

The function takes the following parameters:

  • pixelSize: new pixel size.

func (*Image) Stock deprecated

func (image *Image) Stock() (string, int)

Stock gets the stock icon name and size being displayed by the Image. The storage type of the image must be GTK_IMAGE_EMPTY or GTK_IMAGE_STOCK (see gtk_image_get_storage_type()). The returned string is owned by the Image and should not be freed.

Deprecated: Use gtk_image_get_icon_name() instead.

The function returns the following values:

  • stockId (optional): place to store a stock icon name, or NULL.
  • size (optional): place to store a stock icon size (IconSize), or NULL.

func (*Image) StorageType

func (image *Image) StorageType() ImageType

StorageType gets the type of representation being used by the Image to store image data. If the Image has no image data, the return value will be GTK_IMAGE_EMPTY.

The function returns the following values:

  • imageType: image representation being used.

type ImageAccessible

type ImageAccessible struct {
	WidgetAccessible

	atk.Image
	// contains filtered or unexported fields
}

type ImageAccessibleClass added in v0.0.5

type ImageAccessibleClass struct {
	// contains filtered or unexported fields
}

ImageAccessibleClass: instance of this type is always passed by reference.

func (*ImageAccessibleClass) ParentClass added in v0.0.5

func (i *ImageAccessibleClass) ParentClass() *WidgetAccessibleClass

type ImageAccessibleOverrides added in v0.0.5

type ImageAccessibleOverrides struct {
}

ImageAccessibleOverrides contains methods that are overridable.

type ImageCellAccessible

type ImageCellAccessible struct {
	RendererCellAccessible

	*coreglib.Object
	atk.AtkObject
	atk.Image
	// contains filtered or unexported fields
}

type ImageCellAccessibleClass added in v0.0.5

type ImageCellAccessibleClass struct {
	// contains filtered or unexported fields
}

ImageCellAccessibleClass: instance of this type is always passed by reference.

func (*ImageCellAccessibleClass) ParentClass added in v0.0.5

type ImageCellAccessibleOverrides added in v0.0.5

type ImageCellAccessibleOverrides struct {
}

ImageCellAccessibleOverrides contains methods that are overridable.

type ImageClass added in v0.0.5

type ImageClass struct {
	// contains filtered or unexported fields
}

ImageClass: instance of this type is always passed by reference.

func (*ImageClass) ParentClass added in v0.0.5

func (i *ImageClass) ParentClass() *MiscClass

type ImageMenuItem

type ImageMenuItem struct {
	MenuItem
	// contains filtered or unexported fields
}

ImageMenuItem is a menu item which has an icon next to the text label.

This is functionally equivalent to:

GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
GtkWidget *icon = gtk_image_new_from_icon_name ("folder-music-symbolic", GTK_ICON_SIZE_MENU);
GtkWidget *label = gtk_accel_label_new ("Music");
GtkWidget *menu_item = gtk_menu_item_new ();
GtkAccelGroup *accel_group = gtk_accel_group_new ();

gtk_container_add (GTK_CONTAINER (box), icon);

gtk_label_set_use_underline (GTK_LABEL (label), TRUE);
gtk_label_set_xalign (GTK_LABEL (label), 0.0);

gtk_widget_add_accelerator (menu_item, "activate", accel_group,
                            GDK_KEY_m, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), menu_item);

gtk_box_pack_end (GTK_BOX (box), label, TRUE, TRUE, 0);

gtk_container_add (GTK_CONTAINER (menu_item), box);

gtk_widget_show_all (menu_item);.

func NewImageMenuItem deprecated

func NewImageMenuItem() *ImageMenuItem

NewImageMenuItem creates a new ImageMenuItem with an empty label.

Deprecated: Use gtk_menu_item_new() instead.

The function returns the following values:

  • imageMenuItem: new ImageMenuItem.

func NewImageMenuItemFromStock deprecated

func NewImageMenuItemFromStock(stockId string, accelGroup *AccelGroup) *ImageMenuItem

NewImageMenuItemFromStock creates a new ImageMenuItem containing the image and text from a stock item. Some stock ids have preprocessor macros like K_STOCK_OK and K_STOCK_APPLY.

If you want this menu item to have changeable accelerators, then pass in NULL for accel_group. Next call gtk_menu_item_set_accel_path() with an appropriate path for the menu item, use gtk_stock_lookup() to look up the standard accelerator for the stock item, and if one is found, call gtk_accel_map_add_entry() to register it.

Deprecated: Use gtk_menu_item_new_with_mnemonic() instead.

The function takes the following parameters:

  • stockId: name of the stock item.
  • accelGroup (optional) to add the menu items accelerator to, or NULL.

The function returns the following values:

  • imageMenuItem: new ImageMenuItem.

func NewImageMenuItemWithLabel deprecated

func NewImageMenuItemWithLabel(label string) *ImageMenuItem

NewImageMenuItemWithLabel creates a new ImageMenuItem containing a label.

Deprecated: Use gtk_menu_item_new_with_label() instead.

The function takes the following parameters:

  • label: text of the menu item.

The function returns the following values:

  • imageMenuItem: new ImageMenuItem.

func NewImageMenuItemWithMnemonic deprecated

func NewImageMenuItemWithMnemonic(label string) *ImageMenuItem

NewImageMenuItemWithMnemonic creates a new ImageMenuItem containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in label indicate the mnemonic for the menu item.

Deprecated: Use gtk_menu_item_new_with_mnemonic() instead.

The function takes the following parameters:

  • label: text of the menu item, with an underscore in front of the mnemonic character.

The function returns the following values:

  • imageMenuItem: new ImageMenuItem.

func (*ImageMenuItem) AlwaysShowImage deprecated

func (imageMenuItem *ImageMenuItem) AlwaysShowImage() bool

AlwaysShowImage returns whether the menu item will ignore the Settings:gtk-menu-images setting and always show the image, if available.

Deprecated: since version 3.10.

The function returns the following values:

  • ok: TRUE if the menu item will always show the image.

func (*ImageMenuItem) Image deprecated

func (imageMenuItem *ImageMenuItem) Image() Widgetter

Image gets the widget that is currently set as the image of image_menu_item. See gtk_image_menu_item_set_image().

Deprecated: since version 3.10.

The function returns the following values:

  • widget set as image of image_menu_item.

func (*ImageMenuItem) SetAccelGroup deprecated

func (imageMenuItem *ImageMenuItem) SetAccelGroup(accelGroup *AccelGroup)

SetAccelGroup specifies an accel_group to add the menu items accelerator to (this only applies to stock items so a stock item must already be set, make sure to call gtk_image_menu_item_set_use_stock() and gtk_menu_item_set_label() with a valid stock item first).

If you want this menu item to have changeable accelerators then you shouldnt need this (see gtk_image_menu_item_new_from_stock()).

Deprecated: since version 3.10.

The function takes the following parameters:

  • accelGroup: AccelGroup.

func (*ImageMenuItem) SetAlwaysShowImage deprecated

func (imageMenuItem *ImageMenuItem) SetAlwaysShowImage(alwaysShow bool)

SetAlwaysShowImage: if TRUE, the menu item will ignore the Settings:gtk-menu-images setting and always show the image, if available.

Use this property if the menuitem would be useless or hard to use without the image.

Deprecated: since version 3.10.

The function takes the following parameters:

  • alwaysShow: TRUE if the menuitem should always show the image.

func (*ImageMenuItem) SetImage deprecated

func (imageMenuItem *ImageMenuItem) SetImage(image Widgetter)

SetImage sets the image of image_menu_item to the given widget. Note that it depends on the show-menu-images setting whether the image will be displayed or not.

Deprecated: since version 3.10.

The function takes the following parameters:

  • image (optional): widget to set as the image for the menu item.

func (*ImageMenuItem) SetUseStock deprecated

func (imageMenuItem *ImageMenuItem) SetUseStock(useStock bool)

SetUseStock: if TRUE, the label set in the menuitem is used as a stock id to select the stock item for the item.

Deprecated: since version 3.10.

The function takes the following parameters:

  • useStock: TRUE if the menuitem should use a stock item.

func (*ImageMenuItem) UseStock deprecated

func (imageMenuItem *ImageMenuItem) UseStock() bool

UseStock checks whether the label set in the menuitem is used as a stock id to select the stock item for the item.

Deprecated: since version 3.10.

The function returns the following values:

  • ok: TRUE if the label set in the menuitem is used as a stock id to select the stock item for the item.

type ImageMenuItemClass added in v0.0.5

type ImageMenuItemClass struct {
	// contains filtered or unexported fields
}

ImageMenuItemClass: instance of this type is always passed by reference.

func (*ImageMenuItemClass) ParentClass added in v0.0.5

func (i *ImageMenuItemClass) ParentClass() *MenuItemClass

ParentClass: parent class.

type ImageMenuItemOverrides added in v0.0.5

type ImageMenuItemOverrides struct {
}

ImageMenuItemOverrides contains methods that are overridable.

type ImageOverrides added in v0.0.5

type ImageOverrides struct {
}

ImageOverrides contains methods that are overridable.

type ImageType

type ImageType C.gint

ImageType describes the image data representation used by a Image. If you want to get the image from the widget, you can only get the currently-stored representation. e.g. if the gtk_image_get_storage_type() returns K_IMAGE_PIXBUF, then you can call gtk_image_get_pixbuf() but not gtk_image_get_stock(). For empty images, you can request any storage type (call any of the "get" functions), but they will all return NULL values.

const (
	// ImageEmpty: there is no image displayed by the widget.
	ImageEmpty ImageType = iota
	// ImagePixbuf: widget contains a Pixbuf.
	ImagePixbuf
	// ImageStock: widget contains a [stock item name][gtkstock].
	ImageStock
	// ImageIconSet: widget contains a IconSet.
	ImageIconSet
	// ImageAnimation: widget contains a PixbufAnimation.
	ImageAnimation
	// ImageIconName: widget contains a named icon. This image type was added in
	// GTK+ 2.6.
	ImageIconName
	// ImageGIcon: widget contains a #GIcon. This image type was added in GTK+
	// 2.14.
	ImageGIcon
	// ImageSurface: widget contains a #cairo_surface_t. This image type was
	// added in GTK+ 3.10.
	ImageSurface
)

func (ImageType) String

func (i ImageType) String() string

String returns the name in string for ImageType.

type InfoBar

type InfoBar struct {
	Box
	// contains filtered or unexported fields
}

InfoBar is a widget that can be used to show messages to the user without showing a dialog. It is often temporarily shown at the top or bottom of a document. In contrast to Dialog, which has a action area at the bottom, InfoBar has an action area at the side.

The API of InfoBar is very similar to Dialog, allowing you to add buttons to the action area with gtk_info_bar_add_button() or gtk_info_bar_new_with_buttons(). The sensitivity of action widgets can be controlled with gtk_info_bar_set_response_sensitive(). To add widgets to the main content area of a InfoBar, use gtk_info_bar_get_content_area() and add your widgets to the container.

Similar to MessageDialog, the contents of a InfoBar can by classified as error message, warning, informational message, etc, by using gtk_info_bar_set_message_type(). GTK+ may use the message type to determine how the message is displayed.

A simple example for using a InfoBar:

GtkWidget *widget, *message_label, *content_area;
GtkWidget *grid;
GtkInfoBar *bar;

// set up info bar
widget = gtk_info_bar_new ();
bar = GTK_INFO_BAR (widget);
grid = gtk_grid_new ();

gtk_widget_set_no_show_all (widget, TRUE);
message_label = gtk_label_new ("");
content_area = gtk_info_bar_get_content_area (bar);
gtk_container_add (GTK_CONTAINER (content_area),
                   message_label);
gtk_info_bar_add_button (bar,
                         _("_OK"),
                         GTK_RESPONSE_OK);
g_signal_connect (bar,
                  "response",
                  G_CALLBACK (gtk_widget_hide),
                  NULL);
gtk_grid_attach (GTK_GRID (grid),
                 widget,
                 0, 2, 1, 1);

// ...

// show an error message
gtk_label_set_text (GTK_LABEL (message_label), "An error occurred!");
gtk_info_bar_set_message_type (bar,
                               GTK_MESSAGE_ERROR);
gtk_widget_show (bar);

GtkInfoBar as GtkBuildable

The GtkInfoBar implementation of the GtkBuildable interface exposes the content area and action area as internal children with the names “content_area” and “action_area”.

GtkInfoBar supports a custom <action-widgets> element, which can contain multiple <action-widget> elements. The “response” attribute specifies a numeric response, and the content of the element is the id of widget (which should be a child of the dialogs action_area).

CSS nodes

GtkInfoBar has a single CSS node with name infobar. The node may get one of the style classes .info, .warning, .error or .question, depending on the message type.

func NewInfoBar

func NewInfoBar() *InfoBar

NewInfoBar creates a new InfoBar object.

The function returns the following values:

  • infoBar: new InfoBar object.

func (*InfoBar) ActionArea

func (infoBar *InfoBar) ActionArea() *Box

ActionArea returns the action area of info_bar.

The function returns the following values:

  • box: action area.

func (*InfoBar) AddActionWidget

func (infoBar *InfoBar) AddActionWidget(child Widgetter, responseId int)

AddActionWidget: add an activatable widget to the action area of a InfoBar, connecting a signal handler that will emit the InfoBar::response signal on the message area when the widget is activated. The widget is appended to the end of the message areas action area.

The function takes the following parameters:

  • child: activatable widget.
  • responseId: response ID for child.

func (*InfoBar) AddButton

func (infoBar *InfoBar) AddButton(buttonText string, responseId int) *Button

AddButton adds a button with the given text and sets things up so that clicking the button will emit the “response” signal with the given response_id. The button is appended to the end of the info bars's action area. The button widget is returned, but usually you don't need it.

The function takes the following parameters:

  • buttonText: text of button.
  • responseId: response ID for the button.

The function returns the following values:

  • button widget that was added.

func (*InfoBar) ConnectClose

func (infoBar *InfoBar) ConnectClose(f func()) coreglib.SignalHandle

ConnectClose signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user uses a keybinding to dismiss the info bar.

The default binding for this signal is the Escape key.

func (*InfoBar) ConnectResponse

func (infoBar *InfoBar) ConnectResponse(f func(responseId int)) coreglib.SignalHandle

ConnectResponse is emitted when an action widget is clicked or the application programmer calls gtk_dialog_response(). The response_id depends on which action widget was clicked.

func (*InfoBar) ContentArea

func (infoBar *InfoBar) ContentArea() *Box

ContentArea returns the content area of info_bar.

The function returns the following values:

  • box: content area.

func (*InfoBar) MessageType

func (infoBar *InfoBar) MessageType() MessageType

MessageType returns the message type of the message area.

The function returns the following values:

  • messageType: message type of the message area.

func (*InfoBar) Response

func (infoBar *InfoBar) Response(responseId int)

Response emits the “response” signal with the given response_id.

The function takes the following parameters:

  • responseId: response ID.

func (*InfoBar) Revealed

func (infoBar *InfoBar) Revealed() bool

The function returns the following values:

  • ok: current value of the GtkInfoBar:revealed property.

func (*InfoBar) SetDefaultResponse

func (infoBar *InfoBar) SetDefaultResponse(responseId int)

SetDefaultResponse sets the last widget in the info bar’s action area with the given response_id as the default widget for the dialog. Pressing “Enter” normally activates the default widget.

Note that this function currently requires info_bar to be added to a widget hierarchy.

The function takes the following parameters:

  • responseId: response ID.

func (*InfoBar) SetMessageType

func (infoBar *InfoBar) SetMessageType(messageType MessageType)

SetMessageType sets the message type of the message area.

GTK+ uses this type to determine how the message is displayed.

The function takes the following parameters:

  • messageType: MessageType.

func (*InfoBar) SetResponseSensitive

func (infoBar *InfoBar) SetResponseSensitive(responseId int, setting bool)

SetResponseSensitive calls gtk_widget_set_sensitive (widget, setting) for each widget in the info bars’s action area with the given response_id. A convenient way to sensitize/desensitize dialog buttons.

The function takes the following parameters:

  • responseId: response ID.
  • setting: TRUE for sensitive.

func (*InfoBar) SetRevealed

func (infoBar *InfoBar) SetRevealed(revealed bool)

SetRevealed sets the GtkInfoBar:revealed property to revealed. This will cause info_bar to show up with a slide-in transition.

Note that this property does not automatically show info_bar and thus won’t have any effect if it is invisible.

The function takes the following parameters:

  • revealed: new value of the property.

func (*InfoBar) SetShowCloseButton

func (infoBar *InfoBar) SetShowCloseButton(setting bool)

SetShowCloseButton: if true, a standard close button is shown. When clicked it emits the response GTK_RESPONSE_CLOSE.

The function takes the following parameters:

  • setting: TRUE to include a close button.

func (*InfoBar) ShowCloseButton

func (infoBar *InfoBar) ShowCloseButton() bool

ShowCloseButton returns whether the widget will display a standard close button.

The function returns the following values:

  • ok: TRUE if the widget displays standard close button.

type InfoBarClass added in v0.0.5

type InfoBarClass struct {
	// contains filtered or unexported fields
}

InfoBarClass: instance of this type is always passed by reference.

func (*InfoBarClass) ParentClass added in v0.0.5

func (i *InfoBarClass) ParentClass() *BoxClass

type InfoBarOverrides added in v0.0.5

type InfoBarOverrides struct {
	Close func()
	// Response emits the “response” signal with the given response_id.
	//
	// The function takes the following parameters:
	//
	//   - responseId: response ID.
	//
	Response func(responseId int)
}

InfoBarOverrides contains methods that are overridable.

type InputHints

type InputHints C.guint

InputHints describes hints that might be taken into account by input methods or applications. Note that input methods may already tailor their behaviour according to the InputPurpose of the entry.

Some common sense is expected when using these flags - mixing GTK_INPUT_HINT_LOWERCASE with any of the uppercase hints makes no sense.

This enumeration may be extended in the future; input methods should ignore unknown values.

const (
	// InputHintNone: no special behaviour suggested.
	InputHintNone InputHints = 0b0
	// InputHintSpellcheck: suggest checking for typos.
	InputHintSpellcheck InputHints = 0b1
	// InputHintNoSpellcheck: suggest not checking for typos.
	InputHintNoSpellcheck InputHints = 0b10
	// InputHintWordCompletion: suggest word completion.
	InputHintWordCompletion InputHints = 0b100
	// InputHintLowercase: suggest to convert all text to lowercase.
	InputHintLowercase InputHints = 0b1000
	// InputHintUppercaseChars: suggest to capitalize all text.
	InputHintUppercaseChars InputHints = 0b10000
	// InputHintUppercaseWords: suggest to capitalize the first character of
	// each word.
	InputHintUppercaseWords InputHints = 0b100000
	// InputHintUppercaseSentences: suggest to capitalize the first word of each
	// sentence.
	InputHintUppercaseSentences InputHints = 0b1000000
	// InputHintInhibitOSK: suggest to not show an onscreen keyboard (e.g for a
	// calculator that already has all the keys).
	InputHintInhibitOSK InputHints = 0b10000000
	// InputHintVerticalWriting: text is vertical. Since 3.18.
	InputHintVerticalWriting InputHints = 0b100000000
	// InputHintEmoji: suggest offering Emoji support. Since 3.22.20.
	InputHintEmoji InputHints = 0b1000000000
	// InputHintNoEmoji: suggest not offering Emoji support. Since 3.22.20.
	InputHintNoEmoji InputHints = 0b10000000000
)

func (InputHints) Has

func (i InputHints) Has(other InputHints) bool

Has returns true if i contains other.

func (InputHints) String

func (i InputHints) String() string

String returns the names in string for InputHints.

type InputPurpose

type InputPurpose C.gint

InputPurpose describes primary purpose of the input widget. This information is useful for on-screen keyboards and similar input methods to decide which keys should be presented to the user.

Note that the purpose is not meant to impose a totally strict rule about allowed characters, and does not replace input validation. It is fine for an on-screen keyboard to let the user override the character set restriction that is expressed by the purpose. The application is expected to validate the entry contents, even if it specified a purpose.

The difference between GTK_INPUT_PURPOSE_DIGITS and GTK_INPUT_PURPOSE_NUMBER is that the former accepts only digits while the latter also some punctuation (like commas or points, plus, minus) and “e” or “E” as in 3.14E+000.

This enumeration may be extended in the future; input methods should interpret unknown values as “free form”.

const (
	// InputPurposeFreeForm: allow any character.
	InputPurposeFreeForm InputPurpose = iota
	// InputPurposeAlpha: allow only alphabetic characters.
	InputPurposeAlpha
	// InputPurposeDigits: allow only digits.
	InputPurposeDigits
	// InputPurposeNumber: edited field expects numbers.
	InputPurposeNumber
	// InputPurposePhone: edited field expects phone number.
	InputPurposePhone
	// InputPurposeURL: edited field expects URL.
	InputPurposeURL
	// InputPurposeEmail: edited field expects email address.
	InputPurposeEmail
	// InputPurposeName: edited field expects the name of a person.
	InputPurposeName
	// InputPurposePassword: like GTK_INPUT_PURPOSE_FREE_FORM, but characters
	// are hidden.
	InputPurposePassword
	// InputPurposePIN: like GTK_INPUT_PURPOSE_DIGITS, but characters are
	// hidden.
	InputPurposePIN
	// InputPurposeTerminal: allow any character, in addition to control codes.
	InputPurposeTerminal
)

func (InputPurpose) String

func (i InputPurpose) String() string

String returns the name in string for InputPurpose.

type Invisible

type Invisible struct {
	Widget
	// contains filtered or unexported fields
}

Invisible widget is used internally in GTK+, and is probably not very useful for application developers.

It is used for reliable pointer grabs and selection handling in the code for drag-and-drop.

func NewInvisible

func NewInvisible() *Invisible

NewInvisible creates a new Invisible.

The function returns the following values:

  • invisible: new Invisible.

func NewInvisibleForScreen

func NewInvisibleForScreen(screen *gdk.Screen) *Invisible

NewInvisibleForScreen creates a new Invisible object for a specified screen.

The function takes the following parameters:

  • screen which identifies on which the new Invisible will be created.

The function returns the following values:

  • invisible: newly created Invisible object.

func (*Invisible) Screen

func (invisible *Invisible) Screen() *gdk.Screen

Screen returns the Screen object associated with invisible.

The function returns the following values:

  • screen: associated Screen.

func (*Invisible) SetScreen

func (invisible *Invisible) SetScreen(screen *gdk.Screen)

SetScreen sets the Screen where the Invisible object will be displayed.

The function takes the following parameters:

  • screen: Screen.

type InvisibleClass added in v0.0.5

type InvisibleClass struct {
	// contains filtered or unexported fields
}

InvisibleClass: instance of this type is always passed by reference.

func (*InvisibleClass) ParentClass added in v0.0.5

func (i *InvisibleClass) ParentClass() *WidgetClass

type InvisibleOverrides added in v0.0.5

type InvisibleOverrides struct {
}

InvisibleOverrides contains methods that are overridable.

type JunctionSides

type JunctionSides C.guint

JunctionSides describes how a rendered element connects to adjacent elements.

const (
	// JunctionNone: no junctions.
	JunctionNone JunctionSides = 0b0
	// JunctionCornerTopleft: element connects on the top-left corner.
	JunctionCornerTopleft JunctionSides = 0b1
	// JunctionCornerTopright: element connects on the top-right corner.
	JunctionCornerTopright JunctionSides = 0b10
	// JunctionCornerBottomleft: element connects on the bottom-left corner.
	JunctionCornerBottomleft JunctionSides = 0b100
	// JunctionCornerBottomright: element connects on the bottom-right corner.
	JunctionCornerBottomright JunctionSides = 0b1000
	// JunctionTop: element connects on the top side.
	JunctionTop JunctionSides = 0b11
	// JunctionBottom: element connects on the bottom side.
	JunctionBottom JunctionSides = 0b1100
	// JunctionLeft: element connects on the left side.
	JunctionLeft JunctionSides = 0b101
	// JunctionRight: element connects on the right side.
	JunctionRight JunctionSides = 0b1010
)

func (JunctionSides) Has

func (j JunctionSides) Has(other JunctionSides) bool

Has returns true if j contains other.

func (JunctionSides) String

func (j JunctionSides) String() string

String returns the names in string for JunctionSides.

type Justification

type Justification C.gint

Justification: used for justifying the text inside a Label widget. (See also Alignment).

const (
	// JustifyLeft: text is placed at the left edge of the label.
	JustifyLeft Justification = iota
	// JustifyRight: text is placed at the right edge of the label.
	JustifyRight
	// JustifyCenter: text is placed in the center of the label.
	JustifyCenter
	// JustifyFill: text is placed is distributed across the label.
	JustifyFill
)

func (Justification) String

func (j Justification) String() string

String returns the name in string for Justification.

type KeySnoopFunc

type KeySnoopFunc func(grabWidget Widgetter, event *gdk.EventKey) (gint int)

KeySnoopFunc: key snooper functions are called before normal event delivery. They can be used to implement custom key event handling.

type Label

type Label struct {
	Misc
	// contains filtered or unexported fields
}

Label widget displays a small amount of text. As the name implies, most labels are used to label another widget such as a Button, a MenuItem, or a ComboBox.

CSS nodes

const gchar *text =
"Go to the"
"<a href=\"http://www.gtk.org title=\"&lt;i&gt;Our&lt;/i&gt; website\">"
"GTK+ website</a> for more...";
GtkWidget *label = gtk_label_new (NULL);
gtk_label_set_markup (GTK_LABEL (label), text);

It is possible to implement custom handling for links and their tooltips with the Label::activate-link signal and the gtk_label_get_current_uri() function.

func NewLabel

func NewLabel(str string) *Label

NewLabel creates a new label with the given text inside it. You can pass NULL to get an empty label widget.

The function takes the following parameters:

  • str (optional): text of the label.

The function returns the following values:

  • label: new Label.

func NewLabelWithMnemonic

func NewLabelWithMnemonic(str string) *Label

NewLabelWithMnemonic creates a new Label, containing the text in str.

If characters in str are preceded by an underscore, they are underlined. If you need a literal underscore character in a label, use '__' (two underscores). The first underlined character represents a keyboard accelerator called a mnemonic. The mnemonic key can be used to activate another widget, chosen automatically, or explicitly using gtk_label_set_mnemonic_widget().

If gtk_label_set_mnemonic_widget() is not called, then the first activatable ancestor of the Label will be chosen as the mnemonic widget. For instance, if the label is inside a button or menu item, the button or menu item will automatically become the mnemonic widget and be activated by the mnemonic.

The function takes the following parameters:

  • str (optional): text of the label, with an underscore in front of the mnemonic character.

The function returns the following values:

  • label: new Label.

func (*Label) Angle

func (label *Label) Angle() float64

Angle gets the angle of rotation for the label. See gtk_label_set_angle().

The function returns the following values:

  • gdouble: angle of rotation for the label.

func (*Label) Attributes

func (label *Label) Attributes() *pango.AttrList

Attributes gets the attribute list that was set on the label using gtk_label_set_attributes(), if any. This function does not reflect attributes that come from the labels markup (see gtk_label_set_markup()). If you want to get the effective attributes for the label, use pango_layout_get_attribute (gtk_label_get_layout (label)).

The function returns the following values:

  • attrList (optional): attribute list, or NULL if none was set.
func (label *Label) ConnectActivateCurrentLink(f func()) coreglib.SignalHandle

ConnectActivateCurrentLink: [keybinding signal][GtkBindingSignal] which gets emitted when the user activates a link in the label.

Applications may also emit the signal with g_signal_emit_by_name() if they need to control activation of URIs programmatically.

The default bindings for this signal are all forms of the Enter key.

func (label *Label) ConnectActivateLink(f func(uri string) (ok bool)) coreglib.SignalHandle

ConnectActivateLink: signal which gets emitted to activate a URI. Applications may connect to it to override the default behaviour, which is to call gtk_show_uri_on_window().

func (*Label) ConnectCopyClipboard

func (label *Label) ConnectCopyClipboard(f func()) coreglib.SignalHandle

ConnectCopyClipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to copy the selection to the clipboard.

The default binding for this signal is Ctrl-c.

func (*Label) ConnectMoveCursor

func (label *Label) ConnectMoveCursor(f func(step MovementStep, count int, extendSelection bool)) coreglib.SignalHandle

ConnectMoveCursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a cursor movement. If the cursor is not visible in entry, this signal causes the viewport to be moved instead.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically.

The default bindings for this signal come in two variants, the variant with the Shift modifier extends the selection, the variant without the Shift modifer does not. There are too many key combinations to list them all here.

- Arrow keys move by individual characters/lines

- Ctrl-arrow key combinations move by words/paragraphs

- Home/End keys move to the ends of the buffer.

func (*Label) ConnectPopulatePopup

func (label *Label) ConnectPopulatePopup(f func(menu *Menu)) coreglib.SignalHandle

ConnectPopulatePopup signal gets emitted before showing the context menu of the label. Note that only selectable labels have context menus.

If you need to add items to the context menu, connect to this signal and append your menuitems to the menu.

func (*Label) CurrentURI

func (label *Label) CurrentURI() string

CurrentURI returns the URI for the currently active link in the label. The active link is the one under the mouse pointer or, in a selectable label, the link in which the text cursor is currently positioned.

This function is intended for use in a Label::activate-link handler or for use in a Widget::query-tooltip handler.

The function returns the following values:

  • utf8: currently active URI. The string is owned by GTK+ and must not be freed or modified.

func (*Label) Ellipsize

func (label *Label) Ellipsize() pango.EllipsizeMode

Ellipsize returns the ellipsizing position of the label. See gtk_label_set_ellipsize().

The function returns the following values:

  • ellipsizeMode: EllipsizeMode.

func (*Label) Justify

func (label *Label) Justify() Justification

Justify returns the justification of the label. See gtk_label_set_justify().

The function returns the following values:

  • justification: Justification.

func (*Label) Label

func (label *Label) Label() string

Label fetches the text from a label widget including any embedded underlines indicating mnemonics and Pango markup. (See gtk_label_get_text()).

The function returns the following values:

  • utf8: text of the label widget. This string is owned by the widget and must not be modified or freed.

func (*Label) Layout

func (label *Label) Layout() *pango.Layout

Layout gets the Layout used to display the label. The layout is useful to e.g. convert text positions to pixel positions, in combination with gtk_label_get_layout_offsets(). The returned layout is owned by the label so need not be freed by the caller. The label is free to recreate its layout at any time, so it should be considered read-only.

The function returns the following values:

  • layout for this label.

func (*Label) LayoutOffsets

func (label *Label) LayoutOffsets() (x, y int)

LayoutOffsets obtains the coordinates where the label will draw the Layout representing the text in the label; useful to convert mouse events into coordinates inside the Layout, e.g. to take some action if some part of the label is clicked. Of course you will need to create a EventBox to receive the events, and pack the label inside it, since labels are windowless (they return FALSE from gtk_widget_get_has_window()). Remember when using the Layout functions you need to convert to and from pixels using PANGO_PIXELS() or NGO_SCALE.

The function returns the following values:

  • x (optional): location to store X offset of layout, or NULL.
  • y (optional): location to store Y offset of layout, or NULL.

func (*Label) LineWrap

func (label *Label) LineWrap() bool

LineWrap returns whether lines in the label are automatically wrapped. See gtk_label_set_line_wrap().

The function returns the following values:

  • ok: TRUE if the lines of the label are automatically wrapped.

func (*Label) LineWrapMode

func (label *Label) LineWrapMode() pango.WrapMode

LineWrapMode returns line wrap mode used by the label. See gtk_label_set_line_wrap_mode().

The function returns the following values:

  • wrapMode: TRUE if the lines of the label are automatically wrapped.

func (*Label) Lines

func (label *Label) Lines() int

Lines gets the number of lines to which an ellipsized, wrapping label should be limited. See gtk_label_set_lines().

The function returns the following values:

  • gint: number of lines.

func (*Label) MaxWidthChars

func (label *Label) MaxWidthChars() int

MaxWidthChars retrieves the desired maximum width of label, in characters. See gtk_label_set_width_chars().

The function returns the following values:

  • gint: maximum width of the label in characters.

func (*Label) MnemonicKeyval

func (label *Label) MnemonicKeyval() uint

MnemonicKeyval: if the label has been set so that it has an mnemonic key this function returns the keyval used for the mnemonic accelerator. If there is no mnemonic set up it returns K_KEY_VoidSymbol.

The function returns the following values:

  • guint: GDK keyval usable for accelerators, or K_KEY_VoidSymbol.

func (*Label) MnemonicWidget

func (label *Label) MnemonicWidget() Widgetter

MnemonicWidget retrieves the target of the mnemonic (keyboard shortcut) of this label. See gtk_label_set_mnemonic_widget().

The function returns the following values:

  • widget (optional): target of the label’s mnemonic, or NULL if none has been set and the default algorithm will be used.

func (*Label) SelectRegion

func (label *Label) SelectRegion(startOffset, endOffset int)

SelectRegion selects a range of characters in the label, if the label is selectable. See gtk_label_set_selectable(). If the label is not selectable, this function has no effect. If start_offset or end_offset are -1, then the end of the label will be substituted.

The function takes the following parameters:

  • startOffset: start offset (in characters not bytes).
  • endOffset: end offset (in characters not bytes).

func (*Label) Selectable

func (label *Label) Selectable() bool

Selectable gets the value set by gtk_label_set_selectable().

The function returns the following values:

  • ok: TRUE if the user can copy text from the label.

func (*Label) SelectionBounds

func (label *Label) SelectionBounds() (start, end int, ok bool)

SelectionBounds gets the selected range of characters in the label, returning TRUE if there’s a selection.

The function returns the following values:

  • start: return location for start of selection, as a character offset.
  • end: return location for end of selection, as a character offset.
  • ok: TRUE if selection is non-empty.

func (*Label) SetAngle

func (label *Label) SetAngle(angle float64)

SetAngle sets the angle of rotation for the label. An angle of 90 reads from from bottom to top, an angle of 270, from top to bottom. The angle setting for the label is ignored if the label is selectable, wrapped, or ellipsized.

The function takes the following parameters:

  • angle that the baseline of the label makes with the horizontal, in degrees, measured counterclockwise.

func (*Label) SetAttributes

func (label *Label) SetAttributes(attrs *pango.AttrList)

SetAttributes sets a AttrList; the attributes in the list are applied to the label text.

The attributes set with this function will be applied and merged with any other attributes previously effected by way of the Label:use-underline or Label:use-markup properties. While it is not recommended to mix markup strings with manually set attributes, if you must; know that the attributes will be applied to the label after the markup string is parsed.

The function takes the following parameters:

  • attrs (optional) or NULL.

func (*Label) SetEllipsize

func (label *Label) SetEllipsize(mode pango.EllipsizeMode)

SetEllipsize sets the mode used to ellipsize (add an ellipsis: "...") to the text if there is not enough space to render the entire string.

The function takes the following parameters:

  • mode: EllipsizeMode.

func (*Label) SetJustify

func (label *Label) SetJustify(jtype Justification)

SetJustify sets the alignment of the lines in the text of the label relative to each other. GTK_JUSTIFY_LEFT is the default value when the widget is first created with gtk_label_new(). If you instead want to set the alignment of the label as a whole, use gtk_widget_set_halign() instead. gtk_label_set_justify() has no effect on labels containing only a single line.

The function takes the following parameters:

  • jtype: Justification.

func (*Label) SetLabel

func (label *Label) SetLabel(str string)

SetLabel sets the text of the label. The label is interpreted as including embedded underlines and/or Pango markup depending on the values of the Label:use-underline and Label:use-markup properties.

The function takes the following parameters:

  • str: new text to set for the label.

func (*Label) SetLineWrap

func (label *Label) SetLineWrap(wrap bool)

SetLineWrap toggles line wrapping within the Label widget. TRUE makes it break lines if text exceeds the widget’s size. FALSE lets the text get cut off by the edge of the widget if it exceeds the widget size.

Note that setting line wrapping to TRUE does not make the label wrap at its parent container’s width, because GTK+ widgets conceptually can’t make their requisition depend on the parent container’s size. For a label that wraps at a specific position, set the label’s width using gtk_widget_set_size_request().

The function takes the following parameters:

  • wrap: setting.

func (*Label) SetLineWrapMode

func (label *Label) SetLineWrapMode(wrapMode pango.WrapMode)

SetLineWrapMode: if line wrapping is on (see gtk_label_set_line_wrap()) this controls how the line wrapping is done. The default is PANGO_WRAP_WORD which means wrap on word boundaries.

The function takes the following parameters:

  • wrapMode: line wrapping mode.

func (*Label) SetLines

func (label *Label) SetLines(lines int)

SetLines sets the number of lines to which an ellipsized, wrapping label should be limited. This has no effect if the label is not wrapping or ellipsized. Set this to -1 if you don’t want to limit the number of lines.

The function takes the following parameters:

  • lines: desired number of lines, or -1.

func (*Label) SetMarkup

func (label *Label) SetMarkup(str string)

SetMarkup parses str which is marked up with the [Pango text markup language][PangoMarkupFormat], setting the label’s text and attribute list based on the parse results.

If the str is external data, you may need to escape it with g_markup_escape_text() or g_markup_printf_escaped():

GtkWidget *label = gtk_label_new (NULL);
const char *str = "some text";
const char *format = "<span style=\"italic\">\s</span>";
char *markup;

markup = g_markup_printf_escaped (format, str);
gtk_label_set_markup (GTK_LABEL (label), markup);
g_free (markup);

This function will set the Label:use-markup property to TRUE as a side effect.

If you set the label contents using the Label:label property you should also ensure that you set the Label:use-markup property accordingly.

See also: gtk_label_set_text().

The function takes the following parameters:

  • str: markup string (see [Pango markup format][PangoMarkupFormat]).

func (*Label) SetMarkupWithMnemonic

func (label *Label) SetMarkupWithMnemonic(str string)

SetMarkupWithMnemonic parses str which is marked up with the [Pango text markup language][PangoMarkupFormat], setting the label’s text and attribute list based on the parse results. If characters in str are preceded by an underscore, they are underlined indicating that they represent a keyboard accelerator called a mnemonic.

The mnemonic key can be used to activate another widget, chosen automatically, or explicitly using gtk_label_set_mnemonic_widget().

The function takes the following parameters:

  • str: markup string (see [Pango markup format][PangoMarkupFormat]).

func (*Label) SetMaxWidthChars

func (label *Label) SetMaxWidthChars(nChars int)

SetMaxWidthChars sets the desired maximum width in characters of label to n_chars.

The function takes the following parameters:

  • nChars: new desired maximum width, in characters.

func (*Label) SetMnemonicWidget

func (label *Label) SetMnemonicWidget(widget Widgetter)

SetMnemonicWidget: if the label has been set so that it has an mnemonic key (using i.e. gtk_label_set_markup_with_mnemonic(), gtk_label_set_text_with_mnemonic(), gtk_label_new_with_mnemonic() or the “use_underline” property) the label can be associated with a widget that is the target of the mnemonic. When the label is inside a widget (like a Button or a Notebook tab) it is automatically associated with the correct widget, but sometimes (i.e. when the target is a Entry next to the label) you need to set it explicitly using this function.

The target widget will be accelerated by emitting the GtkWidget::mnemonic-activate signal on it. The default handler for this signal will activate the widget if there are no mnemonic collisions and toggle focus between the colliding widgets otherwise.

The function takes the following parameters:

  • widget (optional): target Widget, or NULL to unset.

func (*Label) SetPattern

func (label *Label) SetPattern(pattern string)

SetPattern: pattern of underlines you want under the existing text within the Label widget. For example if the current text of the label says “FooBarBaz” passing a pattern of “___ ___” will underline “Foo” and “Baz” but not “Bar”.

The function takes the following parameters:

  • pattern as described above.

func (*Label) SetSelectable

func (label *Label) SetSelectable(setting bool)

SetSelectable: selectable labels allow the user to select text from the label, for copy-and-paste.

The function takes the following parameters:

  • setting: TRUE to allow selecting text in the label.

func (*Label) SetSingleLineMode

func (label *Label) SetSingleLineMode(singleLineMode bool)

SetSingleLineMode sets whether the label is in single line mode.

The function takes the following parameters:

  • singleLineMode: TRUE if the label should be in single line mode.

func (*Label) SetText

func (label *Label) SetText(str string)

SetText sets the text within the Label widget. It overwrites any text that was there before.

This function will clear any previously set mnemonic accelerators, and set the Label:use-underline property to FALSE as a side effect.

This function will set the Label:use-markup property to FALSE as a side effect.

See also: gtk_label_set_markup().

The function takes the following parameters:

  • str: text you want to set.

func (*Label) SetTextWithMnemonic

func (label *Label) SetTextWithMnemonic(str string)

SetTextWithMnemonic sets the label’s text from the string str. If characters in str are preceded by an underscore, they are underlined indicating that they represent a keyboard accelerator called a mnemonic. The mnemonic key can be used to activate another widget, chosen automatically, or explicitly using gtk_label_set_mnemonic_widget().

The function takes the following parameters:

  • str: string.
func (label *Label) SetTrackVisitedLinks(trackLinks bool)

SetTrackVisitedLinks sets whether the label should keep track of clicked links (and use a different color for them).

The function takes the following parameters:

  • trackLinks: TRUE to track visited links.

func (*Label) SetUseMarkup

func (label *Label) SetUseMarkup(setting bool)

SetUseMarkup sets whether the text of the label contains markup in [Pango’s text markup language][PangoMarkupFormat]. See gtk_label_set_markup().

The function takes the following parameters:

  • setting: TRUE if the label’s text should be parsed for markup.

func (*Label) SetUseUnderline

func (label *Label) SetUseUnderline(setting bool)

SetUseUnderline: if true, an underline in the text indicates the next character should be used for the mnemonic accelerator key.

The function takes the following parameters:

  • setting: TRUE if underlines in the text indicate mnemonics.

func (*Label) SetWidthChars

func (label *Label) SetWidthChars(nChars int)

SetWidthChars sets the desired width in characters of label to n_chars.

The function takes the following parameters:

  • nChars: new desired width, in characters.

func (*Label) SetXAlign

func (label *Label) SetXAlign(xalign float32)

SetXAlign sets the Label:xalign property for label.

The function takes the following parameters:

  • xalign: new xalign value, between 0 and 1.

func (*Label) SetYAlign

func (label *Label) SetYAlign(yalign float32)

SetYAlign sets the Label:yalign property for label.

The function takes the following parameters:

  • yalign: new yalign value, between 0 and 1.

func (*Label) SingleLineMode

func (label *Label) SingleLineMode() bool

SingleLineMode returns whether the label is in single line mode.

The function returns the following values:

  • ok: TRUE when the label is in single line mode.

func (*Label) Text

func (label *Label) Text() string

Text fetches the text from a label widget, as displayed on the screen. This does not include any embedded underlines indicating mnemonics or Pango markup. (See gtk_label_get_label()).

The function returns the following values:

  • utf8: text in the label widget. This is the internal string used by the label, and must not be modified.
func (label *Label) TrackVisitedLinks() bool

TrackVisitedLinks returns whether the label is currently keeping track of clicked links.

The function returns the following values:

  • ok: TRUE if clicked links are remembered.

func (*Label) UseMarkup

func (label *Label) UseMarkup() bool

UseMarkup returns whether the label’s text is interpreted as marked up with the [Pango text markup language][PangoMarkupFormat]. See gtk_label_set_use_markup ().

The function returns the following values:

  • ok: TRUE if the label’s text will be parsed for markup.

func (*Label) UseUnderline

func (label *Label) UseUnderline() bool

UseUnderline returns whether an embedded underline in the label indicates a mnemonic. See gtk_label_set_use_underline().

The function returns the following values:

  • ok: TRUE whether an embedded underline in the label indicates the mnemonic accelerator keys.

func (*Label) WidthChars

func (label *Label) WidthChars() int

WidthChars retrieves the desired width of label, in characters. See gtk_label_set_width_chars().

The function returns the following values:

  • gint: width of the label in characters.

func (*Label) XAlign

func (label *Label) XAlign() float32

XAlign gets the Label:xalign property for label.

The function returns the following values:

  • gfloat: xalign property.

func (*Label) YAlign

func (label *Label) YAlign() float32

YAlign gets the Label:yalign property for label.

The function returns the following values:

  • gfloat: yalign property.

type LabelAccessible

type LabelAccessible struct {
	WidgetAccessible

	*coreglib.Object
	atk.Hypertext
	atk.Text
	// contains filtered or unexported fields
}

type LabelAccessibleClass added in v0.0.5

type LabelAccessibleClass struct {
	// contains filtered or unexported fields
}

LabelAccessibleClass: instance of this type is always passed by reference.

func (*LabelAccessibleClass) ParentClass added in v0.0.5

func (l *LabelAccessibleClass) ParentClass() *WidgetAccessibleClass

type LabelAccessibleOverrides added in v0.0.5

type LabelAccessibleOverrides struct {
}

LabelAccessibleOverrides contains methods that are overridable.

type LabelClass added in v0.0.5

type LabelClass struct {
	// contains filtered or unexported fields
}

LabelClass: instance of this type is always passed by reference.

func (*LabelClass) ParentClass added in v0.0.5

func (l *LabelClass) ParentClass() *MiscClass

type LabelOverrides added in v0.0.5

type LabelOverrides struct {
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ActivateLink  func(uri string) bool
	CopyClipboard func()
	// The function takes the following parameters:
	//
	//   - step
	//   - count
	//   - extendSelection
	//
	MoveCursor func(step MovementStep, count int, extendSelection bool)
	// The function takes the following parameters:
	//
	PopulatePopup func(menu *Menu)
}

LabelOverrides contains methods that are overridable.

type Layout

type Layout struct {
	Container

	*coreglib.Object
	Scrollable
	// contains filtered or unexported fields
}

Layout is similar to DrawingArea in that it’s a “blank slate” and doesn’t do anything except paint a blank background by default. It’s different in that it supports scrolling natively due to implementing Scrollable, and can contain child widgets since it’s a Container.

If you just want to draw, a DrawingArea is a better choice since it has lower overhead. If you just need to position child widgets at specific points, then Fixed provides that functionality on its own.

When handling expose events on a Layout, you must draw to the Window returned by gtk_layout_get_bin_window(), rather than to the one returned by gtk_widget_get_window() as you would for a DrawingArea.

func NewLayout

func NewLayout(hadjustment, vadjustment *Adjustment) *Layout

NewLayout creates a new Layout. Unless you have a specific adjustment you’d like the layout to use for scrolling, pass NULL for hadjustment and vadjustment.

The function takes the following parameters:

  • hadjustment (optional): horizontal scroll adjustment, or NULL.
  • vadjustment (optional): vertical scroll adjustment, or NULL.

The function returns the following values:

  • layout: new Layout.

func (*Layout) BinWindow

func (layout *Layout) BinWindow() gdk.Windower

BinWindow: retrieve the bin window of the layout used for drawing operations.

The function returns the following values:

  • window: Window.

func (*Layout) HAdjustment deprecated

func (layout *Layout) HAdjustment() *Adjustment

HAdjustment: this function should only be called after the layout has been placed in a ScrolledWindow or otherwise configured for scrolling. It returns the Adjustment used for communication between the horizontal scrollbar and layout.

See ScrolledWindow, Scrollbar, Adjustment for details.

Deprecated: Use gtk_scrollable_get_hadjustment().

The function returns the following values:

  • adjustment: horizontal scroll adjustment.

func (*Layout) Move

func (layout *Layout) Move(childWidget Widgetter, x, y int)

Move moves a current child of layout to a new position.

The function takes the following parameters:

  • childWidget: current child of layout.
  • x: x position to move to.
  • y: y position to move to.

func (*Layout) Put

func (layout *Layout) Put(childWidget Widgetter, x, y int)

Put adds child_widget to layout, at position (x,y). layout becomes the new parent container of child_widget.

The function takes the following parameters:

  • childWidget: child widget.
  • x: x position of child widget.
  • y: y position of child widget.

func (*Layout) SetHAdjustment deprecated

func (layout *Layout) SetHAdjustment(adjustment *Adjustment)

SetHAdjustment sets the horizontal scroll adjustment for the layout.

See ScrolledWindow, Scrollbar, Adjustment for details.

Deprecated: Use gtk_scrollable_set_hadjustment().

The function takes the following parameters:

  • adjustment (optional): new scroll adjustment.

func (*Layout) SetSize

func (layout *Layout) SetSize(width, height uint)

SetSize sets the size of the scrollable area of the layout.

The function takes the following parameters:

  • width of entire scrollable area.
  • height of entire scrollable area.

func (*Layout) SetVAdjustment deprecated

func (layout *Layout) SetVAdjustment(adjustment *Adjustment)

SetVAdjustment sets the vertical scroll adjustment for the layout.

See ScrolledWindow, Scrollbar, Adjustment for details.

Deprecated: Use gtk_scrollable_set_vadjustment().

The function takes the following parameters:

  • adjustment (optional): new scroll adjustment.

func (*Layout) Size

func (layout *Layout) Size() (width, height uint)

Size gets the size that has been set on the layout, and that determines the total extents of the layout’s scrollbar area. See gtk_layout_set_size ().

The function returns the following values:

  • width (optional): location to store the width set on layout, or NULL.
  • height (optional): location to store the height set on layout, or NULL.

func (*Layout) VAdjustment deprecated

func (layout *Layout) VAdjustment() *Adjustment

VAdjustment: this function should only be called after the layout has been placed in a ScrolledWindow or otherwise configured for scrolling. It returns the Adjustment used for communication between the vertical scrollbar and layout.

See ScrolledWindow, Scrollbar, Adjustment for details.

Deprecated: Use gtk_scrollable_get_vadjustment().

The function returns the following values:

  • adjustment: vertical scroll adjustment.

type LayoutClass added in v0.0.5

type LayoutClass struct {
	// contains filtered or unexported fields
}

LayoutClass: instance of this type is always passed by reference.

func (*LayoutClass) ParentClass added in v0.0.5

func (l *LayoutClass) ParentClass() *ContainerClass

type LayoutOverrides added in v0.0.5

type LayoutOverrides struct {
}

LayoutOverrides contains methods that are overridable.

type LevelBar

type LevelBar struct {
	Widget

	*coreglib.Object
	Orientable
	// contains filtered or unexported fields
}

LevelBar is a bar widget that can be used as a level indicator. Typical use cases are displaying the strength of a password, or showing the charge level of a battery.

Use gtk_level_bar_set_value() to set the current value, and gtk_level_bar_add_offset_value() to set the value offsets at which the bar will be considered in a different state. GTK will add a few offsets by default on the level bar: K_LEVEL_BAR_OFFSET_LOW, K_LEVEL_BAR_OFFSET_HIGH and K_LEVEL_BAR_OFFSET_FULL, with values 0.25, 0.75 and 1.0 respectively.

Note that it is your responsibility to update preexisting offsets when changing the minimum or maximum value. GTK+ will simply clamp them to the new range.

Adding a custom offset on the bar

levelbar[.discrete]
╰── trough
    ├── block.filled.level-name
    ┊
    ├── block.empty
    ┊

GtkLevelBar has a main CSS node with name levelbar and one of the style classes .discrete or .continuous and a subnode with name trough. Below the trough node are a number of nodes with name block and style class .filled or .empty. In continuous mode, there is exactly one node of each, in discrete mode, the number of filled and unfilled nodes corresponds to blocks that are drawn. The block.filled nodes also get a style class .level-name corresponding to the level for the current value.

In horizontal orientation, the nodes are always arranged from left to right, regardless of text direction.

func NewLevelBar

func NewLevelBar() *LevelBar

NewLevelBar creates a new LevelBar.

The function returns the following values:

  • levelBar: LevelBar.

func NewLevelBarForInterval

func NewLevelBarForInterval(minValue, maxValue float64) *LevelBar

NewLevelBarForInterval: utility constructor that creates a new LevelBar for the specified interval.

The function takes the following parameters:

  • minValue: positive value.
  • maxValue: positive value.

The function returns the following values:

  • levelBar: LevelBar.

func (*LevelBar) AddOffsetValue

func (self *LevelBar) AddOffsetValue(name string, value float64)

AddOffsetValue adds a new offset marker on self at the position specified by value. When the bar value is in the interval topped by value (or between value and LevelBar:max-value in case the offset is the last one on the bar) a style class named level-name will be applied when rendering the level bar fill. If another offset marker named name exists, its value will be replaced by value.

The function takes the following parameters:

  • name of the new offset.
  • value for the new offset.

func (*LevelBar) ConnectOffsetChanged

func (self *LevelBar) ConnectOffsetChanged(f func(name string)) coreglib.SignalHandle

ConnectOffsetChanged is emitted when an offset specified on the bar changes value as an effect to gtk_level_bar_add_offset_value() being called.

The signal supports detailed connections; you can connect to the detailed signal "changed::x" in order to only receive callbacks when the value of offset "x" changes.

func (*LevelBar) Inverted

func (self *LevelBar) Inverted() bool

Inverted: return the value of the LevelBar:inverted property.

The function returns the following values:

  • ok: TRUE if the level bar is inverted.

func (*LevelBar) MaxValue

func (self *LevelBar) MaxValue() float64

MaxValue returns the value of the LevelBar:max-value property.

The function returns the following values:

  • gdouble: positive value.

func (*LevelBar) MinValue

func (self *LevelBar) MinValue() float64

MinValue returns the value of the LevelBar:min-value property.

The function returns the following values:

  • gdouble: positive value.

func (*LevelBar) Mode

func (self *LevelBar) Mode() LevelBarMode

Mode returns the value of the LevelBar:mode property.

The function returns the following values:

  • levelBarMode: LevelBarMode.

func (*LevelBar) OffsetValue

func (self *LevelBar) OffsetValue(name string) (float64, bool)

OffsetValue fetches the value specified for the offset marker name in self, returning TRUE in case an offset named name was found.

The function takes the following parameters:

  • name (optional) of an offset in the bar.

The function returns the following values:

  • value: location where to store the value.
  • ok: TRUE if the specified offset is found.

func (*LevelBar) RemoveOffsetValue

func (self *LevelBar) RemoveOffsetValue(name string)

RemoveOffsetValue removes an offset marker previously added with gtk_level_bar_add_offset_value().

The function takes the following parameters:

  • name (optional) of an offset in the bar.

func (*LevelBar) SetInverted

func (self *LevelBar) SetInverted(inverted bool)

SetInverted sets the value of the LevelBar:inverted property.

The function takes the following parameters:

  • inverted: TRUE to invert the level bar.

func (*LevelBar) SetMaxValue

func (self *LevelBar) SetMaxValue(value float64)

SetMaxValue sets the value of the LevelBar:max-value property.

You probably want to update preexisting level offsets after calling this function.

The function takes the following parameters:

  • value: positive value.

func (*LevelBar) SetMinValue

func (self *LevelBar) SetMinValue(value float64)

SetMinValue sets the value of the LevelBar:min-value property.

You probably want to update preexisting level offsets after calling this function.

The function takes the following parameters:

  • value: positive value.

func (*LevelBar) SetMode

func (self *LevelBar) SetMode(mode LevelBarMode)

SetMode sets the value of the LevelBar:mode property.

The function takes the following parameters:

  • mode: LevelBarMode.

func (*LevelBar) SetValue

func (self *LevelBar) SetValue(value float64)

SetValue sets the value of the LevelBar:value property.

The function takes the following parameters:

  • value in the interval between LevelBar:min-value and LevelBar:max-value.

func (*LevelBar) Value

func (self *LevelBar) Value() float64

Value returns the value of the LevelBar:value property.

The function returns the following values:

  • gdouble: value in the interval between LevelBar:min-value and LevelBar:max-value.

type LevelBarAccessible

type LevelBarAccessible struct {
	WidgetAccessible

	atk.Value
	// contains filtered or unexported fields
}

type LevelBarAccessibleClass added in v0.0.5

type LevelBarAccessibleClass struct {
	// contains filtered or unexported fields
}

LevelBarAccessibleClass: instance of this type is always passed by reference.

func (*LevelBarAccessibleClass) ParentClass added in v0.0.5

type LevelBarAccessibleOverrides added in v0.0.5

type LevelBarAccessibleOverrides struct {
}

LevelBarAccessibleOverrides contains methods that are overridable.

type LevelBarClass added in v0.0.5

type LevelBarClass struct {
	// contains filtered or unexported fields
}

LevelBarClass: instance of this type is always passed by reference.

type LevelBarMode

type LevelBarMode C.gint

LevelBarMode describes how LevelBar contents should be rendered. Note that this enumeration could be extended with additional modes in the future.

const (
	// LevelBarModeContinuous: bar has a continuous mode.
	LevelBarModeContinuous LevelBarMode = iota
	// LevelBarModeDiscrete: bar has a discrete mode.
	LevelBarModeDiscrete
)

func (LevelBarMode) String

func (l LevelBarMode) String() string

String returns the name in string for LevelBarMode.

type LevelBarOverrides added in v0.0.5

type LevelBarOverrides struct {
	// The function takes the following parameters:
	//
	OffsetChanged func(name string)
}

LevelBarOverrides contains methods that are overridable.

type License

type License C.gint

License: type of license for an application.

This enumeration can be expanded at later date.

const (
	// LicenseUnknown: no license specified.
	LicenseUnknown License = iota
	// LicenseCustom: license text is going to be specified by the developer.
	LicenseCustom
	// LicenseGPL20: GNU General Public License, version 2.0 or later.
	LicenseGPL20
	// LicenseGPL30: GNU General Public License, version 3.0 or later.
	LicenseGPL30
	// LicenseLGPL21: GNU Lesser General Public License, version 2.1 or later.
	LicenseLGPL21
	// LicenseLGPL30: GNU Lesser General Public License, version 3.0 or later.
	LicenseLGPL30
	// LicenseBSD: BSD standard license.
	LicenseBSD
	// LicenseMITX11: MIT/X11 standard license.
	LicenseMITX11
	// LicenseArtistic: artistic License, version 2.0.
	LicenseArtistic
	// LicenseGPL20_Only: GNU General Public License, version 2.0 only. Since
	// 3.12.
	LicenseGPL20_Only
	// LicenseGPL30_Only: GNU General Public License, version 3.0 only. Since
	// 3.12.
	LicenseGPL30_Only
	// LicenseLGPL21_Only: GNU Lesser General Public License, version 2.1 only.
	// Since 3.12.
	LicenseLGPL21_Only
	// LicenseLGPL30_Only: GNU Lesser General Public License, version 3.0 only.
	// Since 3.12.
	LicenseLGPL30_Only
	// LicenseAGPL30: GNU Affero General Public License, version 3.0 or later.
	// Since: 3.22.
	LicenseAGPL30
	// LicenseAGPL30_Only: GNU Affero General Public License, version 3.0 only.
	// Since: 3.22.27.
	LicenseAGPL30_Only
	// LicenseBSD3: 3-clause BSD licence. Since: 3.24.20.
	LicenseBSD3
	// LicenseApache20: apache License, version 2.0. Since: 3.24.20.
	LicenseApache20
	// LicenseMPL20: mozilla Public License, version 2.0. Since: 3.24.20.
	LicenseMPL20
)

func (License) String

func (l License) String() string

String returns the name in string for License.

type LinkButton

type LinkButton struct {
	Button
	// contains filtered or unexported fields
}

LinkButton is a Button with a hyperlink, similar to the one used by web browsers, which triggers an action when clicked. It is useful to show quick links to resources.

A link button is created by calling either gtk_link_button_new() or gtk_link_button_new_with_label(). If using the former, the URI you pass to the constructor is used as a label for the widget.

The URI bound to a GtkLinkButton can be set specifically using gtk_link_button_set_uri(), and retrieved using gtk_link_button_get_uri().

By default, GtkLinkButton calls gtk_show_uri_on_window() when the button is clicked. This behaviour can be overridden by connecting to the LinkButton::activate-link signal and returning TRUE from the signal handler.

CSS nodes

GtkLinkButton has a single CSS node with name button. To differentiate it from a plain Button, it gets the .link style class.

func NewLinkButton

func NewLinkButton(uri string) *LinkButton

NewLinkButton creates a new LinkButton with the URI as its text.

The function takes the following parameters:

  • uri: valid URI.

The function returns the following values:

  • linkButton: new link button widget.

func NewLinkButtonWithLabel

func NewLinkButtonWithLabel(uri, label string) *LinkButton

NewLinkButtonWithLabel creates a new LinkButton containing a label.

The function takes the following parameters:

  • uri: valid URI.
  • label (optional): text of the button.

The function returns the following values:

  • linkButton: new link button widget.
func (linkButton *LinkButton) ConnectActivateLink(f func() (ok bool)) coreglib.SignalHandle

ConnectActivateLink signal is emitted each time the LinkButton has been clicked.

The default handler will call gtk_show_uri_on_window() with the URI stored inside the LinkButton:uri property.

To override the default behavior, you can connect to the ::activate-link signal and stop the propagation of the signal by returning TRUE from your handler.

func (*LinkButton) SetURI

func (linkButton *LinkButton) SetURI(uri string)

SetURI sets uri as the URI where the LinkButton points. As a side-effect this unsets the “visited” state of the button.

The function takes the following parameters:

  • uri: valid URI.

func (*LinkButton) SetVisited

func (linkButton *LinkButton) SetVisited(visited bool)

SetVisited sets the “visited” state of the URI where the LinkButton points. See gtk_link_button_get_visited() for more details.

The function takes the following parameters:

  • visited: new “visited” state.

func (*LinkButton) URI

func (linkButton *LinkButton) URI() string

URI retrieves the URI set using gtk_link_button_set_uri().

The function returns the following values:

  • utf8: valid URI. The returned string is owned by the link button and should not be modified or freed.

func (*LinkButton) Visited

func (linkButton *LinkButton) Visited() bool

Visited retrieves the “visited” state of the URI where the LinkButton points. The button becomes visited when it is clicked. If the URI is changed on the button, the “visited” state is unset again.

The state may also be changed using gtk_link_button_set_visited().

The function returns the following values:

  • ok: TRUE if the link has been visited, FALSE otherwise.

type LinkButtonAccessible

type LinkButtonAccessible struct {
	ButtonAccessible

	*coreglib.Object
	atk.HyperlinkImpl
	// contains filtered or unexported fields
}

type LinkButtonAccessibleClass added in v0.0.5

type LinkButtonAccessibleClass struct {
	// contains filtered or unexported fields
}

LinkButtonAccessibleClass: instance of this type is always passed by reference.

func (*LinkButtonAccessibleClass) ParentClass added in v0.0.5

type LinkButtonAccessibleOverrides added in v0.0.5

type LinkButtonAccessibleOverrides struct {
}

LinkButtonAccessibleOverrides contains methods that are overridable.

type LinkButtonClass added in v0.0.5

type LinkButtonClass struct {
	// contains filtered or unexported fields
}

LinkButtonClass contains only private data.

An instance of this type is always passed by reference.

type LinkButtonOverrides added in v0.0.5

type LinkButtonOverrides struct {
	// The function returns the following values:
	//
	ActivateLink func() bool
}

LinkButtonOverrides contains methods that are overridable.

type ListBox

type ListBox struct {
	Container
	// contains filtered or unexported fields
}

ListBox is a vertical container that contains GtkListBoxRow children. These rows can by dynamically sorted and filtered, and headers can be added dynamically depending on the row content. It also allows keyboard and mouse navigation and selection like a typical list.

Using GtkListBox is often an alternative to TreeView, especially when the list contents has a more complicated layout than what is allowed by a CellRenderer, or when the contents is interactive (i.e. has a button in it).

Although a ListBox must have only ListBoxRow children you can add any kind of widget to it via gtk_container_add(), and a ListBoxRow widget will automatically be inserted between the list and the widget.

ListBoxRows can be marked as activatable or selectable. If a row is activatable, ListBox::row-activated will be emitted for it when the user tries to activate it. If it is selectable, the row will be marked as selected when the user tries to select it.

The GtkListBox widget was added in GTK+ 3.10.

GtkListBox as GtkBuildable

The GtkListBox implementation of the Buildable interface supports setting a child as the placeholder by specifying “placeholder” as the “type” attribute of a <child> element. See gtk_list_box_set_placeholder() for info.

CSS nodes

list
╰── row[.activatable]

GtkListBox uses a single CSS node named list. Each GtkListBoxRow uses a single CSS node named row. The row nodes get the .activatable style class added when appropriate.

func NewListBox

func NewListBox() *ListBox

NewListBox creates a new ListBox container.

The function returns the following values:

  • listBox: new ListBox.

func (*ListBox) ActivateOnSingleClick

func (box *ListBox) ActivateOnSingleClick() bool

ActivateOnSingleClick returns whether rows activate on single clicks.

The function returns the following values:

  • ok: TRUE if rows are activated on single click, FALSE otherwise.

func (*ListBox) Adjustment

func (box *ListBox) Adjustment() *Adjustment

Adjustment gets the adjustment (if any) that the widget uses to for vertical scrolling.

The function returns the following values:

  • adjustment: adjustment.

func (*ListBox) BindModel

func (box *ListBox) BindModel(model gio.ListModeller, createWidgetFunc ListBoxCreateWidgetFunc)

BindModel binds model to box.

If box was already bound to a model, that previous binding is destroyed.

The contents of box are cleared and then filled with widgets that represent items from model. box is updated whenever model changes. If model is NULL, box is left empty.

It is undefined to add or remove widgets directly (for example, with gtk_list_box_insert() or gtk_container_add()) while box is bound to a model.

Note that using a model is incompatible with the filtering and sorting functionality in GtkListBox. When using a model, filtering and sorting should be implemented by the model.

The function takes the following parameters:

  • model (optional) to be bound to box.
  • createWidgetFunc (optional): function that creates widgets for items or NULL in case you also passed NULL as model.

func (*ListBox) ConnectActivateCursorRow

func (box *ListBox) ConnectActivateCursorRow(f func()) coreglib.SignalHandle

func (*ListBox) ConnectMoveCursor

func (box *ListBox) ConnectMoveCursor(f func(object MovementStep, p0 int)) coreglib.SignalHandle

func (*ListBox) ConnectRowActivated

func (box *ListBox) ConnectRowActivated(f func(row *ListBoxRow)) coreglib.SignalHandle

ConnectRowActivated signal is emitted when a row has been activated by the user.

func (*ListBox) ConnectRowSelected

func (box *ListBox) ConnectRowSelected(f func(row *ListBoxRow)) coreglib.SignalHandle

ConnectRowSelected signal is emitted when a new row is selected, or (with a NULL row) when the selection is cleared.

When the box is using K_SELECTION_MULTIPLE, this signal will not give you the full picture of selection changes, and you should use the ListBox::selected-rows-changed signal instead.

func (*ListBox) ConnectSelectAll

func (box *ListBox) ConnectSelectAll(f func()) coreglib.SignalHandle

ConnectSelectAll signal is a [keybinding signal][GtkBindingSignal] which gets emitted to select all children of the box, if the selection mode permits it.

The default bindings for this signal is Ctrl-a.

func (*ListBox) ConnectSelectedRowsChanged

func (box *ListBox) ConnectSelectedRowsChanged(f func()) coreglib.SignalHandle

ConnectSelectedRowsChanged signal is emitted when the set of selected rows changes.

func (*ListBox) ConnectToggleCursorRow

func (box *ListBox) ConnectToggleCursorRow(f func()) coreglib.SignalHandle

func (*ListBox) ConnectUnselectAll

func (box *ListBox) ConnectUnselectAll(f func()) coreglib.SignalHandle

ConnectUnselectAll signal is a [keybinding signal][GtkBindingSignal] which gets emitted to unselect all children of the box, if the selection mode permits it.

The default bindings for this signal is Ctrl-Shift-a.

func (*ListBox) DragHighlightRow

func (box *ListBox) DragHighlightRow(row *ListBoxRow)

DragHighlightRow: this is a helper function for implementing DnD onto a ListBox. The passed in row will be highlighted via gtk_drag_highlight(), and any previously highlighted row will be unhighlighted.

The row will also be unhighlighted when the widget gets a drag leave event.

The function takes the following parameters:

  • row: ListBoxRow.

func (*ListBox) DragUnhighlightRow

func (box *ListBox) DragUnhighlightRow()

DragUnhighlightRow: if a row has previously been highlighted via gtk_list_box_drag_highlight_row() it will have the highlight removed.

func (*ListBox) Insert

func (box *ListBox) Insert(child Widgetter, position int)

Insert the child into the box at position. If a sort function is set, the widget will actually be inserted at the calculated position and this function has the same effect of gtk_container_add().

If position is -1, or larger than the total number of items in the box, then the child will be appended to the end.

The function takes the following parameters:

  • child to add.
  • position to insert child in.

func (*ListBox) InvalidateFilter

func (box *ListBox) InvalidateFilter()

InvalidateFilter: update the filtering for all rows. Call this when result of the filter function on the box is changed due to an external factor. For instance, this would be used if the filter function just looked for a specific search string and the entry with the search string has changed.

func (*ListBox) InvalidateHeaders

func (box *ListBox) InvalidateHeaders()

InvalidateHeaders: update the separators for all rows. Call this when result of the header function on the box is changed due to an external factor.

func (*ListBox) InvalidateSort

func (box *ListBox) InvalidateSort()

InvalidateSort: update the sorting for all rows. Call this when result of the sort function on the box is changed due to an external factor.

func (*ListBox) Prepend

func (box *ListBox) Prepend(child Widgetter)

Prepend a widget to the list. If a sort function is set, the widget will actually be inserted at the calculated position and this function has the same effect of gtk_container_add().

The function takes the following parameters:

  • child to add.

func (*ListBox) RowAtIndex

func (box *ListBox) RowAtIndex(index_ int) *ListBoxRow

RowAtIndex gets the n-th child in the list (not counting headers). If _index is negative or larger than the number of items in the list, NULL is returned.

The function takes the following parameters:

  • index_: index of the row.

The function returns the following values:

  • listBoxRow (optional): child Widget or NULL.

func (*ListBox) RowAtY

func (box *ListBox) RowAtY(y int) *ListBoxRow

RowAtY gets the row at the y position.

The function takes the following parameters:

  • y: position.

The function returns the following values:

  • listBoxRow (optional): row or NULL in case no row exists for the given y coordinate.

func (*ListBox) SelectAll

func (box *ListBox) SelectAll()

SelectAll: select all children of box, if the selection mode allows it.

func (*ListBox) SelectRow

func (box *ListBox) SelectRow(row *ListBoxRow)

SelectRow: make row the currently selected row.

The function takes the following parameters:

  • row (optional) to select or NULL.

func (*ListBox) SelectedForEach

func (box *ListBox) SelectedForEach(fn ListBoxForEachFunc)

SelectedForEach calls a function for each selected child.

Note that the selection cannot be modified from within this function.

The function takes the following parameters:

  • fn: function to call for each selected child.

func (*ListBox) SelectedRow

func (box *ListBox) SelectedRow() *ListBoxRow

SelectedRow gets the selected row.

Note that the box may allow multiple selection, in which case you should use gtk_list_box_selected_foreach() to find all selected rows.

The function returns the following values:

  • listBoxRow: selected row.

func (*ListBox) SelectedRows

func (box *ListBox) SelectedRows() []*ListBoxRow

SelectedRows creates a list of all selected children.

The function returns the following values:

  • list: A #GList containing the Widget for each selected child. Free with g_list_free() when done.

func (*ListBox) SelectionMode

func (box *ListBox) SelectionMode() SelectionMode

SelectionMode gets the selection mode of the listbox.

The function returns the following values:

  • selectionMode: SelectionMode.

func (*ListBox) SetActivateOnSingleClick

func (box *ListBox) SetActivateOnSingleClick(single bool)

SetActivateOnSingleClick: if single is TRUE, rows will be activated when you click on them, otherwise you need to double-click.

The function takes the following parameters:

  • single: boolean.

func (*ListBox) SetAdjustment

func (box *ListBox) SetAdjustment(adjustment *Adjustment)

SetAdjustment sets the adjustment (if any) that the widget uses to for vertical scrolling. For instance, this is used to get the page size for PageUp/Down key handling.

In the normal case when the box is packed inside a ScrolledWindow the adjustment from that will be picked up automatically, so there is no need to manually do that.

The function takes the following parameters:

  • adjustment (optional): adjustment, or NULL.

func (*ListBox) SetFilterFunc

func (box *ListBox) SetFilterFunc(filterFunc ListBoxFilterFunc)

SetFilterFunc: by setting a filter function on the box one can decide dynamically which of the rows to show. For instance, to implement a search function on a list that filters the original list to only show the matching rows.

The filter_func will be called for each row after the call, and it will continue to be called each time a row changes (via gtk_list_box_row_changed()) or when gtk_list_box_invalidate_filter() is called.

Note that using a filter function is incompatible with using a model (see gtk_list_box_bind_model()).

The function takes the following parameters:

  • filterFunc (optional): callback that lets you filter which rows to show.

func (*ListBox) SetHeaderFunc

func (box *ListBox) SetHeaderFunc(updateHeader ListBoxUpdateHeaderFunc)

SetHeaderFunc: by setting a header function on the box one can dynamically add headers in front of rows, depending on the contents of the row and its position in the list. For instance, one could use it to add headers in front of the first item of a new kind, in a list sorted by the kind.

The update_header can look at the current header widget using gtk_list_box_row_get_header() and either update the state of the widget as needed, or set a new one using gtk_list_box_row_set_header(). If no header is needed, set the header to NULL.

Note that you may get many calls update_header to this for a particular row when e.g. changing things that don’t affect the header. In this case it is important for performance to not blindly replace an existing header with an identical one.

The update_header function will be called for each row after the call, and it will continue to be called each time a row changes (via gtk_list_box_row_changed()) and when the row before changes (either by gtk_list_box_row_changed() on the previous row, or when the previous row becomes a different row). It is also called for all rows when gtk_list_box_invalidate_headers() is called.

The function takes the following parameters:

  • updateHeader (optional): callback that lets you add row headers.

func (*ListBox) SetPlaceholder

func (box *ListBox) SetPlaceholder(placeholder Widgetter)

SetPlaceholder sets the placeholder widget that is shown in the list when it doesn't display any visible children.

The function takes the following parameters:

  • placeholder (optional) or NULL.

func (*ListBox) SetSelectionMode

func (box *ListBox) SetSelectionMode(mode SelectionMode)

SetSelectionMode sets how selection works in the listbox. See SelectionMode for details.

The function takes the following parameters:

  • mode: SelectionMode.

func (*ListBox) SetSortFunc

func (box *ListBox) SetSortFunc(sortFunc ListBoxSortFunc)

SetSortFunc: by setting a sort function on the box one can dynamically reorder the rows of the list, based on the contents of the rows.

The sort_func will be called for each row after the call, and will continue to be called each time a row changes (via gtk_list_box_row_changed()) and when gtk_list_box_invalidate_sort() is called.

Note that using a sort function is incompatible with using a model (see gtk_list_box_bind_model()).

The function takes the following parameters:

  • sortFunc (optional): sort function.

func (*ListBox) UnselectAll

func (box *ListBox) UnselectAll()

UnselectAll: unselect all children of box, if the selection mode allows it.

func (*ListBox) UnselectRow

func (box *ListBox) UnselectRow(row *ListBoxRow)

UnselectRow unselects a single row of box, if the selection mode allows it.

The function takes the following parameters:

  • row to unselected.

type ListBoxAccessible

type ListBoxAccessible struct {
	ContainerAccessible

	atk.Selection
	// contains filtered or unexported fields
}

type ListBoxAccessibleClass added in v0.0.5

type ListBoxAccessibleClass struct {
	// contains filtered or unexported fields
}

ListBoxAccessibleClass: instance of this type is always passed by reference.

func (*ListBoxAccessibleClass) ParentClass added in v0.0.5

type ListBoxAccessibleOverrides added in v0.0.5

type ListBoxAccessibleOverrides struct {
}

ListBoxAccessibleOverrides contains methods that are overridable.

type ListBoxClass added in v0.0.5

type ListBoxClass struct {
	// contains filtered or unexported fields
}

ListBoxClass: instance of this type is always passed by reference.

func (*ListBoxClass) ParentClass added in v0.0.5

func (l *ListBoxClass) ParentClass() *ContainerClass

ParentClass: parent class.

type ListBoxCreateWidgetFunc

type ListBoxCreateWidgetFunc func(item *coreglib.Object) (widget Widgetter)

ListBoxCreateWidgetFunc: called for list boxes that are bound to a Model with gtk_list_box_bind_model() for each item that gets added to the model.

Versions of GTK+ prior to 3.18 called gtk_widget_show_all() on the rows created by the GtkListBoxCreateWidgetFunc, but this forced all widgets inside the row to be shown, and is no longer the case. Applications should be updated to show the desired row widgets.

type ListBoxFilterFunc

type ListBoxFilterFunc func(row *ListBoxRow) (ok bool)

ListBoxFilterFunc will be called whenever the row changes or is added and lets you control if the row should be visible or not.

type ListBoxForEachFunc

type ListBoxForEachFunc func(box *ListBox, row *ListBoxRow)

ListBoxForEachFunc: function used by gtk_list_box_selected_foreach(). It will be called on every selected child of the box.

type ListBoxOverrides added in v0.0.5

type ListBoxOverrides struct {
	ActivateCursorRow func()
	// The function takes the following parameters:
	//
	//   - step
	//   - count
	//
	MoveCursor func(step MovementStep, count int)
	// The function takes the following parameters:
	//
	RowActivated func(row *ListBoxRow)
	// The function takes the following parameters:
	//
	RowSelected func(row *ListBoxRow)
	// SelectAll: select all children of box, if the selection mode allows it.
	SelectAll           func()
	SelectedRowsChanged func()
	ToggleCursorRow     func()
	// UnselectAll: unselect all children of box, if the selection mode allows
	// it.
	UnselectAll func()
}

ListBoxOverrides contains methods that are overridable.

type ListBoxRow

type ListBoxRow struct {
	Bin

	*coreglib.Object
	Actionable
	// contains filtered or unexported fields
}

func NewListBoxRow

func NewListBoxRow() *ListBoxRow

NewListBoxRow creates a new ListBoxRow, to be used as a child of a ListBox.

The function returns the following values:

  • listBoxRow: new ListBoxRow.

func (*ListBoxRow) Activatable

func (row *ListBoxRow) Activatable() bool

Activatable gets the value of the ListBoxRow:activatable property for this row.

The function returns the following values:

  • ok: TRUE if the row is activatable.

func (*ListBoxRow) Changed

func (row *ListBoxRow) Changed()

Changed marks row as changed, causing any state that depends on this to be updated. This affects sorting, filtering and headers.

Note that calls to this method must be in sync with the data used for the row functions. For instance, if the list is mirroring some external data set, and *two* rows changed in the external data set then when you call gtk_list_box_row_changed() on the first row the sort function must only read the new data for the first of the two changed rows, otherwise the resorting of the rows will be wrong.

This generally means that if you don’t fully control the data model you have to duplicate the data that affects the listbox row functions into the row widgets themselves. Another alternative is to call gtk_list_box_invalidate_sort() on any model change, but that is more expensive.

func (*ListBoxRow) ConnectActivate

func (row *ListBoxRow) ConnectActivate(f func()) coreglib.SignalHandle

ConnectActivate: this is a keybinding signal, which will cause this row to be activated.

If you want to be notified when the user activates a row (by key or not), use the ListBox::row-activated signal on the row’s parent ListBox.

func (*ListBoxRow) Header

func (row *ListBoxRow) Header() Widgetter

Header returns the current header of the row. This can be used in a ListBoxUpdateHeaderFunc to see if there is a header set already, and if so to update the state of it.

The function returns the following values:

  • widget (optional): current header, or NULL if none.

func (*ListBoxRow) Index

func (row *ListBoxRow) Index() int

Index gets the current index of the row in its ListBox container.

The function returns the following values:

  • gint: index of the row, or -1 if the row is not in a listbox.

func (*ListBoxRow) IsSelected

func (row *ListBoxRow) IsSelected() bool

IsSelected returns whether the child is currently selected in its ListBox container.

The function returns the following values:

  • ok: TRUE if row is selected.

func (*ListBoxRow) Selectable

func (row *ListBoxRow) Selectable() bool

Selectable gets the value of the ListBoxRow:selectable property for this row.

The function returns the following values:

  • ok: TRUE if the row is selectable.

func (*ListBoxRow) SetActivatable

func (row *ListBoxRow) SetActivatable(activatable bool)

SetActivatable: set the ListBoxRow:activatable property for this row.

The function takes the following parameters:

  • activatable: TRUE to mark the row as activatable.

func (*ListBoxRow) SetHeader

func (row *ListBoxRow) SetHeader(header Widgetter)

SetHeader sets the current header of the row. This is only allowed to be called from a ListBoxUpdateHeaderFunc. It will replace any existing header in the row, and be shown in front of the row in the listbox.

The function takes the following parameters:

  • header (optional): header, or NULL.

func (*ListBoxRow) SetSelectable

func (row *ListBoxRow) SetSelectable(selectable bool)

SetSelectable: set the ListBoxRow:selectable property for this row.

The function takes the following parameters:

  • selectable: TRUE to mark the row as selectable.

type ListBoxRowAccessible

type ListBoxRowAccessible struct {
	ContainerAccessible
	// contains filtered or unexported fields
}

type ListBoxRowAccessibleClass added in v0.0.5

type ListBoxRowAccessibleClass struct {
	// contains filtered or unexported fields
}

ListBoxRowAccessibleClass: instance of this type is always passed by reference.

func (*ListBoxRowAccessibleClass) ParentClass added in v0.0.5

type ListBoxRowAccessibleOverrides added in v0.0.5

type ListBoxRowAccessibleOverrides struct {
}

ListBoxRowAccessibleOverrides contains methods that are overridable.

type ListBoxRowClass added in v0.0.5

type ListBoxRowClass struct {
	// contains filtered or unexported fields
}

ListBoxRowClass: instance of this type is always passed by reference.

func (*ListBoxRowClass) ParentClass added in v0.0.5

func (l *ListBoxRowClass) ParentClass() *BinClass

ParentClass: parent class.

type ListBoxRowOverrides added in v0.0.5

type ListBoxRowOverrides struct {
	Activate func()
}

ListBoxRowOverrides contains methods that are overridable.

type ListBoxSortFunc

type ListBoxSortFunc func(row1, row2 *ListBoxRow) (gint int)

ListBoxSortFunc: compare two rows to determine which should be first.

type ListBoxUpdateHeaderFunc

type ListBoxUpdateHeaderFunc func(row, before *ListBoxRow)

ListBoxUpdateHeaderFunc: whenever row changes or which row is before row changes this is called, which lets you update the header on row. You may remove or set a new one via gtk_list_box_row_set_header() or just change the state of the current header widget.

type ListStore

type ListStore struct {
	*coreglib.Object

	Buildable
	TreeDragDest
	TreeDragSource
	TreeSortable
	// contains filtered or unexported fields
}

ListStore object is a list model for use with a TreeView widget. It implements the TreeModel interface, and consequentialy, can use all of the methods available there. It also implements the TreeSortable interface so it can be sorted by the view. Finally, it also implements the tree [drag and drop][gtk3-GtkTreeView-drag-and-drop] interfaces.

The ListStore can accept most GObject types as a column type, though it can’t accept all custom types. Internally, it will keep a copy of data passed in (such as a string or a boxed pointer). Columns that accept #GObjects are handled a little differently. The ListStore will keep a reference to the object instead of copying the value. As a result, if the object is modified, it is up to the application writer to call gtk_tree_model_row_changed() to emit the TreeModel::row_changed signal. This most commonly affects lists with Pixbufs stored.

An example for creating a simple list store:

<object class="GtkListStore">
  <columns>
    <column type="gchararray"/>
    <column type="gchararray"/>
    <column type="gint"/>
  </columns>
  <data>
    <row>
      <col id="0">John</col>
      <col id="1">Doe</col>
      <col id="2">25</col>
    </row>
    <row>
      <col id="0">Johan</col>
      <col id="1">Dahlin</col>
      <col id="2">50</col>
    </row>
  </data>
</object>.

func NewListStore

func NewListStore(types []coreglib.Type) *ListStore

NewListStore: non-vararg creation function. Used primarily by language bindings.

The function takes the following parameters:

  • types: array of #GType types for the columns, from first to last.

The function returns the following values:

  • listStore: new ListStore.

func (*ListStore) Append

func (listStore *ListStore) Append() *TreeIter

Append appends a new row to list_store. iter will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call gtk_list_store_set() or gtk_list_store_set_value().

The function returns the following values:

  • iter: unset TreeIter to set to the appended row.

func (*ListStore) Clear

func (listStore *ListStore) Clear()

Clear removes all rows from the list store.

func (*ListStore) Insert

func (listStore *ListStore) Insert(position int) *TreeIter

Insert creates a new row at position. iter will be changed to point to this new row. If position is -1 or is larger than the number of rows on the list, then the new row will be appended to the list. The row will be empty after this function is called. To fill in values, you need to call gtk_list_store_set() or gtk_list_store_set_value().

The function takes the following parameters:

  • position to insert the new row, or -1 for last.

The function returns the following values:

  • iter: unset TreeIter to set to the new row.

func (*ListStore) InsertAfter

func (listStore *ListStore) InsertAfter(sibling *TreeIter) *TreeIter

InsertAfter inserts a new row after sibling. If sibling is NULL, then the row will be prepended to the beginning of the list. iter will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call gtk_list_store_set() or gtk_list_store_set_value().

The function takes the following parameters:

  • sibling (optional): valid TreeIter, or NULL.

The function returns the following values:

  • iter: unset TreeIter to set to the new row.

func (*ListStore) InsertBefore

func (listStore *ListStore) InsertBefore(sibling *TreeIter) *TreeIter

InsertBefore inserts a new row before sibling. If sibling is NULL, then the row will be appended to the end of the list. iter will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call gtk_list_store_set() or gtk_list_store_set_value().

The function takes the following parameters:

  • sibling (optional): valid TreeIter, or NULL.

The function returns the following values:

  • iter: unset TreeIter to set to the new row.

func (*ListStore) InsertWithValuesv

func (listStore *ListStore) InsertWithValuesv(position int, columns []int, values []coreglib.Value) *TreeIter

InsertWithValuesv: variant of gtk_list_store_insert_with_values() which takes the columns and values as two arrays, instead of varargs. This function is mainly intended for language-bindings.

The function takes the following parameters:

  • position to insert the new row, or -1 for last.
  • columns: array of column numbers.
  • values: array of GValues.

The function returns the following values:

  • iter (optional): unset TreeIter to set to the new row, or NULL.

func (*ListStore) IterIsValid

func (listStore *ListStore) IterIsValid(iter *TreeIter) bool

IterIsValid: > This function is slow. Only use it for debugging and/or testing > purposes.

Checks if the given iter is a valid iter for this ListStore.

The function takes the following parameters:

  • iter: TreeIter.

The function returns the following values:

  • ok: TRUE if the iter is valid, FALSE if the iter is invalid.

func (*ListStore) MoveAfter

func (store *ListStore) MoveAfter(iter, position *TreeIter)

MoveAfter moves iter in store to the position after position. Note that this function only works with unsorted stores. If position is NULL, iter will be moved to the start of the list.

The function takes the following parameters:

  • iter: TreeIter.
  • position (optional) or NULL.

func (*ListStore) MoveBefore

func (store *ListStore) MoveBefore(iter, position *TreeIter)

MoveBefore moves iter in store to the position before position. Note that this function only works with unsorted stores. If position is NULL, iter will be moved to the end of the list.

The function takes the following parameters:

  • iter: TreeIter.
  • position (optional) or NULL.

func (*ListStore) Prepend

func (listStore *ListStore) Prepend() *TreeIter

Prepend prepends a new row to list_store. iter will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call gtk_list_store_set() or gtk_list_store_set_value().

The function returns the following values:

  • iter: unset TreeIter to set to the prepend row.

func (*ListStore) Remove

func (listStore *ListStore) Remove(iter *TreeIter) bool

Remove removes the given row from the list store. After being removed, iter is set to be the next valid row, or invalidated if it pointed to the last row in list_store.

The function takes the following parameters:

  • iter: valid TreeIter.

The function returns the following values:

  • ok: TRUE if iter is valid, FALSE if not.

func (*ListStore) Reorder

func (store *ListStore) Reorder(newOrder []int)

Reorder reorders store to follow the order indicated by new_order. Note that this function only works with unsorted stores.

The function takes the following parameters:

  • newOrder: array of integers mapping the new position of each child to its old position before the re-ordering, i.e. new_order[newpos] = oldpos. It must have exactly as many items as the list store’s length.

func (*ListStore) Set

func (listStore *ListStore) Set(iter *TreeIter, columns []int, values []coreglib.Value)

Set: variant of gtk_list_store_set_valist() which takes the columns and values as two arrays, instead of varargs. This function is mainly intended for language-bindings and in case the number of columns to change is not known until run-time.

The function takes the following parameters:

  • iter: valid TreeIter for the row being modified.
  • columns: array of column numbers.
  • values: array of GValues.

func (*ListStore) SetColumnTypes

func (listStore *ListStore) SetColumnTypes(types []coreglib.Type)

SetColumnTypes: this function is meant primarily for #GObjects that inherit from ListStore, and should only be used when constructing a new ListStore. It will not function after a row has been added, or a method on the TreeModel interface is called.

The function takes the following parameters:

  • types: array length n of #GTypes.

func (*ListStore) SetValue

func (listStore *ListStore) SetValue(iter *TreeIter, column int, value *coreglib.Value)

SetValue sets the data in the cell specified by iter and column. The type of value must be convertible to the type of the column.

The function takes the following parameters:

  • iter: valid TreeIter for the row being modified.
  • column number to modify.
  • value: new value for the cell.

func (*ListStore) Swap

func (store *ListStore) Swap(a, b *TreeIter)

Swap swaps a and b in store. Note that this function only works with unsorted stores.

The function takes the following parameters:

  • a: TreeIter.
  • b: another TreeIter.

type ListStoreClass added in v0.0.5

type ListStoreClass struct {
	// contains filtered or unexported fields
}

ListStoreClass: instance of this type is always passed by reference.

type ListStoreOverrides added in v0.0.5

type ListStoreOverrides struct {
}

ListStoreOverrides contains methods that are overridable.

type LockButton

type LockButton struct {
	Button
	// contains filtered or unexported fields
}

LockButton is a widget that can be used in control panels or preference dialogs to allow users to obtain and revoke authorizations needed to operate the controls. The required authorization is represented by a #GPermission object. Concrete implementations of #GPermission may use PolicyKit or some other authorization framework. To obtain a PolicyKit-based #GPermission, use polkit_permission_new().

If the user is not currently allowed to perform the action, but can obtain the permission, the widget looks like this:

! (lockbutton-locked.png)

and the user can click the button to request the permission. Depending on the platform, this may pop up an authentication dialog or ask the user to authenticate in some other way. Once the user has obtained the permission, the widget changes to this:

! (lockbutton-unlocked.png)

and the permission can be dropped again by clicking the button. If the user is not able to obtain the permission at all, the widget looks like this:

! (lockbutton-sorry.png)

If the user has the permission and cannot drop it, the button is hidden.

The text (and tooltips) that are shown in the various cases can be adjusted with the LockButton:text-lock, LockButton:text-unlock, LockButton:tooltip-lock, LockButton:tooltip-unlock and LockButton:tooltip-not-authorized properties.

func NewLockButton

func NewLockButton(permission gio.Permissioner) *LockButton

NewLockButton creates a new lock button which reflects the permission.

The function takes the following parameters:

  • permission (optional): #GPermission.

The function returns the following values:

  • lockButton: new LockButton.

func (*LockButton) Permission

func (button *LockButton) Permission() gio.Permissioner

Permission obtains the #GPermission object that controls button.

The function returns the following values:

  • permission of button.

func (*LockButton) SetPermission

func (button *LockButton) SetPermission(permission gio.Permissioner)

SetPermission sets the #GPermission object that controls button.

The function takes the following parameters:

  • permission (optional) object, or NULL.

type LockButtonAccessible

type LockButtonAccessible struct {
	ButtonAccessible
	// contains filtered or unexported fields
}

type LockButtonAccessibleClass added in v0.0.5

type LockButtonAccessibleClass struct {
	// contains filtered or unexported fields
}

LockButtonAccessibleClass: instance of this type is always passed by reference.

func (*LockButtonAccessibleClass) ParentClass added in v0.0.5

type LockButtonAccessibleOverrides added in v0.0.5

type LockButtonAccessibleOverrides struct {
}

LockButtonAccessibleOverrides contains methods that are overridable.

type LockButtonClass added in v0.0.5

type LockButtonClass struct {
	// contains filtered or unexported fields
}

LockButtonClass: instance of this type is always passed by reference.

func (*LockButtonClass) ParentClass added in v0.0.5

func (l *LockButtonClass) ParentClass() *ButtonClass

ParentClass: parent class.

type LockButtonOverrides added in v0.0.5

type LockButtonOverrides struct {
}

LockButtonOverrides contains methods that are overridable.

type Menu struct {
	MenuShell
	// contains filtered or unexported fields
}

Menu is a MenuShell that implements a drop down menu consisting of a list of MenuItem objects which can be navigated and activated by the user to perform application functions.

A Menu is most commonly dropped down by activating a MenuItem in a MenuBar or popped up by activating a MenuItem in another Menu.

A Menu can also be popped up by activating a ComboBox. Other composite widgets such as the Notebook can pop up a Menu as well.

Applications can display a Menu as a popup menu by calling the gtk_menu_popup() function. The example below shows how an application can pop up a menu when the 3rd mouse button is pressed.

Connecting the popup signal handler.

menu
├── arrow.top
├── <child>
┊
├── <child>
╰── arrow.bottom

The main CSS node of GtkMenu has name menu, and there are two subnodes with name arrow, for scrolling menu arrows. These subnodes get the .top and .bottom style classes.

func NewMenu

func NewMenu() *Menu

NewMenu creates a new Menu.

The function returns the following values:

  • menu: new Menu.

func NewMenuFromModel

func NewMenuFromModel(model gio.MenuModeller) *Menu

NewMenuFromModel creates a Menu and populates it with menu items and submenus according to model.

The created menu items are connected to actions found in the ApplicationWindow to which the menu belongs - typically by means of being attached to a widget (see gtk_menu_attach_to_widget()) that is contained within the ApplicationWindows widget hierarchy.

Actions can also be added using gtk_widget_insert_action_group() on the menu's attach widget or on any of its parent widgets.

The function takes the following parameters:

  • model: Model.

The function returns the following values:

  • menu: new Menu.
func (menu *Menu) AccelGroup() *AccelGroup

AccelGroup gets the AccelGroup which holds global accelerators for the menu. See gtk_menu_set_accel_group().

The function returns the following values:

  • accelGroup associated with the menu.
func (menu *Menu) AccelPath() string

AccelPath retrieves the accelerator path set on the menu.

The function returns the following values:

  • utf8: accelerator path set on the menu.
func (menu *Menu) Active() Widgetter

Active returns the selected menu item from the menu. This is used by the ComboBox.

The function returns the following values:

  • widget that was last selected in the menu. If a selection has not yet been made, the first menu item is selected.
func (menu *Menu) Attach(child Widgetter, leftAttach, rightAttach, topAttach, bottomAttach uint)

Attach adds a new MenuItem to a (table) menu. The number of “cells” that an item will occupy is specified by left_attach, right_attach, top_attach and bottom_attach. These each represent the leftmost, rightmost, uppermost and lower column and row numbers of the table. (Columns and rows are indexed from zero).

Note that this function is not related to gtk_menu_detach().

The function takes the following parameters:

  • child: MenuItem.
  • leftAttach: column number to attach the left side of the item to.
  • rightAttach: column number to attach the right side of the item to.
  • topAttach: row number to attach the top of the item to.
  • bottomAttach: row number to attach the bottom of the item to.
func (menu *Menu) AttachWidget() Widgetter

AttachWidget returns the Widget that the menu is attached to.

The function returns the following values:

  • widget that the menu is attached to.
func (menu *Menu) ConnectMoveScroll(f func(scrollType ScrollType)) coreglib.SignalHandle
func (menu *Menu) ConnectPoppedUp(f func(flippedRect, finalRect unsafe.Pointer, flippedX, flippedY bool)) coreglib.SignalHandle

ConnectPoppedUp is emitted when the position of menu is finalized after being popped up using gtk_menu_popup_at_rect (), gtk_menu_popup_at_widget (), or gtk_menu_popup_at_pointer ().

menu might be flipped over the anchor rectangle in order to keep it on-screen, in which case flipped_x and flipped_y will be set to TRUE accordingly.

flipped_rect is the ideal position of menu after any possible flipping, but before any possible sliding. final_rect is flipped_rect, but possibly translated in the case that flipping is still ineffective in keeping menu on-screen.

! (popup-slide.png)

The blue menu is menu's ideal position, the green menu is flipped_rect, and the red menu is final_rect.

See gtk_menu_popup_at_rect (), gtk_menu_popup_at_widget (), gtk_menu_popup_at_pointer (), Menu:anchor-hints, Menu:rect-anchor-dx, Menu:rect-anchor-dy, and Menu:menu-type-hint.

func (menu *Menu) Detach()

Detach detaches the menu from the widget to which it had been attached. This function will call the callback function, detacher, provided when the gtk_menu_attach_to_widget() function was called.

func (menu *Menu) Monitor() int

Monitor retrieves the number of the monitor on which to show the menu.

The function returns the following values:

  • gint: number of the monitor on which the menu should be popped up or -1, if no monitor has been set.
func (menu *Menu) PlaceOnMonitor(monitor *gdk.Monitor)

PlaceOnMonitor places menu on the given monitor.

The function takes the following parameters:

  • monitor to place the menu on.
func (menu *Menu) Popdown()

Popdown removes the menu from the screen.

func (menu *Menu) PopupAtPointer(triggerEvent *gdk.Event)

PopupAtPointer displays menu and makes it available for selection.

See gtk_menu_popup_at_widget () to pop up a menu at a widget. gtk_menu_popup_at_rect () also allows you to position a menu at an arbitrary rectangle.

menu will be positioned at the pointer associated with trigger_event.

Properties that influence the behaviour of this function are Menu:anchor-hints, Menu:rect-anchor-dx, Menu:rect-anchor-dy, and Menu:menu-type-hint. Connect to the Menu::popped-up signal to find out how it was actually positioned.

The function takes the following parameters:

  • triggerEvent (optional) that initiated this request or NULL if it's the current event.
func (menu *Menu) PopupAtRect(rectWindow gdk.Windower, rect *gdk.Rectangle, rectAnchor, menuAnchor gdk.Gravity, triggerEvent *gdk.Event)

PopupAtRect displays menu and makes it available for selection.

See gtk_menu_popup_at_widget () and gtk_menu_popup_at_pointer (), which handle more common cases for popping up menus.

menu will be positioned at rect, aligning their anchor points. rect is relative to the top-left corner of rect_window. rect_anchor and menu_anchor determine anchor points on rect and menu to pin together. menu can optionally be offset by Menu:rect-anchor-dx and Menu:rect-anchor-dy.

Anchors should be specified under the assumption that the text direction is left-to-right; they will be flipped horizontally automatically if the text direction is right-to-left.

Other properties that influence the behaviour of this function are Menu:anchor-hints and Menu:menu-type-hint. Connect to the Menu::popped-up signal to find out how it was actually positioned.

The function takes the following parameters:

  • rectWindow rect is relative to.
  • rect to align menu with.
  • rectAnchor: point on rect to align with menu's anchor point.
  • menuAnchor: point on menu to align with rect's anchor point.
  • triggerEvent (optional) that initiated this request or NULL if it's the current event.
func (menu *Menu) PopupAtWidget(widget Widgetter, widgetAnchor, menuAnchor gdk.Gravity, triggerEvent *gdk.Event)

PopupAtWidget displays menu and makes it available for selection.

See gtk_menu_popup_at_pointer () to pop up a menu at the master pointer. gtk_menu_popup_at_rect () also allows you to position a menu at an arbitrary rectangle.

! (popup-anchors.png)

menu will be positioned at widget, aligning their anchor points. widget_anchor and menu_anchor determine anchor points on widget and menu to pin together. menu can optionally be offset by Menu:rect-anchor-dx and Menu:rect-anchor-dy.

Anchors should be specified under the assumption that the text direction is left-to-right; they will be flipped horizontally automatically if the text direction is right-to-left.

Other properties that influence the behaviour of this function are Menu:anchor-hints and Menu:menu-type-hint. Connect to the Menu::popped-up signal to find out how it was actually positioned.

The function takes the following parameters:

  • widget to align menu with.
  • widgetAnchor: point on widget to align with menu's anchor point.
  • menuAnchor: point on menu to align with widget's anchor point.
  • triggerEvent (optional) that initiated this request or NULL if it's the current event.
func (menu *Menu) ReorderChild(child Widgetter, position int)

ReorderChild moves child to a new position in the list of menu children.

The function takes the following parameters:

  • child to move.
  • position: new position to place child. Positions are numbered from 0 to n
  • 1.
func (menu *Menu) Reposition()

Reposition repositions the menu according to its position function.

func (menu *Menu) ReserveToggleSize() bool

ReserveToggleSize returns whether the menu reserves space for toggles and icons, regardless of their actual presence.

The function returns the following values:

  • ok: whether the menu reserves toggle space.
func (menu *Menu) SetAccelGroup(accelGroup *AccelGroup)

SetAccelGroup: set the AccelGroup which holds global accelerators for the menu. This accelerator group needs to also be added to all windows that this menu is being used in with gtk_window_add_accel_group(), in order for those windows to support all the accelerators contained in this group.

The function takes the following parameters:

  • accelGroup (optional) to be associated with the menu.
func (menu *Menu) SetAccelPath(accelPath string)

SetAccelPath sets an accelerator path for this menu from which accelerator paths for its immediate children, its menu items, can be constructed. The main purpose of this function is to spare the programmer the inconvenience of having to call gtk_menu_item_set_accel_path() on each menu item that should support runtime user changable accelerators. Instead, by just calling gtk_menu_set_accel_path() on their parent, each menu item of this menu, that contains a label describing its purpose, automatically gets an accel path assigned.

For example, a menu containing menu items “New” and “Exit”, will, after gtk_menu_set_accel_path (menu, "<Gnumeric-Sheet>/File"); has been called, assign its items the accel paths: "<Gnumeric-Sheet>/File/New" and "<Gnumeric-Sheet>/File/Exit".

Assigning accel paths to menu items then enables the user to change their accelerators at runtime. More details about accelerator paths and their default setups can be found at gtk_accel_map_add_entry().

Note that accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().

The function takes the following parameters:

  • accelPath (optional): valid accelerator path, or NULL to unset the path.
func (menu *Menu) SetActive(index uint)

SetActive selects the specified menu item within the menu. This is used by the ComboBox and should not be used by anyone else.

The function takes the following parameters:

  • index of the menu item to select. Index values are from 0 to n-1.
func (menu *Menu) SetMonitor(monitorNum int)

SetMonitor informs GTK+ on which monitor a menu should be popped up. See gdk_monitor_get_geometry().

This function should be called from a MenuPositionFunc if the menu should not appear on the same monitor as the pointer. This information can’t be reliably inferred from the coordinates returned by a MenuPositionFunc, since, for very long menus, these coordinates may extend beyond the monitor boundaries or even the screen boundaries.

The function takes the following parameters:

  • monitorNum: number of the monitor on which the menu should be popped up.
func (menu *Menu) SetReserveToggleSize(reserveToggleSize bool)

SetReserveToggleSize sets whether the menu should reserve space for drawing toggles or icons, regardless of their actual presence.

The function takes the following parameters:

  • reserveToggleSize: whether to reserve size for toggles.
func (menu *Menu) SetScreen(screen *gdk.Screen)

SetScreen sets the Screen on which the menu will be displayed.

The function takes the following parameters:

  • screen (optional) or NULL if the screen should be determined by the widget the menu is attached to.
func (menu *Menu) SetTearoffState(tornOff bool)

SetTearoffState changes the tearoff state of the menu. A menu is normally displayed as drop down menu which persists as long as the menu is active. It can also be displayed as a tearoff menu which persists until it is closed or reattached.

Deprecated: since version 3.10.

The function takes the following parameters:

  • tornOff: if TRUE, menu is displayed as a tearoff menu.
func (menu *Menu) SetTitle(title string)

SetTitle sets the title string for the menu.

The title is displayed when the menu is shown as a tearoff menu. If title is NULL, the menu will see if it is attached to a parent menu item, and if so it will try to use the same text as that menu item’s label.

Deprecated: since version 3.10.

The function takes the following parameters:

  • title (optional): string containing the title for the menu, or NULL to inherit the title of the parent menu item, if any.
func (menu *Menu) TearoffState() bool

TearoffState returns whether the menu is torn off. See gtk_menu_set_tearoff_state().

Deprecated: since version 3.10.

The function returns the following values:

  • ok: TRUE if the menu is currently torn off.
func (menu *Menu) Title() string

Title returns the title of the menu. See gtk_menu_set_title().

Deprecated: since version 3.10.

The function returns the following values:

  • utf8: title of the menu, or NULL if the menu has no title set on it. This string is owned by GTK+ and should not be modified or freed.
type MenuAccessible struct {
	MenuShellAccessible
	// contains filtered or unexported fields
}
type MenuAccessibleClass struct {
	// contains filtered or unexported fields
}

MenuAccessibleClass: instance of this type is always passed by reference.

type MenuAccessibleOverrides struct {
}

MenuAccessibleOverrides contains methods that are overridable.

type MenuBar struct {
	MenuShell
	// contains filtered or unexported fields
}

MenuBar is a subclass of MenuShell which contains one or more MenuItems. The result is a standard menu bar which can hold many menu items.

CSS nodes

GtkMenuBar has a single CSS node with name menubar.

func NewMenuBar

func NewMenuBar() *MenuBar

NewMenuBar creates a new MenuBar.

The function returns the following values:

  • menuBar: new menu bar, as a Widget.

func NewMenuBarFromModel

func NewMenuBarFromModel(model gio.MenuModeller) *MenuBar

NewMenuBarFromModel creates a new MenuBar and populates it with menu items and submenus according to model.

The created menu items are connected to actions found in the ApplicationWindow to which the menu bar belongs - typically by means of being contained within the ApplicationWindows widget hierarchy.

The function takes the following parameters:

  • model: Model.

The function returns the following values:

  • menuBar: new MenuBar.
func (menubar *MenuBar) ChildPackDirection() PackDirection

ChildPackDirection retrieves the current child pack direction of the menubar. See gtk_menu_bar_set_child_pack_direction().

The function returns the following values:

  • packDirection: child pack direction.
func (menubar *MenuBar) PackDirection() PackDirection

PackDirection retrieves the current pack direction of the menubar. See gtk_menu_bar_set_pack_direction().

The function returns the following values:

  • packDirection: pack direction.
func (menubar *MenuBar) SetChildPackDirection(childPackDir PackDirection)

SetChildPackDirection sets how widgets should be packed inside the children of a menubar.

The function takes the following parameters:

  • childPackDir: new PackDirection.
func (menubar *MenuBar) SetPackDirection(packDir PackDirection)

SetPackDirection sets how items should be packed inside a menubar.

The function takes the following parameters:

  • packDir: new PackDirection.
type MenuBarClass struct {
	// contains filtered or unexported fields
}

MenuBarClass: instance of this type is always passed by reference.

func (m *MenuBarClass) ParentClass() *MenuShellClass
type MenuBarOverrides struct {
}

MenuBarOverrides contains methods that are overridable.

type MenuButton struct {
	ToggleButton
	// contains filtered or unexported fields
}

MenuButton widget is used to display a popup when clicked on. This popup can be provided either as a Menu, a Popover or an abstract Model.

The MenuButton widget can hold any valid child widget. That is, it can hold almost any other standard Widget. The most commonly used child is Image. If no widget is explicitely added to the MenuButton, a Image is automatically created, using an arrow image oriented according to MenuButton:direction or the generic “open-menu-symbolic” icon if the direction is not set.

The positioning of the popup is determined by the MenuButton:direction property of the menu button.

For menus, the Widget:halign and Widget:valign properties of the menu are also taken into account. For example, when the direction is GTK_ARROW_DOWN and the horizontal alignment is GTK_ALIGN_START, the menu will be positioned below the button, with the starting edge (depending on the text direction) of the menu aligned with the starting edge of the button. If there is not enough space below the button, the menu is popped up above the button instead. If the alignment would move part of the menu offscreen, it is “pushed in”.

Direction = Down

- halign = start

! (down-start.png)

- halign = center

! (down-center.png)

- halign = end

! (down-end.png)

Direction = Up

- halign = start

! (up-start.png)

- halign = center

! (up-center.png)

- halign = end

! (up-end.png)

Direction = Left

- valign = start

! (left-start.png)

- valign = center

! (left-center.png)

- valign = end

! (left-end.png)

Direction = Right

- valign = start

! (right-start.png)

- valign = center

! (right-center.png)

- valign = end

! (right-end.png)

CSS nodes

GtkMenuButton has a single CSS node with name button. To differentiate it from a plain Button, it gets the .popup style class.

func NewMenuButton

func NewMenuButton() *MenuButton

NewMenuButton creates a new MenuButton widget with downwards-pointing arrow as the only child. You can replace the child widget with another Widget should you wish to.

The function returns the following values:

  • menuButton: newly created MenuButton widget.
func (menuButton *MenuButton) AlignWidget() Widgetter

AlignWidget returns the parent Widget to use to line up with menu.

The function returns the following values:

  • widget (optional) value or NULL.
func (menuButton *MenuButton) Direction() ArrowType

Direction returns the direction the popup will be pointing at when popped up.

The function returns the following values:

  • arrowType: ArrowType value.
func (menuButton *MenuButton) MenuModel() gio.MenuModeller

MenuModel returns the Model used to generate the popup.

The function returns the following values:

  • menuModel (optional) or NULL.
func (menuButton *MenuButton) Popover() *Popover

Popover returns the Popover that pops out of the button. If the button is not using a Popover, this function returns NULL.

The function returns the following values:

  • popover (optional) or NULL.
func (menuButton *MenuButton) Popup() *Menu

Popup returns the Menu that pops out of the button. If the button does not use a Menu, this function returns NULL.

The function returns the following values:

  • menu (optional) or NULL.
func (menuButton *MenuButton) SetAlignWidget(alignWidget Widgetter)

SetAlignWidget sets the Widget to use to line the menu with when popped up. Note that the align_widget must contain the MenuButton itself.

Setting it to NULL means that the menu will be aligned with the button itself.

Note that this property is only used with menus currently, and not for popovers.

The function takes the following parameters:

  • alignWidget (optional): Widget.
func (menuButton *MenuButton) SetDirection(direction ArrowType)

SetDirection sets the direction in which the popup will be popped up, as well as changing the arrow’s direction. The child will not be changed to an arrow if it was customized.

If the does not fit in the available space in the given direction, GTK+ will its best to keep it inside the screen and fully visible.

If you pass GTK_ARROW_NONE for a direction, the popup will behave as if you passed GTK_ARROW_DOWN (although you won’t see any arrows).

The function takes the following parameters:

  • direction: ArrowType.
func (menuButton *MenuButton) SetMenuModel(menuModel gio.MenuModeller)

SetMenuModel sets the Model from which the popup will be constructed, or NULL to dissociate any existing menu model and disable the button.

Depending on the value of MenuButton:use-popover, either a Menu will be created with gtk_menu_new_from_model(), or a Popover with gtk_popover_new_from_model(). In either case, actions will be connected as documented for these functions.

If MenuButton:popup or MenuButton:popover are already set, those widgets are dissociated from the menu_button, and those properties are set to NULL.

The function takes the following parameters:

  • menuModel (optional) or NULL to unset and disable the button.
func (menuButton *MenuButton) SetPopover(popover Widgetter)

SetPopover sets the Popover that will be popped up when the menu_button is clicked, or NULL to dissociate any existing popover and disable the button.

If MenuButton:menu-model or MenuButton:popup are set, those objects are dissociated from the menu_button, and those properties are set to NULL.

The function takes the following parameters:

  • popover (optional) or NULL to unset and disable the button.
func (menuButton *MenuButton) SetPopup(menu Widgetter)

SetPopup sets the Menu that will be popped up when the menu_button is clicked, or NULL to dissociate any existing menu and disable the button.

If MenuButton:menu-model or MenuButton:popover are set, those objects are dissociated from the menu_button, and those properties are set to NULL.

The function takes the following parameters:

  • menu (optional) or NULL to unset and disable the button.
func (menuButton *MenuButton) SetUsePopover(usePopover bool)

SetUsePopover sets whether to construct a Popover instead of Menu when gtk_menu_button_set_menu_model() is called. Note that this property is only consulted when a new menu model is set.

The function takes the following parameters:

  • usePopover: TRUE to construct a popover from the menu model.
func (menuButton *MenuButton) UsePopover() bool

UsePopover returns whether a Popover or a Menu will be constructed from the menu model.

The function returns the following values:

  • ok: TRUE if using a Popover.
type MenuButtonAccessible struct {
	ToggleButtonAccessible
	// contains filtered or unexported fields
}
type MenuButtonAccessibleClass struct {
	// contains filtered or unexported fields
}

MenuButtonAccessibleClass: instance of this type is always passed by reference.

type MenuButtonAccessibleOverrides struct {
}

MenuButtonAccessibleOverrides contains methods that are overridable.

type MenuButtonClass struct {
	// contains filtered or unexported fields
}

MenuButtonClass: instance of this type is always passed by reference.

func (m *MenuButtonClass) ParentClass() *ToggleButtonClass
type MenuButtonOverrides struct {
}

MenuButtonOverrides contains methods that are overridable.

type MenuClass struct {
	// contains filtered or unexported fields
}

MenuClass: instance of this type is always passed by reference.

func (m *MenuClass) ParentClass() *MenuShellClass
type MenuDirectionType C.gint

MenuDirectionType: enumeration representing directional movements within a menu.

const (
	// MenuDirParent: to the parent menu shell.
	MenuDirParent MenuDirectionType = iota
	// MenuDirChild: to the submenu, if any, associated with the item.
	MenuDirChild
	// MenuDirNext: to the next menu item.
	MenuDirNext
	// MenuDirPrev: to the previous menu item.
	MenuDirPrev
)
func (m MenuDirectionType) String() string

String returns the name in string for MenuDirectionType.

type MenuItem struct {
	Bin

	*coreglib.Object
	Actionable
	Activatable
	// contains filtered or unexported fields
}

MenuItem widget and the derived widgets are the only valid children for menus. Their function is to correctly handle highlighting, alignment, events and submenus.

As a GtkMenuItem derives from Bin it can hold any valid child widget, although only a few are really useful.

By default, a GtkMenuItem sets a AccelLabel as its child. GtkMenuItem has direct functions to set the label and its mnemonic. For more advanced label settings, you can fetch the child widget from the GtkBin.

An example for setting markup and accelerator on a MenuItem:

menuitem
├── <child>
╰── [arrow.right]

GtkMenuItem has a single CSS node with name menuitem. If the menuitem has a submenu, it gets another CSS node with name arrow, which has the .left or .right style class.

func NewMenuItem

func NewMenuItem() *MenuItem

NewMenuItem creates a new MenuItem.

The function returns the following values:

  • menuItem: newly created MenuItem.

func NewMenuItemWithLabel

func NewMenuItemWithLabel(label string) *MenuItem

NewMenuItemWithLabel creates a new MenuItem whose child is a Label.

The function takes the following parameters:

  • label: text for the label.

The function returns the following values:

  • menuItem: newly created MenuItem.

func NewMenuItemWithMnemonic

func NewMenuItemWithMnemonic(label string) *MenuItem

NewMenuItemWithMnemonic creates a new MenuItem containing a label.

The label will be created using gtk_label_new_with_mnemonic(), so underscores in label indicate the mnemonic for the menu item.

The function takes the following parameters:

  • label: text of the button, with an underscore in front of the mnemonic character.

The function returns the following values:

  • menuItem: new MenuItem.
func (menuItem *MenuItem) AccelPath() string

AccelPath: retrieve the accelerator path that was previously set on menu_item.

See gtk_menu_item_set_accel_path() for details.

The function returns the following values:

  • utf8 (optional): accelerator path corresponding to this menu item’s functionality, or NULL if not set.
func (menuItem *MenuItem) Activate()

Activate emits the MenuItem::activate signal on the given item.

func (menuItem *MenuItem) ConnectActivate(f func()) coreglib.SignalHandle

ConnectActivate is emitted when the item is activated.

func (menuItem *MenuItem) ConnectActivateItem(f func()) coreglib.SignalHandle

ConnectActivateItem is emitted when the item is activated, but also if the menu item has a submenu. For normal applications, the relevant signal is MenuItem::activate.

func (menuItem *MenuItem) ConnectDeselect(f func()) coreglib.SignalHandle
func (menuItem *MenuItem) ConnectSelect(f func()) coreglib.SignalHandle
func (menuItem *MenuItem) ConnectToggleSizeAllocate(f func(object int)) coreglib.SignalHandle
func (menuItem *MenuItem) ConnectToggleSizeRequest(f func(object unsafe.Pointer)) coreglib.SignalHandle
func (menuItem *MenuItem) Deselect()

Deselect emits the MenuItem::deselect signal on the given item.

func (menuItem *MenuItem) Label() string

Label sets text on the menu_item label.

The function returns the following values:

  • utf8: text in the menu_item label. This is the internal string used by the label, and must not be modified.
func (menuItem *MenuItem) ReserveIndicator() bool

ReserveIndicator returns whether the menu_item reserves space for the submenu indicator, regardless if it has a submenu or not.

The function returns the following values:

  • ok: TRUE if menu_item always reserves space for the submenu indicator.
func (menuItem *MenuItem) RightJustified() bool

RightJustified gets whether the menu item appears justified at the right side of the menu bar.

Deprecated: See gtk_menu_item_set_right_justified().

The function returns the following values:

  • ok: TRUE if the menu item will appear at the far right if added to a menu bar.
func (menuItem *MenuItem) Select()

Select emits the MenuItem::select signal on the given item.

func (menuItem *MenuItem) SetAccelPath(accelPath string)

SetAccelPath: set the accelerator path on menu_item, through which runtime changes of the menu item’s accelerator caused by the user can be identified and saved to persistent storage (see gtk_accel_map_save() on this). To set up a default accelerator for this menu item, call gtk_accel_map_add_entry() with the same accel_path. See also gtk_accel_map_add_entry() on the specifics of accelerator paths, and gtk_menu_set_accel_path() for a more convenient variant of this function.

This function is basically a convenience wrapper that handles calling gtk_widget_set_accel_path() with the appropriate accelerator group for the menu item.

Note that you do need to set an accelerator on the parent menu with gtk_menu_set_accel_group() for this to work.

Note that accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().

The function takes the following parameters:

  • accelPath (optional): accelerator path, corresponding to this menu item’s functionality, or NULL to unset the current path.
func (menuItem *MenuItem) SetLabel(label string)

SetLabel sets text on the menu_item label.

The function takes the following parameters:

  • label: text you want to set.
func (menuItem *MenuItem) SetReserveIndicator(reserve bool)

SetReserveIndicator sets whether the menu_item should reserve space for the submenu indicator, regardless if it actually has a submenu or not.

There should be little need for applications to call this functions.

The function takes the following parameters:

  • reserve: new value.
func (menuItem *MenuItem) SetRightJustified(rightJustified bool)

SetRightJustified sets whether the menu item appears justified at the right side of a menu bar. This was traditionally done for “Help” menu items, but is now considered a bad idea. (If the widget layout is reversed for a right-to-left language like Hebrew or Arabic, right-justified-menu-items appear at the left.)

Deprecated: If you insist on using it, use gtk_widget_set_hexpand() and gtk_widget_set_halign().

The function takes the following parameters:

  • rightJustified: if TRUE the menu item will appear at the far right if added to a menu bar.
func (menuItem *MenuItem) SetSubmenu(submenu *Menu)

SetSubmenu sets or replaces the menu item’s submenu, or removes it when a NULL submenu is passed.

The function takes the following parameters:

  • submenu (optional): submenu, or NULL.
func (menuItem *MenuItem) SetUseUnderline(setting bool)

SetUseUnderline: if true, an underline in the text indicates the next character should be used for the mnemonic accelerator key.

The function takes the following parameters:

  • setting: TRUE if underlines in the text indicate mnemonics.
func (menuItem *MenuItem) Submenu() Widgetter

Submenu gets the submenu underneath this menu item, if any. See gtk_menu_item_set_submenu().

The function returns the following values:

  • widget (optional): submenu for this menu item, or NULL if none.
func (menuItem *MenuItem) ToggleSizeAllocate(allocation int)

ToggleSizeAllocate emits the MenuItem::toggle-size-allocate signal on the given item.

The function takes the following parameters:

  • allocation to use as signal data.
func (menuItem *MenuItem) UseUnderline() bool

UseUnderline checks if an underline in the text indicates the next character should be used for the mnemonic accelerator key.

The function returns the following values:

  • ok: TRUE if an embedded underline in the label indicates the mnemonic accelerator key.
type MenuItemAccessible struct {
	ContainerAccessible

	*coreglib.Object
	atk.Action
	atk.Selection
	// contains filtered or unexported fields
}
type MenuItemAccessibleClass struct {
	// contains filtered or unexported fields
}

MenuItemAccessibleClass: instance of this type is always passed by reference.

type MenuItemAccessibleOverrides struct {
}

MenuItemAccessibleOverrides contains methods that are overridable.

type MenuItemClass struct {
	// contains filtered or unexported fields
}

MenuItemClass: instance of this type is always passed by reference.

func (m *MenuItemClass) ParentClass() *BinClass

ParentClass: parent class.

type MenuItemOverrides struct {
	// Activate emits the MenuItem::activate signal on the given item.
	Activate     func()
	ActivateItem func()
	// Deselect emits the MenuItem::deselect signal on the given item.
	Deselect func()
	// Label sets text on the menu_item label.
	//
	// The function returns the following values:
	//
	//   - utf8: text in the menu_item label. This is the internal string used
	//     by the label, and must not be modified.
	//
	Label func() string
	// Select emits the MenuItem::select signal on the given item.
	Select func()
	// SetLabel sets text on the menu_item label.
	//
	// The function takes the following parameters:
	//
	//   - label: text you want to set.
	//
	SetLabel func(label string)
	// ToggleSizeAllocate emits the MenuItem::toggle-size-allocate signal on the
	// given item.
	//
	// The function takes the following parameters:
	//
	//   - allocation to use as signal data.
	//
	ToggleSizeAllocate func(allocation int)
}

MenuItemOverrides contains methods that are overridable.

type MenuOverrides struct {
}

MenuOverrides contains methods that are overridable.

type MenuShell struct {
	Container
	// contains filtered or unexported fields
}

MenuShell is the abstract base class used to derive the Menu and MenuBar subclasses.

A MenuShell is a container of MenuItem objects arranged in a list which can be navigated, selected, and activated by the user to perform application functions. A MenuItem can have a submenu associated with it, allowing for nested hierarchical menus.

Terminology

A menu item can be “selected”, this means that it is displayed in the prelight state, and if it has a submenu, that submenu will be popped up.

A menu is “active” when it is visible onscreen and the user is selecting from it. A menubar is not active until the user clicks on one of its menuitems. When a menu is active, passing the mouse over a submenu will pop it up.

There is also is a concept of the current menu and a current menu item. The current menu item is the selected menu item that is furthest down in the hierarchy. (Every active menu shell does not necessarily contain a selected menu item, but if it does, then the parent menu shell must also contain a selected menu item.) The current menu is the menu that contains the current menu item. It will always have a GTK grab and receive all key presses.

func BaseMenuShell

func BaseMenuShell(obj MenuSheller) *MenuShell

BaseMenuShell returns the underlying base object.

func (menuShell *MenuShell) ActivateItem(menuItem Widgetter, forceDeactivate bool)

ActivateItem activates the menu item within the menu shell.

The function takes the following parameters:

  • menuItem to activate.
  • forceDeactivate: if TRUE, force the deactivation of the menu shell after the menu item is activated.
func (menuShell *MenuShell) Append(child *MenuItem)

Append adds a new MenuItem to the end of the menu shell's item list.

The function takes the following parameters:

  • child to add.
func (menuShell *MenuShell) BindModel(model gio.MenuModeller, actionNamespace string, withSeparators bool)

BindModel establishes a binding between a MenuShell and a Model.

The contents of shell are removed and then refilled with menu items according to model. When model changes, shell is updated. Calling this function twice on shell with different model will cause the first binding to be replaced with a binding to the new model. If model is NULL then any previous binding is undone and all children are removed.

with_separators determines if toplevel items (eg: sections) have separators inserted between them. This is typically desired for menus but doesn’t make sense for menubars.

If action_namespace is non-NULL then the effect is as if all actions mentioned in the model have their names prefixed with the namespace, plus a dot. For example, if the action “quit” is mentioned and action_namespace is “app” then the effective action name is “app.quit”.

This function uses Actionable to define the action name and target values on the created menu items. If you want to use an action group other than “app” and “win”, or if you want to use a MenuShell outside of a ApplicationWindow, then you will need to attach your own action group to the widget hierarchy using gtk_widget_insert_action_group(). As an example, if you created a group with a “quit” action and inserted it with the name “mygroup” then you would use the action name “mygroup.quit” in your Model.

For most cases you are probably better off using gtk_menu_new_from_model() or gtk_menu_bar_new_from_model() or just directly passing the Model to gtk_application_set_app_menu() or gtk_application_set_menubar().

The function takes the following parameters:

  • model (optional) to bind to or NULL to remove binding.
  • actionNamespace (optional): namespace for actions in model.
  • withSeparators: TRUE if toplevel items in shell should have separators between them.
func (menuShell *MenuShell) Cancel()

Cancel cancels the selection within the menu shell.

func (menuShell *MenuShell) ConnectActivateCurrent(f func(forceHide bool)) coreglib.SignalHandle

ConnectActivateCurrent: action signal that activates the current menu item within the menu shell.

func (menuShell *MenuShell) ConnectCancel(f func()) coreglib.SignalHandle

ConnectCancel: action signal which cancels the selection within the menu shell. Causes the MenuShell::selection-done signal to be emitted.

func (menuShell *MenuShell) ConnectCycleFocus(f func(direction DirectionType)) coreglib.SignalHandle

ConnectCycleFocus: keybinding signal which moves the focus in the given direction.

func (menuShell *MenuShell) ConnectDeactivate(f func()) coreglib.SignalHandle

ConnectDeactivate: this signal is emitted when a menu shell is deactivated.

func (menuShell *MenuShell) ConnectInsert(f func(child Widgetter, position int)) coreglib.SignalHandle

ConnectInsert signal is emitted when a new MenuItem is added to a MenuShell. A separate signal is used instead of GtkContainer::add because of the need for an additional position parameter.

The inverse of this signal is the GtkContainer::removed signal.

func (menuShell *MenuShell) ConnectMoveCurrent(f func(direction MenuDirectionType)) coreglib.SignalHandle

ConnectMoveCurrent: keybinding signal which moves the current menu item in the direction specified by direction.

func (menuShell *MenuShell) ConnectMoveSelected(f func(distance int) (ok bool)) coreglib.SignalHandle

ConnectMoveSelected signal is emitted to move the selection to another item.

func (menuShell *MenuShell) ConnectSelectionDone(f func()) coreglib.SignalHandle

ConnectSelectionDone: this signal is emitted when a selection has been completed within a menu shell.

func (menuShell *MenuShell) Deactivate()

Deactivate deactivates the menu shell.

Typically this results in the menu shell being erased from the screen.

func (menuShell *MenuShell) Deselect()

Deselect deselects the currently selected item from the menu shell, if any.

func (menuShell *MenuShell) Insert(child Widgetter, position int)

Insert adds a new MenuItem to the menu shell’s item list at the position indicated by position.

The function takes the following parameters:

  • child to add.
  • position in the item list where child is added. Positions are numbered from 0 to n-1.
func (menuShell *MenuShell) ParentShell() Widgetter

ParentShell gets the parent menu shell.

The parent menu shell of a submenu is the Menu or MenuBar from which it was opened up.

The function returns the following values:

  • widget: parent MenuShell.
func (menuShell *MenuShell) Prepend(child Widgetter)

Prepend adds a new MenuItem to the beginning of the menu shell's item list.

The function takes the following parameters:

  • child to add.
func (menuShell *MenuShell) SelectFirst(searchSensitive bool)

SelectFirst: select the first visible or selectable child of the menu shell; don’t select tearoff items unless the only item is a tearoff item.

The function takes the following parameters:

  • searchSensitive: if TRUE, search for the first selectable menu item, otherwise select nothing if the first item isn’t sensitive. This should be FALSE if the menu is being popped up initially.
func (menuShell *MenuShell) SelectItem(menuItem Widgetter)

SelectItem selects the menu item from the menu shell.

The function takes the following parameters:

  • menuItem to select.
func (menuShell *MenuShell) SelectedItem() Widgetter

SelectedItem gets the currently selected item.

The function returns the following values:

  • widget: currently selected item.
func (menuShell *MenuShell) SetTakeFocus(takeFocus bool)

SetTakeFocus: if take_focus is TRUE (the default) the menu shell will take the keyboard focus so that it will receive all keyboard events which is needed to enable keyboard navigation in menus.

Setting take_focus to FALSE is useful only for special applications like virtual keyboard implementations which should not take keyboard focus.

The take_focus state of a menu or menu bar is automatically propagated to submenus whenever a submenu is popped up, so you don’t have to worry about recursively setting it for your entire menu hierarchy. Only when programmatically picking a submenu and popping it up manually, the take_focus property of the submenu needs to be set explicitly.

Note that setting it to FALSE has side-effects:

If the focus is in some other app, it keeps the focus and keynav in the menu doesn’t work. Consequently, keynav on the menu will only work if the focus is on some toplevel owned by the onscreen keyboard.

To avoid confusing the user, menus with take_focus set to FALSE should not display mnemonics or accelerators, since it cannot be guaranteed that they will work.

See also gdk_keyboard_grab().

The function takes the following parameters:

  • takeFocus: TRUE if the menu shell should take the keyboard focus on popup.
func (menuShell *MenuShell) TakeFocus() bool

TakeFocus returns TRUE if the menu shell will take the keyboard focus on popup.

The function returns the following values:

  • ok: TRUE if the menu shell will take the keyboard focus on popup.
type MenuShellAccessible struct {
	ContainerAccessible

	atk.Selection
	// contains filtered or unexported fields
}
type MenuShellAccessibleClass struct {
	// contains filtered or unexported fields
}

MenuShellAccessibleClass: instance of this type is always passed by reference.

type MenuShellAccessibleOverrides struct {
}

MenuShellAccessibleOverrides contains methods that are overridable.

type MenuShellClass struct {
	// contains filtered or unexported fields
}

MenuShellClass: instance of this type is always passed by reference.

func (m *MenuShellClass) ParentClass() *ContainerClass
type MenuShellOverrides struct {
	// The function takes the following parameters:
	//
	ActivateCurrent func(forceHide bool)
	// Cancel cancels the selection within the menu shell.
	Cancel func()
	// Deactivate deactivates the menu shell.
	//
	// Typically this results in the menu shell being erased from the screen.
	Deactivate func()
	// The function returns the following values:
	//
	PopupDelay func() int
	// Insert adds a new MenuItem to the menu shell’s item list at the position
	// indicated by position.
	//
	// The function takes the following parameters:
	//
	//   - child to add.
	//   - position in the item list where child is added. Positions are
	//     numbered from 0 to n-1.
	//
	Insert func(child Widgetter, position int)
	// The function takes the following parameters:
	//
	MoveCurrent func(direction MenuDirectionType)
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	MoveSelected func(distance int) bool
	// SelectItem selects the menu item from the menu shell.
	//
	// The function takes the following parameters:
	//
	//   - menuItem to select.
	//
	SelectItem    func(menuItem Widgetter)
	SelectionDone func()
}

MenuShellOverrides contains methods that are overridable.

type MenuSheller interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

MenuSheller describes types inherited from class MenuShell.

To get the original type, the caller must assert this to an interface or another type.

type MenuToolButton struct {
	ToolButton
	// contains filtered or unexported fields
}

MenuToolButton is a ToolItem that contains a button and a small additional button with an arrow. When clicked, the arrow button pops up a dropdown menu.

Use gtk_menu_tool_button_new() to create a new MenuToolButton.

GtkMenuToolButton as GtkBuildable

The GtkMenuToolButton implementation of the GtkBuildable interface supports adding a menu by specifying “menu” as the “type” attribute of a <child> element.

An example for a UI definition fragment with menus:

<object class="GtkMenuToolButton">
  <child type="menu">
    <object class="GtkMenu"/>
  </child>
</object>.

func NewMenuToolButton

func NewMenuToolButton(iconWidget Widgetter, label string) *MenuToolButton

NewMenuToolButton creates a new MenuToolButton using icon_widget as icon and label as label.

The function takes the following parameters:

  • iconWidget (optional): widget that will be used as icon widget, or NULL.
  • label (optional): string that will be used as label, or NULL.

The function returns the following values:

  • menuToolButton: new MenuToolButton.

func NewMenuToolButtonFromStock deprecated

func NewMenuToolButtonFromStock(stockId string) *MenuToolButton

NewMenuToolButtonFromStock creates a new MenuToolButton. The new MenuToolButton will contain an icon and label from the stock item indicated by stock_id.

Deprecated: Use gtk_menu_tool_button_new() instead.

The function takes the following parameters:

  • stockId: name of a stock item.

The function returns the following values:

  • menuToolButton: new MenuToolButton.
func (button *MenuToolButton) ConnectShowMenu(f func()) coreglib.SignalHandle

ConnectShowMenu signal is emitted before the menu is shown.

It can be used to populate the menu on demand, using gtk_menu_tool_button_set_menu().

Note that even if you populate the menu dynamically in this way, you must set an empty menu on the MenuToolButton beforehand, since the arrow is made insensitive if the menu is not set.

func (button *MenuToolButton) Menu() Widgetter

Menu gets the Menu associated with MenuToolButton.

The function returns the following values:

  • widget associated with MenuToolButton.
func (button *MenuToolButton) SetArrowTooltipMarkup(markup string)

SetArrowTooltipMarkup sets the tooltip markup text to be used as tooltip for the arrow button which pops up the menu. See gtk_tool_item_set_tooltip_text() for setting a tooltip on the whole MenuToolButton.

The function takes the following parameters:

  • markup text to be used as tooltip text for button’s arrow button.
func (button *MenuToolButton) SetArrowTooltipText(text string)

SetArrowTooltipText sets the tooltip text to be used as tooltip for the arrow button which pops up the menu. See gtk_tool_item_set_tooltip_text() for setting a tooltip on the whole MenuToolButton.

The function takes the following parameters:

  • text to be used as tooltip text for button’s arrow button.
func (button *MenuToolButton) SetMenu(menu Widgetter)

SetMenu sets the Menu that is popped up when the user clicks on the arrow. If menu is NULL, the arrow button becomes insensitive.

The function takes the following parameters:

  • menu associated with MenuToolButton.
type MenuToolButtonClass struct {
	// contains filtered or unexported fields
}

MenuToolButtonClass: instance of this type is always passed by reference.

func (m *MenuToolButtonClass) ParentClass() *ToolButtonClass

ParentClass: parent class.

type MenuToolButtonOverrides struct {
	ShowMenu func()
}

MenuToolButtonOverrides contains methods that are overridable.

type MessageDialog

type MessageDialog struct {
	Dialog
	// contains filtered or unexported fields
}

MessageDialog presents a dialog with some message text. It’s simply a convenience widget; you could construct the equivalent of MessageDialog from Dialog without too much effort, but MessageDialog saves typing.

One difference from Dialog is that MessageDialog sets the Window:skip-taskbar-hint property to TRUE, so that the dialog is hidden from the taskbar by default.

The easiest way to do a modal message dialog is to use gtk_dialog_run(), though you can also pass in the GTK_DIALOG_MODAL flag, gtk_dialog_run() automatically makes the dialog modal and waits for the user to respond to it. gtk_dialog_run() returns when any dialog button is clicked.

An example for using a modal dialog:

GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
dialog = gtk_message_dialog_new (parent_window,
                                 flags,
                                 GTK_MESSAGE_ERROR,
                                 GTK_BUTTONS_CLOSE,
                                 "Error reading “s”: s",
                                 filename,
                                 g_strerror (errno));

// Destroy the dialog when the user responds to it
// (e.g. clicks a button)

g_signal_connect_swapped (dialog, "response",
                          G_CALLBACK (gtk_widget_destroy),
                          dialog);

GtkMessageDialog as GtkBuildable

The GtkMessageDialog implementation of the GtkBuildable interface exposes the message area as an internal child with the name “message_area”.

func NewMessageDialog

func NewMessageDialog(parent *Window, flags DialogFlags, typ MessageType, buttons ButtonsType) *MessageDialog

NewMessageDialog creates a new message dialog. This is a simple dialog with some text taht the user may want to see. When the user clicks a button, a "response" signal is emitted with response IDs from ResponseType.

func (*MessageDialog) Image deprecated

func (dialog *MessageDialog) Image() Widgetter

Image gets the dialog’s image.

Deprecated: Use Dialog for dialogs with images.

The function returns the following values:

  • widget dialog’s image.

func (*MessageDialog) MessageArea

func (messageDialog *MessageDialog) MessageArea() Widgetter

MessageArea returns the message area of the dialog. This is the box where the dialog’s primary and secondary labels are packed. You can add your own extra content to that box and it will appear below those labels. See gtk_dialog_get_content_area() for the corresponding function in the parent Dialog.

The function returns the following values:

  • widget corresponding to the “message area” in the message_dialog.

func (*MessageDialog) SetImage deprecated

func (dialog *MessageDialog) SetImage(image Widgetter)

SetImage sets the dialog’s image to image.

Deprecated: Use Dialog to create dialogs with images.

The function takes the following parameters:

  • image: image.

func (*MessageDialog) SetMarkup

func (messageDialog *MessageDialog) SetMarkup(str string)

SetMarkup sets the text of the message dialog to be str, which is marked up with the [Pango text markup language][PangoMarkupFormat].

The function takes the following parameters:

  • str: markup string (see [Pango markup format][PangoMarkupFormat]).

type MessageDialogClass added in v0.0.5

type MessageDialogClass struct {
	// contains filtered or unexported fields
}

MessageDialogClass: instance of this type is always passed by reference.

func (*MessageDialogClass) ParentClass added in v0.0.5

func (m *MessageDialogClass) ParentClass() *DialogClass

type MessageDialogOverrides added in v0.0.5

type MessageDialogOverrides struct {
}

MessageDialogOverrides contains methods that are overridable.

type MessageType

type MessageType C.gint

MessageType: type of message being displayed in the dialog.

const (
	// MessageInfo: informational message.
	MessageInfo MessageType = iota
	// MessageWarning: non-fatal warning message.
	MessageWarning
	// MessageQuestion: question requiring a choice.
	MessageQuestion
	// MessageError: fatal error message.
	MessageError
	// MessageOther: none of the above.
	MessageOther
)

func (MessageType) String

func (m MessageType) String() string

String returns the name in string for MessageType.

type Misc

type Misc struct {
	Widget
	// contains filtered or unexported fields
}

Misc widget is an abstract widget which is not useful itself, but is used to derive subclasses which have alignment and padding attributes.

The horizontal and vertical padding attributes allows extra space to be added around the widget.

The horizontal and vertical alignment attributes enable the widget to be positioned within its allocated area. Note that if the widget is added to a container in such a way that it expands automatically to fill its allocated area, the alignment settings will not alter the widget's position.

Note that the desired effect can in most cases be achieved by using the Widget:halign, Widget:valign and Widget:margin properties on the child widget, so GtkMisc should not be used in new code. To reflect this fact, all Misc API has been deprecated.

func BaseMisc

func BaseMisc(obj Miscer) *Misc

BaseMisc returns the underlying base object.

func (*Misc) Alignment deprecated

func (misc *Misc) Alignment() (xalign, yalign float32)

Alignment gets the X and Y alignment of the widget within its allocation. See gtk_misc_set_alignment().

Deprecated: Use Widget alignment and margin properties.

The function returns the following values:

  • xalign (optional): location to store X alignment of misc, or NULL.
  • yalign (optional): location to store Y alignment of misc, or NULL.

func (*Misc) Padding deprecated

func (misc *Misc) Padding() (xpad, ypad int)

Padding gets the padding in the X and Y directions of the widget. See gtk_misc_set_padding().

Deprecated: Use Widget alignment and margin properties.

The function returns the following values:

  • xpad (optional): location to store padding in the X direction, or NULL.
  • ypad (optional): location to store padding in the Y direction, or NULL.

func (*Misc) SetAlignment deprecated

func (misc *Misc) SetAlignment(xalign, yalign float32)

SetAlignment sets the alignment of the widget.

Deprecated: Use Widget's alignment (Widget:halign and Widget:valign) and margin properties or Label's Label:xalign and Label:yalign properties.

The function takes the following parameters:

  • xalign: horizontal alignment, from 0 (left) to 1 (right).
  • yalign: vertical alignment, from 0 (top) to 1 (bottom).

func (*Misc) SetPadding deprecated

func (misc *Misc) SetPadding(xpad, ypad int)

SetPadding sets the amount of space to add around the widget.

Deprecated: Use Widget alignment and margin properties.

The function takes the following parameters:

  • xpad: amount of space to add on the left and right of the widget, in pixels.
  • ypad: amount of space to add on the top and bottom of the widget, in pixels.

type MiscClass added in v0.0.5

type MiscClass struct {
	// contains filtered or unexported fields
}

MiscClass: instance of this type is always passed by reference.

func (*MiscClass) ParentClass added in v0.0.5

func (m *MiscClass) ParentClass() *WidgetClass

type MiscOverrides added in v0.0.5

type MiscOverrides struct {
}

MiscOverrides contains methods that are overridable.

type Miscer

type Miscer interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

Miscer describes types inherited from class Misc.

To get the original type, the caller must assert this to an interface or another type.

type ModelButton

type ModelButton struct {
	Button
	// contains filtered or unexported fields
}

ModelButton is a button class that can use a #GAction as its model. In contrast to ToggleButton or RadioButton, which can also be backed by a #GAction via the Actionable:action-name property, GtkModelButton will adapt its appearance according to the kind of action it is backed by, and appear either as a plain, check or radio button.

Model buttons are used when popovers from a menu model with gtk_popover_new_from_model(); they can also be used manually in a PopoverMenu.

When the action is specified via the Actionable:action-name and Actionable:action-target properties, the role of the button (i.e. whether it is a plain, check or radio button) is determined by the type of the action and doesn't have to be explicitly specified with the ModelButton:role property.

The content of the button is specified by the ModelButton:text and ModelButton:icon properties.

The appearance of model buttons can be influenced with the ModelButton:centered and ModelButton:iconic properties.

Model buttons have built-in support for submenus in PopoverMenu. To make a GtkModelButton that opens a submenu when activated, set the ModelButton:menu-name property. To make a button that goes back to the parent menu, you should set the ModelButton:inverted property to place the submenu indicator at the opposite side.

Example

<object class="GtkPopoverMenu">
  <child>
    <object class="GtkBox">
      <property name="visible">True</property>
      <property name="margin">10</property>
      <child>
        <object class="GtkModelButton">
          <property name="visible">True</property>
          <property name="action-name">view.cut</property>
          <property name="text" translatable="yes">Cut</property>
        </object>
      </child>
      <child>
        <object class="GtkModelButton">
          <property name="visible">True</property>
          <property name="action-name">view.copy</property>
          <property name="text" translatable="yes">Copy</property>
        </object>
      </child>
      <child>
        <object class="GtkModelButton">
          <property name="visible">True</property>
          <property name="action-name">view.paste</property>
          <property name="text" translatable="yes">Paste</property>
        </object>
      </child>
    </object>
  </child>
</object>

CSS nodes

button.model
├── <child>
╰── check

Iconic model buttons (see ModelButton:iconic) change the name of their main node to button and add a .model style class to it. The indicator subnode is invisible in this case.

func NewModelButton

func NewModelButton() *ModelButton

NewModelButton creates a new GtkModelButton.

The function returns the following values:

  • modelButton: newly created ModelButton widget.

type MountOperation

type MountOperation struct {
	gio.MountOperation
	// contains filtered or unexported fields
}

MountOperation: this should not be accessed directly. Use the accessor functions below.

func NewMountOperation

func NewMountOperation(parent *Window) *MountOperation

NewMountOperation creates a new MountOperation.

The function takes the following parameters:

  • parent (optional): transient parent of the window, or NULL.

The function returns the following values:

  • mountOperation: new MountOperation.

func (*MountOperation) IsShowing

func (op *MountOperation) IsShowing() bool

IsShowing returns whether the MountOperation is currently displaying a window.

The function returns the following values:

  • ok: TRUE if op is currently displaying a window.

func (*MountOperation) Parent

func (op *MountOperation) Parent() *Window

Parent gets the transient parent used by the MountOperation.

The function returns the following values:

  • window: transient parent for windows shown by op.

func (*MountOperation) Screen

func (op *MountOperation) Screen() *gdk.Screen

Screen gets the screen on which windows of the MountOperation will be shown.

The function returns the following values:

  • screen on which windows of op are shown.

func (*MountOperation) SetParent

func (op *MountOperation) SetParent(parent *Window)

SetParent sets the transient parent for windows shown by the MountOperation.

The function takes the following parameters:

  • parent (optional): transient parent of the window, or NULL.

func (*MountOperation) SetScreen

func (op *MountOperation) SetScreen(screen *gdk.Screen)

SetScreen sets the screen to show windows of the MountOperation on.

The function takes the following parameters:

  • screen: Screen.

type MountOperationClass added in v0.0.5

type MountOperationClass struct {
	// contains filtered or unexported fields
}

MountOperationClass: instance of this type is always passed by reference.

func (*MountOperationClass) ParentClass added in v0.0.5

func (m *MountOperationClass) ParentClass() *gio.MountOperationClass

ParentClass: parent class.

type MountOperationOverrides added in v0.0.5

type MountOperationOverrides struct {
}

MountOperationOverrides contains methods that are overridable.

type MovementStep

type MovementStep C.gint
const (
	// MovementLogicalPositions: move forward or back by graphemes.
	MovementLogicalPositions MovementStep = iota
	// MovementVisualPositions: move left or right by graphemes.
	MovementVisualPositions
	// MovementWords: move forward or back by words.
	MovementWords
	// MovementDisplayLines: move up or down lines (wrapped lines).
	MovementDisplayLines
	// MovementDisplayLineEnds: move to either end of a line.
	MovementDisplayLineEnds
	// MovementParagraphs: move up or down paragraphs (newline-ended lines).
	MovementParagraphs
	// MovementParagraphEnds: move to either end of a paragraph.
	MovementParagraphEnds
	// MovementPages: move by pages.
	MovementPages
	// MovementBufferEnds: move to ends of the buffer.
	MovementBufferEnds
	// MovementHorizontalPages: move horizontally by pages.
	MovementHorizontalPages
)

func (MovementStep) String

func (m MovementStep) String() string

String returns the name in string for MovementStep.

type NativeDialog

type NativeDialog struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

NativeDialog: native dialogs are platform dialogs that don't use Dialog or Window. They are used in order to integrate better with a platform, by looking the same as other native applications and supporting platform specific features.

The Dialog functions cannot be used on such objects, but we need a similar API in order to drive them. The NativeDialog object is an API that allows you to do this. It allows you to set various common properties on the dialog, as well as show and hide it and get a NativeDialog::response signal when the user finished with the dialog.

There is also a gtk_native_dialog_run() helper that makes it easy to run any native dialog in a modal way with a recursive mainloop, similar to gtk_dialog_run().

func BaseNativeDialog

func BaseNativeDialog(obj NativeDialogger) *NativeDialog

BaseNativeDialog returns the underlying base object.

func (*NativeDialog) ConnectResponse

func (self *NativeDialog) ConnectResponse(f func(responseId int)) coreglib.SignalHandle

ConnectResponse is emitted when the user responds to the dialog.

When this is called the dialog has been hidden.

If you call gtk_native_dialog_hide() before the user responds to the dialog this signal will not be emitted.

func (*NativeDialog) Destroy

func (self *NativeDialog) Destroy()

Destroy destroys a dialog.

When a dialog is destroyed, it will break any references it holds to other objects. If it is visible it will be hidden and any underlying window system resources will be destroyed.

Note that this does not release any reference to the object (as opposed to destroying a GtkWindow) because there is no reference from the windowing system to the NativeDialog.

func (*NativeDialog) Hide

func (self *NativeDialog) Hide()

Hide hides the dialog if it is visilbe, aborting any interaction. Once this is called the NativeDialog::response signal will not be emitted until after the next call to gtk_native_dialog_show().

If the dialog is not visible this does nothing.

func (*NativeDialog) Modal

func (self *NativeDialog) Modal() bool

Modal returns whether the dialog is modal. See gtk_native_dialog_set_modal().

The function returns the following values:

  • ok: TRUE if the dialog is set to be modal.

func (*NativeDialog) Run

func (self *NativeDialog) Run() int

Run blocks in a recursive main loop until self emits the NativeDialog::response signal. It then returns the response ID from the ::response signal emission.

Before entering the recursive main loop, gtk_native_dialog_run() calls gtk_native_dialog_show() on the dialog for you.

After gtk_native_dialog_run() returns, then dialog will be hidden.

Typical usage of this function might be:

gint result = gtk_native_dialog_run (GTK_NATIVE_DIALOG (dialog));
switch (result)
  {
    case GTK_RESPONSE_ACCEPT:
       do_application_specific_something ();
       break;
    default:
       do_nothing_since_dialog_was_cancelled ();
       break;
  }
g_object_unref (dialog);

Note that even though the recursive main loop gives the effect of a modal dialog (it prevents the user from interacting with other windows in the same window group while the dialog is run), callbacks such as timeouts, IO channel watches, DND drops, etc, will be triggered during a gtk_native_dialog_run() call.

The function returns the following values:

  • gint: response ID.

func (*NativeDialog) SetModal

func (self *NativeDialog) SetModal(modal bool)

SetModal sets a dialog modal or non-modal. Modal dialogs prevent interaction with other windows in the same application. To keep modal dialogs on top of main application windows, use gtk_native_dialog_set_transient_for() to make the dialog transient for the parent; most [window managers][gtk-X11-arch] will then disallow lowering the dialog below the parent.

The function takes the following parameters:

  • modal: whether the window is modal.

func (*NativeDialog) SetTitle

func (self *NativeDialog) SetTitle(title string)

SetTitle sets the title of the NativeDialog.

The function takes the following parameters:

  • title of the dialog.

func (*NativeDialog) SetTransientFor

func (self *NativeDialog) SetTransientFor(parent *Window)

SetTransientFor: dialog windows should be set transient for the main application window they were spawned from. This allows [window managers][gtk-X11-arch] to e.g. keep the dialog on top of the main window, or center the dialog over the main window.

Passing NULL for parent unsets the current transient window.

The function takes the following parameters:

  • parent (optional) window, or NULL.

func (*NativeDialog) Show

func (self *NativeDialog) Show()

Show shows the dialog on the display, allowing the user to interact with it. When the user accepts the state of the dialog the dialog will be automatically hidden and the NativeDialog::response signal will be emitted.

Multiple calls while the dialog is visible will be ignored.

func (*NativeDialog) Title

func (self *NativeDialog) Title() string

Title gets the title of the NativeDialog.

The function returns the following values:

  • utf8 (optional): title of the dialog, or NULL if none has been set explicitly. The returned string is owned by the widget and must not be modified or freed.

func (*NativeDialog) TransientFor

func (self *NativeDialog) TransientFor() *Window

TransientFor fetches the transient parent for this window. See gtk_native_dialog_set_transient_for().

The function returns the following values:

  • window (optional): transient parent for this window, or NULL if no transient parent has been set.

func (*NativeDialog) Visible

func (self *NativeDialog) Visible() bool

Visible determines whether the dialog is visible.

The function returns the following values:

  • ok: TRUE if the dialog is visible.

type NativeDialogClass added in v0.0.5

type NativeDialogClass struct {
	// contains filtered or unexported fields
}

NativeDialogClass: instance of this type is always passed by reference.

type NativeDialogOverrides added in v0.0.5

type NativeDialogOverrides struct {
	// Hide hides the dialog if it is visilbe, aborting any interaction.
	// Once this is called the NativeDialog::response signal will not be emitted
	// until after the next call to gtk_native_dialog_show().
	//
	// If the dialog is not visible this does nothing.
	Hide func()
	// The function takes the following parameters:
	//
	Response func(responseId int)
	// Show shows the dialog on the display, allowing the user to interact
	// with it. When the user accepts the state of the dialog the dialog will
	// be automatically hidden and the NativeDialog::response signal will be
	// emitted.
	//
	// Multiple calls while the dialog is visible will be ignored.
	Show func()
}

NativeDialogOverrides contains methods that are overridable.

type NativeDialogger

type NativeDialogger interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

NativeDialogger describes types inherited from class NativeDialog.

To get the original type, the caller must assert this to an interface or another type.

type Notebook

type Notebook struct {
	Container
	// contains filtered or unexported fields
}

Notebook widget is a Container whose children are pages that can be switched between using tab labels along one edge.

There are many configuration options for GtkNotebook. Among other things, you can choose on which edge the tabs appear (see gtk_notebook_set_tab_pos()), whether, if there are too many tabs to fit the notebook should be made bigger or scrolling arrows added (see gtk_notebook_set_scrollable()), and whether there will be a popup menu allowing the users to switch pages. (see gtk_notebook_popup_enable(), gtk_notebook_popup_disable())

GtkNotebook as GtkBuildable

The GtkNotebook implementation of the Buildable interface supports placing children into tabs by specifying “tab” as the “type” attribute of a <child> element. Note that the content of the tab must be created before the tab can be filled. A tab child can be specified without specifying a <child> type attribute.

To add a child widget in the notebooks action area, specify "action-start" or “action-end” as the “type” attribute of the <child> element.

An example of a UI definition fragment with GtkNotebook:

<object class="GtkNotebook">
  <child>
    <object class="GtkLabel" id="notebook-content">
      <property name="label">Content</property>
    </object>
  </child>
  <child type="tab">
    <object class="GtkLabel" id="notebook-tab">
      <property name="label">Tab</property>
    </object>
  </child>
</object>

CSS nodes

notebook
├── header.top
│   ├── [<action widget>]
│   ├── tabs
│   │   ├── [arrow]
│   │   ├── tab
│   │   │   ╰── <tab label>
┊   ┊   ┊
│   │   ├── tab[.reorderable-page]
│   │   │   ╰── <tab label>
│   │   ╰── [arrow]
│   ╰── [<action widget>]
│
╰── stack
    ├── <child>
    ┊
    ╰── <child>

GtkNotebook has a main CSS node with name notebook, a subnode with name header and below that a subnode with name tabs which contains one subnode per tab with name tab.

If action widgets are present, their CSS nodes are placed next to the tabs node. If the notebook is scrollable, CSS nodes with name arrow are placed as first and last child of the tabs node.

The main node gets the .frame style class when the notebook has a border (see gtk_notebook_set_show_border()).

The header node gets one of the style class .top, .bottom, .left or .right, depending on where the tabs are placed. For reorderable pages, the tab node gets the .reorderable-page class.

A tab node gets the .dnd style class while it is moved with drag-and-drop.

The nodes are always arranged from left-to-right, regarldess of text direction.

func NewNotebook

func NewNotebook() *Notebook

NewNotebook creates a new Notebook widget with no pages.

The function returns the following values:

  • notebook: newly created Notebook.

func (*Notebook) ActionWidget

func (notebook *Notebook) ActionWidget(packType PackType) Widgetter

ActionWidget gets one of the action widgets. See gtk_notebook_set_action_widget().

The function takes the following parameters:

  • packType: pack type of the action widget to receive.

The function returns the following values:

  • widget (optional): action widget with the given pack_type or NULL when this action widget has not been set.

func (*Notebook) AppendPage

func (notebook *Notebook) AppendPage(child, tabLabel Widgetter) int

AppendPage appends a page to notebook.

The function takes the following parameters:

  • child to use as the contents of the page.
  • tabLabel (optional) to be used as the label for the page, or NULL to use the default label, “page N”.

The function returns the following values:

  • gint: index (starting from 0) of the appended page in the notebook, or -1 if function fails.

func (*Notebook) AppendPageMenu

func (notebook *Notebook) AppendPageMenu(child, tabLabel, menuLabel Widgetter) int

AppendPageMenu appends a page to notebook, specifying the widget to use as the label in the popup menu.

The function takes the following parameters:

  • child to use as the contents of the page.
  • tabLabel (optional) to be used as the label for the page, or NULL to use the default label, “page N”.
  • menuLabel (optional): widget to use as a label for the page-switch menu, if that is enabled. If NULL, and tab_label is a Label or NULL, then the menu label will be a newly created label with the same text as tab_label; if tab_label is not a Label, menu_label must be specified if the page-switch menu is to be used.

The function returns the following values:

  • gint: index (starting from 0) of the appended page in the notebook, or -1 if function fails.

func (*Notebook) ConnectChangeCurrentPage

func (notebook *Notebook) ConnectChangeCurrentPage(f func(object int) (ok bool)) coreglib.SignalHandle

func (*Notebook) ConnectCreateWindow

func (notebook *Notebook) ConnectCreateWindow(f func(page Widgetter, x, y int) (notebook *Notebook)) coreglib.SignalHandle

ConnectCreateWindow signal is emitted when a detachable tab is dropped on the root window.

A handler for this signal can create a window containing a notebook where the tab will be attached. It is also responsible for moving/resizing the window and adding the necessary properties to the notebook (e.g. the Notebook:group-name ).

func (*Notebook) ConnectFocusTab

func (notebook *Notebook) ConnectFocusTab(f func(object NotebookTab) (ok bool)) coreglib.SignalHandle

func (*Notebook) ConnectMoveFocusOut

func (notebook *Notebook) ConnectMoveFocusOut(f func(object DirectionType)) coreglib.SignalHandle

func (*Notebook) ConnectPageAdded

func (notebook *Notebook) ConnectPageAdded(f func(child Widgetter, pageNum uint)) coreglib.SignalHandle

ConnectPageAdded signal is emitted in the notebook right after a page is added to the notebook.

func (*Notebook) ConnectPageRemoved

func (notebook *Notebook) ConnectPageRemoved(f func(child Widgetter, pageNum uint)) coreglib.SignalHandle

ConnectPageRemoved signal is emitted in the notebook right after a page is removed from the notebook.

func (*Notebook) ConnectPageReordered

func (notebook *Notebook) ConnectPageReordered(f func(child Widgetter, pageNum uint)) coreglib.SignalHandle

ConnectPageReordered signal is emitted in the notebook right after a page has been reordered.

func (*Notebook) ConnectReorderTab

func (notebook *Notebook) ConnectReorderTab(f func(object DirectionType, p0 bool) (ok bool)) coreglib.SignalHandle

func (*Notebook) ConnectSelectPage

func (notebook *Notebook) ConnectSelectPage(f func(object bool) (ok bool)) coreglib.SignalHandle

func (*Notebook) ConnectSwitchPage

func (notebook *Notebook) ConnectSwitchPage(f func(page Widgetter, pageNum uint)) coreglib.SignalHandle

ConnectSwitchPage is emitted when the user or a function changes the current page.

func (*Notebook) CurrentPage

func (notebook *Notebook) CurrentPage() int

CurrentPage returns the page number of the current page.

The function returns the following values:

  • gint: index (starting from 0) of the current page in the notebook. If the notebook has no pages, then -1 will be returned.

func (*Notebook) DetachTab

func (notebook *Notebook) DetachTab(child Widgetter)

DetachTab removes the child from the notebook.

This function is very similar to gtk_container_remove(), but additionally informs the notebook that the removal is happening as part of a tab DND operation, which should not be cancelled.

The function takes the following parameters:

  • child: child.

func (*Notebook) GroupName

func (notebook *Notebook) GroupName() string

GroupName gets the current group name for notebook.

The function returns the following values:

  • utf8 (optional): group name, or NULL if none is set.

func (*Notebook) InsertPage

func (notebook *Notebook) InsertPage(child, tabLabel Widgetter, position int) int

InsertPage: insert a page into notebook at the given position.

The function takes the following parameters:

  • child to use as the contents of the page.
  • tabLabel (optional) to be used as the label for the page, or NULL to use the default label, “page N”.
  • position: index (starting at 0) at which to insert the page, or -1 to append the page after all other pages.

The function returns the following values:

  • gint: index (starting from 0) of the inserted page in the notebook, or -1 if function fails.

func (*Notebook) InsertPageMenu

func (notebook *Notebook) InsertPageMenu(child, tabLabel, menuLabel Widgetter, position int) int

InsertPageMenu: insert a page into notebook at the given position, specifying the widget to use as the label in the popup menu.

The function takes the following parameters:

  • child to use as the contents of the page.
  • tabLabel (optional) to be used as the label for the page, or NULL to use the default label, “page N”.
  • menuLabel (optional): widget to use as a label for the page-switch menu, if that is enabled. If NULL, and tab_label is a Label or NULL, then the menu label will be a newly created label with the same text as tab_label; if tab_label is not a Label, menu_label must be specified if the page-switch menu is to be used.
  • position: index (starting at 0) at which to insert the page, or -1 to append the page after all other pages.

The function returns the following values:

  • gint: index (starting from 0) of the inserted page in the notebook.

func (*Notebook) MenuLabel

func (notebook *Notebook) MenuLabel(child Widgetter) Widgetter

MenuLabel retrieves the menu label widget of the page containing child.

The function takes the following parameters:

  • child: widget contained in a page of notebook.

The function returns the following values:

  • widget (optional): menu label, or NULL if the notebook page does not have a menu label other than the default (the tab label).

func (*Notebook) MenuLabelText

func (notebook *Notebook) MenuLabelText(child Widgetter) string

MenuLabelText retrieves the text of the menu label for the page containing child.

The function takes the following parameters:

  • child widget of a page of the notebook.

The function returns the following values:

  • utf8 (optional): text of the tab label, or NULL if the widget does not have a menu label other than the default menu label, or the menu label widget is not a Label. The string is owned by the widget and must not be freed.

func (*Notebook) NPages

func (notebook *Notebook) NPages() int

NPages gets the number of pages in a notebook.

The function returns the following values:

  • gint: number of pages in the notebook.

func (*Notebook) NextPage

func (notebook *Notebook) NextPage()

NextPage switches to the next page. Nothing happens if the current page is the last page.

func (*Notebook) NthPage

func (notebook *Notebook) NthPage(pageNum int) Widgetter

NthPage returns the child widget contained in page number page_num.

The function takes the following parameters:

  • pageNum: index of a page in the notebook, or -1 to get the last page.

The function returns the following values:

  • widget (optional): child widget, or NULL if page_num is out of bounds.

func (*Notebook) PageNum

func (notebook *Notebook) PageNum(child Widgetter) int

PageNum finds the index of the page which contains the given child widget.

The function takes the following parameters:

  • child: Widget.

The function returns the following values:

  • gint: index of the page containing child, or -1 if child is not in the notebook.

func (*Notebook) PopupDisable

func (notebook *Notebook) PopupDisable()

PopupDisable disables the popup menu.

func (*Notebook) PopupEnable

func (notebook *Notebook) PopupEnable()

PopupEnable enables the popup menu: if the user clicks with the right mouse button on the tab labels, a menu with all the pages will be popped up.

func (*Notebook) PrependPage

func (notebook *Notebook) PrependPage(child, tabLabel Widgetter) int

PrependPage prepends a page to notebook.

The function takes the following parameters:

  • child to use as the contents of the page.
  • tabLabel (optional) to be used as the label for the page, or NULL to use the default label, “page N”.

The function returns the following values:

  • gint: index (starting from 0) of the prepended page in the notebook, or -1 if function fails.

func (*Notebook) PrependPageMenu

func (notebook *Notebook) PrependPageMenu(child, tabLabel, menuLabel Widgetter) int

PrependPageMenu prepends a page to notebook, specifying the widget to use as the label in the popup menu.

The function takes the following parameters:

  • child to use as the contents of the page.
  • tabLabel (optional) to be used as the label for the page, or NULL to use the default label, “page N”.
  • menuLabel (optional): widget to use as a label for the page-switch menu, if that is enabled. If NULL, and tab_label is a Label or NULL, then the menu label will be a newly created label with the same text as tab_label; if tab_label is not a Label, menu_label must be specified if the page-switch menu is to be used.

The function returns the following values:

  • gint: index (starting from 0) of the prepended page in the notebook, or -1 if function fails.

func (*Notebook) PrevPage

func (notebook *Notebook) PrevPage()

PrevPage switches to the previous page. Nothing happens if the current page is the first page.

func (*Notebook) RemovePage

func (notebook *Notebook) RemovePage(pageNum int)

RemovePage removes a page from the notebook given its index in the notebook.

The function takes the following parameters:

  • pageNum: index of a notebook page, starting from 0. If -1, the last page will be removed.

func (*Notebook) ReorderChild

func (notebook *Notebook) ReorderChild(child Widgetter, position int)

ReorderChild reorders the page containing child, so that it appears in position position. If position is greater than or equal to the number of children in the list or negative, child will be moved to the end of the list.

The function takes the following parameters:

  • child to move.
  • position: new position, or -1 to move to the end.

func (*Notebook) Scrollable

func (notebook *Notebook) Scrollable() bool

Scrollable returns whether the tab label area has arrows for scrolling. See gtk_notebook_set_scrollable().

The function returns the following values:

  • ok: TRUE if arrows for scrolling are present.

func (*Notebook) SetActionWidget

func (notebook *Notebook) SetActionWidget(widget Widgetter, packType PackType)

SetActionWidget sets widget as one of the action widgets. Depending on the pack type the widget will be placed before or after the tabs. You can use a Box if you need to pack more than one widget on the same side.

Note that action widgets are “internal” children of the notebook and thus not included in the list returned from gtk_container_foreach().

The function takes the following parameters:

  • widget: Widget.
  • packType: pack type of the action widget.

func (*Notebook) SetCurrentPage

func (notebook *Notebook) SetCurrentPage(pageNum int)

SetCurrentPage switches to the page number page_num.

Note that due to historical reasons, GtkNotebook refuses to switch to a page unless the child widget is visible. Therefore, it is recommended to show child widgets before adding them to a notebook.

The function takes the following parameters:

  • pageNum: index of the page to switch to, starting from 0. If negative, the last page will be used. If greater than the number of pages in the notebook, nothing will be done.

func (*Notebook) SetGroupName

func (notebook *Notebook) SetGroupName(groupName string)

SetGroupName sets a group name for notebook.

Notebooks with the same name will be able to exchange tabs via drag and drop. A notebook with a NULL group name will not be able to exchange tabs with any other notebook.

The function takes the following parameters:

  • groupName (optional): name of the notebook group, or NULL to unset it.

func (*Notebook) SetMenuLabel

func (notebook *Notebook) SetMenuLabel(child, menuLabel Widgetter)

SetMenuLabel changes the menu label for the page containing child.

The function takes the following parameters:

  • child widget.
  • menuLabel (optional): menu label, or NULL for default.

func (*Notebook) SetMenuLabelText

func (notebook *Notebook) SetMenuLabelText(child Widgetter, menuText string)

SetMenuLabelText creates a new label and sets it as the menu label of child.

The function takes the following parameters:

  • child widget.
  • menuText: label text.

func (*Notebook) SetScrollable

func (notebook *Notebook) SetScrollable(scrollable bool)

SetScrollable sets whether the tab label area will have arrows for scrolling if there are too many tabs to fit in the area.

The function takes the following parameters:

  • scrollable: TRUE if scroll arrows should be added.

func (*Notebook) SetShowBorder

func (notebook *Notebook) SetShowBorder(showBorder bool)

SetShowBorder sets whether a bevel will be drawn around the notebook pages. This only has a visual effect when the tabs are not shown. See gtk_notebook_set_show_tabs().

The function takes the following parameters:

  • showBorder: TRUE if a bevel should be drawn around the notebook.

func (*Notebook) SetShowTabs

func (notebook *Notebook) SetShowTabs(showTabs bool)

SetShowTabs sets whether to show the tabs for the notebook or not.

The function takes the following parameters:

  • showTabs: TRUE if the tabs should be shown.

func (*Notebook) SetTabDetachable

func (notebook *Notebook) SetTabDetachable(child Widgetter, detachable bool)

SetTabDetachable sets whether the tab can be detached from notebook to another notebook or widget.

Note that 2 notebooks must share a common group identificator (see gtk_notebook_set_group_name()) to allow automatic tabs interchange between them.

If you want a widget to interact with a notebook through DnD (i.e.: accept dragged tabs from it) it must be set as a drop destination and accept the target “GTK_NOTEBOOK_TAB”. The notebook will fill the selection with a GtkWidget** pointing to the child widget that corresponds to the dropped tab.

Note that you should use gtk_notebook_detach_tab() instead of gtk_container_remove() if you want to remove the tab from the source notebook as part of accepting a drop. Otherwise, the source notebook will think that the dragged tab was removed from underneath the ongoing drag operation, and will initiate a drag cancel animation.

static void
on_drag_data_received (GtkWidget        *widget,
                       GdkDragContext   *context,
                       gint              x,
                       gint              y,
                       GtkSelectionData *data,
                       guint             info,
                       guint             time,
                       gpointer          user_data)
{
  GtkWidget *notebook;
  GtkWidget **child;

  notebook = gtk_drag_get_source_widget (context);
  child = (void*) gtk_selection_data_get_data (data);

  // process_widget (*child);

  gtk_notebook_detach_tab (GTK_NOTEBOOK (notebook), *child);
}

If you want a notebook to accept drags from other widgets, you will have to set your own DnD code to do it.

The function takes the following parameters:

  • child Widget.
  • detachable: whether the tab is detachable or not.

func (*Notebook) SetTabLabel

func (notebook *Notebook) SetTabLabel(child, tabLabel Widgetter)

SetTabLabel changes the tab label for child. If NULL is specified for tab_label, then the page will have the label “page N”.

The function takes the following parameters:

  • child: page.
  • tabLabel (optional): tab label widget to use, or NULL for default tab label.

func (*Notebook) SetTabLabelText

func (notebook *Notebook) SetTabLabelText(child Widgetter, tabText string)

SetTabLabelText creates a new label and sets it as the tab label for the page containing child.

The function takes the following parameters:

  • child: page.
  • tabText: label text.

func (*Notebook) SetTabPos

func (notebook *Notebook) SetTabPos(pos PositionType)

SetTabPos sets the edge at which the tabs for switching pages in the notebook are drawn.

The function takes the following parameters:

  • pos: edge to draw the tabs at.

func (*Notebook) SetTabReorderable

func (notebook *Notebook) SetTabReorderable(child Widgetter, reorderable bool)

SetTabReorderable sets whether the notebook tab can be reordered via drag and drop or not.

The function takes the following parameters:

  • child Widget.
  • reorderable: whether the tab is reorderable or not.

func (*Notebook) ShowBorder

func (notebook *Notebook) ShowBorder() bool

ShowBorder returns whether a bevel will be drawn around the notebook pages. See gtk_notebook_set_show_border().

The function returns the following values:

  • ok: TRUE if the bevel is drawn.

func (*Notebook) ShowTabs

func (notebook *Notebook) ShowTabs() bool

ShowTabs returns whether the tabs of the notebook are shown. See gtk_notebook_set_show_tabs().

The function returns the following values:

  • ok: TRUE if the tabs are shown.

func (*Notebook) TabDetachable

func (notebook *Notebook) TabDetachable(child Widgetter) bool

TabDetachable returns whether the tab contents can be detached from notebook.

The function takes the following parameters:

  • child Widget.

The function returns the following values:

  • ok: TRUE if the tab is detachable.

func (*Notebook) TabHborder deprecated

func (notebook *Notebook) TabHborder() uint16

TabHborder returns the horizontal width of a tab border.

Deprecated: this function returns zero.

The function returns the following values:

  • guint16: horizontal width of a tab border.

func (*Notebook) TabLabel

func (notebook *Notebook) TabLabel(child Widgetter) Widgetter

TabLabel returns the tab label widget for the page child. NULL is returned if child is not in notebook or if no tab label has specifically been set for child.

The function takes the following parameters:

  • child: page.

The function returns the following values:

  • widget (optional): tab label.

func (*Notebook) TabLabelText

func (notebook *Notebook) TabLabelText(child Widgetter) string

TabLabelText retrieves the text of the tab label for the page containing child.

The function takes the following parameters:

  • child: widget contained in a page of notebook.

The function returns the following values:

  • utf8 (optional): text of the tab label, or NULL if the tab label widget is not a Label. The string is owned by the widget and must not be freed.

func (*Notebook) TabPos

func (notebook *Notebook) TabPos() PositionType

TabPos gets the edge at which the tabs for switching pages in the notebook are drawn.

The function returns the following values:

  • positionType: edge at which the tabs are drawn.

func (*Notebook) TabReorderable

func (notebook *Notebook) TabReorderable(child Widgetter) bool

TabReorderable gets whether the tab can be reordered via drag and drop or not.

The function takes the following parameters:

  • child Widget.

The function returns the following values:

  • ok: TRUE if the tab is reorderable.

func (*Notebook) TabVborder deprecated

func (notebook *Notebook) TabVborder() uint16

TabVborder returns the vertical width of a tab border.

Deprecated: this function returns zero.

The function returns the following values:

  • guint16: vertical width of a tab border.

type NotebookAccessible

type NotebookAccessible struct {
	ContainerAccessible

	atk.Selection
	// contains filtered or unexported fields
}

type NotebookAccessibleClass added in v0.0.5

type NotebookAccessibleClass struct {
	// contains filtered or unexported fields
}

NotebookAccessibleClass: instance of this type is always passed by reference.

func (*NotebookAccessibleClass) ParentClass added in v0.0.5

type NotebookAccessibleOverrides added in v0.0.5

type NotebookAccessibleOverrides struct {
}

NotebookAccessibleOverrides contains methods that are overridable.

type NotebookClass added in v0.0.5

type NotebookClass struct {
	// contains filtered or unexported fields
}

NotebookClass: instance of this type is always passed by reference.

func (*NotebookClass) ParentClass added in v0.0.5

func (n *NotebookClass) ParentClass() *ContainerClass

type NotebookOverrides added in v0.0.5

type NotebookOverrides struct {
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ChangeCurrentPage func(offset int) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	FocusTab func(typ NotebookTab) bool
	// The function takes the following parameters:
	//
	//   - child
	//   - tabLabel
	//   - menuLabel
	//   - position
	//
	// The function returns the following values:
	//
	InsertPage func(child, tabLabel, menuLabel Widgetter, position int) int
	// The function takes the following parameters:
	//
	MoveFocusOut func(direction DirectionType)
	// The function takes the following parameters:
	//
	//   - child
	//   - pageNum
	//
	PageAdded func(child Widgetter, pageNum uint)
	// The function takes the following parameters:
	//
	//   - child
	//   - pageNum
	//
	PageRemoved func(child Widgetter, pageNum uint)
	// The function takes the following parameters:
	//
	//   - child
	//   - pageNum
	//
	PageReordered func(child Widgetter, pageNum uint)
	// The function takes the following parameters:
	//
	//   - direction
	//   - moveToLast
	//
	// The function returns the following values:
	//
	ReorderTab func(direction DirectionType, moveToLast bool) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	SelectPage func(moveFocus bool) bool
	// The function takes the following parameters:
	//
	//   - page
	//   - pageNum
	//
	SwitchPage func(page Widgetter, pageNum uint)
}

NotebookOverrides contains methods that are overridable.

type NotebookPageAccessible

type NotebookPageAccessible struct {
	atk.AtkObject

	*coreglib.Object
	atk.Component
	// contains filtered or unexported fields
}

func NewNotebookPageAccessible

func NewNotebookPageAccessible(notebook *NotebookAccessible, child Widgetter) *NotebookPageAccessible

The function takes the following parameters:

  • notebook
  • child

The function returns the following values:

func (*NotebookPageAccessible) Invalidate

func (page *NotebookPageAccessible) Invalidate()

type NotebookPageAccessibleClass added in v0.0.5

type NotebookPageAccessibleClass struct {
	// contains filtered or unexported fields
}

NotebookPageAccessibleClass: instance of this type is always passed by reference.

func (*NotebookPageAccessibleClass) ParentClass added in v0.0.5

func (n *NotebookPageAccessibleClass) ParentClass() *atk.ObjectClass

type NotebookPageAccessibleOverrides added in v0.0.5

type NotebookPageAccessibleOverrides struct {
}

NotebookPageAccessibleOverrides contains methods that are overridable.

type NotebookTab

type NotebookTab C.gint
const (
	NotebookTabFirst NotebookTab = iota
	NotebookTabLast
)

func (NotebookTab) String

func (n NotebookTab) String() string

String returns the name in string for NotebookTab.

type NumberUpLayout

type NumberUpLayout C.gint

NumberUpLayout: used to determine the layout of pages on a sheet when printing multiple pages per sheet.

const (
	// NumberUpLayoutLeftToRightTopToBottom: ! (layout-lrtb.png).
	NumberUpLayoutLeftToRightTopToBottom NumberUpLayout = iota
	// NumberUpLayoutLeftToRightBottomToTop: ! (layout-lrbt.png).
	NumberUpLayoutLeftToRightBottomToTop
	// NumberUpLayoutRightToLeftTopToBottom: ! (layout-rltb.png).
	NumberUpLayoutRightToLeftTopToBottom
	// NumberUpLayoutRightToLeftBottomToTop: ! (layout-rlbt.png).
	NumberUpLayoutRightToLeftBottomToTop
	// NumberUpLayoutTopToBottomLeftToRight: ! (layout-tblr.png).
	NumberUpLayoutTopToBottomLeftToRight
	// NumberUpLayoutTopToBottomRightToLeft: ! (layout-tbrl.png).
	NumberUpLayoutTopToBottomRightToLeft
	// NumberUpLayoutBottomToTopLeftToRight: ! (layout-btlr.png).
	NumberUpLayoutBottomToTopLeftToRight
	// NumberUpLayoutBottomToTopRightToLeft: ! (layout-btrl.png).
	NumberUpLayoutBottomToTopRightToLeft
)

func (NumberUpLayout) String

func (n NumberUpLayout) String() string

String returns the name in string for NumberUpLayout.

type NumerableIcon

type NumerableIcon struct {
	gio.EmblemedIcon
	// contains filtered or unexported fields
}

NumerableIcon is a subclass of Icon that can show a number or short string as an emblem. The number can be overlayed on top of another emblem, if desired.

It supports theming by taking font and color information from a provided StyleContext; see gtk_numerable_icon_set_style_context().

Typical numerable icons: ! (numerableicon.png) ! (numerableicon2.png).

func (*NumerableIcon) BackgroundGIcon deprecated

func (self *NumerableIcon) BackgroundGIcon() *gio.Icon

BackgroundGIcon returns the #GIcon that was set as the base background image, or NULL if there’s none. The caller of this function does not own a reference to the returned #GIcon.

Deprecated: since version 3.14.

The function returns the following values:

  • icon (optional) or NULL.

func (*NumerableIcon) BackgroundIconName deprecated

func (self *NumerableIcon) BackgroundIconName() string

BackgroundIconName returns the icon name used as the base background image, or NULL if there’s none.

Deprecated: since version 3.14.

The function returns the following values:

  • utf8 (optional): icon name, or NULL.

func (*NumerableIcon) Count deprecated

func (self *NumerableIcon) Count() int

Count returns the value currently displayed by self.

Deprecated: since version 3.14.

The function returns the following values:

  • gint: currently displayed value.

func (*NumerableIcon) Label deprecated

func (self *NumerableIcon) Label() string

Label returns the currently displayed label of the icon, or NULL.

Deprecated: since version 3.14.

The function returns the following values:

  • utf8 (optional): currently displayed label.

func (*NumerableIcon) SetBackgroundGIcon deprecated

func (self *NumerableIcon) SetBackgroundGIcon(icon gio.Iconner)

SetBackgroundGIcon updates the icon to use icon as the base background image. If icon is NULL, self will go back using style information or default theming for its background image.

If this method is called and an icon name was already set as background for the icon, icon will be used, i.e. the last method called between gtk_numerable_icon_set_background_gicon() and gtk_numerable_icon_set_background_icon_name() has always priority.

Deprecated: since version 3.14.

The function takes the following parameters:

  • icon (optional) or NULL.

func (*NumerableIcon) SetBackgroundIconName deprecated

func (self *NumerableIcon) SetBackgroundIconName(iconName string)

SetBackgroundIconName updates the icon to use the icon named icon_name from the current icon theme as the base background image. If icon_name is NULL, self will go back using style information or default theming for its background image.

If this method is called and a #GIcon was already set as background for the icon, icon_name will be used, i.e. the last method called between gtk_numerable_icon_set_background_icon_name() and gtk_numerable_icon_set_background_gicon() has always priority.

Deprecated: since version 3.14.

The function takes the following parameters:

  • iconName (optional): icon name, or NULL.

func (*NumerableIcon) SetCount deprecated

func (self *NumerableIcon) SetCount(count int)

SetCount sets the currently displayed value of self to count.

The numeric value is always clamped to make it two digits, i.e. between -99 and 99. Setting a count of zero removes the emblem. If this method is called, and a label was already set on the icon, it will automatically be reset to NULL before rendering the number, i.e. the last method called between gtk_numerable_icon_set_count() and gtk_numerable_icon_set_label() has always priority.

Deprecated: since version 3.14.

The function takes the following parameters:

  • count: number between -99 and 99.

func (*NumerableIcon) SetLabel deprecated

func (self *NumerableIcon) SetLabel(label string)

SetLabel sets the currently displayed value of self to the string in label. Setting an empty label removes the emblem.

Note that this is meant for displaying short labels, such as roman numbers, or single letters. For roman numbers, consider using the Unicode characters U+2160 - U+217F. Strings longer than two characters will likely not be rendered very well.

If this method is called, and a number was already set on the icon, it will automatically be reset to zero before rendering the label, i.e. the last method called between gtk_numerable_icon_set_label() and gtk_numerable_icon_set_count() has always priority.

Deprecated: since version 3.14.

The function takes the following parameters:

  • label (optional): short label, or NULL.

func (*NumerableIcon) SetStyleContext deprecated

func (self *NumerableIcon) SetStyleContext(style *StyleContext)

SetStyleContext updates the icon to fetch theme information from the given StyleContext.

Deprecated: since version 3.14.

The function takes the following parameters:

  • style: StyleContext.

func (*NumerableIcon) StyleContext deprecated

func (self *NumerableIcon) StyleContext() *StyleContext

StyleContext returns the StyleContext used by the icon for theming, or NULL if there’s none.

Deprecated: since version 3.14.

The function returns the following values:

  • styleContext (optional) or NULL. This object is internal to GTK+ and should not be unreffed. Use g_object_ref() if you want to keep it around.

type NumerableIconClass added in v0.0.5

type NumerableIconClass struct {
	// contains filtered or unexported fields
}

NumerableIconClass: instance of this type is always passed by reference.

func (*NumerableIconClass) Padding added in v0.0.5

func (n *NumerableIconClass) Padding() [16]unsafe.Pointer

func (*NumerableIconClass) ParentClass added in v0.0.5

func (n *NumerableIconClass) ParentClass() *gio.EmblemedIconClass

type NumerableIconOverrides added in v0.0.5

type NumerableIconOverrides struct {
}

NumerableIconOverrides contains methods that are overridable.

type OffscreenWindow

type OffscreenWindow struct {
	Window
	// contains filtered or unexported fields
}

OffscreenWindow is strictly intended to be used for obtaining snapshots of widgets that are not part of a normal widget hierarchy. Since OffscreenWindow is a toplevel widget you cannot obtain snapshots of a full window with it since you cannot pack a toplevel widget in another toplevel.

The idea is to take a widget and manually set the state of it, add it to a GtkOffscreenWindow and then retrieve the snapshot as a #cairo_surface_t or Pixbuf.

GtkOffscreenWindow derives from Window only as an implementation detail. Applications should not use any API specific to Window to operate on this object. It should be treated as a Bin that has no parent widget.

When contained offscreen widgets are redrawn, GtkOffscreenWindow will emit a Widget::damage-event signal.

func NewOffscreenWindow

func NewOffscreenWindow() *OffscreenWindow

NewOffscreenWindow creates a toplevel container widget that is used to retrieve snapshots of widgets without showing them on the screen.

The function returns the following values:

  • offscreenWindow: pointer to a Widget.

func (*OffscreenWindow) Pixbuf

func (offscreen *OffscreenWindow) Pixbuf() *gdkpixbuf.Pixbuf

Pixbuf retrieves a snapshot of the contained widget in the form of a Pixbuf. This is a new pixbuf with a reference count of 1, and the application should unreference it once it is no longer needed.

The function returns the following values:

  • pixbuf (optional) pointer, or NULL.

func (*OffscreenWindow) Surface

func (offscreen *OffscreenWindow) Surface() *cairo.Surface

Surface retrieves a snapshot of the contained widget in the form of a #cairo_surface_t. If you need to keep this around over window resizes then you should add a reference to it.

The function returns the following values:

  • surface (optional) pointer to the offscreen surface, or NULL.

type OffscreenWindowClass added in v0.0.5

type OffscreenWindowClass struct {
	// contains filtered or unexported fields
}

OffscreenWindowClass: instance of this type is always passed by reference.

func (*OffscreenWindowClass) ParentClass added in v0.0.5

func (o *OffscreenWindowClass) ParentClass() *WindowClass

ParentClass: parent class.

type OffscreenWindowOverrides added in v0.0.5

type OffscreenWindowOverrides struct {
}

OffscreenWindowOverrides contains methods that are overridable.

type Orientable

type Orientable struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

Orientable interface is implemented by all widgets that can be oriented horizontally or vertically. Historically, such widgets have been realized as subclasses of a common base class (e.g Box/HBox/VBox or Scale/HScale/VScale). Orientable is more flexible in that it allows the orientation to be changed at runtime, allowing the widgets to “flip”.

Orientable was introduced in GTK+ 2.16.

Orientable wraps an interface. This means the user can get the underlying type by calling Cast().

func (*Orientable) Orientation

func (orientable *Orientable) Orientation() Orientation

Orientation retrieves the orientation of the orientable.

The function returns the following values:

  • orientation of the orientable.

func (*Orientable) SetOrientation

func (orientable *Orientable) SetOrientation(orientation Orientation)

SetOrientation sets the orientation of the orientable.

The function takes the following parameters:

  • orientation orientable’s new orientation.

type OrientableIface added in v0.0.5

type OrientableIface struct {
	// contains filtered or unexported fields
}

OrientableIface: instance of this type is always passed by reference.

type OrientableOverrider

type OrientableOverrider interface {
}

OrientableOverrider contains methods that are overridable.

type Orientabler

type Orientabler interface {
	coreglib.Objector

	// Orientation retrieves the orientation of the orientable.
	Orientation() Orientation
	// SetOrientation sets the orientation of the orientable.
	SetOrientation(orientation Orientation)
}

Orientabler describes Orientable's interface methods.

type Orientation

type Orientation C.gint

Orientation represents the orientation of widgets and other objects which can be switched between horizontal and vertical orientation on the fly, like Toolbar or GesturePan.

const (
	// OrientationHorizontal: element is in horizontal orientation.
	OrientationHorizontal Orientation = iota
	// OrientationVertical: element is in vertical orientation.
	OrientationVertical
)

func (Orientation) String

func (o Orientation) String() string

String returns the name in string for Orientation.

type Overlay

type Overlay struct {
	Bin
	// contains filtered or unexported fields
}

Overlay is a container which contains a single main child, on top of which it can place “overlay” widgets. The position of each overlay widget is determined by its Widget:halign and Widget:valign properties. E.g. a widget with both alignments set to GTK_ALIGN_START will be placed at the top left corner of the GtkOverlay container, whereas an overlay with halign set to GTK_ALIGN_CENTER and valign set to GTK_ALIGN_END will be placed a the bottom edge of the GtkOverlay, horizontally centered. The position can be adjusted by setting the margin properties of the child to non-zero values.

More complicated placement of overlays is possible by connecting to the Overlay::get-child-position signal.

An overlay’s minimum and natural sizes are those of its main child. The sizes of overlay children are not considered when measuring these preferred sizes.

GtkOverlay as GtkBuildable

The GtkOverlay implementation of the GtkBuildable interface supports placing a child as an overlay by specifying “overlay” as the “type” attribute of a <child> element.

CSS nodes

GtkOverlay has a single CSS node with the name “overlay”. Overlay children whose alignments cause them to be positioned at an edge get the style classes “.left”, “.right”, “.top”, and/or “.bottom” according to their position.

func NewOverlay

func NewOverlay() *Overlay

NewOverlay creates a new Overlay.

The function returns the following values:

  • overlay: new Overlay object.

func (*Overlay) AddOverlay

func (overlay *Overlay) AddOverlay(widget Widgetter)

AddOverlay adds widget to overlay.

The widget will be stacked on top of the main widget added with gtk_container_add().

The position at which widget is placed is determined from its Widget:halign and Widget:valign properties.

The function takes the following parameters:

  • widget to be added to the container.

func (*Overlay) ConnectGetChildPosition

func (overlay *Overlay) ConnectGetChildPosition(f func(widget Widgetter) (allocation *gdk.Rectangle, ok bool)) coreglib.SignalHandle

ConnectGetChildPosition signal is emitted to determine the position and size of any overlay child widgets. A handler for this signal should fill allocation with the desired position and size for widget, relative to the 'main' child of overlay.

The default handler for this signal uses the widget's halign and valign properties to determine the position and gives the widget its natural size (except that an alignment of GTK_ALIGN_FILL will cause the overlay to be full-width/height). If the main child is a ScrolledWindow, the overlays are placed relative to its contents.

func (*Overlay) OverlayPassThrough

func (overlay *Overlay) OverlayPassThrough(widget Widgetter) bool

OverlayPassThrough: convenience function to get the value of the Overlay:pass-through child property for widget.

The function takes the following parameters:

  • widget: overlay child of Overlay.

The function returns the following values:

  • ok: whether the widget is a pass through child.

func (*Overlay) ReorderOverlay

func (overlay *Overlay) ReorderOverlay(child Widgetter, index_ int)

ReorderOverlay moves child to a new index in the list of overlay children. The list contains overlays in the order that these were added to overlay by default. See also Overlay:index.

A widget’s index in the overlay children list determines which order the children are drawn if they overlap. The first child is drawn at the bottom. It also affects the default focus chain order.

The function takes the following parameters:

  • child: overlaid Widget to move.
  • index_: new index for child in the list of overlay children of overlay, starting from 0. If negative, indicates the end of the list.

func (*Overlay) SetOverlayPassThrough

func (overlay *Overlay) SetOverlayPassThrough(widget Widgetter, passThrough bool)

SetOverlayPassThrough: convenience function to set the value of the Overlay:pass-through child property for widget.

The function takes the following parameters:

  • widget: overlay child of Overlay.
  • passThrough: whether the child should pass the input through.

type OverlayClass added in v0.0.5

type OverlayClass struct {
	// contains filtered or unexported fields
}

OverlayClass: instance of this type is always passed by reference.

func (*OverlayClass) ParentClass added in v0.0.5

func (o *OverlayClass) ParentClass() *BinClass

ParentClass: parent class.

type OverlayOverrides added in v0.0.5

type OverlayOverrides struct {
	// The function takes the following parameters:
	//
	//   - widget
	//   - allocation
	//
	// The function returns the following values:
	//
	ChildPosition func(widget Widgetter, allocation *Allocation) bool
}

OverlayOverrides contains methods that are overridable.

type PackDirection

type PackDirection C.gint

PackDirection determines how widgets should be packed inside menubars and menuitems contained in menubars.

const (
	// PackDirectionLTR widgets are packed left-to-right.
	PackDirectionLTR PackDirection = iota
	// PackDirectionRTL widgets are packed right-to-left.
	PackDirectionRTL
	// PackDirectionTtb widgets are packed top-to-bottom.
	PackDirectionTtb
	// PackDirectionBtt widgets are packed bottom-to-top.
	PackDirectionBtt
)

func (PackDirection) String

func (p PackDirection) String() string

String returns the name in string for PackDirection.

type PackType

type PackType C.gint

PackType represents the packing location Box children. (See: VBox, HBox, and ButtonBox).

const (
	// PackStart: child is packed into the start of the box.
	PackStart PackType = iota
	// PackEnd: child is packed into the end of the box.
	PackEnd
)

func (PackType) String

func (p PackType) String() string

String returns the name in string for PackType.

type PadActionEntry

type PadActionEntry struct {
	// contains filtered or unexported fields
}

PadActionEntry: struct defining a pad action entry.

An instance of this type is always passed by reference.

func (*PadActionEntry) ActionName

func (p *PadActionEntry) ActionName() string

ActionName: action name that will be activated in the Group.

func (*PadActionEntry) Index

func (p *PadActionEntry) Index() int

Index: 0-indexed button/ring/strip number that will trigger this action entry.

func (*PadActionEntry) Label

func (p *PadActionEntry) Label() string

Label: human readable description of this action entry, this string should be deemed user-visible.

func (*PadActionEntry) Mode

func (p *PadActionEntry) Mode() int

Mode: mode that will trigger this action entry, or -1 for all modes.

func (*PadActionEntry) SetIndex

func (p *PadActionEntry) SetIndex(index int)

Index: 0-indexed button/ring/strip number that will trigger this action entry.

func (*PadActionEntry) SetMode

func (p *PadActionEntry) SetMode(mode int)

Mode: mode that will trigger this action entry, or -1 for all modes.

func (*PadActionEntry) Type

func (p *PadActionEntry) Type() PadActionType

Type: type of pad feature that will trigger this action entry.

type PadActionType

type PadActionType C.gint

PadActionType: type of a pad action.

const (
	// PadActionButton: action is triggered by a pad button.
	PadActionButton PadActionType = iota
	// PadActionRing: action is triggered by a pad ring.
	PadActionRing
	// PadActionStrip: action is triggered by a pad strip.
	PadActionStrip
)

func (PadActionType) String

func (p PadActionType) String() string

String returns the name in string for PadActionType.

type PadController

type PadController struct {
	EventController
	// contains filtered or unexported fields
}

PadController is an event controller for the pads found in drawing tablets (The collection of buttons and tactile sensors often found around the stylus-sensitive area).

These buttons and sensors have no implicit meaning, and by default they perform no action, this event controller is provided to map those to #GAction objects, thus letting the application give those a more semantic meaning.

Buttons and sensors are not constrained to triggering a single action, some GDK_SOURCE_TABLET_PAD devices feature multiple "modes", all these input elements have one current mode, which may determine the final action being triggered. Pad devices often divide buttons and sensors into groups, all elements in a group share the same current mode, but different groups may have different modes. See gdk_device_pad_get_n_groups() and gdk_device_pad_get_group_n_modes().

Each of the actions that a given button/strip/ring performs for a given mode is defined by PadActionEntry, it contains an action name that will be looked up in the given Group and activated whenever the specified input element and mode are triggered.

A simple example of PadController usage, assigning button 1 in all modes and pad devices to an "invert-selection" action:

GtkPadActionEntry *pad_actions[] = {
  { GTK_PAD_ACTION_BUTTON, 1, -1, "Invert selection", "pad-actions.invert-selection" },
  …
};

…
action_group = g_simple_action_group_new ();
action = g_simple_action_new ("pad-actions.invert-selection", NULL);
g_signal_connect (action, "activate", on_invert_selection_activated, NULL);
g_action_map_add_action (G_ACTION_MAP (action_group), action);
…
pad_controller = gtk_pad_controller_new (window, action_group, NULL);

The actions belonging to rings/strips will be activated with a parameter of type G_VARIANT_TYPE_DOUBLE bearing the value of the given axis, it is required that those are made stateful and accepting this Type.

func NewPadController

func NewPadController(window *Window, group gio.ActionGrouper, pad gdk.Devicer) *PadController

NewPadController creates a new PadController that will associate events from pad to actions. A NULL pad may be provided so the controller manages all pad devices generically, it is discouraged to mix PadController objects with NULL and non-NULL pad argument on the same window, as execution order is not guaranteed.

The PadController is created with no mapped actions. In order to map pad events to actions, use gtk_pad_controller_set_action_entries() or gtk_pad_controller_set_action().

The function takes the following parameters:

  • window: Window.
  • group to trigger actions from.
  • pad (optional): GDK_SOURCE_TABLET_PAD device, or NULL to handle all pads.

The function returns the following values:

  • padController: newly created PadController.

func (*PadController) SetAction

func (controller *PadController) SetAction(typ PadActionType, index, mode int, label, actionName string)

SetAction adds an individual action to controller. This action will only be activated if the given button/ring/strip number in index is interacted while the current mode is mode. -1 may be used for simple cases, so the action is triggered on all modes.

The given label should be considered user-visible, so internationalization rules apply. Some windowing systems may be able to use those for user feedback.

The function takes the following parameters:

  • typ: type of pad feature that will trigger this action.
  • index: 0-indexed button/ring/strip number that will trigger this action.
  • mode that will trigger this action, or -1 for all modes.
  • label: human readable description of this action, this string should be deemed user-visible.
  • actionName: action name that will be activated in the Group.

func (*PadController) SetActionEntries

func (controller *PadController) SetActionEntries(entries []PadActionEntry)

SetActionEntries: this is a convenience function to add a group of action entries on controller. See PadActionEntry and gtk_pad_controller_set_action().

The function takes the following parameters:

  • entries: action entries to set on controller.

type PageOrientation

type PageOrientation C.gint

PageOrientation: see also gtk_print_settings_set_orientation().

const (
	// PageOrientationPortrait: portrait mode.
	PageOrientationPortrait PageOrientation = iota
	// PageOrientationLandscape: landscape mode.
	PageOrientationLandscape
	// PageOrientationReversePortrait: reverse portrait mode.
	PageOrientationReversePortrait
	// PageOrientationReverseLandscape: reverse landscape mode.
	PageOrientationReverseLandscape
)

func (PageOrientation) String

func (p PageOrientation) String() string

String returns the name in string for PageOrientation.

type PageRange

type PageRange struct {
	// contains filtered or unexported fields
}

PageRange: see also gtk_print_settings_set_page_ranges().

An instance of this type is always passed by reference.

func NewPageRange

func NewPageRange(start, end int) PageRange

NewPageRange creates a new PageRange instance from the given fields. Beware that this function allocates on the Go heap; be careful when using it!

func (*PageRange) End

func (p *PageRange) End() int

End: end of page range.

func (*PageRange) SetEnd

func (p *PageRange) SetEnd(end int)

End: end of page range.

func (*PageRange) SetStart

func (p *PageRange) SetStart(start int)

Start: start of page range.

func (*PageRange) Start

func (p *PageRange) Start() int

Start: start of page range.

type PageSet

type PageSet C.gint

PageSet: see also gtk_print_job_set_page_set().

const (
	// PageSetAll: all pages.
	PageSetAll PageSet = iota
	// PageSetEven: even pages.
	PageSetEven
	// PageSetOdd: odd pages.
	PageSetOdd
)

func (PageSet) String

func (p PageSet) String() string

String returns the name in string for PageSet.

type PageSetup

type PageSetup struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

PageSetup object stores the page size, orientation and margins. The idea is that you can get one of these from the page setup dialog and then pass it to the PrintOperation when printing. The benefit of splitting this out of the PrintSettings is that these affect the actual layout of the page, and thus need to be set long before user prints.

Margins

The margins specified in this object are the “print margins”, i.e. the parts of the page that the printer cannot print on. These are different from the layout margins that a word processor uses; they are typically used to determine the minimal size for the layout margins.

To obtain a PageSetup use gtk_page_setup_new() to get the defaults, or use gtk_print_run_page_setup_dialog() to show the page setup dialog and receive the resulting page setup.

A page setup dialog

static GtkPrintSettings *settings = NULL;
static GtkPageSetup *page_setup = NULL;

static void
do_page_setup (void)
{
  GtkPageSetup *new_page_setup;

  if (settings == NULL)
    settings = gtk_print_settings_new ();

  new_page_setup = gtk_print_run_page_setup_dialog (GTK_WINDOW (main_window),
                                                    page_setup, settings);

  if (page_setup)
    g_object_unref (page_setup);

  page_setup = new_page_setup;
}

Printing support was added in GTK+ 2.10.

func NewPageSetup

func NewPageSetup() *PageSetup

NewPageSetup creates a new PageSetup.

The function returns the following values:

  • pageSetup: new PageSetup.

func NewPageSetupFromFile

func NewPageSetupFromFile(fileName string) (*PageSetup, error)

NewPageSetupFromFile reads the page setup from the file file_name. Returns a new PageSetup object with the restored page setup, or NULL if an error occurred. See gtk_page_setup_to_file().

The function takes the following parameters:

  • fileName: filename to read the page setup from.

The function returns the following values:

  • pageSetup: restored PageSetup.

func NewPageSetupFromGVariant

func NewPageSetupFromGVariant(variant *glib.Variant) *PageSetup

NewPageSetupFromGVariant: desrialize a page setup from an a{sv} variant in the format produced by gtk_page_setup_to_gvariant().

The function takes the following parameters:

  • variant: a{sv} #GVariant.

The function returns the following values:

  • pageSetup: new PageSetup object.

func NewPageSetupFromKeyFile

func NewPageSetupFromKeyFile(keyFile *glib.KeyFile, groupName string) (*PageSetup, error)

NewPageSetupFromKeyFile reads the page setup from the group group_name in the key file key_file. Returns a new PageSetup object with the restored page setup, or NULL if an error occurred.

The function takes the following parameters:

  • keyFile to retrieve the page_setup from.
  • groupName (optional): name of the group in the key_file to read, or NULL to use the default name “Page Setup”.

The function returns the following values:

  • pageSetup: restored PageSetup.

func PrintRunPageSetupDialog

func PrintRunPageSetupDialog(parent *Window, pageSetup *PageSetup, settings *PrintSettings) *PageSetup

PrintRunPageSetupDialog runs a page setup dialog, letting the user modify the values from page_setup. If the user cancels the dialog, the returned PageSetup is identical to the passed in page_setup, otherwise it contains the modifications done in the dialog.

Note that this function may use a recursive mainloop to show the page setup dialog. See gtk_print_run_page_setup_dialog_async() if this is a problem.

The function takes the following parameters:

  • parent (optional): transient parent.
  • pageSetup (optional): existing PageSetup.
  • settings: PrintSettings.

The function returns the following values:

  • pageSetup: new PageSetup.

func (*PageSetup) BottomMargin

func (setup *PageSetup) BottomMargin(unit Unit) float64

BottomMargin gets the bottom margin in units of unit.

The function takes the following parameters:

  • unit for the return value.

The function returns the following values:

  • gdouble: bottom margin.

func (*PageSetup) Copy

func (other *PageSetup) Copy() *PageSetup

Copy copies a PageSetup.

The function returns the following values:

  • pageSetup: copy of other.

func (*PageSetup) LeftMargin

func (setup *PageSetup) LeftMargin(unit Unit) float64

LeftMargin gets the left margin in units of unit.

The function takes the following parameters:

  • unit for the return value.

The function returns the following values:

  • gdouble: left margin.

func (*PageSetup) LoadFile

func (setup *PageSetup) LoadFile(fileName string) error

LoadFile reads the page setup from the file file_name. See gtk_page_setup_to_file().

The function takes the following parameters:

  • fileName: filename to read the page setup from.

func (*PageSetup) LoadKeyFile

func (setup *PageSetup) LoadKeyFile(keyFile *glib.KeyFile, groupName string) error

LoadKeyFile reads the page setup from the group group_name in the key file key_file.

The function takes the following parameters:

  • keyFile to retrieve the page_setup from.
  • groupName (optional): name of the group in the key_file to read, or NULL to use the default name “Page Setup”.

func (*PageSetup) Orientation

func (setup *PageSetup) Orientation() PageOrientation

Orientation gets the page orientation of the PageSetup.

The function returns the following values:

  • pageOrientation: page orientation.

func (*PageSetup) PageHeight

func (setup *PageSetup) PageHeight(unit Unit) float64

PageHeight returns the page height in units of unit.

Note that this function takes orientation and margins into consideration. See gtk_page_setup_get_paper_height().

The function takes the following parameters:

  • unit for the return value.

The function returns the following values:

  • gdouble: page height.

func (*PageSetup) PageWidth

func (setup *PageSetup) PageWidth(unit Unit) float64

PageWidth returns the page width in units of unit.

Note that this function takes orientation and margins into consideration. See gtk_page_setup_get_paper_width().

The function takes the following parameters:

  • unit for the return value.

The function returns the following values:

  • gdouble: page width.

func (*PageSetup) PaperHeight

func (setup *PageSetup) PaperHeight(unit Unit) float64

PaperHeight returns the paper height in units of unit.

Note that this function takes orientation, but not margins into consideration. See gtk_page_setup_get_page_height().

The function takes the following parameters:

  • unit for the return value.

The function returns the following values:

  • gdouble: paper height.

func (*PageSetup) PaperSize

func (setup *PageSetup) PaperSize() *PaperSize

PaperSize gets the paper size of the PageSetup.

The function returns the following values:

  • paperSize: paper size.

func (*PageSetup) PaperWidth

func (setup *PageSetup) PaperWidth(unit Unit) float64

PaperWidth returns the paper width in units of unit.

Note that this function takes orientation, but not margins into consideration. See gtk_page_setup_get_page_width().

The function takes the following parameters:

  • unit for the return value.

The function returns the following values:

  • gdouble: paper width.

func (*PageSetup) RightMargin

func (setup *PageSetup) RightMargin(unit Unit) float64

RightMargin gets the right margin in units of unit.

The function takes the following parameters:

  • unit for the return value.

The function returns the following values:

  • gdouble: right margin.

func (*PageSetup) SetBottomMargin

func (setup *PageSetup) SetBottomMargin(margin float64, unit Unit)

SetBottomMargin sets the bottom margin of the PageSetup.

The function takes the following parameters:

  • margin: new bottom margin in units of unit.
  • unit units for margin.

func (*PageSetup) SetLeftMargin

func (setup *PageSetup) SetLeftMargin(margin float64, unit Unit)

SetLeftMargin sets the left margin of the PageSetup.

The function takes the following parameters:

  • margin: new left margin in units of unit.
  • unit units for margin.

func (*PageSetup) SetOrientation

func (setup *PageSetup) SetOrientation(orientation PageOrientation)

SetOrientation sets the page orientation of the PageSetup.

The function takes the following parameters:

  • orientation: PageOrientation value.

func (*PageSetup) SetPaperSize

func (setup *PageSetup) SetPaperSize(size *PaperSize)

SetPaperSize sets the paper size of the PageSetup without changing the margins. See gtk_page_setup_set_paper_size_and_default_margins().

The function takes the following parameters:

  • size: PaperSize.

func (*PageSetup) SetPaperSizeAndDefaultMargins

func (setup *PageSetup) SetPaperSizeAndDefaultMargins(size *PaperSize)

SetPaperSizeAndDefaultMargins sets the paper size of the PageSetup and modifies the margins according to the new paper size.

The function takes the following parameters:

  • size: PaperSize.

func (*PageSetup) SetRightMargin

func (setup *PageSetup) SetRightMargin(margin float64, unit Unit)

SetRightMargin sets the right margin of the PageSetup.

The function takes the following parameters:

  • margin: new right margin in units of unit.
  • unit units for margin.

func (*PageSetup) SetTopMargin

func (setup *PageSetup) SetTopMargin(margin float64, unit Unit)

SetTopMargin sets the top margin of the PageSetup.

The function takes the following parameters:

  • margin: new top margin in units of unit.
  • unit units for margin.

func (*PageSetup) ToFile

func (setup *PageSetup) ToFile(fileName string) error

ToFile: this function saves the information from setup to file_name.

The function takes the following parameters:

  • fileName: file to save to.

func (*PageSetup) ToGVariant

func (setup *PageSetup) ToGVariant() *glib.Variant

ToGVariant: serialize page setup to an a{sv} variant.

The function returns the following values:

  • variant: new, floating, #GVariant.

func (*PageSetup) ToKeyFile

func (setup *PageSetup) ToKeyFile(keyFile *glib.KeyFile, groupName string)

ToKeyFile: this function adds the page setup from setup to key_file.

The function takes the following parameters:

  • keyFile to save the page setup to.
  • groupName (optional): group to add the settings to in key_file, or NULL to use the default name “Page Setup”.

func (*PageSetup) TopMargin

func (setup *PageSetup) TopMargin(unit Unit) float64

TopMargin gets the top margin in units of unit.

The function takes the following parameters:

  • unit for the return value.

The function returns the following values:

  • gdouble: top margin.

type PageSetupDoneFunc

type PageSetupDoneFunc func(pageSetup *PageSetup)

PageSetupDoneFunc: type of function that is passed to gtk_print_run_page_setup_dialog_async().

This function will be called when the page setup dialog is dismissed, and also serves as destroy notify for data.

type PanDirection

type PanDirection C.gint

PanDirection describes the panning direction of a GesturePan.

const (
	// PanDirectionLeft: panned towards the left.
	PanDirectionLeft PanDirection = iota
	// PanDirectionRight: panned towards the right.
	PanDirectionRight
	// PanDirectionUp: panned upwards.
	PanDirectionUp
	// PanDirectionDown: panned downwards.
	PanDirectionDown
)

func (PanDirection) String

func (p PanDirection) String() string

String returns the name in string for PanDirection.

type Paned

type Paned struct {
	Container

	*coreglib.Object
	Orientable
	// contains filtered or unexported fields
}

Paned has two panes, arranged either horizontally or vertically. The division between the two panes is adjustable by the user by dragging a handle.

Child widgets are added to the panes of the widget with gtk_paned_pack1() and gtk_paned_pack2(). The division between the two children is set by default from the size requests of the children, but it can be adjusted by the user.

A paned widget draws a separator between the two child widgets and a small handle that the user can drag to adjust the division. It does not draw any relief around the children or around the separator. (The space in which the separator is called the gutter.) Often, it is useful to put each child inside a Frame with the shadow type set to GTK_SHADOW_IN so that the gutter appears as a ridge. No separator is drawn if one of the children is missing.

Each child has two options that can be set, resize and shrink. If resize is true, then when the Paned is resized, that child will expand or shrink along with the paned widget. If shrink is true, then that child can be made smaller than its requisition by the user. Setting shrink to FALSE allows the application to set a minimum size. If resize is false for both children, then this is treated as if resize is true for both children.

The application can set the position of the slider as if it were set by the user, by calling gtk_paned_set_position().

CSS nodes

GtkWidget *hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
GtkWidget *frame1 = gtk_frame_new (NULL);
GtkWidget *frame2 = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN);
gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_IN);

gtk_widget_set_size_request (hpaned, 200, -1);

gtk_paned_pack1 (GTK_PANED (hpaned), frame1, TRUE, FALSE);
gtk_widget_set_size_request (frame1, 50, -1);

gtk_paned_pack2 (GTK_PANED (hpaned), frame2, FALSE, FALSE);
gtk_widget_set_size_request (frame2, 50, -1);.

func NewPaned

func NewPaned(orientation Orientation) *Paned

NewPaned creates a new Paned widget.

The function takes the following parameters:

  • orientation paned’s orientation.

The function returns the following values:

  • paned: new Paned.

func (*Paned) Add1

func (paned *Paned) Add1(child Widgetter)

Add1 adds a child to the top or left pane with default parameters. This is equivalent to gtk_paned_pack1 (paned, child, FALSE, TRUE).

The function takes the following parameters:

  • child to add.

func (*Paned) Add2

func (paned *Paned) Add2(child Widgetter)

Add2 adds a child to the bottom or right pane with default parameters. This is equivalent to gtk_paned_pack2 (paned, child, TRUE, TRUE).

The function takes the following parameters:

  • child to add.

func (*Paned) Child1

func (paned *Paned) Child1() Widgetter

Child1 obtains the first child of the paned widget.

The function returns the following values:

  • widget (optional): first child, or NULL if it is not set.

func (*Paned) Child2

func (paned *Paned) Child2() Widgetter

Child2 obtains the second child of the paned widget.

The function returns the following values:

  • widget (optional): second child, or NULL if it is not set.

func (*Paned) ConnectAcceptPosition

func (paned *Paned) ConnectAcceptPosition(f func() (ok bool)) coreglib.SignalHandle

ConnectAcceptPosition signal is a [keybinding signal][GtkBindingSignal] which gets emitted to accept the current position of the handle when moving it using key bindings.

The default binding for this signal is Return or Space.

func (*Paned) ConnectCancelPosition

func (paned *Paned) ConnectCancelPosition(f func() (ok bool)) coreglib.SignalHandle

ConnectCancelPosition signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cancel moving the position of the handle using key bindings. The position of the handle will be reset to the value prior to moving it.

The default binding for this signal is Escape.

func (*Paned) ConnectCycleChildFocus

func (paned *Paned) ConnectCycleChildFocus(f func(reversed bool) (ok bool)) coreglib.SignalHandle

ConnectCycleChildFocus signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cycle the focus between the children of the paned.

The default binding is f6.

func (*Paned) ConnectCycleHandleFocus

func (paned *Paned) ConnectCycleHandleFocus(f func(reversed bool) (ok bool)) coreglib.SignalHandle

ConnectCycleHandleFocus signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cycle whether the paned should grab focus to allow the user to change position of the handle by using key bindings.

The default binding for this signal is f8.

func (*Paned) ConnectMoveHandle

func (paned *Paned) ConnectMoveHandle(f func(scrollType ScrollType) (ok bool)) coreglib.SignalHandle

ConnectMoveHandle signal is a [keybinding signal][GtkBindingSignal] which gets emitted to move the handle when the user is using key bindings to move it.

func (*Paned) ConnectToggleHandleFocus

func (paned *Paned) ConnectToggleHandleFocus(f func() (ok bool)) coreglib.SignalHandle

ConnectToggleHandleFocus is a [keybinding signal][GtkBindingSignal] which gets emitted to accept the current position of the handle and then move focus to the next widget in the focus chain.

The default binding is Tab.

func (*Paned) HandleWindow

func (paned *Paned) HandleWindow() gdk.Windower

HandleWindow returns the Window of the handle. This function is useful when handling button or motion events because it enables the callback to distinguish between the window of the paned, a child and the handle.

The function returns the following values:

  • window paned’s handle window.

func (*Paned) Pack1

func (paned *Paned) Pack1(child Widgetter, resize, shrink bool)

Pack1 adds a child to the top or left pane.

The function takes the following parameters:

  • child to add.
  • resize: should this child expand when the paned widget is resized.
  • shrink: can this child be made smaller than its requisition.

func (*Paned) Pack2

func (paned *Paned) Pack2(child Widgetter, resize, shrink bool)

Pack2 adds a child to the bottom or right pane.

The function takes the following parameters:

  • child to add.
  • resize: should this child expand when the paned widget is resized.
  • shrink: can this child be made smaller than its requisition.

func (*Paned) Position

func (paned *Paned) Position() int

Position obtains the position of the divider between the two panes.

The function returns the following values:

  • gint: position of the divider.

func (*Paned) SetPosition

func (paned *Paned) SetPosition(position int)

SetPosition sets the position of the divider between the two panes.

The function takes the following parameters:

  • position: pixel position of divider, a negative value means that the position is unset.

func (*Paned) SetWideHandle

func (paned *Paned) SetWideHandle(wide bool)

SetWideHandle sets the Paned:wide-handle property.

The function takes the following parameters:

  • wide: new value for the Paned:wide-handle property.

func (*Paned) WideHandle

func (paned *Paned) WideHandle() bool

WideHandle gets the Paned:wide-handle property.

The function returns the following values:

  • ok: TRUE if the paned should have a wide handle.

type PanedAccessible

type PanedAccessible struct {
	ContainerAccessible

	atk.Value
	// contains filtered or unexported fields
}

type PanedAccessibleClass added in v0.0.5

type PanedAccessibleClass struct {
	// contains filtered or unexported fields
}

PanedAccessibleClass: instance of this type is always passed by reference.

func (*PanedAccessibleClass) ParentClass added in v0.0.5

type PanedAccessibleOverrides added in v0.0.5

type PanedAccessibleOverrides struct {
}

PanedAccessibleOverrides contains methods that are overridable.

type PanedClass added in v0.0.5

type PanedClass struct {
	// contains filtered or unexported fields
}

PanedClass: instance of this type is always passed by reference.

func (*PanedClass) ParentClass added in v0.0.5

func (p *PanedClass) ParentClass() *ContainerClass

type PanedOverrides added in v0.0.5

type PanedOverrides struct {
	// The function returns the following values:
	//
	AcceptPosition func() bool
	// The function returns the following values:
	//
	CancelPosition func() bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	CycleChildFocus func(reverse bool) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	CycleHandleFocus func(reverse bool) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	MoveHandle func(scroll ScrollType) bool
	// The function returns the following values:
	//
	ToggleHandleFocus func() bool
}

PanedOverrides contains methods that are overridable.

type PaperSize

type PaperSize struct {
	// contains filtered or unexported fields
}

PaperSize handles paper sizes. It uses the standard called PWG 5101.1-2002 PWG: Standard for Media Standardized Names (http://www.pwg.org/standards.html) to name the paper sizes (and to get the data for the page sizes). In addition to standard paper sizes, GtkPaperSize allows to construct custom paper sizes with arbitrary dimensions.

The PaperSize object stores not only the dimensions (width and height) of a paper size and its name, it also provides default [print margins][print-margins].

Printing support has been added in GTK+ 2.10.

An instance of this type is always passed by reference.

func NewPaperSize

func NewPaperSize(name string) *PaperSize

NewPaperSize constructs a struct PaperSize.

func NewPaperSizeCustom

func NewPaperSizeCustom(name string, displayName string, width float64, height float64, unit Unit) *PaperSize

NewPaperSizeCustom constructs a struct PaperSize.

func NewPaperSizeFromGVariant

func NewPaperSizeFromGVariant(variant *glib.Variant) *PaperSize

NewPaperSizeFromGVariant constructs a struct PaperSize.

func NewPaperSizeFromIPP

func NewPaperSizeFromIPP(ippName string, width float64, height float64) *PaperSize

NewPaperSizeFromIPP constructs a struct PaperSize.

func NewPaperSizeFromKeyFile

func NewPaperSizeFromKeyFile(keyFile *glib.KeyFile, groupName string) (*PaperSize, error)

NewPaperSizeFromKeyFile constructs a struct PaperSize.

func NewPaperSizeFromPPD

func NewPaperSizeFromPPD(ppdName string, ppdDisplayName string, width float64, height float64) *PaperSize

NewPaperSizeFromPPD constructs a struct PaperSize.

func PaperSizeGetPaperSizes

func PaperSizeGetPaperSizes(includeCustom bool) []*PaperSize

PaperSizeGetPaperSizes creates a list of known paper sizes.

The function takes the following parameters:

  • includeCustom: whether to include custom paper sizes as defined in the page setup dialog.

The function returns the following values:

  • list: newly allocated list of newly allocated PaperSize objects.

func (*PaperSize) Copy

func (other *PaperSize) Copy() *PaperSize

Copy copies an existing PaperSize.

The function returns the following values:

  • paperSize: copy of other.

func (*PaperSize) DefaultBottomMargin

func (size *PaperSize) DefaultBottomMargin(unit Unit) float64

DefaultBottomMargin gets the default bottom margin for the PaperSize.

The function takes the following parameters:

  • unit for the return value, not GTK_UNIT_NONE.

The function returns the following values:

  • gdouble: default bottom margin.

func (*PaperSize) DefaultLeftMargin

func (size *PaperSize) DefaultLeftMargin(unit Unit) float64

DefaultLeftMargin gets the default left margin for the PaperSize.

The function takes the following parameters:

  • unit for the return value, not GTK_UNIT_NONE.

The function returns the following values:

  • gdouble: default left margin.

func (*PaperSize) DefaultRightMargin

func (size *PaperSize) DefaultRightMargin(unit Unit) float64

DefaultRightMargin gets the default right margin for the PaperSize.

The function takes the following parameters:

  • unit for the return value, not GTK_UNIT_NONE.

The function returns the following values:

  • gdouble: default right margin.

func (*PaperSize) DefaultTopMargin

func (size *PaperSize) DefaultTopMargin(unit Unit) float64

DefaultTopMargin gets the default top margin for the PaperSize.

The function takes the following parameters:

  • unit for the return value, not GTK_UNIT_NONE.

The function returns the following values:

  • gdouble: default top margin.

func (*PaperSize) DisplayName

func (size *PaperSize) DisplayName() string

DisplayName gets the human-readable name of the PaperSize.

The function returns the following values:

  • utf8: human-readable name of size.

func (*PaperSize) Height

func (size *PaperSize) Height(unit Unit) float64

Height gets the paper height of the PaperSize, in units of unit.

The function takes the following parameters:

  • unit for the return value, not GTK_UNIT_NONE.

The function returns the following values:

  • gdouble: paper height.

func (*PaperSize) IsCustom

func (size *PaperSize) IsCustom() bool

IsCustom returns TRUE if size is not a standard paper size.

The function returns the following values:

  • ok: whether size is a custom paper size.

func (*PaperSize) IsEqual

func (size1 *PaperSize) IsEqual(size2 *PaperSize) bool

IsEqual compares two PaperSize objects.

The function takes the following parameters:

  • size2: another PaperSize object.

The function returns the following values:

  • ok: TRUE, if size1 and size2 represent the same paper size.

func (*PaperSize) IsIPP

func (size *PaperSize) IsIPP() bool

IsIPP returns TRUE if size is an IPP standard paper size.

The function returns the following values:

  • ok: whether size is not an IPP custom paper size.

func (*PaperSize) Name

func (size *PaperSize) Name() string

Name gets the name of the PaperSize.

The function returns the following values:

  • utf8: name of size.

func (*PaperSize) PPDName

func (size *PaperSize) PPDName() string

PPDName gets the PPD name of the PaperSize, which may be NULL.

The function returns the following values:

  • utf8: PPD name of size.

func (*PaperSize) SetSize

func (size *PaperSize) SetSize(width float64, height float64, unit Unit)

SetSize changes the dimensions of a size to width x height.

The function takes the following parameters:

  • width: new width in units of unit.
  • height: new height in units of unit.
  • unit for width and height.

func (*PaperSize) ToGVariant

func (paperSize *PaperSize) ToGVariant() *glib.Variant

ToGVariant: serialize a paper size to an a{sv} variant.

The function returns the following values:

  • variant: new, floating, #GVariant.

func (*PaperSize) ToKeyFile

func (size *PaperSize) ToKeyFile(keyFile *glib.KeyFile, groupName string)

ToKeyFile: this function adds the paper size from size to key_file.

The function takes the following parameters:

  • keyFile to save the paper size to.
  • groupName: group to add the settings to in key_file.

func (*PaperSize) Width

func (size *PaperSize) Width(unit Unit) float64

Width gets the paper width of the PaperSize, in units of unit.

The function takes the following parameters:

  • unit for the return value, not GTK_UNIT_NONE.

The function returns the following values:

  • gdouble: paper width.

type PathPriorityType deprecated

type PathPriorityType C.gint

PathPriorityType priorities for path lookups. See also gtk_binding_set_add_path().

Deprecated: since version 3.0.

const (
	// PathPrioLowest: deprecated.
	PathPrioLowest PathPriorityType = 0
	// PathPrioGTK: deprecated.
	PathPrioGTK PathPriorityType = 4
	// PathPrioApplication: deprecated.
	PathPrioApplication PathPriorityType = 8
	// PathPrioTheme: deprecated.
	PathPrioTheme PathPriorityType = 10
	// PathPrioRC: deprecated.
	PathPrioRC PathPriorityType = 12
	// PathPrioHighest: deprecated.
	PathPrioHighest PathPriorityType = 15
)

func (PathPriorityType) String

func (p PathPriorityType) String() string

String returns the name in string for PathPriorityType.

type PathType deprecated

type PathType C.gint

PathType: widget path types. See also gtk_binding_set_add_path().

Deprecated: since version 3.0.

const (
	// PathWidget: deprecated.
	PathWidget PathType = iota
	// PathWidgetClass: deprecated.
	PathWidgetClass
	// PathClass: deprecated.
	PathClass
)

func (PathType) String

func (p PathType) String() string

String returns the name in string for PathType.

type PlacesOpenFlags

type PlacesOpenFlags C.guint

PlacesOpenFlags: these flags serve two purposes. First, the application can call gtk_places_sidebar_set_open_flags() using these flags as a bitmask. This tells the sidebar that the application is able to open folders selected from the sidebar in various ways, for example, in new tabs or in new windows in addition to the normal mode.

Second, when one of these values gets passed back to the application in the PlacesSidebar::open-location signal, it means that the application should open the selected location in the normal way, in a new tab, or in a new window. The sidebar takes care of determining the desired way to open the location, based on the modifier keys that the user is pressing at the time the selection is made.

If the application never calls gtk_places_sidebar_set_open_flags(), then the sidebar will only use K_PLACES_OPEN_NORMAL in the PlacesSidebar::open-location signal. This is the default mode of operation.

const (
	// PlacesOpenNormal: this is the default mode that PlacesSidebar uses if
	// no other flags are specified. It indicates that the calling application
	// should open the selected location in the normal way, for example,
	// in the folder view beside the sidebar.
	PlacesOpenNormal PlacesOpenFlags = 0b1
	// PlacesOpenNewTab: when passed to gtk_places_sidebar_set_open_flags(),
	// this indicates that the application can open folders selected
	// from the sidebar in new tabs. This value will be passed to the
	// PlacesSidebar::open-location signal when the user selects that a location
	// be opened in a new tab instead of in the standard fashion.
	PlacesOpenNewTab PlacesOpenFlags = 0b10
	// PlacesOpenNewWindow: similar to GTK_PLACES_OPEN_NEW_TAB, but indicates
	// that the application can open folders in new windows.
	PlacesOpenNewWindow PlacesOpenFlags = 0b100
)

func (PlacesOpenFlags) Has

func (p PlacesOpenFlags) Has(other PlacesOpenFlags) bool

Has returns true if p contains other.

func (PlacesOpenFlags) String

func (p PlacesOpenFlags) String() string

String returns the names in string for PlacesOpenFlags.

type PlacesSidebar

type PlacesSidebar struct {
	ScrolledWindow
	// contains filtered or unexported fields
}

PlacesSidebar is a widget that displays a list of frequently-used places in the file system: the user’s home directory, the user’s bookmarks, and volumes and drives. This widget is used as a sidebar in FileChooser and may be used by file managers and similar programs.

The places sidebar displays drives and volumes, and will automatically mount or unmount them when the user selects them.

Applications can hook to various signals in the places sidebar to customize its behavior. For example, they can add extra commands to the context menu of the sidebar.

While bookmarks are completely in control of the user, the places sidebar also allows individual applications to provide extra shortcut folders that are unique to each application. For example, a Paint program may want to add a shortcut for a Clipart folder. You can do this with gtk_places_sidebar_add_shortcut().

To make use of the places sidebar, an application at least needs to connect to the PlacesSidebar::open-location signal. This is emitted when the user selects in the sidebar a location to open. The application should also call gtk_places_sidebar_set_location() when it changes the currently-viewed location.

CSS nodes

GtkPlacesSidebar uses a single CSS node with name placessidebar and style class .sidebar.

Among the children of the places sidebar, the following style classes can be used:

- .sidebar-new-bookmark-row for the 'Add new bookmark' row

- .sidebar-placeholder-row for a row that is a placeholder

- .has-open-popup when a popup is open for a row.

func NewPlacesSidebar

func NewPlacesSidebar() *PlacesSidebar

NewPlacesSidebar creates a new PlacesSidebar widget.

The application should connect to at least the PlacesSidebar::open-location signal to be notified when the user makes a selection in the sidebar.

The function returns the following values:

  • placesSidebar: newly created PlacesSidebar.

func (*PlacesSidebar) AddShortcut

func (sidebar *PlacesSidebar) AddShortcut(location gio.Filer)

AddShortcut applications may want to present some folders in the places sidebar if they could be immediately useful to users. For example, a drawing program could add a “/usr/share/clipart” location when the sidebar is being used in an “Insert Clipart” dialog box.

This function adds the specified location to a special place for immutable shortcuts. The shortcuts are application-specific; they are not shared across applications, and they are not persistent. If this function is called multiple times with different locations, then they are added to the sidebar’s list in the same order as the function is called.

The function takes the following parameters:

  • location to add as an application-specific shortcut.

func (*PlacesSidebar) ConnectDragActionAsk

func (sidebar *PlacesSidebar) ConnectDragActionAsk(f func(actions int) (gint int)) coreglib.SignalHandle

ConnectDragActionAsk places sidebar emits this signal when it needs to ask the application to pop up a menu to ask the user for which drag action to perform.

func (*PlacesSidebar) ConnectMount

func (sidebar *PlacesSidebar) ConnectMount(f func(mountOperation *gio.MountOperation)) coreglib.SignalHandle

ConnectMount places sidebar emits this signal when it starts a new operation because the user clicked on some location that needs mounting. In this way the application using the PlacesSidebar can track the progress of the operation and, for example, show a notification.

func (*PlacesSidebar) ConnectOpenLocation

func (sidebar *PlacesSidebar) ConnectOpenLocation(f func(location gio.Filer, openFlags PlacesOpenFlags)) coreglib.SignalHandle

ConnectOpenLocation places sidebar emits this signal when the user selects a location in it. The calling application should display the contents of that location; for example, a file manager should show a list of files in the specified location.

func (*PlacesSidebar) ConnectPopulatePopup

func (sidebar *PlacesSidebar) ConnectPopulatePopup(f func(container Widgetter, selectedItem gio.Filer, selectedVolume gio.Volumer)) coreglib.SignalHandle

ConnectPopulatePopup places sidebar emits this signal when the user invokes a contextual popup on one of its items. In the signal handler, the application may add extra items to the menu as appropriate. For example, a file manager may want to add a "Properties" command to the menu.

It is not necessary to store the selected_item for each menu item; during their callbacks, the application can use gtk_places_sidebar_get_location() to get the file to which the item refers.

The selected_item argument may be NULL in case the selection refers to a volume. In this case, selected_volume will be non-NULL. In this case, the calling application will have to g_object_ref() the selected_volume and keep it around to use it in the callback.

The container and all its contents are destroyed after the user dismisses the popup. The popup is re-created (and thus, this signal is emitted) every time the user activates the contextual menu.

Before 3.18, the container always was a Menu, and you were expected to add your items as MenuItems. Since 3.18, the popup may be implemented as a Popover, in which case container will be something else, e.g. a Box, to which you may add ModelButtons or other widgets, such as Entries, SpinButtons, etc. If your application can deal with this situation, you can set PlacesSidebar::populate-all to TRUE to request that this signal is emitted for populating popovers as well.

func (*PlacesSidebar) ConnectShowConnectToServer

func (sidebar *PlacesSidebar) ConnectShowConnectToServer(f func()) coreglib.SignalHandle

ConnectShowConnectToServer places sidebar emits this signal when it needs the calling application to present an way to connect directly to a network server. For example, the application may bring up a dialog box asking for a URL like "sftp://ftp.example.com". It is up to the application to create the corresponding mount by using, for example, g_file_mount_enclosing_volume().

func (*PlacesSidebar) ConnectShowEnterLocation

func (sidebar *PlacesSidebar) ConnectShowEnterLocation(f func()) coreglib.SignalHandle

ConnectShowEnterLocation places sidebar emits this signal when it needs the calling application to present an way to directly enter a location. For example, the application may bring up a dialog box asking for a URL like "http://http.example.com".

func (*PlacesSidebar) ConnectShowErrorMessage

func (sidebar *PlacesSidebar) ConnectShowErrorMessage(f func(primary, secondary string)) coreglib.SignalHandle

ConnectShowErrorMessage places sidebar emits this signal when it needs the calling application to present an error message. Most of these messages refer to mounting or unmounting media, for example, when a drive cannot be started for some reason.

func (*PlacesSidebar) ConnectShowOtherLocations

func (sidebar *PlacesSidebar) ConnectShowOtherLocations(f func()) coreglib.SignalHandle

ConnectShowOtherLocations places sidebar emits this signal when it needs the calling application to present a way to show other locations e.g. drives and network access points. For example, the application may bring up a page showing persistent volumes and discovered network addresses.

func (*PlacesSidebar) ConnectShowOtherLocationsWithFlags

func (sidebar *PlacesSidebar) ConnectShowOtherLocationsWithFlags(f func(openFlags PlacesOpenFlags)) coreglib.SignalHandle

ConnectShowOtherLocationsWithFlags places sidebar emits this signal when it needs the calling application to present a way to show other locations e.g. drives and network access points. For example, the application may bring up a page showing persistent volumes and discovered network addresses.

func (*PlacesSidebar) ConnectShowStarredLocation

func (sidebar *PlacesSidebar) ConnectShowStarredLocation(f func(openFlags PlacesOpenFlags)) coreglib.SignalHandle

ConnectShowStarredLocation places sidebar emits this signal when it needs the calling application to present a way to show the starred files. In GNOME, starred files are implemented by setting the nao:predefined-tag-favorite tag in the tracker database.

func (*PlacesSidebar) ConnectUnmount

func (sidebar *PlacesSidebar) ConnectUnmount(f func(mountOperation *gio.MountOperation)) coreglib.SignalHandle

ConnectUnmount places sidebar emits this signal when it starts a new operation because the user for example ejected some drive or unmounted a mount. In this way the application using the PlacesSidebar can track the progress of the operation and, for example, show a notification.

func (*PlacesSidebar) ListShortcuts

func (sidebar *PlacesSidebar) ListShortcuts() []*gio.File

ListShortcuts gets the list of shortcuts.

The function returns the following values:

  • sList: A List of #GFile of the locations that have been added as application-specific shortcuts with gtk_places_sidebar_add_shortcut(). To free this list, you can use

    g_slist_free_full (list, (GDestroyNotify) g_object_unref);.

func (*PlacesSidebar) LocalOnly

func (sidebar *PlacesSidebar) LocalOnly() bool

LocalOnly returns the value previously set with gtk_places_sidebar_set_local_only().

The function returns the following values:

  • ok: TRUE if the sidebar will only show local files.

func (*PlacesSidebar) Location

func (sidebar *PlacesSidebar) Location() *gio.File

Location gets the currently selected location in the sidebar. This can be NULL when nothing is selected, for example, when gtk_places_sidebar_set_location() has been called with a location that is not among the sidebar’s list of places to show.

You can use this function to get the selection in the sidebar. Also, if you connect to the PlacesSidebar::populate-popup signal, you can use this function to get the location that is being referred to during the callbacks for your menu items.

The function returns the following values:

  • file (optional) with the selected location, or NULL if nothing is visually selected.

func (*PlacesSidebar) NthBookmark

func (sidebar *PlacesSidebar) NthBookmark(n int) *gio.File

NthBookmark: this function queries the bookmarks added by the user to the places sidebar, and returns one of them. This function is used by FileChooser to implement the “Alt-1”, “Alt-2”, etc. shortcuts, which activate the cooresponding bookmark.

The function takes the following parameters:

  • n: index of the bookmark to query.

The function returns the following values:

  • file (optional): bookmark specified by the index n, or NULL if no such index exist. Note that the indices start at 0, even though the file chooser starts them with the keyboard shortcut "Alt-1".

func (*PlacesSidebar) OpenFlags

func (sidebar *PlacesSidebar) OpenFlags() PlacesOpenFlags

OpenFlags gets the open flags.

The function returns the following values:

  • placesOpenFlags of sidebar.

func (*PlacesSidebar) RemoveShortcut

func (sidebar *PlacesSidebar) RemoveShortcut(location gio.Filer)

RemoveShortcut removes an application-specific shortcut that has been previously been inserted with gtk_places_sidebar_add_shortcut(). If the location is not a shortcut in the sidebar, then nothing is done.

The function takes the following parameters:

  • location to remove.

func (*PlacesSidebar) SetDropTargetsVisible

func (sidebar *PlacesSidebar) SetDropTargetsVisible(visible bool, context *gdk.DragContext)

SetDropTargetsVisible: make the GtkPlacesSidebar show drop targets, so it can show the available drop targets and a "new bookmark" row. This improves the Drag-and-Drop experience of the user and allows applications to show all available drop targets at once.

This needs to be called when the application is aware of an ongoing drag that might target the sidebar. The drop-targets-visible state will be unset automatically if the drag finishes in the GtkPlacesSidebar. You only need to unset the state when the drag ends on some other widget on your application.

The function takes the following parameters:

  • visible: whether to show the valid targets or not.
  • context: drag context used to ask the source about the action that wants to perform, so hints are more accurate.

func (*PlacesSidebar) SetLocalOnly

func (sidebar *PlacesSidebar) SetLocalOnly(localOnly bool)

SetLocalOnly sets whether the sidebar should only show local files.

The function takes the following parameters:

  • localOnly: whether to show only local files.

func (*PlacesSidebar) SetLocation

func (sidebar *PlacesSidebar) SetLocation(location gio.Filer)

SetLocation sets the location that is being shown in the widgets surrounding the sidebar, for example, in a folder view in a file manager. In turn, the sidebar will highlight that location if it is being shown in the list of places, or it will unhighlight everything if the location is not among the places in the list.

The function takes the following parameters:

  • location (optional) to select, or NULL for no current path.

func (*PlacesSidebar) SetOpenFlags

func (sidebar *PlacesSidebar) SetOpenFlags(flags PlacesOpenFlags)

SetOpenFlags sets the way in which the calling application can open new locations from the places sidebar. For example, some applications only open locations “directly” into their main view, while others may support opening locations in a new notebook tab or a new window.

This function is used to tell the places sidebar about the ways in which the application can open new locations, so that the sidebar can display (or not) the “Open in new tab” and “Open in new window” menu items as appropriate.

When the PlacesSidebar::open-location signal is emitted, its flags argument will be set to one of the flags that was passed in gtk_places_sidebar_set_open_flags().

Passing 0 for flags will cause K_PLACES_OPEN_NORMAL to always be sent to callbacks for the “open-location” signal.

The function takes the following parameters:

  • flags: bitmask of modes in which the calling application can open locations.

func (*PlacesSidebar) SetShowConnectToServer deprecated

func (sidebar *PlacesSidebar) SetShowConnectToServer(showConnectToServer bool)

SetShowConnectToServer sets whether the sidebar should show an item for connecting to a network server; this is off by default. An application may want to turn this on if it implements a way for the user to connect to network servers directly.

If you enable this, you should connect to the PlacesSidebar::show-connect-to-server signal.

Deprecated: It is recommended to group this functionality with the drives and network location under the new 'Other Location' item.

The function takes the following parameters:

  • showConnectToServer: whether to show an item for the Connect to Server command.

func (*PlacesSidebar) SetShowDesktop

func (sidebar *PlacesSidebar) SetShowDesktop(showDesktop bool)

SetShowDesktop sets whether the sidebar should show an item for the Desktop folder. The default value for this option is determined by the desktop environment and the user’s configuration, but this function can be used to override it on a per-application basis.

The function takes the following parameters:

  • showDesktop: whether to show an item for the Desktop folder.

func (*PlacesSidebar) SetShowEnterLocation

func (sidebar *PlacesSidebar) SetShowEnterLocation(showEnterLocation bool)

SetShowEnterLocation sets whether the sidebar should show an item for entering a location; this is off by default. An application may want to turn this on if manually entering URLs is an expected user action.

If you enable this, you should connect to the PlacesSidebar::show-enter-location signal.

The function takes the following parameters:

  • showEnterLocation: whether to show an item to enter a location.

func (*PlacesSidebar) SetShowOtherLocations

func (sidebar *PlacesSidebar) SetShowOtherLocations(showOtherLocations bool)

SetShowOtherLocations sets whether the sidebar should show an item for the application to show an Other Locations view; this is off by default. When set to TRUE, persistent devices such as hard drives are hidden, otherwise they are shown in the sidebar. An application may want to turn this on if it implements a way for the user to see and interact with drives and network servers directly.

If you enable this, you should connect to the PlacesSidebar::show-other-locations signal.

The function takes the following parameters:

  • showOtherLocations: whether to show an item for the Other Locations view.

func (*PlacesSidebar) SetShowRecent

func (sidebar *PlacesSidebar) SetShowRecent(showRecent bool)

SetShowRecent sets whether the sidebar should show an item for recent files. The default value for this option is determined by the desktop environment, but this function can be used to override it on a per-application basis.

The function takes the following parameters:

  • showRecent: whether to show an item for recent files.

func (*PlacesSidebar) SetShowStarredLocation

func (sidebar *PlacesSidebar) SetShowStarredLocation(showStarredLocation bool)

SetShowStarredLocation: if you enable this, you should connect to the PlacesSidebar::show-starred-location signal.

The function takes the following parameters:

  • showStarredLocation: whether to show an item for Starred files.

func (*PlacesSidebar) SetShowTrash

func (sidebar *PlacesSidebar) SetShowTrash(showTrash bool)

SetShowTrash sets whether the sidebar should show an item for the Trash location.

The function takes the following parameters:

  • showTrash: whether to show an item for the Trash location.

func (*PlacesSidebar) ShowConnectToServer deprecated

func (sidebar *PlacesSidebar) ShowConnectToServer() bool

ShowConnectToServer returns the value previously set with gtk_places_sidebar_set_show_connect_to_server()

Deprecated: It is recommended to group this functionality with the drives and network location under the new 'Other Location' item.

The function returns the following values:

  • ok: TRUE if the sidebar will display a “Connect to Server” item.

func (*PlacesSidebar) ShowDesktop

func (sidebar *PlacesSidebar) ShowDesktop() bool

ShowDesktop returns the value previously set with gtk_places_sidebar_set_show_desktop().

The function returns the following values:

  • ok: TRUE if the sidebar will display a builtin shortcut to the desktop folder.

func (*PlacesSidebar) ShowEnterLocation

func (sidebar *PlacesSidebar) ShowEnterLocation() bool

ShowEnterLocation returns the value previously set with gtk_places_sidebar_set_show_enter_location().

The function returns the following values:

  • ok: TRUE if the sidebar will display an “Enter Location” item.

func (*PlacesSidebar) ShowOtherLocations

func (sidebar *PlacesSidebar) ShowOtherLocations() bool

ShowOtherLocations returns the value previously set with gtk_places_sidebar_set_show_other_locations().

The function returns the following values:

  • ok: TRUE if the sidebar will display an “Other Locations” item.

func (*PlacesSidebar) ShowRecent

func (sidebar *PlacesSidebar) ShowRecent() bool

ShowRecent returns the value previously set with gtk_places_sidebar_set_show_recent().

The function returns the following values:

  • ok: TRUE if the sidebar will display a builtin shortcut for recent files.

func (*PlacesSidebar) ShowStarredLocation

func (sidebar *PlacesSidebar) ShowStarredLocation() bool

ShowStarredLocation returns the value previously set with gtk_places_sidebar_set_show_starred_location().

The function returns the following values:

  • ok: TRUE if the sidebar will display a Starred item.

func (*PlacesSidebar) ShowTrash

func (sidebar *PlacesSidebar) ShowTrash() bool

ShowTrash returns the value previously set with gtk_places_sidebar_set_show_trash().

The function returns the following values:

  • ok: TRUE if the sidebar will display a “Trash” item.

type Plug

type Plug struct {
	Window
	// contains filtered or unexported fields
}

Plug: together with Socket, Plug provides the ability to embed widgets from one process into another process in a fashion that is transparent to the user. One process creates a Socket widget and passes the ID of that widget’s window to the other process, which then creates a Plug with that window ID. Any widgets contained in the Plug then will appear inside the first application’s window.

The communication between a Socket and a Plug follows the XEmbed Protocol (http://www.freedesktop.org/Standards/xembed-spec). This protocol has also been implemented in other toolkits, e.g. Qt, allowing the same level of integration when embedding a Qt widget in GTK+ or vice versa.

The Plug and Socket widgets are only available when GTK+ is compiled for the X11 platform and GDK_WINDOWING_X11 is defined. They can only be used on a X11Display. To use Plug and Socket, you need to include the gtk/gtkx.h header.

func (*Plug) ConnectEmbedded

func (plug *Plug) ConnectEmbedded(f func()) coreglib.SignalHandle

ConnectEmbedded gets emitted when the plug becomes embedded in a socket.

func (*Plug) Embedded

func (plug *Plug) Embedded() bool

Embedded determines whether the plug is embedded in a socket.

The function returns the following values:

  • ok: TRUE if the plug is embedded in a socket.

func (*Plug) SocketWindow

func (plug *Plug) SocketWindow() gdk.Windower

SocketWindow retrieves the socket the plug is embedded in.

The function returns the following values:

  • window (optional) of the socket, or NULL.

type PlugAccessible

type PlugAccessible struct {
	WindowAccessible
	// contains filtered or unexported fields
}

func (*PlugAccessible) ID

func (plug *PlugAccessible) ID() string

The function returns the following values:

type PlugAccessibleClass added in v0.0.5

type PlugAccessibleClass struct {
	// contains filtered or unexported fields
}

PlugAccessibleClass: instance of this type is always passed by reference.

func (*PlugAccessibleClass) ParentClass added in v0.0.5

func (p *PlugAccessibleClass) ParentClass() *WindowAccessibleClass

type PlugAccessibleOverrides added in v0.0.5

type PlugAccessibleOverrides struct {
}

PlugAccessibleOverrides contains methods that are overridable.

type PlugClass added in v0.0.5

type PlugClass struct {
	// contains filtered or unexported fields
}

PlugClass: instance of this type is always passed by reference.

func (*PlugClass) ParentClass added in v0.0.5

func (p *PlugClass) ParentClass() *WindowClass

type PlugOverrides added in v0.0.5

type PlugOverrides struct {
	Embedded func()
}

PlugOverrides contains methods that are overridable.

type PolicyType

type PolicyType C.gint

PolicyType determines how the size should be computed to achieve the one of the visibility mode for the scrollbars.

const (
	// PolicyAlways: scrollbar is always visible. The view size is independent
	// of the content.
	PolicyAlways PolicyType = iota
	// PolicyAutomatic: scrollbar will appear and disappear as necessary.
	// For example, when all of a TreeView can not be seen.
	PolicyAutomatic
	// PolicyNever: scrollbar should never appear. In this mode the content
	// determines the size.
	PolicyNever
	// PolicyExternal: don't show a scrollbar, but don't force the size to
	// follow the content. This can be used e.g. to make multiple scrolled
	// windows share a scrollbar. Since: 3.16.
	PolicyExternal
)

func (PolicyType) String

func (p PolicyType) String() string

String returns the name in string for PolicyType.

type Popover

type Popover struct {
	Bin
	// contains filtered or unexported fields
}

Popover is a bubble-like context window, primarily meant to provide context-dependent information or options. Popovers are attached to a widget, passed at construction time on gtk_popover_new(), or updated afterwards through gtk_popover_set_relative_to(), by default they will point to the whole widget area, although this behavior can be changed through gtk_popover_set_pointing_to().

The position of a popover relative to the widget it is attached to can also be changed through gtk_popover_set_position().

By default, Popover performs a GTK+ grab, in order to ensure input events get redirected to it while it is shown, and also so the popover is dismissed in the expected situations (clicks outside the popover, or the Esc key being pressed). If no such modal behavior is desired on a popover, gtk_popover_set_modal() may be called on it to tweak its behavior.

GtkPopover as menu replacement

GtkPopover is often used to replace menus. To facilitate this, it supports being populated from a Model, using gtk_popover_new_from_model(). In addition to all the regular menu model features, this function supports rendering sections in the model in a more compact form, as a row of icon buttons instead of menu items.

To use this rendering, set the ”display-hint” attribute of the section to ”horizontal-buttons” and set the icons of your items with the ”verb-icon” attribute.

<section>
  <attribute name="display-hint">horizontal-buttons</attribute>
  <item>
    <attribute name="label">Cut</attribute>
    <attribute name="action">app.cut</attribute>
    <attribute name="verb-icon">edit-cut-symbolic</attribute>
  </item>
  <item>
    <attribute name="label">Copy</attribute>
    <attribute name="action">app.copy</attribute>
    <attribute name="verb-icon">edit-copy-symbolic</attribute>
  </item>
  <item>
    <attribute name="label">Paste</attribute>
    <attribute name="action">app.paste</attribute>
    <attribute name="verb-icon">edit-paste-symbolic</attribute>
  </item>
</section>

CSS nodes

GtkPopover has a single css node called popover. It always gets the .background style class and it gets the .menu style class if it is menu-like (e.g. PopoverMenu or created using gtk_popover_new_from_model().

Particular uses of GtkPopover, such as touch selection popups or magnifiers in Entry or TextView get style classes like .touch-selection or .magnifier to differentiate from plain popovers.

func NewPopover

func NewPopover(relativeTo Widgetter) *Popover

NewPopover creates a new popover to point to relative_to.

The function takes the following parameters:

  • relativeTo (optional) the popover is related to.

The function returns the following values:

  • popover: new Popover.

func NewPopoverFromModel

func NewPopoverFromModel(relativeTo Widgetter, model gio.MenuModeller) *Popover

NewPopoverFromModel creates a Popover and populates it according to model. The popover is pointed to the relative_to widget.

The created buttons are connected to actions found in the ApplicationWindow to which the popover belongs - typically by means of being attached to a widget that is contained within the ApplicationWindows widget hierarchy.

Actions can also be added using gtk_widget_insert_action_group() on the menus attach widget or on any of its parent widgets.

The function takes the following parameters:

  • relativeTo (optional) the popover is related to.
  • model: Model.

The function returns the following values:

  • popover: new Popover.

func (*Popover) BindModel

func (popover *Popover) BindModel(model gio.MenuModeller, actionNamespace string)

BindModel establishes a binding between a Popover and a Model.

The contents of popover are removed and then refilled with menu items according to model. When model changes, popover is updated. Calling this function twice on popover with different model will cause the first binding to be replaced with a binding to the new model. If model is NULL then any previous binding is undone and all children are removed.

If action_namespace is non-NULL then the effect is as if all actions mentioned in the model have their names prefixed with the namespace, plus a dot. For example, if the action “quit” is mentioned and action_namespace is “app” then the effective action name is “app.quit”.

This function uses Actionable to define the action name and target values on the created menu items. If you want to use an action group other than “app” and “win”, or if you want to use a MenuShell outside of a ApplicationWindow, then you will need to attach your own action group to the widget hierarchy using gtk_widget_insert_action_group(). As an example, if you created a group with a “quit” action and inserted it with the name “mygroup” then you would use the action name “mygroup.quit” in your Model.

The function takes the following parameters:

  • model (optional) to bind to or NULL to remove binding.
  • actionNamespace (optional): namespace for actions in model.

func (*Popover) ConnectClosed

func (popover *Popover) ConnectClosed(f func()) coreglib.SignalHandle

ConnectClosed: this signal is emitted when the popover is dismissed either through API or user interaction.

func (*Popover) ConstrainTo

func (popover *Popover) ConstrainTo() PopoverConstraint

ConstrainTo returns the constraint for placing this popover. See gtk_popover_set_constrain_to().

The function returns the following values:

  • popoverConstraint: constraint for placing this popover.

func (*Popover) DefaultWidget

func (popover *Popover) DefaultWidget() Widgetter

DefaultWidget gets the widget that should be set as the default while the popover is shown.

The function returns the following values:

  • widget (optional): default widget, or NULL if there is none.

func (*Popover) Modal

func (popover *Popover) Modal() bool

Modal returns whether the popover is modal, see gtk_popover_set_modal to see the implications of this.

The function returns the following values:

  • ok if popover is modal.

func (*Popover) PointingTo

func (popover *Popover) PointingTo() (*gdk.Rectangle, bool)

PointingTo: if a rectangle to point to has been set, this function will return TRUE and fill in rect with such rectangle, otherwise it will return FALSE and fill in rect with the attached widget coordinates.

The function returns the following values:

  • rect: location to store the rectangle.
  • ok: TRUE if a rectangle to point to was set.

func (*Popover) Popdown

func (popover *Popover) Popdown()

Popdown pops popover down.This is different than a gtk_widget_hide() call in that it shows the popover with a transition. If you want to hide the popover without a transition, use gtk_widget_hide().

func (*Popover) Popup

func (popover *Popover) Popup()

Popup pops popover up. This is different than a gtk_widget_show() call in that it shows the popover with a transition. If you want to show the popover without a transition, use gtk_widget_show().

func (*Popover) Position

func (popover *Popover) Position() PositionType

Position returns the preferred position of popover.

The function returns the following values:

  • positionType: preferred position.

func (*Popover) RelativeTo

func (popover *Popover) RelativeTo() Widgetter

RelativeTo returns the widget popover is currently attached to.

The function returns the following values:

  • widget: Widget.

func (*Popover) SetConstrainTo

func (popover *Popover) SetConstrainTo(constraint PopoverConstraint)

SetConstrainTo sets a constraint for positioning this popover.

Note that not all platforms support placing popovers freely, and may already impose constraints.

The function takes the following parameters:

  • constraint: new constraint.

func (*Popover) SetDefaultWidget

func (popover *Popover) SetDefaultWidget(widget Widgetter)

SetDefaultWidget sets the widget that should be set as default widget while the popover is shown (see gtk_window_set_default()). Popover remembers the previous default widget and reestablishes it when the popover is dismissed.

The function takes the following parameters:

  • widget (optional): new default widget, or NULL.

func (*Popover) SetModal

func (popover *Popover) SetModal(modal bool)

SetModal sets whether popover is modal, a modal popover will grab all input within the toplevel and grab the keyboard focus on it when being displayed. Clicking outside the popover area or pressing Esc will dismiss the popover and ungrab input.

The function takes the following parameters:

  • modal to make popover claim all input within the toplevel.

func (*Popover) SetPointingTo

func (popover *Popover) SetPointingTo(rect *gdk.Rectangle)

SetPointingTo sets the rectangle that popover will point to, in the coordinate space of the widget popover is attached to, see gtk_popover_set_relative_to().

The function takes the following parameters:

  • rect: rectangle to point to.

func (*Popover) SetPosition

func (popover *Popover) SetPosition(position PositionType)

SetPosition sets the preferred position for popover to appear. If the popover is currently visible, it will be immediately updated.

This preference will be respected where possible, although on lack of space (eg. if close to the window edges), the Popover may choose to appear on the opposite side.

The function takes the following parameters:

  • position: preferred popover position.

func (*Popover) SetRelativeTo

func (popover *Popover) SetRelativeTo(relativeTo Widgetter)

SetRelativeTo sets a new widget to be attached to popover. If popover is visible, the position will be updated.

Note: the ownership of popovers is always given to their relative_to widget, so if relative_to is set to NULL on an attached popover, it will be detached from its previous widget, and consequently destroyed unless extra references are kept.

The function takes the following parameters:

  • relativeTo (optional): Widget.

func (*Popover) SetTransitionsEnabled deprecated

func (popover *Popover) SetTransitionsEnabled(transitionsEnabled bool)

SetTransitionsEnabled sets whether show/hide transitions are enabled on this popover

Deprecated: You can show or hide the popover without transitions using gtk_widget_show() and gtk_widget_hide() while gtk_popover_popup() and gtk_popover_popdown() will use transitions.

The function takes the following parameters:

  • transitionsEnabled: whether transitions are enabled.

func (*Popover) TransitionsEnabled deprecated

func (popover *Popover) TransitionsEnabled() bool

TransitionsEnabled returns whether show/hide transitions are enabled on this popover.

Deprecated: You can show or hide the popover without transitions using gtk_widget_show() and gtk_widget_hide() while gtk_popover_popup() and gtk_popover_popdown() will use transitions.

The function returns the following values:

  • ok if the show and hide transitions of the given popover are enabled, LSE otherwise.

type PopoverAccessible

type PopoverAccessible struct {
	ContainerAccessible
	// contains filtered or unexported fields
}

type PopoverAccessibleClass added in v0.0.5

type PopoverAccessibleClass struct {
	// contains filtered or unexported fields
}

PopoverAccessibleClass: instance of this type is always passed by reference.

func (*PopoverAccessibleClass) ParentClass added in v0.0.5

type PopoverAccessibleOverrides added in v0.0.5

type PopoverAccessibleOverrides struct {
}

PopoverAccessibleOverrides contains methods that are overridable.

type PopoverClass added in v0.0.5

type PopoverClass struct {
	// contains filtered or unexported fields
}

PopoverClass: instance of this type is always passed by reference.

func (*PopoverClass) ParentClass added in v0.0.5

func (p *PopoverClass) ParentClass() *BinClass

type PopoverConstraint

type PopoverConstraint C.gint

PopoverConstraint describes constraints to positioning of popovers. More values may be added to this enumeration in the future.

const (
	// PopoverConstraintNone: don't constrain the popover position beyond what
	// is imposed by the implementation.
	PopoverConstraintNone PopoverConstraint = iota
	// PopoverConstraintWindow: constrain the popover to the boundaries of the
	// window that it is attached to.
	PopoverConstraintWindow
)

func (PopoverConstraint) String

func (p PopoverConstraint) String() string

String returns the name in string for PopoverConstraint.

type PopoverMenu

type PopoverMenu struct {
	Popover
	// contains filtered or unexported fields
}

PopoverMenu is a subclass of Popover that treats its children like menus and allows switching between them. It is meant to be used primarily together with ModelButton, but any widget can be used, such as SpinButton or Scale. In this respect, GtkPopoverMenu is more flexible than popovers that are created from a Model with gtk_popover_new_from_model().

To add a child as a submenu, set the PopoverMenu:submenu child property to the name of the submenu. To let the user open this submenu, add a ModelButton whose ModelButton:menu-name property is set to the name you've given to the submenu.

By convention, the first child of a submenu should be a ModelButton to switch back to the parent menu. Such a button should use the ModelButton:inverted and ModelButton:centered properties to achieve a title-like appearance and place the submenu indicator at the opposite side. To switch back to the main menu, use "main" as the menu name.

Example

<object class="GtkPopoverMenu">
  <child>
    <object class="GtkBox">
      <property name="visible">True</property>
      <property name="margin">10</property>
      <child>
        <object class="GtkModelButton">
          <property name="visible">True</property>
          <property name="action-name">win.frob</property>
          <property name="text" translatable="yes">Frob</property>
        </object>
      </child>
      <child>
        <object class="GtkModelButton">
          <property name="visible">True</property>
          <property name="menu-name">more</property>
          <property name="text" translatable="yes">More</property>
        </object>
      </child>
    </object>
  </child>
  <child>
    <object class="GtkBox">
      <property name="visible">True</property>
      <property name="margin">10</property>
      <child>
        <object class="GtkModelButton">
          <property name="visible">True</property>
          <property name="action-name">win.foo</property>
          <property name="text" translatable="yes">Foo</property>
        </object>
      </child>
      <child>
        <object class="GtkModelButton">
          <property name="visible">True</property>
          <property name="action-name">win.bar</property>
          <property name="text" translatable="yes">Bar</property>
        </object>
      </child>
    </object>
    <packing>
      <property name="submenu">more</property>
    </packing>
  </child>
</object>

Just like normal popovers created using gtk_popover_new_from_model, PopoverMenu instances have a single css node called "popover" and get the .menu style class.

func NewPopoverMenu

func NewPopoverMenu() *PopoverMenu

NewPopoverMenu creates a new popover menu.

The function returns the following values:

  • popoverMenu: new PopoverMenu.

func (*PopoverMenu) OpenSubmenu

func (popover *PopoverMenu) OpenSubmenu(name string)

OpenSubmenu opens a submenu of the popover. The name must be one of the names given to the submenus of popover with PopoverMenu:submenu, or "main" to switch back to the main menu.

ModelButton will open submenus automatically when the ModelButton:menu-name property is set, so this function is only needed when you are using other kinds of widgets to initiate menu changes.

The function takes the following parameters:

  • name of the menu to switch to.

type PopoverMenuClass added in v0.0.5

type PopoverMenuClass struct {
	// contains filtered or unexported fields
}

PopoverMenuClass: instance of this type is always passed by reference.

func (*PopoverMenuClass) ParentClass added in v0.0.5

func (p *PopoverMenuClass) ParentClass() *PopoverClass

type PopoverMenuOverrides added in v0.0.5

type PopoverMenuOverrides struct {
}

PopoverMenuOverrides contains methods that are overridable.

type PopoverOverrides added in v0.0.5

type PopoverOverrides struct {
	Closed func()
}

PopoverOverrides contains methods that are overridable.

type PositionType

type PositionType C.gint

PositionType describes which edge of a widget a certain feature is positioned at, e.g. the tabs of a Notebook, the handle of a HandleBox or the label of a Scale.

const (
	// PosLeft: feature is at the left edge.
	PosLeft PositionType = iota
	// PosRight: feature is at the right edge.
	PosRight
	// PosTop: feature is at the top edge.
	PosTop
	// PosBottom: feature is at the bottom edge.
	PosBottom
)

func (PositionType) String

func (p PositionType) String() string

String returns the name in string for PositionType.

type PrintContext

type PrintContext struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

PrintContext encapsulates context information that is required when drawing pages for printing, such as the cairo context and important parameters like page size and resolution. It also lets you easily create Layout and Context objects that match the font metrics of the cairo surface.

GtkPrintContext objects gets passed to the PrintOperation::begin-print, PrintOperation::end-print, PrintOperation::request-page-setup and PrintOperation::draw-page signals on the PrintOperation.

Using GtkPrintContext in a PrintOperation::draw-page callback

static void
draw_page (GtkPrintOperation *operation,
	   GtkPrintContext   *context,
	   int                page_nr)
{
  cairo_t *cr;
  PangoLayout *layout;
  PangoFontDescription *desc;

  cr = gtk_print_context_get_cairo_context (context);

  // Draw a red rectangle, as wide as the paper (inside the margins)
  cairo_set_source_rgb (cr, 1.0, 0, 0);
  cairo_rectangle (cr, 0, 0, gtk_print_context_get_width (context), 50);

  cairo_fill (cr);

  // Draw some lines
  cairo_move_to (cr, 20, 10);
  cairo_line_to (cr, 40, 20);
  cairo_arc (cr, 60, 60, 20, 0, M_PI);
  cairo_line_to (cr, 80, 20);

  cairo_set_source_rgb (cr, 0, 0, 0);
  cairo_set_line_width (cr, 5);
  cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
  cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);

  cairo_stroke (cr);

  // Draw some text
  layout = gtk_print_context_create_pango_layout (context);
  pango_layout_set_text (layout, "Hello World! Printing is easy", -1);
  desc = pango_font_description_from_string ("sans 28");
  pango_layout_set_font_description (layout, desc);
  pango_font_description_free (desc);

  cairo_move_to (cr, 30, 20);
  pango_cairo_layout_path (cr, layout);

  // Font Outline
  cairo_set_source_rgb (cr, 0.93, 1.0, 0.47);
  cairo_set_line_width (cr, 0.5);
  cairo_stroke_preserve (cr);

  // Font Fill
  cairo_set_source_rgb (cr, 0, 0.0, 1.0);
  cairo_fill (cr);

  g_object_unref (layout);
}

Printing support was added in GTK+ 2.10.

func (*PrintContext) CairoContext

func (context *PrintContext) CairoContext() *cairo.Context

CairoContext obtains the cairo context that is associated with the PrintContext.

The function returns the following values:

  • ret: cairo context of context.

func (*PrintContext) CreatePangoContext

func (context *PrintContext) CreatePangoContext() *pango.Context

CreatePangoContext creates a new Context that can be used with the PrintContext.

The function returns the following values:

  • ret: new Pango context for context.

func (*PrintContext) CreatePangoLayout

func (context *PrintContext) CreatePangoLayout() *pango.Layout

CreatePangoLayout creates a new Layout that is suitable for use with the PrintContext.

The function returns the following values:

  • layout: new Pango layout for context.

func (*PrintContext) DPIX

func (context *PrintContext) DPIX() float64

DPIX obtains the horizontal resolution of the PrintContext, in dots per inch.

The function returns the following values:

  • gdouble: horizontal resolution of context.

func (*PrintContext) DPIY

func (context *PrintContext) DPIY() float64

DPIY obtains the vertical resolution of the PrintContext, in dots per inch.

The function returns the following values:

  • gdouble: vertical resolution of context.

func (*PrintContext) HardMargins

func (context *PrintContext) HardMargins() (top, bottom, left, right float64, ok bool)

HardMargins obtains the hardware printer margins of the PrintContext, in units.

The function returns the following values:

  • top hardware printer margin.
  • bottom hardware printer margin.
  • left hardware printer margin.
  • right hardware printer margin.
  • ok: TRUE if the hard margins were retrieved.

func (*PrintContext) Height

func (context *PrintContext) Height() float64

Height obtains the height of the PrintContext, in pixels.

The function returns the following values:

  • gdouble: height of context.

func (*PrintContext) PageSetup

func (context *PrintContext) PageSetup() *PageSetup

PageSetup obtains the PageSetup that determines the page dimensions of the PrintContext.

The function returns the following values:

  • pageSetup: page setup of context.

func (*PrintContext) PangoFontmap

func (context *PrintContext) PangoFontmap() pango.FontMapper

PangoFontmap returns a FontMap that is suitable for use with the PrintContext.

The function returns the following values:

  • fontMap: font map of context.

func (*PrintContext) SetCairoContext

func (context *PrintContext) SetCairoContext(cr *cairo.Context, dpiX, dpiY float64)

SetCairoContext sets a new cairo context on a print context.

This function is intended to be used when implementing an internal print preview, it is not needed for printing, since GTK+ itself creates a suitable cairo context in that case.

The function takes the following parameters:

  • cr: cairo context.
  • dpiX: horizontal resolution to use with cr.
  • dpiY: vertical resolution to use with cr.

func (*PrintContext) Width

func (context *PrintContext) Width() float64

Width obtains the width of the PrintContext, in pixels.

The function returns the following values:

  • gdouble: width of context.

type PrintDuplex

type PrintDuplex C.gint

PrintDuplex: see also gtk_print_settings_set_duplex().

const (
	// PrintDuplexSimplex: no duplex.
	PrintDuplexSimplex PrintDuplex = iota
	// PrintDuplexHorizontal: horizontal duplex.
	PrintDuplexHorizontal
	// PrintDuplexVertical: vertical duplex.
	PrintDuplexVertical
)

func (PrintDuplex) String

func (p PrintDuplex) String() string

String returns the name in string for PrintDuplex.

type PrintError

type PrintError C.gint

PrintError: error codes that identify various errors that can occur while using the GTK+ printing support.

const (
	// PrintErrorGeneral: unspecified error occurred.
	PrintErrorGeneral PrintError = iota
	// PrintErrorInternalError: internal error occurred.
	PrintErrorInternalError
	// PrintErrorNOMEM: memory allocation failed.
	PrintErrorNOMEM
	// PrintErrorInvalidFile: error occurred while loading a page setup or paper
	// size from a key file.
	PrintErrorInvalidFile
)

func (PrintError) String

func (p PrintError) String() string

String returns the name in string for PrintError.

type PrintOperation

type PrintOperation struct {
	*coreglib.Object

	PrintOperationPreview
	// contains filtered or unexported fields
}

PrintOperation is the high-level, portable printing API. It looks a bit different than other GTK+ dialogs such as the FileChooser, since some platforms don’t expose enough infrastructure to implement a good print dialog. On such platforms, GtkPrintOperation uses the native print dialog. On platforms which do not provide a native print dialog, GTK+ uses its own, see PrintUnixDialog.

The typical way to use the high-level printing API is to create a GtkPrintOperation object with gtk_print_operation_new() when the user selects to print. Then you set some properties on it, e.g. the page size, any PrintSettings from previous print operations, the number of pages, the current page, etc.

Then you start the print operation by calling gtk_print_operation_run(). It will then show a dialog, let the user select a printer and options. When the user finished the dialog various signals will be emitted on the PrintOperation, the main one being PrintOperation::draw-page, which you are supposed to catch and render the page on the provided PrintContext using Cairo.

The high-level printing API

static GtkPrintSettings *settings = NULL;

static void
do_print (void)
{
  GtkPrintOperation *print;
  GtkPrintOperationResult res;

  print = gtk_print_operation_new ();

  if (settings != NULL)
    gtk_print_operation_set_print_settings (print, settings);

  g_signal_connect (print, "begin_print", G_CALLBACK (begin_print), NULL);
  g_signal_connect (print, "draw_page", G_CALLBACK (draw_page), NULL);

  res = gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
                                 GTK_WINDOW (main_window), NULL);

  if (res == GTK_PRINT_OPERATION_RESULT_APPLY)
    {
      if (settings != NULL)
        g_object_unref (settings);
      settings = g_object_ref (gtk_print_operation_get_print_settings (print));
    }

  g_object_unref (print);
}

By default GtkPrintOperation uses an external application to do print preview. To implement a custom print preview, an application must connect to the preview signal. The functions gtk_print_operation_preview_render_page(), gtk_print_operation_preview_end_preview() and gtk_print_operation_preview_is_selected() are useful when implementing a print preview.

func NewPrintOperation

func NewPrintOperation() *PrintOperation

NewPrintOperation creates a new PrintOperation.

The function returns the following values:

  • printOperation: new PrintOperation.

func (*PrintOperation) Cancel

func (op *PrintOperation) Cancel()

Cancel cancels a running print operation. This function may be called from a PrintOperation::begin-print, PrintOperation::paginate or PrintOperation::draw-page signal handler to stop the currently running print operation.

func (*PrintOperation) ConnectBeginPrint

func (op *PrintOperation) ConnectBeginPrint(f func(context *PrintContext)) coreglib.SignalHandle

ConnectBeginPrint is emitted after the user has finished changing print settings in the dialog, before the actual rendering starts.

A typical use for ::begin-print is to use the parameters from the PrintContext and paginate the document accordingly, and then set the number of pages with gtk_print_operation_set_n_pages().

func (*PrintOperation) ConnectCreateCustomWidget

func (op *PrintOperation) ConnectCreateCustomWidget(f func() (object *coreglib.Object)) coreglib.SignalHandle

ConnectCreateCustomWidget is emitted when displaying the print dialog. If you return a widget in a handler for this signal it will be added to a custom tab in the print dialog. You typically return a container widget with multiple widgets in it.

The print dialog owns the returned widget, and its lifetime is not controlled by the application. However, the widget is guaranteed to stay around until the PrintOperation::custom-widget-apply signal is emitted on the operation. Then you can read out any information you need from the widgets.

func (*PrintOperation) ConnectCustomWidgetApply

func (op *PrintOperation) ConnectCustomWidgetApply(f func(widget Widgetter)) coreglib.SignalHandle

ConnectCustomWidgetApply is emitted right before PrintOperation::begin-print if you added a custom widget in the PrintOperation::create-custom-widget handler. When you get this signal you should read the information from the custom widgets, as the widgets are not guaraneed to be around at a later time.

func (*PrintOperation) ConnectDone

func (op *PrintOperation) ConnectDone(f func(result PrintOperationResult)) coreglib.SignalHandle

ConnectDone is emitted when the print operation run has finished doing everything required for printing.

result gives you information about what happened during the run. If result is GTK_PRINT_OPERATION_RESULT_ERROR then you can call gtk_print_operation_get_error() for more information.

If you enabled print status tracking then gtk_print_operation_is_finished() may still return FALSE after PrintOperation::done was emitted.

func (*PrintOperation) ConnectDrawPage

func (op *PrintOperation) ConnectDrawPage(f func(context *PrintContext, pageNr int)) coreglib.SignalHandle

ConnectDrawPage is emitted for every page that is printed. The signal handler must render the page_nr's page onto the cairo context obtained from context using gtk_print_context_get_cairo_context().

static void
draw_page (GtkPrintOperation *operation,
           GtkPrintContext   *context,
           gint               page_nr,
           gpointer           user_data)
{
  cairo_t *cr;
  PangoLayout *layout;
  gdouble width, text_height;
  gint layout_height;
  PangoFontDescription *desc;

  cr = gtk_print_context_get_cairo_context (context);
  width = gtk_print_context_get_width (context);

  cairo_rectangle (cr, 0, 0, width, HEADER_HEIGHT);

  cairo_set_source_rgb (cr, 0.8, 0.8, 0.8);
  cairo_fill (cr);

  layout = gtk_print_context_create_pango_layout (context);

  desc = pango_font_description_from_string ("sans 14");
  pango_layout_set_font_description (layout, desc);
  pango_font_description_free (desc);

  pango_layout_set_text (layout, "some text", -1);
  pango_layout_set_width (layout, width * PANGO_SCALE);
  pango_layout_set_alignment (layout, PANGO_ALIGN_CENTER);

  pango_layout_get_size (layout, NULL, &layout_height);
  text_height = (gdouble)layout_height / PANGO_SCALE;

  cairo_move_to (cr, width / 2,  (HEADER_HEIGHT - text_height) / 2);
  pango_cairo_show_layout (cr, layout);

  g_object_unref (layout);
}

Use gtk_print_operation_set_use_full_page() and gtk_print_operation_set_unit() before starting the print operation to set up the transformation of the cairo context according to your needs.

func (*PrintOperation) ConnectEndPrint

func (op *PrintOperation) ConnectEndPrint(f func(context *PrintContext)) coreglib.SignalHandle

ConnectEndPrint is emitted after all pages have been rendered. A handler for this signal can clean up any resources that have been allocated in the PrintOperation::begin-print handler.

func (*PrintOperation) ConnectPaginate

func (op *PrintOperation) ConnectPaginate(f func(context *PrintContext) (ok bool)) coreglib.SignalHandle

ConnectPaginate is emitted after the PrintOperation::begin-print signal, but before the actual rendering starts. It keeps getting emitted until a connected signal handler returns TRUE.

The ::paginate signal is intended to be used for paginating a document in small chunks, to avoid blocking the user interface for a long time. The signal handler should update the number of pages using gtk_print_operation_set_n_pages(), and return TRUE if the document has been completely paginated.

If you don't need to do pagination in chunks, you can simply do it all in the ::begin-print handler, and set the number of pages from there.

func (*PrintOperation) ConnectPreview

func (op *PrintOperation) ConnectPreview(f func(preview PrintOperationPreviewer, context *PrintContext, parent *Window) (ok bool)) coreglib.SignalHandle

ConnectPreview gets emitted when a preview is requested from the native dialog.

The default handler for this signal uses an external viewer application to preview.

To implement a custom print preview, an application must return TRUE from its handler for this signal. In order to use the provided context for the preview implementation, it must be given a suitable cairo context with gtk_print_context_set_cairo_context().

The custom preview implementation can use gtk_print_operation_preview_is_selected() and gtk_print_operation_preview_render_page() to find pages which are selected for print and render them. The preview must be finished by calling gtk_print_operation_preview_end_preview() (typically in response to the user clicking a close button).

func (*PrintOperation) ConnectRequestPageSetup

func (op *PrintOperation) ConnectRequestPageSetup(f func(context *PrintContext, pageNr int, setup *PageSetup)) coreglib.SignalHandle

ConnectRequestPageSetup is emitted once for every page that is printed, to give the application a chance to modify the page setup. Any changes done to setup will be in force only for printing this page.

func (*PrintOperation) ConnectStatusChanged

func (op *PrintOperation) ConnectStatusChanged(f func()) coreglib.SignalHandle

ConnectStatusChanged is emitted at between the various phases of the print operation. See PrintStatus for the phases that are being discriminated. Use gtk_print_operation_get_status() to find out the current status.

func (*PrintOperation) ConnectUpdateCustomWidget

func (op *PrintOperation) ConnectUpdateCustomWidget(f func(widget Widgetter, setup *PageSetup, settings *PrintSettings)) coreglib.SignalHandle

ConnectUpdateCustomWidget is emitted after change of selected printer. The actual page setup and print settings are passed to the custom widget, which can actualize itself according to this change.

func (*PrintOperation) DefaultPageSetup

func (op *PrintOperation) DefaultPageSetup() *PageSetup

DefaultPageSetup returns the default page setup, see gtk_print_operation_set_default_page_setup().

The function returns the following values:

  • pageSetup: default page setup.

func (*PrintOperation) DrawPageFinish

func (op *PrintOperation) DrawPageFinish()

DrawPageFinish: signalize that drawing of particular page is complete.

It is called after completion of page drawing (e.g. drawing in another thread). If gtk_print_operation_set_defer_drawing() was called before, then this function has to be called by application. In another case it is called by the library itself.

func (*PrintOperation) EmbedPageSetup

func (op *PrintOperation) EmbedPageSetup() bool

EmbedPageSetup gets the value of PrintOperation:embed-page-setup property.

The function returns the following values:

  • ok: whether page setup selection combos are embedded.

func (*PrintOperation) Error

func (op *PrintOperation) Error() error

Error: call this when the result of a print operation is GTK_PRINT_OPERATION_RESULT_ERROR, either as returned by gtk_print_operation_run(), or in the PrintOperation::done signal handler. The returned #GError will contain more details on what went wrong.

func (*PrintOperation) HasSelection

func (op *PrintOperation) HasSelection() bool

HasSelection gets the value of PrintOperation:has-selection property.

The function returns the following values:

  • ok: whether there is a selection.

func (*PrintOperation) IsFinished

func (op *PrintOperation) IsFinished() bool

IsFinished: convenience function to find out if the print operation is finished, either successfully (GTK_PRINT_STATUS_FINISHED) or unsuccessfully (GTK_PRINT_STATUS_FINISHED_ABORTED).

Note: when you enable print status tracking the print operation can be in a non-finished state even after done has been called, as the operation status then tracks the print job status on the printer.

The function returns the following values:

  • ok: TRUE, if the print operation is finished.

func (*PrintOperation) NPagesToPrint

func (op *PrintOperation) NPagesToPrint() int

NPagesToPrint returns the number of pages that will be printed.

Note that this value is set during print preparation phase (GTK_PRINT_STATUS_PREPARING), so this function should never be called before the data generation phase (GTK_PRINT_STATUS_GENERATING_DATA). You can connect to the PrintOperation::status-changed signal and call gtk_print_operation_get_n_pages_to_print() when print status is GTK_PRINT_STATUS_GENERATING_DATA. This is typically used to track the progress of print operation.

The function returns the following values:

  • gint: number of pages that will be printed.

func (*PrintOperation) PrintSettings

func (op *PrintOperation) PrintSettings() *PrintSettings

PrintSettings returns the current print settings.

Note that the return value is NULL until either gtk_print_operation_set_print_settings() or gtk_print_operation_run() have been called.

The function returns the following values:

  • printSettings: current print settings of op.

func (*PrintOperation) Run

Run runs the print operation, by first letting the user modify print settings in the print dialog, and then print the document.

Normally that this function does not return until the rendering of all pages is complete. You can connect to the PrintOperation::status-changed signal on op to obtain some information about the progress of the print operation. Furthermore, it may use a recursive mainloop to show the print dialog.

If you call gtk_print_operation_set_allow_async() or set the PrintOperation:allow-async property the operation will run asynchronously if this is supported on the platform. The PrintOperation::done signal will be emitted with the result of the operation when the it is done (i.e. when the dialog is canceled, or when the print succeeds or fails).

if (settings != NULL)
  gtk_print_operation_set_print_settings (print, settings);

if (page_setup != NULL)
  gtk_print_operation_set_default_page_setup (print, page_setup);

g_signal_connect (print, "begin-print",
                  G_CALLBACK (begin_print), &data);
g_signal_connect (print, "draw-page",
                  G_CALLBACK (draw_page), &data);

res = gtk_print_operation_run (print,
                               GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
                               parent,
                               &error);

if (res == GTK_PRINT_OPERATION_RESULT_ERROR)
 {
   error_dialog = gtk_message_dialog_new (GTK_WINDOW (parent),
  			                     GTK_DIALOG_DESTROY_WITH_PARENT,
					     GTK_MESSAGE_ERROR,
					     GTK_BUTTONS_CLOSE,
					     "Error printing file:\ns",
					     error->message);
   g_signal_connect (error_dialog, "response",
                     G_CALLBACK (gtk_widget_destroy), NULL);
   gtk_widget_show (error_dialog);
   g_error_free (error);
 }
else if (res == GTK_PRINT_OPERATION_RESULT_APPLY)
 {
   if (settings != NULL)
g_object_unref (settings);
   settings = g_object_ref (gtk_print_operation_get_print_settings (print));
 }

Note that gtk_print_operation_run() can only be called once on a given PrintOperation.

The function takes the following parameters:

  • action to start.
  • parent (optional): transient parent of the dialog.

The function returns the following values:

  • printOperationResult: result of the print operation. A return value of GTK_PRINT_OPERATION_RESULT_APPLY indicates that the printing was completed successfully. In this case, it is a good idea to obtain the used print settings with gtk_print_operation_get_print_settings() and store them for reuse with the next print operation. A value of GTK_PRINT_OPERATION_RESULT_IN_PROGRESS means the operation is running asynchronously, and will emit the PrintOperation::done signal when done.

func (*PrintOperation) SetAllowAsync

func (op *PrintOperation) SetAllowAsync(allowAsync bool)

SetAllowAsync sets whether the gtk_print_operation_run() may return before the print operation is completed. Note that some platforms may not allow asynchronous operation.

The function takes the following parameters:

  • allowAsync: TRUE to allow asynchronous operation.

func (*PrintOperation) SetCurrentPage

func (op *PrintOperation) SetCurrentPage(currentPage int)

SetCurrentPage sets the current page.

If this is called before gtk_print_operation_run(), the user will be able to select to print only the current page.

Note that this only makes sense for pre-paginated documents.

The function takes the following parameters:

  • currentPage: current page, 0-based.

func (*PrintOperation) SetCustomTabLabel

func (op *PrintOperation) SetCustomTabLabel(label string)

SetCustomTabLabel sets the label for the tab holding custom widgets.

The function takes the following parameters:

  • label (optional) to use, or NULL to use the default label.

func (*PrintOperation) SetDefaultPageSetup

func (op *PrintOperation) SetDefaultPageSetup(defaultPageSetup *PageSetup)

SetDefaultPageSetup makes default_page_setup the default page setup for op.

This page setup will be used by gtk_print_operation_run(), but it can be overridden on a per-page basis by connecting to the PrintOperation::request-page-setup signal.

The function takes the following parameters:

  • defaultPageSetup (optional) or NULL.

func (*PrintOperation) SetDeferDrawing

func (op *PrintOperation) SetDeferDrawing()

SetDeferDrawing sets up the PrintOperation to wait for calling of gtk_print_operation_draw_page_finish() from application. It can be used for drawing page in another thread.

This function must be called in the callback of “draw-page” signal.

func (*PrintOperation) SetEmbedPageSetup

func (op *PrintOperation) SetEmbedPageSetup(embed bool)

SetEmbedPageSetup: embed page size combo box and orientation combo box into page setup page. Selected page setup is stored as default page setup in PrintOperation.

The function takes the following parameters:

  • embed: TRUE to embed page setup selection in the PrintUnixDialog.

func (*PrintOperation) SetExportFilename

func (op *PrintOperation) SetExportFilename(filename string)

SetExportFilename sets up the PrintOperation to generate a file instead of showing the print dialog. The indended use of this function is for implementing “Export to PDF” actions. Currently, PDF is the only supported format.

“Print to PDF” support is independent of this and is done by letting the user pick the “Print to PDF” item from the list of printers in the print dialog.

The function takes the following parameters:

  • filename for the exported file.

func (*PrintOperation) SetHasSelection

func (op *PrintOperation) SetHasSelection(hasSelection bool)

SetHasSelection sets whether there is a selection to print.

Application has to set number of pages to which the selection will draw by gtk_print_operation_set_n_pages() in a callback of PrintOperation::begin-print.

The function takes the following parameters:

  • hasSelection: TRUE indicates that a selection exists.

func (*PrintOperation) SetJobName

func (op *PrintOperation) SetJobName(jobName string)

SetJobName sets the name of the print job. The name is used to identify the job (e.g. in monitoring applications like eggcups).

If you don’t set a job name, GTK+ picks a default one by numbering successive print jobs.

The function takes the following parameters:

  • jobName: string that identifies the print job.

func (*PrintOperation) SetNPages

func (op *PrintOperation) SetNPages(nPages int)

SetNPages sets the number of pages in the document.

This must be set to a positive number before the rendering starts. It may be set in a PrintOperation::begin-print signal hander.

Note that the page numbers passed to the PrintOperation::request-page-setup and PrintOperation::draw-page signals are 0-based, i.e. if the user chooses to print all pages, the last ::draw-page signal will be for page n_pages - 1.

The function takes the following parameters:

  • nPages: number of pages.

func (*PrintOperation) SetPrintSettings

func (op *PrintOperation) SetPrintSettings(printSettings *PrintSettings)

SetPrintSettings sets the print settings for op. This is typically used to re-establish print settings from a previous print operation, see gtk_print_operation_run().

The function takes the following parameters:

  • printSettings (optional): PrintSettings.

func (*PrintOperation) SetShowProgress

func (op *PrintOperation) SetShowProgress(showProgress bool)

SetShowProgress: if show_progress is TRUE, the print operation will show a progress dialog during the print operation.

The function takes the following parameters:

  • showProgress: TRUE to show a progress dialog.

func (*PrintOperation) SetSupportSelection

func (op *PrintOperation) SetSupportSelection(supportSelection bool)

SetSupportSelection sets whether selection is supported by PrintOperation.

The function takes the following parameters:

  • supportSelection: TRUE to support selection.

func (*PrintOperation) SetTrackPrintStatus

func (op *PrintOperation) SetTrackPrintStatus(trackStatus bool)

SetTrackPrintStatus: if track_status is TRUE, the print operation will try to continue report on the status of the print job in the printer queues and printer. This can allow your application to show things like “out of paper” issues, and when the print job actually reaches the printer.

This function is often implemented using some form of polling, so it should not be enabled unless needed.

The function takes the following parameters:

  • trackStatus: TRUE to track status after printing.

func (*PrintOperation) SetUnit

func (op *PrintOperation) SetUnit(unit Unit)

SetUnit sets up the transformation for the cairo context obtained from PrintContext in such a way that distances are measured in units of unit.

The function takes the following parameters:

  • unit to use.

func (*PrintOperation) SetUseFullPage

func (op *PrintOperation) SetUseFullPage(fullPage bool)

SetUseFullPage: if full_page is TRUE, the transformation for the cairo context obtained from PrintContext puts the origin at the top left corner of the page (which may not be the top left corner of the sheet, depending on page orientation and the number of pages per sheet). Otherwise, the origin is at the top left corner of the imageable area (i.e. inside the margins).

The function takes the following parameters:

  • fullPage: TRUE to set up the PrintContext for the full page.

func (*PrintOperation) Status

func (op *PrintOperation) Status() PrintStatus

Status returns the status of the print operation. Also see gtk_print_operation_get_status_string().

The function returns the following values:

  • printStatus status of the print operation.

func (*PrintOperation) StatusString

func (op *PrintOperation) StatusString() string

StatusString returns a string representation of the status of the print operation. The string is translated and suitable for displaying the print status e.g. in a Statusbar.

Use gtk_print_operation_get_status() to obtain a status value that is suitable for programmatic use.

The function returns the following values:

  • utf8: string representation of the status of the print operation.

func (*PrintOperation) SupportSelection

func (op *PrintOperation) SupportSelection() bool

SupportSelection gets the value of PrintOperation:support-selection property.

The function returns the following values:

  • ok: whether the application supports print of selection.

type PrintOperationAction

type PrintOperationAction C.gint

PrintOperationAction: action parameter to gtk_print_operation_run() determines what action the print operation should perform.

const (
	// PrintOperationActionPrintDialog: show the print dialog.
	PrintOperationActionPrintDialog PrintOperationAction = iota
	// PrintOperationActionPrint: start to print without showing the print
	// dialog, based on the current print settings.
	PrintOperationActionPrint
	// PrintOperationActionPreview: show the print preview.
	PrintOperationActionPreview
	// PrintOperationActionExport: export to a file. This requires the
	// export-filename property to be set.
	PrintOperationActionExport
)

func (PrintOperationAction) String

func (p PrintOperationAction) String() string

String returns the name in string for PrintOperationAction.

type PrintOperationClass added in v0.0.5

type PrintOperationClass struct {
	// contains filtered or unexported fields
}

PrintOperationClass: instance of this type is always passed by reference.

type PrintOperationOverrides added in v0.0.5

type PrintOperationOverrides struct {
	// The function takes the following parameters:
	//
	BeginPrint func(context *PrintContext)
	// The function takes the following parameters:
	//
	CustomWidgetApply func(widget Widgetter)
	// The function takes the following parameters:
	//
	Done func(result PrintOperationResult)
	// The function takes the following parameters:
	//
	//   - context
	//   - pageNr
	//
	DrawPage func(context *PrintContext, pageNr int)
	// The function takes the following parameters:
	//
	EndPrint func(context *PrintContext)
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	Paginate func(context *PrintContext) bool
	// The function takes the following parameters:
	//
	//   - preview
	//   - context
	//   - parent
	//
	// The function returns the following values:
	//
	Preview func(preview PrintOperationPreviewer, context *PrintContext, parent *Window) bool
	// The function takes the following parameters:
	//
	//   - context
	//   - pageNr
	//   - setup
	//
	RequestPageSetup func(context *PrintContext, pageNr int, setup *PageSetup)
	StatusChanged    func()
	// The function takes the following parameters:
	//
	//   - widget
	//   - setup
	//   - settings
	//
	UpdateCustomWidget func(widget Widgetter, setup *PageSetup, settings *PrintSettings)
}

PrintOperationOverrides contains methods that are overridable.

type PrintOperationPreview

type PrintOperationPreview struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

PrintOperationPreview wraps an interface. This means the user can get the underlying type by calling Cast().

func (*PrintOperationPreview) ConnectGotPageSize

func (preview *PrintOperationPreview) ConnectGotPageSize(f func(context *PrintContext, pageSetup *PageSetup)) coreglib.SignalHandle

ConnectGotPageSize signal is emitted once for each page that gets rendered to the preview.

A handler for this signal should update the context according to page_setup and set up a suitable cairo context, using gtk_print_context_set_cairo_context().

func (*PrintOperationPreview) ConnectReady

func (preview *PrintOperationPreview) ConnectReady(f func(context *PrintContext)) coreglib.SignalHandle

ConnectReady signal gets emitted once per preview operation, before the first page is rendered.

A handler for this signal can be used for setup tasks.

func (*PrintOperationPreview) EndPreview

func (preview *PrintOperationPreview) EndPreview()

EndPreview ends a preview.

This function must be called to finish a custom print preview.

func (*PrintOperationPreview) IsSelected

func (preview *PrintOperationPreview) IsSelected(pageNr int) bool

IsSelected returns whether the given page is included in the set of pages that have been selected for printing.

The function takes the following parameters:

  • pageNr: page number.

The function returns the following values:

  • ok: TRUE if the page has been selected for printing.

func (*PrintOperationPreview) RenderPage

func (preview *PrintOperationPreview) RenderPage(pageNr int)

RenderPage renders a page to the preview, using the print context that was passed to the PrintOperation::preview handler together with preview.

A custom iprint preview should use this function in its ::expose handler to render the currently selected page.

Note that this function requires a suitable cairo context to be associated with the print context.

The function takes the following parameters:

  • pageNr: page to render.

type PrintOperationPreviewIface added in v0.0.5

type PrintOperationPreviewIface struct {
	// contains filtered or unexported fields
}

PrintOperationPreviewIface: instance of this type is always passed by reference.

type PrintOperationPreviewer

type PrintOperationPreviewer interface {
	coreglib.Objector

	// EndPreview ends a preview.
	EndPreview()
	// IsSelected returns whether the given page is included in the set of pages
	// that have been selected for printing.
	IsSelected(pageNr int) bool
	// RenderPage renders a page to the preview, using the print context that
	// was passed to the PrintOperation::preview handler together with preview.
	RenderPage(pageNr int)

	// Got-page-size signal is emitted once for each page that gets rendered to
	// the preview.
	ConnectGotPageSize(func(context *PrintContext, pageSetup *PageSetup)) coreglib.SignalHandle
	// Ready signal gets emitted once per preview operation, before the first
	// page is rendered.
	ConnectReady(func(context *PrintContext)) coreglib.SignalHandle
}

PrintOperationPreviewer describes PrintOperationPreview's interface methods.

type PrintOperationResult

type PrintOperationResult C.gint

PrintOperationResult: value of this type is returned by gtk_print_operation_run().

const (
	// PrintOperationResultError: error has occurred.
	PrintOperationResultError PrintOperationResult = iota
	// PrintOperationResultApply: print settings should be stored.
	PrintOperationResultApply
	// PrintOperationResultCancel: print operation has been canceled, the print
	// settings should not be stored.
	PrintOperationResultCancel
	// PrintOperationResultInProgress: print operation is not complete yet.
	// This value will only be returned when running asynchronously.
	PrintOperationResultInProgress
)

func (PrintOperationResult) String

func (p PrintOperationResult) String() string

String returns the name in string for PrintOperationResult.

type PrintPages

type PrintPages C.gint

PrintPages: see also gtk_print_job_set_pages().

const (
	// PrintPagesAll: all pages.
	PrintPagesAll PrintPages = iota
	// PrintPagesCurrent: current page.
	PrintPagesCurrent
	// PrintPagesRanges: range of pages.
	PrintPagesRanges
	// PrintPagesSelection: selected pages.
	PrintPagesSelection
)

func (PrintPages) String

func (p PrintPages) String() string

String returns the name in string for PrintPages.

type PrintQuality

type PrintQuality C.gint

PrintQuality: see also gtk_print_settings_set_quality().

const (
	// PrintQualityLow: low quality.
	PrintQualityLow PrintQuality = iota
	// PrintQualityNormal: normal quality.
	PrintQualityNormal
	// PrintQualityHigh: high quality.
	PrintQualityHigh
	// PrintQualityDraft: draft quality.
	PrintQualityDraft
)

func (PrintQuality) String

func (p PrintQuality) String() string

String returns the name in string for PrintQuality.

type PrintSettings

type PrintSettings struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

PrintSettings object represents the settings of a print dialog in a system-independent way. The main use for this object is that once you’ve printed you can get a settings object that represents the settings the user chose, and the next time you print you can pass that object in so that the user doesn’t have to re-set all his settings.

Its also possible to enumerate the settings so that you can easily save the settings for the next time your app runs, or even store them in a document. The predefined keys try to use shared values as much as possible so that moving such a document between systems still works.

Printing support was added in GTK+ 2.10.

func NewPrintSettings

func NewPrintSettings() *PrintSettings

NewPrintSettings creates a new PrintSettings object.

The function returns the following values:

  • printSettings: new PrintSettings object.

func NewPrintSettingsFromFile

func NewPrintSettingsFromFile(fileName string) (*PrintSettings, error)

NewPrintSettingsFromFile reads the print settings from file_name. Returns a new PrintSettings object with the restored settings, or NULL if an error occurred. If the file could not be loaded then error is set to either a Error or FileError. See gtk_print_settings_to_file().

The function takes the following parameters:

  • fileName: filename to read the settings from.

The function returns the following values:

  • printSettings: restored PrintSettings.

func NewPrintSettingsFromGVariant

func NewPrintSettingsFromGVariant(variant *glib.Variant) *PrintSettings

NewPrintSettingsFromGVariant: deserialize print settings from an a{sv} variant in the format produced by gtk_print_settings_to_gvariant().

The function takes the following parameters:

  • variant: a{sv} #GVariant.

The function returns the following values:

  • printSettings: new PrintSettings object.

func NewPrintSettingsFromKeyFile

func NewPrintSettingsFromKeyFile(keyFile *glib.KeyFile, groupName string) (*PrintSettings, error)

NewPrintSettingsFromKeyFile reads the print settings from the group group_name in key_file. Returns a new PrintSettings object with the restored settings, or NULL if an error occurred. If the file could not be loaded then error is set to either a Error or FileError.

The function takes the following parameters:

  • keyFile to retrieve the settings from.
  • groupName (optional): name of the group to use, or NULL to use the default “Print Settings”.

The function returns the following values:

  • printSettings: restored PrintSettings.

func (*PrintSettings) Bool

func (settings *PrintSettings) Bool(key string) bool

Bool returns the boolean represented by the value that is associated with key.

The string “true” represents TRUE, any other string FALSE.

The function takes the following parameters:

  • key: key.

The function returns the following values:

  • ok: TRUE, if key maps to a true value.

func (*PrintSettings) Collate

func (settings *PrintSettings) Collate() bool

Collate gets the value of GTK_PRINT_SETTINGS_COLLATE.

The function returns the following values:

  • ok: whether to collate the printed pages.

func (*PrintSettings) Copy

func (other *PrintSettings) Copy() *PrintSettings

Copy copies a PrintSettings object.

The function returns the following values:

  • printSettings: newly allocated copy of other.

func (*PrintSettings) DefaultSource

func (settings *PrintSettings) DefaultSource() string

DefaultSource gets the value of GTK_PRINT_SETTINGS_DEFAULT_SOURCE.

The function returns the following values:

  • utf8: default source.

func (*PrintSettings) Dither

func (settings *PrintSettings) Dither() string

Dither gets the value of GTK_PRINT_SETTINGS_DITHER.

The function returns the following values:

  • utf8: dithering that is used.

func (*PrintSettings) Double

func (settings *PrintSettings) Double(key string) float64

Double returns the double value associated with key, or 0.

The function takes the following parameters:

  • key: key.

The function returns the following values:

  • gdouble: double value of key.

func (*PrintSettings) DoubleWithDefault

func (settings *PrintSettings) DoubleWithDefault(key string, def float64) float64

DoubleWithDefault returns the floating point number represented by the value that is associated with key, or default_val if the value does not represent a floating point number.

Floating point numbers are parsed with g_ascii_strtod().

The function takes the following parameters:

  • key: key.
  • def: default value.

The function returns the following values:

  • gdouble: floating point number associated with key.

func (*PrintSettings) Duplex

func (settings *PrintSettings) Duplex() PrintDuplex

Duplex gets the value of GTK_PRINT_SETTINGS_DUPLEX.

The function returns the following values:

  • printDuplex: whether to print the output in duplex.

func (*PrintSettings) Finishings

func (settings *PrintSettings) Finishings() string

Finishings gets the value of GTK_PRINT_SETTINGS_FINISHINGS.

The function returns the following values:

  • utf8: finishings.

func (*PrintSettings) ForEach

func (settings *PrintSettings) ForEach(fn PrintSettingsFunc)

ForEach calls func for each key-value pair of settings.

The function takes the following parameters:

  • fn: function to call.

func (*PrintSettings) Get

func (settings *PrintSettings) Get(key string) string

Get looks up the string value associated with key.

The function takes the following parameters:

  • key: key.

The function returns the following values:

  • utf8: string value for key.

func (*PrintSettings) HasKey

func (settings *PrintSettings) HasKey(key string) bool

HasKey returns TRUE, if a value is associated with key.

The function takes the following parameters:

  • key: key.

The function returns the following values:

  • ok: TRUE, if key has a value.

func (*PrintSettings) Int

func (settings *PrintSettings) Int(key string) int

Int returns the integer value of key, or 0.

The function takes the following parameters:

  • key: key.

The function returns the following values:

  • gint: integer value of key.

func (*PrintSettings) IntWithDefault

func (settings *PrintSettings) IntWithDefault(key string, def int) int

IntWithDefault returns the value of key, interpreted as an integer, or the default value.

The function takes the following parameters:

  • key: key.
  • def: default value.

The function returns the following values:

  • gint: integer value of key.

func (*PrintSettings) Length

func (settings *PrintSettings) Length(key string, unit Unit) float64

Length returns the value associated with key, interpreted as a length. The returned value is converted to units.

The function takes the following parameters:

  • key: key.
  • unit of the return value.

The function returns the following values:

  • gdouble: length value of key, converted to unit.

func (*PrintSettings) LoadFile

func (settings *PrintSettings) LoadFile(fileName string) error

LoadFile reads the print settings from file_name. If the file could not be loaded then error is set to either a Error or FileError. See gtk_print_settings_to_file().

The function takes the following parameters:

  • fileName: filename to read the settings from.

func (*PrintSettings) LoadKeyFile

func (settings *PrintSettings) LoadKeyFile(keyFile *glib.KeyFile, groupName string) error

LoadKeyFile reads the print settings from the group group_name in key_file. If the file could not be loaded then error is set to either a Error or FileError.

The function takes the following parameters:

  • keyFile to retrieve the settings from.
  • groupName (optional): name of the group to use, or NULL to use the default “Print Settings”.

func (*PrintSettings) MediaType

func (settings *PrintSettings) MediaType() string

MediaType gets the value of GTK_PRINT_SETTINGS_MEDIA_TYPE.

The set of media types is defined in PWG 5101.1-2002 PWG.

The function returns the following values:

  • utf8: media type.

func (*PrintSettings) NCopies

func (settings *PrintSettings) NCopies() int

NCopies gets the value of GTK_PRINT_SETTINGS_N_COPIES.

The function returns the following values:

  • gint: number of copies to print.

func (*PrintSettings) NumberUp

func (settings *PrintSettings) NumberUp() int

NumberUp gets the value of GTK_PRINT_SETTINGS_NUMBER_UP.

The function returns the following values:

  • gint: number of pages per sheet.

func (*PrintSettings) NumberUpLayout

func (settings *PrintSettings) NumberUpLayout() NumberUpLayout

NumberUpLayout gets the value of GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT.

The function returns the following values:

  • numberUpLayout: layout of page in number-up mode.

func (*PrintSettings) Orientation

func (settings *PrintSettings) Orientation() PageOrientation

Orientation: get the value of GTK_PRINT_SETTINGS_ORIENTATION, converted to a PageOrientation.

The function returns the following values:

  • pageOrientation: orientation.

func (*PrintSettings) OutputBin

func (settings *PrintSettings) OutputBin() string

OutputBin gets the value of GTK_PRINT_SETTINGS_OUTPUT_BIN.

The function returns the following values:

  • utf8: output bin.

func (*PrintSettings) PageRanges

func (settings *PrintSettings) PageRanges() []PageRange

PageRanges gets the value of GTK_PRINT_SETTINGS_PAGE_RANGES.

The function returns the following values:

  • pageRanges: array of PageRanges. Use g_free() to free the array when it is no longer needed.

func (*PrintSettings) PageSet

func (settings *PrintSettings) PageSet() PageSet

PageSet gets the value of GTK_PRINT_SETTINGS_PAGE_SET.

The function returns the following values:

  • pageSet: set of pages to print.

func (*PrintSettings) PaperHeight

func (settings *PrintSettings) PaperHeight(unit Unit) float64

PaperHeight gets the value of GTK_PRINT_SETTINGS_PAPER_HEIGHT, converted to unit.

The function takes the following parameters:

  • unit for the return value.

The function returns the following values:

  • gdouble: paper height, in units of unit.

func (*PrintSettings) PaperSize

func (settings *PrintSettings) PaperSize() *PaperSize

PaperSize gets the value of GTK_PRINT_SETTINGS_PAPER_FORMAT, converted to a PaperSize.

The function returns the following values:

  • paperSize: paper size.

func (*PrintSettings) PaperWidth

func (settings *PrintSettings) PaperWidth(unit Unit) float64

PaperWidth gets the value of GTK_PRINT_SETTINGS_PAPER_WIDTH, converted to unit.

The function takes the following parameters:

  • unit for the return value.

The function returns the following values:

  • gdouble: paper width, in units of unit.

func (*PrintSettings) PrintPages

func (settings *PrintSettings) PrintPages() PrintPages

PrintPages gets the value of GTK_PRINT_SETTINGS_PRINT_PAGES.

The function returns the following values:

  • printPages: which pages to print.

func (*PrintSettings) Printer

func (settings *PrintSettings) Printer() string

Printer: convenience function to obtain the value of GTK_PRINT_SETTINGS_PRINTER.

The function returns the following values:

  • utf8: printer name.

func (*PrintSettings) PrinterLpi

func (settings *PrintSettings) PrinterLpi() float64

PrinterLpi gets the value of GTK_PRINT_SETTINGS_PRINTER_LPI.

The function returns the following values:

  • gdouble: resolution in lpi (lines per inch).

func (*PrintSettings) Quality

func (settings *PrintSettings) Quality() PrintQuality

Quality gets the value of GTK_PRINT_SETTINGS_QUALITY.

The function returns the following values:

  • printQuality: print quality.

func (*PrintSettings) Resolution

func (settings *PrintSettings) Resolution() int

Resolution gets the value of GTK_PRINT_SETTINGS_RESOLUTION.

The function returns the following values:

  • gint: resolution in dpi.

func (*PrintSettings) ResolutionX

func (settings *PrintSettings) ResolutionX() int

ResolutionX gets the value of GTK_PRINT_SETTINGS_RESOLUTION_X.

The function returns the following values:

  • gint: horizontal resolution in dpi.

func (*PrintSettings) ResolutionY

func (settings *PrintSettings) ResolutionY() int

ResolutionY gets the value of GTK_PRINT_SETTINGS_RESOLUTION_Y.

The function returns the following values:

  • gint: vertical resolution in dpi.

func (*PrintSettings) Reverse

func (settings *PrintSettings) Reverse() bool

Reverse gets the value of GTK_PRINT_SETTINGS_REVERSE.

The function returns the following values:

  • ok: whether to reverse the order of the printed pages.

func (*PrintSettings) Scale

func (settings *PrintSettings) Scale() float64

Scale gets the value of GTK_PRINT_SETTINGS_SCALE.

The function returns the following values:

  • gdouble: scale in percent.

func (*PrintSettings) Set

func (settings *PrintSettings) Set(key, value string)

Set associates value with key.

The function takes the following parameters:

  • key: key.
  • value (optional): string value, or NULL.

func (*PrintSettings) SetBool

func (settings *PrintSettings) SetBool(key string, value bool)

SetBool sets key to a boolean value.

The function takes the following parameters:

  • key: key.
  • value: boolean.

func (*PrintSettings) SetCollate

func (settings *PrintSettings) SetCollate(collate bool)

SetCollate sets the value of GTK_PRINT_SETTINGS_COLLATE.

The function takes the following parameters:

  • collate: whether to collate the output.

func (*PrintSettings) SetDefaultSource

func (settings *PrintSettings) SetDefaultSource(defaultSource string)

SetDefaultSource sets the value of GTK_PRINT_SETTINGS_DEFAULT_SOURCE.

The function takes the following parameters:

  • defaultSource: default source.

func (*PrintSettings) SetDither

func (settings *PrintSettings) SetDither(dither string)

SetDither sets the value of GTK_PRINT_SETTINGS_DITHER.

The function takes the following parameters:

  • dither: dithering that is used.

func (*PrintSettings) SetDouble

func (settings *PrintSettings) SetDouble(key string, value float64)

SetDouble sets key to a double value.

The function takes the following parameters:

  • key: key.
  • value: double value.

func (*PrintSettings) SetDuplex

func (settings *PrintSettings) SetDuplex(duplex PrintDuplex)

SetDuplex sets the value of GTK_PRINT_SETTINGS_DUPLEX.

The function takes the following parameters:

  • duplex: PrintDuplex value.

func (*PrintSettings) SetFinishings

func (settings *PrintSettings) SetFinishings(finishings string)

SetFinishings sets the value of GTK_PRINT_SETTINGS_FINISHINGS.

The function takes the following parameters:

  • finishings: finishings.

func (*PrintSettings) SetInt

func (settings *PrintSettings) SetInt(key string, value int)

SetInt sets key to an integer value.

The function takes the following parameters:

  • key: key.
  • value: integer.

func (*PrintSettings) SetLength

func (settings *PrintSettings) SetLength(key string, value float64, unit Unit)

SetLength associates a length in units of unit with key.

The function takes the following parameters:

  • key: key.
  • value: length.
  • unit of length.

func (*PrintSettings) SetMediaType

func (settings *PrintSettings) SetMediaType(mediaType string)

SetMediaType sets the value of GTK_PRINT_SETTINGS_MEDIA_TYPE.

The set of media types is defined in PWG 5101.1-2002 PWG.

The function takes the following parameters:

  • mediaType: media type.

func (*PrintSettings) SetNCopies

func (settings *PrintSettings) SetNCopies(numCopies int)

SetNCopies sets the value of GTK_PRINT_SETTINGS_N_COPIES.

The function takes the following parameters:

  • numCopies: number of copies.

func (*PrintSettings) SetNumberUp

func (settings *PrintSettings) SetNumberUp(numberUp int)

SetNumberUp sets the value of GTK_PRINT_SETTINGS_NUMBER_UP.

The function takes the following parameters:

  • numberUp: number of pages per sheet.

func (*PrintSettings) SetNumberUpLayout

func (settings *PrintSettings) SetNumberUpLayout(numberUpLayout NumberUpLayout)

SetNumberUpLayout sets the value of GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT.

The function takes the following parameters:

  • numberUpLayout: NumberUpLayout value.

func (*PrintSettings) SetOrientation

func (settings *PrintSettings) SetOrientation(orientation PageOrientation)

SetOrientation sets the value of GTK_PRINT_SETTINGS_ORIENTATION.

The function takes the following parameters:

  • orientation: page orientation.

func (*PrintSettings) SetOutputBin

func (settings *PrintSettings) SetOutputBin(outputBin string)

SetOutputBin sets the value of GTK_PRINT_SETTINGS_OUTPUT_BIN.

The function takes the following parameters:

  • outputBin: output bin.

func (*PrintSettings) SetPageRanges

func (settings *PrintSettings) SetPageRanges(pageRanges []PageRange)

SetPageRanges sets the value of GTK_PRINT_SETTINGS_PAGE_RANGES.

The function takes the following parameters:

  • pageRanges: array of PageRanges.

func (*PrintSettings) SetPageSet

func (settings *PrintSettings) SetPageSet(pageSet PageSet)

SetPageSet sets the value of GTK_PRINT_SETTINGS_PAGE_SET.

The function takes the following parameters:

  • pageSet: PageSet value.

func (*PrintSettings) SetPaperHeight

func (settings *PrintSettings) SetPaperHeight(height float64, unit Unit)

SetPaperHeight sets the value of GTK_PRINT_SETTINGS_PAPER_HEIGHT.

The function takes the following parameters:

  • height: paper height.
  • unit units of height.

func (*PrintSettings) SetPaperSize

func (settings *PrintSettings) SetPaperSize(paperSize *PaperSize)

SetPaperSize sets the value of GTK_PRINT_SETTINGS_PAPER_FORMAT, GTK_PRINT_SETTINGS_PAPER_WIDTH and GTK_PRINT_SETTINGS_PAPER_HEIGHT.

The function takes the following parameters:

  • paperSize: paper size.

func (*PrintSettings) SetPaperWidth

func (settings *PrintSettings) SetPaperWidth(width float64, unit Unit)

SetPaperWidth sets the value of GTK_PRINT_SETTINGS_PAPER_WIDTH.

The function takes the following parameters:

  • width: paper width.
  • unit units of width.

func (*PrintSettings) SetPrintPages

func (settings *PrintSettings) SetPrintPages(pages PrintPages)

SetPrintPages sets the value of GTK_PRINT_SETTINGS_PRINT_PAGES.

The function takes the following parameters:

  • pages PrintPages value.

func (*PrintSettings) SetPrinter

func (settings *PrintSettings) SetPrinter(printer string)

SetPrinter: convenience function to set GTK_PRINT_SETTINGS_PRINTER to printer.

The function takes the following parameters:

  • printer name.

func (*PrintSettings) SetPrinterLpi

func (settings *PrintSettings) SetPrinterLpi(lpi float64)

SetPrinterLpi sets the value of GTK_PRINT_SETTINGS_PRINTER_LPI.

The function takes the following parameters:

  • lpi: resolution in lpi (lines per inch).

func (*PrintSettings) SetQuality

func (settings *PrintSettings) SetQuality(quality PrintQuality)

SetQuality sets the value of GTK_PRINT_SETTINGS_QUALITY.

The function takes the following parameters:

  • quality: PrintQuality value.

func (*PrintSettings) SetResolution

func (settings *PrintSettings) SetResolution(resolution int)

SetResolution sets the values of GTK_PRINT_SETTINGS_RESOLUTION, GTK_PRINT_SETTINGS_RESOLUTION_X and GTK_PRINT_SETTINGS_RESOLUTION_Y.

The function takes the following parameters:

  • resolution in dpi.

func (*PrintSettings) SetResolutionXY

func (settings *PrintSettings) SetResolutionXY(resolutionX, resolutionY int)

SetResolutionXY sets the values of GTK_PRINT_SETTINGS_RESOLUTION, GTK_PRINT_SETTINGS_RESOLUTION_X and GTK_PRINT_SETTINGS_RESOLUTION_Y.

The function takes the following parameters:

  • resolutionX: horizontal resolution in dpi.
  • resolutionY: vertical resolution in dpi.

func (*PrintSettings) SetReverse

func (settings *PrintSettings) SetReverse(reverse bool)

SetReverse sets the value of GTK_PRINT_SETTINGS_REVERSE.

The function takes the following parameters:

  • reverse: whether to reverse the output.

func (*PrintSettings) SetScale

func (settings *PrintSettings) SetScale(scale float64)

SetScale sets the value of GTK_PRINT_SETTINGS_SCALE.

The function takes the following parameters:

  • scale in percent.

func (*PrintSettings) SetUseColor

func (settings *PrintSettings) SetUseColor(useColor bool)

SetUseColor sets the value of GTK_PRINT_SETTINGS_USE_COLOR.

The function takes the following parameters:

  • useColor: whether to use color.

func (*PrintSettings) ToFile

func (settings *PrintSettings) ToFile(fileName string) error

ToFile: this function saves the print settings from settings to file_name. If the file could not be loaded then error is set to either a Error or FileError.

The function takes the following parameters:

  • fileName: file to save to.

func (*PrintSettings) ToGVariant

func (settings *PrintSettings) ToGVariant() *glib.Variant

ToGVariant: serialize print settings to an a{sv} variant.

The function returns the following values:

  • variant: new, floating, #GVariant.

func (*PrintSettings) ToKeyFile

func (settings *PrintSettings) ToKeyFile(keyFile *glib.KeyFile, groupName string)

ToKeyFile: this function adds the print settings from settings to key_file.

The function takes the following parameters:

  • keyFile to save the print settings to.
  • groupName (optional): group to add the settings to in key_file, or NULL to use the default “Print Settings”.

func (*PrintSettings) Unset

func (settings *PrintSettings) Unset(key string)

Unset removes any value associated with key. This has the same effect as setting the value to NULL.

The function takes the following parameters:

  • key: key.

func (*PrintSettings) UseColor

func (settings *PrintSettings) UseColor() bool

UseColor gets the value of GTK_PRINT_SETTINGS_USE_COLOR.

The function returns the following values:

  • ok: whether to use color.

type PrintSettingsFunc

type PrintSettingsFunc func(key, value string)

type PrintStatus

type PrintStatus C.gint

PrintStatus status gives a rough indication of the completion of a running print operation.

const (
	// PrintStatusInitial: printing has not started yet; this status is set
	// initially, and while the print dialog is shown.
	PrintStatusInitial PrintStatus = iota
	// PrintStatusPreparing: this status is set while the begin-print signal is
	// emitted and during pagination.
	PrintStatusPreparing
	// PrintStatusGeneratingData: this status is set while the pages are being
	// rendered.
	PrintStatusGeneratingData
	// PrintStatusSendingData: print job is being sent off to the printer.
	PrintStatusSendingData
	// PrintStatusPending: print job has been sent to the printer, but is not
	// printed for some reason, e.g. the printer may be stopped.
	PrintStatusPending
	// PrintStatusPendingIssue: some problem has occurred during printing, e.g.
	// a paper jam.
	PrintStatusPendingIssue
	// PrintStatusPrinting: printer is processing the print job.
	PrintStatusPrinting
	// PrintStatusFinished: printing has been completed successfully.
	PrintStatusFinished
	// PrintStatusFinishedAborted: printing has been aborted.
	PrintStatusFinishedAborted
)

func (PrintStatus) String

func (p PrintStatus) String() string

String returns the name in string for PrintStatus.

type ProgressBar

type ProgressBar struct {
	Widget

	*coreglib.Object
	Orientable
	// contains filtered or unexported fields
}

ProgressBar is typically used to display the progress of a long running operation. It provides a visual clue that processing is underway. The GtkProgressBar can be used in two different modes: percentage mode and activity mode.

When an application can determine how much work needs to take place (e.g. read a fixed number of bytes from a file) and can monitor its progress, it can use the GtkProgressBar in percentage mode and the user sees a growing bar indicating the percentage of the work that has been completed. In this mode, the application is required to call gtk_progress_bar_set_fraction() periodically to update the progress bar.

When an application has no accurate way of knowing the amount of work to do, it can use the ProgressBar in activity mode, which shows activity by a block moving back and forth within the progress area. In this mode, the application is required to call gtk_progress_bar_pulse() periodically to update the progress bar.

There is quite a bit of flexibility provided to control the appearance of the ProgressBar. Functions are provided to control the orientation of the bar, optional text can be displayed along with the bar, and the step size used in activity mode can be set.

CSS nodes

progressbar[.osd]
├── [text]
╰── trough[.empty][.full]
    ╰── progress[.pulse]

GtkProgressBar has a main CSS node with name progressbar and subnodes with names text and trough, of which the latter has a subnode named progress. The text subnode is only present if text is shown. The progress subnode has the style class .pulse when in activity mode. It gets the style classes .left, .right, .top or .bottom added when the progress 'touches' the corresponding end of the GtkProgressBar. The .osd class on the progressbar node is for use in overlays like the one Epiphany has for page loading progress.

func NewProgressBar

func NewProgressBar() *ProgressBar

NewProgressBar creates a new ProgressBar.

The function returns the following values:

  • progressBar: ProgressBar.

func (*ProgressBar) Ellipsize

func (pbar *ProgressBar) Ellipsize() pango.EllipsizeMode

Ellipsize returns the ellipsizing position of the progress bar. See gtk_progress_bar_set_ellipsize().

The function returns the following values:

  • ellipsizeMode: EllipsizeMode.

func (*ProgressBar) Fraction

func (pbar *ProgressBar) Fraction() float64

Fraction returns the current fraction of the task that’s been completed.

The function returns the following values:

  • gdouble: fraction from 0.0 to 1.0.

func (*ProgressBar) Inverted

func (pbar *ProgressBar) Inverted() bool

Inverted gets the value set by gtk_progress_bar_set_inverted().

The function returns the following values:

  • ok: TRUE if the progress bar is inverted.

func (*ProgressBar) Pulse

func (pbar *ProgressBar) Pulse()

Pulse indicates that some progress has been made, but you don’t know how much. Causes the progress bar to enter “activity mode,” where a block bounces back and forth. Each call to gtk_progress_bar_pulse() causes the block to move by a little bit (the amount of movement per pulse is determined by gtk_progress_bar_set_pulse_step()).

func (*ProgressBar) PulseStep

func (pbar *ProgressBar) PulseStep() float64

PulseStep retrieves the pulse step set with gtk_progress_bar_set_pulse_step().

The function returns the following values:

  • gdouble: fraction from 0.0 to 1.0.

func (*ProgressBar) SetEllipsize

func (pbar *ProgressBar) SetEllipsize(mode pango.EllipsizeMode)

SetEllipsize sets the mode used to ellipsize (add an ellipsis: "...") the text if there is not enough space to render the entire string.

The function takes the following parameters:

  • mode: EllipsizeMode.

func (*ProgressBar) SetFraction

func (pbar *ProgressBar) SetFraction(fraction float64)

SetFraction causes the progress bar to “fill in” the given fraction of the bar. The fraction should be between 0.0 and 1.0, inclusive.

The function takes the following parameters:

  • fraction of the task that’s been completed.

func (*ProgressBar) SetInverted

func (pbar *ProgressBar) SetInverted(inverted bool)

SetInverted progress bars normally grow from top to bottom or left to right. Inverted progress bars grow in the opposite direction.

The function takes the following parameters:

  • inverted: TRUE to invert the progress bar.

func (*ProgressBar) SetPulseStep

func (pbar *ProgressBar) SetPulseStep(fraction float64)

SetPulseStep sets the fraction of total progress bar length to move the bouncing block for each call to gtk_progress_bar_pulse().

The function takes the following parameters:

  • fraction between 0.0 and 1.0.

func (*ProgressBar) SetShowText

func (pbar *ProgressBar) SetShowText(showText bool)

SetShowText sets whether the progress bar will show text next to the bar. The shown text is either the value of the ProgressBar:text property or, if that is NULL, the ProgressBar:fraction value, as a percentage.

To make a progress bar that is styled and sized suitably for containing text (even if the actual text is blank), set ProgressBar:show-text to TRUE and ProgressBar:text to the empty string (not NULL).

The function takes the following parameters:

  • showText: whether to show text.

func (*ProgressBar) SetText

func (pbar *ProgressBar) SetText(text string)

SetText causes the given text to appear next to the progress bar.

If text is NULL and ProgressBar:show-text is TRUE, the current value of ProgressBar:fraction will be displayed as a percentage.

If text is non-NULL and ProgressBar:show-text is TRUE, the text will be displayed. In this case, it will not display the progress percentage. If text is the empty string, the progress bar will still be styled and sized suitably for containing text, as long as ProgressBar:show-text is TRUE.

The function takes the following parameters:

  • text (optional): UTF-8 string, or NULL.

func (*ProgressBar) ShowText

func (pbar *ProgressBar) ShowText() bool

ShowText gets the value of the ProgressBar:show-text property. See gtk_progress_bar_set_show_text().

The function returns the following values:

  • ok: TRUE if text is shown in the progress bar.

func (*ProgressBar) Text

func (pbar *ProgressBar) Text() string

Text retrieves the text that is displayed with the progress bar, if any, otherwise NULL. The return value is a reference to the text, not a copy of it, so will become invalid if you change the text in the progress bar.

The function returns the following values:

  • utf8 (optional): text, or NULL; this string is owned by the widget and should not be modified or freed.

type ProgressBarAccessible

type ProgressBarAccessible struct {
	WidgetAccessible

	atk.Value
	// contains filtered or unexported fields
}

type ProgressBarAccessibleClass added in v0.0.5

type ProgressBarAccessibleClass struct {
	// contains filtered or unexported fields
}

ProgressBarAccessibleClass: instance of this type is always passed by reference.

func (*ProgressBarAccessibleClass) ParentClass added in v0.0.5

type ProgressBarAccessibleOverrides added in v0.0.5

type ProgressBarAccessibleOverrides struct {
}

ProgressBarAccessibleOverrides contains methods that are overridable.

type ProgressBarClass added in v0.0.5

type ProgressBarClass struct {
	// contains filtered or unexported fields
}

ProgressBarClass: instance of this type is always passed by reference.

func (*ProgressBarClass) ParentClass added in v0.0.5

func (p *ProgressBarClass) ParentClass() *WidgetClass

type ProgressBarOverrides added in v0.0.5

type ProgressBarOverrides struct {
}

ProgressBarOverrides contains methods that are overridable.

type PropagationPhase

type PropagationPhase C.gint

PropagationPhase describes the stage at which events are fed into a EventController.

const (
	// PhaseNone events are not delivered automatically. Those can be manually
	// fed through gtk_event_controller_handle_event(). This should only be used
	// when full control about when, or whether the controller handles the event
	// is needed.
	PhaseNone PropagationPhase = iota
	// PhaseCapture events are delivered in the capture phase. The capture phase
	// happens before the bubble phase, runs from the toplevel down to the event
	// widget. This option should only be used on containers that might possibly
	// handle events before their children do.
	PhaseCapture
	// PhaseBubble events are delivered in the bubble phase. The bubble phase
	// happens after the capture phase, and before the default handlers are run.
	// This phase runs from the event widget, up to the toplevel.
	PhaseBubble
	// PhaseTarget events are delivered in the default widget event handlers,
	// note that widget implementations must chain up on button, motion,
	// touch and grab broken handlers for controllers in this phase to be run.
	PhaseTarget
)

func (PropagationPhase) String

func (p PropagationPhase) String() string

String returns the name in string for PropagationPhase.

type RCFlags

type RCFlags C.guint

RCFlags: deprecated.

const (
	// RCFg: deprecated.
	RCFg RCFlags = 0b1
	// RCBg: deprecated.
	RCBg RCFlags = 0b10
	// RCText: deprecated.
	RCText RCFlags = 0b100
	// RCBase: deprecated.
	RCBase RCFlags = 0b1000
)

func (RCFlags) Has

func (r RCFlags) Has(other RCFlags) bool

Has returns true if r contains other.

func (RCFlags) String

func (r RCFlags) String() string

String returns the names in string for RCFlags.

type RCProperty

type RCProperty struct {
	// contains filtered or unexported fields
}

RCProperty: deprecated

An instance of this type is always passed by reference.

func (*RCProperty) Origin

func (r *RCProperty) Origin() string

Origin: field similar to one found in SettingsValue.

func (*RCProperty) PropertyName

func (r *RCProperty) PropertyName() glib.Quark

PropertyName: quark-ified property identifier like “GtkScrollbar::spacing”.

func (*RCProperty) TypeName

func (r *RCProperty) TypeName() glib.Quark

TypeName: quark-ified type identifier.

type RCStyle

type RCStyle struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

RCStyle is used to represent a set of information about the appearance of a widget. This can later be composited together with other RcStyle-struct<!-- -->s to form a Style.

func NewRCStyle deprecated

func NewRCStyle() *RCStyle

NewRCStyle creates a new RcStyle with no fields set and a reference count of 1.

Deprecated: Use CssProvider instead.

The function returns the following values:

  • rcStyle: newly-created RcStyle.

func (*RCStyle) Copy deprecated

func (orig *RCStyle) Copy() *RCStyle

Copy makes a copy of the specified RcStyle. This function will correctly copy an RC style that is a member of a class derived from RcStyle.

Deprecated: Use CssProvider instead.

The function returns the following values:

  • rcStyle: resulting RcStyle.

type RCStyleClass added in v0.0.5

type RCStyleClass struct {
	// contains filtered or unexported fields
}

RCStyleClass: instance of this type is always passed by reference.

type RCStyleOverrides added in v0.0.5

type RCStyleOverrides struct {
	// The function takes the following parameters:
	//
	Merge func(src *RCStyle)
	// The function takes the following parameters:
	//
	//   - settings
	//   - scanner
	//
	// The function returns the following values:
	//
	Parse func(settings *Settings, scanner *glib.Scanner) uint
}

RCStyleOverrides contains methods that are overridable.

type RCTokenType deprecated

type RCTokenType C.gint

RCTokenType enumeration represents the tokens in the RC file. It is exposed so that theme engines can reuse these tokens when parsing the theme-engine specific portions of a RC file.

Deprecated: Use CssProvider instead.

const (
	// RCTokenInvalid: deprecated.
	RCTokenInvalid RCTokenType = 270
	// RCTokenInclude: deprecated.
	RCTokenInclude RCTokenType = 271
	// RCTokenNormal: deprecated.
	RCTokenNormal RCTokenType = 272
	// RCTokenActive: deprecated.
	RCTokenActive RCTokenType = 273
	// RCTokenPrelight: deprecated.
	RCTokenPrelight RCTokenType = 274
	// RCTokenSelected: deprecated.
	RCTokenSelected RCTokenType = 275
	// RCTokenInsensitive: deprecated.
	RCTokenInsensitive RCTokenType = 276
	// RCTokenFg: deprecated.
	RCTokenFg RCTokenType = 277
	// RCTokenBg: deprecated.
	RCTokenBg RCTokenType = 278
	// RCTokenText: deprecated.
	RCTokenText RCTokenType = 279
	// RCTokenBase: deprecated.
	RCTokenBase RCTokenType = 280
	// RCTokenXthickness: deprecated.
	RCTokenXthickness RCTokenType = 281
	// RCTokenYthickness: deprecated.
	RCTokenYthickness RCTokenType = 282
	// RCTokenFont: deprecated.
	RCTokenFont RCTokenType = 283
	// RCTokenFontset: deprecated.
	RCTokenFontset RCTokenType = 284
	// RCTokenFontName: deprecated.
	RCTokenFontName RCTokenType = 285
	// RCTokenBgPixmap: deprecated.
	RCTokenBgPixmap RCTokenType = 286
	// RCTokenPixmapPath: deprecated.
	RCTokenPixmapPath RCTokenType = 287
	// RCTokenStyle: deprecated.
	RCTokenStyle RCTokenType = 288
	// RCTokenBinding: deprecated.
	RCTokenBinding RCTokenType = 289
	// RCTokenBind: deprecated.
	RCTokenBind RCTokenType = 290
	// RCTokenWidget: deprecated.
	RCTokenWidget RCTokenType = 291
	// RCTokenWidgetClass: deprecated.
	RCTokenWidgetClass RCTokenType = 292
	// RCTokenClass: deprecated.
	RCTokenClass RCTokenType = 293
	// RCTokenLowest: deprecated.
	RCTokenLowest RCTokenType = 294
	// RCTokenGTK: deprecated.
	RCTokenGTK RCTokenType = 295
	// RCTokenApplication: deprecated.
	RCTokenApplication RCTokenType = 296
	// RCTokenTheme: deprecated.
	RCTokenTheme RCTokenType = 297
	// RCTokenRC: deprecated.
	RCTokenRC RCTokenType = 298
	// RCTokenHighest: deprecated.
	RCTokenHighest RCTokenType = 299
	// RCTokenEngine: deprecated.
	RCTokenEngine RCTokenType = 300
	// RCTokenModulePath: deprecated.
	RCTokenModulePath RCTokenType = 301
	// RCTokenIMModulePath: deprecated.
	RCTokenIMModulePath RCTokenType = 302
	// RCTokenIMModuleFile: deprecated.
	RCTokenIMModuleFile RCTokenType = 303
	// RCTokenStock: deprecated.
	RCTokenStock RCTokenType = 304
	// RCTokenLTR: deprecated.
	RCTokenLTR RCTokenType = 305
	// RCTokenRTL: deprecated.
	RCTokenRTL RCTokenType = 306
	// RCTokenColor: deprecated.
	RCTokenColor RCTokenType = 307
	// RCTokenUnbind: deprecated.
	RCTokenUnbind RCTokenType = 308
	// RCTokenLast: deprecated.
	RCTokenLast RCTokenType = 309
)

func (RCTokenType) String

func (r RCTokenType) String() string

String returns the name in string for RCTokenType.

type RadioAction

type RadioAction struct {
	ToggleAction
	// contains filtered or unexported fields
}

RadioAction is similar to RadioMenuItem. A number of radio actions can be linked together so that only one may be active at any one time.

func NewRadioAction deprecated

func NewRadioAction(name, label, tooltip, stockId string, value int) *RadioAction

NewRadioAction creates a new RadioAction object. To add the action to a ActionGroup and set the accelerator for the action, call gtk_action_group_add_action_with_accel().

Deprecated: since version 3.10.

The function takes the following parameters:

  • name: unique name for the action.
  • label (optional) displayed in menu items and on buttons, or NULL.
  • tooltip (optional) for this action, or NULL.
  • stockId (optional): stock icon to display in widgets representing this action, or NULL.
  • value which gtk_radio_action_get_current_value() should return if this action is selected.

The function returns the following values:

  • radioAction: new RadioAction.

func (*RadioAction) ConnectChanged

func (action *RadioAction) ConnectChanged(f func(current *RadioAction)) coreglib.SignalHandle

ConnectChanged signal is emitted on every member of a radio group when the active member is changed. The signal gets emitted after the ::activate signals for the previous and current active members.

func (*RadioAction) CurrentValue deprecated

func (action *RadioAction) CurrentValue() int

CurrentValue obtains the value property of the currently active member of the group to which action belongs.

Deprecated: since version 3.10.

The function returns the following values:

  • gint: value of the currently active group member.

func (*RadioAction) Group deprecated

func (action *RadioAction) Group() []*RadioAction

Group returns the list representing the radio group for this object. Note that the returned list is only valid until the next change to the group.

A common way to set up a group of radio group is the following:

GSList *group = NULL;
GtkRadioAction *action;

while ( ...more actions to add... /)
  {
     action = gtk_radio_action_new (...);

     gtk_radio_action_set_group (action, group);
     group = gtk_radio_action_get_group (action);
  }

Deprecated: since version 3.10.

The function returns the following values:

  • sList: list representing the radio group for this object.

func (*RadioAction) JoinGroup deprecated

func (action *RadioAction) JoinGroup(groupSource *RadioAction)

JoinGroup joins a radio action object to the group of another radio action object.

Use this in language bindings instead of the gtk_radio_action_get_group() and gtk_radio_action_set_group() methods

A common way to set up a group of radio actions is the following:

GtkRadioAction *action;
GtkRadioAction *last_action;

while ( ...more actions to add... /)
  {
     action = gtk_radio_action_new (...);

     gtk_radio_action_join_group (action, last_action);
     last_action = action;
  }

Deprecated: since version 3.10.

The function takes the following parameters:

  • groupSource (optional): radio action object whos group we are joining, or NULL to remove the radio action from its group.

func (*RadioAction) SetCurrentValue deprecated

func (action *RadioAction) SetCurrentValue(currentValue int)

SetCurrentValue sets the currently active group member to the member with value property current_value.

Deprecated: since version 3.10.

The function takes the following parameters:

  • currentValue: new value.

func (*RadioAction) SetGroup deprecated

func (action *RadioAction) SetGroup(group []*RadioAction)

SetGroup sets the radio group for the radio action object.

Deprecated: since version 3.10.

The function takes the following parameters:

  • group (optional): list representing a radio group, or NULL.

type RadioActionClass added in v0.0.5

type RadioActionClass struct {
	// contains filtered or unexported fields
}

RadioActionClass: instance of this type is always passed by reference.

func (*RadioActionClass) ParentClass added in v0.0.5

func (r *RadioActionClass) ParentClass() *ToggleActionClass

type RadioActionEntry deprecated

type RadioActionEntry struct {
	// contains filtered or unexported fields
}

RadioActionEntry structs are used with gtk_action_group_add_radio_actions() to construct groups of radio actions.

Deprecated: since version 3.10.

An instance of this type is always passed by reference.

func (*RadioActionEntry) Accelerator

func (r *RadioActionEntry) Accelerator() string

Accelerator: accelerator for the action, in the format understood by gtk_accelerator_parse().

func (*RadioActionEntry) Label

func (r *RadioActionEntry) Label() string

Label: label for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain().

func (*RadioActionEntry) Name

func (r *RadioActionEntry) Name() string

Name: name of the action.

func (*RadioActionEntry) SetValue

func (r *RadioActionEntry) SetValue(value int)

Value: value to set on the radio action. See gtk_radio_action_get_current_value().

func (*RadioActionEntry) StockID

func (r *RadioActionEntry) StockID() string

StockID: stock id for the action, or the name of an icon from the icon theme.

func (*RadioActionEntry) Tooltip

func (r *RadioActionEntry) Tooltip() string

Tooltip: tooltip for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain().

func (*RadioActionEntry) Value

func (r *RadioActionEntry) Value() int

Value: value to set on the radio action. See gtk_radio_action_get_current_value().

type RadioActionOverrides added in v0.0.5

type RadioActionOverrides struct {
	// The function takes the following parameters:
	//
	Changed func(current *RadioAction)
}

RadioActionOverrides contains methods that are overridable.

type RadioButton

type RadioButton struct {
	CheckButton
	// contains filtered or unexported fields
}

RadioButton: single radio button performs the same basic function as a CheckButton, as its position in the object hierarchy reflects. It is only when multiple radio buttons are grouped together that they become a different user interface component in their own right.

Every radio button is a member of some group of radio buttons. When one is selected, all other radio buttons in the same group are deselected. A RadioButton is one way of giving the user a choice from many options.

Radio button widgets are created with gtk_radio_button_new(), passing NULL as the argument if this is the first radio button in a group. In subsequent calls, the group you wish to add this button to should be passed as an argument. Optionally, gtk_radio_button_new_with_label() can be used if you want a text label on the radio button.

Alternatively, when adding widgets to an existing group of radio buttons, use gtk_radio_button_new_from_widget() with a RadioButton that already has a group assigned to it. The convenience function gtk_radio_button_new_with_label_from_widget() is also provided.

To retrieve the group a RadioButton is assigned to, use gtk_radio_button_get_group().

To remove a RadioButton from one group and make it part of a new one, use gtk_radio_button_set_group().

The group list does not need to be freed, as each RadioButton will remove itself and its list item when it is destroyed.

CSS nodes

void create_radio_buttons (void) {

   GtkWidget *window, *radio1, *radio2, *box, *entry;
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
   gtk_box_set_homogeneous (GTK_BOX (box), TRUE);

   // Create a radio button with a GtkEntry widget
   radio1 = gtk_radio_button_new (NULL);
   entry = gtk_entry_new ();
   gtk_container_add (GTK_CONTAINER (radio1), entry);

   // Create a radio button with a label
   radio2 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio1),
                                                         "I’m the second radio button.");

   // Pack them into a box, then show all the widgets
   gtk_box_pack_start (GTK_BOX (box), radio1);
   gtk_box_pack_start (GTK_BOX (box), radio2);
   gtk_container_add (GTK_CONTAINER (window), box);
   gtk_widget_show_all (window);
   return;
}

When an unselected button in the group is clicked the clicked button receives the ToggleButton::toggled signal, as does the previously selected button. Inside the ToggleButton::toggled handler, gtk_toggle_button_get_active() can be used to determine if the button has been selected or deselected.

func NewRadioButton

func NewRadioButton(group []*RadioButton) *RadioButton

NewRadioButton creates a new RadioButton. To be of any practical value, a widget should then be packed into the radio button.

The function takes the following parameters:

  • group (optional): existing radio button group, or NULL if you are creating a new group.

The function returns the following values:

  • radioButton: new radio button.

func NewRadioButtonFromWidget

func NewRadioButtonFromWidget(radioGroupMember *RadioButton) *RadioButton

NewRadioButtonFromWidget creates a new RadioButton, adding it to the same group as radio_group_member. As with gtk_radio_button_new(), a widget should be packed into the radio button.

The function takes the following parameters:

  • radioGroupMember (optional): existing RadioButton.

The function returns the following values:

  • radioButton: new radio button.

func NewRadioButtonWithLabel

func NewRadioButtonWithLabel(group []*RadioButton, label string) *RadioButton

NewRadioButtonWithLabel creates a new RadioButton with a text label.

The function takes the following parameters:

  • group (optional): existing radio button group, or NULL if you are creating a new group.
  • label: text label to display next to the radio button.

The function returns the following values:

  • radioButton: new radio button.

func NewRadioButtonWithLabelFromWidget

func NewRadioButtonWithLabelFromWidget(radioGroupMember *RadioButton, label string) *RadioButton

NewRadioButtonWithLabelFromWidget creates a new RadioButton with a text label, adding it to the same group as radio_group_member.

The function takes the following parameters:

  • radioGroupMember (optional): widget to get radio group from or NULL.
  • label: text string to display next to the radio button.

The function returns the following values:

  • radioButton: new radio button.

func NewRadioButtonWithMnemonic

func NewRadioButtonWithMnemonic(group []*RadioButton, label string) *RadioButton

NewRadioButtonWithMnemonic creates a new RadioButton containing a label, adding it to the same group as group. The label will be created using gtk_label_new_with_mnemonic(), so underscores in label indicate the mnemonic for the button.

The function takes the following parameters:

  • group (optional): radio button group, or NULL.
  • label: text of the button, with an underscore in front of the mnemonic character.

The function returns the following values:

  • radioButton: new RadioButton.

func NewRadioButtonWithMnemonicFromWidget

func NewRadioButtonWithMnemonicFromWidget(radioGroupMember *RadioButton, label string) *RadioButton

NewRadioButtonWithMnemonicFromWidget creates a new RadioButton containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in label indicate the mnemonic for the button.

The function takes the following parameters:

  • radioGroupMember (optional): widget to get radio group from or NULL.
  • label: text of the button, with an underscore in front of the mnemonic character.

The function returns the following values:

  • radioButton: new RadioButton.

func (*RadioButton) ConnectGroupChanged

func (radioButton *RadioButton) ConnectGroupChanged(f func()) coreglib.SignalHandle

ConnectGroupChanged is emitted when the group of radio buttons that a radio button belongs to changes. This is emitted when a radio button switches from being alone to being part of a group of 2 or more buttons, or vice-versa, and when a button is moved from one group of 2 or more buttons to a different one, but not when the composition of the group that a button belongs to changes.

func (*RadioButton) Group

func (radioButton *RadioButton) Group() []*RadioButton

Group retrieves the group assigned to a radio button.

The function returns the following values:

  • sList: linked list containing all the radio buttons in the same group as radio_button. The returned list is owned by the radio button and must not be modified or freed.

func (*RadioButton) JoinGroup

func (radioButton *RadioButton) JoinGroup(groupSource *RadioButton)

JoinGroup joins a RadioButton object to the group of another RadioButton object

Use this in language bindings instead of the gtk_radio_button_get_group() and gtk_radio_button_set_group() methods

A common way to set up a group of radio buttons is the following:

GtkRadioButton *radio_button;
GtkRadioButton *last_button;

while (some_condition)
  {
     radio_button = gtk_radio_button_new (NULL);

     gtk_radio_button_join_group (radio_button, last_button);
     last_button = radio_button;
  }.

The function takes the following parameters:

  • groupSource (optional): radio button object whos group we are joining, or NULL to remove the radio button from its group.

func (*RadioButton) SetGroup

func (radioButton *RadioButton) SetGroup(group []*RadioButton)

SetGroup sets a RadioButton’s group. It should be noted that this does not change the layout of your interface in any way, so if you are changing the group, it is likely you will need to re-arrange the user interface to reflect these changes.

The function takes the following parameters:

  • group (optional): existing radio button group, such as one returned from gtk_radio_button_get_group(), or NULL.

type RadioButtonAccessible

type RadioButtonAccessible struct {
	ToggleButtonAccessible
	// contains filtered or unexported fields
}

type RadioButtonAccessibleClass added in v0.0.5

type RadioButtonAccessibleClass struct {
	// contains filtered or unexported fields
}

RadioButtonAccessibleClass: instance of this type is always passed by reference.

func (*RadioButtonAccessibleClass) ParentClass added in v0.0.5

type RadioButtonAccessibleOverrides added in v0.0.5

type RadioButtonAccessibleOverrides struct {
}

RadioButtonAccessibleOverrides contains methods that are overridable.

type RadioButtonClass added in v0.0.5

type RadioButtonClass struct {
	// contains filtered or unexported fields
}

RadioButtonClass: instance of this type is always passed by reference.

func (*RadioButtonClass) ParentClass added in v0.0.5

func (r *RadioButtonClass) ParentClass() *CheckButtonClass

type RadioButtonOverrides added in v0.0.5

type RadioButtonOverrides struct {
	GroupChanged func()
}

RadioButtonOverrides contains methods that are overridable.

type RadioMenuItem

type RadioMenuItem struct {
	CheckMenuItem
	// contains filtered or unexported fields
}

RadioMenuItem: radio menu item is a check menu item that belongs to a group. At each instant exactly one of the radio menu items from a group is selected.

The group list does not need to be freed, as each RadioMenuItem will remove itself and its list item when it is destroyed.

The correct way to create a group of radio menu items is approximatively this:

How to create a group of radio menu items.

menuitem
├── radio.left
╰── <child>

GtkRadioMenuItem has a main CSS node with name menuitem, and a subnode with name radio, which gets the .left or .right style class.

func NewRadioMenuItem

func NewRadioMenuItem(group []*RadioMenuItem) *RadioMenuItem

NewRadioMenuItem creates a new RadioMenuItem.

The function takes the following parameters:

  • group (optional) to which the radio menu item is to be attached, or NULL.

The function returns the following values:

  • radioMenuItem: new RadioMenuItem.

func NewRadioMenuItemFromWidget

func NewRadioMenuItemFromWidget(group *RadioMenuItem) *RadioMenuItem

NewRadioMenuItemFromWidget creates a new RadioMenuItem adding it to the same group as group.

The function takes the following parameters:

  • group (optional): existing RadioMenuItem.

The function returns the following values:

  • radioMenuItem: new RadioMenuItem.

func NewRadioMenuItemWithLabel

func NewRadioMenuItemWithLabel(group []*RadioMenuItem, label string) *RadioMenuItem

NewRadioMenuItemWithLabel creates a new RadioMenuItem whose child is a simple Label.

The function takes the following parameters:

  • group (optional): group the radio menu item is inside, or NULL.
  • label: text for the label.

The function returns the following values:

  • radioMenuItem: new RadioMenuItem.

func NewRadioMenuItemWithLabelFromWidget

func NewRadioMenuItemWithLabelFromWidget(group *RadioMenuItem, label string) *RadioMenuItem

NewRadioMenuItemWithLabelFromWidget creates a new GtkRadioMenuItem whose child is a simple GtkLabel. The new RadioMenuItem is added to the same group as group.

The function takes the following parameters:

  • group (optional): existing RadioMenuItem.
  • label (optional): text for the label.

The function returns the following values:

  • radioMenuItem: new RadioMenuItem.

func NewRadioMenuItemWithMnemonic

func NewRadioMenuItemWithMnemonic(group []*RadioMenuItem, label string) *RadioMenuItem

NewRadioMenuItemWithMnemonic creates a new RadioMenuItem containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in label indicate the mnemonic for the menu item.

The function takes the following parameters:

  • group (optional): group the radio menu item is inside, or NULL.
  • label: text of the button, with an underscore in front of the mnemonic character.

The function returns the following values:

  • radioMenuItem: new RadioMenuItem.

func NewRadioMenuItemWithMnemonicFromWidget

func NewRadioMenuItemWithMnemonicFromWidget(group *RadioMenuItem, label string) *RadioMenuItem

NewRadioMenuItemWithMnemonicFromWidget creates a new GtkRadioMenuItem containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in label indicate the mnemonic for the menu item.

The new RadioMenuItem is added to the same group as group.

The function takes the following parameters:

  • group (optional): existing RadioMenuItem.
  • label (optional): text of the button, with an underscore in front of the mnemonic character.

The function returns the following values:

  • radioMenuItem: new RadioMenuItem.

func (*RadioMenuItem) ConnectGroupChanged

func (radioMenuItem *RadioMenuItem) ConnectGroupChanged(f func()) coreglib.SignalHandle

func (*RadioMenuItem) Group

func (radioMenuItem *RadioMenuItem) Group() []*RadioMenuItem

Group returns the group to which the radio menu item belongs, as a #GList of RadioMenuItem. The list belongs to GTK+ and should not be freed.

The function returns the following values:

  • sList: group of radio_menu_item.

func (*RadioMenuItem) JoinGroup

func (radioMenuItem *RadioMenuItem) JoinGroup(groupSource *RadioMenuItem)

JoinGroup joins a RadioMenuItem object to the group of another RadioMenuItem object.

This function should be used by language bindings to avoid the memory manangement of the opaque List of gtk_radio_menu_item_get_group() and gtk_radio_menu_item_set_group().

A common way to set up a group of RadioMenuItem instances is:

GtkRadioMenuItem *last_item = NULL;

while ( ...more items to add... )
  {
    GtkRadioMenuItem *radio_item;

    radio_item = gtk_radio_menu_item_new (...);

    gtk_radio_menu_item_join_group (radio_item, last_item);
    last_item = radio_item;
  }.

The function takes the following parameters:

  • groupSource (optional) whose group we are joining, or NULL to remove the radio_menu_item from its current group.

func (*RadioMenuItem) SetGroup

func (radioMenuItem *RadioMenuItem) SetGroup(group []*RadioMenuItem)

SetGroup sets the group of a radio menu item, or changes it.

The function takes the following parameters:

  • group (optional): new group, or NULL.

type RadioMenuItemAccessible

type RadioMenuItemAccessible struct {
	CheckMenuItemAccessible
	// contains filtered or unexported fields
}

type RadioMenuItemAccessibleClass added in v0.0.5

type RadioMenuItemAccessibleClass struct {
	// contains filtered or unexported fields
}

RadioMenuItemAccessibleClass: instance of this type is always passed by reference.

func (*RadioMenuItemAccessibleClass) ParentClass added in v0.0.5

type RadioMenuItemAccessibleOverrides added in v0.0.5

type RadioMenuItemAccessibleOverrides struct {
}

RadioMenuItemAccessibleOverrides contains methods that are overridable.

type RadioMenuItemClass added in v0.0.5

type RadioMenuItemClass struct {
	// contains filtered or unexported fields
}

RadioMenuItemClass: instance of this type is always passed by reference.

func (*RadioMenuItemClass) ParentClass added in v0.0.5

func (r *RadioMenuItemClass) ParentClass() *CheckMenuItemClass

type RadioMenuItemOverrides added in v0.0.5

type RadioMenuItemOverrides struct {
	GroupChanged func()
}

RadioMenuItemOverrides contains methods that are overridable.

type RadioToolButton

type RadioToolButton struct {
	ToggleToolButton
	// contains filtered or unexported fields
}

RadioToolButton is a ToolItem that contains a radio button, that is, a button that is part of a group of toggle buttons where only one button can be active at a time.

Use gtk_radio_tool_button_new() to create a new GtkRadioToolButton. Use gtk_radio_tool_button_new_from_widget() to create a new GtkRadioToolButton that is part of the same group as an existing GtkRadioToolButton.

CSS nodes

GtkRadioToolButton has a single CSS node with name toolbutton.

func NewRadioToolButton

func NewRadioToolButton(group []*RadioButton) *RadioToolButton

NewRadioToolButton creates a new RadioToolButton, adding it to group.

The function takes the following parameters:

  • group (optional): an existing radio button group, or NULL if you are creating a new group.

The function returns the following values:

  • radioToolButton: new RadioToolButton.

func NewRadioToolButtonFromStock deprecated

func NewRadioToolButtonFromStock(group []*RadioButton, stockId string) *RadioToolButton

NewRadioToolButtonFromStock creates a new RadioToolButton, adding it to group. The new RadioToolButton will contain an icon and label from the stock item indicated by stock_id.

Deprecated: Use gtk_radio_tool_button_new() instead.

The function takes the following parameters:

  • group (optional): existing radio button group, or NULL if you are creating a new group.
  • stockId: name of a stock item.

The function returns the following values:

  • radioToolButton: new RadioToolButton.

func NewRadioToolButtonFromWidget

func NewRadioToolButtonFromWidget(group *RadioToolButton) *RadioToolButton

NewRadioToolButtonFromWidget creates a new RadioToolButton adding it to the same group as gruup.

The function takes the following parameters:

  • group (optional): existing RadioToolButton, or NULL.

The function returns the following values:

  • radioToolButton: new RadioToolButton.

func NewRadioToolButtonWithStockFromWidget deprecated

func NewRadioToolButtonWithStockFromWidget(group *RadioToolButton, stockId string) *RadioToolButton

NewRadioToolButtonWithStockFromWidget creates a new RadioToolButton adding it to the same group as group. The new RadioToolButton will contain an icon and label from the stock item indicated by stock_id.

Deprecated: gtk_radio_tool_button_new_from_widget.

The function takes the following parameters:

  • group (optional): existing RadioToolButton.
  • stockId: name of a stock item.

The function returns the following values:

  • radioToolButton: new RadioToolButton.

func (*RadioToolButton) Group

func (button *RadioToolButton) Group() []*RadioButton

Group returns the radio button group button belongs to.

The function returns the following values:

  • sList: group button belongs to.

func (*RadioToolButton) SetGroup

func (button *RadioToolButton) SetGroup(group []*RadioButton)

SetGroup adds button to group, removing it from the group it belonged to before.

The function takes the following parameters:

  • group (optional): existing radio button group, or NULL.

type RadioToolButtonClass added in v0.0.5

type RadioToolButtonClass struct {
	// contains filtered or unexported fields
}

RadioToolButtonClass: instance of this type is always passed by reference.

func (*RadioToolButtonClass) ParentClass added in v0.0.5

func (r *RadioToolButtonClass) ParentClass() *ToggleToolButtonClass

type RadioToolButtonOverrides added in v0.0.5

type RadioToolButtonOverrides struct {
}

RadioToolButtonOverrides contains methods that are overridable.

type Range

type Range struct {
	Widget

	*coreglib.Object
	Orientable
	// contains filtered or unexported fields
}

Range is the common base class for widgets which visualize an adjustment, e.g Scale or Scrollbar.

Apart from signals for monitoring the parameters of the adjustment, Range provides properties and methods for influencing the sensitivity of the “steppers”. It also provides properties and methods for setting a “fill level” on range widgets. See gtk_range_set_fill_level().

func BaseRange

func BaseRange(obj Ranger) *Range

BaseRange returns the underlying base object.

func (*Range) Adjustment

func (_range *Range) Adjustment() *Adjustment

Adjustment: get the Adjustment which is the “model” object for Range. See gtk_range_set_adjustment() for details. The return value does not have a reference added, so should not be unreferenced.

The function returns the following values:

  • adjustment: Adjustment.

func (*Range) ConnectAdjustBounds

func (_range *Range) ConnectAdjustBounds(f func(value float64)) coreglib.SignalHandle

ConnectAdjustBounds is emitted before clamping a value, to give the application a chance to adjust the bounds.

func (*Range) ConnectChangeValue

func (_range *Range) ConnectChangeValue(f func(scroll ScrollType, value float64) (ok bool)) coreglib.SignalHandle

ConnectChangeValue signal is emitted when a scroll action is performed on a range. It allows an application to determine the type of scroll event that occurred and the resultant new value. The application can handle the event itself and return TRUE to prevent further processing. Or, by returning FALSE, it can pass the event to other handlers until the default GTK+ handler is reached.

The value parameter is unrounded. An application that overrides the GtkRange::change-value signal is responsible for clamping the value to the desired number of decimal digits; the default GTK+ handler clamps the value based on Range:round-digits.

func (*Range) ConnectMoveSlider

func (_range *Range) ConnectMoveSlider(f func(step ScrollType)) coreglib.SignalHandle

ConnectMoveSlider: virtual function that moves the slider. Used for keybindings.

func (*Range) ConnectValueChanged

func (_range *Range) ConnectValueChanged(f func()) coreglib.SignalHandle

ConnectValueChanged is emitted when the range value changes.

func (*Range) FillLevel

func (_range *Range) FillLevel() float64

FillLevel gets the current position of the fill level indicator.

The function returns the following values:

  • gdouble: current fill level.

func (*Range) Flippable

func (_range *Range) Flippable() bool

Flippable gets the value set by gtk_range_set_flippable().

The function returns the following values:

  • ok: TRUE if the range is flippable.

func (*Range) Inverted

func (_range *Range) Inverted() bool

Inverted gets the value set by gtk_range_set_inverted().

The function returns the following values:

  • ok: TRUE if the range is inverted.

func (*Range) LowerStepperSensitivity

func (_range *Range) LowerStepperSensitivity() SensitivityType

LowerStepperSensitivity gets the sensitivity policy for the stepper that points to the 'lower' end of the GtkRange’s adjustment.

The function returns the following values:

  • sensitivityType: lower stepper’s sensitivity policy.

func (*Range) MinSliderSize deprecated

func (_range *Range) MinSliderSize() int

MinSliderSize: this function is useful mainly for Range subclasses.

See gtk_range_set_min_slider_size().

Deprecated: Use the min-height/min-width CSS properties on the slider node.

The function returns the following values:

  • gint: minimum size of the range’s slider.

func (*Range) RangeRect

func (_range *Range) RangeRect() *gdk.Rectangle

RangeRect: this function returns the area that contains the range’s trough and its steppers, in widget->window coordinates.

This function is useful mainly for Range subclasses.

The function returns the following values:

  • rangeRect: return location for the range rectangle.

func (*Range) RestrictToFillLevel

func (_range *Range) RestrictToFillLevel() bool

RestrictToFillLevel gets whether the range is restricted to the fill level.

The function returns the following values:

  • ok: TRUE if range is restricted to the fill level.

func (*Range) RoundDigits

func (_range *Range) RoundDigits() int

RoundDigits gets the number of digits to round the value to when it changes. See Range::change-value.

The function returns the following values:

  • gint: number of digits to round to.

func (*Range) SetAdjustment

func (_range *Range) SetAdjustment(adjustment *Adjustment)

SetAdjustment sets the adjustment to be used as the “model” object for this range widget. The adjustment indicates the current range value, the minimum and maximum range values, the step/page increments used for keybindings and scrolling, and the page size. The page size is normally 0 for Scale and nonzero for Scrollbar, and indicates the size of the visible area of the widget being scrolled. The page size affects the size of the scrollbar slider.

The function takes the following parameters:

  • adjustment: Adjustment.

func (*Range) SetFillLevel

func (_range *Range) SetFillLevel(fillLevel float64)

SetFillLevel: set the new position of the fill level indicator.

The “fill level” is probably best described by its most prominent use case, which is an indicator for the amount of pre-buffering in a streaming media player. In that use case, the value of the range would indicate the current play position, and the fill level would be the position up to which the file/stream has been downloaded.

This amount of prebuffering can be displayed on the range’s trough and is themeable separately from the trough. To enable fill level display, use gtk_range_set_show_fill_level(). The range defaults to not showing the fill level.

Additionally, it’s possible to restrict the range’s slider position to values which are smaller than the fill level. This is controller by gtk_range_set_restrict_to_fill_level() and is by default enabled.

The function takes the following parameters:

  • fillLevel: new position of the fill level indicator.

func (*Range) SetFlippable

func (_range *Range) SetFlippable(flippable bool)

SetFlippable: if a range is flippable, it will switch its direction if it is horizontal and its direction is GTK_TEXT_DIR_RTL.

See gtk_widget_get_direction().

The function takes the following parameters:

  • flippable: TRUE to make the range flippable.

func (*Range) SetIncrements

func (_range *Range) SetIncrements(step, page float64)

SetIncrements sets the step and page sizes for the range. The step size is used when the user clicks the Scrollbar arrows or moves Scale via arrow keys. The page size is used for example when moving via Page Up or Page Down keys.

The function takes the following parameters:

  • step size.
  • page size.

func (*Range) SetInverted

func (_range *Range) SetInverted(setting bool)

SetInverted ranges normally move from lower to higher values as the slider moves from top to bottom or left to right. Inverted ranges have higher values at the top or on the right rather than on the bottom or left.

The function takes the following parameters:

  • setting: TRUE to invert the range.

func (*Range) SetLowerStepperSensitivity

func (_range *Range) SetLowerStepperSensitivity(sensitivity SensitivityType)

SetLowerStepperSensitivity sets the sensitivity policy for the stepper that points to the 'lower' end of the GtkRange’s adjustment.

The function takes the following parameters:

  • sensitivity: lower stepper’s sensitivity policy.

func (*Range) SetMinSliderSize deprecated

func (_range *Range) SetMinSliderSize(minSize int)

SetMinSliderSize sets the minimum size of the range’s slider.

This function is useful mainly for Range subclasses.

Deprecated: Use the min-height/min-width CSS properties on the slider node.

The function takes the following parameters:

  • minSize slider’s minimum size.

func (*Range) SetRange

func (_range *Range) SetRange(min, max float64)

SetRange sets the allowable values in the Range, and clamps the range value to be between min and max. (If the range has a non-zero page size, it is clamped between min and max - page-size.).

The function takes the following parameters:

  • min: minimum range value.
  • max: maximum range value.

func (*Range) SetRestrictToFillLevel

func (_range *Range) SetRestrictToFillLevel(restrictToFillLevel bool)

SetRestrictToFillLevel sets whether the slider is restricted to the fill level. See gtk_range_set_fill_level() for a general description of the fill level concept.

The function takes the following parameters:

  • restrictToFillLevel: whether the fill level restricts slider movement.

func (*Range) SetRoundDigits

func (_range *Range) SetRoundDigits(roundDigits int)

SetRoundDigits sets the number of digits to round the value to when it changes. See Range::change-value.

The function takes the following parameters:

  • roundDigits: precision in digits, or -1.

func (*Range) SetShowFillLevel

func (_range *Range) SetShowFillLevel(showFillLevel bool)

SetShowFillLevel sets whether a graphical fill level is show on the trough. See gtk_range_set_fill_level() for a general description of the fill level concept.

The function takes the following parameters:

  • showFillLevel: whether a fill level indicator graphics is shown.

func (*Range) SetSliderSizeFixed

func (_range *Range) SetSliderSizeFixed(sizeFixed bool)

SetSliderSizeFixed sets whether the range’s slider has a fixed size, or a size that depends on its adjustment’s page size.

This function is useful mainly for Range subclasses.

The function takes the following parameters:

  • sizeFixed: TRUE to make the slider size constant.

func (*Range) SetUpperStepperSensitivity

func (_range *Range) SetUpperStepperSensitivity(sensitivity SensitivityType)

SetUpperStepperSensitivity sets the sensitivity policy for the stepper that points to the 'upper' end of the GtkRange’s adjustment.

The function takes the following parameters:

  • sensitivity: upper stepper’s sensitivity policy.

func (*Range) SetValue

func (_range *Range) SetValue(value float64)

SetValue sets the current value of the range; if the value is outside the minimum or maximum range values, it will be clamped to fit inside them. The range emits the Range::value-changed signal if the value changes.

The function takes the following parameters:

  • value: new value of the range.

func (*Range) ShowFillLevel

func (_range *Range) ShowFillLevel() bool

ShowFillLevel gets whether the range displays the fill level graphically.

The function returns the following values:

  • ok: TRUE if range shows the fill level.

func (*Range) SliderRange

func (_range *Range) SliderRange() (sliderStart, sliderEnd int)

SliderRange: this function returns sliders range along the long dimension, in widget->window coordinates.

This function is useful mainly for Range subclasses.

The function returns the following values:

  • sliderStart (optional): return location for the slider's start, or NULL.
  • sliderEnd (optional): return location for the slider's end, or NULL.

func (*Range) SliderSizeFixed

func (_range *Range) SliderSizeFixed() bool

SliderSizeFixed: this function is useful mainly for Range subclasses.

See gtk_range_set_slider_size_fixed().

The function returns the following values:

  • ok: whether the range’s slider has a fixed size.

func (*Range) UpperStepperSensitivity

func (_range *Range) UpperStepperSensitivity() SensitivityType

UpperStepperSensitivity gets the sensitivity policy for the stepper that points to the 'upper' end of the GtkRange’s adjustment.

The function returns the following values:

  • sensitivityType: upper stepper’s sensitivity policy.

func (*Range) Value

func (_range *Range) Value() float64

Value gets the current value of the range.

The function returns the following values:

  • gdouble: current value of the range.

type RangeAccessible

type RangeAccessible struct {
	WidgetAccessible

	atk.Value
	// contains filtered or unexported fields
}

type RangeAccessibleClass added in v0.0.5

type RangeAccessibleClass struct {
	// contains filtered or unexported fields
}

RangeAccessibleClass: instance of this type is always passed by reference.

func (*RangeAccessibleClass) ParentClass added in v0.0.5

func (r *RangeAccessibleClass) ParentClass() *WidgetAccessibleClass

type RangeAccessibleOverrides added in v0.0.5

type RangeAccessibleOverrides struct {
}

RangeAccessibleOverrides contains methods that are overridable.

type RangeClass added in v0.0.5

type RangeClass struct {
	// contains filtered or unexported fields
}

RangeClass: instance of this type is always passed by reference.

func (*RangeClass) ParentClass added in v0.0.5

func (r *RangeClass) ParentClass() *WidgetClass

func (*RangeClass) SliderDetail added in v0.0.5

func (r *RangeClass) SliderDetail() string

func (*RangeClass) StepperDetail added in v0.0.5

func (r *RangeClass) StepperDetail() string

type RangeOverrides added in v0.0.5

type RangeOverrides struct {
	// The function takes the following parameters:
	//
	AdjustBounds func(newValue float64)
	// The function takes the following parameters:
	//
	//   - scroll
	//   - newValue
	//
	// The function returns the following values:
	//
	ChangeValue func(scroll ScrollType, newValue float64) bool
	// The function takes the following parameters:
	//
	RangeBorder func(border_ *Border)
	// The function takes the following parameters:
	//
	//   - orientation
	//   - minimum
	//   - natural
	//
	RangeSizeRequest func(orientation Orientation, minimum, natural *int)
	// The function takes the following parameters:
	//
	MoveSlider   func(scroll ScrollType)
	ValueChanged func()
}

RangeOverrides contains methods that are overridable.

type Ranger

type Ranger interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

Ranger describes types inherited from class Range.

To get the original type, the caller must assert this to an interface or another type.

type RecentAction

type RecentAction struct {
	Action

	*coreglib.Object
	RecentChooser
	// contains filtered or unexported fields
}

RecentAction represents a list of recently used files, which can be shown by widgets such as RecentChooserDialog or RecentChooserMenu.

To construct a submenu showing recently used files, use a RecentAction as the action for a <menuitem>. To construct a menu toolbutton showing the recently used files in the popup menu, use a RecentAction as the action for a <toolitem> element.

func NewRecentAction deprecated

func NewRecentAction(name, label, tooltip, stockId string) *RecentAction

NewRecentAction creates a new RecentAction object. To add the action to a ActionGroup and set the accelerator for the action, call gtk_action_group_add_action_with_accel().

Deprecated: since version 3.10.

The function takes the following parameters:

  • name: unique name for the action.
  • label (optional) displayed in menu items and on buttons, or NULL.
  • tooltip (optional) for the action, or NULL.
  • stockId (optional): stock icon to display in widgets representing the action, or NULL.

The function returns the following values:

  • recentAction: newly created RecentAction.

func NewRecentActionForManager deprecated

func NewRecentActionForManager(name, label, tooltip, stockId string, manager *RecentManager) *RecentAction

NewRecentActionForManager creates a new RecentAction object. To add the action to a ActionGroup and set the accelerator for the action, call gtk_action_group_add_action_with_accel().

Deprecated: since version 3.10.

The function takes the following parameters:

  • name: unique name for the action.
  • label (optional) displayed in menu items and on buttons, or NULL.
  • tooltip (optional) for the action, or NULL.
  • stockId (optional): stock icon to display in widgets representing the action, or NULL.
  • manager (optional) or NULL for using the default RecentManager.

The function returns the following values:

  • recentAction: newly created RecentAction.

func (*RecentAction) SetShowNumbers deprecated

func (action *RecentAction) SetShowNumbers(showNumbers bool)

SetShowNumbers sets whether a number should be added to the items shown by the widgets representing action. The numbers are shown to provide a unique character for a mnemonic to be used inside the menu item's label. Only the first ten items get a number to avoid clashes.

Deprecated: since version 3.10.

The function takes the following parameters:

  • showNumbers: TRUE if the shown items should be numbered.

func (*RecentAction) ShowNumbers deprecated

func (action *RecentAction) ShowNumbers() bool

ShowNumbers returns the value set by gtk_recent_chooser_menu_set_show_numbers().

Deprecated: since version 3.10.

The function returns the following values:

  • ok: TRUE if numbers should be shown.

type RecentActionClass added in v0.0.5

type RecentActionClass struct {
	// contains filtered or unexported fields
}

RecentActionClass: instance of this type is always passed by reference.

func (*RecentActionClass) ParentClass added in v0.0.5

func (r *RecentActionClass) ParentClass() *ActionClass

type RecentActionOverrides added in v0.0.5

type RecentActionOverrides struct {
}

RecentActionOverrides contains methods that are overridable.

type RecentChooser

type RecentChooser struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

RecentChooser is an interface that can be implemented by widgets displaying the list of recently used files. In GTK+, the main objects that implement this interface are RecentChooserWidget, RecentChooserDialog and RecentChooserMenu.

Recently used files are supported since GTK+ 2.10.

RecentChooser wraps an interface. This means the user can get the underlying type by calling Cast().

func (*RecentChooser) AddFilter

func (chooser *RecentChooser) AddFilter(filter *RecentFilter)

AddFilter adds filter to the list of RecentFilter objects held by chooser.

If no previous filter objects were defined, this function will call gtk_recent_chooser_set_filter().

The function takes the following parameters:

  • filter: RecentFilter.

func (*RecentChooser) ConnectItemActivated

func (chooser *RecentChooser) ConnectItemActivated(f func()) coreglib.SignalHandle

ConnectItemActivated: this signal is emitted when the user "activates" a recent item in the recent chooser. This can happen by double-clicking on an item in the recently used resources list, or by pressing Enter.

func (*RecentChooser) ConnectSelectionChanged

func (chooser *RecentChooser) ConnectSelectionChanged(f func()) coreglib.SignalHandle

ConnectSelectionChanged: this signal is emitted when there is a change in the set of selected recently used resources. This can happen when a user modifies the selection with the mouse or the keyboard, or when explicitly calling functions to change the selection.

func (*RecentChooser) CurrentItem

func (chooser *RecentChooser) CurrentItem() *RecentInfo

CurrentItem gets the RecentInfo currently selected by chooser.

The function returns the following values:

  • recentInfo: RecentInfo. Use gtk_recent_info_unref() when when you have finished using it.

func (*RecentChooser) CurrentURI

func (chooser *RecentChooser) CurrentURI() string

CurrentURI gets the URI currently selected by chooser.

The function returns the following values:

  • utf8: newly allocated string holding a URI.

func (*RecentChooser) Filter

func (chooser *RecentChooser) Filter() *RecentFilter

Filter gets the RecentFilter object currently used by chooser to affect the display of the recently used resources.

The function returns the following values:

  • recentFilter: RecentFilter object.

func (*RecentChooser) Items

func (chooser *RecentChooser) Items() []*RecentInfo

Items gets the list of recently used resources in form of RecentInfo objects.

The return value of this function is affected by the “sort-type” and “limit” properties of chooser.

The function returns the following values:

  • list: newly allocated list of RecentInfo objects. You should use gtk_recent_info_unref() on every item of the list, and then free the list itself using g_list_free().

func (*RecentChooser) Limit

func (chooser *RecentChooser) Limit() int

Limit gets the number of items returned by gtk_recent_chooser_get_items() and gtk_recent_chooser_get_uris().

The function returns the following values:

  • gint: positive integer, or -1 meaning that all items are returned.

func (*RecentChooser) ListFilters

func (chooser *RecentChooser) ListFilters() []*RecentFilter

ListFilters gets the RecentFilter objects held by chooser.

The function returns the following values:

  • sList: singly linked list of RecentFilter objects. You should just free the returned list using g_slist_free().

func (*RecentChooser) LocalOnly

func (chooser *RecentChooser) LocalOnly() bool

LocalOnly gets whether only local resources should be shown in the recently used resources selector. See gtk_recent_chooser_set_local_only().

The function returns the following values:

  • ok: TRUE if only local resources should be shown.

func (*RecentChooser) RemoveFilter

func (chooser *RecentChooser) RemoveFilter(filter *RecentFilter)

RemoveFilter removes filter from the list of RecentFilter objects held by chooser.

The function takes the following parameters:

  • filter: RecentFilter.

func (*RecentChooser) SelectAll

func (chooser *RecentChooser) SelectAll()

SelectAll selects all the items inside chooser, if the chooser supports multiple selection.

func (*RecentChooser) SelectMultiple

func (chooser *RecentChooser) SelectMultiple() bool

SelectMultiple gets whether chooser can select multiple items.

The function returns the following values:

  • ok: TRUE if chooser can select more than one item.

func (*RecentChooser) SelectURI

func (chooser *RecentChooser) SelectURI(uri string) error

SelectURI selects uri inside chooser.

The function takes the following parameters:

  • uri: URI.

func (*RecentChooser) SetCurrentURI

func (chooser *RecentChooser) SetCurrentURI(uri string) error

SetCurrentURI sets uri as the current URI for chooser.

The function takes the following parameters:

  • uri: URI.

func (*RecentChooser) SetFilter

func (chooser *RecentChooser) SetFilter(filter *RecentFilter)

SetFilter sets filter as the current RecentFilter object used by chooser to affect the displayed recently used resources.

The function takes the following parameters:

  • filter (optional): RecentFilter.

func (*RecentChooser) SetLimit

func (chooser *RecentChooser) SetLimit(limit int)

SetLimit sets the number of items that should be returned by gtk_recent_chooser_get_items() and gtk_recent_chooser_get_uris().

The function takes the following parameters:

  • limit: positive integer, or -1 for all items.

func (*RecentChooser) SetLocalOnly

func (chooser *RecentChooser) SetLocalOnly(localOnly bool)

SetLocalOnly sets whether only local resources, that is resources using the file:// URI scheme, should be shown in the recently used resources selector. If local_only is TRUE (the default) then the shown resources are guaranteed to be accessible through the operating system native file system.

The function takes the following parameters:

  • localOnly: TRUE if only local files can be shown.

func (*RecentChooser) SetSelectMultiple

func (chooser *RecentChooser) SetSelectMultiple(selectMultiple bool)

SetSelectMultiple sets whether chooser can select multiple items.

The function takes the following parameters:

  • selectMultiple: TRUE if chooser can select more than one item.

func (*RecentChooser) SetShowIcons

func (chooser *RecentChooser) SetShowIcons(showIcons bool)

SetShowIcons sets whether chooser should show an icon near the resource when displaying it.

The function takes the following parameters:

  • showIcons: whether to show an icon near the resource.

func (*RecentChooser) SetShowNotFound

func (chooser *RecentChooser) SetShowNotFound(showNotFound bool)

SetShowNotFound sets whether chooser should display the recently used resources that it didn’t find. This only applies to local resources.

The function takes the following parameters:

  • showNotFound: whether to show the local items we didn’t find.

func (*RecentChooser) SetShowPrivate

func (chooser *RecentChooser) SetShowPrivate(showPrivate bool)

SetShowPrivate: whether to show recently used resources marked registered as private.

The function takes the following parameters:

  • showPrivate: TRUE to show private items, FALSE otherwise.

func (*RecentChooser) SetShowTips

func (chooser *RecentChooser) SetShowTips(showTips bool)

SetShowTips sets whether to show a tooltips containing the full path of each recently used resource in a RecentChooser widget.

The function takes the following parameters:

  • showTips: TRUE if tooltips should be shown.

func (*RecentChooser) SetSortFunc

func (chooser *RecentChooser) SetSortFunc(sortFunc RecentSortFunc)

SetSortFunc sets the comparison function used when sorting to be sort_func. If the chooser has the sort type set to K_RECENT_SORT_CUSTOM then the chooser will sort using this function.

To the comparison function will be passed two RecentInfo structs and sort_data; sort_func should return a positive integer if the first item comes before the second, zero if the two items are equal and a negative integer if the first item comes after the second.

The function takes the following parameters:

  • sortFunc: comparison function.

func (*RecentChooser) SetSortType

func (chooser *RecentChooser) SetSortType(sortType RecentSortType)

SetSortType changes the sorting order of the recently used resources list displayed by chooser.

The function takes the following parameters:

  • sortType: sort order that the chooser should use.

func (*RecentChooser) ShowIcons

func (chooser *RecentChooser) ShowIcons() bool

ShowIcons retrieves whether chooser should show an icon near the resource.

The function returns the following values:

  • ok: TRUE if the icons should be displayed, FALSE otherwise.

func (*RecentChooser) ShowNotFound

func (chooser *RecentChooser) ShowNotFound() bool

ShowNotFound retrieves whether chooser should show the recently used resources that were not found.

The function returns the following values:

  • ok: TRUE if the resources not found should be displayed, and FALSE otheriwse.

func (*RecentChooser) ShowPrivate

func (chooser *RecentChooser) ShowPrivate() bool

ShowPrivate returns whether chooser should display recently used resources registered as private.

The function returns the following values:

  • ok: TRUE if the recent chooser should show private items, FALSE otherwise.

func (*RecentChooser) ShowTips

func (chooser *RecentChooser) ShowTips() bool

ShowTips gets whether chooser should display tooltips containing the full path of a recently user resource.

The function returns the following values:

  • ok: TRUE if the recent chooser should show tooltips, FALSE otherwise.

func (*RecentChooser) SortType

func (chooser *RecentChooser) SortType() RecentSortType

SortType gets the value set by gtk_recent_chooser_set_sort_type().

The function returns the following values:

  • recentSortType: sorting order of the chooser.

func (*RecentChooser) URIs

func (chooser *RecentChooser) URIs() []string

URIs gets the URI of the recently used resources.

The return value of this function is affected by the “sort-type” and “limit” properties of chooser.

Since the returned array is NULL terminated, length may be NULL.

The function returns the following values:

  • utf8s: A newly allocated, NULL-terminated array of strings. Use g_strfreev() to free it.

func (*RecentChooser) UnselectAll

func (chooser *RecentChooser) UnselectAll()

UnselectAll unselects all the items inside chooser.

func (*RecentChooser) UnselectURI

func (chooser *RecentChooser) UnselectURI(uri string)

UnselectURI unselects uri inside chooser.

The function takes the following parameters:

  • uri: URI.

type RecentChooserDialog

type RecentChooserDialog struct {
	Dialog

	*coreglib.Object
	RecentChooser
	// contains filtered or unexported fields
}

RecentChooserDialog is a dialog box suitable for displaying the recently used documents. This widgets works by putting a RecentChooserWidget inside a Dialog. It exposes the RecentChooserIface interface, so you can use all the RecentChooser functions on the recent chooser dialog as well as those for Dialog.

Note that RecentChooserDialog does not have any methods of its own. Instead, you should use the functions that work on a RecentChooser.

Typical usage

In the simplest of cases, you can use the following code to use a RecentChooserDialog to select a recently used file:

GtkWidget *dialog;
gint res;

dialog = gtk_recent_chooser_dialog_new ("Recent Documents",
                                        parent_window,
                                        _("_Cancel"),
                                        GTK_RESPONSE_CANCEL,
                                        _("_Open"),
                                        GTK_RESPONSE_ACCEPT,
                                        NULL);

res = gtk_dialog_run (GTK_DIALOG (dialog));
if (res == GTK_RESPONSE_ACCEPT)
  {
    GtkRecentInfo *info;
    GtkRecentChooser *chooser = GTK_RECENT_CHOOSER (dialog);

    info = gtk_recent_chooser_get_current_item (chooser);
    open_file (gtk_recent_info_get_uri (info));
    gtk_recent_info_unref (info);
  }

gtk_widget_destroy (dialog);

Recently used files are supported since GTK+ 2.10.

type RecentChooserDialogClass added in v0.0.5

type RecentChooserDialogClass struct {
	// contains filtered or unexported fields
}

RecentChooserDialogClass: instance of this type is always passed by reference.

func (*RecentChooserDialogClass) ParentClass added in v0.0.5

func (r *RecentChooserDialogClass) ParentClass() *DialogClass

type RecentChooserDialogOverrides added in v0.0.5

type RecentChooserDialogOverrides struct {
}

RecentChooserDialogOverrides contains methods that are overridable.

type RecentChooserError

type RecentChooserError C.gint

RecentChooserError: these identify the various errors that can occur while calling RecentChooser functions.

const (
	// RecentChooserErrorNotFound indicates that a file does not exist.
	RecentChooserErrorNotFound RecentChooserError = iota
	// RecentChooserErrorInvalidURI indicates a malformed URI.
	RecentChooserErrorInvalidURI
)

func (RecentChooserError) String

func (r RecentChooserError) String() string

String returns the name in string for RecentChooserError.

type RecentChooserIface added in v0.0.5

type RecentChooserIface struct {
	// contains filtered or unexported fields
}

RecentChooserIface: instance of this type is always passed by reference.

type RecentChooserMenu

type RecentChooserMenu struct {
	Menu

	*coreglib.Object
	Activatable
	RecentChooser
	// contains filtered or unexported fields
}

RecentChooserMenu is a widget suitable for displaying recently used files inside a menu. It can be used to set a sub-menu of a MenuItem using gtk_menu_item_set_submenu(), or as the menu of a MenuToolButton.

Note that RecentChooserMenu does not have any methods of its own. Instead, you should use the functions that work on a RecentChooser.

Note also that RecentChooserMenu does not support multiple filters, as it has no way to let the user choose between them as the RecentChooserWidget and RecentChooserDialog widgets do. Thus using gtk_recent_chooser_add_filter() on a RecentChooserMenu widget will yield the same effects as using gtk_recent_chooser_set_filter(), replacing any currently set filter with the supplied filter; gtk_recent_chooser_remove_filter() will remove any currently set RecentFilter object and will unset the current filter; gtk_recent_chooser_list_filters() will return a list containing a single RecentFilter object.

Recently used files are supported since GTK+ 2.10.

func NewRecentChooserMenu

func NewRecentChooserMenu() *RecentChooserMenu

NewRecentChooserMenu creates a new RecentChooserMenu widget.

This kind of widget shows the list of recently used resources as a menu, each item as a menu item. Each item inside the menu might have an icon, representing its MIME type, and a number, for mnemonic access.

This widget implements the RecentChooser interface.

This widget creates its own RecentManager object. See the gtk_recent_chooser_menu_new_for_manager() function to know how to create a RecentChooserMenu widget bound to another RecentManager object.

The function returns the following values:

  • recentChooserMenu: new RecentChooserMenu.

func NewRecentChooserMenuForManager

func NewRecentChooserMenuForManager(manager *RecentManager) *RecentChooserMenu

NewRecentChooserMenuForManager creates a new RecentChooserMenu widget using manager as the underlying recently used resources manager.

This is useful if you have implemented your own recent manager, or if you have a customized instance of a RecentManager object or if you wish to share a common RecentManager object among multiple RecentChooser widgets.

The function takes the following parameters:

  • manager: RecentManager.

The function returns the following values:

  • recentChooserMenu: new RecentChooserMenu, bound to manager.

func (*RecentChooserMenu) SetShowNumbers

func (menu *RecentChooserMenu) SetShowNumbers(showNumbers bool)

SetShowNumbers sets whether a number should be added to the items of menu. The numbers are shown to provide a unique character for a mnemonic to be used inside ten menu item’s label. Only the first the items get a number to avoid clashes.

The function takes the following parameters:

  • showNumbers: whether to show numbers.

func (*RecentChooserMenu) ShowNumbers

func (menu *RecentChooserMenu) ShowNumbers() bool

ShowNumbers returns the value set by gtk_recent_chooser_menu_set_show_numbers().

The function returns the following values:

  • ok: TRUE if numbers should be shown.

type RecentChooserMenuClass added in v0.0.5

type RecentChooserMenuClass struct {
	// contains filtered or unexported fields
}

RecentChooserMenuClass: instance of this type is always passed by reference.

func (*RecentChooserMenuClass) ParentClass added in v0.0.5

func (r *RecentChooserMenuClass) ParentClass() *MenuClass

type RecentChooserMenuOverrides added in v0.0.5

type RecentChooserMenuOverrides struct {
}

RecentChooserMenuOverrides contains methods that are overridable.

type RecentChooserWidget

type RecentChooserWidget struct {
	Box

	*coreglib.Object
	RecentChooser
	// contains filtered or unexported fields
}

RecentChooserWidget is a widget suitable for selecting recently used files. It is the main building block of a RecentChooserDialog. Most applications will only need to use the latter; you can use RecentChooserWidget as part of a larger window if you have special needs.

Note that RecentChooserWidget does not have any methods of its own. Instead, you should use the functions that work on a RecentChooser.

Recently used files are supported since GTK+ 2.10.

func NewRecentChooserWidget

func NewRecentChooserWidget() *RecentChooserWidget

NewRecentChooserWidget creates a new RecentChooserWidget object. This is an embeddable widget used to access the recently used resources list.

The function returns the following values:

  • recentChooserWidget: new RecentChooserWidget.

func NewRecentChooserWidgetForManager

func NewRecentChooserWidgetForManager(manager *RecentManager) *RecentChooserWidget

NewRecentChooserWidgetForManager creates a new RecentChooserWidget with a specified recent manager.

This is useful if you have implemented your own recent manager, or if you have a customized instance of a RecentManager object.

The function takes the following parameters:

  • manager: RecentManager.

The function returns the following values:

  • recentChooserWidget: new RecentChooserWidget.

type RecentChooserWidgetClass added in v0.0.5

type RecentChooserWidgetClass struct {
	// contains filtered or unexported fields
}

RecentChooserWidgetClass: instance of this type is always passed by reference.

func (*RecentChooserWidgetClass) ParentClass added in v0.0.5

func (r *RecentChooserWidgetClass) ParentClass() *BoxClass

type RecentChooserWidgetOverrides added in v0.0.5

type RecentChooserWidgetOverrides struct {
}

RecentChooserWidgetOverrides contains methods that are overridable.

type RecentChooserer

type RecentChooserer interface {
	coreglib.Objector

	// AddFilter adds filter to the list of RecentFilter objects held by
	// chooser.
	AddFilter(filter *RecentFilter)
	// CurrentItem gets the RecentInfo currently selected by chooser.
	CurrentItem() *RecentInfo
	// CurrentURI gets the URI currently selected by chooser.
	CurrentURI() string
	// Filter gets the RecentFilter object currently used by chooser to affect
	// the display of the recently used resources.
	Filter() *RecentFilter
	// Items gets the list of recently used resources in form of RecentInfo
	// objects.
	Items() []*RecentInfo
	// Limit gets the number of items returned by gtk_recent_chooser_get_items()
	// and gtk_recent_chooser_get_uris().
	Limit() int
	// LocalOnly gets whether only local resources should be shown in the
	// recently used resources selector.
	LocalOnly() bool
	// SelectMultiple gets whether chooser can select multiple items.
	SelectMultiple() bool
	// ShowIcons retrieves whether chooser should show an icon near the
	// resource.
	ShowIcons() bool
	// ShowNotFound retrieves whether chooser should show the recently used
	// resources that were not found.
	ShowNotFound() bool
	// ShowPrivate returns whether chooser should display recently used
	// resources registered as private.
	ShowPrivate() bool
	// ShowTips gets whether chooser should display tooltips containing the full
	// path of a recently user resource.
	ShowTips() bool
	// SortType gets the value set by gtk_recent_chooser_set_sort_type().
	SortType() RecentSortType
	// URIs gets the URI of the recently used resources.
	URIs() []string
	// ListFilters gets the RecentFilter objects held by chooser.
	ListFilters() []*RecentFilter
	// RemoveFilter removes filter from the list of RecentFilter objects held by
	// chooser.
	RemoveFilter(filter *RecentFilter)
	// SelectAll selects all the items inside chooser, if the chooser supports
	// multiple selection.
	SelectAll()
	// SelectURI selects uri inside chooser.
	SelectURI(uri string) error
	// SetCurrentURI sets uri as the current URI for chooser.
	SetCurrentURI(uri string) error
	// SetFilter sets filter as the current RecentFilter object used by chooser
	// to affect the displayed recently used resources.
	SetFilter(filter *RecentFilter)
	// SetLimit sets the number of items that should be returned by
	// gtk_recent_chooser_get_items() and gtk_recent_chooser_get_uris().
	SetLimit(limit int)
	// SetLocalOnly sets whether only local resources, that is resources using
	// the file:// URI scheme, should be shown in the recently used resources
	// selector.
	SetLocalOnly(localOnly bool)
	// SetSelectMultiple sets whether chooser can select multiple items.
	SetSelectMultiple(selectMultiple bool)
	// SetShowIcons sets whether chooser should show an icon near the resource
	// when displaying it.
	SetShowIcons(showIcons bool)
	// SetShowNotFound sets whether chooser should display the recently used
	// resources that it didn’t find.
	SetShowNotFound(showNotFound bool)
	// SetShowPrivate: whether to show recently used resources marked registered
	// as private.
	SetShowPrivate(showPrivate bool)
	// SetShowTips sets whether to show a tooltips containing the full path of
	// each recently used resource in a RecentChooser widget.
	SetShowTips(showTips bool)
	// SetSortFunc sets the comparison function used when sorting to be
	// sort_func.
	SetSortFunc(sortFunc RecentSortFunc)
	// SetSortType changes the sorting order of the recently used resources list
	// displayed by chooser.
	SetSortType(sortType RecentSortType)
	// UnselectAll unselects all the items inside chooser.
	UnselectAll()
	// UnselectURI unselects uri inside chooser.
	UnselectURI(uri string)

	// Item-activated: this signal is emitted when the user "activates" a recent
	// item in the recent chooser.
	ConnectItemActivated(func()) coreglib.SignalHandle
	// Selection-changed: this signal is emitted when there is a change in the
	// set of selected recently used resources.
	ConnectSelectionChanged(func()) coreglib.SignalHandle
}

RecentChooserer describes RecentChooser's interface methods.

type RecentData

type RecentData struct {
	// contains filtered or unexported fields
}

RecentData: meta-data to be passed to gtk_recent_manager_add_full() when registering a recently used resource.

An instance of this type is always passed by reference.

func (*RecentData) AppExec

func (r *RecentData) AppExec() string

AppExec: command line used to launch this resource; may contain the “\f” and “\u” escape characters which will be expanded to the resource file path and URI respectively when the command line is retrieved;.

func (*RecentData) AppName

func (r *RecentData) AppName() string

AppName: name of the application that is registering this recently used resource;.

func (*RecentData) Description

func (r *RecentData) Description() string

Description: UTF-8 encoded string, containing a short description of the resource, or NULL;.

func (*RecentData) DisplayName

func (r *RecentData) DisplayName() string

DisplayName: UTF-8 encoded string, containing the name of the recently used resource to be displayed, or NULL;.

func (*RecentData) Groups

func (r *RecentData) Groups() []string

Groups: vector of strings containing groups names;.

func (*RecentData) IsPrivate

func (r *RecentData) IsPrivate() bool

IsPrivate: whether this resource should be displayed only by the applications that have registered it or not.

func (*RecentData) MIMEType

func (r *RecentData) MIMEType() string

MIMEType: MIME type of the resource;.

func (*RecentData) SetIsPrivate

func (r *RecentData) SetIsPrivate(isPrivate bool)

IsPrivate: whether this resource should be displayed only by the applications that have registered it or not.

type RecentFilter

type RecentFilter struct {
	coreglib.InitiallyUnowned

	*coreglib.Object
	Buildable
	// contains filtered or unexported fields
}

RecentFilter can be used to restrict the files being shown in a RecentChooser. Files can be filtered based on their name (with gtk_recent_filter_add_pattern()), on their mime type (with gtk_file_filter_add_mime_type()), on the application that has registered them (with gtk_recent_filter_add_application()), or by a custom filter function (with gtk_recent_filter_add_custom()).

Filtering by mime type handles aliasing and subclassing of mime types; e.g. a filter for text/plain also matches a file with mime type application/rtf, since application/rtf is a subclass of text/plain. Note that RecentFilter allows wildcards for the subtype of a mime type, so you can e.g. filter for image/\*.

Normally, filters are used by adding them to a RecentChooser, see gtk_recent_chooser_add_filter(), but it is also possible to manually use a filter on a file with gtk_recent_filter_filter().

Recently used files are supported since GTK+ 2.10.

GtkRecentFilter as GtkBuildable

The GtkRecentFilter implementation of the GtkBuildable interface supports adding rules using the <mime-types>, <patterns> and <applications> elements and listing the rules within. Specifying a <mime-type>, <pattern> or <application> has the same effect as calling gtk_recent_filter_add_mime_type(), gtk_recent_filter_add_pattern() or gtk_recent_filter_add_application().

An example of a UI definition fragment specifying GtkRecentFilter rules:

<object class="GtkRecentFilter">
  <mime-types>
    <mime-type>text/plain</mime-type>
    <mime-type>image/png</mime-type>
  </mime-types>
  <patterns>
    <pattern>*.txt</pattern>
    <pattern>*.png</pattern>
  </patterns>
  <applications>
    <application>gimp</application>
    <application>gedit</application>
    <application>glade</application>
  </applications>
</object>.

func NewRecentFilter

func NewRecentFilter() *RecentFilter

NewRecentFilter creates a new RecentFilter with no rules added to it. Such filter does not accept any recently used resources, so is not particularly useful until you add rules with gtk_recent_filter_add_pattern(), gtk_recent_filter_add_mime_type(), gtk_recent_filter_add_application(), gtk_recent_filter_add_age(). To create a filter that accepts any recently used resource, use:

GtkRecentFilter *filter = gtk_recent_filter_new ();
gtk_recent_filter_add_pattern (filter, "*");.

The function returns the following values:

  • recentFilter: new RecentFilter.

func (*RecentFilter) AddAge

func (filter *RecentFilter) AddAge(days int)

AddAge adds a rule that allows resources based on their age - that is, the number of days elapsed since they were last modified.

The function takes the following parameters:

  • days: number of days.

func (*RecentFilter) AddApplication

func (filter *RecentFilter) AddApplication(application string)

AddApplication adds a rule that allows resources based on the name of the application that has registered them.

The function takes the following parameters:

  • application name.

func (*RecentFilter) AddCustom

func (filter *RecentFilter) AddCustom(needed RecentFilterFlags, fn RecentFilterFunc)

AddCustom adds a rule to a filter that allows resources based on a custom callback function. The bitfield needed which is passed in provides information about what sorts of information that the filter function needs; this allows GTK+ to avoid retrieving expensive information when it isn’t needed by the filter.

The function takes the following parameters:

  • needed: bitfield of flags indicating the information that the custom filter function needs.
  • fn: callback function; if the function returns TRUE, then the file will be displayed.

func (*RecentFilter) AddGroup

func (filter *RecentFilter) AddGroup(group string)

AddGroup adds a rule that allows resources based on the name of the group to which they belong.

The function takes the following parameters:

  • group name.

func (*RecentFilter) AddMIMEType

func (filter *RecentFilter) AddMIMEType(mimeType string)

AddMIMEType adds a rule that allows resources based on their registered MIME type.

The function takes the following parameters:

  • mimeType: MIME type.

func (*RecentFilter) AddPattern

func (filter *RecentFilter) AddPattern(pattern string)

AddPattern adds a rule that allows resources based on a pattern matching their display name.

The function takes the following parameters:

  • pattern: file pattern.

func (*RecentFilter) AddPixbufFormats

func (filter *RecentFilter) AddPixbufFormats()

AddPixbufFormats adds a rule allowing image files in the formats supported by GdkPixbuf.

func (*RecentFilter) Filter

func (filter *RecentFilter) Filter(filterInfo *RecentFilterInfo) bool

Filter tests whether a file should be displayed according to filter. The RecentFilterInfo filter_info should include the fields returned from gtk_recent_filter_get_needed(), and must set the RecentFilterInfo.contains field of filter_info to indicate which fields have been set.

This function will not typically be used by applications; it is intended principally for use in the implementation of RecentChooser.

The function takes the following parameters:

  • filterInfo containing information about a recently used resource.

The function returns the following values:

  • ok: TRUE if the file should be displayed.

func (*RecentFilter) Name

func (filter *RecentFilter) Name() string

Name gets the human-readable name for the filter. See gtk_recent_filter_set_name().

The function returns the following values:

  • utf8 (optional): name of the filter, or NULL. The returned string is owned by the filter object and should not be freed.

func (*RecentFilter) Needed

func (filter *RecentFilter) Needed() RecentFilterFlags

Needed gets the fields that need to be filled in for the RecentFilterInfo passed to gtk_recent_filter_filter()

This function will not typically be used by applications; it is intended principally for use in the implementation of RecentChooser.

The function returns the following values:

  • recentFilterFlags: bitfield of flags indicating needed fields when calling gtk_recent_filter_filter().

func (*RecentFilter) SetName

func (filter *RecentFilter) SetName(name string)

SetName sets the human-readable name of the filter; this is the string that will be displayed in the recently used resources selector user interface if there is a selectable list of filters.

The function takes the following parameters:

  • name: then human readable name of filter.

type RecentFilterFlags

type RecentFilterFlags C.guint

RecentFilterFlags: these flags indicate what parts of a RecentFilterInfo struct are filled or need to be filled.

const (
	// RecentFilterURI: URI of the file being tested.
	RecentFilterURI RecentFilterFlags = 0b1
	// RecentFilterDisplayName: string that will be used to display the file in
	// the recent chooser.
	RecentFilterDisplayName RecentFilterFlags = 0b10
	// RecentFilterMIMEType: mime type of the file.
	RecentFilterMIMEType RecentFilterFlags = 0b100
	// RecentFilterApplication: list of applications that have registered the
	// file.
	RecentFilterApplication RecentFilterFlags = 0b1000
	// RecentFilterGroup groups to which the file belongs to.
	RecentFilterGroup RecentFilterFlags = 0b10000
	// RecentFilterAge: number of days elapsed since the file has been
	// registered.
	RecentFilterAge RecentFilterFlags = 0b100000
)

func (RecentFilterFlags) Has

Has returns true if r contains other.

func (RecentFilterFlags) String

func (r RecentFilterFlags) String() string

String returns the names in string for RecentFilterFlags.

type RecentFilterFunc

type RecentFilterFunc func(filterInfo *RecentFilterInfo) (ok bool)

RecentFilterFunc: type of function that is used with custom filters, see gtk_recent_filter_add_custom().

type RecentFilterInfo

type RecentFilterInfo struct {
	// contains filtered or unexported fields
}

RecentFilterInfo struct is used to pass information about the tested file to gtk_recent_filter_filter().

An instance of this type is always passed by reference.

func (*RecentFilterInfo) Age

func (r *RecentFilterInfo) Age() int

Age: number of days elapsed since the file has been registered.

func (*RecentFilterInfo) Applications

func (r *RecentFilterInfo) Applications() []string

Applications: list of applications that have registered the file.

func (*RecentFilterInfo) Contains

func (r *RecentFilterInfo) Contains() RecentFilterFlags

Contains to indicate which fields are set.

func (*RecentFilterInfo) DisplayName

func (r *RecentFilterInfo) DisplayName() string

DisplayName: string that will be used to display the file in the recent chooser.

func (*RecentFilterInfo) Groups

func (r *RecentFilterInfo) Groups() []string

Groups groups to which the file belongs to.

func (*RecentFilterInfo) MIMEType

func (r *RecentFilterInfo) MIMEType() string

MIMEType: MIME type of the file.

func (*RecentFilterInfo) SetAge

func (r *RecentFilterInfo) SetAge(age int)

Age: number of days elapsed since the file has been registered.

func (*RecentFilterInfo) URI

func (r *RecentFilterInfo) URI() string

URI of the file being tested.

type RecentInfo

type RecentInfo struct {
	// contains filtered or unexported fields
}

RecentInfo contains private data only, and should be accessed using the provided API.

RecentInfo constains all the meta-data associated with an entry in the recently used files list.

An instance of this type is always passed by reference.

func (*RecentInfo) Added

func (info *RecentInfo) Added() int32

Added gets the timestamp (seconds from system’s Epoch) when the resource was added to the recently used resources list.

The function returns the following values:

  • glong: number of seconds elapsed from system’s Epoch when the resource was added to the list, or -1 on failure.

func (*RecentInfo) Age

func (info *RecentInfo) Age() int

Age gets the number of days elapsed since the last update of the resource pointed by info.

The function returns the following values:

  • gint: positive integer containing the number of days elapsed since the time this resource was last modified.

func (*RecentInfo) ApplicationInfo

func (info *RecentInfo) ApplicationInfo(appName string) (string, uint, int32, bool)

ApplicationInfo gets the data regarding the application that has registered the resource pointed by info.

If the command line contains any escape characters defined inside the storage specification, they will be expanded.

The function takes the following parameters:

  • appName: name of the application that has registered this item.

The function returns the following values:

  • appExec: return location for the string containing the command line.
  • count: return location for the number of times this item was registered.
  • time_: return location for the timestamp this item was last registered for this application.
  • ok: TRUE if an application with app_name has registered this resource inside the recently used list, or FALSE otherwise. The app_exec string is owned by the RecentInfo and should not be modified or freed.

func (*RecentInfo) Applications

func (info *RecentInfo) Applications() []string

Applications retrieves the list of applications that have registered this resource.

The function returns the following values:

  • utf8s: a newly allocated NULL-terminated array of strings. Use g_strfreev() to free it.

func (*RecentInfo) CreateAppInfo

func (info *RecentInfo) CreateAppInfo(appName string) (*gio.AppInfo, error)

CreateAppInfo creates a Info for the specified RecentInfo.

The function takes the following parameters:

  • appName (optional): name of the application that should be mapped to a Info; if NULL is used then the default application for the MIME type is used.

The function returns the following values:

  • appInfo (optional): newly created Info, or NULL. In case of error, error will be set either with a GTK_RECENT_MANAGER_ERROR or a G_IO_ERROR.

func (*RecentInfo) Description

func (info *RecentInfo) Description() string

Description gets the (short) description of the resource.

The function returns the following values:

  • utf8: description of the resource. The returned string is owned by the recent manager, and should not be freed.

func (*RecentInfo) DisplayName

func (info *RecentInfo) DisplayName() string

DisplayName gets the name of the resource. If none has been defined, the basename of the resource is obtained.

The function returns the following values:

  • utf8: display name of the resource. The returned string is owned by the recent manager, and should not be freed.

func (*RecentInfo) Exists

func (info *RecentInfo) Exists() bool

Exists checks whether the resource pointed by info still exists. At the moment this check is done only on resources pointing to local files.

The function returns the following values:

  • ok: TRUE if the resource exists.

func (*RecentInfo) GIcon

func (info *RecentInfo) GIcon() *gio.Icon

GIcon retrieves the icon associated to the resource MIME type.

The function returns the following values:

  • icon (optional) containing the icon, or NULL. Use g_object_unref() when finished using the icon.

func (*RecentInfo) Groups

func (info *RecentInfo) Groups() []string

Groups returns all groups registered for the recently used item info. The array of returned group names will be NULL terminated, so length might optionally be NULL.

The function returns the following values:

  • utf8s: a newly allocated NULL terminated array of strings. Use g_strfreev() to free it.

func (*RecentInfo) HasApplication

func (info *RecentInfo) HasApplication(appName string) bool

HasApplication checks whether an application registered this resource using app_name.

The function takes the following parameters:

  • appName: string containing an application name.

The function returns the following values:

  • ok: TRUE if an application with name app_name was found, FALSE otherwise.

func (*RecentInfo) HasGroup

func (info *RecentInfo) HasGroup(groupName string) bool

HasGroup checks whether group_name appears inside the groups registered for the recently used item info.

The function takes the following parameters:

  • groupName: name of a group.

The function returns the following values:

  • ok: TRUE if the group was found.

func (*RecentInfo) Icon

func (info *RecentInfo) Icon(size int) *gdkpixbuf.Pixbuf

Icon retrieves the icon of size size associated to the resource MIME type.

The function takes the following parameters:

  • size of the icon in pixels.

The function returns the following values:

  • pixbuf (optional) containing the icon, or NULL. Use g_object_unref() when finished using the icon.

func (*RecentInfo) IsLocal

func (info *RecentInfo) IsLocal() bool

IsLocal checks whether the resource is local or not by looking at the scheme of its URI.

The function returns the following values:

  • ok: TRUE if the resource is local.

func (*RecentInfo) LastApplication

func (info *RecentInfo) LastApplication() string

LastApplication gets the name of the last application that have registered the recently used resource represented by info.

The function returns the following values:

  • utf8: application name. Use g_free() to free it.

func (*RecentInfo) MIMEType

func (info *RecentInfo) MIMEType() string

MIMEType gets the MIME type of the resource.

The function returns the following values:

  • utf8: MIME type of the resource. The returned string is owned by the recent manager, and should not be freed.

func (*RecentInfo) Match

func (infoA *RecentInfo) Match(infoB *RecentInfo) bool

Match checks whether two RecentInfo-struct point to the same resource.

The function takes the following parameters:

  • infoB: RecentInfo.

The function returns the following values:

  • ok: TRUE if both RecentInfo-struct point to the same resource, FALSE otherwise.

func (*RecentInfo) Modified

func (info *RecentInfo) Modified() int32

Modified gets the timestamp (seconds from system’s Epoch) when the meta-data for the resource was last modified.

The function returns the following values:

  • glong: number of seconds elapsed from system’s Epoch when the resource was last modified, or -1 on failure.

func (*RecentInfo) PrivateHint

func (info *RecentInfo) PrivateHint() bool

PrivateHint gets the value of the “private” flag. Resources in the recently used list that have this flag set to TRUE should only be displayed by the applications that have registered them.

The function returns the following values:

  • ok: TRUE if the private flag was found, FALSE otherwise.

func (*RecentInfo) ShortName

func (info *RecentInfo) ShortName() string

ShortName computes a valid UTF-8 string that can be used as the name of the item in a menu or list. For example, calling this function on an item that refers to “file:///foo/bar.txt” will yield “bar.txt”.

The function returns the following values:

  • utf8: newly-allocated string in UTF-8 encoding free it with g_free().

func (*RecentInfo) URI

func (info *RecentInfo) URI() string

URI gets the URI of the resource.

The function returns the following values:

  • utf8: URI of the resource. The returned string is owned by the recent manager, and should not be freed.

func (*RecentInfo) URIDisplay

func (info *RecentInfo) URIDisplay() string

URIDisplay gets a displayable version of the resource’s URI. If the resource is local, it returns a local path; if the resource is not local, it returns the UTF-8 encoded content of gtk_recent_info_get_uri().

The function returns the following values:

  • utf8 (optional): newly allocated UTF-8 string containing the resource’s URI or NULL. Use g_free() when done using it.

func (*RecentInfo) Visited

func (info *RecentInfo) Visited() int32

Visited gets the timestamp (seconds from system’s Epoch) when the meta-data for the resource was last visited.

The function returns the following values:

  • glong: number of seconds elapsed from system’s Epoch when the resource was last visited, or -1 on failure.

type RecentManager

type RecentManager struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

RecentManager provides a facility for adding, removing and looking up recently used files. Each recently used file is identified by its URI, and has meta-data associated to it, like the names and command lines of the applications that have registered it, the number of time each application has registered the same file, the mime type of the file and whether the file should be displayed only by the applications that have registered it.

The recently used files list is per user.

The RecentManager acts like a database of all the recently used files. You can create new RecentManager objects, but it is more efficient to use the default manager created by GTK+.

Adding a new recently used file is as simple as:

GtkRecentManager *manager;
GtkRecentInfo *info;
GError *error = NULL;

manager = gtk_recent_manager_get_default ();
info = gtk_recent_manager_lookup_item (manager, file_uri, &error);
if (error)
  {
    g_warning ("Could not find the file: s", error->message);
    g_error_free (error);
  }
else
 {
   // Use the info object
   gtk_recent_info_unref (info);
 }

In order to retrieve the list of recently used files, you can use gtk_recent_manager_get_items(), which returns a list of RecentInfo-structs.

A RecentManager is the model used to populate the contents of one, or more RecentChooser implementations.

Note that the maximum age of the recently used files list is controllable through the Settings:gtk-recent-files-max-age property.

Recently used files are supported since GTK+ 2.10.

func NewRecentManager

func NewRecentManager() *RecentManager

NewRecentManager creates a new recent manager object. Recent manager objects are used to handle the list of recently used resources. A RecentManager object monitors the recently used resources list, and emits the “changed” signal each time something inside the list changes.

RecentManager objects are expensive: be sure to create them only when needed. You should use gtk_recent_manager_get_default() instead.

The function returns the following values:

  • recentManager: newly created RecentManager object.

func RecentManagerGetDefault

func RecentManagerGetDefault() *RecentManager

RecentManagerGetDefault gets a unique instance of RecentManager, that you can share in your application without caring about memory management.

The function returns the following values:

  • recentManager: unique RecentManager. Do not ref or unref it.

func (*RecentManager) AddFull

func (manager *RecentManager) AddFull(uri string, recentData *RecentData) bool

AddFull adds a new resource, pointed by uri, into the recently used resources list, using the metadata specified inside the RecentData-struct passed in recent_data.

The passed URI will be used to identify this resource inside the list.

In order to register the new recently used resource, metadata about the resource must be passed as well as the URI; the metadata is stored in a RecentData-struct, which must contain the MIME type of the resource pointed by the URI; the name of the application that is registering the item, and a command line to be used when launching the item.

Optionally, a RecentData-struct might contain a UTF-8 string to be used when viewing the item instead of the last component of the URI; a short description of the item; whether the item should be considered private - that is, should be displayed only by the applications that have registered it.

The function takes the following parameters:

  • uri: valid URI.
  • recentData: metadata of the resource.

The function returns the following values:

  • ok: TRUE if the new item was successfully added to the recently used resources list, FALSE otherwise.

func (*RecentManager) AddItem

func (manager *RecentManager) AddItem(uri string) bool

AddItem adds a new resource, pointed by uri, into the recently used resources list.

This function automatically retrieves some of the needed metadata and setting other metadata to common default values; it then feeds the data to gtk_recent_manager_add_full().

See gtk_recent_manager_add_full() if you want to explicitly define the metadata for the resource pointed by uri.

The function takes the following parameters:

  • uri: valid URI.

The function returns the following values:

  • ok: TRUE if the new item was successfully added to the recently used resources list.

func (*RecentManager) ConnectChanged

func (manager *RecentManager) ConnectChanged(f func()) coreglib.SignalHandle

ConnectChanged is emitted when the current recently used resources manager changes its contents, either by calling gtk_recent_manager_add_item() or by another application.

func (*RecentManager) HasItem

func (manager *RecentManager) HasItem(uri string) bool

HasItem checks whether there is a recently used resource registered with uri inside the recent manager.

The function takes the following parameters:

  • uri: URI.

The function returns the following values:

  • ok: TRUE if the resource was found, FALSE otherwise.

func (*RecentManager) Items

func (manager *RecentManager) Items() []*RecentInfo

Items gets the list of recently used resources.

The function returns the following values:

  • list of newly allocated RecentInfo objects. Use gtk_recent_info_unref() on each item inside the list, and then free the list itself using g_list_free().

func (*RecentManager) LookupItem

func (manager *RecentManager) LookupItem(uri string) (*RecentInfo, error)

LookupItem searches for a URI inside the recently used resources list, and returns a RecentInfo-struct containing informations about the resource like its MIME type, or its display name.

The function takes the following parameters:

  • uri: URI.

The function returns the following values:

  • recentInfo (optional) containing information about the resource pointed by uri, or NULL if the URI was not registered in the recently used resources list. Free with gtk_recent_info_unref().

func (*RecentManager) MoveItem

func (manager *RecentManager) MoveItem(uri, newUri string) error

MoveItem changes the location of a recently used resource from uri to new_uri.

Please note that this function will not affect the resource pointed by the URIs, but only the URI used in the recently used resources list.

The function takes the following parameters:

  • uri: URI of a recently used resource.
  • newUri (optional): new URI of the recently used resource, or NULL to remove the item pointed by uri in the list.

func (*RecentManager) PurgeItems

func (manager *RecentManager) PurgeItems() (int, error)

PurgeItems purges every item from the recently used resources list.

The function returns the following values:

  • gint: number of items that have been removed from the recently used resources list.

func (*RecentManager) RemoveItem

func (manager *RecentManager) RemoveItem(uri string) error

RemoveItem removes a resource pointed by uri from the recently used resources list handled by a recent manager.

The function takes the following parameters:

  • uri: URI of the item you wish to remove.

type RecentManagerClass added in v0.0.5

type RecentManagerClass struct {
	// contains filtered or unexported fields
}

RecentManagerClass contains only private data.

An instance of this type is always passed by reference.

type RecentManagerError

type RecentManagerError C.gint

RecentManagerError: error codes for RecentManager operations.

const (
	// RecentManagerErrorNotFound: URI specified does not exists in the recently
	// used resources list.
	RecentManagerErrorNotFound RecentManagerError = iota
	// RecentManagerErrorInvalidURI: URI specified is not valid.
	RecentManagerErrorInvalidURI
	// RecentManagerErrorInvalidEncoding: supplied string is not UTF-8 encoded.
	RecentManagerErrorInvalidEncoding
	// RecentManagerErrorNotRegistered: no application has registered the
	// specified item.
	RecentManagerErrorNotRegistered
	// RecentManagerErrorRead: failure while reading the recently used resources
	// file.
	RecentManagerErrorRead
	// RecentManagerErrorWrite: failure while writing the recently used
	// resources file.
	RecentManagerErrorWrite
	// RecentManagerErrorUnknown: unspecified error.
	RecentManagerErrorUnknown
)

func (RecentManagerError) String

func (r RecentManagerError) String() string

String returns the name in string for RecentManagerError.

type RecentManagerOverrides added in v0.0.5

type RecentManagerOverrides struct {
	Changed func()
}

RecentManagerOverrides contains methods that are overridable.

type RecentSortFunc

type RecentSortFunc func(a, b *RecentInfo) (gint int)

type RecentSortType

type RecentSortType C.gint

RecentSortType: used to specify the sorting method to be applyed to the recently used resource list.

const (
	// RecentSortNone: do not sort the returned list of recently used resources.
	RecentSortNone RecentSortType = iota
	// RecentSortMru: sort the returned list with the most recently used items
	// first.
	RecentSortMru
	// RecentSortLru: sort the returned list with the least recently used items
	// first.
	RecentSortLru
	// RecentSortCustom: sort the returned list using a custom sorting function
	// passed using gtk_recent_chooser_set_sort_func().
	RecentSortCustom
)

func (RecentSortType) String

func (r RecentSortType) String() string

String returns the name in string for RecentSortType.

type RegionFlags

type RegionFlags C.guint

RegionFlags describes a region within a widget.

const (
	// RegionEven: region has an even number within a set.
	RegionEven RegionFlags = 0b1
	// RegionOdd: region has an odd number within a set.
	RegionOdd RegionFlags = 0b10
	// RegionFirst: region is the first one within a set.
	RegionFirst RegionFlags = 0b100
	// RegionLast: region is the last one within a set.
	RegionLast RegionFlags = 0b1000
	// RegionOnly: region is the only one within a set.
	RegionOnly RegionFlags = 0b10000
	// RegionSorted: region is part of a sorted area.
	RegionSorted RegionFlags = 0b100000
)

func (RegionFlags) Has

func (r RegionFlags) Has(other RegionFlags) bool

Has returns true if r contains other.

func (RegionFlags) String

func (r RegionFlags) String() string

String returns the names in string for RegionFlags.

type ReliefStyle

type ReliefStyle C.gint

ReliefStyle: indicated the relief to be drawn around a Button.

const (
	// ReliefNormal: draw a normal relief.
	ReliefNormal ReliefStyle = iota
	// ReliefHalf: half relief. Deprecated in 3.14, does the same as
	// GTK_RELIEF_NORMAL.
	ReliefHalf
	// ReliefNone: no relief.
	ReliefNone
)

func (ReliefStyle) String

func (r ReliefStyle) String() string

String returns the name in string for ReliefStyle.

type RendererCellAccessible

type RendererCellAccessible struct {
	CellAccessible
	// contains filtered or unexported fields
}

func NewRendererCellAccessible

func NewRendererCellAccessible(renderer CellRendererer) *RendererCellAccessible

The function takes the following parameters:

The function returns the following values:

type RendererCellAccessibleClass added in v0.0.5

type RendererCellAccessibleClass struct {
	// contains filtered or unexported fields
}

RendererCellAccessibleClass: instance of this type is always passed by reference.

func (*RendererCellAccessibleClass) ParentClass added in v0.0.5

type RendererCellAccessibleOverrides added in v0.0.5

type RendererCellAccessibleOverrides struct {
}

RendererCellAccessibleOverrides contains methods that are overridable.

type RequestedSize

type RequestedSize struct {
	// contains filtered or unexported fields
}

RequestedSize represents a request of a screen object in a given orientation. These are primarily used in container implementations when allocating a natural size for children calling. See gtk_distribute_natural_allocation().

An instance of this type is always passed by reference.

func (*RequestedSize) Data

func (r *RequestedSize) Data() unsafe.Pointer

Data: client pointer.

func (*RequestedSize) MinimumSize

func (r *RequestedSize) MinimumSize() int

MinimumSize: minimum size needed for allocation in a given orientation.

func (*RequestedSize) NaturalSize

func (r *RequestedSize) NaturalSize() int

NaturalSize: natural size for allocation in a given orientation.

func (*RequestedSize) SetMinimumSize

func (r *RequestedSize) SetMinimumSize(minimumSize int)

MinimumSize: minimum size needed for allocation in a given orientation.

func (*RequestedSize) SetNaturalSize

func (r *RequestedSize) SetNaturalSize(naturalSize int)

NaturalSize: natural size for allocation in a given orientation.

type Requisition

type Requisition struct {
	// contains filtered or unexported fields
}

Requisition represents the desired size of a widget. See [GtkWidget’s geometry management section][geometry-management] for more information.

An instance of this type is always passed by reference.

func NewRequisition

func NewRequisition() *Requisition

NewRequisition constructs a struct Requisition.

func (*Requisition) Copy

func (requisition *Requisition) Copy() *Requisition

Copy copies a Requisition.

The function returns the following values:

  • ret: copy of requisition.

func (*Requisition) Height

func (r *Requisition) Height() int

Height widget’s desired height.

func (*Requisition) SetHeight

func (r *Requisition) SetHeight(height int)

Height widget’s desired height.

func (*Requisition) SetWidth

func (r *Requisition) SetWidth(width int)

Width widget’s desired width.

func (*Requisition) Width

func (r *Requisition) Width() int

Width widget’s desired width.

type ResizeMode

type ResizeMode C.gint
const (
	// ResizeParent pass resize request to the parent.
	ResizeParent ResizeMode = iota
	// ResizeQueue: queue resizes on this widget.
	ResizeQueue
	// ResizeImmediate: resize immediately. Deprecated.
	ResizeImmediate
)

func (ResizeMode) String

func (r ResizeMode) String() string

String returns the name in string for ResizeMode.

type ResponseType

type ResponseType C.gint

ResponseType: predefined values for use as response ids in gtk_dialog_add_button(). All predefined values are negative; GTK+ leaves values of 0 or greater for application-defined response ids.

const (
	// ResponseNone: returned if an action widget has no response id, or if the
	// dialog gets programmatically hidden or destroyed.
	ResponseNone ResponseType = -1
	// ResponseReject: generic response id, not used by GTK+ dialogs.
	ResponseReject ResponseType = -2
	// ResponseAccept: generic response id, not used by GTK+ dialogs.
	ResponseAccept ResponseType = -3
	// ResponseDeleteEvent: returned if the dialog is deleted.
	ResponseDeleteEvent ResponseType = -4
	// ResponseOK: returned by OK buttons in GTK+ dialogs.
	ResponseOK ResponseType = -5
	// ResponseCancel: returned by Cancel buttons in GTK+ dialogs.
	ResponseCancel ResponseType = -6
	// ResponseClose: returned by Close buttons in GTK+ dialogs.
	ResponseClose ResponseType = -7
	// ResponseYes: returned by Yes buttons in GTK+ dialogs.
	ResponseYes ResponseType = -8
	// ResponseNo: returned by No buttons in GTK+ dialogs.
	ResponseNo ResponseType = -9
	// ResponseApply: returned by Apply buttons in GTK+ dialogs.
	ResponseApply ResponseType = -10
	// ResponseHelp: returned by Help buttons in GTK+ dialogs.
	ResponseHelp ResponseType = -11
)

func (ResponseType) String

func (r ResponseType) String() string

String returns the name in string for ResponseType.

type Revealer

type Revealer struct {
	Bin
	// contains filtered or unexported fields
}

Revealer widget is a container which animates the transition of its child from invisible to visible.

The style of transition can be controlled with gtk_revealer_set_transition_type().

These animations respect the Settings:gtk-enable-animations setting.

CSS nodes

GtkRevealer has a single CSS node with name revealer.

The GtkRevealer widget was added in GTK+ 3.10.

func NewRevealer

func NewRevealer() *Revealer

NewRevealer creates a new Revealer.

The function returns the following values:

  • revealer: newly created Revealer.

func (*Revealer) ChildRevealed

func (revealer *Revealer) ChildRevealed() bool

ChildRevealed returns whether the child is fully revealed, in other words whether the transition to the revealed state is completed.

The function returns the following values:

  • ok: TRUE if the child is fully revealed.

func (*Revealer) RevealChild

func (revealer *Revealer) RevealChild() bool

RevealChild returns whether the child is currently revealed. See gtk_revealer_set_reveal_child().

This function returns TRUE as soon as the transition is to the revealed state is started. To learn whether the child is fully revealed (ie the transition is completed), use gtk_revealer_get_child_revealed().

The function returns the following values:

  • ok: TRUE if the child is revealed.

func (*Revealer) SetRevealChild

func (revealer *Revealer) SetRevealChild(revealChild bool)

SetRevealChild tells the Revealer to reveal or conceal its child.

The transition will be animated with the current transition type of revealer.

The function takes the following parameters:

  • revealChild: TRUE to reveal the child.

func (*Revealer) SetTransitionDuration

func (revealer *Revealer) SetTransitionDuration(duration uint)

SetTransitionDuration sets the duration that transitions will take.

The function takes the following parameters:

  • duration: new duration, in milliseconds.

func (*Revealer) SetTransitionType

func (revealer *Revealer) SetTransitionType(transition RevealerTransitionType)

SetTransitionType sets the type of animation that will be used for transitions in revealer. Available types include various kinds of fades and slides.

The function takes the following parameters:

  • transition: new transition type.

func (*Revealer) TransitionDuration

func (revealer *Revealer) TransitionDuration() uint

TransitionDuration returns the amount of time (in milliseconds) that transitions will take.

The function returns the following values:

  • guint: transition duration.

func (*Revealer) TransitionType

func (revealer *Revealer) TransitionType() RevealerTransitionType

TransitionType gets the type of animation that will be used for transitions in revealer.

The function returns the following values:

  • revealerTransitionType: current transition type of revealer.

type RevealerClass added in v0.0.5

type RevealerClass struct {
	// contains filtered or unexported fields
}

RevealerClass: instance of this type is always passed by reference.

func (*RevealerClass) ParentClass added in v0.0.5

func (r *RevealerClass) ParentClass() *BinClass

ParentClass: parent class.

type RevealerOverrides added in v0.0.5

type RevealerOverrides struct {
}

RevealerOverrides contains methods that are overridable.

type RevealerTransitionType

type RevealerTransitionType C.gint

RevealerTransitionType: these enumeration values describe the possible transitions when the child of a Revealer widget is shown or hidden.

const (
	// RevealerTransitionTypeNone: no transition.
	RevealerTransitionTypeNone RevealerTransitionType = iota
	// RevealerTransitionTypeCrossfade: fade in.
	RevealerTransitionTypeCrossfade
	// RevealerTransitionTypeSlideRight: slide in from the left.
	RevealerTransitionTypeSlideRight
	// RevealerTransitionTypeSlideLeft: slide in from the right.
	RevealerTransitionTypeSlideLeft
	// RevealerTransitionTypeSlideUp: slide in from the bottom.
	RevealerTransitionTypeSlideUp
	// RevealerTransitionTypeSlideDown: slide in from the top.
	RevealerTransitionTypeSlideDown
)

func (RevealerTransitionType) String

func (r RevealerTransitionType) String() string

String returns the name in string for RevealerTransitionType.

type Scale

type Scale struct {
	Range
	// contains filtered or unexported fields
}

Scale is a slider control used to select a numeric value. To use it, you’ll probably want to investigate the methods on its base class, Range, in addition to the methods for GtkScale itself. To set the value of a scale, you would normally use gtk_range_set_value(). To detect changes to the value, you would normally use the Range::value-changed signal.

Note that using the same upper and lower bounds for the Scale (through the Range methods) will hide the slider itself. This is useful for applications that want to show an undeterminate value on the scale, without changing the layout of the application (such as movie or music players).

GtkScale as GtkBuildable

GtkScale supports a custom <marks> element, which can contain multiple <mark> elements. The “value” and “position” attributes have the same meaning as gtk_scale_add_mark() parameters of the same name. If the element is not empty, its content is taken as the markup to show at the mark. It can be translated with the usual ”translatable” and “context” attributes.

CSS nodes

scale[.fine-tune][.marks-before][.marks-after]
├── marks.top
│   ├── mark
│   ┊    ├── [label]
│   ┊    ╰── indicator
┊   ┊
│   ╰── mark
├── [value]
├── contents
│   ╰── trough
│       ├── slider
│       ├── [highlight]
│       ╰── [fill]
╰── marks.bottom
    ├── mark
    ┊    ├── indicator
    ┊    ╰── [label]
    ╰── mark

GtkScale has a main CSS node with name scale and a subnode for its contents, with subnodes named trough and slider.

The main node gets the style class .fine-tune added when the scale is in 'fine-tuning' mode.

If the scale has an origin (see gtk_scale_set_has_origin()), there is a subnode with name highlight below the trough node that is used for rendering the highlighted part of the trough.

If the scale is showing a fill level (see gtk_range_set_show_fill_level()), there is a subnode with name fill below the trough node that is used for rendering the filled in part of the trough.

If marks are present, there is a marks subnode before or after the contents node, below which each mark gets a node with name mark. The marks nodes get either the .top or .bottom style class.

The mark node has a subnode named indicator. If the mark has text, it also has a subnode named label. When the mark is either above or left of the scale, the label subnode is the first when present. Otherwise, the indicator subnode is the first.

The main CSS node gets the 'marks-before' and/or 'marks-after' style classes added depending on what marks are present.

If the scale is displaying the value (see Scale:draw-value), there is subnode with name value.

func NewScale

func NewScale(orientation Orientation, adjustment *Adjustment) *Scale

NewScale creates a new Scale.

The function takes the following parameters:

  • orientation scale’s orientation.
  • adjustment (optional) which sets the range of the scale, or NULL to create a new adjustment.

The function returns the following values:

  • scale: new Scale.

func NewScaleWithRange

func NewScaleWithRange(orientation Orientation, min, max, step float64) *Scale

NewScaleWithRange creates a new scale widget with the given orientation that lets the user input a number between min and max (including min and max) with the increment step. step must be nonzero; it’s the distance the slider moves when using the arrow keys to adjust the scale value.

Note that the way in which the precision is derived works best if step is a power of ten. If the resulting precision is not suitable for your needs, use gtk_scale_set_digits() to correct it.

The function takes the following parameters:

  • orientation scale’s orientation.
  • min: minimum value.
  • max: maximum value.
  • step increment (tick size) used with keyboard shortcuts.

The function returns the following values:

  • scale: new Scale.

func (*Scale) AddMark

func (scale *Scale) AddMark(value float64, position PositionType, markup string)

AddMark adds a mark at value.

A mark is indicated visually by drawing a tick mark next to the scale, and GTK+ makes it easy for the user to position the scale exactly at the marks value.

If markup is not NULL, text is shown next to the tick mark.

To remove marks from a scale, use gtk_scale_clear_marks().

The function takes the following parameters:

  • value at which the mark is placed, must be between the lower and upper limits of the scales’ adjustment.
  • position: where to draw the mark. For a horizontal scale, K_POS_TOP and GTK_POS_LEFT are drawn above the scale, anything else below. For a vertical scale, K_POS_LEFT and GTK_POS_TOP are drawn to the left of the scale, anything else to the right.
  • markup (optional): text to be shown at the mark, using [Pango markup][PangoMarkupFormat], or NULL.

func (*Scale) ClearMarks

func (scale *Scale) ClearMarks()

ClearMarks removes any marks that have been added with gtk_scale_add_mark().

func (*Scale) ConnectFormatValue

func (scale *Scale) ConnectFormatValue(f func(value float64) (utf8 string)) coreglib.SignalHandle

ConnectFormatValue: signal which allows you to change how the scale value is displayed. Connect a signal handler which returns an allocated string representing value. That string will then be used to display the scale's value.

If no user-provided handlers are installed, the value will be displayed on its own, rounded according to the value of the Scale:digits property.

Here's an example signal handler which displays a value 1.0 as with "-->1.0<--".

static gchar*
format_value_callback (GtkScale *scale,
                       gdouble   value)
{
  return g_strdup_printf ("-->\0.*g<--",
                          gtk_scale_get_digits (scale), value);
 }.

func (*Scale) Digits

func (scale *Scale) Digits() int

Digits gets the number of decimal places that are displayed in the value.

The function returns the following values:

  • gint: number of decimal places that are displayed.

func (*Scale) DrawValue

func (scale *Scale) DrawValue() bool

DrawValue returns whether the current value is displayed as a string next to the slider.

The function returns the following values:

  • ok: whether the current value is displayed as a string.

func (*Scale) HasOrigin

func (scale *Scale) HasOrigin() bool

HasOrigin returns whether the scale has an origin.

The function returns the following values:

  • ok: TRUE if the scale has an origin.

func (*Scale) Layout

func (scale *Scale) Layout() *pango.Layout

Layout gets the Layout used to display the scale. The returned object is owned by the scale so does not need to be freed by the caller.

The function returns the following values:

  • layout (optional) for this scale, or NULL if the Scale:draw-value property is FALSE.

func (*Scale) LayoutOffsets

func (scale *Scale) LayoutOffsets() (x, y int)

LayoutOffsets obtains the coordinates where the scale will draw the Layout representing the text in the scale. Remember when using the Layout function you need to convert to and from pixels using PANGO_PIXELS() or NGO_SCALE.

If the Scale:draw-value property is FALSE, the return values are undefined.

The function returns the following values:

  • x (optional): location to store X offset of layout, or NULL.
  • y (optional): location to store Y offset of layout, or NULL.

func (*Scale) SetDigits

func (scale *Scale) SetDigits(digits int)

SetDigits sets the number of decimal places that are displayed in the value. Also causes the value of the adjustment to be rounded to this number of digits, so the retrieved value matches the displayed one, if Scale:draw-value is TRUE when the value changes. If you want to enforce rounding the value when Scale:draw-value is FALSE, you can set Range:round-digits instead.

Note that rounding to a small number of digits can interfere with the smooth autoscrolling that is built into Scale. As an alternative, you can use the Scale::format-value signal to format the displayed value yourself.

The function takes the following parameters:

  • digits: number of decimal places to display, e.g. use 1 to display 1.0, 2 to display 1.00, etc.

func (*Scale) SetDrawValue

func (scale *Scale) SetDrawValue(drawValue bool)

SetDrawValue specifies whether the current value is displayed as a string next to the slider.

The function takes the following parameters:

  • drawValue: TRUE to draw the value.

func (*Scale) SetHasOrigin

func (scale *Scale) SetHasOrigin(hasOrigin bool)

SetHasOrigin: if Scale:has-origin is set to TRUE (the default), the scale will highlight the part of the trough between the origin (bottom or left side) and the current value.

The function takes the following parameters:

  • hasOrigin: TRUE if the scale has an origin.

func (*Scale) SetValuePos

func (scale *Scale) SetValuePos(pos PositionType)

SetValuePos sets the position in which the current value is displayed.

The function takes the following parameters:

  • pos: position in which the current value is displayed.

func (*Scale) ValuePos

func (scale *Scale) ValuePos() PositionType

ValuePos gets the position in which the current value is displayed.

The function returns the following values:

  • positionType: position in which the current value is displayed.

type ScaleAccessible

type ScaleAccessible struct {
	RangeAccessible
	// contains filtered or unexported fields
}

type ScaleAccessibleClass added in v0.0.5

type ScaleAccessibleClass struct {
	// contains filtered or unexported fields
}

ScaleAccessibleClass: instance of this type is always passed by reference.

func (*ScaleAccessibleClass) ParentClass added in v0.0.5

func (s *ScaleAccessibleClass) ParentClass() *RangeAccessibleClass

type ScaleAccessibleOverrides added in v0.0.5

type ScaleAccessibleOverrides struct {
}

ScaleAccessibleOverrides contains methods that are overridable.

type ScaleButton

type ScaleButton struct {
	Button

	*coreglib.Object
	Orientable
	// contains filtered or unexported fields
}

ScaleButton provides a button which pops up a scale widget. This kind of widget is commonly used for volume controls in multimedia applications, and GTK+ provides a VolumeButton subclass that is tailored for this use case.

CSS nodes

GtkScaleButton has a single CSS node with name button. To differentiate it from a plain Button, it gets the .scale style class.

The popup widget that contains the scale has a .scale-popup style class.

func NewScaleButton

func NewScaleButton(size int, min, max, step float64, icons []string) *ScaleButton

NewScaleButton creates a ScaleButton, with a range between min and max, with a stepping of step.

The function takes the following parameters:

  • size: stock icon size (IconSize).
  • min: minimum value of the scale (usually 0).
  • max: maximum value of the scale (usually 100).
  • step: stepping of value when a scroll-wheel event, or up/down arrow event occurs (usually 2).
  • icons (optional): NULL-terminated array of icon names, or NULL if you want to set the list later with gtk_scale_button_set_icons().

The function returns the following values:

  • scaleButton: new ScaleButton.

func (*ScaleButton) Adjustment

func (button *ScaleButton) Adjustment() *Adjustment

Adjustment gets the Adjustment associated with the ScaleButton’s scale. See gtk_range_get_adjustment() for details.

The function returns the following values:

  • adjustment associated with the scale.

func (*ScaleButton) ConnectPopdown

func (button *ScaleButton) ConnectPopdown(f func()) coreglib.SignalHandle

ConnectPopdown signal is a [keybinding signal][GtkBindingSignal] which gets emitted to popdown the scale widget.

The default binding for this signal is Escape.

func (*ScaleButton) ConnectPopup

func (button *ScaleButton) ConnectPopup(f func()) coreglib.SignalHandle

ConnectPopup signal is a [keybinding signal][GtkBindingSignal] which gets emitted to popup the scale widget.

The default bindings for this signal are Space, Enter and Return.

func (*ScaleButton) ConnectValueChanged

func (button *ScaleButton) ConnectValueChanged(f func(value float64)) coreglib.SignalHandle

ConnectValueChanged signal is emitted when the value field has changed.

func (*ScaleButton) MinusButton

func (button *ScaleButton) MinusButton() *Button

MinusButton retrieves the minus button of the ScaleButton.

The function returns the following values:

  • ret minus button of the ScaleButton as a Button.

func (*ScaleButton) PlusButton

func (button *ScaleButton) PlusButton() *Button

PlusButton retrieves the plus button of the ScaleButton.

The function returns the following values:

  • ret plus button of the ScaleButton as a Button.

func (*ScaleButton) Popup

func (button *ScaleButton) Popup() Widgetter

Popup retrieves the popup of the ScaleButton.

The function returns the following values:

  • widget: popup of the ScaleButton.

func (*ScaleButton) SetAdjustment

func (button *ScaleButton) SetAdjustment(adjustment *Adjustment)

SetAdjustment sets the Adjustment to be used as a model for the ScaleButton’s scale. See gtk_range_set_adjustment() for details.

The function takes the following parameters:

  • adjustment: Adjustment.

func (*ScaleButton) SetIcons

func (button *ScaleButton) SetIcons(icons []string)

SetIcons sets the icons to be used by the scale button. For details, see the ScaleButton:icons property.

The function takes the following parameters:

  • icons: NULL-terminated array of icon names.

func (*ScaleButton) SetValue

func (button *ScaleButton) SetValue(value float64)

SetValue sets the current value of the scale; if the value is outside the minimum or maximum range values, it will be clamped to fit inside them. The scale button emits the ScaleButton::value-changed signal if the value changes.

The function takes the following parameters:

  • value: new value of the scale button.

func (*ScaleButton) Value

func (button *ScaleButton) Value() float64

Value gets the current value of the scale button.

The function returns the following values:

  • gdouble: current value of the scale button.

type ScaleButtonAccessible

type ScaleButtonAccessible struct {
	ButtonAccessible

	*coreglib.Object
	atk.Value
	// contains filtered or unexported fields
}

type ScaleButtonAccessibleClass added in v0.0.5

type ScaleButtonAccessibleClass struct {
	// contains filtered or unexported fields
}

ScaleButtonAccessibleClass: instance of this type is always passed by reference.

func (*ScaleButtonAccessibleClass) ParentClass added in v0.0.5

type ScaleButtonAccessibleOverrides added in v0.0.5

type ScaleButtonAccessibleOverrides struct {
}

ScaleButtonAccessibleOverrides contains methods that are overridable.

type ScaleButtonClass added in v0.0.5

type ScaleButtonClass struct {
	// contains filtered or unexported fields
}

ScaleButtonClass: instance of this type is always passed by reference.

func (*ScaleButtonClass) ParentClass added in v0.0.5

func (s *ScaleButtonClass) ParentClass() *ButtonClass

type ScaleButtonOverrides added in v0.0.5

type ScaleButtonOverrides struct {
	// The function takes the following parameters:
	//
	ValueChanged func(value float64)
}

ScaleButtonOverrides contains methods that are overridable.

type ScaleClass added in v0.0.5

type ScaleClass struct {
	// contains filtered or unexported fields
}

ScaleClass: instance of this type is always passed by reference.

func (*ScaleClass) ParentClass added in v0.0.5

func (s *ScaleClass) ParentClass() *RangeClass

type ScaleOverrides added in v0.0.5

type ScaleOverrides struct {
	DrawValue func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	FormatValue func(value float64) string
	// LayoutOffsets obtains the coordinates where the scale will draw the
	// Layout representing the text in the scale. Remember when using the Layout
	// function you need to convert to and from pixels using PANGO_PIXELS() or
	// NGO_SCALE.
	//
	// If the Scale:draw-value property is FALSE, the return values are
	// undefined.
	//
	// The function returns the following values:
	//
	//   - x (optional): location to store X offset of layout, or NULL.
	//   - y (optional): location to store Y offset of layout, or NULL.
	//
	LayoutOffsets func() (x, y int)
}

ScaleOverrides contains methods that are overridable.

type ScrollStep

type ScrollStep C.gint
const (
	// ScrollSteps: scroll in steps.
	ScrollSteps ScrollStep = iota
	// ScrollPages: scroll by pages.
	ScrollPages
	// ScrollEnds: scroll to ends.
	ScrollEnds
	// ScrollHorizontalSteps: scroll in horizontal steps.
	ScrollHorizontalSteps
	// ScrollHorizontalPages: scroll by horizontal pages.
	ScrollHorizontalPages
	// ScrollHorizontalEnds: scroll to the horizontal ends.
	ScrollHorizontalEnds
)

func (ScrollStep) String

func (s ScrollStep) String() string

String returns the name in string for ScrollStep.

type ScrollType

type ScrollType C.gint

ScrollType: scrolling types.

const (
	// ScrollNone: no scrolling.
	ScrollNone ScrollType = iota
	// ScrollJump: jump to new location.
	ScrollJump
	// ScrollStepBackward: step backward.
	ScrollStepBackward
	// ScrollStepForward: step forward.
	ScrollStepForward
	// ScrollPageBackward: page backward.
	ScrollPageBackward
	// ScrollPageForward: page forward.
	ScrollPageForward
	// ScrollStepUp: step up.
	ScrollStepUp
	// ScrollStepDown: step down.
	ScrollStepDown
	// ScrollPageUp: page up.
	ScrollPageUp
	// ScrollPageDown: page down.
	ScrollPageDown
	// ScrollStepLeft: step to the left.
	ScrollStepLeft
	// ScrollStepRight: step to the right.
	ScrollStepRight
	// ScrollPageLeft: page to the left.
	ScrollPageLeft
	// ScrollPageRight: page to the right.
	ScrollPageRight
	// ScrollStart: scroll to start.
	ScrollStart
	// ScrollEnd: scroll to end.
	ScrollEnd
)

func (ScrollType) String

func (s ScrollType) String() string

String returns the name in string for ScrollType.

type Scrollable

type Scrollable struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

Scrollable is an interface that is implemented by widgets with native scrolling ability.

To implement this interface you should override the Scrollable:hadjustment and Scrollable:vadjustment properties.

Creating a scrollable widget

All scrollable widgets should do the following.

- When a parent widget sets the scrollable child widget’s adjustments, the widget should populate the adjustments’ Adjustment:lower, Adjustment:upper, Adjustment:step-increment, Adjustment:page-increment and Adjustment:page-size properties and connect to the Adjustment::value-changed signal.

- Because its preferred size is the size for a fully expanded widget, the scrollable widget must be able to cope with underallocations. This means that it must accept any value passed to its WidgetClass.size_allocate() function.

- When the parent allocates space to the scrollable child widget, the widget should update the adjustments’ properties with new values.

- When any of the adjustments emits the Adjustment::value-changed signal, the scrollable widget should scroll its contents.

Scrollable wraps an interface. This means the user can get the underlying type by calling Cast().

func (*Scrollable) Border

func (scrollable *Scrollable) Border() (*Border, bool)

Border returns the size of a non-scrolling border around the outside of the scrollable. An example for this would be treeview headers. GTK+ can use this information to display overlayed graphics, like the overshoot indication, at the right position.

The function returns the following values:

  • border: return location for the results.
  • ok: TRUE if border has been set.

func (*Scrollable) HAdjustment

func (scrollable *Scrollable) HAdjustment() *Adjustment

HAdjustment retrieves the Adjustment used for horizontal scrolling.

The function returns the following values:

  • adjustment: horizontal Adjustment.

func (*Scrollable) HScrollPolicy

func (scrollable *Scrollable) HScrollPolicy() ScrollablePolicy

HScrollPolicy gets the horizontal ScrollablePolicy.

The function returns the following values:

  • scrollablePolicy: horizontal ScrollablePolicy.

func (*Scrollable) SetHAdjustment

func (scrollable *Scrollable) SetHAdjustment(hadjustment *Adjustment)

SetHAdjustment sets the horizontal adjustment of the Scrollable.

The function takes the following parameters:

  • hadjustment (optional): Adjustment.

func (*Scrollable) SetHScrollPolicy

func (scrollable *Scrollable) SetHScrollPolicy(policy ScrollablePolicy)

SetHScrollPolicy sets the ScrollablePolicy to determine whether horizontal scrolling should start below the minimum width or below the natural width.

The function takes the following parameters:

  • policy: horizontal ScrollablePolicy.

func (*Scrollable) SetVAdjustment

func (scrollable *Scrollable) SetVAdjustment(vadjustment *Adjustment)

SetVAdjustment sets the vertical adjustment of the Scrollable.

The function takes the following parameters:

  • vadjustment (optional): Adjustment.

func (*Scrollable) SetVScrollPolicy

func (scrollable *Scrollable) SetVScrollPolicy(policy ScrollablePolicy)

SetVScrollPolicy sets the ScrollablePolicy to determine whether vertical scrolling should start below the minimum height or below the natural height.

The function takes the following parameters:

  • policy: vertical ScrollablePolicy.

func (*Scrollable) VAdjustment

func (scrollable *Scrollable) VAdjustment() *Adjustment

VAdjustment retrieves the Adjustment used for vertical scrolling.

The function returns the following values:

  • adjustment: vertical Adjustment.

func (*Scrollable) VScrollPolicy

func (scrollable *Scrollable) VScrollPolicy() ScrollablePolicy

VScrollPolicy gets the vertical ScrollablePolicy.

The function returns the following values:

  • scrollablePolicy: vertical ScrollablePolicy.

type ScrollableInterface added in v0.0.5

type ScrollableInterface struct {
	// contains filtered or unexported fields
}

ScrollableInterface: instance of this type is always passed by reference.

type ScrollablePolicy

type ScrollablePolicy C.gint

ScrollablePolicy defines the policy to be used in a scrollable widget when updating the scrolled window adjustments in a given orientation.

const (
	// ScrollMinimum: scrollable adjustments are based on the minimum size.
	ScrollMinimum ScrollablePolicy = iota
	// ScrollNatural: scrollable adjustments are based on the natural size.
	ScrollNatural
)

func (ScrollablePolicy) String

func (s ScrollablePolicy) String() string

String returns the name in string for ScrollablePolicy.

type Scrollabler

type Scrollabler interface {
	coreglib.Objector

	// Border returns the size of a non-scrolling border around the outside of
	// the scrollable.
	Border() (*Border, bool)
	// HAdjustment retrieves the Adjustment used for horizontal scrolling.
	HAdjustment() *Adjustment
	// HScrollPolicy gets the horizontal ScrollablePolicy.
	HScrollPolicy() ScrollablePolicy
	// VAdjustment retrieves the Adjustment used for vertical scrolling.
	VAdjustment() *Adjustment
	// VScrollPolicy gets the vertical ScrollablePolicy.
	VScrollPolicy() ScrollablePolicy
	// SetHAdjustment sets the horizontal adjustment of the Scrollable.
	SetHAdjustment(hadjustment *Adjustment)
	// SetHScrollPolicy sets the ScrollablePolicy to determine whether
	// horizontal scrolling should start below the minimum width or below the
	// natural width.
	SetHScrollPolicy(policy ScrollablePolicy)
	// SetVAdjustment sets the vertical adjustment of the Scrollable.
	SetVAdjustment(vadjustment *Adjustment)
	// SetVScrollPolicy sets the ScrollablePolicy to determine whether vertical
	// scrolling should start below the minimum height or below the natural
	// height.
	SetVScrollPolicy(policy ScrollablePolicy)
}

Scrollabler describes Scrollable's interface methods.

type Scrollbar

type Scrollbar struct {
	Range
	// contains filtered or unexported fields
}

Scrollbar widget is a horizontal or vertical scrollbar, depending on the value of the Orientable:orientation property.

Its position and movement are controlled by the adjustment that is passed to or created by gtk_scrollbar_new(). See Adjustment for more details. The Adjustment:value field sets the position of the thumb and must be between Adjustment:lower and Adjustment:upper - Adjustment:page-size. The Adjustment:page-size represents the size of the visible scrollable area. The fields Adjustment:step-increment and Adjustment:page-increment fields are added to or subtracted from the Adjustment:value when the user asks to move by a step (using e.g. the cursor arrow keys or, if present, the stepper buttons) or by a page (using e.g. the Page Down/Up keys).

CSS nodes

scrollbar[.fine-tune]
╰── contents
    ├── [button.up]
    ├── [button.down]
    ├── trough
    │   ╰── slider
    ├── [button.up]
    ╰── [button.down]

GtkScrollbar has a main CSS node with name scrollbar and a subnode for its contents, with subnodes named trough and slider.

The main node gets the style class .fine-tune added when the scrollbar is in 'fine-tuning' mode.

If steppers are enabled, they are represented by up to four additional subnodes with name button. These get the style classes .up and .down to indicate in which direction they are moving.

Other style classes that may be added to scrollbars inside ScrolledWindow include the positional classes (.left, .right, .top, .bottom) and style classes related to overlay scrolling (.overlay-indicator, .dragging, .hovering).

func NewScrollbar

func NewScrollbar(orientation Orientation, adjustment *Adjustment) *Scrollbar

NewScrollbar creates a new scrollbar with the given orientation.

The function takes the following parameters:

  • orientation scrollbar’s orientation.
  • adjustment (optional) to use, or NULL to create a new adjustment.

The function returns the following values:

  • scrollbar: new Scrollbar.

type ScrollbarClass added in v0.0.5

type ScrollbarClass struct {
	// contains filtered or unexported fields
}

ScrollbarClass: instance of this type is always passed by reference.

func (*ScrollbarClass) ParentClass added in v0.0.5

func (s *ScrollbarClass) ParentClass() *RangeClass

type ScrollbarOverrides added in v0.0.5

type ScrollbarOverrides struct {
}

ScrollbarOverrides contains methods that are overridable.

type ScrolledWindow

type ScrolledWindow struct {
	Bin
	// contains filtered or unexported fields
}

ScrolledWindow is a container that accepts a single child widget, makes that child scrollable using either internally added scrollbars or externally associated adjustments, and optionally draws a frame around the child.

Widgets with native scrolling support, i.e. those whose classes implement the Scrollable interface, are added directly. For other types of widget, the class Viewport acts as an adaptor, giving scrollability to other widgets. GtkScrolledWindow’s implementation of gtk_container_add() intelligently accounts for whether or not the added child is a Scrollable. If it isn’t, ScrolledWindow wraps the child in a Viewport and adds that for you. Therefore, you can just add any child widget and not worry about the details.

If gtk_container_add() has added a Viewport for you, you can remove both your added child widget from the Viewport, and the Viewport from the GtkScrolledWindow, like this:

GtkWidget *scrolled_window = gtk_scrolled_window_new (NULL, NULL);
GtkWidget *child_widget = gtk_button_new ();

// GtkButton is not a GtkScrollable, so GtkScrolledWindow will automatically
// add a GtkViewport.
gtk_container_add (GTK_CONTAINER (scrolled_window),
                   child_widget);

// Either of these will result in child_widget being unparented:
gtk_container_remove (GTK_CONTAINER (scrolled_window),
                      child_widget);
// or
gtk_container_remove (GTK_CONTAINER (scrolled_window),
                      gtk_bin_get_child (GTK_BIN (scrolled_window)));

Unless ScrolledWindow:policy is GTK_POLICY_NEVER or GTK_POLICY_EXTERNAL, GtkScrolledWindow adds internal Scrollbar widgets around its child. The scroll position of the child, and if applicable the scrollbars, is controlled by the ScrolledWindow:hadjustment and ScrolledWindow:vadjustment that are associated with the GtkScrolledWindow. See the docs on Scrollbar for the details, but note that the “step_increment” and “page_increment” fields are only effective if the policy causes scrollbars to be present.

If a GtkScrolledWindow doesn’t behave quite as you would like, or doesn’t have exactly the right layout, it’s very possible to set up your own scrolling with Scrollbar and for example a Grid.

Touch support

GtkScrolledWindow has built-in support for touch devices. When a touchscreen is used, swiping will move the scrolled window, and will expose 'kinetic' behavior. This can be turned off with the ScrolledWindow:kinetic-scrolling property if it is undesired.

GtkScrolledWindow also displays visual 'overshoot' indication when the content is pulled beyond the end, and this situation can be captured with the ScrolledWindow::edge-overshot signal.

If no mouse device is present, the scrollbars will overlayed as narrow, auto-hiding indicators over the content. If traditional scrollbars are desired although no mouse is present, this behaviour can be turned off with the ScrolledWindow:overlay-scrolling property.

CSS nodes

GtkScrolledWindow has a main CSS node with name scrolledwindow.

It uses subnodes with names overshoot and undershoot to draw the overflow and underflow indications. These nodes get the .left, .right, .top or .bottom style class added depending on where the indication is drawn.

GtkScrolledWindow also sets the positional style classes (.left, .right, .top, .bottom) and style classes related to overlay scrolling (.overlay-indicator, .dragging, .hovering) on its scrollbars.

If both scrollbars are visible, the area where they meet is drawn with a subnode named junction.

func NewScrolledWindow

func NewScrolledWindow(hadjustment, vadjustment *Adjustment) *ScrolledWindow

NewScrolledWindow creates a new scrolled window.

The two arguments are the scrolled window’s adjustments; these will be shared with the scrollbars and the child widget to keep the bars in sync with the child. Usually you want to pass NULL for the adjustments, which will cause the scrolled window to create them for you.

The function takes the following parameters:

  • hadjustment (optional): horizontal adjustment.
  • vadjustment (optional): vertical adjustment.

The function returns the following values:

  • scrolledWindow: new scrolled window.

func (*ScrolledWindow) AddWithViewport deprecated

func (scrolledWindow *ScrolledWindow) AddWithViewport(child Widgetter)

AddWithViewport: used to add children without native scrolling capabilities. This is simply a convenience function; it is equivalent to adding the unscrollable child to a viewport, then adding the viewport to the scrolled window. If a child has native scrolling, use gtk_container_add() instead of this function.

The viewport scrolls the child by moving its Window, and takes the size of the child to be the size of its toplevel Window. This will be very wrong for most widgets that support native scrolling; for example, if you add a widget such as TreeView with a viewport, the whole widget will scroll, including the column headings. Thus, widgets with native scrolling support should not be used with the Viewport proxy.

A widget supports scrolling natively if it implements the Scrollable interface.

Deprecated: gtk_container_add() will automatically add a Viewport if the child doesn’t implement Scrollable.

The function takes the following parameters:

  • child: widget you want to scroll.

func (*ScrolledWindow) CaptureButtonPress

func (scrolledWindow *ScrolledWindow) CaptureButtonPress() bool

CaptureButtonPress: return whether button presses are captured during kinetic scrolling. See gtk_scrolled_window_set_capture_button_press().

The function returns the following values:

  • ok: TRUE if button presses are captured during kinetic scrolling.

func (*ScrolledWindow) ConnectEdgeOvershot

func (scrolledWindow *ScrolledWindow) ConnectEdgeOvershot(f func(pos PositionType)) coreglib.SignalHandle

ConnectEdgeOvershot signal is emitted whenever user initiated scrolling makes the scrolled window firmly surpass (i.e. with some edge resistance) the lower or upper limits defined by the adjustment in that orientation.

A similar behavior without edge resistance is provided by the ScrolledWindow::edge-reached signal.

Note: The pos argument is LTR/RTL aware, so callers should be aware too if intending to provide behavior on horizontal edges.

func (*ScrolledWindow) ConnectEdgeReached

func (scrolledWindow *ScrolledWindow) ConnectEdgeReached(f func(pos PositionType)) coreglib.SignalHandle

ConnectEdgeReached signal is emitted whenever user-initiated scrolling makes the scrolled window exactly reach the lower or upper limits defined by the adjustment in that orientation.

A similar behavior with edge resistance is provided by the ScrolledWindow::edge-overshot signal.

Note: The pos argument is LTR/RTL aware, so callers should be aware too if intending to provide behavior on horizontal edges.

func (*ScrolledWindow) ConnectMoveFocusOut

func (scrolledWindow *ScrolledWindow) ConnectMoveFocusOut(f func(directionType DirectionType)) coreglib.SignalHandle

ConnectMoveFocusOut signal is a [keybinding signal][GtkBindingSignal] which gets emitted when focus is moved away from the scrolled window by a keybinding. The Widget::move-focus signal is emitted with direction_type on this scrolled window’s toplevel parent in the container hierarchy. The default bindings for this signal are Ctrl + Tab to move forward and Ctrl + Shift + Tab to move backward.

func (*ScrolledWindow) ConnectScrollChild

func (scrolledWindow *ScrolledWindow) ConnectScrollChild(f func(scroll ScrollType, horizontal bool) (ok bool)) coreglib.SignalHandle

ConnectScrollChild signal is a [keybinding signal][GtkBindingSignal] which gets emitted when a keybinding that scrolls is pressed. The horizontal or vertical adjustment is updated which triggers a signal that the scrolled window’s child may listen to and scroll itself.

func (*ScrolledWindow) HAdjustment

func (scrolledWindow *ScrolledWindow) HAdjustment() *Adjustment

HAdjustment returns the horizontal scrollbar’s adjustment, used to connect the horizontal scrollbar to the child widget’s horizontal scroll functionality.

The function returns the following values:

  • adjustment: horizontal Adjustment.

func (*ScrolledWindow) HScrollbar

func (scrolledWindow *ScrolledWindow) HScrollbar() Widgetter

HScrollbar returns the horizontal scrollbar of scrolled_window.

The function returns the following values:

  • widget: horizontal scrollbar of the scrolled window.

func (*ScrolledWindow) KineticScrolling

func (scrolledWindow *ScrolledWindow) KineticScrolling() bool

KineticScrolling returns the specified kinetic scrolling behavior.

The function returns the following values:

  • ok: scrolling behavior flags.

func (*ScrolledWindow) MaxContentHeight

func (scrolledWindow *ScrolledWindow) MaxContentHeight() int

MaxContentHeight returns the maximum content height set.

The function returns the following values:

  • gint: maximum content height, or -1.

func (*ScrolledWindow) MaxContentWidth

func (scrolledWindow *ScrolledWindow) MaxContentWidth() int

MaxContentWidth returns the maximum content width set.

The function returns the following values:

  • gint: maximum content width, or -1.

func (*ScrolledWindow) MinContentHeight

func (scrolledWindow *ScrolledWindow) MinContentHeight() int

MinContentHeight gets the minimal content height of scrolled_window, or -1 if not set.

The function returns the following values:

  • gint: minimal content height.

func (*ScrolledWindow) MinContentWidth

func (scrolledWindow *ScrolledWindow) MinContentWidth() int

MinContentWidth gets the minimum content width of scrolled_window, or -1 if not set.

The function returns the following values:

  • gint: minimum content width.

func (*ScrolledWindow) OverlayScrolling

func (scrolledWindow *ScrolledWindow) OverlayScrolling() bool

OverlayScrolling returns whether overlay scrolling is enabled for this scrolled window.

The function returns the following values:

  • ok: TRUE if overlay scrolling is enabled.

func (*ScrolledWindow) Placement

func (scrolledWindow *ScrolledWindow) Placement() CornerType

Placement gets the placement of the contents with respect to the scrollbars for the scrolled window. See gtk_scrolled_window_set_placement().

The function returns the following values:

  • cornerType: current placement value.

    See also gtk_scrolled_window_set_placement() and gtk_scrolled_window_unset_placement().

func (*ScrolledWindow) Policy

func (scrolledWindow *ScrolledWindow) Policy() (hscrollbarPolicy, vscrollbarPolicy PolicyType)

Policy retrieves the current policy values for the horizontal and vertical scrollbars. See gtk_scrolled_window_set_policy().

The function returns the following values:

  • hscrollbarPolicy (optional): location to store the policy for the horizontal scrollbar, or NULL.
  • vscrollbarPolicy (optional): location to store the policy for the vertical scrollbar, or NULL.

func (*ScrolledWindow) PropagateNaturalHeight

func (scrolledWindow *ScrolledWindow) PropagateNaturalHeight() bool

PropagateNaturalHeight reports whether the natural height of the child will be calculated and propagated through the scrolled window’s requested natural height.

The function returns the following values:

  • ok: whether natural height propagation is enabled.

func (*ScrolledWindow) PropagateNaturalWidth

func (scrolledWindow *ScrolledWindow) PropagateNaturalWidth() bool

PropagateNaturalWidth reports whether the natural width of the child will be calculated and propagated through the scrolled window’s requested natural width.

The function returns the following values:

  • ok: whether natural width propagation is enabled.

func (*ScrolledWindow) SetCaptureButtonPress

func (scrolledWindow *ScrolledWindow) SetCaptureButtonPress(captureButtonPress bool)

SetCaptureButtonPress changes the behaviour of scrolled_window with regard to the initial event that possibly starts kinetic scrolling. When capture_button_press is set to TRUE, the event is captured by the scrolled window, and then later replayed if it is meant to go to the child widget.

This should be enabled if any child widgets perform non-reversible actions on Widget::button-press-event. If they don't, and handle additionally handle Widget::grab-broken-event, it might be better to set capture_button_press to FALSE.

This setting only has an effect if kinetic scrolling is enabled.

The function takes the following parameters:

  • captureButtonPress: TRUE to capture button presses.

func (*ScrolledWindow) SetHAdjustment

func (scrolledWindow *ScrolledWindow) SetHAdjustment(hadjustment *Adjustment)

SetHAdjustment sets the Adjustment for the horizontal scrollbar.

The function takes the following parameters:

  • hadjustment (optional) to use, or NULL to create a new one.

func (*ScrolledWindow) SetKineticScrolling

func (scrolledWindow *ScrolledWindow) SetKineticScrolling(kineticScrolling bool)

SetKineticScrolling turns kinetic scrolling on or off. Kinetic scrolling only applies to devices with source GDK_SOURCE_TOUCHSCREEN.

The function takes the following parameters:

  • kineticScrolling: TRUE to enable kinetic scrolling.

func (*ScrolledWindow) SetMaxContentHeight

func (scrolledWindow *ScrolledWindow) SetMaxContentHeight(height int)

SetMaxContentHeight sets the maximum height that scrolled_window should keep visible. The scrolled_window will grow up to this height before it starts scrolling the content.

It is a programming error to set the maximum content height to a value smaller than ScrolledWindow:min-content-height.

The function takes the following parameters:

  • height: maximum content height.

func (*ScrolledWindow) SetMaxContentWidth

func (scrolledWindow *ScrolledWindow) SetMaxContentWidth(width int)

SetMaxContentWidth sets the maximum width that scrolled_window should keep visible. The scrolled_window will grow up to this width before it starts scrolling the content.

It is a programming error to set the maximum content width to a value smaller than ScrolledWindow:min-content-width.

The function takes the following parameters:

  • width: maximum content width.

func (*ScrolledWindow) SetMinContentHeight

func (scrolledWindow *ScrolledWindow) SetMinContentHeight(height int)

SetMinContentHeight sets the minimum height that scrolled_window should keep visible. Note that this can and (usually will) be smaller than the minimum size of the content.

It is a programming error to set the minimum content height to a value greater than ScrolledWindow:max-content-height.

The function takes the following parameters:

  • height: minimal content height.

func (*ScrolledWindow) SetMinContentWidth

func (scrolledWindow *ScrolledWindow) SetMinContentWidth(width int)

SetMinContentWidth sets the minimum width that scrolled_window should keep visible. Note that this can and (usually will) be smaller than the minimum size of the content.

It is a programming error to set the minimum content width to a value greater than ScrolledWindow:max-content-width.

The function takes the following parameters:

  • width: minimal content width.

func (*ScrolledWindow) SetOverlayScrolling

func (scrolledWindow *ScrolledWindow) SetOverlayScrolling(overlayScrolling bool)

SetOverlayScrolling enables or disables overlay scrolling for this scrolled window.

The function takes the following parameters:

  • overlayScrolling: whether to enable overlay scrolling.

func (*ScrolledWindow) SetPlacement

func (scrolledWindow *ScrolledWindow) SetPlacement(windowPlacement CornerType)

SetPlacement sets the placement of the contents with respect to the scrollbars for the scrolled window.

The default is GTK_CORNER_TOP_LEFT, meaning the child is in the top left, with the scrollbars underneath and to the right. Other values in CornerType are GTK_CORNER_TOP_RIGHT, GTK_CORNER_BOTTOM_LEFT, and GTK_CORNER_BOTTOM_RIGHT.

See also gtk_scrolled_window_get_placement() and gtk_scrolled_window_unset_placement().

The function takes the following parameters:

  • windowPlacement: position of the child window.

func (*ScrolledWindow) SetPolicy

func (scrolledWindow *ScrolledWindow) SetPolicy(hscrollbarPolicy, vscrollbarPolicy PolicyType)

SetPolicy sets the scrollbar policy for the horizontal and vertical scrollbars.

The policy determines when the scrollbar should appear; it is a value from the PolicyType enumeration. If GTK_POLICY_ALWAYS, the scrollbar is always present; if GTK_POLICY_NEVER, the scrollbar is never present; if GTK_POLICY_AUTOMATIC, the scrollbar is present only if needed (that is, if the slider part of the bar would be smaller than the trough — the display is larger than the page size).

The function takes the following parameters:

  • hscrollbarPolicy: policy for horizontal bar.
  • vscrollbarPolicy: policy for vertical bar.

func (*ScrolledWindow) SetPropagateNaturalHeight

func (scrolledWindow *ScrolledWindow) SetPropagateNaturalHeight(propagate bool)

SetPropagateNaturalHeight sets whether the natural height of the child should be calculated and propagated through the scrolled window’s requested natural height.

The function takes the following parameters:

  • propagate: whether to propagate natural height.

func (*ScrolledWindow) SetPropagateNaturalWidth

func (scrolledWindow *ScrolledWindow) SetPropagateNaturalWidth(propagate bool)

SetPropagateNaturalWidth sets whether the natural width of the child should be calculated and propagated through the scrolled window’s requested natural width.

The function takes the following parameters:

  • propagate: whether to propagate natural width.

func (*ScrolledWindow) SetShadowType

func (scrolledWindow *ScrolledWindow) SetShadowType(typ ShadowType)

SetShadowType changes the type of shadow drawn around the contents of scrolled_window.

The function takes the following parameters:

  • typ: kind of shadow to draw around scrolled window contents.

func (*ScrolledWindow) SetVAdjustment

func (scrolledWindow *ScrolledWindow) SetVAdjustment(vadjustment *Adjustment)

SetVAdjustment sets the Adjustment for the vertical scrollbar.

The function takes the following parameters:

  • vadjustment (optional) to use, or NULL to create a new one.

func (*ScrolledWindow) ShadowType

func (scrolledWindow *ScrolledWindow) ShadowType() ShadowType

ShadowType gets the shadow type of the scrolled window. See gtk_scrolled_window_set_shadow_type().

The function returns the following values:

  • shadowType: current shadow type.

func (*ScrolledWindow) UnsetPlacement

func (scrolledWindow *ScrolledWindow) UnsetPlacement()

UnsetPlacement unsets the placement of the contents with respect to the scrollbars for the scrolled window. If no window placement is set for a scrolled window, it defaults to GTK_CORNER_TOP_LEFT.

See also gtk_scrolled_window_set_placement() and gtk_scrolled_window_get_placement().

func (*ScrolledWindow) VAdjustment

func (scrolledWindow *ScrolledWindow) VAdjustment() *Adjustment

VAdjustment returns the vertical scrollbar’s adjustment, used to connect the vertical scrollbar to the child widget’s vertical scroll functionality.

The function returns the following values:

  • adjustment: vertical Adjustment.

func (*ScrolledWindow) VScrollbar

func (scrolledWindow *ScrolledWindow) VScrollbar() Widgetter

VScrollbar returns the vertical scrollbar of scrolled_window.

The function returns the following values:

  • widget: vertical scrollbar of the scrolled window.

type ScrolledWindowAccessible

type ScrolledWindowAccessible struct {
	ContainerAccessible
	// contains filtered or unexported fields
}

type ScrolledWindowAccessibleClass added in v0.0.5

type ScrolledWindowAccessibleClass struct {
	// contains filtered or unexported fields
}

ScrolledWindowAccessibleClass: instance of this type is always passed by reference.

func (*ScrolledWindowAccessibleClass) ParentClass added in v0.0.5

type ScrolledWindowAccessibleOverrides added in v0.0.5

type ScrolledWindowAccessibleOverrides struct {
}

ScrolledWindowAccessibleOverrides contains methods that are overridable.

type ScrolledWindowClass added in v0.0.5

type ScrolledWindowClass struct {
	// contains filtered or unexported fields
}

ScrolledWindowClass: instance of this type is always passed by reference.

func (*ScrolledWindowClass) ParentClass added in v0.0.5

func (s *ScrolledWindowClass) ParentClass() *BinClass

ParentClass: parent class.

func (*ScrolledWindowClass) ScrollbarSpacing added in v0.0.5

func (s *ScrolledWindowClass) ScrollbarSpacing() int

type ScrolledWindowOverrides added in v0.0.5

type ScrolledWindowOverrides struct {
	// The function takes the following parameters:
	//
	MoveFocusOut func(direction DirectionType)
	// The function takes the following parameters:
	//
	//   - scroll
	//   - horizontal
	//
	// The function returns the following values:
	//
	ScrollChild func(scroll ScrollType, horizontal bool) bool
}

ScrolledWindowOverrides contains methods that are overridable.

type SearchBar struct {
	Bin
	// contains filtered or unexported fields
}

SearchBar is a container made to have a search entry (possibly with additional connex widgets, such as drop-down menus, or buttons) built-in. The search bar would appear when a search is started through typing on the keyboard, or the application’s search mode is toggled on.

For keyboard presses to start a search, events will need to be forwarded from the top-level window that contains the search bar. See gtk_search_bar_handle_event() for example code. Common shortcuts such as Ctrl+F should be handled as an application action, or through the menu items.

You will also need to tell the search bar about which entry you are using as your search entry using gtk_search_bar_connect_entry(). The following example shows you how to create a more complex search entry.

CSS nodes

GtkSearchBar has a single CSS node with name searchbar.

A simple example (https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/examples/search-bar.c).

func NewSearchBar

func NewSearchBar() *SearchBar

NewSearchBar creates a SearchBar. You will need to tell it about which widget is going to be your text entry using gtk_search_bar_connect_entry().

The function returns the following values:

  • searchBar: new SearchBar.

func (*SearchBar) ConnectEntry

func (bar *SearchBar) ConnectEntry(entry *Entry)

ConnectEntry connects the Entry widget passed as the one to be used in this search bar. The entry should be a descendant of the search bar. This is only required if the entry isn’t the direct child of the search bar (as in our main example).

The function takes the following parameters:

  • entry: Entry.

func (*SearchBar) HandleEvent

func (bar *SearchBar) HandleEvent(event *gdk.Event) bool

HandleEvent: this function should be called when the top-level window which contains the search bar received a key event.

If the key event is handled by the search bar, the bar will be shown, the entry populated with the entered text and GDK_EVENT_STOP will be returned. The caller should ensure that events are not propagated further.

If no entry has been connected to the search bar, using gtk_search_bar_connect_entry(), this function will return immediately with a warning.

Showing the search bar on key presses

static gboolean
on_key_press_event (GtkWidget *widget,
                    GdkEvent  *event,
                    gpointer   user_data)
{
  GtkSearchBar *bar = GTK_SEARCH_BAR (user_data);
  return gtk_search_bar_handle_event (bar, event);
}

static void
create_toplevel (void)
{
  GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  GtkWindow *search_bar = gtk_search_bar_new ();

 // Add more widgets to the window...

  g_signal_connect (window,
                   "key-press-event",
                    G_CALLBACK (on_key_press_event),
                    search_bar);
}.

The function takes the following parameters:

  • event containing key press events.

The function returns the following values:

  • ok: GDK_EVENT_STOP if the key press event resulted in text being entered in the search entry (and revealing the search bar if necessary), GDK_EVENT_PROPAGATE otherwise.

func (*SearchBar) SearchMode

func (bar *SearchBar) SearchMode() bool

SearchMode returns whether the search mode is on or off.

The function returns the following values:

  • ok: whether search mode is toggled on.

func (*SearchBar) SetSearchMode

func (bar *SearchBar) SetSearchMode(searchMode bool)

SetSearchMode switches the search mode on or off.

The function takes the following parameters:

  • searchMode: new state of the search mode.

func (*SearchBar) SetShowCloseButton

func (bar *SearchBar) SetShowCloseButton(visible bool)

SetShowCloseButton shows or hides the close button. Applications that already have a “search” toggle button should not show a close button in their search bar, as it duplicates the role of the toggle button.

The function takes the following parameters:

  • visible: whether the close button will be shown or not.

func (*SearchBar) ShowCloseButton

func (bar *SearchBar) ShowCloseButton() bool

ShowCloseButton returns whether the close button is shown.

The function returns the following values:

  • ok: whether the close button is shown.

type SearchBarClass added in v0.0.5

type SearchBarClass struct {
	// contains filtered or unexported fields
}

SearchBarClass: instance of this type is always passed by reference.

func (*SearchBarClass) ParentClass added in v0.0.5

func (s *SearchBarClass) ParentClass() *BinClass

ParentClass: parent class.

type SearchBarOverrides added in v0.0.5

type SearchBarOverrides struct {
}

SearchBarOverrides contains methods that are overridable.

type SearchEntry

type SearchEntry struct {
	Entry
	// contains filtered or unexported fields
}

SearchEntry is a subclass of Entry that has been tailored for use as a search entry.

It will show an inactive symbolic “find” icon when the search entry is empty, and a symbolic “clear” icon when there is text. Clicking on the “clear” icon will empty the search entry.

Note that the search/clear icon is shown using a secondary icon, and thus does not work if you are using the secondary icon position for some other purpose.

To make filtering appear more reactive, it is a good idea to not react to every change in the entry text immediately, but only after a short delay. To support this, SearchEntry emits the SearchEntry::search-changed signal which can be used instead of the Editable::changed signal.

The SearchEntry::previous-match, SearchEntry::next-match and SearchEntry::stop-search signals can be used to implement moving between search results and ending the search.

Often, GtkSearchEntry will be fed events by means of being placed inside a SearchBar. If that is not the case, you can use gtk_search_entry_handle_event() to pass events.

func NewSearchEntry

func NewSearchEntry() *SearchEntry

NewSearchEntry creates a SearchEntry, with a find icon when the search field is empty, and a clear icon when it isn't.

The function returns the following values:

  • searchEntry: new SearchEntry.

func (*SearchEntry) ConnectNextMatch

func (entry *SearchEntry) ConnectNextMatch(f func()) coreglib.SignalHandle

ConnectNextMatch signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a move to the next match for the current search string.

Applications should connect to it, to implement moving between matches.

The default bindings for this signal is Ctrl-g.

func (*SearchEntry) ConnectPreviousMatch

func (entry *SearchEntry) ConnectPreviousMatch(f func()) coreglib.SignalHandle

ConnectPreviousMatch signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a move to the previous match for the current search string.

Applications should connect to it, to implement moving between matches.

The default bindings for this signal is Ctrl-Shift-g.

func (*SearchEntry) ConnectSearchChanged

func (entry *SearchEntry) ConnectSearchChanged(f func()) coreglib.SignalHandle

ConnectSearchChanged signal is emitted with a short delay of 150 milliseconds after the last change to the entry text.

func (*SearchEntry) ConnectStopSearch

func (entry *SearchEntry) ConnectStopSearch(f func()) coreglib.SignalHandle

ConnectStopSearch signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user stops a search via keyboard input.

Applications should connect to it, to implement hiding the search entry in this case.

The default bindings for this signal is Escape.

func (*SearchEntry) HandleEvent

func (entry *SearchEntry) HandleEvent(event *gdk.Event) bool

HandleEvent: this function should be called when the top-level window which contains the search entry received a key event. If the entry is part of a SearchBar, it is preferable to call gtk_search_bar_handle_event() instead, which will reveal the entry in addition to passing the event to this function.

If the key event is handled by the search entry and starts or continues a search, GDK_EVENT_STOP will be returned. The caller should ensure that the entry is shown in this case, and not propagate the event further.

The function takes the following parameters:

  • event: key event.

The function returns the following values:

  • ok: GDK_EVENT_STOP if the key press event resulted in a search beginning or continuing, GDK_EVENT_PROPAGATE otherwise.

type SearchEntryClass added in v0.0.5

type SearchEntryClass struct {
	// contains filtered or unexported fields
}

SearchEntryClass: instance of this type is always passed by reference.

func (*SearchEntryClass) ParentClass added in v0.0.5

func (s *SearchEntryClass) ParentClass() *EntryClass

type SearchEntryOverrides added in v0.0.5

type SearchEntryOverrides struct {
	NextMatch     func()
	PreviousMatch func()
	SearchChanged func()
	StopSearch    func()
}

SearchEntryOverrides contains methods that are overridable.

type SelectionData

type SelectionData struct {
	// contains filtered or unexported fields
}

SelectionData: instance of this type is always passed by reference.

func (*SelectionData) Copy

func (data *SelectionData) Copy() *SelectionData

Copy makes a copy of a SelectionData-struct and its data.

The function returns the following values:

  • selectionData: pointer to a copy of data.

func (*SelectionData) Data

func (selectionData *SelectionData) Data() []byte

Data retrieves the raw data of the selection along with its length.

The function returns the following values:

  • guint8s: raw data of the selection.

func (*SelectionData) Display

func (selectionData *SelectionData) Display() *gdk.Display

Display retrieves the display of the selection.

The function returns the following values:

  • display of the selection.

func (*SelectionData) Format

func (selectionData *SelectionData) Format() int

Format retrieves the format of the selection.

The function returns the following values:

  • gint: format of the selection.

func (*SelectionData) Length

func (selectionData *SelectionData) Length() int

Length retrieves the length of the raw data of the selection.

The function returns the following values:

  • gint: length of the data of the selection.

func (*SelectionData) Pixbuf

func (selectionData *SelectionData) Pixbuf() *gdkpixbuf.Pixbuf

Pixbuf gets the contents of the selection data as a Pixbuf.

The function returns the following values:

  • pixbuf (optional): if the selection data contained a recognized image type and it could be converted to a Pixbuf, a newly allocated pixbuf is returned, otherwise NULL. If the result is non-NULL it must be freed with g_object_unref().

func (*SelectionData) SetPixbuf

func (selectionData *SelectionData) SetPixbuf(pixbuf *gdkpixbuf.Pixbuf) bool

SetPixbuf sets the contents of the selection from a Pixbuf The pixbuf is converted to the form determined by selection_data->target.

The function takes the following parameters:

  • pixbuf: Pixbuf.

The function returns the following values:

  • ok: TRUE if the selection was successfully set, otherwise FALSE.

func (*SelectionData) SetText

func (selectionData *SelectionData) SetText(str string, len int) bool

SetText sets the contents of the selection from a UTF-8 encoded string. The string is converted to the form determined by selection_data->target.

The function takes the following parameters:

  • str: UTF-8 string.
  • len: length of str, or -1 if str is nul-terminated.

The function returns the following values:

  • ok: TRUE if the selection was successfully set, otherwise FALSE.

func (*SelectionData) SetURIs

func (selectionData *SelectionData) SetURIs(uris []string) bool

SetURIs sets the contents of the selection from a list of URIs. The string is converted to the form determined by selection_data->target.

The function takes the following parameters:

  • uris: NULL-terminated array of strings holding URIs.

The function returns the following values:

  • ok: TRUE if the selection was successfully set, otherwise FALSE.

func (*SelectionData) TargetsIncludeImage

func (selectionData *SelectionData) TargetsIncludeImage(writable bool) bool

TargetsIncludeImage: given a SelectionData object holding a list of targets, determines if any of the targets in targets can be used to provide a Pixbuf.

The function takes the following parameters:

  • writable: whether to accept only targets for which GTK+ knows how to convert a pixbuf into the format.

The function returns the following values:

  • ok: TRUE if selection_data holds a list of targets, and a suitable target for images is included, otherwise FALSE.

func (*SelectionData) TargetsIncludeRichText

func (selectionData *SelectionData) TargetsIncludeRichText(buffer *TextBuffer) bool

TargetsIncludeRichText: given a SelectionData object holding a list of targets, determines if any of the targets in targets can be used to provide rich text.

The function takes the following parameters:

  • buffer: TextBuffer.

The function returns the following values:

  • ok: TRUE if selection_data holds a list of targets, and a suitable target for rich text is included, otherwise FALSE.

func (*SelectionData) TargetsIncludeText

func (selectionData *SelectionData) TargetsIncludeText() bool

TargetsIncludeText: given a SelectionData object holding a list of targets, determines if any of the targets in targets can be used to provide text.

The function returns the following values:

  • ok: TRUE if selection_data holds a list of targets, and a suitable target for text is included, otherwise FALSE.

func (*SelectionData) TargetsIncludeURI

func (selectionData *SelectionData) TargetsIncludeURI() bool

TargetsIncludeURI: given a SelectionData object holding a list of targets, determines if any of the targets in targets can be used to provide a list or URIs.

The function returns the following values:

  • ok: TRUE if selection_data holds a list of targets, and a suitable target for URI lists is included, otherwise FALSE.

func (*SelectionData) Text

func (selectionData *SelectionData) Text() string

Text gets the contents of the selection data as a UTF-8 string.

The function returns the following values:

  • utf8 (optional): if the selection data contained a recognized text type and it could be converted to UTF-8, a newly allocated string containing the converted text, otherwise NULL. If the result is non-NULL it must be freed with g_free().

func (*SelectionData) URIs

func (selectionData *SelectionData) URIs() []string

URIs gets the contents of the selection data as array of URIs.

The function returns the following values:

  • utf8s: if the selection data contains a list of URIs, a newly allocated NULL-terminated string array containing the URIs, otherwise NULL. If the result is non-NULL it must be freed with g_strfreev().

type SelectionMode

type SelectionMode C.gint

SelectionMode: used to control what selections users are allowed to make.

const (
	// SelectionNone: no selection is possible.
	SelectionNone SelectionMode = iota
	// SelectionSingle: zero or one element may be selected.
	SelectionSingle
	// SelectionBrowse: exactly one element is selected. In some circumstances,
	// such as initially or during a search operation, it’s possible for no
	// element to be selected with GTK_SELECTION_BROWSE. What is really enforced
	// is that the user can’t deselect a currently selected element except by
	// selecting another element.
	SelectionBrowse
	// SelectionMultiple: any number of elements may be selected. The Ctrl key
	// may be used to enlarge the selection, and Shift key to select between the
	// focus and the child pointed to. Some widgets may also allow Click-drag to
	// select a range of elements.
	SelectionMultiple
)

func (SelectionMode) String

func (s SelectionMode) String() string

String returns the name in string for SelectionMode.

type SensitivityType

type SensitivityType C.gint

SensitivityType determines how GTK+ handles the sensitivity of stepper arrows at the end of range widgets.

const (
	// SensitivityAuto: arrow is made insensitive if the thumb is at the end.
	SensitivityAuto SensitivityType = iota
	// SensitivityOn: arrow is always sensitive.
	SensitivityOn
	// SensitivityOff: arrow is always insensitive.
	SensitivityOff
)

func (SensitivityType) String

func (s SensitivityType) String() string

String returns the name in string for SensitivityType.

type Separator

type Separator struct {
	Widget

	*coreglib.Object
	Orientable
	// contains filtered or unexported fields
}

Separator is a horizontal or vertical separator widget, depending on the value of the Orientable:orientation property, used to group the widgets within a window. It displays a line with a shadow to make it appear sunken into the interface.

CSS nodes

GtkSeparator has a single CSS node with name separator. The node gets one of the .horizontal or .vertical style classes.

func NewSeparator

func NewSeparator(orientation Orientation) *Separator

NewSeparator creates a new Separator with the given orientation.

The function takes the following parameters:

  • orientation separator’s orientation.

The function returns the following values:

  • separator: new Separator.

type SeparatorClass added in v0.0.5

type SeparatorClass struct {
	// contains filtered or unexported fields
}

SeparatorClass: instance of this type is always passed by reference.

func (*SeparatorClass) ParentClass added in v0.0.5

func (s *SeparatorClass) ParentClass() *WidgetClass

type SeparatorMenuItem

type SeparatorMenuItem struct {
	MenuItem
	// contains filtered or unexported fields
}

SeparatorMenuItem is a separator used to group items within a menu. It displays a horizontal line with a shadow to make it appear sunken into the interface.

CSS nodes

GtkSeparatorMenuItem has a single CSS node with name separator.

func NewSeparatorMenuItem

func NewSeparatorMenuItem() *SeparatorMenuItem

NewSeparatorMenuItem creates a new SeparatorMenuItem.

The function returns the following values:

  • separatorMenuItem: new SeparatorMenuItem.

type SeparatorMenuItemClass added in v0.0.5

type SeparatorMenuItemClass struct {
	// contains filtered or unexported fields
}

SeparatorMenuItemClass: instance of this type is always passed by reference.

func (*SeparatorMenuItemClass) ParentClass added in v0.0.5

func (s *SeparatorMenuItemClass) ParentClass() *MenuItemClass

ParentClass: parent class.

type SeparatorMenuItemOverrides added in v0.0.5

type SeparatorMenuItemOverrides struct {
}

SeparatorMenuItemOverrides contains methods that are overridable.

type SeparatorOverrides added in v0.0.5

type SeparatorOverrides struct {
}

SeparatorOverrides contains methods that are overridable.

type SeparatorToolItem

type SeparatorToolItem struct {
	ToolItem
	// contains filtered or unexported fields
}

SeparatorToolItem is a ToolItem that separates groups of other ToolItems. Depending on the theme, a SeparatorToolItem will often look like a vertical line on horizontally docked toolbars.

If the Toolbar child property “expand” is TRUE and the property SeparatorToolItem:draw is FALSE, a SeparatorToolItem will act as a “spring” that forces other items to the ends of the toolbar.

Use gtk_separator_tool_item_new() to create a new SeparatorToolItem.

CSS nodes

GtkSeparatorToolItem has a single CSS node with name separator.

func NewSeparatorToolItem

func NewSeparatorToolItem() *SeparatorToolItem

NewSeparatorToolItem: create a new SeparatorToolItem.

The function returns the following values:

  • separatorToolItem: new SeparatorToolItem.

func (*SeparatorToolItem) Draw

func (item *SeparatorToolItem) Draw() bool

Draw returns whether item is drawn as a line, or just blank. See gtk_separator_tool_item_set_draw().

The function returns the following values:

  • ok: TRUE if item is drawn as a line, or just blank.

func (*SeparatorToolItem) SetDraw

func (item *SeparatorToolItem) SetDraw(draw bool)

SetDraw: whether item is drawn as a vertical line, or just blank. Setting this to FALSE along with gtk_tool_item_set_expand() is useful to create an item that forces following items to the end of the toolbar.

The function takes the following parameters:

  • draw: whether item is drawn as a vertical line.

type SeparatorToolItemClass added in v0.0.5

type SeparatorToolItemClass struct {
	// contains filtered or unexported fields
}

SeparatorToolItemClass: instance of this type is always passed by reference.

func (*SeparatorToolItemClass) ParentClass added in v0.0.5

func (s *SeparatorToolItemClass) ParentClass() *ToolItemClass

ParentClass: parent class.

type SeparatorToolItemOverrides added in v0.0.5

type SeparatorToolItemOverrides struct {
}

SeparatorToolItemOverrides contains methods that are overridable.

type Settings

type Settings struct {
	*coreglib.Object

	StyleProvider
	// contains filtered or unexported fields
}

Settings provide a mechanism to share global settings between applications.

On the X window system, this sharing is realized by an XSettings (http://www.freedesktop.org/wiki/Specifications/xsettings-spec) manager that is usually part of the desktop environment, along with utilities that let the user change these settings. In the absence of an Xsettings manager, GTK+ reads default values for settings from settings.ini files in /etc/gtk-3.0, $XDG_CONFIG_DIRS/gtk-3.0 and $XDG_CONFIG_HOME/gtk-3.0. These files must be valid key files (see File), and have a section called Settings. Themes can also provide default values for settings by installing a settings.ini file next to their gtk.css file.

Applications can override system-wide settings by setting the property of the GtkSettings object with g_object_set(). This should be restricted to special cases though; GtkSettings are not meant as an application configuration facility. When doing so, you need to be aware that settings that are specific to individual widgets may not be available before the widget type has been realized at least once. The following example demonstrates a way to do this:

gtk_init (&argc, &argv);

// make sure the type is realized
g_type_class_unref (g_type_class_ref (GTK_TYPE_IMAGE_MENU_ITEM));

g_object_set (gtk_settings_get_default (), "gtk-enable-animations", FALSE, NULL);

There is one GtkSettings instance per screen. It can be obtained with gtk_settings_get_for_screen(), but in many cases, it is more convenient to use gtk_widget_get_settings(). gtk_settings_get_default() returns the GtkSettings instance for the default screen.

func SettingsGetDefault

func SettingsGetDefault() *Settings

SettingsGetDefault gets the Settings object for the default GDK screen, creating it if necessary. See gtk_settings_get_for_screen().

The function returns the following values:

  • settings (optional) object. If there is no default screen, then returns NULL.

func SettingsGetForScreen

func SettingsGetForScreen(screen *gdk.Screen) *Settings

SettingsGetForScreen gets the Settings object for screen, creating it if necessary.

The function takes the following parameters:

  • screen: Screen.

The function returns the following values:

  • settings Settings object.

func (*Settings) ResetProperty

func (settings *Settings) ResetProperty(name string)

ResetProperty undoes the effect of calling g_object_set() to install an application-specific value for a setting. After this call, the setting will again follow the session-wide value for this setting.

The function takes the following parameters:

  • name of the setting to reset.

func (*Settings) SetDoubleProperty

func (settings *Settings) SetDoubleProperty(name string, vDouble float64, origin string)

SetDoubleProperty: deprecated: Use g_object_set() instead.

The function takes the following parameters:

  • name
  • vDouble
  • origin

func (*Settings) SetLongProperty

func (settings *Settings) SetLongProperty(name string, vLong int32, origin string)

SetLongProperty: deprecated: Use g_object_set() instead.

The function takes the following parameters:

  • name
  • vLong
  • origin

func (*Settings) SetPropertyValue

func (settings *Settings) SetPropertyValue(name string, svalue *SettingsValue)

SetPropertyValue: deprecated: Use g_object_set() instead.

The function takes the following parameters:

  • name
  • svalue

func (*Settings) SetStringProperty

func (settings *Settings) SetStringProperty(name, vString, origin string)

SetStringProperty: deprecated: Use g_object_set() instead.

The function takes the following parameters:

  • name
  • vString
  • origin

type SettingsClass added in v0.0.5

type SettingsClass struct {
	// contains filtered or unexported fields
}

SettingsClass: instance of this type is always passed by reference.

type SettingsOverrides added in v0.0.5

type SettingsOverrides struct {
}

SettingsOverrides contains methods that are overridable.

type SettingsValue

type SettingsValue struct {
	// contains filtered or unexported fields
}

SettingsValue: instance of this type is always passed by reference.

func (*SettingsValue) Origin

func (s *SettingsValue) Origin() string

Origin should be something like “filename:linenumber” for rc files, or e.g. “XProperty” for other sources.

type ShadowType

type ShadowType C.gint

ShadowType: used to change the appearance of an outline typically provided by a Frame.

Note that many themes do not differentiate the appearance of the various shadow types: Either their is no visible shadow (GTK_SHADOW_NONE), or there is (any other value).

const (
	// ShadowNone: no outline.
	ShadowNone ShadowType = iota
	// ShadowIn: outline is bevelled inwards.
	ShadowIn
	// ShadowOut: outline is bevelled outwards like a button.
	ShadowOut
	// ShadowEtchedIn: outline has a sunken 3d appearance.
	ShadowEtchedIn
	// ShadowEtchedOut: outline has a raised 3d appearance.
	ShadowEtchedOut
)

func (ShadowType) String

func (s ShadowType) String() string

String returns the name in string for ShadowType.

type ShortcutLabel

type ShortcutLabel struct {
	Box
	// contains filtered or unexported fields
}

ShortcutLabel is a widget that represents a single keyboard shortcut or gesture in the user interface.

func NewShortcutLabel

func NewShortcutLabel(accelerator string) *ShortcutLabel

NewShortcutLabel creates a new ShortcutLabel with accelerator set.

The function takes the following parameters:

  • accelerator: initial accelerator.

The function returns the following values:

  • shortcutLabel: newly-allocated ShortcutLabel.

func (*ShortcutLabel) Accelerator

func (self *ShortcutLabel) Accelerator() string

Accelerator retrieves the current accelerator of self.

The function returns the following values:

  • utf8 (optional): current accelerator.

func (*ShortcutLabel) DisabledText

func (self *ShortcutLabel) DisabledText() string

DisabledText retrieves the text that is displayed when no accelerator is set.

The function returns the following values:

  • utf8 (optional): current text displayed when no accelerator is set.

func (*ShortcutLabel) SetAccelerator

func (self *ShortcutLabel) SetAccelerator(accelerator string)

SetAccelerator sets the accelerator to be displayed by self.

The function takes the following parameters:

  • accelerator: new accelerator.

func (*ShortcutLabel) SetDisabledText

func (self *ShortcutLabel) SetDisabledText(disabledText string)

SetDisabledText sets the text to be displayed by self when no accelerator is set.

The function takes the following parameters:

  • disabledText: text to be displayed when no accelerator is set.

type ShortcutType

type ShortcutType C.gint

ShortcutType specifies the kind of shortcut that is being described. More values may be added to this enumeration over time.

const (
	// ShortcutAccelerator: shortcut is a keyboard accelerator. The
	// ShortcutsShortcut:accelerator property will be used.
	ShortcutAccelerator ShortcutType = iota
	// ShortcutGesturePinch: shortcut is a pinch gesture. GTK+ provides an icon
	// and subtitle.
	ShortcutGesturePinch
	// ShortcutGestureStretch: shortcut is a stretch gesture. GTK+ provides an
	// icon and subtitle.
	ShortcutGestureStretch
	// ShortcutGestureRotateClockwise: shortcut is a clockwise rotation gesture.
	// GTK+ provides an icon and subtitle.
	ShortcutGestureRotateClockwise
	// ShortcutGestureRotateCounterclockwise: shortcut is a counterclockwise
	// rotation gesture. GTK+ provides an icon and subtitle.
	ShortcutGestureRotateCounterclockwise
	// ShortcutGestureTwoFingerSwipeLeft: shortcut is a two-finger swipe
	// gesture. GTK+ provides an icon and subtitle.
	ShortcutGestureTwoFingerSwipeLeft
	// ShortcutGestureTwoFingerSwipeRight: shortcut is a two-finger swipe
	// gesture. GTK+ provides an icon and subtitle.
	ShortcutGestureTwoFingerSwipeRight
	// ShortcutGesture: shortcut is a gesture. The ShortcutsShortcut:icon
	// property will be used.
	ShortcutGesture
)

func (ShortcutType) String

func (s ShortcutType) String() string

String returns the name in string for ShortcutType.

type ShortcutsGroup

type ShortcutsGroup struct {
	Box
	// contains filtered or unexported fields
}

ShortcutsGroup represents a group of related keyboard shortcuts or gestures. The group has a title. It may optionally be associated with a view of the application, which can be used to show only relevant shortcuts depending on the application context.

This widget is only meant to be used with ShortcutsWindow.

type ShortcutsSection

type ShortcutsSection struct {
	Box
	// contains filtered or unexported fields
}

ShortcutsSection collects all the keyboard shortcuts and gestures for a major application mode. If your application needs multiple sections, you should give each section a unique ShortcutsSection:section-name and a ShortcutsSection:title that can be shown in the section selector of the GtkShortcutsWindow.

The ShortcutsSection:max-height property can be used to influence how the groups in the section are distributed over pages and columns.

This widget is only meant to be used with ShortcutsWindow.

func (*ShortcutsSection) ConnectChangeCurrentPage

func (v *ShortcutsSection) ConnectChangeCurrentPage(f func(object int) (ok bool)) coreglib.SignalHandle

type ShortcutsShortcut

type ShortcutsShortcut struct {
	Box
	// contains filtered or unexported fields
}

ShortcutsShortcut represents a single keyboard shortcut or gesture with a short text. This widget is only meant to be used with ShortcutsWindow.

type ShortcutsWindow

type ShortcutsWindow struct {
	Window
	// contains filtered or unexported fields
}

ShortcutsWindow shows brief information about the keyboard shortcuts and gestures of an application. The shortcuts can be grouped, and you can have multiple sections in this window, corresponding to the major modes of your application.

Additionally, the shortcuts can be filtered by the current view, to avoid showing information that is not relevant in the current application context.

The recommended way to construct a GtkShortcutsWindow is with GtkBuilder, by populating a ShortcutsWindow with one or more ShortcutsSection objects, which contain ShortcutsGroups that in turn contain objects of class ShortcutsShortcut.

A simple example:

! (gedit-shortcuts.png)

This example has as single section. As you can see, the shortcut groups are arranged in columns, and spread across several pages if there are too many to find on a single page.

The .ui file for this example can be found here (https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/shortcuts-gedit.ui).

An example with multiple views:

! (clocks-shortcuts.png)

This example shows a ShortcutsWindow that has been configured to show only the shortcuts relevant to the "stopwatch" view.

The .ui file for this example can be found here (https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/shortcuts-clocks.ui).

An example with multiple sections:

! (builder-shortcuts.png)

This example shows a ShortcutsWindow with two sections, "Editor Shortcuts" and "Terminal Shortcuts".

The .ui file for this example can be found here (https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/shortcuts-builder.ui).

func (*ShortcutsWindow) ConnectClose

func (v *ShortcutsWindow) ConnectClose(f func()) coreglib.SignalHandle

ConnectClose signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user uses a keybinding to close the window.

The default binding for this signal is the Escape key.

func (*ShortcutsWindow) ConnectSearch

func (v *ShortcutsWindow) ConnectSearch(f func()) coreglib.SignalHandle

ConnectSearch signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user uses a keybinding to start a search.

The default binding for this signal is Control-F.

type ShortcutsWindowClass added in v0.0.5

type ShortcutsWindowClass struct {
	// contains filtered or unexported fields
}

ShortcutsWindowClass: instance of this type is always passed by reference.

func (*ShortcutsWindowClass) ParentClass added in v0.0.5

func (s *ShortcutsWindowClass) ParentClass() *WindowClass

type ShortcutsWindowOverrides added in v0.0.5

type ShortcutsWindowOverrides struct {
	Close  func()
	Search func()
}

ShortcutsWindowOverrides contains methods that are overridable.

type SizeGroup

type SizeGroup struct {
	*coreglib.Object

	Buildable
	// contains filtered or unexported fields
}

SizeGroup provides a mechanism for grouping a number of widgets together so they all request the same amount of space. This is typically useful when you want a column of widgets to have the same size, but you can’t use a Grid widget.

In detail, the size requested for each widget in a SizeGroup is the maximum of the sizes that would have been requested for each widget in the size group if they were not in the size group. The mode of the size group (see gtk_size_group_set_mode()) determines whether this applies to the horizontal size, the vertical size, or both sizes.

Note that size groups only affect the amount of space requested, not the size that the widgets finally receive. If you want the widgets in a SizeGroup to actually be the same size, you need to pack them in such a way that they get the size they request and not more. For example, if you are packing your widgets into a table, you would not include the GTK_FILL flag.

SizeGroup objects are referenced by each widget in the size group, so once you have added all widgets to a SizeGroup, you can drop the initial reference to the size group with g_object_unref(). If the widgets in the size group are subsequently destroyed, then they will be removed from the size group and drop their references on the size group; when all widgets have been removed, the size group will be freed.

Widgets can be part of multiple size groups; GTK+ will compute the horizontal size of a widget from the horizontal requisition of all widgets that can be reached from the widget by a chain of size groups of type GTK_SIZE_GROUP_HORIZONTAL or GTK_SIZE_GROUP_BOTH, and the vertical size from the vertical requisition of all widgets that can be reached from the widget by a chain of size groups of type GTK_SIZE_GROUP_VERTICAL or GTK_SIZE_GROUP_BOTH.

Note that only non-contextual sizes of every widget are ever consulted by size groups (since size groups have no knowledge of what size a widget will be allocated in one dimension, it cannot derive how much height a widget will receive for a given width). When grouping widgets that trade height for width in mode GTK_SIZE_GROUP_VERTICAL or GTK_SIZE_GROUP_BOTH: the height for the minimum width will be the requested height for all widgets in the group. The same is of course true when horizontally grouping width for height widgets.

Widgets that trade height-for-width should set a reasonably large minimum width by way of Label:width-chars for instance. Widgets with static sizes as well as widgets that grow (such as ellipsizing text) need no such considerations.

GtkSizeGroup as GtkBuildable

Size groups can be specified in a UI definition by placing an <object> element with class="GtkSizeGroup" somewhere in the UI definition. The widgets that belong to the size group are specified by a <widgets> element that may contain multiple <widget> elements, one for each member of the size group. The ”name” attribute gives the id of the widget.

An example of a UI definition fragment with GtkSizeGroup:

<object class="GtkSizeGroup">
  <property name="mode">GTK_SIZE_GROUP_HORIZONTAL</property>
  <widgets>
    <widget name="radio1"/>
    <widget name="radio2"/>
  </widgets>
</object>.

func NewSizeGroup

func NewSizeGroup(mode SizeGroupMode) *SizeGroup

NewSizeGroup: create a new SizeGroup.

The function takes the following parameters:

  • mode for the new size group.

The function returns the following values:

  • sizeGroup: newly created SizeGroup.

func (*SizeGroup) AddWidget

func (sizeGroup *SizeGroup) AddWidget(widget Widgetter)

AddWidget adds a widget to a SizeGroup. In the future, the requisition of the widget will be determined as the maximum of its requisition and the requisition of the other widgets in the size group. Whether this applies horizontally, vertically, or in both directions depends on the mode of the size group. See gtk_size_group_set_mode().

When the widget is destroyed or no longer referenced elsewhere, it will be removed from the size group.

The function takes the following parameters:

  • widget to add.

func (*SizeGroup) IgnoreHidden deprecated

func (sizeGroup *SizeGroup) IgnoreHidden() bool

IgnoreHidden returns if invisible widgets are ignored when calculating the size.

Deprecated: Measuring the size of hidden widgets has not worked reliably for a long time. In most cases, they will report a size of 0 nowadays, and thus, their size will not affect the other size group members. In effect, size groups will always operate as if this property was TRUE. Use a Stack instead to hide widgets while still having their size taken into account.

The function returns the following values:

  • ok: TRUE if invisible widgets are ignored.

func (*SizeGroup) Mode

func (sizeGroup *SizeGroup) Mode() SizeGroupMode

Mode gets the current mode of the size group. See gtk_size_group_set_mode().

The function returns the following values:

  • sizeGroupMode: current mode of the size group.

func (*SizeGroup) RemoveWidget

func (sizeGroup *SizeGroup) RemoveWidget(widget Widgetter)

RemoveWidget removes a widget from a SizeGroup.

The function takes the following parameters:

  • widget to remove.

func (*SizeGroup) SetIgnoreHidden deprecated

func (sizeGroup *SizeGroup) SetIgnoreHidden(ignoreHidden bool)

SetIgnoreHidden sets whether unmapped widgets should be ignored when calculating the size.

Deprecated: Measuring the size of hidden widgets has not worked reliably for a long time. In most cases, they will report a size of 0 nowadays, and thus, their size will not affect the other size group members. In effect, size groups will always operate as if this property was TRUE. Use a Stack instead to hide widgets while still having their size taken into account.

The function takes the following parameters:

  • ignoreHidden: whether unmapped widgets should be ignored when calculating the size.

func (*SizeGroup) SetMode

func (sizeGroup *SizeGroup) SetMode(mode SizeGroupMode)

SetMode sets the SizeGroupMode of the size group. The mode of the size group determines whether the widgets in the size group should all have the same horizontal requisition (GTK_SIZE_GROUP_HORIZONTAL) all have the same vertical requisition (GTK_SIZE_GROUP_VERTICAL), or should all have the same requisition in both directions (GTK_SIZE_GROUP_BOTH).

The function takes the following parameters:

  • mode to set for the size group.

func (*SizeGroup) Widgets

func (sizeGroup *SizeGroup) Widgets() []Widgetter

Widgets returns the list of widgets associated with size_group.

The function returns the following values:

  • sList of widgets. The list is owned by GTK+ and should not be modified.

type SizeGroupClass added in v0.0.5

type SizeGroupClass struct {
	// contains filtered or unexported fields
}

SizeGroupClass: instance of this type is always passed by reference.

type SizeGroupMode

type SizeGroupMode C.gint

SizeGroupMode: mode of the size group determines the directions in which the size group affects the requested sizes of its component widgets.

const (
	// SizeGroupNone: group has no effect.
	SizeGroupNone SizeGroupMode = iota
	// SizeGroupHorizontal: group affects horizontal requisition.
	SizeGroupHorizontal
	// SizeGroupVertical: group affects vertical requisition.
	SizeGroupVertical
	// SizeGroupBoth: group affects both horizontal and vertical requisition.
	SizeGroupBoth
)

func (SizeGroupMode) String

func (s SizeGroupMode) String() string

String returns the name in string for SizeGroupMode.

type SizeGroupOverrides added in v0.0.5

type SizeGroupOverrides struct {
}

SizeGroupOverrides contains methods that are overridable.

type SizeRequestMode

type SizeRequestMode C.gint

SizeRequestMode specifies a preference for height-for-width or width-for-height geometry management.

const (
	// SizeRequestHeightForWidth: prefer height-for-width geometry management.
	SizeRequestHeightForWidth SizeRequestMode = iota
	// SizeRequestWidthForHeight: prefer width-for-height geometry management.
	SizeRequestWidthForHeight
	// SizeRequestConstantSize: don’t trade height-for-width or
	// width-for-height.
	SizeRequestConstantSize
)

func (SizeRequestMode) String

func (s SizeRequestMode) String() string

String returns the name in string for SizeRequestMode.

type Socket

type Socket struct {
	Container
	// contains filtered or unexported fields
}

Socket: together with Plug, Socket provides the ability to embed widgets from one process into another process in a fashion that is transparent to the user. One process creates a Socket widget and passes that widget’s window ID to the other process, which then creates a Plug with that window ID. Any widgets contained in the Plug then will appear inside the first application’s window.

The socket’s window ID is obtained by using gtk_socket_get_id(). Before using this function, the socket must have been realized, and for hence, have been added to its parent.

Obtaining the window ID of a socket.

GtkWidget *socket = gtk_socket_new ();
gtk_widget_show (socket);
gtk_container_add (GTK_CONTAINER (parent), socket);

// The following call is only necessary if one of
// the ancestors of the socket is not yet visible.
gtk_widget_realize (socket);
g_print ("The ID of the sockets window is %#x\n",
         gtk_socket_get_id (socket));

Note that if you pass the window ID of the socket to another process that will create a plug in the socket, you must make sure that the socket widget is not destroyed until that plug is created. Violating this rule will cause unpredictable consequences, the most likely consequence being that the plug will appear as a separate toplevel window. You can check if the plug has been created by using gtk_socket_get_plug_window(). If it returns a non-NULL value, then the plug has been successfully created inside of the socket.

When GTK+ is notified that the embedded window has been destroyed, then it will destroy the socket as well. You should always, therefore, be prepared for your sockets to be destroyed at any time when the main event loop is running. To prevent this from happening, you can connect to the Socket::plug-removed signal.

The communication between a Socket and a Plug follows the XEmbed Protocol (http://www.freedesktop.org/Standards/xembed-spec). This protocol has also been implemented in other toolkits, e.g. Qt, allowing the same level of integration when embedding a Qt widget in GTK or vice versa.

The Plug and Socket widgets are only available when GTK+ is compiled for the X11 platform and GDK_WINDOWING_X11 is defined. They can only be used on a X11Display. To use Plug and Socket, you need to include the gtk/gtkx.h header.

func NewSocket

func NewSocket() *Socket

NewSocket: create a new empty Socket.

The function returns the following values:

  • socket: new Socket.

func (*Socket) ConnectPlugAdded

func (socket_ *Socket) ConnectPlugAdded(f func()) coreglib.SignalHandle

ConnectPlugAdded: this signal is emitted when a client is successfully added to the socket.

func (*Socket) ConnectPlugRemoved

func (socket_ *Socket) ConnectPlugRemoved(f func() (ok bool)) coreglib.SignalHandle

ConnectPlugRemoved: this signal is emitted when a client is removed from the socket. The default action is to destroy the Socket widget, so if you want to reuse it you must add a signal handler that returns TRUE.

func (*Socket) PlugWindow

func (socket_ *Socket) PlugWindow() gdk.Windower

PlugWindow retrieves the window of the plug. Use this to check if the plug has been created inside of the socket.

The function returns the following values:

  • window (optional) of the plug if available, or NULL.

type SocketAccessible

type SocketAccessible struct {
	ContainerAccessible
	// contains filtered or unexported fields
}

func (*SocketAccessible) Embed

func (socket *SocketAccessible) Embed(path string)

The function takes the following parameters:

type SocketAccessibleClass added in v0.0.5

type SocketAccessibleClass struct {
	// contains filtered or unexported fields
}

SocketAccessibleClass: instance of this type is always passed by reference.

func (*SocketAccessibleClass) ParentClass added in v0.0.5

type SocketAccessibleOverrides added in v0.0.5

type SocketAccessibleOverrides struct {
}

SocketAccessibleOverrides contains methods that are overridable.

type SocketClass added in v0.0.5

type SocketClass struct {
	// contains filtered or unexported fields
}

SocketClass: instance of this type is always passed by reference.

func (*SocketClass) ParentClass added in v0.0.5

func (s *SocketClass) ParentClass() *ContainerClass

type SocketOverrides added in v0.0.5

type SocketOverrides struct {
	PlugAdded func()
	// The function returns the following values:
	//
	PlugRemoved func() bool
}

SocketOverrides contains methods that are overridable.

type SortType

type SortType C.gint

SortType determines the direction of a sort.

const (
	// SortAscending: sorting is in ascending order.
	SortAscending SortType = iota
	// SortDescending: sorting is in descending order.
	SortDescending
)

func (SortType) String

func (s SortType) String() string

String returns the name in string for SortType.

type SpinButton

type SpinButton struct {
	Entry

	*coreglib.Object
	Orientable
	// contains filtered or unexported fields
}

SpinButton is an ideal way to allow the user to set the value of some attribute. Rather than having to directly type a number into a Entry, GtkSpinButton allows the user to click on one of two arrows to increment or decrement the displayed value. A value can still be typed in, with the bonus that it can be checked to ensure it is in a given range.

The main properties of a GtkSpinButton are through an adjustment. See the Adjustment section for more details about an adjustment's properties. Note that GtkSpinButton will by default make its entry large enough to accomodate the lower and upper bounds of the adjustment, which can lead to surprising results. Best practice is to set both the Entry:width-chars and Entry:max-width-chars poperties to the desired number of characters to display in the entry.

CSS nodes

// Provides a function to retrieve a floating point value from a
// GtkSpinButton, and creates a high precision spin button.

gfloat
grab_float_value (GtkSpinButton *button,
                  gpointer       user_data)
{
  return gtk_spin_button_get_value (button);
}

void
create_floating_spin_button (void)
{
  GtkWidget *window, *button;
  GtkAdjustment *adjustment;

  adjustment = gtk_adjustment_new (2.500, 0.0, 5.0, 0.001, 0.1, 0.0);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_container_set_border_width (GTK_CONTAINER (window), 5);

  // creates the spinbutton, with three decimal places
  button = gtk_spin_button_new (adjustment, 0.001, 3);
  gtk_container_add (GTK_CONTAINER (window), button);

  gtk_widget_show_all (window);
}.

func NewSpinButton

func NewSpinButton(adjustment *Adjustment, climbRate float64, digits uint) *SpinButton

NewSpinButton creates a new SpinButton.

The function takes the following parameters:

  • adjustment (optional) object that this spin button should use, or NULL.
  • climbRate specifies by how much the rate of change in the value will accelerate if you continue to hold down an up/down button or arrow key.
  • digits: number of decimal places to display.

The function returns the following values:

  • spinButton: new spin button as a Widget.

func NewSpinButtonWithRange

func NewSpinButtonWithRange(min, max, step float64) *SpinButton

NewSpinButtonWithRange: this is a convenience constructor that allows creation of a numeric SpinButton without manually creating an adjustment. The value is initially set to the minimum value and a page increment of 10 * step is the default. The precision of the spin button is equivalent to the precision of step.

Note that the way in which the precision is derived works best if step is a power of ten. If the resulting precision is not suitable for your needs, use gtk_spin_button_set_digits() to correct it.

The function takes the following parameters:

  • min: minimum allowable value.
  • max: maximum allowable value.
  • step: increment added or subtracted by spinning the widget.

The function returns the following values:

  • spinButton: new spin button as a Widget.

func (*SpinButton) Adjustment

func (spinButton *SpinButton) Adjustment() *Adjustment

Adjustment: get the adjustment associated with a SpinButton.

The function returns the following values:

  • adjustment of spin_button.

func (*SpinButton) Configure

func (spinButton *SpinButton) Configure(adjustment *Adjustment, climbRate float64, digits uint)

Configure changes the properties of an existing spin button. The adjustment, climb rate, and number of decimal places are updated accordingly.

The function takes the following parameters:

  • adjustment (optional) to replace the spin button’s existing adjustment, or NULL to leave its current adjustment unchanged.
  • climbRate: new climb rate.
  • digits: number of decimal places to display in the spin button.

func (*SpinButton) ConnectChangeValue

func (spinButton *SpinButton) ConnectChangeValue(f func(scroll ScrollType)) coreglib.SignalHandle

ConnectChangeValue signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a value change.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically.

The default bindings for this signal are Up/Down and PageUp and/PageDown.

func (*SpinButton) ConnectOutput

func (spinButton *SpinButton) ConnectOutput(f func() (ok bool)) coreglib.SignalHandle

ConnectOutput signal can be used to change to formatting of the value that is displayed in the spin buttons entry.

// show leading zeros
static gboolean
on_output (GtkSpinButton *spin,
           gpointer       data)
{
   GtkAdjustment *adjustment;
   gchar *text;
   int value;

   adjustment = gtk_spin_button_get_adjustment (spin);
   value = (int)gtk_adjustment_get_value (adjustment);
   text = g_strdup_printf ("02d", value);
   gtk_entry_set_text (GTK_ENTRY (spin), text);
   g_free (text);

   return TRUE;
}.

func (*SpinButton) ConnectValueChanged

func (spinButton *SpinButton) ConnectValueChanged(f func()) coreglib.SignalHandle

ConnectValueChanged signal is emitted when the value represented by spinbutton changes. Also see the SpinButton::output signal.

func (*SpinButton) ConnectWrapped

func (spinButton *SpinButton) ConnectWrapped(f func()) coreglib.SignalHandle

ConnectWrapped signal is emitted right after the spinbutton wraps from its maximum to minimum value or vice-versa.

func (*SpinButton) Digits

func (spinButton *SpinButton) Digits() uint

Digits fetches the precision of spin_button. See gtk_spin_button_set_digits().

The function returns the following values:

  • guint: current precision.

func (*SpinButton) Increments

func (spinButton *SpinButton) Increments() (step, page float64)

Increments gets the current step and page the increments used by spin_button. See gtk_spin_button_set_increments().

The function returns the following values:

  • step (optional): location to store step increment, or NULL.
  • page (optional): location to store page increment, or NULL.

func (*SpinButton) Numeric

func (spinButton *SpinButton) Numeric() bool

Numeric returns whether non-numeric text can be typed into the spin button. See gtk_spin_button_set_numeric().

The function returns the following values:

  • ok: TRUE if only numeric text can be entered.

func (*SpinButton) Range

func (spinButton *SpinButton) Range() (min, max float64)

Range gets the range allowed for spin_button. See gtk_spin_button_set_range().

The function returns the following values:

  • min (optional): location to store minimum allowed value, or NULL.
  • max (optional): location to store maximum allowed value, or NULL.

func (*SpinButton) SetAdjustment

func (spinButton *SpinButton) SetAdjustment(adjustment *Adjustment)

SetAdjustment replaces the Adjustment associated with spin_button.

The function takes the following parameters:

  • adjustment to replace the existing adjustment.

func (*SpinButton) SetDigits

func (spinButton *SpinButton) SetDigits(digits uint)

SetDigits: set the precision to be displayed by spin_button. Up to 20 digit precision is allowed.

The function takes the following parameters:

  • digits: number of digits after the decimal point to be displayed for the spin button’s value.

func (*SpinButton) SetIncrements

func (spinButton *SpinButton) SetIncrements(step, page float64)

SetIncrements sets the step and page increments for spin_button. This affects how quickly the value changes when the spin button’s arrows are activated.

The function takes the following parameters:

  • step: increment applied for a button 1 press.
  • page: increment applied for a button 2 press.

func (*SpinButton) SetNumeric

func (spinButton *SpinButton) SetNumeric(numeric bool)

SetNumeric sets the flag that determines if non-numeric text can be typed into the spin button.

The function takes the following parameters:

  • numeric: flag indicating if only numeric entry is allowed.

func (*SpinButton) SetRange

func (spinButton *SpinButton) SetRange(min, max float64)

SetRange sets the minimum and maximum allowable values for spin_button.

If the current value is outside this range, it will be adjusted to fit within the range, otherwise it will remain unchanged.

The function takes the following parameters:

  • min: minimum allowable value.
  • max: maximum allowable value.

func (*SpinButton) SetSnapToTicks

func (spinButton *SpinButton) SetSnapToTicks(snapToTicks bool)

SetSnapToTicks sets the policy as to whether values are corrected to the nearest step increment when a spin button is activated after providing an invalid value.

The function takes the following parameters:

  • snapToTicks: flag indicating if invalid values should be corrected.

func (*SpinButton) SetUpdatePolicy

func (spinButton *SpinButton) SetUpdatePolicy(policy SpinButtonUpdatePolicy)

SetUpdatePolicy sets the update behavior of a spin button. This determines whether the spin button is always updated or only when a valid value is set.

The function takes the following parameters:

  • policy: SpinButtonUpdatePolicy value.

func (*SpinButton) SetValue

func (spinButton *SpinButton) SetValue(value float64)

SetValue sets the value of spin_button.

The function takes the following parameters:

  • value: new value.

func (*SpinButton) SetWrap

func (spinButton *SpinButton) SetWrap(wrap bool)

SetWrap sets the flag that determines if a spin button value wraps around to the opposite limit when the upper or lower limit of the range is exceeded.

The function takes the following parameters:

  • wrap: flag indicating if wrapping behavior is performed.

func (*SpinButton) SnapToTicks

func (spinButton *SpinButton) SnapToTicks() bool

SnapToTicks returns whether the values are corrected to the nearest step. See gtk_spin_button_set_snap_to_ticks().

The function returns the following values:

  • ok: TRUE if values are snapped to the nearest step.

func (*SpinButton) Spin

func (spinButton *SpinButton) Spin(direction SpinType, increment float64)

Spin: increment or decrement a spin button’s value in a specified direction by a specified amount.

The function takes the following parameters:

  • direction indicating the direction to spin.
  • increment: step increment to apply in the specified direction.

func (*SpinButton) Update

func (spinButton *SpinButton) Update()

Update: manually force an update of the spin button.

func (*SpinButton) UpdatePolicy

func (spinButton *SpinButton) UpdatePolicy() SpinButtonUpdatePolicy

UpdatePolicy gets the update behavior of a spin button. See gtk_spin_button_set_update_policy().

The function returns the following values:

  • spinButtonUpdatePolicy: current update policy.

func (*SpinButton) Value

func (spinButton *SpinButton) Value() float64

Value: get the value in the spin_button.

The function returns the following values:

  • gdouble: value of spin_button.

func (*SpinButton) ValueAsInt

func (spinButton *SpinButton) ValueAsInt() int

ValueAsInt: get the value spin_button represented as an integer.

The function returns the following values:

  • gint: value of spin_button.

func (*SpinButton) Wrap

func (spinButton *SpinButton) Wrap() bool

Wrap returns whether the spin button’s value wraps around to the opposite limit when the upper or lower limit of the range is exceeded. See gtk_spin_button_set_wrap().

The function returns the following values:

  • ok: TRUE if the spin button wraps around.

type SpinButtonAccessible

type SpinButtonAccessible struct {
	EntryAccessible

	*coreglib.Object
	atk.Value
	// contains filtered or unexported fields
}

type SpinButtonAccessibleClass added in v0.0.5

type SpinButtonAccessibleClass struct {
	// contains filtered or unexported fields
}

SpinButtonAccessibleClass: instance of this type is always passed by reference.

func (*SpinButtonAccessibleClass) ParentClass added in v0.0.5

type SpinButtonAccessibleOverrides added in v0.0.5

type SpinButtonAccessibleOverrides struct {
}

SpinButtonAccessibleOverrides contains methods that are overridable.

type SpinButtonClass added in v0.0.5

type SpinButtonClass struct {
	// contains filtered or unexported fields
}

SpinButtonClass: instance of this type is always passed by reference.

func (*SpinButtonClass) ParentClass added in v0.0.5

func (s *SpinButtonClass) ParentClass() *EntryClass

type SpinButtonOverrides added in v0.0.5

type SpinButtonOverrides struct {
	// The function takes the following parameters:
	//
	ChangeValue func(scroll ScrollType)
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	Input func(newValue *float64) int
	// The function returns the following values:
	//
	Output       func() int
	ValueChanged func()
	Wrapped      func()
}

SpinButtonOverrides contains methods that are overridable.

type SpinButtonUpdatePolicy

type SpinButtonUpdatePolicy C.gint

SpinButtonUpdatePolicy: spin button update policy determines whether the spin button displays values even if they are outside the bounds of its adjustment. See gtk_spin_button_set_update_policy().

const (
	// UpdateAlways: when refreshing your SpinButton, the value is always
	// displayed.
	UpdateAlways SpinButtonUpdatePolicy = iota
	// UpdateIfValid: when refreshing your SpinButton, the value is only
	// displayed if it is valid within the bounds of the spin button's
	// adjustment.
	UpdateIfValid
)

func (SpinButtonUpdatePolicy) String

func (s SpinButtonUpdatePolicy) String() string

String returns the name in string for SpinButtonUpdatePolicy.

type SpinType

type SpinType C.gint

SpinType values of the GtkSpinType enumeration are used to specify the change to make in gtk_spin_button_spin().

const (
	// SpinStepForward: increment by the adjustments step increment.
	SpinStepForward SpinType = iota
	// SpinStepBackward: decrement by the adjustments step increment.
	SpinStepBackward
	// SpinPageForward: increment by the adjustments page increment.
	SpinPageForward
	// SpinPageBackward: decrement by the adjustments page increment.
	SpinPageBackward
	// SpinHome: go to the adjustments lower bound.
	SpinHome
	// SpinEnd: go to the adjustments upper bound.
	SpinEnd
	// SpinUserDefined: change by a specified amount.
	SpinUserDefined
)

func (SpinType) String

func (s SpinType) String() string

String returns the name in string for SpinType.

type Spinner

type Spinner struct {
	Widget
	// contains filtered or unexported fields
}

Spinner widget displays an icon-size spinning animation. It is often used as an alternative to a ProgressBar for displaying indefinite activity, instead of actual progress.

To start the animation, use gtk_spinner_start(), to stop it use gtk_spinner_stop().

CSS nodes

GtkSpinner has a single CSS node with the name spinner. When the animation is active, the :checked pseudoclass is added to this node.

func NewSpinner

func NewSpinner() *Spinner

NewSpinner returns a new spinner widget. Not yet started.

The function returns the following values:

  • spinner: new Spinner.

func (*Spinner) Start

func (spinner *Spinner) Start()

Start starts the animation of the spinner.

func (*Spinner) Stop

func (spinner *Spinner) Stop()

Stop stops the animation of the spinner.

type SpinnerAccessible

type SpinnerAccessible struct {
	WidgetAccessible

	atk.Image
	// contains filtered or unexported fields
}

type SpinnerAccessibleClass added in v0.0.5

type SpinnerAccessibleClass struct {
	// contains filtered or unexported fields
}

SpinnerAccessibleClass: instance of this type is always passed by reference.

func (*SpinnerAccessibleClass) ParentClass added in v0.0.5

type SpinnerAccessibleOverrides added in v0.0.5

type SpinnerAccessibleOverrides struct {
}

SpinnerAccessibleOverrides contains methods that are overridable.

type SpinnerClass added in v0.0.5

type SpinnerClass struct {
	// contains filtered or unexported fields
}

SpinnerClass: instance of this type is always passed by reference.

func (*SpinnerClass) ParentClass added in v0.0.5

func (s *SpinnerClass) ParentClass() *WidgetClass

type SpinnerOverrides added in v0.0.5

type SpinnerOverrides struct {
}

SpinnerOverrides contains methods that are overridable.

type Stack

type Stack struct {
	Container
	// contains filtered or unexported fields
}

Stack widget is a container which only shows one of its children at a time. In contrast to GtkNotebook, GtkStack does not provide a means for users to change the visible child. Instead, the StackSwitcher widget can be used with GtkStack to provide this functionality.

Transitions between pages can be animated as slides or fades. This can be controlled with gtk_stack_set_transition_type(). These animations respect the Settings:gtk-enable-animations setting.

The GtkStack widget was added in GTK+ 3.10.

CSS nodes

GtkStack has a single CSS node named stack.

func NewStack

func NewStack() *Stack

NewStack creates a new Stack container.

The function returns the following values:

  • stack: new Stack.

func (*Stack) AddNamed

func (stack *Stack) AddNamed(child Widgetter, name string)

AddNamed adds a child to stack. The child is identified by the name.

The function takes the following parameters:

  • child: widget to add.
  • name for child.

func (*Stack) AddTitled

func (stack *Stack) AddTitled(child Widgetter, name, title string)

AddTitled adds a child to stack. The child is identified by the name. The title will be used by StackSwitcher to represent child in a tab bar, so it should be short.

The function takes the following parameters:

  • child: widget to add.
  • name for child.
  • title: human-readable title for child.

func (*Stack) ChildByName

func (stack *Stack) ChildByName(name string) Widgetter

ChildByName finds the child of the Stack with the name given as the argument. Returns NULL if there is no child with this name.

The function takes the following parameters:

  • name of the child to find.

The function returns the following values:

  • widget (optional): requested child of the Stack.

func (*Stack) Hhomogeneous

func (stack *Stack) Hhomogeneous() bool

Hhomogeneous gets whether stack is horizontally homogeneous. See gtk_stack_set_hhomogeneous().

The function returns the following values:

  • ok: whether stack is horizontally homogeneous.

func (*Stack) Homogeneous

func (stack *Stack) Homogeneous() bool

Homogeneous gets whether stack is homogeneous. See gtk_stack_set_homogeneous().

The function returns the following values:

  • ok: whether stack is homogeneous.

func (*Stack) InterpolateSize

func (stack *Stack) InterpolateSize() bool

InterpolateSize returns wether the Stack is set up to interpolate between the sizes of children on page switch.

The function returns the following values:

  • ok: TRUE if child sizes are interpolated.

func (*Stack) SetHhomogeneous

func (stack *Stack) SetHhomogeneous(hhomogeneous bool)

SetHhomogeneous sets the Stack to be horizontally homogeneous or not. If it is homogeneous, the Stack will request the same width for all its children. If it isn't, the stack may change width when a different child becomes visible.

The function takes the following parameters:

  • hhomogeneous: TRUE to make stack horizontally homogeneous.

func (*Stack) SetHomogeneous

func (stack *Stack) SetHomogeneous(homogeneous bool)

SetHomogeneous sets the Stack to be homogeneous or not. If it is homogeneous, the Stack will request the same size for all its children. If it isn't, the stack may change size when a different child becomes visible.

Since 3.16, homogeneity can be controlled separately for horizontal and vertical size, with the Stack:hhomogeneous and Stack:vhomogeneous.

The function takes the following parameters:

  • homogeneous: TRUE to make stack homogeneous.

func (*Stack) SetInterpolateSize

func (stack *Stack) SetInterpolateSize(interpolateSize bool)

SetInterpolateSize sets whether or not stack will interpolate its size when changing the visible child. If the Stack:interpolate-size property is set to TRUE, stack will interpolate its size between the current one and the one it'll take after changing the visible child, according to the set transition duration.

The function takes the following parameters:

  • interpolateSize: new value.

func (*Stack) SetTransitionDuration

func (stack *Stack) SetTransitionDuration(duration uint)

SetTransitionDuration sets the duration that transitions between pages in stack will take.

The function takes the following parameters:

  • duration: new duration, in milliseconds.

func (*Stack) SetTransitionType

func (stack *Stack) SetTransitionType(transition StackTransitionType)

SetTransitionType sets the type of animation that will be used for transitions between pages in stack. Available types include various kinds of fades and slides.

The transition type can be changed without problems at runtime, so it is possible to change the animation based on the page that is about to become current.

The function takes the following parameters:

  • transition: new transition type.

func (*Stack) SetVhomogeneous

func (stack *Stack) SetVhomogeneous(vhomogeneous bool)

SetVhomogeneous sets the Stack to be vertically homogeneous or not. If it is homogeneous, the Stack will request the same height for all its children. If it isn't, the stack may change height when a different child becomes visible.

The function takes the following parameters:

  • vhomogeneous: TRUE to make stack vertically homogeneous.

func (*Stack) SetVisibleChild

func (stack *Stack) SetVisibleChild(child Widgetter)

SetVisibleChild makes child the visible child of stack.

If child is different from the currently visible child, the transition between the two will be animated with the current transition type of stack.

Note that the child widget has to be visible itself (see gtk_widget_show()) in order to become the visible child of stack.

The function takes the following parameters:

  • child of stack.

func (*Stack) SetVisibleChildFull

func (stack *Stack) SetVisibleChildFull(name string, transition StackTransitionType)

SetVisibleChildFull makes the child with the given name visible.

Note that the child widget has to be visible itself (see gtk_widget_show()) in order to become the visible child of stack.

The function takes the following parameters:

  • name of the child to make visible.
  • transition type to use.

func (*Stack) SetVisibleChildName

func (stack *Stack) SetVisibleChildName(name string)

SetVisibleChildName makes the child with the given name visible.

If child is different from the currently visible child, the transition between the two will be animated with the current transition type of stack.

Note that the child widget has to be visible itself (see gtk_widget_show()) in order to become the visible child of stack.

The function takes the following parameters:

  • name of the child to make visible.

func (*Stack) TransitionDuration

func (stack *Stack) TransitionDuration() uint

TransitionDuration returns the amount of time (in milliseconds) that transitions between pages in stack will take.

The function returns the following values:

  • guint: transition duration.

func (*Stack) TransitionRunning

func (stack *Stack) TransitionRunning() bool

TransitionRunning returns whether the stack is currently in a transition from one page to another.

The function returns the following values:

  • ok: TRUE if the transition is currently running, FALSE otherwise.

func (*Stack) TransitionType

func (stack *Stack) TransitionType() StackTransitionType

TransitionType gets the type of animation that will be used for transitions between pages in stack.

The function returns the following values:

  • stackTransitionType: current transition type of stack.

func (*Stack) Vhomogeneous

func (stack *Stack) Vhomogeneous() bool

Vhomogeneous gets whether stack is vertically homogeneous. See gtk_stack_set_vhomogeneous().

The function returns the following values:

  • ok: whether stack is vertically homogeneous.

func (*Stack) VisibleChild

func (stack *Stack) VisibleChild() Widgetter

VisibleChild gets the currently visible child of stack, or NULL if there are no visible children.

The function returns the following values:

  • widget (optional): visible child of the Stack.

func (*Stack) VisibleChildName

func (stack *Stack) VisibleChildName() string

VisibleChildName returns the name of the currently visible child of stack, or NULL if there is no visible child.

The function returns the following values:

  • utf8 (optional): name of the visible child of the Stack.

type StackAccessible

type StackAccessible struct {
	ContainerAccessible
	// contains filtered or unexported fields
}

type StackAccessibleClass added in v0.0.5

type StackAccessibleClass struct {
	// contains filtered or unexported fields
}

StackAccessibleClass: instance of this type is always passed by reference.

func (*StackAccessibleClass) ParentClass added in v0.0.5

type StackAccessibleOverrides added in v0.0.5

type StackAccessibleOverrides struct {
}

StackAccessibleOverrides contains methods that are overridable.

type StackClass added in v0.0.5

type StackClass struct {
	// contains filtered or unexported fields
}

StackClass: instance of this type is always passed by reference.

func (*StackClass) ParentClass added in v0.0.5

func (s *StackClass) ParentClass() *ContainerClass

type StackOverrides added in v0.0.5

type StackOverrides struct {
}

StackOverrides contains methods that are overridable.

type StackSidebar

type StackSidebar struct {
	Bin
	// contains filtered or unexported fields
}

StackSidebar enables you to quickly and easily provide a consistent "sidebar" object for your user interface.

In order to use a GtkStackSidebar, you simply use a GtkStack to organize your UI flow, and add the sidebar to your sidebar area. You can use gtk_stack_sidebar_set_stack() to connect the StackSidebar to the Stack.

CSS nodes

GtkStackSidebar has a single CSS node with name stacksidebar and style class .sidebar.

When circumstances require it, GtkStackSidebar adds the .needs-attention style class to the widgets representing the stack pages.

func NewStackSidebar

func NewStackSidebar() *StackSidebar

NewStackSidebar creates a new sidebar.

The function returns the following values:

  • stackSidebar: new StackSidebar.

func (*StackSidebar) SetStack

func (sidebar *StackSidebar) SetStack(stack *Stack)

SetStack: set the Stack associated with this StackSidebar.

The sidebar widget will automatically update according to the order (packing) and items within the given Stack.

The function takes the following parameters:

  • stack: Stack.

func (*StackSidebar) Stack

func (sidebar *StackSidebar) Stack() *Stack

Stack retrieves the stack. See gtk_stack_sidebar_set_stack().

The function returns the following values:

  • stack (optional): associated Stack or NULL if none has been set explicitly.

type StackSidebarClass added in v0.0.5

type StackSidebarClass struct {
	// contains filtered or unexported fields
}

StackSidebarClass: instance of this type is always passed by reference.

func (*StackSidebarClass) ParentClass added in v0.0.5

func (s *StackSidebarClass) ParentClass() *BinClass

type StackSidebarOverrides added in v0.0.5

type StackSidebarOverrides struct {
}

StackSidebarOverrides contains methods that are overridable.

type StackSwitcher

type StackSwitcher struct {
	Box
	// contains filtered or unexported fields
}

StackSwitcher widget acts as a controller for a Stack; it shows a row of buttons to switch between the various pages of the associated stack widget.

All the content for the buttons comes from the child properties of the Stack; the button visibility in a StackSwitcher widget is controlled by the visibility of the child in the Stack.

It is possible to associate multiple StackSwitcher widgets with the same Stack widget.

The GtkStackSwitcher widget was added in 3.10.

CSS nodes

GtkStackSwitcher has a single CSS node named stackswitcher and style class .stack-switcher.

When circumstances require it, GtkStackSwitcher adds the .needs-attention style class to the widgets representing the stack pages.

func NewStackSwitcher

func NewStackSwitcher() *StackSwitcher

NewStackSwitcher: create a new StackSwitcher.

The function returns the following values:

  • stackSwitcher: new StackSwitcher.

func (*StackSwitcher) SetStack

func (switcher *StackSwitcher) SetStack(stack *Stack)

SetStack sets the stack to control.

The function takes the following parameters:

  • stack (optional): Stack.

func (*StackSwitcher) Stack

func (switcher *StackSwitcher) Stack() *Stack

Stack retrieves the stack. See gtk_stack_switcher_set_stack().

The function returns the following values:

  • stack (optional): stack, or NULL if none has been set explicitly.

type StackSwitcherClass added in v0.0.5

type StackSwitcherClass struct {
	// contains filtered or unexported fields
}

StackSwitcherClass: instance of this type is always passed by reference.

func (*StackSwitcherClass) ParentClass added in v0.0.5

func (s *StackSwitcherClass) ParentClass() *BoxClass

type StackSwitcherOverrides added in v0.0.5

type StackSwitcherOverrides struct {
}

StackSwitcherOverrides contains methods that are overridable.

type StackTransitionType

type StackTransitionType C.gint

StackTransitionType: these enumeration values describe the possible transitions between pages in a Stack widget.

New values may be added to this enumeration over time.

const (
	// StackTransitionTypeNone: no transition.
	StackTransitionTypeNone StackTransitionType = iota
	// StackTransitionTypeCrossfade: cross-fade.
	StackTransitionTypeCrossfade
	// StackTransitionTypeSlideRight: slide from left to right.
	StackTransitionTypeSlideRight
	// StackTransitionTypeSlideLeft: slide from right to left.
	StackTransitionTypeSlideLeft
	// StackTransitionTypeSlideUp: slide from bottom up.
	StackTransitionTypeSlideUp
	// StackTransitionTypeSlideDown: slide from top down.
	StackTransitionTypeSlideDown
	// StackTransitionTypeSlideLeftRight: slide from left or right according to
	// the children order.
	StackTransitionTypeSlideLeftRight
	// StackTransitionTypeSlideUpDown: slide from top down or bottom up
	// according to the order.
	StackTransitionTypeSlideUpDown
	// StackTransitionTypeOverUp: cover the old page by sliding up. Since 3.12.
	StackTransitionTypeOverUp
	// StackTransitionTypeOverDown: cover the old page by sliding down. Since:
	// 3.12.
	StackTransitionTypeOverDown
	// StackTransitionTypeOverLeft: cover the old page by sliding to the left.
	// Since: 3.12.
	StackTransitionTypeOverLeft
	// StackTransitionTypeOverRight: cover the old page by sliding to the right.
	// Since: 3.12.
	StackTransitionTypeOverRight
	// StackTransitionTypeUnderUp: uncover the new page by sliding up. Since
	// 3.12.
	StackTransitionTypeUnderUp
	// StackTransitionTypeUnderDown: uncover the new page by sliding down.
	// Since: 3.12.
	StackTransitionTypeUnderDown
	// StackTransitionTypeUnderLeft: uncover the new page by sliding to the
	// left. Since: 3.12.
	StackTransitionTypeUnderLeft
	// StackTransitionTypeUnderRight: uncover the new page by sliding to the
	// right. Since: 3.12.
	StackTransitionTypeUnderRight
	// StackTransitionTypeOverUpDown: cover the old page sliding up or uncover
	// the new page sliding down, according to order. Since: 3.12.
	StackTransitionTypeOverUpDown
	// StackTransitionTypeOverDownUp: cover the old page sliding down or uncover
	// the new page sliding up, according to order. Since: 3.14.
	StackTransitionTypeOverDownUp
	// StackTransitionTypeOverLeftRight: cover the old page sliding left or
	// uncover the new page sliding right, according to order. Since: 3.14.
	StackTransitionTypeOverLeftRight
	// StackTransitionTypeOverRightLeft: cover the old page sliding right or
	// uncover the new page sliding left, according to order. Since: 3.14.
	StackTransitionTypeOverRightLeft
)

func (StackTransitionType) String

func (s StackTransitionType) String() string

String returns the name in string for StackTransitionType.

type StateFlags

type StateFlags C.guint

StateFlags describes a widget state. Widget states are used to match the widget against CSS pseudo-classes. Note that GTK extends the regular CSS classes and sometimes uses different names.

const (
	// StateFlagNormal: state during normal operation.
	StateFlagNormal StateFlags = 0b0
	// StateFlagActive: widget is active.
	StateFlagActive StateFlags = 0b1
	// StateFlagPrelight: widget has a mouse pointer over it.
	StateFlagPrelight StateFlags = 0b10
	// StateFlagSelected: widget is selected.
	StateFlagSelected StateFlags = 0b100
	// StateFlagInsensitive: widget is insensitive.
	StateFlagInsensitive StateFlags = 0b1000
	// StateFlagInconsistent: widget is inconsistent.
	StateFlagInconsistent StateFlags = 0b10000
	// StateFlagFocused: widget has the keyboard focus.
	StateFlagFocused StateFlags = 0b100000
	// StateFlagBackdrop: widget is in a background toplevel window.
	StateFlagBackdrop StateFlags = 0b1000000
	// StateFlagDirLTR: widget is in left-to-right text direction. Since 3.8.
	StateFlagDirLTR StateFlags = 0b10000000
	// StateFlagDirRTL: widget is in right-to-left text direction. Since 3.8.
	StateFlagDirRTL StateFlags = 0b100000000
	// StateFlagLink: widget is a link. Since 3.12.
	StateFlagLink StateFlags = 0b1000000000
	// StateFlagVisited: location the widget points to has already been visited.
	// Since 3.12.
	StateFlagVisited StateFlags = 0b10000000000
	// StateFlagChecked: widget is checked. Since 3.14.
	StateFlagChecked StateFlags = 0b100000000000
	// StateFlagDropActive: widget is highlighted as a drop target for DND.
	// Since 3.20.
	StateFlagDropActive StateFlags = 0b1000000000000
)

func (StateFlags) Has

func (s StateFlags) Has(other StateFlags) bool

Has returns true if s contains other.

func (StateFlags) String

func (s StateFlags) String() string

String returns the names in string for StateFlags.

type StateType deprecated

type StateType C.gint

StateType: this type indicates the current state of a widget; the state determines how the widget is drawn. The StateType enumeration is also used to identify different colors in a Style for drawing, so states can be used for subparts of a widget as well as entire widgets.

Deprecated: All APIs that are using this enumeration have been deprecated in favor of alternatives using StateFlags.

const (
	// StateNormal: state during normal operation.
	StateNormal StateType = iota
	// StateActive: state of a currently active widget, such as a depressed
	// button.
	StateActive
	// StatePrelight: state indicating that the mouse pointer is over the widget
	// and the widget will respond to mouse clicks.
	StatePrelight
	// StateSelected: state of a selected item, such the selected row in a list.
	StateSelected
	// StateInsensitive: state indicating that the widget is unresponsive to
	// user actions.
	StateInsensitive
	// StateInconsistent: widget is inconsistent, such as checkbuttons or
	// radiobuttons that aren’t either set to TRUE nor FALSE, or buttons
	// requiring the user attention.
	StateInconsistent
	// StateFocused: widget has the keyboard focus.
	StateFocused
)

func RCParseState deprecated

func RCParseState(scanner *glib.Scanner) (StateType, uint)

RCParseState parses a StateType variable from the format expected in a RC file.

Deprecated: Use CssProvider instead.

The function takes the following parameters:

  • scanner (must be initialized for parsing an RC file).

The function returns the following values:

  • state: pointer to a StateType variable in which to store the result.
  • guint: G_TOKEN_NONE if parsing succeeded, otherwise the token that was expected but not found.

func (StateType) String

func (s StateType) String() string

String returns the name in string for StateType.

type StatusIcon

type StatusIcon struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

StatusIcon: “system tray” or notification area is normally used for transient icons that indicate some special state. For example, a system tray icon might appear to tell the user that they have new mail, or have an incoming instant message, or something along those lines. The basic idea is that creating an icon in the notification area is less annoying than popping up a dialog.

A StatusIcon object can be used to display an icon in a “system tray”. The icon can have a tooltip, and the user can interact with it by activating it or popping up a context menu.

It is very important to notice that status icons depend on the existence of a notification area being available to the user; you should not use status icons as the only way to convey critical information regarding your application, as the notification area may not exist on the user's environment, or may have been removed. You should always check that a status icon has been embedded into a notification area by using gtk_status_icon_is_embedded(), and gracefully recover if the function returns FALSE.

On X11, the implementation follows the FreeDesktop System Tray Specification (http://www.freedesktop.org/wiki/Specifications/systemtray-spec). Implementations of the “tray” side of this specification can be found e.g. in the GNOME 2 and KDE panel applications.

Note that a GtkStatusIcon is not a widget, but just a #GObject. Making it a widget would be impractical, since the system tray on Windows doesn’t allow to embed arbitrary widgets.

GtkStatusIcon has been deprecated in 3.14. You should consider using notifications or more modern platform-specific APIs instead. GLib provides the #GNotification API which works well with Application on multiple platforms and environments, and should be the preferred mechanism to notify the users of transient status updates. See this HowDoI (https://wiki.gnome.org/HowDoI/GNotification) for code examples.

func NewStatusIcon deprecated

func NewStatusIcon() *StatusIcon

NewStatusIcon creates an empty status icon object.

Deprecated: Use #GNotification and Application to provide status notifications.

The function returns the following values:

  • statusIcon: new StatusIcon.

func NewStatusIconFromFile deprecated

func NewStatusIconFromFile(filename string) *StatusIcon

NewStatusIconFromFile creates a status icon displaying the file filename.

The image will be scaled down to fit in the available space in the notification area, if necessary.

Deprecated: Use #GNotification and Application to provide status notifications.

The function takes the following parameters:

  • filename: filename.

The function returns the following values:

  • statusIcon: new StatusIcon.

func NewStatusIconFromGIcon deprecated

func NewStatusIconFromGIcon(icon gio.Iconner) *StatusIcon

NewStatusIconFromGIcon creates a status icon displaying a #GIcon. If the icon is a themed icon, it will be updated when the theme changes.

Deprecated: Use #GNotification and Application to provide status notifications.

The function takes the following parameters:

  • icon: #GIcon.

The function returns the following values:

  • statusIcon: new StatusIcon.

func NewStatusIconFromIconName deprecated

func NewStatusIconFromIconName(iconName string) *StatusIcon

NewStatusIconFromIconName creates a status icon displaying an icon from the current icon theme. If the current icon theme is changed, the icon will be updated appropriately.

Deprecated: Use #GNotification and Application to provide status notifications.

The function takes the following parameters:

  • iconName: icon name.

The function returns the following values:

  • statusIcon: new StatusIcon.

func NewStatusIconFromPixbuf deprecated

func NewStatusIconFromPixbuf(pixbuf *gdkpixbuf.Pixbuf) *StatusIcon

NewStatusIconFromPixbuf creates a status icon displaying pixbuf.

The image will be scaled down to fit in the available space in the notification area, if necessary.

Deprecated: Use #GNotification and Application to provide status notifications.

The function takes the following parameters:

  • pixbuf: Pixbuf.

The function returns the following values:

  • statusIcon: new StatusIcon.

func NewStatusIconFromStock deprecated

func NewStatusIconFromStock(stockId string) *StatusIcon

NewStatusIconFromStock creates a status icon displaying a stock icon. Sample stock icon names are K_STOCK_OPEN, K_STOCK_QUIT. You can register your own stock icon names, see gtk_icon_factory_add_default() and gtk_icon_factory_add().

Deprecated: Use #GNotification and Application to provide status notifications.

The function takes the following parameters:

  • stockId: stock icon id.

The function returns the following values:

  • statusIcon: new StatusIcon.

func (*StatusIcon) ConnectActivate

func (statusIcon *StatusIcon) ConnectActivate(f func()) coreglib.SignalHandle

ConnectActivate gets emitted when the user activates the status icon. If and how status icons can activated is platform-dependent.

Unlike most G_SIGNAL_ACTION signals, this signal is meant to be used by applications and should be wrapped by language bindings.

func (*StatusIcon) ConnectButtonPressEvent

func (statusIcon *StatusIcon) ConnectButtonPressEvent(f func(event *gdk.EventButton) (ok bool)) coreglib.SignalHandle

ConnectButtonPressEvent signal will be emitted when a button (typically from a mouse) is pressed.

Whether this event is emitted is platform-dependent. Use the ::activate and ::popup-menu signals in preference.

func (*StatusIcon) ConnectButtonReleaseEvent

func (statusIcon *StatusIcon) ConnectButtonReleaseEvent(f func(event *gdk.EventButton) (ok bool)) coreglib.SignalHandle

ConnectButtonReleaseEvent signal will be emitted when a button (typically from a mouse) is released.

Whether this event is emitted is platform-dependent. Use the ::activate and ::popup-menu signals in preference.

func (*StatusIcon) ConnectPopupMenu

func (statusIcon *StatusIcon) ConnectPopupMenu(f func(button, activateTime uint)) coreglib.SignalHandle

ConnectPopupMenu gets emitted when the user brings up the context menu of the status icon. Whether status icons can have context menus and how these are activated is platform-dependent.

The button and activate_time parameters should be passed as the last to arguments to gtk_menu_popup().

Unlike most G_SIGNAL_ACTION signals, this signal is meant to be used by applications and should be wrapped by language bindings.

func (*StatusIcon) ConnectQueryTooltip

func (statusIcon *StatusIcon) ConnectQueryTooltip(f func(x, y int, keyboardMode bool, tooltip *Tooltip) (ok bool)) coreglib.SignalHandle

ConnectQueryTooltip is emitted when the hover timeout has expired with the cursor hovering above status_icon; or emitted when status_icon got focus in keyboard mode.

Using the given coordinates, the signal handler should determine whether a tooltip should be shown for status_icon. If this is the case TRUE should be returned, FALSE otherwise. Note that if keyboard_mode is TRUE, the values of x and y are undefined and should not be used.

The signal handler is free to manipulate tooltip with the therefore destined function calls.

Whether this signal is emitted is platform-dependent. For plain text tooltips, use StatusIcon:tooltip-text in preference.

func (*StatusIcon) ConnectScrollEvent

func (statusIcon *StatusIcon) ConnectScrollEvent(f func(event *gdk.EventScroll) (ok bool)) coreglib.SignalHandle

ConnectScrollEvent signal is emitted when a button in the 4 to 7 range is pressed. Wheel mice are usually configured to generate button press events for buttons 4 and 5 when the wheel is turned.

Whether this event is emitted is platform-dependent.

func (*StatusIcon) ConnectSizeChanged

func (statusIcon *StatusIcon) ConnectSizeChanged(f func(size int) (ok bool)) coreglib.SignalHandle

ConnectSizeChanged gets emitted when the size available for the image changes, e.g. because the notification area got resized.

func (*StatusIcon) GIcon deprecated

func (statusIcon *StatusIcon) GIcon() *gio.Icon

GIcon retrieves the #GIcon being displayed by the StatusIcon. The storage type of the status icon must be GTK_IMAGE_EMPTY or GTK_IMAGE_GICON (see gtk_status_icon_get_storage_type()). The caller of this function does not own a reference to the returned #GIcon.

If this function fails, icon is left unchanged;

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function returns the following values:

  • icon (optional): displayed icon, or NULL if the image is empty.

func (*StatusIcon) Geometry deprecated

func (statusIcon *StatusIcon) Geometry() (*gdk.Screen, *gdk.Rectangle, Orientation, bool)

Geometry obtains information about the location of the status icon on screen. This information can be used to e.g. position popups like notification bubbles.

See gtk_status_icon_position_menu() for a more convenient alternative for positioning menus.

Note that some platforms do not allow GTK+ to provide this information, and even on platforms that do allow it, the information is not reliable unless the status icon is embedded in a notification area, see gtk_status_icon_is_embedded().

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function, as the platform is responsible for the presentation of notifications.

The function returns the following values:

  • screen (optional): return location for the screen, or NULL if the information is not needed.
  • area (optional): return location for the area occupied by the status icon, or NULL.
  • orientation (optional): return location for the orientation of the panel in which the status icon is embedded, or NULL. A panel at the top or bottom of the screen is horizontal, a panel at the left or right is vertical.
  • ok: TRUE if the location information has been filled in.

func (*StatusIcon) HasTooltip deprecated

func (statusIcon *StatusIcon) HasTooltip() bool

HasTooltip returns the current value of the has-tooltip property. See StatusIcon:has-tooltip for more information.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function returns the following values:

  • ok: current value of has-tooltip on status_icon.

func (*StatusIcon) IconName deprecated

func (statusIcon *StatusIcon) IconName() string

IconName gets the name of the icon being displayed by the StatusIcon. The storage type of the status icon must be GTK_IMAGE_EMPTY or GTK_IMAGE_ICON_NAME (see gtk_status_icon_get_storage_type()). The returned string is owned by the StatusIcon and should not be freed or modified.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function returns the following values:

  • utf8 (optional): name of the displayed icon, or NULL if the image is empty.

func (*StatusIcon) IsEmbedded deprecated

func (statusIcon *StatusIcon) IsEmbedded() bool

IsEmbedded returns whether the status icon is embedded in a notification area.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function returns the following values:

  • ok: TRUE if the status icon is embedded in a notification area.

func (*StatusIcon) Pixbuf deprecated

func (statusIcon *StatusIcon) Pixbuf() *gdkpixbuf.Pixbuf

Pixbuf gets the Pixbuf being displayed by the StatusIcon. The storage type of the status icon must be GTK_IMAGE_EMPTY or GTK_IMAGE_PIXBUF (see gtk_status_icon_get_storage_type()). The caller of this function does not own a reference to the returned pixbuf.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function returns the following values:

  • pixbuf (optional): displayed pixbuf, or NULL if the image is empty.

func (*StatusIcon) Screen deprecated

func (statusIcon *StatusIcon) Screen() *gdk.Screen

Screen returns the Screen associated with status_icon.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function, as notifications are managed by the platform.

The function returns the following values:

  • screen: Screen.

func (*StatusIcon) SetFromFile deprecated

func (statusIcon *StatusIcon) SetFromFile(filename string)

SetFromFile makes status_icon display the file filename. See gtk_status_icon_new_from_file() for details.

Deprecated: Use #GNotification and Application to provide status notifications; you can use g_notification_set_icon() to associate a #GIcon with a notification.

The function takes the following parameters:

  • filename: filename.

func (*StatusIcon) SetFromGIcon deprecated

func (statusIcon *StatusIcon) SetFromGIcon(icon gio.Iconner)

SetFromGIcon makes status_icon display the #GIcon. See gtk_status_icon_new_from_gicon() for details.

Deprecated: Use #GNotification and Application to provide status notifications; you can use g_notification_set_icon() to associate a #GIcon with a notification.

The function takes the following parameters:

  • icon: GIcon.

func (*StatusIcon) SetFromIconName deprecated

func (statusIcon *StatusIcon) SetFromIconName(iconName string)

SetFromIconName makes status_icon display the icon named icon_name from the current icon theme. See gtk_status_icon_new_from_icon_name() for details.

Deprecated: Use #GNotification and Application to provide status notifications; you can use g_notification_set_icon() to associate a #GIcon with a notification.

The function takes the following parameters:

  • iconName: icon name.

func (*StatusIcon) SetFromPixbuf deprecated

func (statusIcon *StatusIcon) SetFromPixbuf(pixbuf *gdkpixbuf.Pixbuf)

SetFromPixbuf makes status_icon display pixbuf. See gtk_status_icon_new_from_pixbuf() for details.

Deprecated: Use #GNotification and Application to provide status notifications; you can use g_notification_set_icon() to associate a #GIcon with a notification.

The function takes the following parameters:

  • pixbuf (optional) or NULL.

func (*StatusIcon) SetFromStock deprecated

func (statusIcon *StatusIcon) SetFromStock(stockId string)

SetFromStock makes status_icon display the stock icon with the id stock_id. See gtk_status_icon_new_from_stock() for details.

Deprecated: Use gtk_status_icon_set_from_icon_name() instead.

The function takes the following parameters:

  • stockId: stock icon id.

func (*StatusIcon) SetHasTooltip deprecated

func (statusIcon *StatusIcon) SetHasTooltip(hasTooltip bool)

SetHasTooltip sets the has-tooltip property on status_icon to has_tooltip. See StatusIcon:has-tooltip for more information.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function, but notifications can display an arbitrary amount of text using g_notification_set_body().

The function takes the following parameters:

  • hasTooltip: whether or not status_icon has a tooltip.

func (*StatusIcon) SetName deprecated

func (statusIcon *StatusIcon) SetName(name string)

SetName sets the name of this tray icon. This should be a string identifying this icon. It is may be used for sorting the icons in the tray and will not be shown to the user.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function, as notifications are associated with a unique application identifier by #GApplication.

The function takes the following parameters:

  • name: name.

func (*StatusIcon) SetScreen deprecated

func (statusIcon *StatusIcon) SetScreen(screen *gdk.Screen)

SetScreen sets the Screen where status_icon is displayed; if the icon is already mapped, it will be unmapped, and then remapped on the new screen.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function, as GTK typically only has one Screen and notifications are managed by the platform.

The function takes the following parameters:

  • screen: Screen.

func (*StatusIcon) SetTitle deprecated

func (statusIcon *StatusIcon) SetTitle(title string)

SetTitle sets the title of this tray icon. This should be a short, human-readable, localized string describing the tray icon. It may be used by tools like screen readers to render the tray icon.

Deprecated: Use #GNotification and Application to provide status notifications; you should use g_notification_set_title() and g_notification_set_body() to present text inside your notification.

The function takes the following parameters:

  • title: title.

func (*StatusIcon) SetTooltipMarkup deprecated

func (statusIcon *StatusIcon) SetTooltipMarkup(markup string)

SetTooltipMarkup sets markup as the contents of the tooltip, which is marked up with the [Pango text markup language][PangoMarkupFormat].

This function will take care of setting StatusIcon:has-tooltip to TRUE and of the default handler for the StatusIcon::query-tooltip signal.

See also the StatusIcon:tooltip-markup property and gtk_tooltip_set_markup().

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function takes the following parameters:

  • markup (optional) contents of the tooltip for status_icon, or NULL.

func (*StatusIcon) SetTooltipText deprecated

func (statusIcon *StatusIcon) SetTooltipText(text string)

SetTooltipText sets text as the contents of the tooltip.

This function will take care of setting StatusIcon:has-tooltip to TRUE and of the default handler for the StatusIcon::query-tooltip signal.

See also the StatusIcon:tooltip-text property and gtk_tooltip_set_text().

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function takes the following parameters:

  • text contents of the tooltip for status_icon.

func (*StatusIcon) SetVisible deprecated

func (statusIcon *StatusIcon) SetVisible(visible bool)

SetVisible shows or hides a status icon.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function, as notifications are managed by the platform.

The function takes the following parameters:

  • visible: TRUE to show the status icon, FALSE to hide it.

func (*StatusIcon) Size deprecated

func (statusIcon *StatusIcon) Size() int

Size gets the size in pixels that is available for the image. Stock icons and named icons adapt their size automatically if the size of the notification area changes. For other storage types, the size-changed signal can be used to react to size changes.

Note that the returned size is only meaningful while the status icon is embedded (see gtk_status_icon_is_embedded()).

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function, as the representation of a notification is left to the platform.

The function returns the following values:

  • gint: size that is available for the image.

func (*StatusIcon) Stock deprecated

func (statusIcon *StatusIcon) Stock() string

Stock gets the id of the stock icon being displayed by the StatusIcon. The storage type of the status icon must be GTK_IMAGE_EMPTY or GTK_IMAGE_STOCK (see gtk_status_icon_get_storage_type()). The returned string is owned by the StatusIcon and should not be freed or modified.

Deprecated: Use gtk_status_icon_get_icon_name() instead.

The function returns the following values:

  • utf8 (optional): stock id of the displayed stock icon, or NULL if the image is empty.

func (*StatusIcon) StorageType deprecated

func (statusIcon *StatusIcon) StorageType() ImageType

StorageType gets the type of representation being used by the StatusIcon to store image data. If the StatusIcon has no image data, the return value will be GTK_IMAGE_EMPTY.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function, and #GNotification only supports #GIcon instances.

The function returns the following values:

  • imageType: image representation being used.

func (*StatusIcon) Title deprecated

func (statusIcon *StatusIcon) Title() string

Title gets the title of this tray icon. See gtk_status_icon_set_title().

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function returns the following values:

  • utf8: title of the status icon.

func (*StatusIcon) TooltipMarkup deprecated

func (statusIcon *StatusIcon) TooltipMarkup() string

TooltipMarkup gets the contents of the tooltip for status_icon.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function returns the following values:

  • utf8 (optional): tooltip text, or NULL. You should free the returned string with g_free() when done.

func (*StatusIcon) TooltipText deprecated

func (statusIcon *StatusIcon) TooltipText() string

TooltipText gets the contents of the tooltip for status_icon.

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function returns the following values:

  • utf8 (optional): tooltip text, or NULL. You should free the returned string with g_free() when done.

func (*StatusIcon) Visible deprecated

func (statusIcon *StatusIcon) Visible() bool

Visible returns whether the status icon is visible or not. Note that being visible does not guarantee that the user can actually see the icon, see also gtk_status_icon_is_embedded().

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function returns the following values:

  • ok: TRUE if the status icon is visible.

func (*StatusIcon) X11WindowID deprecated

func (statusIcon *StatusIcon) X11WindowID() uint32

X11WindowID: this function is only useful on the X11/freedesktop.org platform.

It returns a window ID for the widget in the underlying status icon implementation. This is useful for the Galago notification service, which can send a window ID in the protocol in order for the server to position notification windows pointing to a status icon reliably.

This function is not intended for other use cases which are more likely to be met by one of the non-X11 specific methods, such as gtk_status_icon_position_menu().

Deprecated: Use #GNotification and Application to provide status notifications; there is no direct replacement for this function.

The function returns the following values:

  • guint32: 32 bit unsigned integer identifier for the underlying X11 Window.

type StatusIconClass added in v0.0.5

type StatusIconClass struct {
	// contains filtered or unexported fields
}

StatusIconClass: instance of this type is always passed by reference.

type StatusIconOverrides added in v0.0.5

type StatusIconOverrides struct {
	Activate func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ButtonPressEvent func(event *gdk.EventButton) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ButtonReleaseEvent func(event *gdk.EventButton) bool
	// The function takes the following parameters:
	//
	//   - button
	//   - activateTime
	//
	PopupMenu func(button uint, activateTime uint32)
	// The function takes the following parameters:
	//
	//   - x
	//   - y
	//   - keyboardMode
	//   - tooltip
	//
	// The function returns the following values:
	//
	QueryTooltip func(x, y int, keyboardMode bool, tooltip *Tooltip) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ScrollEvent func(event *gdk.EventScroll) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	SizeChanged func(size int) bool
}

StatusIconOverrides contains methods that are overridable.

type Statusbar

type Statusbar struct {
	Box
	// contains filtered or unexported fields
}

Statusbar is usually placed along the bottom of an application's main Window. It may provide a regular commentary of the application's status (as is usually the case in a web browser, for example), or may be used to simply output a message when the status changes, (when an upload is complete in an FTP client, for example).

Status bars in GTK+ maintain a stack of messages. The message at the top of the each bar’s stack is the one that will currently be displayed.

Any messages added to a statusbar’s stack must specify a context id that is used to uniquely identify the source of a message. This context id can be generated by gtk_statusbar_get_context_id(), given a message and the statusbar that it will be added to. Note that messages are stored in a stack, and when choosing which message to display, the stack structure is adhered to, regardless of the context identifier of a message.

One could say that a statusbar maintains one stack of messages for display purposes, but allows multiple message producers to maintain sub-stacks of the messages they produced (via context ids).

Status bars are created using gtk_statusbar_new().

Messages are added to the bar’s stack with gtk_statusbar_push().

The message at the top of the stack can be removed using gtk_statusbar_pop(). A message can be removed from anywhere in the stack if its message id was recorded at the time it was added. This is done using gtk_statusbar_remove().

CSS node

GtkStatusbar has a single CSS node with name statusbar.

func NewStatusbar

func NewStatusbar() *Statusbar

NewStatusbar creates a new Statusbar ready for messages.

The function returns the following values:

  • statusbar: new Statusbar.

func (*Statusbar) ConnectTextPopped

func (statusbar *Statusbar) ConnectTextPopped(f func(contextId uint, text string)) coreglib.SignalHandle

ConnectTextPopped is emitted whenever a new message is popped off a statusbar's stack.

func (*Statusbar) ConnectTextPushed

func (statusbar *Statusbar) ConnectTextPushed(f func(contextId uint, text string)) coreglib.SignalHandle

ConnectTextPushed is emitted whenever a new message gets pushed onto a statusbar's stack.

func (*Statusbar) ContextID

func (statusbar *Statusbar) ContextID(contextDescription string) uint

ContextID returns a new context identifier, given a description of the actual context. Note that the description is not shown in the UI.

The function takes the following parameters:

  • contextDescription: textual description of what context the new message is being used in.

The function returns the following values:

  • guint: integer id.

func (*Statusbar) MessageArea

func (statusbar *Statusbar) MessageArea() *Box

MessageArea retrieves the box containing the label widget.

The function returns the following values:

  • box: Box.

func (*Statusbar) Pop

func (statusbar *Statusbar) Pop(contextId uint)

Pop removes the first message in the Statusbar’s stack with the given context id.

Note that this may not change the displayed message, if the message at the top of the stack has a different context id.

The function takes the following parameters:

  • contextId: context identifier.

func (*Statusbar) Push

func (statusbar *Statusbar) Push(contextId uint, text string) uint

Push pushes a new message onto a statusbar’s stack.

The function takes the following parameters:

  • contextId message’s context id, as returned by gtk_statusbar_get_context_id().
  • text: message to add to the statusbar.

The function returns the following values:

  • guint: message id that can be used with gtk_statusbar_remove().

func (*Statusbar) Remove

func (statusbar *Statusbar) Remove(contextId, messageId uint)

Remove forces the removal of a message from a statusbar’s stack. The exact context_id and message_id must be specified.

The function takes the following parameters:

  • contextId: context identifier.
  • messageId: message identifier, as returned by gtk_statusbar_push().

func (*Statusbar) RemoveAll

func (statusbar *Statusbar) RemoveAll(contextId uint)

RemoveAll forces the removal of all messages from a statusbar's stack with the exact context_id.

The function takes the following parameters:

  • contextId: context identifier.

type StatusbarAccessible

type StatusbarAccessible struct {
	ContainerAccessible
	// contains filtered or unexported fields
}

type StatusbarAccessibleClass added in v0.0.5

type StatusbarAccessibleClass struct {
	// contains filtered or unexported fields
}

StatusbarAccessibleClass: instance of this type is always passed by reference.

func (*StatusbarAccessibleClass) ParentClass added in v0.0.5

type StatusbarAccessibleOverrides added in v0.0.5

type StatusbarAccessibleOverrides struct {
}

StatusbarAccessibleOverrides contains methods that are overridable.

type StatusbarClass added in v0.0.5

type StatusbarClass struct {
	// contains filtered or unexported fields
}

StatusbarClass: instance of this type is always passed by reference.

func (*StatusbarClass) ParentClass added in v0.0.5

func (s *StatusbarClass) ParentClass() *BoxClass

func (*StatusbarClass) Reserved added in v0.0.5

func (s *StatusbarClass) Reserved() unsafe.Pointer

type StatusbarOverrides added in v0.0.5

type StatusbarOverrides struct {
	// The function takes the following parameters:
	//
	//   - contextId
	//   - text
	//
	TextPopped func(contextId uint, text string)
	// The function takes the following parameters:
	//
	//   - contextId
	//   - text
	//
	TextPushed func(contextId uint, text string)
}

StatusbarOverrides contains methods that are overridable.

type Stock

type Stock = string

type StockItem

type StockItem struct {
	// contains filtered or unexported fields
}

StockItem: deprecated: since version 3.10.

An instance of this type is always passed by reference.

func StockLookup deprecated

func StockLookup(stockId string) (*StockItem, bool)

StockLookup fills item with the registered values for stock_id, returning TRUE if stock_id was known.

Deprecated: since version 3.10.

The function takes the following parameters:

  • stockId: stock item name.

The function returns the following values:

  • item: stock item to initialize with values.
  • ok: TRUE if item was initialized.

func (*StockItem) Keyval

func (s *StockItem) Keyval() uint

Keyval: keyboard accelerator.

func (*StockItem) Label

func (s *StockItem) Label() string

Label: user visible label.

func (*StockItem) Modifier

func (s *StockItem) Modifier() gdk.ModifierType

Modifier type for keyboard accelerator.

func (*StockItem) SetKeyval

func (s *StockItem) SetKeyval(keyval uint)

Keyval: keyboard accelerator.

func (*StockItem) StockID

func (s *StockItem) StockID() string

StockID: identifier.

func (*StockItem) TranslationDomain

func (s *StockItem) TranslationDomain() string

TranslationDomain: translation domain of the menu or toolbar item.

type Style

type Style struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

Style object encapsulates the information that provides the look and feel for a widget.

> In GTK+ 3.0, GtkStyle has been deprecated and replaced by > StyleContext.

Each Widget has an associated Style object that is used when rendering that widget. Also, a Style holds information for the five possible widget states though not every widget supports all five states; see StateType.

Usually the Style for a widget is the same as the default style that is set by GTK+ and modified the theme engine.

Usually applications should not need to use or modify the Style of their widgets.

func NewStyle deprecated

func NewStyle() *Style

NewStyle creates a new Style.

Deprecated: Use StyleContext.

The function returns the following values:

  • style: new Style.

func RCGetStyle deprecated

func RCGetStyle(widget Widgetter) *Style

RCGetStyle finds all matching RC styles for a given widget, composites them together, and then creates a Style representing the composite appearance. (GTK+ actually keeps a cache of previously created styles, so a new style may not be created.)

Deprecated: Use StyleContext instead.

The function takes the following parameters:

  • widget: Widget.

The function returns the following values:

  • style: resulting style. No refcount is added to the returned style, so if you want to save this style around, you should add a reference yourself.

func RCGetStyleByPaths deprecated

func RCGetStyleByPaths(settings *Settings, widgetPath, classPath string, typ coreglib.Type) *Style

RCGetStyleByPaths creates up a Style from styles defined in a RC file by providing the raw components used in matching. This function may be useful when creating pseudo-widgets that should be themed like widgets but don’t actually have corresponding GTK+ widgets. An example of this would be items inside a GNOME canvas widget.

The action of gtk_rc_get_style() is similar to:

gtk_widget_path (widget, NULL, &path, NULL);
gtk_widget_class_path (widget, NULL, &class_path, NULL);
gtk_rc_get_style_by_paths (gtk_widget_get_settings (widget),
                           path, class_path,
                           G_OBJECT_TYPE (widget));

Deprecated: Use StyleContext instead.

The function takes the following parameters:

  • settings Settings object.
  • widgetPath (optional): widget path to use when looking up the style, or NULL if no matching against the widget path should be done.
  • classPath (optional) class path to use when looking up the style, or NULL if no matching against the class path should be done.
  • typ: type that will be used along with parent types of this type when matching against class styles, or TYPE_NONE.

The function returns the following values:

  • style (optional) created by matching with the supplied paths, or NULL if nothing matching was specified and the default style should be used. The returned value is owned by GTK+ as part of an internal cache, so you must call g_object_ref() on the returned value if you want to keep a reference to it.

func WidgetGetDefaultStyle deprecated

func WidgetGetDefaultStyle() *Style

WidgetGetDefaultStyle returns the default style used by all widgets initially.

Deprecated: Use StyleContext instead, and gtk_css_provider_get_default() to obtain a StyleProvider with the default widget style information.

The function returns the following values:

  • style: default style. This Style object is owned by GTK+ and should not be modified or freed.

func (*Style) ApplyDefaultBackground

func (style *Style) ApplyDefaultBackground(cr *cairo.Context, window gdk.Windower, stateType StateType, x, y, width, height int)

ApplyDefaultBackground: deprecated: Use StyleContext instead.

The function takes the following parameters:

  • cr
  • window
  • stateType
  • x
  • y
  • width
  • height

func (*Style) ConnectRealize

func (style *Style) ConnectRealize(f func()) coreglib.SignalHandle

ConnectRealize is emitted when the style has been initialized for a particular visual. Connecting to this signal is probably seldom useful since most of the time applications and widgets only deal with styles that have been already realized.

func (*Style) ConnectUnrealize

func (style *Style) ConnectUnrealize(f func()) coreglib.SignalHandle

ConnectUnrealize is emitted when the aspects of the style specific to a particular visual is being cleaned up. A connection to this signal can be useful if a widget wants to cache objects as object data on Style. This signal provides a convenient place to free such cached objects.

func (*Style) Copy deprecated

func (style *Style) Copy() *Style

Copy creates a copy of the passed in Style object.

Deprecated: Use StyleContext instead.

The function returns the following values:

  • ret: copy of style.

func (*Style) Detach deprecated

func (style *Style) Detach()

Detach detaches a style from a window. If the style is not attached to any windows anymore, it is unrealized. See gtk_style_attach().

Deprecated: Use StyleContext instead.

func (*Style) HasContext

func (style *Style) HasContext() bool

HasContext returns whether style has an associated StyleContext.

The function returns the following values:

  • ok: TRUE if style has a StyleContext.

func (*Style) LookupColor deprecated

func (style *Style) LookupColor(colorName string) (*gdk.Color, bool)

LookupColor looks up color_name in the style’s logical color mappings, filling in color and returning TRUE if found, otherwise returning FALSE. Do not cache the found mapping, because it depends on the Style and might change when a theme switch occurs.

Deprecated: Use gtk_style_context_lookup_color() instead.

The function takes the following parameters:

  • colorName: name of the logical color to look up.

The function returns the following values:

  • color to fill in.
  • ok: TRUE if the mapping was found.

func (*Style) LookupIconSet deprecated

func (style *Style) LookupIconSet(stockId string) *IconSet

LookupIconSet looks up stock_id in the icon factories associated with style and the default icon factory, returning an icon set if found, otherwise NULL.

Deprecated: Use gtk_style_context_lookup_icon_set() instead.

The function takes the following parameters:

  • stockId: icon name.

The function returns the following values:

  • iconSet: icon set of stock_id.

func (*Style) RenderIcon deprecated

func (style *Style) RenderIcon(source *IconSource, direction TextDirection, state StateType, size int, widget Widgetter, detail string) *gdkpixbuf.Pixbuf

RenderIcon renders the icon specified by source at the given size according to the given parameters and returns the result in a pixbuf.

Deprecated: Use gtk_render_icon_pixbuf() instead.

The function takes the following parameters:

  • source specifying the icon to render.
  • direction: text direction.
  • state: state.
  • size to render the icon at (IconSize). A size of (GtkIconSize)-1 means render at the size of the source and don’t scale.
  • widget (optional): widget.
  • detail (optional): style detail.

The function returns the following values:

  • pixbuf: newly-created Pixbuf containing the rendered icon.

func (*Style) SetBackground deprecated

func (style *Style) SetBackground(window gdk.Windower, stateType StateType)

SetBackground sets the background of window to the background color or pixmap specified by style for the given state.

Deprecated: Use gtk_style_context_set_background() instead.

The function takes the following parameters:

  • window: Window.
  • stateType: state.

func (*Style) StyleProperty

func (style *Style) StyleProperty(widgetType coreglib.Type, propertyName string) coreglib.Value

StyleProperty queries the value of a style property corresponding to a widget class is in the given style.

The function takes the following parameters:

  • widgetType of a descendant of Widget.
  • propertyName: name of the style property to get.

The function returns the following values:

  • value where the value of the property being queried will be stored.

type StyleClass added in v0.0.5

type StyleClass struct {
	// contains filtered or unexported fields
}

StyleClass: instance of this type is always passed by reference.

type StyleContext

type StyleContext struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

StyleContext is an object that stores styling information affecting a widget defined by WidgetPath.

In order to construct the final style information, StyleContext queries information from all attached StyleProviders. Style providers can be either attached explicitly to the context through gtk_style_context_add_provider(), or to the screen through gtk_style_context_add_provider_for_screen(). The resulting style is a combination of all providers’ information in priority order.

For GTK+ widgets, any StyleContext returned by gtk_widget_get_style_context() will already have a WidgetPath, a Screen and RTL/LTR information set. The style context will also be updated automatically if any of these settings change on the widget.

If you are using the theming layer standalone, you will need to set a widget path and a screen yourself to the created style context through gtk_style_context_set_path() and possibly gtk_style_context_set_screen(). See the “Foreign drawing“ example in gtk3-demo.

Style Classes

Widgets can add style classes to their context, which can be used to associate different styles by class. The documentation for individual widgets lists which style classes it uses itself, and which style classes may be added by applications to affect their appearance.

GTK+ defines macros for a number of style classes.

Style Regions

Widgets can also add regions with flags to their context. This feature is deprecated and will be removed in a future GTK+ update. Please use style classes instead.

GTK+ defines macros for a number of style regions.

Custom styling in UI libraries and applications

If you are developing a library with custom Widgets that render differently than standard components, you may need to add a StyleProvider yourself with the GTK_STYLE_PROVIDER_PRIORITY_FALLBACK priority, either a CssProvider or a custom object implementing the StyleProvider interface. This way themes may still attempt to style your UI elements in a different way if needed so.

If you are using custom styling on an applications, you probably want then to make your style information prevail to the theme’s, so you must use a StyleProvider with the GTK_STYLE_PROVIDER_PRIORITY_APPLICATION priority, keep in mind that the user settings in XDG_CONFIG_HOME/gtk-3.0/gtk.css will still take precedence over your changes, as it uses the GTK_STYLE_PROVIDER_PRIORITY_USER priority.

func NewStyleContext

func NewStyleContext() *StyleContext

NewStyleContext creates a standalone StyleContext, this style context won’t be attached to any widget, so you may want to call gtk_style_context_set_path() yourself.

This function is only useful when using the theming layer separated from GTK+, if you are using StyleContext to theme Widgets, use gtk_widget_get_style_context() in order to get a style context ready to theme the widget.

The function returns the following values:

  • styleContext: newly created StyleContext.

func (*StyleContext) AddClass

func (context *StyleContext) AddClass(className string)

AddClass adds a style class to context, so posterior calls to gtk_style_context_get() or any of the gtk_render_*() functions will make use of this new class for styling.

In the CSS file format, a Entry defining a “search” class, would be matched by:

|[ <!-- language="CSS" --> entry.search { ... } ]|

While any widget defining a “search” class would be matched by: |[ <!-- language="CSS" --> .search { ... } ]|.

The function takes the following parameters:

  • className class name to use in styling.

func (*StyleContext) AddProvider

func (context *StyleContext) AddProvider(provider StyleProviderer, priority uint)

AddProvider adds a style provider to context, to be used in style construction. Note that a style provider added by this function only affects the style of the widget to which context belongs. If you want to affect the style of all widgets, use gtk_style_context_add_provider_for_screen().

Note: If both priorities are the same, a StyleProvider added through this function takes precedence over another added through gtk_style_context_add_provider_for_screen().

The function takes the following parameters:

  • provider: StyleProvider.
  • priority of the style provider. The lower it is, the earlier it will be used in the style construction. Typically this will be in the range between GTK_STYLE_PROVIDER_PRIORITY_FALLBACK and GTK_STYLE_PROVIDER_PRIORITY_USER.

func (*StyleContext) AddRegion deprecated

func (context *StyleContext) AddRegion(regionName string, flags RegionFlags)

AddRegion adds a region to context, so posterior calls to gtk_style_context_get() or any of the gtk_render_*() functions will make use of this new region for styling.

In the CSS file format, a TreeView defining a “row” region, would be matched by:

|[ <!-- language="CSS" --> treeview row { ... } ]|

Pseudo-classes are used for matching flags, so the two following rules: |[ <!-- language="CSS" --> treeview row:nth-child(even) { ... } treeview row:nth-child(odd) { ... } ]|

would apply to even and odd rows, respectively.

Region names must only contain lowercase letters and “-”, starting always with a lowercase letter.

Deprecated: since version 3.14.

The function takes the following parameters:

  • regionName: region name to use in styling.
  • flags that apply to the region.

func (*StyleContext) BackgroundColor deprecated

func (context *StyleContext) BackgroundColor(state StateFlags) *gdk.RGBA

BackgroundColor gets the background color for a given state.

This function is far less useful than it seems, and it should not be used in newly written code. CSS has no concept of "background color", as a background can be an image, or a gradient, or any other pattern including solid colors.

The only reason why you would call gtk_style_context_get_background_color() is to use the returned value to draw the background with it; the correct way to achieve this result is to use gtk_render_background() instead, along with CSS style classes to modify the color to be rendered.

Deprecated: Use gtk_render_background() instead.

The function takes the following parameters:

  • state to retrieve the color for.

The function returns the following values:

  • color: return value for the background color.

func (*StyleContext) Border

func (context *StyleContext) Border(state StateFlags) *Border

Border gets the border for a given state as a Border.

See gtk_style_context_get_property() and K_STYLE_PROPERTY_BORDER_WIDTH for details.

The function takes the following parameters:

  • state to retrieve the border for.

The function returns the following values:

  • border: return value for the border settings.

func (*StyleContext) BorderColor deprecated

func (context *StyleContext) BorderColor(state StateFlags) *gdk.RGBA

BorderColor gets the border color for a given state.

Deprecated: Use gtk_render_frame() instead.

The function takes the following parameters:

  • state to retrieve the color for.

The function returns the following values:

  • color: return value for the border color.

func (*StyleContext) CancelAnimations deprecated

func (context *StyleContext) CancelAnimations(regionId unsafe.Pointer)

CancelAnimations stops all running animations for region_id and all animatable regions underneath.

A NULL region_id will stop all ongoing animations in context, when dealing with a StyleContext obtained through gtk_widget_get_style_context(), this is normally done for you in all circumstances you would expect all widget to be stopped, so this should be only used in complex widgets with different animatable regions.

Deprecated: This function does nothing.

The function takes the following parameters:

  • regionId (optional): animatable region to stop, or NULL. See gtk_style_context_push_animatable_region().

func (*StyleContext) Color

func (context *StyleContext) Color(state StateFlags) *gdk.RGBA

Color gets the foreground color for a given state.

See gtk_style_context_get_property() and K_STYLE_PROPERTY_COLOR for details.

The function takes the following parameters:

  • state to retrieve the color for.

The function returns the following values:

  • color: return value for the foreground color.

func (*StyleContext) ConnectChanged

func (context *StyleContext) ConnectChanged(f func()) coreglib.SignalHandle

ConnectChanged signal is emitted when there is a change in the StyleContext.

For a StyleContext returned by gtk_widget_get_style_context(), the Widget::style-updated signal/vfunc might be more convenient to use.

This signal is useful when using the theming layer standalone.

func (*StyleContext) Direction deprecated

func (context *StyleContext) Direction() TextDirection

Direction returns the widget direction used for rendering.

Deprecated: Use gtk_style_context_get_state() and check for K_STATE_FLAG_DIR_LTR and K_STATE_FLAG_DIR_RTL instead.

The function returns the following values:

  • textDirection: widget direction.

func (*StyleContext) Font deprecated

func (context *StyleContext) Font(state StateFlags) *pango.FontDescription

Font returns the font description for a given state. The returned object is const and will remain valid until the StyleContext::changed signal happens.

Deprecated: Use gtk_style_context_get() for "font" or subproperties instead.

The function takes the following parameters:

  • state to retrieve the font for.

The function returns the following values:

  • fontDescription for the given state. This object is owned by GTK+ and should not be freed.

func (*StyleContext) FrameClock

func (context *StyleContext) FrameClock() gdk.FrameClocker

FrameClock returns the FrameClock to which context is attached.

The function returns the following values:

  • frameClock (optional) or NULL if context does not have an attached frame clock.

func (*StyleContext) HasClass

func (context *StyleContext) HasClass(className string) bool

HasClass returns TRUE if context currently has defined the given class name.

The function takes the following parameters:

  • className class name.

The function returns the following values:

  • ok: TRUE if context has class_name defined.

func (*StyleContext) HasRegion deprecated

func (context *StyleContext) HasRegion(regionName string) (RegionFlags, bool)

HasRegion returns TRUE if context has the region defined. If flags_return is not NULL, it is set to the flags affecting the region.

Deprecated: since version 3.14.

The function takes the following parameters:

  • regionName: region name.

The function returns the following values:

  • flagsReturn (optional): return location for region flags.
  • ok: TRUE if region is defined.

func (*StyleContext) Invalidate deprecated

func (context *StyleContext) Invalidate()

Invalidate invalidates context style information, so it will be reconstructed again. It is useful if you modify the context and need the new information immediately.

Deprecated: Style contexts are invalidated automatically.

func (*StyleContext) JunctionSides

func (context *StyleContext) JunctionSides() JunctionSides

JunctionSides returns the sides where rendered elements connect visually with others.

The function returns the following values:

  • junctionSides: junction sides.

func (*StyleContext) ListClasses

func (context *StyleContext) ListClasses() []string

ListClasses returns the list of classes currently defined in context.

The function returns the following values:

  • list of strings with the currently defined classes. The contents of the list are owned by GTK+, but you must free the list itself with g_list_free() when you are done with it.

func (*StyleContext) ListRegions deprecated

func (context *StyleContext) ListRegions() []string

ListRegions returns the list of regions currently defined in context.

Deprecated: since version 3.14.

The function returns the following values:

  • list of strings with the currently defined regions. The contents of the list are owned by GTK+, but you must free the list itself with g_list_free() when you are done with it.

func (*StyleContext) LookupColor

func (context *StyleContext) LookupColor(colorName string) (*gdk.RGBA, bool)

LookupColor looks up and resolves a color name in the context color map.

The function takes the following parameters:

  • colorName: color name to lookup.

The function returns the following values:

  • color: return location for the looked up color.
  • ok: TRUE if color_name was found and resolved, FALSE otherwise.

func (*StyleContext) LookupIconSet deprecated

func (context *StyleContext) LookupIconSet(stockId string) *IconSet

LookupIconSet looks up stock_id in the icon factories associated to context and the default icon factory, returning an icon set if found, otherwise NULL.

Deprecated: Use gtk_icon_theme_lookup_icon() instead.

The function takes the following parameters:

  • stockId: icon name.

The function returns the following values:

  • iconSet (optional): looked up GtkIconSet, or NULL.

func (*StyleContext) Margin

func (context *StyleContext) Margin(state StateFlags) *Border

Margin gets the margin for a given state as a Border. See gtk_style_property_get() and K_STYLE_PROPERTY_MARGIN for details.

The function takes the following parameters:

  • state to retrieve the border for.

The function returns the following values:

  • margin: return value for the margin settings.

func (*StyleContext) NotifyStateChange deprecated

func (context *StyleContext) NotifyStateChange(window gdk.Windower, regionId unsafe.Pointer, state StateType, stateValue bool)

NotifyStateChange notifies a state change on context, so if the current style makes use of transition animations, one will be started so all rendered elements under region_id are animated for state state being set to value state_value.

The window parameter is used in order to invalidate the rendered area as the animation runs, so make sure it is the same window that is being rendered on by the gtk_render_*() functions.

If region_id is NULL, all rendered elements using context will be affected by this state transition.

As a practical example, a Button notifying a state transition on the prelight state: |[ <!-- language="C" --> gtk_style_context_notify_state_change (context, gtk_widget_get_window (widget), NULL, GTK_STATE_PRELIGHT, button->in_button); ]|

Can be handled in the CSS file like this: |[ <!-- language="CSS" --> button { background-color: #f00 }

button:hover { background-color: #fff; transition: 200ms linear } ]|

This combination will animate the button background from red to white if a pointer enters the button, and back to red if the pointer leaves the button.

Note that state is used when finding the transition parameters, which is why the style places the transition under the :hover pseudo-class.

Deprecated: This function does nothing.

The function takes the following parameters:

  • window: Window.
  • regionId (optional): animatable region to notify on, or NULL. See gtk_style_context_push_animatable_region().
  • state to trigger transition for.
  • stateValue: TRUE if state is the state we are changing to, FALSE if we are changing away from it.

func (*StyleContext) Padding

func (context *StyleContext) Padding(state StateFlags) *Border

Padding gets the padding for a given state as a Border. See gtk_style_context_get() and K_STYLE_PROPERTY_PADDING for details.

The function takes the following parameters:

  • state to retrieve the padding for.

The function returns the following values:

  • padding: return value for the padding settings.

func (*StyleContext) Parent

func (context *StyleContext) Parent() *StyleContext

Parent gets the parent context set via gtk_style_context_set_parent(). See that function for details.

The function returns the following values:

  • styleContext (optional): parent context or NULL.

func (*StyleContext) Path

func (context *StyleContext) Path() *WidgetPath

Path returns the widget path used for style matching.

The function returns the following values:

  • widgetPath: WidgetPath.

func (*StyleContext) PopAnimatableRegion deprecated

func (context *StyleContext) PopAnimatableRegion()

PopAnimatableRegion pops an animatable region from context. See gtk_style_context_push_animatable_region().

Deprecated: This function does nothing.

func (*StyleContext) Property

func (context *StyleContext) Property(property string, state StateFlags) coreglib.Value

Property gets a style property from context for the given state.

Note that not all CSS properties that are supported by GTK+ can be retrieved in this way, since they may not be representable as #GValue. GTK+ defines macros for a number of properties that can be used with this function.

Note that passing a state other than the current state of context is not recommended unless the style context has been saved with gtk_style_context_save().

When value is no longer needed, g_value_unset() must be called to free any allocated memory.

The function takes the following parameters:

  • property: style property name.
  • state to retrieve the property value for.

The function returns the following values:

  • value: return location for the style property value.

func (*StyleContext) PushAnimatableRegion deprecated

func (context *StyleContext) PushAnimatableRegion(regionId unsafe.Pointer)

PushAnimatableRegion pushes an animatable region, so all further gtk_render_*() calls between this call and the following gtk_style_context_pop_animatable_region() will potentially show transition animations for this region if gtk_style_context_notify_state_change() is called for a given state, and the current theme/style defines transition animations for state changes.

The region_id used must be unique in context so the themes can uniquely identify rendered elements subject to a state transition.

Deprecated: This function does nothing.

The function takes the following parameters:

  • regionId (optional): unique identifier for the animatable region.

func (*StyleContext) RemoveClass

func (context *StyleContext) RemoveClass(className string)

RemoveClass removes class_name from context.

The function takes the following parameters:

  • className class name to remove.

func (*StyleContext) RemoveProvider

func (context *StyleContext) RemoveProvider(provider StyleProviderer)

RemoveProvider removes provider from the style providers list in context.

The function takes the following parameters:

  • provider: StyleProvider.

func (*StyleContext) RemoveRegion deprecated

func (context *StyleContext) RemoveRegion(regionName string)

RemoveRegion removes a region from context.

Deprecated: since version 3.14.

The function takes the following parameters:

  • regionName: region name to unset.

func (*StyleContext) Restore

func (context *StyleContext) Restore()

Restore restores context state to a previous stage. See gtk_style_context_save().

func (*StyleContext) Save

func (context *StyleContext) Save()

Save saves the context state, so temporary modifications done through gtk_style_context_add_class(), gtk_style_context_remove_class(), gtk_style_context_set_state(), etc. can quickly be reverted in one go through gtk_style_context_restore().

The matching call to gtk_style_context_restore() must be done before GTK returns to the main loop.

func (*StyleContext) Scale

func (context *StyleContext) Scale() int

Scale returns the scale used for assets.

The function returns the following values:

  • gint: scale.

func (*StyleContext) Screen

func (context *StyleContext) Screen() *gdk.Screen

Screen returns the Screen to which context is attached.

The function returns the following values:

  • screen: Screen.

func (*StyleContext) ScrollAnimations deprecated

func (context *StyleContext) ScrollAnimations(window gdk.Windower, dx, dy int)

ScrollAnimations: this function is analogous to gdk_window_scroll(), and should be called together with it so the invalidation areas for any ongoing animation are scrolled together with it.

Deprecated: This function does nothing.

The function takes the following parameters:

  • window used previously in gtk_style_context_notify_state_change().
  • dx: amount to scroll in the X axis.
  • dy: amount to scroll in the Y axis.

func (*StyleContext) Section

func (context *StyleContext) Section(property string) *CSSSection

Section queries the location in the CSS where property was defined for the current context. Note that the state to be queried is taken from gtk_style_context_get_state().

If the location is not available, NULL will be returned. The location might not be available for various reasons, such as the property being overridden, property not naming a supported CSS property or tracking of definitions being disabled for performance reasons.

Shorthand CSS properties cannot be queried for a location and will always return NULL.

The function takes the following parameters:

  • property: style property name.

The function returns the following values:

  • cssSection (optional): NULL or the section where a value for property was defined.

func (*StyleContext) SetBackground deprecated

func (context *StyleContext) SetBackground(window gdk.Windower)

SetBackground sets the background of window to the background pattern or color specified in context for its current state.

Deprecated: Use gtk_render_background() instead. Note that clients still using this function are now responsible for calling this function again whenever context is invalidated.

The function takes the following parameters:

  • window: Window.

func (*StyleContext) SetDirection deprecated

func (context *StyleContext) SetDirection(direction TextDirection)

SetDirection sets the reading direction for rendering purposes.

If you are using a StyleContext returned from gtk_widget_get_style_context(), you do not need to call this yourself.

Deprecated: Use gtk_style_context_set_state() with K_STATE_FLAG_DIR_LTR and K_STATE_FLAG_DIR_RTL instead.

The function takes the following parameters:

  • direction: new direction.

func (*StyleContext) SetFrameClock

func (context *StyleContext) SetFrameClock(frameClock gdk.FrameClocker)

SetFrameClock attaches context to the given frame clock.

The frame clock is used for the timing of animations.

If you are using a StyleContext returned from gtk_widget_get_style_context(), you do not need to call this yourself.

The function takes the following parameters:

  • frameClock: FrameClock.

func (*StyleContext) SetJunctionSides

func (context *StyleContext) SetJunctionSides(sides JunctionSides)

SetJunctionSides sets the sides where rendered elements (mostly through gtk_render_frame()) will visually connect with other visual elements.

This is merely a hint that may or may not be honored by themes.

Container widgets are expected to set junction hints as appropriate for their children, so it should not normally be necessary to call this function manually.

The function takes the following parameters:

  • sides where rendered elements are visually connected to other elements.

func (*StyleContext) SetParent

func (context *StyleContext) SetParent(parent *StyleContext)

SetParent sets the parent style context for context. The parent style context is used to implement inheritance (http://www.w3.org/TR/css3-cascade/#inheritance) of properties.

If you are using a StyleContext returned from gtk_widget_get_style_context(), the parent will be set for you.

The function takes the following parameters:

  • parent (optional): new parent or NULL.

func (*StyleContext) SetPath

func (context *StyleContext) SetPath(path *WidgetPath)

SetPath sets the WidgetPath used for style matching. As a consequence, the style will be regenerated to match the new given path.

If you are using a StyleContext returned from gtk_widget_get_style_context(), you do not need to call this yourself.

The function takes the following parameters:

  • path: WidgetPath.

func (*StyleContext) SetScale

func (context *StyleContext) SetScale(scale int)

SetScale sets the scale to use when getting image assets for the style.

The function takes the following parameters:

  • scale: scale.

func (*StyleContext) SetScreen

func (context *StyleContext) SetScreen(screen *gdk.Screen)

SetScreen attaches context to the given screen.

The screen is used to add style information from “global” style providers, such as the screen’s Settings instance.

If you are using a StyleContext returned from gtk_widget_get_style_context(), you do not need to call this yourself.

The function takes the following parameters:

  • screen: Screen.

func (*StyleContext) SetState

func (context *StyleContext) SetState(flags StateFlags)

SetState sets the state to be used for style matching.

The function takes the following parameters:

  • flags: state to represent.

func (*StyleContext) State

func (context *StyleContext) State() StateFlags

State returns the state used for style matching.

This method should only be used to retrieve the StateFlags to pass to StyleContext methods, like gtk_style_context_get_padding(). If you need to retrieve the current state of a Widget, use gtk_widget_get_state_flags().

The function returns the following values:

  • stateFlags: state flags.

func (*StyleContext) StateIsRunning deprecated

func (context *StyleContext) StateIsRunning(state StateType) (float64, bool)

StateIsRunning returns TRUE if there is a transition animation running for the current region (see gtk_style_context_push_animatable_region()).

If progress is not NULL, the animation progress will be returned there, 0.0 means the state is closest to being unset, while 1.0 means it’s closest to being set. This means transition animation will run from 0 to 1 when state is being set and from 1 to 0 when it’s being unset.

Deprecated: This function always returns FALSE.

The function takes the following parameters:

  • state: widget state.

The function returns the following values:

  • progress: return location for the transition progress.
  • ok: TRUE if there is a running transition animation for state.

func (*StyleContext) String

func (context *StyleContext) String(flags StyleContextPrintFlags) string

String converts the style context into a string representation.

The string representation always includes information about the name, state, id, visibility and style classes of the CSS node that is backing context. Depending on the flags, more information may be included.

This function is intended for testing and debugging of the CSS implementation in GTK+. There are no guarantees about the format of the returned string, it may change.

The function takes the following parameters:

  • flags flags that determine what to print.

The function returns the following values:

  • utf8: newly allocated string representing context.

func (*StyleContext) StyleProperty

func (context *StyleContext) StyleProperty(propertyName string) coreglib.Value

StyleProperty gets the value for a widget style property.

When value is no longer needed, g_value_unset() must be called to free any allocated memory.

The function takes the following parameters:

  • propertyName: name of the widget style property.

The function returns the following values:

  • value: return location for the property value.

type StyleContextClass added in v0.0.5

type StyleContextClass struct {
	// contains filtered or unexported fields
}

StyleContextClass: instance of this type is always passed by reference.

type StyleContextOverrides added in v0.0.5

type StyleContextOverrides struct {
	Changed func()
}

StyleContextOverrides contains methods that are overridable.

type StyleContextPrintFlags

type StyleContextPrintFlags C.guint

StyleContextPrintFlags flags that modify the behavior of gtk_style_context_to_string(). New values may be added to this enumeration.

const (
	StyleContextPrintNone StyleContextPrintFlags = 0b0
	// StyleContextPrintRecurse: print the entire tree of CSS nodes starting at
	// the style context's node.
	StyleContextPrintRecurse StyleContextPrintFlags = 0b1
	// StyleContextPrintShowStyle: show the values of the CSS properties for
	// each node.
	StyleContextPrintShowStyle StyleContextPrintFlags = 0b10
)

func (StyleContextPrintFlags) Has

Has returns true if s contains other.

func (StyleContextPrintFlags) String

func (s StyleContextPrintFlags) String() string

String returns the names in string for StyleContextPrintFlags.

type StyleOverrides added in v0.0.5

type StyleOverrides struct {
	// The function takes the following parameters:
	//
	Copy func(src *Style)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - arrowType
	//   - fill
	//   - x
	//   - y
	//   - width
	//   - height
	//
	DrawArrow func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, arrowType ArrowType, fill bool, x, y, width, height int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//
	DrawBox func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//   - gapSide
	//   - gapX
	//   - gapWidth
	//
	DrawBoxGap func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int, gapSide PositionType, gapX, gapWidth int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//
	DrawCheck func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//
	DrawDiamond func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - expanderStyle
	//
	DrawExpander func(cr *cairo.Context, stateType StateType, widget Widgetter, detail string, x, y int, expanderStyle ExpanderStyle)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//   - gapSide
	//
	DrawExtension func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int, gapSide PositionType)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//
	DrawFlatBox func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//
	DrawFocus func(cr *cairo.Context, stateType StateType, widget Widgetter, detail string, x, y, width, height int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//   - orientation
	//
	DrawHandle func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int, orientation Orientation)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - widget
	//   - detail
	//   - x1
	//   - x2
	//   - y
	//
	DrawHline func(cr *cairo.Context, stateType StateType, widget Widgetter, detail string, x1, x2, y int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - useText
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - layout
	//
	DrawLayout func(cr *cairo.Context, stateType StateType, useText bool, widget Widgetter, detail string, x, y int, layout *pango.Layout)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//
	DrawOption func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - widget
	//   - detail
	//   - edge
	//   - x
	//   - y
	//   - width
	//   - height
	//
	DrawResizeGrip func(cr *cairo.Context, stateType StateType, widget Widgetter, detail string, edge gdk.WindowEdge, x, y, width, height int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//
	DrawShadow func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//   - gapSide
	//   - gapX
	//   - gapWidth
	//
	DrawShadowGap func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int, gapSide PositionType, gapX, gapWidth int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//   - orientation
	//
	DrawSlider func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int, orientation Orientation)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - widget
	//   - detail
	//   - step
	//   - x
	//   - y
	//   - width
	//   - height
	//
	DrawSpinner func(cr *cairo.Context, stateType StateType, widget Widgetter, detail string, step uint, x, y, width, height int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - shadowType
	//   - widget
	//   - detail
	//   - x
	//   - y
	//   - width
	//   - height
	//
	DrawTab func(cr *cairo.Context, stateType StateType, shadowType ShadowType, widget Widgetter, detail string, x, y, width, height int)
	// The function takes the following parameters:
	//
	//   - cr
	//   - stateType
	//   - widget
	//   - detail
	//   - y1
	//   - y2
	//   - x
	//
	DrawVline func(cr *cairo.Context, stateType StateType, widget Widgetter, detail string, y1, y2, x int)
	// The function takes the following parameters:
	//
	InitFromRC func(rcStyle *RCStyle)
	Realize    func()
	// RenderIcon renders the icon specified by source at the given size
	// according to the given parameters and returns the result in a pixbuf.
	//
	// Deprecated: Use gtk_render_icon_pixbuf() instead.
	//
	// The function takes the following parameters:
	//
	//   - source specifying the icon to render.
	//   - direction: text direction.
	//   - state: state.
	//   - size to render the icon at (IconSize). A size of (GtkIconSize)-1
	//     means render at the size of the source and don’t scale.
	//   - widget (optional): widget.
	//   - detail (optional): style detail.
	//
	// The function returns the following values:
	//
	//   - pixbuf: newly-created Pixbuf containing the rendered icon.
	//
	RenderIcon func(source *IconSource, direction TextDirection, state StateType, size int, widget Widgetter, detail string) *gdkpixbuf.Pixbuf
	// SetBackground sets the background of window to the background color or
	// pixmap specified by style for the given state.
	//
	// Deprecated: Use gtk_style_context_set_background() instead.
	//
	// The function takes the following parameters:
	//
	//   - window: Window.
	//   - stateType: state.
	//
	SetBackground func(window gdk.Windower, stateType StateType)
	Unrealize     func()
}

StyleOverrides contains methods that are overridable.

type StyleProperties

type StyleProperties struct {
	*coreglib.Object

	StyleProvider
	// contains filtered or unexported fields
}

StyleProperties provides the storage for style information that is used by StyleContext and other StyleProvider implementations.

Before style properties can be stored in GtkStyleProperties, they must be registered with gtk_style_properties_register_property().

Unless you are writing a StyleProvider implementation, you are unlikely to use this API directly, as gtk_style_context_get() and its variants are the preferred way to access styling information from widget implementations and theming engine implementations should use the APIs provided by ThemingEngine instead.

StyleProperties has been deprecated in GTK 3.16. The CSS machinery does not use it anymore and all users of this object have been deprecated.

func NewStyleProperties deprecated

func NewStyleProperties() *StyleProperties

NewStyleProperties returns a newly created StyleProperties

Deprecated: StyleProperties are deprecated.

The function returns the following values:

  • styleProperties: new StyleProperties.

func (*StyleProperties) Clear deprecated

func (props *StyleProperties) Clear()

Clear clears all style information from props.

Deprecated: StyleProperties are deprecated.

func (*StyleProperties) LookupColor deprecated

func (props *StyleProperties) LookupColor(name string) *SymbolicColor

LookupColor returns the symbolic color that is mapped to name.

Deprecated: SymbolicColor is deprecated.

The function takes the following parameters:

  • name: color name to lookup.

The function returns the following values:

  • symbolicColor: mapped color.

func (*StyleProperties) MapColor deprecated

func (props *StyleProperties) MapColor(name string, color *SymbolicColor)

MapColor maps color so it can be referenced by name. See gtk_style_properties_lookup_color()

Deprecated: SymbolicColor is deprecated.

The function takes the following parameters:

  • name: color name.
  • color to map name to.

func (*StyleProperties) Merge deprecated

func (props *StyleProperties) Merge(propsToMerge *StyleProperties, replace bool)

Merge merges into props all the style information contained in props_to_merge. If replace is TRUE, the values will be overwritten, if it is FALSE, the older values will prevail.

Deprecated: StyleProperties are deprecated.

The function takes the following parameters:

  • propsToMerge: second StyleProperties.
  • replace: whether to replace values or not.

func (*StyleProperties) Property deprecated

func (props *StyleProperties) Property(property string, state StateFlags) (coreglib.Value, bool)

Property gets a style property from props for the given state. When done with value, g_value_unset() needs to be called to free any allocated memory.

Deprecated: StyleProperties are deprecated.

The function takes the following parameters:

  • property: style property name.
  • state to retrieve the property value for.

The function returns the following values:

  • value: return location for the style property value.
  • ok: TRUE if the property exists in props, FALSE otherwise.

func (*StyleProperties) SetProperty deprecated

func (props *StyleProperties) SetProperty(property string, state StateFlags, value *coreglib.Value)

SetProperty sets a styling property in props.

Deprecated: StyleProperties are deprecated.

The function takes the following parameters:

  • property: styling property to set.
  • state to set the value for.
  • value: new value for the property.

func (*StyleProperties) UnsetProperty deprecated

func (props *StyleProperties) UnsetProperty(property string, state StateFlags)

UnsetProperty unsets a style property in props.

Deprecated: StyleProperties are deprecated.

The function takes the following parameters:

  • property to unset.
  • state to unset.

type StylePropertiesClass added in v0.0.5

type StylePropertiesClass struct {
	// contains filtered or unexported fields
}

StylePropertiesClass: instance of this type is always passed by reference.

type StylePropertiesOverrides added in v0.0.5

type StylePropertiesOverrides struct {
}

StylePropertiesOverrides contains methods that are overridable.

type StyleProvider

type StyleProvider struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

StyleProvider is an interface used to provide style information to a StyleContext. See gtk_style_context_add_provider() and gtk_style_context_add_provider_for_screen().

StyleProvider wraps an interface. This means the user can get the underlying type by calling Cast().

func (*StyleProvider) IconFactory deprecated

func (provider *StyleProvider) IconFactory(path *WidgetPath) *IconFactory

IconFactory returns the IconFactory defined to be in use for path, or NULL if none is defined.

Deprecated: Will always return NULL for all GTK-provided style providers.

The function takes the following parameters:

  • path to query.

The function returns the following values:

  • iconFactory (optional): icon factory to use for path, or NULL.

func (*StyleProvider) Style deprecated

func (provider *StyleProvider) Style(path *WidgetPath) *StyleProperties

Style returns the style settings affecting a widget defined by path, or NULL if provider doesn’t contemplate styling path.

Deprecated: Will always return NULL for all GTK-provided style providers as the interface cannot correctly work the way CSS is specified.

The function takes the following parameters:

  • path to query.

The function returns the following values:

  • styleProperties (optional) containing the style settings affecting path.

type StyleProviderIface added in v0.0.5

type StyleProviderIface struct {
	// contains filtered or unexported fields
}

StyleProviderIface: instance of this type is always passed by reference.

type StyleProviderer

type StyleProviderer interface {
	coreglib.Objector

	// IconFactory returns the IconFactory defined to be in use for path,
	// or NULL if none is defined.
	IconFactory(path *WidgetPath) *IconFactory
	// Style returns the style settings affecting a widget defined by path,
	// or NULL if provider doesn’t contemplate styling path.
	Style(path *WidgetPath) *StyleProperties
}

StyleProviderer describes StyleProvider's interface methods.

type Switch

type Switch struct {
	Widget

	*coreglib.Object
	Actionable
	Activatable
	// contains filtered or unexported fields
}

Switch is a widget that has two states: on or off. The user can control which state should be active by clicking the empty area, or by dragging the handle.

GtkSwitch can also handle situations where the underlying state changes with a delay. See Switch::state-set for details.

CSS nodes

switch
╰── slider

GtkSwitch has two css nodes, the main node with the name switch and a subnode named slider. Neither of them is using any style classes.

func NewSwitch

func NewSwitch() *Switch

NewSwitch creates a new Switch widget.

The function returns the following values:

  • _switch: newly created Switch instance.

func (*Switch) Active

func (sw *Switch) Active() bool

Active gets whether the Switch is in its “on” or “off” state.

The function returns the following values:

  • ok: TRUE if the Switch is active, and FALSE otherwise.

func (*Switch) ConnectActivate

func (sw *Switch) ConnectActivate(f func()) coreglib.SignalHandle

ConnectActivate signal on GtkSwitch is an action signal and emitting it causes the switch to animate. Applications should never connect to this signal, but use the notify::active signal.

func (*Switch) ConnectStateSet

func (sw *Switch) ConnectStateSet(f func(state bool) (ok bool)) coreglib.SignalHandle

ConnectStateSet signal on GtkSwitch is emitted to change the underlying state. It is emitted when the user changes the switch position. The default handler keeps the state in sync with the Switch:active property.

To implement delayed state change, applications can connect to this signal, initiate the change of the underlying state, and call gtk_switch_set_state() when the underlying state change is complete. The signal handler should return TRUE to prevent the default handler from running.

Visually, the underlying state is represented by the trough color of the switch, while the Switch:active property is represented by the position of the switch.

func (*Switch) SetActive

func (sw *Switch) SetActive(isActive bool)

SetActive changes the state of sw to the desired one.

The function takes the following parameters:

  • isActive: TRUE if sw should be active, and FALSE otherwise.

func (*Switch) SetState

func (sw *Switch) SetState(state bool)

SetState sets the underlying state of the Switch.

Normally, this is the same as Switch:active, unless the switch is set up for delayed state changes. This function is typically called from a Switch::state-set signal handler.

See Switch::state-set for details.

The function takes the following parameters:

  • state: new state.

func (*Switch) State

func (sw *Switch) State() bool

State gets the underlying state of the Switch.

The function returns the following values:

  • ok: underlying state.

type SwitchAccessible

type SwitchAccessible struct {
	WidgetAccessible

	atk.Action
	// contains filtered or unexported fields
}

type SwitchAccessibleClass added in v0.0.5

type SwitchAccessibleClass struct {
	// contains filtered or unexported fields
}

SwitchAccessibleClass: instance of this type is always passed by reference.

func (*SwitchAccessibleClass) ParentClass added in v0.0.5

func (s *SwitchAccessibleClass) ParentClass() *WidgetAccessibleClass

type SwitchAccessibleOverrides added in v0.0.5

type SwitchAccessibleOverrides struct {
}

SwitchAccessibleOverrides contains methods that are overridable.

type SwitchClass added in v0.0.5

type SwitchClass struct {
	// contains filtered or unexported fields
}

SwitchClass: instance of this type is always passed by reference.

func (*SwitchClass) ParentClass added in v0.0.5

func (s *SwitchClass) ParentClass() *WidgetClass

ParentClass: parent class.

type SwitchOverrides added in v0.0.5

type SwitchOverrides struct {
	Activate func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	StateSet func(state bool) bool
}

SwitchOverrides contains methods that are overridable.

type SymbolicColor

type SymbolicColor struct {
	// contains filtered or unexported fields
}

SymbolicColor is a boxed type that represents a symbolic color. It is the result of parsing a [color expression][gtkcssprovider-symbolic-colors]. To obtain the color represented by a GtkSymbolicColor, it has to be resolved with gtk_symbolic_color_resolve(), which replaces all symbolic color references by the colors they refer to (in a given context) and evaluates mix, shade and other expressions, resulting in a RGBA value.

It is not normally necessary to deal directly with SymbolicColors, since they are mostly used behind the scenes by StyleContext and CssProvider.

SymbolicColor is deprecated. Symbolic colors are considered an implementation detail of GTK+.

An instance of this type is always passed by reference.

func NewSymbolicColorAlpha

func NewSymbolicColorAlpha(color *SymbolicColor, factor float64) *SymbolicColor

NewSymbolicColorAlpha constructs a struct SymbolicColor.

func NewSymbolicColorLiteral

func NewSymbolicColorLiteral(color *gdk.RGBA) *SymbolicColor

NewSymbolicColorLiteral constructs a struct SymbolicColor.

func NewSymbolicColorMix

func NewSymbolicColorMix(color1 *SymbolicColor, color2 *SymbolicColor, factor float64) *SymbolicColor

NewSymbolicColorMix constructs a struct SymbolicColor.

func NewSymbolicColorName

func NewSymbolicColorName(name string) *SymbolicColor

NewSymbolicColorName constructs a struct SymbolicColor.

func NewSymbolicColorShade

func NewSymbolicColorShade(color *SymbolicColor, factor float64) *SymbolicColor

NewSymbolicColorShade constructs a struct SymbolicColor.

func NewSymbolicColorWin32

func NewSymbolicColorWin32(themeClass string, id int) *SymbolicColor

NewSymbolicColorWin32 constructs a struct SymbolicColor.

func (*SymbolicColor) Resolve deprecated

func (color *SymbolicColor) Resolve(props *StyleProperties) (*gdk.RGBA, bool)

Resolve: if color is resolvable, resolved_color will be filled in with the resolved color, and TRUE will be returned. Generally, if color can’t be resolved, it is due to it being defined on top of a named color that doesn’t exist in props.

When props is NULL, resolving of named colors will fail, so if your color is or references such a color, this function will return FALSE.

Deprecated: SymbolicColor is deprecated.

The function takes the following parameters:

  • props (optional) to use when resolving named colors, or NULL.

The function returns the following values:

  • resolvedColor: return location for the resolved color.
  • ok: TRUE if the color has been resolved.

func (*SymbolicColor) String deprecated

func (color *SymbolicColor) String() string

String converts the given color to a string representation. This is useful both for debugging and for serialization of strings. The format of the string may change between different versions of GTK, but it is guaranteed that the GTK css parser is able to read the string and create the same symbolic color from it.

Deprecated: SymbolicColor is deprecated.

The function returns the following values:

  • utf8: new string representing color.

type Table

type Table struct {
	Container
	// contains filtered or unexported fields
}

Table functions allow the programmer to arrange widgets in rows and columns, making it easy to align many widgets next to each other, horizontally and vertically.

Tables are created with a call to gtk_table_new(), the size of which can later be changed with gtk_table_resize().

Widgets can be added to a table using gtk_table_attach() or the more convenient (but slightly less flexible) gtk_table_attach_defaults().

To alter the space next to a specific row, use gtk_table_set_row_spacing(), and for a column, gtk_table_set_col_spacing(). The gaps between all rows or columns can be changed by calling gtk_table_set_row_spacings() or gtk_table_set_col_spacings() respectively. Note that spacing is added between the children, while padding added by gtk_table_attach() is added on either side of the widget it belongs to.

gtk_table_set_homogeneous(), can be used to set whether all cells in the table will resize themselves to the size of the largest widget in the table.

> Table has been deprecated. Use Grid instead. It provides the same > capabilities as GtkTable for arranging widgets in a rectangular grid, but > does support height-for-width geometry management.

func NewTable deprecated

func NewTable(rows, columns uint, homogeneous bool) *Table

NewTable: used to create a new table widget. An initial size must be given by specifying how many rows and columns the table should have, although this can be changed later with gtk_table_resize(). rows and columns must both be in the range 1 .. 65535. For historical reasons, 0 is accepted as well and is silently interpreted as 1.

Deprecated: Use gtk_grid_new().

The function takes the following parameters:

  • rows: number of rows the new table should have.
  • columns: number of columns the new table should have.
  • homogeneous: if set to TRUE, all table cells are resized to the size of the cell containing the largest widget.

The function returns the following values:

  • table: pointer to the newly created table widget.

func (*Table) Attach deprecated

func (table *Table) Attach(child Widgetter, leftAttach, rightAttach, topAttach, bottomAttach uint, xoptions, yoptions AttachOptions, xpadding, ypadding uint)

Attach adds a widget to a table. The number of “cells” that a widget will occupy is specified by left_attach, right_attach, top_attach and bottom_attach. These each represent the leftmost, rightmost, uppermost and lowest column and row numbers of the table. (Columns and rows are indexed from zero).

To make a button occupy the lower right cell of a 2x2 table, use

gtk_table_attach (table, button,
                  1, 2, // left, right attach
                  1, 2, // top, bottom attach
                  xoptions, yoptions,
                  xpadding, ypadding);

If you want to make the button span the entire bottom row, use left_attach == 0 and right_attach = 2 instead.

Deprecated: Use gtk_grid_attach() with Grid. Note that the attach arguments differ between those two functions.

The function takes the following parameters:

  • child: widget to add.
  • leftAttach: column number to attach the left side of a child widget to.
  • rightAttach: column number to attach the right side of a child widget to.
  • topAttach: row number to attach the top of a child widget to.
  • bottomAttach: row number to attach the bottom of a child widget to.
  • xoptions: used to specify the properties of the child widget when the table is resized.
  • yoptions: same as xoptions, except this field determines behaviour of vertical resizing.
  • xpadding: integer value specifying the padding on the left and right of the widget being added to the table.
  • ypadding: amount of padding above and below the child widget.

func (*Table) AttachDefaults deprecated

func (table *Table) AttachDefaults(widget Widgetter, leftAttach, rightAttach, topAttach, bottomAttach uint)

AttachDefaults as there are many options associated with gtk_table_attach(), this convenience function provides the programmer with a means to add children to a table with identical padding and expansion options. The values used for the AttachOptions are GTK_EXPAND | GTK_FILL, and the padding is set to 0.

Deprecated: Use gtk_grid_attach() with Grid. Note that the attach arguments differ between those two functions.

The function takes the following parameters:

  • widget: child widget to add.
  • leftAttach: column number to attach the left side of the child widget to.
  • rightAttach: column number to attach the right side of the child widget to.
  • topAttach: row number to attach the top of the child widget to.
  • bottomAttach: row number to attach the bottom of the child widget to.

func (*Table) ColSpacing deprecated

func (table *Table) ColSpacing(column uint) uint

ColSpacing gets the amount of space between column col, and column col + 1. See gtk_table_set_col_spacing().

Deprecated: Grid does not offer a replacement for this functionality.

The function takes the following parameters:

  • column in the table, 0 indicates the first column.

The function returns the following values:

  • guint: column spacing.

func (*Table) DefaultColSpacing deprecated

func (table *Table) DefaultColSpacing() uint

DefaultColSpacing gets the default column spacing for the table. This is the spacing that will be used for newly added columns. (See gtk_table_set_col_spacings())

Deprecated: Use gtk_grid_get_column_spacing() with Grid.

The function returns the following values:

  • guint: default column spacing.

func (*Table) DefaultRowSpacing deprecated

func (table *Table) DefaultRowSpacing() uint

DefaultRowSpacing gets the default row spacing for the table. This is the spacing that will be used for newly added rows. (See gtk_table_set_row_spacings())

Deprecated: Use gtk_grid_get_row_spacing() with Grid.

The function returns the following values:

  • guint: default row spacing.

func (*Table) Homogeneous deprecated

func (table *Table) Homogeneous() bool

Homogeneous returns whether the table cells are all constrained to the same width and height. (See gtk_table_set_homogeneous ())

Deprecated: Use gtk_grid_get_row_homogeneous() and gtk_grid_get_column_homogeneous() with Grid.

The function returns the following values:

  • ok: TRUE if the cells are all constrained to the same size.

func (*Table) Resize deprecated

func (table *Table) Resize(rows, columns uint)

Resize: if you need to change a table’s size after it has been created, this function allows you to do so.

Deprecated: Grid resizes automatically.

The function takes the following parameters:

  • rows: new number of rows.
  • columns: new number of columns.

func (*Table) RowSpacing deprecated

func (table *Table) RowSpacing(row uint) uint

RowSpacing gets the amount of space between row row, and row row + 1. See gtk_table_set_row_spacing().

Deprecated: Grid does not offer a replacement for this functionality.

The function takes the following parameters:

  • row in the table, 0 indicates the first row.

The function returns the following values:

  • guint: row spacing.

func (*Table) SetColSpacing deprecated

func (table *Table) SetColSpacing(column, spacing uint)

SetColSpacing alters the amount of space between a given table column and the following column.

Deprecated: Use gtk_widget_set_margin_start() and gtk_widget_set_margin_end() on the widgets contained in the row if you need this functionality. Grid does not support per-row spacing.

The function takes the following parameters:

  • column whose spacing should be changed.
  • spacing: number of pixels that the spacing should take up.

func (*Table) SetColSpacings deprecated

func (table *Table) SetColSpacings(spacing uint)

SetColSpacings sets the space between every column in table equal to spacing.

Deprecated: Use gtk_grid_set_column_spacing() with Grid.

The function takes the following parameters:

  • spacing: number of pixels of space to place between every column in the table.

func (*Table) SetHomogeneous deprecated

func (table *Table) SetHomogeneous(homogeneous bool)

SetHomogeneous changes the homogenous property of table cells, ie. whether all cells are an equal size or not.

Deprecated: Use gtk_grid_set_row_homogeneous() and gtk_grid_set_column_homogeneous() with Grid.

The function takes the following parameters:

  • homogeneous: set to TRUE to ensure all table cells are the same size. Set to FALSE if this is not your desired behaviour.

func (*Table) SetRowSpacing deprecated

func (table *Table) SetRowSpacing(row, spacing uint)

SetRowSpacing changes the space between a given table row and the subsequent row.

Deprecated: Use gtk_widget_set_margin_top() and gtk_widget_set_margin_bottom() on the widgets contained in the row if you need this functionality. Grid does not support per-row spacing.

The function takes the following parameters:

  • row number whose spacing will be changed.
  • spacing: number of pixels that the spacing should take up.

func (*Table) SetRowSpacings deprecated

func (table *Table) SetRowSpacings(spacing uint)

SetRowSpacings sets the space between every row in table equal to spacing.

Deprecated: Use gtk_grid_set_row_spacing() with Grid.

The function takes the following parameters:

  • spacing: number of pixels of space to place between every row in the table.

func (*Table) Size deprecated

func (table *Table) Size() (rows, columns uint)

Size gets the number of rows and columns in the table.

Deprecated: Grid does not expose the number of columns and rows.

The function returns the following values:

  • rows (optional): return location for the number of rows, or NULL.
  • columns (optional): return location for the number of columns, or NULL.

type TableChild

type TableChild struct {
	// contains filtered or unexported fields
}

TableChild: instance of this type is always passed by reference.

func (*TableChild) BottomAttach

func (t *TableChild) BottomAttach() uint16

func (*TableChild) LeftAttach

func (t *TableChild) LeftAttach() uint16

func (*TableChild) RightAttach

func (t *TableChild) RightAttach() uint16

func (*TableChild) SetBottomAttach

func (t *TableChild) SetBottomAttach(bottomAttach uint16)

func (*TableChild) SetLeftAttach

func (t *TableChild) SetLeftAttach(leftAttach uint16)

func (*TableChild) SetRightAttach

func (t *TableChild) SetRightAttach(rightAttach uint16)

func (*TableChild) SetTopAttach

func (t *TableChild) SetTopAttach(topAttach uint16)

func (*TableChild) SetXpadding

func (t *TableChild) SetXpadding(xpadding uint16)

func (*TableChild) SetYpadding

func (t *TableChild) SetYpadding(ypadding uint16)

func (*TableChild) TopAttach

func (t *TableChild) TopAttach() uint16

func (*TableChild) Widget

func (t *TableChild) Widget() Widgetter

func (*TableChild) Xpadding

func (t *TableChild) Xpadding() uint16

func (*TableChild) Ypadding

func (t *TableChild) Ypadding() uint16

type TableClass added in v0.0.5

type TableClass struct {
	// contains filtered or unexported fields
}

TableClass: instance of this type is always passed by reference.

func (*TableClass) ParentClass added in v0.0.5

func (t *TableClass) ParentClass() *ContainerClass

type TableOverrides added in v0.0.5

type TableOverrides struct {
}

TableOverrides contains methods that are overridable.

type TableRowCol

type TableRowCol struct {
	// contains filtered or unexported fields
}

TableRowCol: instance of this type is always passed by reference.

func (*TableRowCol) Allocation

func (t *TableRowCol) Allocation() uint16

func (*TableRowCol) Requisition

func (t *TableRowCol) Requisition() uint16

func (*TableRowCol) SetAllocation

func (t *TableRowCol) SetAllocation(allocation uint16)

func (*TableRowCol) SetRequisition

func (t *TableRowCol) SetRequisition(requisition uint16)

func (*TableRowCol) SetSpacing

func (t *TableRowCol) SetSpacing(spacing uint16)

func (*TableRowCol) Spacing

func (t *TableRowCol) Spacing() uint16

type TargetEntry

type TargetEntry struct {
	// contains filtered or unexported fields
}

TargetEntry represents a single type of data than can be supplied for by a widget for a selection or for supplied or received during drag-and-drop.

An instance of this type is always passed by reference.

func NewTargetEntry

func NewTargetEntry(target string, flags uint, info uint) *TargetEntry

NewTargetEntry constructs a struct TargetEntry.

func TargetTableNewFromList

func TargetTableNewFromList(list *TargetList) []TargetEntry

TargetTableNewFromList: this function creates an TargetEntry array that contains the same targets as the passed list. The returned table is newly allocated and should be freed using gtk_target_table_free() when no longer needed.

The function takes the following parameters:

  • list: TargetList.

The function returns the following values:

  • targetEntrys: new table.

func ToolPaletteGetDragTargetGroup

func ToolPaletteGetDragTargetGroup() *TargetEntry

ToolPaletteGetDragTargetGroup: get the target entry for a dragged ToolItemGroup.

The function returns the following values:

  • targetEntry for a dragged group.

func ToolPaletteGetDragTargetItem

func ToolPaletteGetDragTargetItem() *TargetEntry

ToolPaletteGetDragTargetItem gets the target entry for a dragged ToolItem.

The function returns the following values:

  • targetEntry for a dragged item.

func (*TargetEntry) Copy

func (data *TargetEntry) Copy() *TargetEntry

Copy makes a copy of a TargetEntry and its data.

The function returns the following values:

  • targetEntry: pointer to a copy of data. Free with gtk_target_entry_free().

func (*TargetEntry) Flags

func (t *TargetEntry) Flags() uint

Flags for DND.

func (*TargetEntry) Info

func (t *TargetEntry) Info() uint

Info: application-assigned integer ID which will get passed as a parameter to e.g the Widget::selection-get signal. It allows the application to identify the target type without extensive string compares.

func (*TargetEntry) SetFlags

func (t *TargetEntry) SetFlags(flags uint)

Flags for DND.

func (*TargetEntry) SetInfo

func (t *TargetEntry) SetInfo(info uint)

Info: application-assigned integer ID which will get passed as a parameter to e.g the Widget::selection-get signal. It allows the application to identify the target type without extensive string compares.

func (*TargetEntry) Target

func (t *TargetEntry) Target() string

Target: string representation of the target type.

type TargetFlags

type TargetFlags C.guint

TargetFlags enumeration is used to specify constraints on a TargetEntry.

const (
	// TargetSameApp: if this is set, the target will only be selected for drags
	// within a single application.
	TargetSameApp TargetFlags = 0b1
	// TargetSameWidget: if this is set, the target will only be selected for
	// drags within a single widget.
	TargetSameWidget TargetFlags = 0b10
	// TargetOtherApp: if this is set, the target will not be selected for drags
	// within a single application.
	TargetOtherApp TargetFlags = 0b100
	// TargetOtherWidget: if this is set, the target will not be selected for
	// drags withing a single widget.
	TargetOtherWidget TargetFlags = 0b1000
)

func (TargetFlags) Has

func (t TargetFlags) Has(other TargetFlags) bool

Has returns true if t contains other.

func (TargetFlags) String

func (t TargetFlags) String() string

String returns the names in string for TargetFlags.

type TargetList

type TargetList struct {
	// contains filtered or unexported fields
}

TargetList is a reference counted list of TargetPair and should be treated as opaque.

An instance of this type is always passed by reference.

func NewTargetList

func NewTargetList(targets []TargetEntry) *TargetList

NewTargetList constructs a struct TargetList.

func (*TargetList) AddImageTargets

func (list *TargetList) AddImageTargets(info uint, writable bool)

AddImageTargets appends the image targets supported by SelectionData to the target list. All targets are added with the same info.

The function takes the following parameters:

  • info: ID that will be passed back to the application.
  • writable: whether to add only targets for which GTK+ knows how to convert a pixbuf into the format.

func (*TargetList) AddRichTextTargets

func (list *TargetList) AddRichTextTargets(info uint, deserializable bool, buffer *TextBuffer)

AddRichTextTargets appends the rich text targets registered with gtk_text_buffer_register_serialize_format() or gtk_text_buffer_register_deserialize_format() to the target list. All targets are added with the same info.

The function takes the following parameters:

  • info: ID that will be passed back to the application.
  • deserializable: if TRUE, then deserializable rich text formats will be added, serializable formats otherwise.
  • buffer: TextBuffer.

func (*TargetList) AddTable

func (list *TargetList) AddTable(targets []TargetEntry)

AddTable prepends a table of TargetEntry to a target list.

The function takes the following parameters:

  • targets: table of TargetEntry.

func (*TargetList) AddTextTargets

func (list *TargetList) AddTextTargets(info uint)

AddTextTargets appends the text targets supported by SelectionData to the target list. All targets are added with the same info.

The function takes the following parameters:

  • info: ID that will be passed back to the application.

func (*TargetList) AddURITargets

func (list *TargetList) AddURITargets(info uint)

AddURITargets appends the URI targets supported by SelectionData to the target list. All targets are added with the same info.

The function takes the following parameters:

  • info: ID that will be passed back to the application.

type TargetPair

type TargetPair struct {
	// contains filtered or unexported fields
}

TargetPair is used to represent the same information as a table of TargetEntry, but in an efficient form.

An instance of this type is always passed by reference.

type TearoffMenuItem

type TearoffMenuItem struct {
	MenuItem
	// contains filtered or unexported fields
}

TearoffMenuItem is a special MenuItem which is used to tear off and reattach its menu.

When its menu is shown normally, the TearoffMenuItem is drawn as a dotted line indicating that the menu can be torn off. Activating it causes its menu to be torn off and displayed in its own window as a tearoff menu.

When its menu is shown as a tearoff menu, the TearoffMenuItem is drawn as a dotted line which has a left pointing arrow graphic indicating that the tearoff menu can be reattached. Activating it will erase the tearoff menu window.

> TearoffMenuItem is deprecated and should not be used in newly > written code. Menus are not meant to be torn around.

func NewTearoffMenuItem deprecated

func NewTearoffMenuItem() *TearoffMenuItem

NewTearoffMenuItem creates a new TearoffMenuItem.

Deprecated: TearoffMenuItem is deprecated and should not be used in newly written code.

The function returns the following values:

  • tearoffMenuItem: new TearoffMenuItem.

type TearoffMenuItemClass added in v0.0.5

type TearoffMenuItemClass struct {
	// contains filtered or unexported fields
}

TearoffMenuItemClass: instance of this type is always passed by reference.

func (*TearoffMenuItemClass) ParentClass added in v0.0.5

func (t *TearoffMenuItemClass) ParentClass() *MenuItemClass

ParentClass: parent class.

type TearoffMenuItemOverrides added in v0.0.5

type TearoffMenuItemOverrides struct {
}

TearoffMenuItemOverrides contains methods that are overridable.

type TextAppearance

type TextAppearance struct {
	// contains filtered or unexported fields
}

TextAppearance: instance of this type is always passed by reference.

func (*TextAppearance) BgColor

func (t *TextAppearance) BgColor() *gdk.Color

BgColor: background Color.

func (*TextAppearance) FgColor

func (t *TextAppearance) FgColor() *gdk.Color

FgColor: foreground Color.

func (*TextAppearance) Rise

func (t *TextAppearance) Rise() int

Rise: super/subscript rise, can be negative.

func (*TextAppearance) SetRise

func (t *TextAppearance) SetRise(rise int)

Rise: super/subscript rise, can be negative.

type TextAttributes

type TextAttributes struct {
	// contains filtered or unexported fields
}

TextAttributes: using TextAttributes directly should rarely be necessary. It’s primarily useful with gtk_text_iter_get_attributes(). As with most GTK+ structs, the fields in this struct should only be read, never modified directly.

An instance of this type is always passed by reference.

func NewTextAttributes

func NewTextAttributes() *TextAttributes

NewTextAttributes constructs a struct TextAttributes.

func (*TextAttributes) Appearance

func (t *TextAttributes) Appearance() *TextAppearance

Appearance for text.

func (*TextAttributes) Copy

func (src *TextAttributes) Copy() *TextAttributes

Copy copies src and returns a new TextAttributes.

The function returns the following values:

  • textAttributes: copy of src, free with gtk_text_attributes_unref().

func (*TextAttributes) CopyValues

func (src *TextAttributes) CopyValues(dest *TextAttributes)

CopyValues copies the values from src to dest so that dest has the same values as src. Frees existing values in dest.

The function takes the following parameters:

  • dest: another TextAttributes.

func (*TextAttributes) Direction

func (t *TextAttributes) Direction() TextDirection

Direction for text.

func (*TextAttributes) Font

Font for text.

func (*TextAttributes) FontScale

func (t *TextAttributes) FontScale() float64

FontScale: font scale factor.

func (*TextAttributes) Indent

func (t *TextAttributes) Indent() int

Indent: amount to indent the paragraph, in pixels.

func (*TextAttributes) Justification

func (t *TextAttributes) Justification() Justification

Justification for text.

func (*TextAttributes) Language

func (t *TextAttributes) Language() *pango.Language

Language for text.

func (*TextAttributes) LeftMargin

func (t *TextAttributes) LeftMargin() int

LeftMargin: width of the left margin in pixels.

func (*TextAttributes) LetterSpacing

func (t *TextAttributes) LetterSpacing() int

LetterSpacing: extra space to insert between graphemes, in Pango units.

func (*TextAttributes) PixelsAboveLines

func (t *TextAttributes) PixelsAboveLines() int

PixelsAboveLines pixels of blank space above paragraphs.

func (*TextAttributes) PixelsBelowLines

func (t *TextAttributes) PixelsBelowLines() int

PixelsBelowLines pixels of blank space below paragraphs.

func (*TextAttributes) PixelsInsideWrap

func (t *TextAttributes) PixelsInsideWrap() int

PixelsInsideWrap pixels of blank space between wrapped lines in a paragraph.

func (*TextAttributes) RightMargin

func (t *TextAttributes) RightMargin() int

RightMargin: width of the right margin in pixels.

func (*TextAttributes) SetFontScale

func (t *TextAttributes) SetFontScale(fontScale float64)

FontScale: font scale factor.

func (*TextAttributes) SetIndent

func (t *TextAttributes) SetIndent(indent int)

Indent: amount to indent the paragraph, in pixels.

func (*TextAttributes) SetLeftMargin

func (t *TextAttributes) SetLeftMargin(leftMargin int)

LeftMargin: width of the left margin in pixels.

func (*TextAttributes) SetLetterSpacing

func (t *TextAttributes) SetLetterSpacing(letterSpacing int)

LetterSpacing: extra space to insert between graphemes, in Pango units.

func (*TextAttributes) SetPixelsAboveLines

func (t *TextAttributes) SetPixelsAboveLines(pixelsAboveLines int)

PixelsAboveLines pixels of blank space above paragraphs.

func (*TextAttributes) SetPixelsBelowLines

func (t *TextAttributes) SetPixelsBelowLines(pixelsBelowLines int)

PixelsBelowLines pixels of blank space below paragraphs.

func (*TextAttributes) SetPixelsInsideWrap

func (t *TextAttributes) SetPixelsInsideWrap(pixelsInsideWrap int)

PixelsInsideWrap pixels of blank space between wrapped lines in a paragraph.

func (*TextAttributes) SetRightMargin

func (t *TextAttributes) SetRightMargin(rightMargin int)

RightMargin: width of the right margin in pixels.

func (*TextAttributes) Tabs

func (t *TextAttributes) Tabs() *pango.TabArray

Tabs: custom TabArray for this text.

func (*TextAttributes) WrapMode

func (t *TextAttributes) WrapMode() WrapMode

WrapMode for text.

type TextBuffer

type TextBuffer struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

TextBuffer: you may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together.

func NewTextBuffer

func NewTextBuffer(table *TextTagTable) *TextBuffer

NewTextBuffer creates a new text buffer.

The function takes the following parameters:

  • table (optional): tag table, or NULL to create a new one.

The function returns the following values:

  • textBuffer: new text buffer.

func (*TextBuffer) AddMark

func (buffer *TextBuffer) AddMark(mark *TextMark, where *TextIter)

AddMark adds the mark at position where. The mark must not be added to another buffer, and if its name is not NULL then there must not be another mark in the buffer with the same name.

Emits the TextBuffer::mark-set signal as notification of the mark's initial placement.

The function takes the following parameters:

  • mark to add.
  • where: location to place mark.

func (*TextBuffer) AddSelectionClipboard

func (buffer *TextBuffer) AddSelectionClipboard(clipboard *Clipboard)

AddSelectionClipboard adds clipboard to the list of clipboards in which the selection contents of buffer are available. In most cases, clipboard will be the Clipboard of type GDK_SELECTION_PRIMARY for a view of buffer.

The function takes the following parameters:

  • clipboard: Clipboard.

func (*TextBuffer) ApplyTag

func (buffer *TextBuffer) ApplyTag(tag *TextTag, start, end *TextIter)

ApplyTag emits the “apply-tag” signal on buffer. The default handler for the signal applies tag to the given range. start and end do not have to be in order.

The function takes the following parameters:

  • tag: TextTag.
  • start: one bound of range to be tagged.
  • end: other bound of range to be tagged.

func (*TextBuffer) ApplyTagByName

func (buffer *TextBuffer) ApplyTagByName(name string, start, end *TextIter)

ApplyTagByName calls gtk_text_tag_table_lookup() on the buffer’s tag table to get a TextTag, then calls gtk_text_buffer_apply_tag().

The function takes the following parameters:

  • name of a named TextTag.
  • start: one bound of range to be tagged.
  • end: other bound of range to be tagged.

func (*TextBuffer) Backspace

func (buffer *TextBuffer) Backspace(iter *TextIter, interactive, defaultEditable bool) bool

Backspace performs the appropriate action as if the user hit the delete key with the cursor at the position specified by iter. In the normal case a single character will be deleted, but when combining accents are involved, more than one character can be deleted, and when precomposed character and accent combinations are involved, less than one character will be deleted.

Because the buffer is modified, all outstanding iterators become invalid after calling this function; however, the iter will be re-initialized to point to the location where text was deleted.

The function takes the following parameters:

  • iter: position in buffer.
  • interactive: whether the deletion is caused by user interaction.
  • defaultEditable: whether the buffer is editable by default.

The function returns the following values:

  • ok: TRUE if the buffer was modified.

func (*TextBuffer) BeginUserAction

func (buffer *TextBuffer) BeginUserAction()

BeginUserAction: called to indicate that the buffer operations between here and a call to gtk_text_buffer_end_user_action() are part of a single user-visible operation. The operations between gtk_text_buffer_begin_user_action() and gtk_text_buffer_end_user_action() can then be grouped when creating an undo stack. TextBuffer maintains a count of calls to gtk_text_buffer_begin_user_action() that have not been closed with a call to gtk_text_buffer_end_user_action(), and emits the “begin-user-action” and “end-user-action” signals only for the outermost pair of calls. This allows you to build user actions from other user actions.

The “interactive” buffer mutation functions, such as gtk_text_buffer_insert_interactive(), automatically call begin/end user action around the buffer operations they perform, so there's no need to add extra calls if you user action consists solely of a single call to one of those functions.

func (*TextBuffer) Bounds

func (buffer *TextBuffer) Bounds() (start, end *TextIter)

Bounds retrieves the first and last iterators in the buffer, i.e. the entire buffer lies within the range [start,end).

The function returns the following values:

  • start: iterator to initialize with first position in the buffer.
  • end: iterator to initialize with the end iterator.

func (*TextBuffer) CharCount

func (buffer *TextBuffer) CharCount() int

CharCount gets the number of characters in the buffer; note that characters and bytes are not the same, you can’t e.g. expect the contents of the buffer in string form to be this many bytes long. The character count is cached, so this function is very fast.

The function returns the following values:

  • gint: number of characters in the buffer.

func (*TextBuffer) ConnectApplyTag

func (buffer *TextBuffer) ConnectApplyTag(f func(tag *TextTag, start, end *TextIter)) coreglib.SignalHandle

ConnectApplyTag signal is emitted to apply a tag to a range of text in a TextBuffer. Applying actually occurs in the default handler.

Note that if your handler runs before the default handler it must not invalidate the start and end iters (or has to revalidate them).

See also: gtk_text_buffer_apply_tag(), gtk_text_buffer_insert_with_tags(), gtk_text_buffer_insert_range().

func (*TextBuffer) ConnectBeginUserAction

func (buffer *TextBuffer) ConnectBeginUserAction(f func()) coreglib.SignalHandle

ConnectBeginUserAction signal is emitted at the beginning of a single user-visible operation on a TextBuffer.

See also: gtk_text_buffer_begin_user_action(), gtk_text_buffer_insert_interactive(), gtk_text_buffer_insert_range_interactive(), gtk_text_buffer_delete_interactive(), gtk_text_buffer_backspace(), gtk_text_buffer_delete_selection().

func (*TextBuffer) ConnectChanged

func (buffer *TextBuffer) ConnectChanged(f func()) coreglib.SignalHandle

ConnectChanged signal is emitted when the content of a TextBuffer has changed.

func (*TextBuffer) ConnectDeleteRange

func (buffer *TextBuffer) ConnectDeleteRange(f func(start, end *TextIter)) coreglib.SignalHandle

ConnectDeleteRange signal is emitted to delete a range from a TextBuffer.

Note that if your handler runs before the default handler it must not invalidate the start and end iters (or has to revalidate them). The default signal handler revalidates the start and end iters to both point to the location where text was deleted. Handlers which run after the default handler (see g_signal_connect_after()) do not have access to the deleted text.

See also: gtk_text_buffer_delete().

func (*TextBuffer) ConnectEndUserAction

func (buffer *TextBuffer) ConnectEndUserAction(f func()) coreglib.SignalHandle

ConnectEndUserAction signal is emitted at the end of a single user-visible operation on the TextBuffer.

See also: gtk_text_buffer_end_user_action(), gtk_text_buffer_insert_interactive(), gtk_text_buffer_insert_range_interactive(), gtk_text_buffer_delete_interactive(), gtk_text_buffer_backspace(), gtk_text_buffer_delete_selection(), gtk_text_buffer_backspace().

func (*TextBuffer) ConnectInsertChildAnchor

func (buffer *TextBuffer) ConnectInsertChildAnchor(f func(location *TextIter, anchor *TextChildAnchor)) coreglib.SignalHandle

ConnectInsertChildAnchor signal is emitted to insert a TextChildAnchor in a TextBuffer. Insertion actually occurs in the default handler.

Note that if your handler runs before the default handler it must not invalidate the location iter (or has to revalidate it). The default signal handler revalidates it to be placed after the inserted anchor.

See also: gtk_text_buffer_insert_child_anchor().

func (*TextBuffer) ConnectInsertPixbuf

func (buffer *TextBuffer) ConnectInsertPixbuf(f func(location *TextIter, pixbuf *gdkpixbuf.Pixbuf)) coreglib.SignalHandle

ConnectInsertPixbuf signal is emitted to insert a Pixbuf in a TextBuffer. Insertion actually occurs in the default handler.

Note that if your handler runs before the default handler it must not invalidate the location iter (or has to revalidate it). The default signal handler revalidates it to be placed after the inserted pixbuf.

See also: gtk_text_buffer_insert_pixbuf().

func (*TextBuffer) ConnectInsertText

func (buffer *TextBuffer) ConnectInsertText(f func(location *TextIter, text string, len int)) coreglib.SignalHandle

ConnectInsertText signal is emitted to insert text in a TextBuffer. Insertion actually occurs in the default handler.

Note that if your handler runs before the default handler it must not invalidate the location iter (or has to revalidate it). The default signal handler revalidates it to point to the end of the inserted text.

See also: gtk_text_buffer_insert(), gtk_text_buffer_insert_range().

func (*TextBuffer) ConnectMarkDeleted

func (buffer *TextBuffer) ConnectMarkDeleted(f func(mark *TextMark)) coreglib.SignalHandle

ConnectMarkDeleted signal is emitted as notification after a TextMark is deleted.

See also: gtk_text_buffer_delete_mark().

func (*TextBuffer) ConnectMarkSet

func (buffer *TextBuffer) ConnectMarkSet(f func(location *TextIter, mark *TextMark)) coreglib.SignalHandle

ConnectMarkSet signal is emitted as notification after a TextMark is set.

See also: gtk_text_buffer_create_mark(), gtk_text_buffer_move_mark().

func (*TextBuffer) ConnectModifiedChanged

func (buffer *TextBuffer) ConnectModifiedChanged(f func()) coreglib.SignalHandle

ConnectModifiedChanged signal is emitted when the modified bit of a TextBuffer flips.

See also: gtk_text_buffer_set_modified().

func (*TextBuffer) ConnectPasteDone

func (buffer *TextBuffer) ConnectPasteDone(f func(clipboard *Clipboard)) coreglib.SignalHandle

ConnectPasteDone signal is emitted after paste operation has been completed. This is useful to properly scroll the view to the end of the pasted text. See gtk_text_buffer_paste_clipboard() for more details.

func (*TextBuffer) ConnectRemoveTag

func (buffer *TextBuffer) ConnectRemoveTag(f func(tag *TextTag, start, end *TextIter)) coreglib.SignalHandle

ConnectRemoveTag signal is emitted to remove all occurrences of tag from a range of text in a TextBuffer. Removal actually occurs in the default handler.

Note that if your handler runs before the default handler it must not invalidate the start and end iters (or has to revalidate them).

See also: gtk_text_buffer_remove_tag().

func (*TextBuffer) CopyClipboard

func (buffer *TextBuffer) CopyClipboard(clipboard *Clipboard)

CopyClipboard copies the currently-selected text to a clipboard.

The function takes the following parameters:

  • clipboard object to copy to.

func (*TextBuffer) CopyTargetList

func (buffer *TextBuffer) CopyTargetList() *TargetList

CopyTargetList: this function returns the list of targets this text buffer can provide for copying and as DND source. The targets in the list are added with info values from the TextBufferTargetInfo enum, using gtk_target_list_add_rich_text_targets() and gtk_target_list_add_text_targets().

The function returns the following values:

  • targetList: TargetList.

func (*TextBuffer) CreateChildAnchor

func (buffer *TextBuffer) CreateChildAnchor(iter *TextIter) *TextChildAnchor

CreateChildAnchor: this is a convenience function which simply creates a child anchor with gtk_text_child_anchor_new() and inserts it into the buffer with gtk_text_buffer_insert_child_anchor(). The new anchor is owned by the buffer; no reference count is returned to the caller of gtk_text_buffer_create_child_anchor().

The function takes the following parameters:

  • iter: location in the buffer.

The function returns the following values:

  • textChildAnchor: created child anchor.

func (*TextBuffer) CreateMark

func (buffer *TextBuffer) CreateMark(markName string, where *TextIter, leftGravity bool) *TextMark

CreateMark creates a mark at position where. If mark_name is NULL, the mark is anonymous; otherwise, the mark can be retrieved by name using gtk_text_buffer_get_mark(). If a mark has left gravity, and text is inserted at the mark’s current location, the mark will be moved to the left of the newly-inserted text. If the mark has right gravity (left_gravity = FALSE), the mark will end up on the right of newly-inserted text. The standard left-to-right cursor is a mark with right gravity (when you type, the cursor stays on the right side of the text you’re typing).

The caller of this function does not own a reference to the returned TextMark, so you can ignore the return value if you like. Marks are owned by the buffer and go away when the buffer does.

Emits the TextBuffer::mark-set signal as notification of the mark's initial placement.

The function takes the following parameters:

  • markName (optional): name for mark, or NULL.
  • where: location to place mark.
  • leftGravity: whether the mark has left gravity.

The function returns the following values:

  • textMark: new TextMark object.

func (*TextBuffer) CutClipboard

func (buffer *TextBuffer) CutClipboard(clipboard *Clipboard, defaultEditable bool)

CutClipboard copies the currently-selected text to a clipboard, then deletes said text if it’s editable.

The function takes the following parameters:

  • clipboard object to cut to.
  • defaultEditable: default editability of the buffer.

func (*TextBuffer) Delete

func (buffer *TextBuffer) Delete(start, end *TextIter)

Delete deletes text between start and end. The order of start and end is not actually relevant; gtk_text_buffer_delete() will reorder them. This function actually emits the “delete-range” signal, and the default handler of that signal deletes the text. Because the buffer is modified, all outstanding iterators become invalid after calling this function; however, the start and end will be re-initialized to point to the location where text was deleted.

The function takes the following parameters:

  • start: position in buffer.
  • end: another position in buffer.

func (*TextBuffer) DeleteInteractive

func (buffer *TextBuffer) DeleteInteractive(startIter, endIter *TextIter, defaultEditable bool) bool

DeleteInteractive deletes all editable text in the given range. Calls gtk_text_buffer_delete() for each editable sub-range of [start,end). start and end are revalidated to point to the location of the last deleted range, or left untouched if no text was deleted.

The function takes the following parameters:

  • startIter: start of range to delete.
  • endIter: end of range.
  • defaultEditable: whether the buffer is editable by default.

The function returns the following values:

  • ok: whether some text was actually deleted.

func (*TextBuffer) DeleteMark

func (buffer *TextBuffer) DeleteMark(mark *TextMark)

DeleteMark deletes mark, so that it’s no longer located anywhere in the buffer. Removes the reference the buffer holds to the mark, so if you haven’t called g_object_ref() on the mark, it will be freed. Even if the mark isn’t freed, most operations on mark become invalid, until it gets added to a buffer again with gtk_text_buffer_add_mark(). Use gtk_text_mark_get_deleted() to find out if a mark has been removed from its buffer. The TextBuffer::mark-deleted signal will be emitted as notification after the mark is deleted.

The function takes the following parameters:

  • mark in buffer.

func (*TextBuffer) DeleteMarkByName

func (buffer *TextBuffer) DeleteMarkByName(name string)

DeleteMarkByName deletes the mark named name; the mark must exist. See gtk_text_buffer_delete_mark() for details.

The function takes the following parameters:

  • name of a mark in buffer.

func (*TextBuffer) DeleteSelection

func (buffer *TextBuffer) DeleteSelection(interactive, defaultEditable bool) bool

DeleteSelection deletes the range between the “insert” and “selection_bound” marks, that is, the currently-selected text. If interactive is TRUE, the editability of the selection will be considered (users can’t delete uneditable text).

The function takes the following parameters:

  • interactive: whether the deletion is caused by user interaction.
  • defaultEditable: whether the buffer is editable by default.

The function returns the following values:

  • ok: whether there was a non-empty selection to delete.

func (*TextBuffer) EndIter

func (buffer *TextBuffer) EndIter() *TextIter

EndIter initializes iter with the “end iterator,” one past the last valid character in the text buffer. If dereferenced with gtk_text_iter_get_char(), the end iterator has a character value of 0. The entire buffer lies in the range from the first position in the buffer (call gtk_text_buffer_get_start_iter() to get character position 0) to the end iterator.

The function returns the following values:

  • iter: iterator to initialize.

func (*TextBuffer) EndUserAction

func (buffer *TextBuffer) EndUserAction()

EndUserAction: should be paired with a call to gtk_text_buffer_begin_user_action(). See that function for a full explanation.

func (*TextBuffer) GetInsert

func (buffer *TextBuffer) GetInsert() *TextMark

GetInsert returns the mark that represents the cursor (insertion point). Equivalent to calling gtk_text_buffer_get_mark() to get the mark named “insert”, but very slightly more efficient, and involves less typing.

The function returns the following values:

  • textMark: insertion point mark.

func (*TextBuffer) HasSelection

func (buffer *TextBuffer) HasSelection() bool

HasSelection indicates whether the buffer has some text currently selected.

The function returns the following values:

  • ok: TRUE if the there is text selected.

func (*TextBuffer) Insert

func (buffer *TextBuffer) Insert(iter *TextIter, text string)

Insert inserts len bytes of text at position iter. If len is -1, text must be nul-terminated and will be inserted in its entirety. Emits the “insert-text” signal; insertion actually occurs in the default handler for the signal. iter is invalidated when insertion occurs (because the buffer contents change), but the default signal handler revalidates it to point to the end of the inserted text.

The function takes the following parameters:

  • iter: position in the buffer.
  • text in UTF-8 format.

func (*TextBuffer) InsertAtCursor

func (buffer *TextBuffer) InsertAtCursor(text string)

InsertAtCursor: simply calls gtk_text_buffer_insert(), using the current cursor position as the insertion point.

The function takes the following parameters:

  • text in UTF-8 format.

func (*TextBuffer) InsertChildAnchor

func (buffer *TextBuffer) InsertChildAnchor(iter *TextIter, anchor *TextChildAnchor)

InsertChildAnchor inserts a child widget anchor into the text buffer at iter. The anchor will be counted as one character in character counts, and when obtaining the buffer contents as a string, will be represented by the Unicode “object replacement character” 0xFFFC. Note that the “slice” variants for obtaining portions of the buffer as a string include this character for child anchors, but the “text” variants do not. E.g. see gtk_text_buffer_get_slice() and gtk_text_buffer_get_text(). Consider gtk_text_buffer_create_child_anchor() as a more convenient alternative to this function. The buffer will add a reference to the anchor, so you can unref it after insertion.

The function takes the following parameters:

  • iter: location to insert the anchor.
  • anchor: TextChildAnchor.

func (*TextBuffer) InsertInteractive

func (buffer *TextBuffer) InsertInteractive(iter *TextIter, text string, defaultEditable bool) bool

InsertInteractive: like gtk_text_buffer_insert(), but the insertion will not occur if iter is at a non-editable location in the buffer. Usually you want to prevent insertions at ineditable locations if the insertion results from a user action (is interactive).

default_editable indicates the editability of text that doesn't have a tag affecting editability applied to it. Typically the result of gtk_text_view_get_editable() is appropriate here.

The function takes the following parameters:

  • iter: position in buffer.
  • text: some UTF-8 text.
  • defaultEditable: default editability of buffer.

The function returns the following values:

  • ok: whether text was actually inserted.

func (*TextBuffer) InsertInteractiveAtCursor

func (buffer *TextBuffer) InsertInteractiveAtCursor(text string, defaultEditable bool) bool

InsertInteractiveAtCursor calls gtk_text_buffer_insert_interactive() at the cursor position.

default_editable indicates the editability of text that doesn't have a tag affecting editability applied to it. Typically the result of gtk_text_view_get_editable() is appropriate here.

The function takes the following parameters:

  • text in UTF-8 format.
  • defaultEditable: default editability of buffer.

The function returns the following values:

  • ok: whether text was actually inserted.

func (*TextBuffer) InsertMarkup

func (buffer *TextBuffer) InsertMarkup(iter *TextIter, markup string)

InsertMarkup inserts the text in markup at position iter. markup will be inserted in its entirety and must be nul-terminated and valid UTF-8. Emits the TextBuffer::insert-text signal, possibly multiple times; insertion actually occurs in the default handler for the signal. iter will point to the end of the inserted text on return.

The function takes the following parameters:

  • iter: location to insert the markup.
  • markup: nul-terminated UTF-8 string containing [Pango markup][PangoMarkupFormat].

func (*TextBuffer) InsertPixbuf

func (buffer *TextBuffer) InsertPixbuf(iter *TextIter, pixbuf *gdkpixbuf.Pixbuf)

InsertPixbuf inserts an image into the text buffer at iter. The image will be counted as one character in character counts, and when obtaining the buffer contents as a string, will be represented by the Unicode “object replacement character” 0xFFFC. Note that the “slice” variants for obtaining portions of the buffer as a string include this character for pixbufs, but the “text” variants do not. e.g. see gtk_text_buffer_get_slice() and gtk_text_buffer_get_text().

The function takes the following parameters:

  • iter: location to insert the pixbuf.
  • pixbuf: Pixbuf.

func (*TextBuffer) InsertRange

func (buffer *TextBuffer) InsertRange(iter, start, end *TextIter)

InsertRange copies text, tags, and pixbufs between start and end (the order of start and end doesn’t matter) and inserts the copy at iter. Used instead of simply getting/inserting text because it preserves images and tags. If start and end are in a different buffer from buffer, the two buffers must share the same tag table.

Implemented via emissions of the insert_text and apply_tag signals, so expect those.

The function takes the following parameters:

  • iter: position in buffer.
  • start: position in a TextBuffer.
  • end: another position in the same buffer as start.

func (*TextBuffer) InsertRangeInteractive

func (buffer *TextBuffer) InsertRangeInteractive(iter, start, end *TextIter, defaultEditable bool) bool

InsertRangeInteractive: same as gtk_text_buffer_insert_range(), but does nothing if the insertion point isn’t editable. The default_editable parameter indicates whether the text is editable at iter if no tags enclosing iter affect editability. Typically the result of gtk_text_view_get_editable() is appropriate here.

The function takes the following parameters:

  • iter: position in buffer.
  • start: position in a TextBuffer.
  • end: another position in the same buffer as start.
  • defaultEditable: default editability of the buffer.

The function returns the following values:

  • ok: whether an insertion was possible at iter.

func (*TextBuffer) IterAtChildAnchor

func (buffer *TextBuffer) IterAtChildAnchor(anchor *TextChildAnchor) *TextIter

IterAtChildAnchor obtains the location of anchor within buffer.

The function takes the following parameters:

  • anchor: child anchor that appears in buffer.

The function returns the following values:

  • iter: iterator to be initialized.

func (*TextBuffer) IterAtLine

func (buffer *TextBuffer) IterAtLine(lineNumber int) *TextIter

IterAtLine initializes iter to the start of the given line. If line_number is greater than the number of lines in the buffer, the end iterator is returned.

The function takes the following parameters:

  • lineNumber: line number counting from 0.

The function returns the following values:

  • iter: iterator to initialize.

func (*TextBuffer) IterAtLineIndex

func (buffer *TextBuffer) IterAtLineIndex(lineNumber, byteIndex int) *TextIter

IterAtLineIndex obtains an iterator pointing to byte_index within the given line. byte_index must be the start of a UTF-8 character. Note bytes, not characters; UTF-8 may encode one character as multiple bytes.

Before the 3.20 version, it was not allowed to pass an invalid location.

Since the 3.20 version, if line_number is greater than the number of lines in the buffer, the end iterator is returned. And if byte_index is off the end of the line, the iterator at the end of the line is returned.

The function takes the following parameters:

  • lineNumber: line number counting from 0.
  • byteIndex: byte index from start of line.

The function returns the following values:

  • iter: iterator to initialize.

func (*TextBuffer) IterAtLineOffset

func (buffer *TextBuffer) IterAtLineOffset(lineNumber, charOffset int) *TextIter

IterAtLineOffset obtains an iterator pointing to char_offset within the given line. Note characters, not bytes; UTF-8 may encode one character as multiple bytes.

Before the 3.20 version, it was not allowed to pass an invalid location.

Since the 3.20 version, if line_number is greater than the number of lines in the buffer, the end iterator is returned. And if char_offset is off the end of the line, the iterator at the end of the line is returned.

The function takes the following parameters:

  • lineNumber: line number counting from 0.
  • charOffset: char offset from start of line.

The function returns the following values:

  • iter: iterator to initialize.

func (*TextBuffer) IterAtMark

func (buffer *TextBuffer) IterAtMark(mark *TextMark) *TextIter

IterAtMark initializes iter with the current position of mark.

The function takes the following parameters:

  • mark in buffer.

The function returns the following values:

  • iter: iterator to initialize.

func (*TextBuffer) IterAtOffset

func (buffer *TextBuffer) IterAtOffset(charOffset int) *TextIter

IterAtOffset initializes iter to a position char_offset chars from the start of the entire buffer. If char_offset is -1 or greater than the number of characters in the buffer, iter is initialized to the end iterator, the iterator one past the last valid character in the buffer.

The function takes the following parameters:

  • charOffset: char offset from start of buffer, counting from 0, or -1.

The function returns the following values:

  • iter: iterator to initialize.

func (*TextBuffer) LineCount

func (buffer *TextBuffer) LineCount() int

LineCount obtains the number of lines in the buffer. This value is cached, so the function is very fast.

The function returns the following values:

  • gint: number of lines in the buffer.

func (*TextBuffer) Mark

func (buffer *TextBuffer) Mark(name string) *TextMark

Mark returns the mark named name in buffer buffer, or NULL if no such mark exists in the buffer.

The function takes the following parameters:

  • name: mark name.

The function returns the following values:

  • textMark (optional) or NULL.

func (*TextBuffer) Modified

func (buffer *TextBuffer) Modified() bool

Modified indicates whether the buffer has been modified since the last call to gtk_text_buffer_set_modified() set the modification flag to FALSE. Used for example to enable a “save” function in a text editor.

The function returns the following values:

  • ok: TRUE if the buffer has been modified.

func (*TextBuffer) MoveMark

func (buffer *TextBuffer) MoveMark(mark *TextMark, where *TextIter)

MoveMark moves mark to the new location where. Emits the TextBuffer::mark-set signal as notification of the move.

The function takes the following parameters:

  • mark: TextMark.
  • where: new location for mark in buffer.

func (*TextBuffer) MoveMarkByName

func (buffer *TextBuffer) MoveMarkByName(name string, where *TextIter)

MoveMarkByName moves the mark named name (which must exist) to location where. See gtk_text_buffer_move_mark() for details.

The function takes the following parameters:

  • name of a mark.
  • where: new location for mark.

func (*TextBuffer) PasteClipboard

func (buffer *TextBuffer) PasteClipboard(clipboard *Clipboard, overrideLocation *TextIter, defaultEditable bool)

PasteClipboard pastes the contents of a clipboard. If override_location is NULL, the pasted text will be inserted at the cursor position, or the buffer selection will be replaced if the selection is non-empty.

Note: pasting is asynchronous, that is, we’ll ask for the paste data and return, and at some point later after the main loop runs, the paste data will be inserted.

The function takes the following parameters:

  • clipboard to paste from.
  • overrideLocation (optional): location to insert pasted text, or NULL.
  • defaultEditable: whether the buffer is editable by default.

func (*TextBuffer) PasteTargetList

func (buffer *TextBuffer) PasteTargetList() *TargetList

PasteTargetList: this function returns the list of targets this text buffer supports for pasting and as DND destination. The targets in the list are added with info values from the TextBufferTargetInfo enum, using gtk_target_list_add_rich_text_targets() and gtk_target_list_add_text_targets().

The function returns the following values:

  • targetList: TargetList.

func (*TextBuffer) PlaceCursor

func (buffer *TextBuffer) PlaceCursor(where *TextIter)

PlaceCursor: this function moves the “insert” and “selection_bound” marks simultaneously. If you move them to the same place in two steps with gtk_text_buffer_move_mark(), you will temporarily select a region in between their old and new locations, which can be pretty inefficient since the temporarily-selected region will force stuff to be recalculated. This function moves them as a unit, which can be optimized.

The function takes the following parameters:

  • where to put the cursor.

func (*TextBuffer) RemoveAllTags

func (buffer *TextBuffer) RemoveAllTags(start, end *TextIter)

RemoveAllTags removes all tags in the range between start and end. Be careful with this function; it could remove tags added in code unrelated to the code you’re currently writing. That is, using this function is probably a bad idea if you have two or more unrelated code sections that add tags.

The function takes the following parameters:

  • start: one bound of range to be untagged.
  • end: other bound of range to be untagged.

func (*TextBuffer) RemoveSelectionClipboard

func (buffer *TextBuffer) RemoveSelectionClipboard(clipboard *Clipboard)

RemoveSelectionClipboard removes a Clipboard added with gtk_text_buffer_add_selection_clipboard().

The function takes the following parameters:

  • clipboard added to buffer by gtk_text_buffer_add_selection_clipboard().

func (*TextBuffer) RemoveTag

func (buffer *TextBuffer) RemoveTag(tag *TextTag, start, end *TextIter)

RemoveTag emits the “remove-tag” signal. The default handler for the signal removes all occurrences of tag from the given range. start and end don’t have to be in order.

The function takes the following parameters:

  • tag: TextTag.
  • start: one bound of range to be untagged.
  • end: other bound of range to be untagged.

func (*TextBuffer) RemoveTagByName

func (buffer *TextBuffer) RemoveTagByName(name string, start, end *TextIter)

RemoveTagByName calls gtk_text_tag_table_lookup() on the buffer’s tag table to get a TextTag, then calls gtk_text_buffer_remove_tag().

The function takes the following parameters:

  • name of a TextTag.
  • start: one bound of range to be untagged.
  • end: other bound of range to be untagged.

func (*TextBuffer) SelectRange

func (buffer *TextBuffer) SelectRange(ins, bound *TextIter)

SelectRange: this function moves the “insert” and “selection_bound” marks simultaneously. If you move them in two steps with gtk_text_buffer_move_mark(), you will temporarily select a region in between their old and new locations, which can be pretty inefficient since the temporarily-selected region will force stuff to be recalculated. This function moves them as a unit, which can be optimized.

The function takes the following parameters:

  • ins: where to put the “insert” mark.
  • bound: where to put the “selection_bound” mark.

func (*TextBuffer) SelectionBound

func (buffer *TextBuffer) SelectionBound() *TextMark

SelectionBound returns the mark that represents the selection bound. Equivalent to calling gtk_text_buffer_get_mark() to get the mark named “selection_bound”, but very slightly more efficient, and involves less typing.

The currently-selected text in buffer is the region between the “selection_bound” and “insert” marks. If “selection_bound” and “insert” are in the same place, then there is no current selection. gtk_text_buffer_get_selection_bounds() is another convenient function for handling the selection, if you just want to know whether there’s a selection and what its bounds are.

The function returns the following values:

  • textMark: selection bound mark.

func (*TextBuffer) SelectionBounds

func (buffer *TextBuffer) SelectionBounds() (start, end *TextIter, ok bool)

SelectionBounds returns TRUE if some text is selected; places the bounds of the selection in start and end (if the selection has length 0, then start and end are filled in with the same value). start and end will be in ascending order. If start and end are NULL, then they are not filled in, but the return value still indicates whether text is selected.

The function returns the following values:

  • start: iterator to initialize with selection start.
  • end: iterator to initialize with selection end.
  • ok: whether the selection has nonzero length.

func (*TextBuffer) SetModified

func (buffer *TextBuffer) SetModified(setting bool)

SetModified: used to keep track of whether the buffer has been modified since the last time it was saved. Whenever the buffer is saved to disk, call gtk_text_buffer_set_modified (buffer, FALSE). When the buffer is modified, it will automatically toggled on the modified bit again. When the modified bit flips, the buffer emits the TextBuffer::modified-changed signal.

The function takes the following parameters:

  • setting: modification flag setting.

func (*TextBuffer) SetText

func (buffer *TextBuffer) SetText(text string)

SetText deletes current contents of buffer, and inserts text instead. If len is -1, text must be nul-terminated. text must be valid UTF-8.

The function takes the following parameters:

  • text: UTF-8 text to insert.

func (*TextBuffer) Slice

func (buffer *TextBuffer) Slice(start, end *TextIter, includeHiddenChars bool) string

Slice returns the text in the range [start,end). Excludes undisplayed text (text marked with tags that set the invisibility attribute) if include_hidden_chars is FALSE. The returned string includes a 0xFFFC character whenever the buffer contains embedded images, so byte and character indexes into the returned string do correspond to byte and character indexes into the buffer. Contrast with gtk_text_buffer_get_text(). Note that 0xFFFC can occur in normal text as well, so it is not a reliable indicator that a pixbuf or widget is in the buffer.

The function takes the following parameters:

  • start of a range.
  • end of a range.
  • includeHiddenChars: whether to include invisible text.

The function returns the following values:

  • utf8: allocated UTF-8 string.

func (*TextBuffer) StartIter

func (buffer *TextBuffer) StartIter() *TextIter

StartIter: initialized iter with the first position in the text buffer. This is the same as using gtk_text_buffer_get_iter_at_offset() to get the iter at character offset 0.

The function returns the following values:

  • iter: iterator to initialize.

func (*TextBuffer) TagTable

func (buffer *TextBuffer) TagTable() *TextTagTable

TagTable: get the TextTagTable associated with this buffer.

The function returns the following values:

  • textTagTable buffer’s tag table.

func (*TextBuffer) Text

func (buffer *TextBuffer) Text(start, end *TextIter, includeHiddenChars bool) string

Text returns the text in the range [start,end). Excludes undisplayed text (text marked with tags that set the invisibility attribute) if include_hidden_chars is FALSE. Does not include characters representing embedded images, so byte and character indexes into the returned string do not correspond to byte and character indexes into the buffer. Contrast with gtk_text_buffer_get_slice().

The function takes the following parameters:

  • start of a range.
  • end of a range.
  • includeHiddenChars: whether to include invisible text.

The function returns the following values:

  • utf8: allocated UTF-8 string.

type TextBufferClass added in v0.0.5

type TextBufferClass struct {
	// contains filtered or unexported fields
}

TextBufferClass: instance of this type is always passed by reference.

type TextBufferDeserializeFunc

type TextBufferDeserializeFunc func(registerBuffer, contentBuffer *TextBuffer, iter *TextIter, data []byte, createTags bool) (_goerr error)

TextBufferDeserializeFunc: function that is called to deserialize rich text that has been serialized with gtk_text_buffer_serialize(), and insert it at iter.

type TextBufferOverrides added in v0.0.5

type TextBufferOverrides struct {
	// ApplyTag emits the “apply-tag” signal on buffer. The default handler for
	// the signal applies tag to the given range. start and end do not have to
	// be in order.
	//
	// The function takes the following parameters:
	//
	//   - tag: TextTag.
	//   - start: one bound of range to be tagged.
	//   - end: other bound of range to be tagged.
	//
	ApplyTag func(tag *TextTag, start, end *TextIter)
	// BeginUserAction: called to indicate that the buffer operations
	// between here and a call to gtk_text_buffer_end_user_action() are
	// part of a single user-visible operation. The operations between
	// gtk_text_buffer_begin_user_action() and gtk_text_buffer_end_user_action()
	// can then be grouped when creating an undo stack. TextBuffer maintains a
	// count of calls to gtk_text_buffer_begin_user_action() that have not been
	// closed with a call to gtk_text_buffer_end_user_action(), and emits the
	// “begin-user-action” and “end-user-action” signals only for the outermost
	// pair of calls. This allows you to build user actions from other user
	// actions.
	//
	// The “interactive” buffer mutation functions, such as
	// gtk_text_buffer_insert_interactive(), automatically call begin/end user
	// action around the buffer operations they perform, so there's no need to
	// add extra calls if you user action consists solely of a single call to
	// one of those functions.
	BeginUserAction func()
	Changed         func()
	// The function takes the following parameters:
	//
	//   - start
	//   - end
	//
	DeleteRange func(start, end *TextIter)
	// EndUserAction: should be paired with a call to
	// gtk_text_buffer_begin_user_action(). See that function for a full
	// explanation.
	EndUserAction func()
	// InsertChildAnchor inserts a child widget anchor into the text buffer at
	// iter. The anchor will be counted as one character in character counts,
	// and when obtaining the buffer contents as a string, will be represented
	// by the Unicode “object replacement character” 0xFFFC. Note that the
	// “slice” variants for obtaining portions of the buffer as a string include
	// this character for child anchors, but the “text” variants do not. E.g.
	// see gtk_text_buffer_get_slice() and gtk_text_buffer_get_text(). Consider
	// gtk_text_buffer_create_child_anchor() as a more convenient alternative to
	// this function. The buffer will add a reference to the anchor, so you can
	// unref it after insertion.
	//
	// The function takes the following parameters:
	//
	//   - iter: location to insert the anchor.
	//   - anchor: TextChildAnchor.
	//
	InsertChildAnchor func(iter *TextIter, anchor *TextChildAnchor)
	// InsertPixbuf inserts an image into the text buffer at iter.
	// The image will be counted as one character in character counts,
	// and when obtaining the buffer contents as a string, will be represented
	// by the Unicode “object replacement character” 0xFFFC. Note that the
	// “slice” variants for obtaining portions of the buffer as a string
	// include this character for pixbufs, but the “text” variants do not. e.g.
	// see gtk_text_buffer_get_slice() and gtk_text_buffer_get_text().
	//
	// The function takes the following parameters:
	//
	//   - iter: location to insert the pixbuf.
	//   - pixbuf: Pixbuf.
	//
	InsertPixbuf func(iter *TextIter, pixbuf *gdkpixbuf.Pixbuf)
	// The function takes the following parameters:
	//
	//   - pos
	//   - newText
	//   - newTextLength
	//
	InsertText func(pos *TextIter, newText string, newTextLength int)
	// The function takes the following parameters:
	//
	MarkDeleted func(mark *TextMark)
	// The function takes the following parameters:
	//
	//   - location
	//   - mark
	//
	MarkSet         func(location *TextIter, mark *TextMark)
	ModifiedChanged func()
	// The function takes the following parameters:
	//
	PasteDone func(clipboard *Clipboard)
	// RemoveTag emits the “remove-tag” signal. The default handler for the
	// signal removes all occurrences of tag from the given range. start and end
	// don’t have to be in order.
	//
	// The function takes the following parameters:
	//
	//   - tag: TextTag.
	//   - start: one bound of range to be untagged.
	//   - end: other bound of range to be untagged.
	//
	RemoveTag func(tag *TextTag, start, end *TextIter)
}

TextBufferOverrides contains methods that are overridable.

type TextBufferSerializeFunc

type TextBufferSerializeFunc func(registerBuffer, contentBuffer *TextBuffer, start, end *TextIter) (length uint, guint8 *byte)

TextBufferSerializeFunc: function that is called to serialize the content of a text buffer. It must return the serialized form of the content.

type TextBufferTargetInfo

type TextBufferTargetInfo C.gint

TextBufferTargetInfo: these values are used as “info” for the targets contained in the lists returned by gtk_text_buffer_get_copy_target_list() and gtk_text_buffer_get_paste_target_list().

The values counts down from -1 to avoid clashes with application added drag destinations which usually start at 0.

const (
	// TextBufferTargetInfoBufferContents: buffer contents.
	TextBufferTargetInfoBufferContents TextBufferTargetInfo = -1
	// TextBufferTargetInfoRichText: rich text.
	TextBufferTargetInfoRichText TextBufferTargetInfo = -2
	// TextBufferTargetInfoText: text.
	TextBufferTargetInfoText TextBufferTargetInfo = -3
)

func (TextBufferTargetInfo) String

func (t TextBufferTargetInfo) String() string

String returns the name in string for TextBufferTargetInfo.

type TextCellAccessible

type TextCellAccessible struct {
	RendererCellAccessible

	*coreglib.Object
	atk.AtkObject
	atk.Text
	// contains filtered or unexported fields
}

type TextCellAccessibleClass added in v0.0.5

type TextCellAccessibleClass struct {
	// contains filtered or unexported fields
}

TextCellAccessibleClass: instance of this type is always passed by reference.

func (*TextCellAccessibleClass) ParentClass added in v0.0.5

type TextCellAccessibleOverrides added in v0.0.5

type TextCellAccessibleOverrides struct {
}

TextCellAccessibleOverrides contains methods that are overridable.

type TextCharPredicate

type TextCharPredicate func(ch uint32) (ok bool)

type TextChildAnchor

type TextChildAnchor struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

TextChildAnchor is a spot in the buffer where child widgets can be “anchored” (inserted inline, as if they were characters). The anchor can have multiple widgets anchored, to allow for multiple views.

func NewTextChildAnchor

func NewTextChildAnchor() *TextChildAnchor

NewTextChildAnchor creates a new TextChildAnchor. Usually you would then insert it into a TextBuffer with gtk_text_buffer_insert_child_anchor(). To perform the creation and insertion in one step, use the convenience function gtk_text_buffer_create_child_anchor().

The function returns the following values:

  • textChildAnchor: new TextChildAnchor.

func (*TextChildAnchor) Deleted

func (anchor *TextChildAnchor) Deleted() bool

Deleted determines whether a child anchor has been deleted from the buffer. Keep in mind that the child anchor will be unreferenced when removed from the buffer, so you need to hold your own reference (with g_object_ref()) if you plan to use this function — otherwise all deleted child anchors will also be finalized.

The function returns the following values:

  • ok: TRUE if the child anchor has been deleted from its buffer.

func (*TextChildAnchor) Widgets

func (anchor *TextChildAnchor) Widgets() []Widgetter

Widgets gets a list of all widgets anchored at this child anchor. The returned list should be freed with g_list_free().

The function returns the following values:

  • list of widgets anchored at anchor.

type TextChildAnchorClass added in v0.0.5

type TextChildAnchorClass struct {
	// contains filtered or unexported fields
}

TextChildAnchorClass: instance of this type is always passed by reference.

type TextChildAnchorOverrides added in v0.0.5

type TextChildAnchorOverrides struct {
}

TextChildAnchorOverrides contains methods that are overridable.

type TextDirection

type TextDirection C.gint

TextDirection: reading directions for text.

const (
	// TextDirNone: no direction.
	TextDirNone TextDirection = iota
	// TextDirLTR: left to right text direction.
	TextDirLTR
	// TextDirRTL: right to left text direction.
	TextDirRTL
)

func GetLocaleDirection

func GetLocaleDirection() TextDirection

GetLocaleDirection: get the direction of the current locale. This is the expected reading direction for text and UI.

This function depends on the current locale being set with setlocale() and will default to setting the GTK_TEXT_DIR_LTR direction otherwise. GTK_TEXT_DIR_NONE will never be returned.

GTK+ sets the default text direction according to the locale during gtk_init(), and you should normally use gtk_widget_get_direction() or gtk_widget_get_default_direction() to obtain the current direcion.

This function is only needed rare cases when the locale is changed after GTK+ has already been initialized. In this case, you can use it to update the default text direction as follows:

setlocale (LC_ALL, new_locale);
direction = gtk_get_locale_direction ();
gtk_widget_set_default_direction (direction);.

The function returns the following values:

  • textDirection of the current locale.

func WidgetGetDefaultDirection

func WidgetGetDefaultDirection() TextDirection

WidgetGetDefaultDirection obtains the current default reading direction. See gtk_widget_set_default_direction().

The function returns the following values:

  • textDirection: current default direction.

func (TextDirection) String

func (t TextDirection) String() string

String returns the name in string for TextDirection.

type TextExtendSelection

type TextExtendSelection C.gint

TextExtendSelection: granularity types that extend the text selection. Use the TextView::extend-selection signal to customize the selection.

const (
	// TextExtendSelectionWord selects the current word. It is triggered by a
	// double-click for example.
	TextExtendSelectionWord TextExtendSelection = iota
	// TextExtendSelectionLine selects the current line. It is triggered by a
	// triple-click for example.
	TextExtendSelectionLine
)

func (TextExtendSelection) String

func (t TextExtendSelection) String() string

String returns the name in string for TextExtendSelection.

type TextIter

type TextIter struct {
	// contains filtered or unexported fields
}

TextIter: you may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together.

An instance of this type is always passed by reference.

func (*TextIter) Assign

func (iter *TextIter) Assign(other *TextIter)

Assign assigns the value of other to iter. This function is not useful in applications, because iterators can be assigned with GtkTextIter i = j;. The function is used by language bindings.

The function takes the following parameters:

  • other TextIter.

func (*TextIter) Attributes

func (iter *TextIter) Attributes() (*TextAttributes, bool)

Attributes computes the effect of any tags applied to this spot in the text. The values parameter should be initialized to the default settings you wish to use if no tags are in effect. You’d typically obtain the defaults from gtk_text_view_get_default_attributes().

gtk_text_iter_get_attributes() will modify values, applying the effects of any tags present at iter. If any tags affected values, the function returns TRUE.

The function returns the following values:

  • values to be filled in.
  • ok: TRUE if values was modified.

func (*TextIter) BackwardChar

func (iter *TextIter) BackwardChar() bool

BackwardChar moves backward by one character offset. Returns TRUE if movement was possible; if iter was the first in the buffer (character offset 0), gtk_text_iter_backward_char() returns FALSE for convenience when writing loops.

The function returns the following values:

  • ok: whether movement was possible.

func (*TextIter) BackwardChars

func (iter *TextIter) BackwardChars(count int) bool

BackwardChars moves count characters backward, if possible (if count would move past the start or end of the buffer, moves to the start or end of the buffer). The return value indicates whether the iterator moved onto a dereferenceable position; if the iterator didn’t move, or moved onto the end iterator, then FALSE is returned. If count is 0, the function does nothing and returns FALSE.

The function takes the following parameters:

  • count: number of characters to move.

The function returns the following values:

  • ok: whether iter moved and is dereferenceable.

func (*TextIter) BackwardCursorPosition

func (iter *TextIter) BackwardCursorPosition() bool

BackwardCursorPosition: like gtk_text_iter_forward_cursor_position(), but moves backward.

The function returns the following values:

  • ok: TRUE if we moved.

func (*TextIter) BackwardCursorPositions

func (iter *TextIter) BackwardCursorPositions(count int) bool

BackwardCursorPositions moves up to count cursor positions. See gtk_text_iter_forward_cursor_position() for details.

The function takes the following parameters:

  • count: number of positions to move.

The function returns the following values:

  • ok: TRUE if we moved and the new position is dereferenceable.

func (*TextIter) BackwardFindChar

func (iter *TextIter) BackwardFindChar(pred TextCharPredicate, limit *TextIter) bool

BackwardFindChar: same as gtk_text_iter_forward_find_char(), but goes backward from iter.

The function takes the following parameters:

  • pred: function to be called on each character.
  • limit (optional): search limit, or NULL for none.

The function returns the following values:

  • ok: whether a match was found.

func (*TextIter) BackwardLine

func (iter *TextIter) BackwardLine() bool

BackwardLine moves iter to the start of the previous line. Returns TRUE if iter could be moved; i.e. if iter was at character offset 0, this function returns FALSE. Therefore if iter was already on line 0, but not at the start of the line, iter is snapped to the start of the line and the function returns TRUE. (Note that this implies that in a loop calling this function, the line number may not change on every iteration, if your first iteration is on line 0.).

The function returns the following values:

  • ok: whether iter moved.

func (*TextIter) BackwardLines

func (iter *TextIter) BackwardLines(count int) bool

BackwardLines moves count lines backward, if possible (if count would move past the start or end of the buffer, moves to the start or end of the buffer). The return value indicates whether the iterator moved onto a dereferenceable position; if the iterator didn’t move, or moved onto the end iterator, then FALSE is returned. If count is 0, the function does nothing and returns FALSE. If count is negative, moves forward by 0 - count lines.

The function takes the following parameters:

  • count: number of lines to move backward.

The function returns the following values:

  • ok: whether iter moved and is dereferenceable.

func (*TextIter) BackwardSearch

func (iter *TextIter) BackwardSearch(str string, flags TextSearchFlags, limit *TextIter) (matchStart *TextIter, matchEnd *TextIter, ok bool)

BackwardSearch: same as gtk_text_iter_forward_search(), but moves backward.

match_end will never be set to a TextIter located after iter, even if there is a possible match_start before or at iter.

The function takes the following parameters:

  • str: search string.
  • flags: bitmask of flags affecting the search.
  • limit (optional): location of last possible match_start, or NULL for start of buffer.

The function returns the following values:

  • matchStart (optional): return location for start of match, or NULL.
  • matchEnd (optional): return location for end of match, or NULL.
  • ok: whether a match was found.

func (*TextIter) BackwardSentenceStart

func (iter *TextIter) BackwardSentenceStart() bool

BackwardSentenceStart moves backward to the previous sentence start; if iter is already at the start of a sentence, moves backward to the next one. Sentence boundaries are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango text boundary algorithms).

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) BackwardSentenceStarts

func (iter *TextIter) BackwardSentenceStarts(count int) bool

BackwardSentenceStarts calls gtk_text_iter_backward_sentence_start() up to count times, or until it returns FALSE. If count is negative, moves forward instead of backward.

The function takes the following parameters:

  • count: number of sentences to move.

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) BackwardToTagToggle

func (iter *TextIter) BackwardToTagToggle(tag *TextTag) bool

BackwardToTagToggle moves backward to the next toggle (on or off) of the TextTag tag, or to the next toggle of any tag if tag is NULL. If no matching tag toggles are found, returns FALSE, otherwise TRUE. Does not return toggles located at iter, only toggles before iter. Sets iter to the location of the toggle, or the start of the buffer if no toggle is found.

The function takes the following parameters:

  • tag (optional) or NULL.

The function returns the following values:

  • ok: whether we found a tag toggle before iter.

func (*TextIter) BackwardVisibleCursorPosition

func (iter *TextIter) BackwardVisibleCursorPosition() bool

BackwardVisibleCursorPosition moves iter forward to the previous visible cursor position. See gtk_text_iter_backward_cursor_position() for details.

The function returns the following values:

  • ok: TRUE if we moved and the new position is dereferenceable.

func (*TextIter) BackwardVisibleCursorPositions

func (iter *TextIter) BackwardVisibleCursorPositions(count int) bool

BackwardVisibleCursorPositions moves up to count visible cursor positions. See gtk_text_iter_backward_cursor_position() for details.

The function takes the following parameters:

  • count: number of positions to move.

The function returns the following values:

  • ok: TRUE if we moved and the new position is dereferenceable.

func (*TextIter) BackwardVisibleLine

func (iter *TextIter) BackwardVisibleLine() bool

BackwardVisibleLine moves iter to the start of the previous visible line. Returns TRUE if iter could be moved; i.e. if iter was at character offset 0, this function returns FALSE. Therefore if iter was already on line 0, but not at the start of the line, iter is snapped to the start of the line and the function returns TRUE. (Note that this implies that in a loop calling this function, the line number may not change on every iteration, if your first iteration is on line 0.).

The function returns the following values:

  • ok: whether iter moved.

func (*TextIter) BackwardVisibleLines

func (iter *TextIter) BackwardVisibleLines(count int) bool

BackwardVisibleLines moves count visible lines backward, if possible (if count would move past the start or end of the buffer, moves to the start or end of the buffer). The return value indicates whether the iterator moved onto a dereferenceable position; if the iterator didn’t move, or moved onto the end iterator, then FALSE is returned. If count is 0, the function does nothing and returns FALSE. If count is negative, moves forward by 0 - count lines.

The function takes the following parameters:

  • count: number of lines to move backward.

The function returns the following values:

  • ok: whether iter moved and is dereferenceable.

func (*TextIter) BackwardVisibleWordStart

func (iter *TextIter) BackwardVisibleWordStart() bool

BackwardVisibleWordStart moves backward to the previous visible word start. (If iter is currently on a word start, moves backward to the next one after that.) Word breaks are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango word break algorithms).

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) BackwardVisibleWordStarts

func (iter *TextIter) BackwardVisibleWordStarts(count int) bool

BackwardVisibleWordStarts calls gtk_text_iter_backward_visible_word_start() up to count times.

The function takes the following parameters:

  • count: number of times to move.

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) BackwardWordStart

func (iter *TextIter) BackwardWordStart() bool

BackwardWordStart moves backward to the previous word start. (If iter is currently on a word start, moves backward to the next one after that.) Word breaks are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango word break algorithms).

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) BackwardWordStarts

func (iter *TextIter) BackwardWordStarts(count int) bool

BackwardWordStarts calls gtk_text_iter_backward_word_start() up to count times.

The function takes the following parameters:

  • count: number of times to move.

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) BeginsTag deprecated

func (iter *TextIter) BeginsTag(tag *TextTag) bool

BeginsTag returns TRUE if tag is toggled on at exactly this point. If tag is NULL, returns TRUE if any tag is toggled on at this point.

Note that if gtk_text_iter_begins_tag() returns TRUE, it means that iter is at the beginning of the tagged range, and that the character at iter is inside the tagged range. In other words, unlike gtk_text_iter_ends_tag(), if gtk_text_iter_begins_tag() returns TRUE, gtk_text_iter_has_tag() will also return TRUE for the same parameters.

Deprecated: Use gtk_text_iter_starts_tag() instead.

The function takes the following parameters:

  • tag (optional) or NULL.

The function returns the following values:

  • ok: whether iter is the start of a range tagged with tag.

func (*TextIter) Buffer

func (iter *TextIter) Buffer() *TextBuffer

Buffer returns the TextBuffer this iterator is associated with.

The function returns the following values:

  • textBuffer: buffer.

func (*TextIter) BytesInLine

func (iter *TextIter) BytesInLine() int

BytesInLine returns the number of bytes in the line containing iter, including the paragraph delimiters.

The function returns the following values:

  • gint: number of bytes in the line.

func (*TextIter) CanInsert

func (iter *TextIter) CanInsert(defaultEditability bool) bool

CanInsert: considering the default editability of the buffer, and tags that affect editability, determines whether text inserted at iter would be editable. If text inserted at iter would be editable then the user should be allowed to insert text at iter. gtk_text_buffer_insert_interactive() uses this function to decide whether insertions are allowed at a given position.

The function takes the following parameters:

  • defaultEditability: TRUE if text is editable by default.

The function returns the following values:

  • ok: whether text inserted at iter would be editable.

func (*TextIter) Char

func (iter *TextIter) Char() uint32

Char: unicode character at this iterator is returned. (Equivalent to operator* on a C++ iterator.) If the element at this iterator is a non-character element, such as an image embedded in the buffer, the Unicode “unknown” character 0xFFFC is returned. If invoked on the end iterator, zero is returned; zero is not a valid Unicode character. So you can write a loop which ends when gtk_text_iter_get_char() returns 0.

The function returns the following values:

  • gunichar: unicode character, or 0 if iter is not dereferenceable.

func (*TextIter) CharsInLine

func (iter *TextIter) CharsInLine() int

CharsInLine returns the number of characters in the line containing iter, including the paragraph delimiters.

The function returns the following values:

  • gint: number of characters in the line.

func (*TextIter) ChildAnchor

func (iter *TextIter) ChildAnchor() *TextChildAnchor

ChildAnchor: if the location at iter contains a child anchor, the anchor is returned (with no new reference count added). Otherwise, NULL is returned.

The function returns the following values:

  • textChildAnchor: anchor at iter.

func (*TextIter) Compare

func (lhs *TextIter) Compare(rhs *TextIter) int

Compare: qsort()-style function that returns negative if lhs is less than rhs, positive if lhs is greater than rhs, and 0 if they’re equal. Ordering is in character offset order, i.e. the first character in the buffer is less than the second character in the buffer.

The function takes the following parameters:

  • rhs: another TextIter.

The function returns the following values:

  • gint: -1 if lhs is less than rhs, 1 if lhs is greater, 0 if they are equal.

func (*TextIter) Copy

func (iter *TextIter) Copy() *TextIter

Copy creates a dynamically-allocated copy of an iterator. This function is not useful in applications, because iterators can be copied with a simple assignment (GtkTextIter i = j;). The function is used by language bindings.

The function returns the following values:

  • textIter: copy of the iter, free with gtk_text_iter_free().

func (*TextIter) Editable

func (iter *TextIter) Editable(defaultSetting bool) bool

Editable returns whether the character at iter is within an editable region of text. Non-editable text is “locked” and can’t be changed by the user via TextView. This function is simply a convenience wrapper around gtk_text_iter_get_attributes(). If no tags applied to this text affect editability, default_setting will be returned.

You don’t want to use this function to decide whether text can be inserted at iter, because for insertion you don’t want to know whether the char at iter is inside an editable range, you want to know whether a new character inserted at iter would be inside an editable range. Use gtk_text_iter_can_insert() to handle this case.

The function takes the following parameters:

  • defaultSetting: TRUE if text is editable by default.

The function returns the following values:

  • ok: whether iter is inside an editable range.

func (*TextIter) EndsLine

func (iter *TextIter) EndsLine() bool

EndsLine returns TRUE if iter points to the start of the paragraph delimiter characters for a line (delimiters will be either a newline, a carriage return, a carriage return followed by a newline, or a Unicode paragraph separator character). Note that an iterator pointing to the \n of a \r\n pair will not be counted as the end of a line, the line ends before the \r. The end iterator is considered to be at the end of a line, even though there are no paragraph delimiter chars there.

The function returns the following values:

  • ok: whether iter is at the end of a line.

func (*TextIter) EndsSentence

func (iter *TextIter) EndsSentence() bool

EndsSentence determines whether iter ends a sentence. Sentence boundaries are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango text boundary algorithms).

The function returns the following values:

  • ok: TRUE if iter is at the end of a sentence.

func (*TextIter) EndsTag

func (iter *TextIter) EndsTag(tag *TextTag) bool

EndsTag returns TRUE if tag is toggled off at exactly this point. If tag is NULL, returns TRUE if any tag is toggled off at this point.

Note that if gtk_text_iter_ends_tag() returns TRUE, it means that iter is at the end of the tagged range, but that the character at iter is outside the tagged range. In other words, unlike gtk_text_iter_starts_tag(), if gtk_text_iter_ends_tag() returns TRUE, gtk_text_iter_has_tag() will return FALSE for the same parameters.

The function takes the following parameters:

  • tag (optional) or NULL.

The function returns the following values:

  • ok: whether iter is the end of a range tagged with tag.

func (*TextIter) EndsWord

func (iter *TextIter) EndsWord() bool

EndsWord determines whether iter ends a natural-language word. Word breaks are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango word break algorithms).

The function returns the following values:

  • ok: TRUE if iter is at the end of a word.

func (*TextIter) Equal

func (lhs *TextIter) Equal(rhs *TextIter) bool

Equal tests whether two iterators are equal, using the fastest possible mechanism. This function is very fast; you can expect it to perform better than e.g. getting the character offset for each iterator and comparing the offsets yourself. Also, it’s a bit faster than gtk_text_iter_compare().

The function takes the following parameters:

  • rhs: another TextIter.

The function returns the following values:

  • ok: TRUE if the iterators point to the same place in the buffer.

func (*TextIter) ForwardChar

func (iter *TextIter) ForwardChar() bool

ForwardChar moves iter forward by one character offset. Note that images embedded in the buffer occupy 1 character slot, so gtk_text_iter_forward_char() may actually move onto an image instead of a character, if you have images in your buffer. If iter is the end iterator or one character before it, iter will now point at the end iterator, and gtk_text_iter_forward_char() returns FALSE for convenience when writing loops.

The function returns the following values:

  • ok: whether iter moved and is dereferenceable.

func (*TextIter) ForwardChars

func (iter *TextIter) ForwardChars(count int) bool

ForwardChars moves count characters if possible (if count would move past the start or end of the buffer, moves to the start or end of the buffer). The return value indicates whether the new position of iter is different from its original position, and dereferenceable (the last iterator in the buffer is not dereferenceable). If count is 0, the function does nothing and returns FALSE.

The function takes the following parameters:

  • count: number of characters to move, may be negative.

The function returns the following values:

  • ok: whether iter moved and is dereferenceable.

func (*TextIter) ForwardCursorPosition

func (iter *TextIter) ForwardCursorPosition() bool

ForwardCursorPosition moves iter forward by a single cursor position. Cursor positions are (unsurprisingly) positions where the cursor can appear. Perhaps surprisingly, there may not be a cursor position between all characters. The most common example for European languages would be a carriage return/newline sequence. For some Unicode characters, the equivalent of say the letter “a” with an accent mark will be represented as two characters, first the letter then a "combining mark" that causes the accent to be rendered; so the cursor can’t go between those two characters. See also the LogAttr-struct and pango_break() function.

The function returns the following values:

  • ok: TRUE if we moved and the new position is dereferenceable.

func (*TextIter) ForwardCursorPositions

func (iter *TextIter) ForwardCursorPositions(count int) bool

ForwardCursorPositions moves up to count cursor positions. See gtk_text_iter_forward_cursor_position() for details.

The function takes the following parameters:

  • count: number of positions to move.

The function returns the following values:

  • ok: TRUE if we moved and the new position is dereferenceable.

func (*TextIter) ForwardFindChar

func (iter *TextIter) ForwardFindChar(pred TextCharPredicate, limit *TextIter) bool

ForwardFindChar advances iter, calling pred on each character. If pred returns TRUE, returns TRUE and stops scanning. If pred never returns TRUE, iter is set to limit if limit is non-NULL, otherwise to the end iterator.

The function takes the following parameters:

  • pred: function to be called on each character.
  • limit (optional): search limit, or NULL for none.

The function returns the following values:

  • ok: whether a match was found.

func (*TextIter) ForwardLine

func (iter *TextIter) ForwardLine() bool

ForwardLine moves iter to the start of the next line. If the iter is already on the last line of the buffer, moves the iter to the end of the current line. If after the operation, the iter is at the end of the buffer and not dereferencable, returns FALSE. Otherwise, returns TRUE.

The function returns the following values:

  • ok: whether iter can be dereferenced.

func (*TextIter) ForwardLines

func (iter *TextIter) ForwardLines(count int) bool

ForwardLines moves count lines forward, if possible (if count would move past the start or end of the buffer, moves to the start or end of the buffer). The return value indicates whether the iterator moved onto a dereferenceable position; if the iterator didn’t move, or moved onto the end iterator, then FALSE is returned. If count is 0, the function does nothing and returns FALSE. If count is negative, moves backward by 0 - count lines.

The function takes the following parameters:

  • count: number of lines to move forward.

The function returns the following values:

  • ok: whether iter moved and is dereferenceable.

func (*TextIter) ForwardSearch

func (iter *TextIter) ForwardSearch(str string, flags TextSearchFlags, limit *TextIter) (matchStart *TextIter, matchEnd *TextIter, ok bool)

ForwardSearch searches forward for str. Any match is returned by setting match_start to the first character of the match and match_end to the first character after the match. The search will not continue past limit. Note that a search is a linear or O(n) operation, so you may wish to use limit to avoid locking up your UI on large buffers.

match_start will never be set to a TextIter located before iter, even if there is a possible match_end after or at iter.

The function takes the following parameters:

  • str: search string.
  • flags affecting how the search is done.
  • limit (optional): location of last possible match_end, or NULL for the end of the buffer.

The function returns the following values:

  • matchStart (optional): return location for start of match, or NULL.
  • matchEnd (optional): return location for end of match, or NULL.
  • ok: whether a match was found.

func (*TextIter) ForwardSentenceEnd

func (iter *TextIter) ForwardSentenceEnd() bool

ForwardSentenceEnd moves forward to the next sentence end. (If iter is at the end of a sentence, moves to the next end of sentence.) Sentence boundaries are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango text boundary algorithms).

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) ForwardSentenceEnds

func (iter *TextIter) ForwardSentenceEnds(count int) bool

ForwardSentenceEnds calls gtk_text_iter_forward_sentence_end() count times (or until gtk_text_iter_forward_sentence_end() returns FALSE). If count is negative, moves backward instead of forward.

The function takes the following parameters:

  • count: number of sentences to move.

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) ForwardToEnd

func (iter *TextIter) ForwardToEnd()

ForwardToEnd moves iter forward to the “end iterator,” which points one past the last valid character in the buffer. gtk_text_iter_get_char() called on the end iterator returns 0, which is convenient for writing loops.

func (*TextIter) ForwardToLineEnd

func (iter *TextIter) ForwardToLineEnd() bool

ForwardToLineEnd moves the iterator to point to the paragraph delimiter characters, which will be either a newline, a carriage return, a carriage return/newline in sequence, or the Unicode paragraph separator character. If the iterator is already at the paragraph delimiter characters, moves to the paragraph delimiter characters for the next line. If iter is on the last line in the buffer, which does not end in paragraph delimiters, moves to the end iterator (end of the last line), and returns FALSE.

The function returns the following values:

  • ok: TRUE if we moved and the new location is not the end iterator.

func (*TextIter) ForwardToTagToggle

func (iter *TextIter) ForwardToTagToggle(tag *TextTag) bool

ForwardToTagToggle moves forward to the next toggle (on or off) of the TextTag tag, or to the next toggle of any tag if tag is NULL. If no matching tag toggles are found, returns FALSE, otherwise TRUE. Does not return toggles located at iter, only toggles after iter. Sets iter to the location of the toggle, or to the end of the buffer if no toggle is found.

The function takes the following parameters:

  • tag (optional) or NULL.

The function returns the following values:

  • ok: whether we found a tag toggle after iter.

func (*TextIter) ForwardVisibleCursorPosition

func (iter *TextIter) ForwardVisibleCursorPosition() bool

ForwardVisibleCursorPosition moves iter forward to the next visible cursor position. See gtk_text_iter_forward_cursor_position() for details.

The function returns the following values:

  • ok: TRUE if we moved and the new position is dereferenceable.

func (*TextIter) ForwardVisibleCursorPositions

func (iter *TextIter) ForwardVisibleCursorPositions(count int) bool

ForwardVisibleCursorPositions moves up to count visible cursor positions. See gtk_text_iter_forward_cursor_position() for details.

The function takes the following parameters:

  • count: number of positions to move.

The function returns the following values:

  • ok: TRUE if we moved and the new position is dereferenceable.

func (*TextIter) ForwardVisibleLine

func (iter *TextIter) ForwardVisibleLine() bool

ForwardVisibleLine moves iter to the start of the next visible line. Returns TRUE if there was a next line to move to, and FALSE if iter was simply moved to the end of the buffer and is now not dereferenceable, or if iter was already at the end of the buffer.

The function returns the following values:

  • ok: whether iter can be dereferenced.

func (*TextIter) ForwardVisibleLines

func (iter *TextIter) ForwardVisibleLines(count int) bool

ForwardVisibleLines moves count visible lines forward, if possible (if count would move past the start or end of the buffer, moves to the start or end of the buffer). The return value indicates whether the iterator moved onto a dereferenceable position; if the iterator didn’t move, or moved onto the end iterator, then FALSE is returned. If count is 0, the function does nothing and returns FALSE. If count is negative, moves backward by 0 - count lines.

The function takes the following parameters:

  • count: number of lines to move forward.

The function returns the following values:

  • ok: whether iter moved and is dereferenceable.

func (*TextIter) ForwardVisibleWordEnd

func (iter *TextIter) ForwardVisibleWordEnd() bool

ForwardVisibleWordEnd moves forward to the next visible word end. (If iter is currently on a word end, moves forward to the next one after that.) Word breaks are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango word break algorithms).

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) ForwardVisibleWordEnds

func (iter *TextIter) ForwardVisibleWordEnds(count int) bool

ForwardVisibleWordEnds calls gtk_text_iter_forward_visible_word_end() up to count times.

The function takes the following parameters:

  • count: number of times to move.

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) ForwardWordEnd

func (iter *TextIter) ForwardWordEnd() bool

ForwardWordEnd moves forward to the next word end. (If iter is currently on a word end, moves forward to the next one after that.) Word breaks are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango word break algorithms).

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) ForwardWordEnds

func (iter *TextIter) ForwardWordEnds(count int) bool

ForwardWordEnds calls gtk_text_iter_forward_word_end() up to count times.

The function takes the following parameters:

  • count: number of times to move.

The function returns the following values:

  • ok: TRUE if iter moved and is not the end iterator.

func (*TextIter) HasTag

func (iter *TextIter) HasTag(tag *TextTag) bool

HasTag returns TRUE if iter points to a character that is part of a range tagged with tag. See also gtk_text_iter_starts_tag() and gtk_text_iter_ends_tag().

The function takes the following parameters:

  • tag: TextTag.

The function returns the following values:

  • ok: whether iter is tagged with tag.

func (*TextIter) InRange

func (iter *TextIter) InRange(start *TextIter, end *TextIter) bool

InRange checks whether iter falls in the range [start, end). start and end must be in ascending order.

The function takes the following parameters:

  • start of range.
  • end of range.

The function returns the following values:

  • ok: TRUE if iter is in the range.

func (*TextIter) InsideSentence

func (iter *TextIter) InsideSentence() bool

InsideSentence determines whether iter is inside a sentence (as opposed to in between two sentences, e.g. after a period and before the first letter of the next sentence). Sentence boundaries are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango text boundary algorithms).

The function returns the following values:

  • ok: TRUE if iter is inside a sentence.

func (*TextIter) InsideWord

func (iter *TextIter) InsideWord() bool

InsideWord determines whether the character pointed by iter is part of a natural-language word (as opposed to say inside some whitespace). Word breaks are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango word break algorithms).

Note that if gtk_text_iter_starts_word() returns TRUE, then this function returns TRUE too, since iter points to the first character of the word.

The function returns the following values:

  • ok: TRUE if iter is inside a word.

func (*TextIter) IsCursorPosition

func (iter *TextIter) IsCursorPosition() bool

IsCursorPosition: see gtk_text_iter_forward_cursor_position() or LogAttr or pango_break() for details on what a cursor position is.

The function returns the following values:

  • ok: TRUE if the cursor can be placed at iter.

func (*TextIter) IsEnd

func (iter *TextIter) IsEnd() bool

IsEnd returns TRUE if iter is the end iterator, i.e. one past the last dereferenceable iterator in the buffer. gtk_text_iter_is_end() is the most efficient way to check whether an iterator is the end iterator.

The function returns the following values:

  • ok: whether iter is the end iterator.

func (*TextIter) IsStart

func (iter *TextIter) IsStart() bool

IsStart returns TRUE if iter is the first iterator in the buffer, that is if iter has a character offset of 0.

The function returns the following values:

  • ok: whether iter is the first in the buffer.

func (*TextIter) Language

func (iter *TextIter) Language() *pango.Language

Language: convenience wrapper around gtk_text_iter_get_attributes(), which returns the language in effect at iter. If no tags affecting language apply to iter, the return value is identical to that of gtk_get_default_language().

The function returns the following values:

  • language in effect at iter.

func (*TextIter) Line

func (iter *TextIter) Line() int

Line returns the line number containing the iterator. Lines in a TextBuffer are numbered beginning with 0 for the first line in the buffer.

The function returns the following values:

  • gint: line number.

func (*TextIter) LineIndex

func (iter *TextIter) LineIndex() int

LineIndex returns the byte index of the iterator, counting from the start of a newline-terminated line. Remember that TextBuffer encodes text in UTF-8, and that characters can require a variable number of bytes to represent.

The function returns the following values:

  • gint: distance from start of line, in bytes.

func (*TextIter) LineOffset

func (iter *TextIter) LineOffset() int

LineOffset returns the character offset of the iterator, counting from the start of a newline-terminated line. The first character on the line has offset 0.

The function returns the following values:

  • gint: offset from start of line.

func (*TextIter) Marks

func (iter *TextIter) Marks() []*TextMark

Marks returns a list of all TextMark at this location. Because marks are not iterable (they don’t take up any "space" in the buffer, they are just marks in between iterable locations), multiple marks can exist in the same place. The returned list is not in any meaningful order.

The function returns the following values:

  • sList: list of TextMark.

func (*TextIter) Offset

func (iter *TextIter) Offset() int

Offset returns the character offset of an iterator. Each character in a TextBuffer has an offset, starting with 0 for the first character in the buffer. Use gtk_text_buffer_get_iter_at_offset() to convert an offset back into an iterator.

The function returns the following values:

  • gint: character offset.

func (*TextIter) Order

func (first *TextIter) Order(second *TextIter)

Order swaps the value of first and second if second comes before first in the buffer. That is, ensures that first and second are in sequence. Most text buffer functions that take a range call this automatically on your behalf, so there’s no real reason to call it yourself in those cases. There are some exceptions, such as gtk_text_iter_in_range(), that expect a pre-sorted range.

The function takes the following parameters:

  • second: another TextIter.

func (*TextIter) Pixbuf

func (iter *TextIter) Pixbuf() *gdkpixbuf.Pixbuf

Pixbuf: if the element at iter is a pixbuf, the pixbuf is returned (with no new reference count added). Otherwise, NULL is returned.

The function returns the following values:

  • pixbuf at iter.

func (*TextIter) SetLine

func (iter *TextIter) SetLine(lineNumber int)

SetLine moves iterator iter to the start of the line line_number. If line_number is negative or larger than the number of lines in the buffer, moves iter to the start of the last line in the buffer.

The function takes the following parameters:

  • lineNumber: line number (counted from 0).

func (*TextIter) SetLineIndex

func (iter *TextIter) SetLineIndex(byteOnLine int)

SetLineIndex: same as gtk_text_iter_set_line_offset(), but works with a byte index. The given byte index must be at the start of a character, it can’t be in the middle of a UTF-8 encoded character.

The function takes the following parameters:

  • byteOnLine: byte index relative to the start of iter’s current line.

func (*TextIter) SetLineOffset

func (iter *TextIter) SetLineOffset(charOnLine int)

SetLineOffset moves iter within a line, to a new character (not byte) offset. The given character offset must be less than or equal to the number of characters in the line; if equal, iter moves to the start of the next line. See gtk_text_iter_set_line_index() if you have a byte index rather than a character offset.

The function takes the following parameters:

  • charOnLine: character offset relative to the start of iter’s current line.

func (*TextIter) SetOffset

func (iter *TextIter) SetOffset(charOffset int)

SetOffset sets iter to point to char_offset. char_offset counts from the start of the entire text buffer, starting with 0.

The function takes the following parameters:

  • charOffset: character number.

func (*TextIter) SetVisibleLineIndex

func (iter *TextIter) SetVisibleLineIndex(byteOnLine int)

SetVisibleLineIndex: like gtk_text_iter_set_line_index(), but the index is in visible bytes, i.e. text with a tag making it invisible is not counted in the index.

The function takes the following parameters:

  • byteOnLine: byte index.

func (*TextIter) SetVisibleLineOffset

func (iter *TextIter) SetVisibleLineOffset(charOnLine int)

SetVisibleLineOffset: like gtk_text_iter_set_line_offset(), but the offset is in visible characters, i.e. text with a tag making it invisible is not counted in the offset.

The function takes the following parameters:

  • charOnLine: character offset.

func (*TextIter) Slice

func (start *TextIter) Slice(end *TextIter) string

Slice returns the text in the given range. A “slice” is an array of characters encoded in UTF-8 format, including the Unicode “unknown” character 0xFFFC for iterable non-character elements in the buffer, such as images. Because images are encoded in the slice, byte and character offsets in the returned array will correspond to byte offsets in the text buffer. Note that 0xFFFC can occur in normal text as well, so it is not a reliable indicator that a pixbuf or widget is in the buffer.

The function takes the following parameters:

  • end: iterator at end of a range.

The function returns the following values:

  • utf8: slice of text from the buffer.

func (*TextIter) StartsLine

func (iter *TextIter) StartsLine() bool

StartsLine returns TRUE if iter begins a paragraph, i.e. if gtk_text_iter_get_line_offset() would return 0. However this function is potentially more efficient than gtk_text_iter_get_line_offset() because it doesn’t have to compute the offset, it just has to see whether it’s 0.

The function returns the following values:

  • ok: whether iter begins a line.

func (*TextIter) StartsSentence

func (iter *TextIter) StartsSentence() bool

StartsSentence determines whether iter begins a sentence. Sentence boundaries are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango text boundary algorithms).

The function returns the following values:

  • ok: TRUE if iter is at the start of a sentence.

func (*TextIter) StartsTag

func (iter *TextIter) StartsTag(tag *TextTag) bool

StartsTag returns TRUE if tag is toggled on at exactly this point. If tag is NULL, returns TRUE if any tag is toggled on at this point.

Note that if gtk_text_iter_starts_tag() returns TRUE, it means that iter is at the beginning of the tagged range, and that the character at iter is inside the tagged range. In other words, unlike gtk_text_iter_ends_tag(), if gtk_text_iter_starts_tag() returns TRUE, gtk_text_iter_has_tag() will also return TRUE for the same parameters.

The function takes the following parameters:

  • tag (optional) or NULL.

The function returns the following values:

  • ok: whether iter is the start of a range tagged with tag.

func (*TextIter) StartsWord

func (iter *TextIter) StartsWord() bool

StartsWord determines whether iter begins a natural-language word. Word breaks are determined by Pango and should be correct for nearly any language (if not, the correct fix would be to the Pango word break algorithms).

The function returns the following values:

  • ok: TRUE if iter is at the start of a word.

func (*TextIter) Tags

func (iter *TextIter) Tags() []*TextTag

Tags returns a list of tags that apply to iter, in ascending order of priority (highest-priority tags are last). The TextTag in the list don’t have a reference added, but you have to free the list itself.

The function returns the following values:

  • sList: list of TextTag.

func (*TextIter) Text

func (start *TextIter) Text(end *TextIter) string

Text returns text in the given range. If the range contains non-text elements such as images, the character and byte offsets in the returned string will not correspond to character and byte offsets in the buffer. If you want offsets to correspond, see gtk_text_iter_get_slice().

The function takes the following parameters:

  • end: iterator at end of a range.

The function returns the following values:

  • utf8: array of characters from the buffer.

func (*TextIter) ToggledTags

func (iter *TextIter) ToggledTags(toggledOn bool) []*TextTag

ToggledTags returns a list of TextTag that are toggled on or off at this point. (If toggled_on is TRUE, the list contains tags that are toggled on.) If a tag is toggled on at iter, then some non-empty range of characters following iter has that tag applied to it. If a tag is toggled off, then some non-empty range following iter does not have the tag applied to it.

The function takes the following parameters:

  • toggledOn: TRUE to get toggled-on tags.

The function returns the following values:

  • sList tags toggled at this point.

func (*TextIter) TogglesTag

func (iter *TextIter) TogglesTag(tag *TextTag) bool

TogglesTag: this is equivalent to (gtk_text_iter_starts_tag() || gtk_text_iter_ends_tag()), i.e. it tells you whether a range with tag applied to it begins or ends at iter.

The function takes the following parameters:

  • tag (optional) or NULL.

The function returns the following values:

  • ok: whether tag is toggled on or off at iter.

func (*TextIter) VisibleLineIndex

func (iter *TextIter) VisibleLineIndex() int

VisibleLineIndex returns the number of bytes from the start of the line to the given iter, not counting bytes that are invisible due to tags with the “invisible” flag toggled on.

The function returns the following values:

  • gint: byte index of iter with respect to the start of the line.

func (*TextIter) VisibleLineOffset

func (iter *TextIter) VisibleLineOffset() int

VisibleLineOffset returns the offset in characters from the start of the line to the given iter, not counting characters that are invisible due to tags with the “invisible” flag toggled on.

The function returns the following values:

  • gint: offset in visible characters from the start of the line.

func (*TextIter) VisibleSlice

func (start *TextIter) VisibleSlice(end *TextIter) string

VisibleSlice: like gtk_text_iter_get_slice(), but invisible text is not included. Invisible text is usually invisible because a TextTag with the “invisible” attribute turned on has been applied to it.

The function takes the following parameters:

  • end: iterator at end of range.

The function returns the following values:

  • utf8: slice of text from the buffer.

func (*TextIter) VisibleText

func (start *TextIter) VisibleText(end *TextIter) string

VisibleText: like gtk_text_iter_get_text(), but invisible text is not included. Invisible text is usually invisible because a TextTag with the “invisible” attribute turned on has been applied to it.

The function takes the following parameters:

  • end: iterator at end of range.

The function returns the following values:

  • utf8: string containing visible text in the range.

type TextMark

type TextMark struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

TextMark: you may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together.

A TextMark is like a bookmark in a text buffer; it preserves a position in the text. You can convert the mark to an iterator using gtk_text_buffer_get_iter_at_mark(). Unlike iterators, marks remain valid across buffer mutations, because their behavior is defined when text is inserted or deleted. When text containing a mark is deleted, the mark remains in the position originally occupied by the deleted text. When text is inserted at a mark, a mark with “left gravity” will be moved to the beginning of the newly-inserted text, and a mark with “right gravity” will be moved to the end.

Note that “left” and “right” here refer to logical direction (left is the toward the start of the buffer); in some languages such as Hebrew the logically-leftmost text is not actually on the left when displayed.

Marks are reference counted, but the reference count only controls the validity of the memory; marks can be deleted from the buffer at any time with gtk_text_buffer_delete_mark(). Once deleted from the buffer, a mark is essentially useless.

Marks optionally have names; these can be convenient to avoid passing the TextMark object around.

Marks are typically created using the gtk_text_buffer_create_mark() function.

func NewTextMark

func NewTextMark(name string, leftGravity bool) *TextMark

NewTextMark creates a text mark. Add it to a buffer using gtk_text_buffer_add_mark(). If name is NULL, the mark is anonymous; otherwise, the mark can be retrieved by name using gtk_text_buffer_get_mark(). If a mark has left gravity, and text is inserted at the mark’s current location, the mark will be moved to the left of the newly-inserted text. If the mark has right gravity (left_gravity = FALSE), the mark will end up on the right of newly-inserted text. The standard left-to-right cursor is a mark with right gravity (when you type, the cursor stays on the right side of the text you’re typing).

The function takes the following parameters:

  • name (optional): mark name or NULL.
  • leftGravity: whether the mark should have left gravity.

The function returns the following values:

  • textMark: new TextMark.

func (*TextMark) Buffer

func (mark *TextMark) Buffer() *TextBuffer

Buffer gets the buffer this mark is located inside, or NULL if the mark is deleted.

The function returns the following values:

  • textBuffer mark’s TextBuffer.

func (*TextMark) Deleted

func (mark *TextMark) Deleted() bool

Deleted returns TRUE if the mark has been removed from its buffer with gtk_text_buffer_delete_mark(). See gtk_text_buffer_add_mark() for a way to add it to a buffer again.

The function returns the following values:

  • ok: whether the mark is deleted.

func (*TextMark) LeftGravity

func (mark *TextMark) LeftGravity() bool

LeftGravity determines whether the mark has left gravity.

The function returns the following values:

  • ok: TRUE if the mark has left gravity, FALSE otherwise.

func (*TextMark) Name

func (mark *TextMark) Name() string

Name returns the mark name; returns NULL for anonymous marks.

The function returns the following values:

  • utf8 (optional): mark name.

func (*TextMark) SetVisible

func (mark *TextMark) SetVisible(setting bool)

SetVisible sets the visibility of mark; the insertion point is normally visible, i.e. you can see it as a vertical bar. Also, the text widget uses a visible mark to indicate where a drop will occur when dragging-and-dropping text. Most other marks are not visible. Marks are not visible by default.

The function takes the following parameters:

  • setting: visibility of mark.

func (*TextMark) Visible

func (mark *TextMark) Visible() bool

Visible returns TRUE if the mark is visible (i.e. a cursor is displayed for it).

The function returns the following values:

  • ok: TRUE if visible.

type TextMarkClass added in v0.0.5

type TextMarkClass struct {
	// contains filtered or unexported fields
}

TextMarkClass: instance of this type is always passed by reference.

type TextMarkOverrides added in v0.0.5

type TextMarkOverrides struct {
}

TextMarkOverrides contains methods that are overridable.

type TextSearchFlags

type TextSearchFlags C.guint

TextSearchFlags flags affecting how a search is done.

If neither K_TEXT_SEARCH_VISIBLE_ONLY nor K_TEXT_SEARCH_TEXT_ONLY are enabled, the match must be exact; the special 0xFFFC character will match embedded pixbufs or child widgets.

const (
	// TextSearchVisibleOnly: search only visible data. A search match may have
	// invisible text interspersed.
	TextSearchVisibleOnly TextSearchFlags = 0b1
	// TextSearchTextOnly: search only text. A match may have pixbufs or child
	// widgets mixed inside the matched range.
	TextSearchTextOnly TextSearchFlags = 0b10
	// TextSearchCaseInsensitive: text will be matched regardless of what case
	// it is in.
	TextSearchCaseInsensitive TextSearchFlags = 0b100
)

func (TextSearchFlags) Has

func (t TextSearchFlags) Has(other TextSearchFlags) bool

Has returns true if t contains other.

func (TextSearchFlags) String

func (t TextSearchFlags) String() string

String returns the names in string for TextSearchFlags.

type TextTag

type TextTag struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

TextTag: you may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together.

Tags should be in the TextTagTable for a given TextBuffer before using them with that buffer.

gtk_text_buffer_create_tag() is the best way to create tags. See “gtk3-demo” for numerous examples.

For each property of TextTag, there is a “set” property, e.g. “font-set” corresponds to “font”. These “set” properties reflect whether a property has been set or not. They are maintained by GTK+ and you should not set them independently.

func NewTextTag

func NewTextTag(name string) *TextTag

NewTextTag creates a TextTag. Configure the tag using object arguments, i.e. using g_object_set().

The function takes the following parameters:

  • name (optional): tag name, or NULL.

The function returns the following values:

  • textTag: new TextTag.

func (*TextTag) Changed

func (tag *TextTag) Changed(sizeChanged bool)

Changed emits the TextTagTable::tag-changed signal on the TextTagTable where the tag is included.

The signal is already emitted when setting a TextTag property. This function is useful for a TextTag subclass.

The function takes the following parameters:

  • sizeChanged: whether the change affects the TextView layout.

func (*TextTag) ConnectEvent

func (tag *TextTag) ConnectEvent(f func(object *coreglib.Object, event *gdk.Event, iter *TextIter) (ok bool)) coreglib.SignalHandle

ConnectEvent signal is emitted when an event occurs on a region of the buffer marked with this tag.

func (*TextTag) Event

func (tag *TextTag) Event(eventObject *coreglib.Object, event *gdk.Event, iter *TextIter) bool

Event emits the “event” signal on the TextTag.

The function takes the following parameters:

  • eventObject: object that received the event, such as a widget.
  • event: event.
  • iter: location where the event was received.

The function returns the following values:

  • ok: result of signal emission (whether the event was handled).

func (*TextTag) Priority

func (tag *TextTag) Priority() int

Priority: get the tag priority.

The function returns the following values:

  • gint tag’s priority.

func (*TextTag) SetPriority

func (tag *TextTag) SetPriority(priority int)

SetPriority sets the priority of a TextTag. Valid priorities start at 0 and go to one less than gtk_text_tag_table_get_size(). Each tag in a table has a unique priority; setting the priority of one tag shifts the priorities of all the other tags in the table to maintain a unique priority for each tag. Higher priority tags “win” if two tags both set the same text attribute. When adding a tag to a tag table, it will be assigned the highest priority in the table by default; so normally the precedence of a set of tags is the order in which they were added to the table, or created with gtk_text_buffer_create_tag(), which adds the tag to the buffer’s table automatically.

The function takes the following parameters:

  • priority: new priority.

type TextTagClass added in v0.0.5

type TextTagClass struct {
	// contains filtered or unexported fields
}

TextTagClass: instance of this type is always passed by reference.

type TextTagOverrides added in v0.0.5

type TextTagOverrides struct {
	// Event emits the “event” signal on the TextTag.
	//
	// The function takes the following parameters:
	//
	//   - eventObject: object that received the event, such as a widget.
	//   - event: event.
	//   - iter: location where the event was received.
	//
	// The function returns the following values:
	//
	//   - ok: result of signal emission (whether the event was handled).
	//
	Event func(eventObject *coreglib.Object, event *gdk.Event, iter *TextIter) bool
}

TextTagOverrides contains methods that are overridable.

type TextTagTable

type TextTagTable struct {
	*coreglib.Object

	Buildable
	// contains filtered or unexported fields
}

TextTagTable: you may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together.

GtkTextTagTables as GtkBuildable

The GtkTextTagTable implementation of the GtkBuildable interface supports adding tags by specifying “tag” as the “type” attribute of a <child> element.

An example of a UI definition fragment specifying tags:

<object class="GtkTextTagTable">
 <child type="tag">
   <object class="GtkTextTag"/>
 </child>
</object>.

func NewTextTagTable

func NewTextTagTable() *TextTagTable

NewTextTagTable creates a new TextTagTable. The table contains no tags by default.

The function returns the following values:

  • textTagTable: new TextTagTable.

func (*TextTagTable) Add

func (table *TextTagTable) Add(tag *TextTag) bool

Add a tag to the table. The tag is assigned the highest priority in the table.

tag must not be in a tag table already, and may not have the same name as an already-added tag.

The function takes the following parameters:

  • tag: TextTag.

The function returns the following values:

  • ok: TRUE on success.

func (*TextTagTable) ConnectTagAdded

func (table *TextTagTable) ConnectTagAdded(f func(tag *TextTag)) coreglib.SignalHandle

func (*TextTagTable) ConnectTagChanged

func (table *TextTagTable) ConnectTagChanged(f func(tag *TextTag, sizeChanged bool)) coreglib.SignalHandle

func (*TextTagTable) ConnectTagRemoved

func (table *TextTagTable) ConnectTagRemoved(f func(tag *TextTag)) coreglib.SignalHandle

func (*TextTagTable) ForEach

func (table *TextTagTable) ForEach(fn TextTagTableForEach)

ForEach calls func on each tag in table, with user data data. Note that the table may not be modified while iterating over it (you can’t add/remove tags).

The function takes the following parameters:

  • fn: function to call on each tag.

func (*TextTagTable) Lookup

func (table *TextTagTable) Lookup(name string) *TextTag

Lookup: look up a named tag.

The function takes the following parameters:

  • name of a tag.

The function returns the following values:

  • textTag (optional): tag, or NULL if none by that name is in the table.

func (*TextTagTable) Remove

func (table *TextTagTable) Remove(tag *TextTag)

Remove a tag from the table. If a TextBuffer has table as its tag table, the tag is removed from the buffer. The table’s reference to the tag is removed, so the tag will end up destroyed if you don’t have a reference to it.

The function takes the following parameters:

  • tag: TextTag.

func (*TextTagTable) Size

func (table *TextTagTable) Size() int

Size returns the size of the table (number of tags).

The function returns the following values:

  • gint: number of tags in table.

type TextTagTableClass added in v0.0.5

type TextTagTableClass struct {
	// contains filtered or unexported fields
}

TextTagTableClass: instance of this type is always passed by reference.

type TextTagTableForEach

type TextTagTableForEach func(tag *TextTag)

type TextTagTableOverrides added in v0.0.5

type TextTagTableOverrides struct {
	// The function takes the following parameters:
	//
	TagAdded func(tag *TextTag)
	// The function takes the following parameters:
	//
	//   - tag
	//   - sizeChanged
	//
	TagChanged func(tag *TextTag, sizeChanged bool)
	// The function takes the following parameters:
	//
	TagRemoved func(tag *TextTag)
}

TextTagTableOverrides contains methods that are overridable.

type TextView

type TextView struct {
	Container

	*coreglib.Object
	Scrollable
	// contains filtered or unexported fields
}

TextView: you may wish to begin by reading the [text widget conceptual overview][TextWidget] which gives an overview of all the objects and data types related to the text widget and how they work together.

CSS nodes

textview.view
├── border.top
├── border.left
├── text
│   ╰── [selection]
├── border.right
├── border.bottom
╰── [window.popup]

GtkTextView has a main css node with name textview and style class .view, and subnodes for each of the border windows, and the main text area, with names border and text, respectively. The border nodes each get one of the style classes .left, .right, .top or .bottom.

A node representing the selection will appear below the text node.

If a context menu is opened, the window node will appear as a subnode of the main node.

func NewTextView

func NewTextView() *TextView

NewTextView creates a new TextView. If you don’t call gtk_text_view_set_buffer() before using the text view, an empty default buffer will be created for you. Get the buffer with gtk_text_view_get_buffer(). If you want to specify your own buffer, consider gtk_text_view_new_with_buffer().

The function returns the following values:

  • textView: new TextView.

func NewTextViewWithBuffer

func NewTextViewWithBuffer(buffer *TextBuffer) *TextView

NewTextViewWithBuffer creates a new TextView widget displaying the buffer buffer. One buffer can be shared among many widgets. buffer may be NULL to create a default buffer, in which case this function is equivalent to gtk_text_view_new(). The text view adds its own reference count to the buffer; it does not take over an existing reference.

The function takes the following parameters:

  • buffer: TextBuffer.

The function returns the following values:

  • textView: new TextView.

func (*TextView) AcceptsTab

func (textView *TextView) AcceptsTab() bool

AcceptsTab returns whether pressing the Tab key inserts a tab characters. gtk_text_view_set_accepts_tab().

The function returns the following values:

  • ok: TRUE if pressing the Tab key inserts a tab character, FALSE if pressing the Tab key moves the keyboard focus.

func (*TextView) AddChildAtAnchor

func (textView *TextView) AddChildAtAnchor(child Widgetter, anchor *TextChildAnchor)

AddChildAtAnchor adds a child widget in the text buffer, at the given anchor.

The function takes the following parameters:

  • child: Widget.
  • anchor in the TextBuffer for text_view.

func (*TextView) AddChildInWindow

func (textView *TextView) AddChildInWindow(child Widgetter, whichWindow TextWindowType, xpos, ypos int)

AddChildInWindow adds a child at fixed coordinates in one of the text widget's windows.

The window must have nonzero size (see gtk_text_view_set_border_window_size()). Note that the child coordinates are given relative to scrolling. When placing a child in K_TEXT_WINDOW_WIDGET, scrolling is irrelevant, the child floats above all scrollable areas. But when placing a child in one of the scrollable windows (border windows or text window) it will move with the scrolling as needed.

The function takes the following parameters:

  • child: Widget.
  • whichWindow: which window the child should appear in.
  • xpos: x position of child in window coordinates.
  • ypos: y position of child in window coordinates.

func (*TextView) BackwardDisplayLine

func (textView *TextView) BackwardDisplayLine(iter *TextIter) bool

BackwardDisplayLine moves the given iter backward by one display (wrapped) line. A display line is different from a paragraph. Paragraphs are separated by newlines or other paragraph separator characters. Display lines are created by line-wrapping a paragraph. If wrapping is turned off, display lines and paragraphs will be the same. Display lines are divided differently for each view, since they depend on the view’s width; paragraphs are the same in all views, since they depend on the contents of the TextBuffer.

The function takes the following parameters:

  • iter: TextIter.

The function returns the following values:

  • ok: TRUE if iter was moved and is not on the end iterator.

func (*TextView) BackwardDisplayLineStart

func (textView *TextView) BackwardDisplayLineStart(iter *TextIter) bool

BackwardDisplayLineStart moves the given iter backward to the next display line start. A display line is different from a paragraph. Paragraphs are separated by newlines or other paragraph separator characters. Display lines are created by line-wrapping a paragraph. If wrapping is turned off, display lines and paragraphs will be the same. Display lines are divided differently for each view, since they depend on the view’s width; paragraphs are the same in all views, since they depend on the contents of the TextBuffer.

The function takes the following parameters:

  • iter: TextIter.

The function returns the following values:

  • ok: TRUE if iter was moved and is not on the end iterator.

func (*TextView) BorderWindowSize

func (textView *TextView) BorderWindowSize(typ TextWindowType) int

BorderWindowSize gets the width of the specified border window. See gtk_text_view_set_border_window_size().

The function takes the following parameters:

  • typ: window to return size from.

The function returns the following values:

  • gint: width of window.

func (*TextView) BottomMargin

func (textView *TextView) BottomMargin() int

BottomMargin gets the bottom margin for text in the text_view.

The function returns the following values:

  • gint: bottom margin in pixels.

func (*TextView) Buffer

func (textView *TextView) Buffer() *TextBuffer

Buffer returns the TextBuffer being displayed by this text view. The reference count on the buffer is not incremented; the caller of this function won’t own a new reference.

The function returns the following values:

  • textBuffer: TextBuffer.

func (*TextView) BufferToWindowCoords

func (textView *TextView) BufferToWindowCoords(win TextWindowType, bufferX, bufferY int) (windowX, windowY int)

BufferToWindowCoords converts coordinate (buffer_x, buffer_y) to coordinates for the window win, and stores the result in (window_x, window_y).

Note that you can’t convert coordinates for a nonexisting window (see gtk_text_view_set_border_window_size()).

The function takes the following parameters:

  • win except GTK_TEXT_WINDOW_PRIVATE.
  • bufferX: buffer x coordinate.
  • bufferY: buffer y coordinate.

The function returns the following values:

  • windowX (optional): window x coordinate return location or NULL.
  • windowY (optional): window y coordinate return location or NULL.

func (*TextView) ConnectBackspace

func (textView *TextView) ConnectBackspace(f func()) coreglib.SignalHandle

ConnectBackspace signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

The default bindings for this signal are Backspace and Shift-Backspace.

func (*TextView) ConnectCopyClipboard

func (textView *TextView) ConnectCopyClipboard(f func()) coreglib.SignalHandle

ConnectCopyClipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to copy the selection to the clipboard.

The default bindings for this signal are Ctrl-c and Ctrl-Insert.

func (*TextView) ConnectCutClipboard

func (textView *TextView) ConnectCutClipboard(f func()) coreglib.SignalHandle

ConnectCutClipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cut the selection to the clipboard.

The default bindings for this signal are Ctrl-x and Shift-Delete.

func (*TextView) ConnectDeleteFromCursor

func (textView *TextView) ConnectDeleteFromCursor(f func(typ DeleteType, count int)) coreglib.SignalHandle

ConnectDeleteFromCursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a text deletion.

If the type is GTK_DELETE_CHARS, GTK+ deletes the selection if there is one, otherwise it deletes the requested number of characters.

The default bindings for this signal are Delete for deleting a character, Ctrl-Delete for deleting a word and Ctrl-Backspace for deleting a word backwords.

func (*TextView) ConnectExtendSelection

func (textView *TextView) ConnectExtendSelection(f func(granularity TextExtendSelection, location, start, end *TextIter) (ok bool)) coreglib.SignalHandle

ConnectExtendSelection signal is emitted when the selection needs to be extended at location.

func (*TextView) ConnectInsertAtCursor

func (textView *TextView) ConnectInsertAtCursor(f func(str string)) coreglib.SignalHandle

ConnectInsertAtCursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates the insertion of a fixed string at the cursor.

This signal has no default bindings.

func (*TextView) ConnectInsertEmoji

func (textView *TextView) ConnectInsertEmoji(f func()) coreglib.SignalHandle

ConnectInsertEmoji signal is a [keybinding signal][GtkBindingSignal] which gets emitted to present the Emoji chooser for the text_view.

The default bindings for this signal are Ctrl-. and Ctrl-;.

func (*TextView) ConnectMoveCursor

func (textView *TextView) ConnectMoveCursor(f func(step MovementStep, count int, extendSelection bool)) coreglib.SignalHandle

ConnectMoveCursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a cursor movement. If the cursor is not visible in text_view, this signal causes the viewport to be moved instead.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically.

The default bindings for this signal come in two variants, the variant with the Shift modifier extends the selection, the variant without the Shift modifer does not. There are too many key combinations to list them all here.

- Arrow keys move by individual characters/lines

- Ctrl-arrow key combinations move by words/paragraphs

- Home/End keys move to the ends of the buffer

- PageUp/PageDown keys move vertically by pages

- Ctrl-PageUp/PageDown keys move horizontally by pages.

func (*TextView) ConnectMoveViewport

func (textView *TextView) ConnectMoveViewport(f func(step ScrollStep, count int)) coreglib.SignalHandle

ConnectMoveViewport signal is a [keybinding signal][GtkBindingSignal] which can be bound to key combinations to allow the user to move the viewport, i.e. change what part of the text view is visible in a containing scrolled window.

There are no default bindings for this signal.

func (*TextView) ConnectPasteClipboard

func (textView *TextView) ConnectPasteClipboard(f func()) coreglib.SignalHandle

ConnectPasteClipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to paste the contents of the clipboard into the text view.

The default bindings for this signal are Ctrl-v and Shift-Insert.

func (*TextView) ConnectPopulatePopup

func (textView *TextView) ConnectPopulatePopup(f func(popup Widgetter)) coreglib.SignalHandle

ConnectPopulatePopup signal gets emitted before showing the context menu of the text view.

If you need to add items to the context menu, connect to this signal and append your items to the popup, which will be a Menu in this case.

If TextView:populate-all is TRUE, this signal will also be emitted to populate touch popups. In this case, popup will be a different container, e.g. a Toolbar.

The signal handler should not make assumptions about the type of widget, but check whether popup is a Menu or Toolbar or another kind of container.

func (*TextView) ConnectPreeditChanged

func (textView *TextView) ConnectPreeditChanged(f func(preedit string)) coreglib.SignalHandle

ConnectPreeditChanged: if an input method is used, the typed text will not immediately be committed to the buffer. So if you are interested in the text, connect to this signal.

This signal is only emitted if the text at the given position is actually editable.

func (*TextView) ConnectSelectAll

func (textView *TextView) ConnectSelectAll(f func(sel bool)) coreglib.SignalHandle

ConnectSelectAll signal is a [keybinding signal][GtkBindingSignal] which gets emitted to select or unselect the complete contents of the text view.

The default bindings for this signal are Ctrl-a and Ctrl-/ for selecting and Shift-Ctrl-a and Ctrl-\ for unselecting.

func (*TextView) ConnectSetAnchor

func (textView *TextView) ConnectSetAnchor(f func()) coreglib.SignalHandle

ConnectSetAnchor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates setting the "anchor" mark. The "anchor" mark gets placed at the same position as the "insert" mark.

This signal has no default bindings.

func (*TextView) ConnectToggleCursorVisible

func (textView *TextView) ConnectToggleCursorVisible(f func()) coreglib.SignalHandle

ConnectToggleCursorVisible signal is a [keybinding signal][GtkBindingSignal] which gets emitted to toggle the TextView:cursor-visible property.

The default binding for this signal is F7.

func (*TextView) ConnectToggleOverwrite

func (textView *TextView) ConnectToggleOverwrite(f func()) coreglib.SignalHandle

ConnectToggleOverwrite signal is a [keybinding signal][GtkBindingSignal] which gets emitted to toggle the overwrite mode of the text view.

The default bindings for this signal is Insert.

func (*TextView) CursorLocations

func (textView *TextView) CursorLocations(iter *TextIter) (strong, weak *gdk.Rectangle)

CursorLocations: given an iter within a text layout, determine the positions of the strong and weak cursors if the insertion point is at that iterator. The position of each cursor is stored as a zero-width rectangle. The strong cursor location is the location where characters of the directionality equal to the base direction of the paragraph are inserted. The weak cursor location is the location where characters of the directionality opposite to the base direction of the paragraph are inserted.

If iter is NULL, the actual cursor position is used.

Note that if iter happens to be the actual cursor position, and there is currently an IM preedit sequence being entered, the returned locations will be adjusted to account for the preedit cursor’s offset within the preedit sequence.

The rectangle position is in buffer coordinates; use gtk_text_view_buffer_to_window_coords() to convert these coordinates to coordinates for one of the windows in the text view.

The function takes the following parameters:

  • iter (optional): TextIter.

The function returns the following values:

  • strong (optional): location to store the strong cursor position (may be NULL).
  • weak (optional): location to store the weak cursor position (may be NULL).

func (*TextView) CursorVisible

func (textView *TextView) CursorVisible() bool

CursorVisible: find out whether the cursor should be displayed.

The function returns the following values:

  • ok: whether the insertion mark is visible.

func (*TextView) DefaultAttributes

func (textView *TextView) DefaultAttributes() *TextAttributes

DefaultAttributes obtains a copy of the default text attributes. These are the attributes used for text unless a tag overrides them. You’d typically pass the default attributes in to gtk_text_iter_get_attributes() in order to get the attributes in effect at a given text position.

The return value is a copy owned by the caller of this function, and should be freed with gtk_text_attributes_unref().

The function returns the following values:

  • textAttributes: new TextAttributes.

func (*TextView) Editable

func (textView *TextView) Editable() bool

Editable returns the default editability of the TextView. Tags in the buffer may override this setting for some ranges of text.

The function returns the following values:

  • ok: whether text is editable by default.

func (*TextView) ForwardDisplayLine

func (textView *TextView) ForwardDisplayLine(iter *TextIter) bool

ForwardDisplayLine moves the given iter forward by one display (wrapped) line. A display line is different from a paragraph. Paragraphs are separated by newlines or other paragraph separator characters. Display lines are created by line-wrapping a paragraph. If wrapping is turned off, display lines and paragraphs will be the same. Display lines are divided differently for each view, since they depend on the view’s width; paragraphs are the same in all views, since they depend on the contents of the TextBuffer.

The function takes the following parameters:

  • iter: TextIter.

The function returns the following values:

  • ok: TRUE if iter was moved and is not on the end iterator.

func (*TextView) ForwardDisplayLineEnd

func (textView *TextView) ForwardDisplayLineEnd(iter *TextIter) bool

ForwardDisplayLineEnd moves the given iter forward to the next display line end. A display line is different from a paragraph. Paragraphs are separated by newlines or other paragraph separator characters. Display lines are created by line-wrapping a paragraph. If wrapping is turned off, display lines and paragraphs will be the same. Display lines are divided differently for each view, since they depend on the view’s width; paragraphs are the same in all views, since they depend on the contents of the TextBuffer.

The function takes the following parameters:

  • iter: TextIter.

The function returns the following values:

  • ok: TRUE if iter was moved and is not on the end iterator.

func (*TextView) HAdjustment deprecated

func (textView *TextView) HAdjustment() *Adjustment

HAdjustment gets the horizontal-scrolling Adjustment.

Deprecated: Use gtk_scrollable_get_hadjustment().

The function returns the following values:

  • adjustment: pointer to the horizontal Adjustment.

func (*TextView) IMContextFilterKeypress

func (textView *TextView) IMContextFilterKeypress(event *gdk.EventKey) bool

IMContextFilterKeypress: allow the TextView input method to internally handle key press and release events. If this function returns TRUE, then no further processing should be done for this key event. See gtk_im_context_filter_keypress().

Note that you are expected to call this function from your handler when overriding key event handling. This is needed in the case when you need to insert your own key handling between the input method and the default key event handling of the TextView.

static gboolean
gtk_foo_bar_key_press_event (GtkWidget   *widget,
                             GdkEventKey *event)
{
  guint keyval;

  gdk_event_get_keyval ((GdkEvent*)event, &keyval);

  if (keyval == GDK_KEY_Return || keyval == GDK_KEY_KP_Enter)
    {
      if (gtk_text_view_im_context_filter_keypress (GTK_TEXT_VIEW (widget), event))
        return TRUE;
    }

  // Do some stuff

  return GTK_WIDGET_CLASS (gtk_foo_bar_parent_class)->key_press_event (widget, event);
}.

The function takes the following parameters:

  • event: key event.

The function returns the following values:

  • ok: TRUE if the input method handled the key event.

func (*TextView) Indent

func (textView *TextView) Indent() int

Indent gets the default indentation of paragraphs in text_view. Tags in the view’s buffer may override the default. The indentation may be negative.

The function returns the following values:

  • gint: number of pixels of indentation.

func (*TextView) InputHints

func (textView *TextView) InputHints() InputHints

InputHints gets the value of the TextView:input-hints property.

The function returns the following values:

func (*TextView) InputPurpose

func (textView *TextView) InputPurpose() InputPurpose

InputPurpose gets the value of the TextView:input-purpose property.

The function returns the following values:

func (*TextView) IterAtLocation

func (textView *TextView) IterAtLocation(x, y int) (*TextIter, bool)

IterAtLocation retrieves the iterator at buffer coordinates x and y. Buffer coordinates are coordinates for the entire buffer, not just the currently-displayed portion. If you have coordinates from an event, you have to convert those to buffer coordinates with gtk_text_view_window_to_buffer_coords().

The function takes the following parameters:

  • x position, in buffer coordinates.
  • y position, in buffer coordinates.

The function returns the following values:

  • iter: TextIter.
  • ok: TRUE if the position is over text.

func (*TextView) IterAtPosition

func (textView *TextView) IterAtPosition(x, y int) (*TextIter, int, bool)

IterAtPosition retrieves the iterator pointing to the character at buffer coordinates x and y. Buffer coordinates are coordinates for the entire buffer, not just the currently-displayed portion. If you have coordinates from an event, you have to convert those to buffer coordinates with gtk_text_view_window_to_buffer_coords().

Note that this is different from gtk_text_view_get_iter_at_location(), which returns cursor locations, i.e. positions between characters.

The function takes the following parameters:

  • x position, in buffer coordinates.
  • y position, in buffer coordinates.

The function returns the following values:

  • iter: TextIter.
  • trailing (optional): if non-NULL, location to store an integer indicating where in the grapheme the user clicked. It will either be zero, or the number of characters in the grapheme. 0 represents the trailing edge of the grapheme.
  • ok: TRUE if the position is over text.

func (*TextView) IterLocation

func (textView *TextView) IterLocation(iter *TextIter) *gdk.Rectangle

IterLocation gets a rectangle which roughly contains the character at iter. The rectangle position is in buffer coordinates; use gtk_text_view_buffer_to_window_coords() to convert these coordinates to coordinates for one of the windows in the text view.

The function takes the following parameters:

  • iter: TextIter.

The function returns the following values:

  • location bounds of the character at iter.

func (*TextView) Justification

func (textView *TextView) Justification() Justification

Justification gets the default justification of paragraphs in text_view. Tags in the buffer may override the default.

The function returns the following values:

  • justification: default justification.

func (*TextView) LeftMargin

func (textView *TextView) LeftMargin() int

LeftMargin gets the default left margin size of paragraphs in the text_view. Tags in the buffer may override the default.

The function returns the following values:

  • gint: left margin in pixels.

func (*TextView) LineAtY

func (textView *TextView) LineAtY(y int) (*TextIter, int)

LineAtY gets the TextIter at the start of the line containing the coordinate y. y is in buffer coordinates, convert from window coordinates with gtk_text_view_window_to_buffer_coords(). If non-NULL, line_top will be filled with the coordinate of the top edge of the line.

The function takes the following parameters:

  • y coordinate.

The function returns the following values:

  • targetIter: TextIter.
  • lineTop: return location for top coordinate of the line.

func (*TextView) LineYrange

func (textView *TextView) LineYrange(iter *TextIter) (y, height int)

LineYrange gets the y coordinate of the top of the line containing iter, and the height of the line. The coordinate is a buffer coordinate; convert to window coordinates with gtk_text_view_buffer_to_window_coords().

The function takes the following parameters:

  • iter: TextIter.

The function returns the following values:

  • y: return location for a y coordinate.
  • height: return location for a height.

func (*TextView) Monospace

func (textView *TextView) Monospace() bool

Monospace gets the value of the TextView:monospace property.

The function returns the following values:

  • ok: TRUE if monospace fonts are desired.

func (*TextView) MoveChild

func (textView *TextView) MoveChild(child Widgetter, xpos, ypos int)

MoveChild updates the position of a child, as for gtk_text_view_add_child_in_window().

The function takes the following parameters:

  • child widget already added to the text view.
  • xpos: new X position in window coordinates.
  • ypos: new Y position in window coordinates.

func (*TextView) MoveMarkOnscreen

func (textView *TextView) MoveMarkOnscreen(mark *TextMark) bool

MoveMarkOnscreen moves a mark within the buffer so that it's located within the currently-visible text area.

The function takes the following parameters:

  • mark: TextMark.

The function returns the following values:

  • ok: TRUE if the mark moved (wasn’t already onscreen).

func (*TextView) MoveVisually

func (textView *TextView) MoveVisually(iter *TextIter, count int) bool

MoveVisually: move the iterator a given number of characters visually, treating it as the strong cursor position. If count is positive, then the new strong cursor position will be count positions to the right of the old cursor position. If count is negative then the new strong cursor position will be count positions to the left of the old cursor position.

In the presence of bi-directional text, the correspondence between logical and visual order will depend on the direction of the current run, and there may be jumps when the cursor is moved off of the end of a run.

The function takes the following parameters:

  • iter: TextIter.
  • count: number of characters to move (negative moves left, positive moves right).

The function returns the following values:

  • ok: TRUE if iter moved and is not on the end iterator.

func (*TextView) Overwrite

func (textView *TextView) Overwrite() bool

Overwrite returns whether the TextView is in overwrite mode or not.

The function returns the following values:

  • ok: whether text_view is in overwrite mode or not.

func (*TextView) PixelsAboveLines

func (textView *TextView) PixelsAboveLines() int

PixelsAboveLines gets the default number of pixels to put above paragraphs. Adding this function with gtk_text_view_get_pixels_below_lines() is equal to the line space between each paragraph.

The function returns the following values:

  • gint: default number of pixels above paragraphs.

func (*TextView) PixelsBelowLines

func (textView *TextView) PixelsBelowLines() int

PixelsBelowLines gets the value set by gtk_text_view_set_pixels_below_lines().

The line space is the sum of the value returned by this function and the value returned by gtk_text_view_get_pixels_above_lines().

The function returns the following values:

  • gint: default number of blank pixels below paragraphs.

func (*TextView) PixelsInsideWrap

func (textView *TextView) PixelsInsideWrap() int

PixelsInsideWrap gets the value set by gtk_text_view_set_pixels_inside_wrap().

The function returns the following values:

  • gint: default number of pixels of blank space between wrapped lines.

func (*TextView) PlaceCursorOnscreen

func (textView *TextView) PlaceCursorOnscreen() bool

PlaceCursorOnscreen moves the cursor to the currently visible region of the buffer, it it isn’t there already.

The function returns the following values:

  • ok: TRUE if the cursor had to be moved.
func (textView *TextView) ResetCursorBlink()

ResetCursorBlink ensures that the cursor is shown (i.e. not in an 'off' blink interval) and resets the time that it will stay blinking (or visible, in case blinking is disabled).

This function should be called in response to user input (e.g. from derived classes that override the textview's Widget::key-press-event handler).

func (*TextView) ResetIMContext

func (textView *TextView) ResetIMContext()

ResetIMContext: reset the input method context of the text view if needed.

This can be necessary in the case where modifying the buffer would confuse on-going input method behavior.

func (*TextView) RightMargin

func (textView *TextView) RightMargin() int

RightMargin gets the default right margin for text in text_view. Tags in the buffer may override the default.

The function returns the following values:

  • gint: right margin in pixels.

func (*TextView) ScrollMarkOnscreen

func (textView *TextView) ScrollMarkOnscreen(mark *TextMark)

ScrollMarkOnscreen scrolls text_view the minimum distance such that mark is contained within the visible area of the widget.

The function takes the following parameters:

  • mark in the buffer for text_view.

func (*TextView) ScrollToIter

func (textView *TextView) ScrollToIter(iter *TextIter, withinMargin float64, useAlign bool, xalign, yalign float64) bool

ScrollToIter scrolls text_view so that iter is on the screen in the position indicated by xalign and yalign. An alignment of 0.0 indicates left or top, 1.0 indicates right or bottom, 0.5 means center. If use_align is FALSE, the text scrolls the minimal distance to get the mark onscreen, possibly not scrolling at all. The effective screen for purposes of this function is reduced by a margin of size within_margin.

Note that this function uses the currently-computed height of the lines in the text buffer. Line heights are computed in an idle handler; so this function may not have the desired effect if it’s called before the height computations. To avoid oddness, consider using gtk_text_view_scroll_to_mark() which saves a point to be scrolled to after line validation.

The function takes the following parameters:

  • iter: TextIter.
  • withinMargin: margin as a [0.0,0.5) fraction of screen size.
  • useAlign: whether to use alignment arguments (if FALSE, just get the mark onscreen).
  • xalign: horizontal alignment of mark within visible area.
  • yalign: vertical alignment of mark within visible area.

The function returns the following values:

  • ok: TRUE if scrolling occurred.

func (*TextView) ScrollToMark

func (textView *TextView) ScrollToMark(mark *TextMark, withinMargin float64, useAlign bool, xalign, yalign float64)

ScrollToMark scrolls text_view so that mark is on the screen in the position indicated by xalign and yalign. An alignment of 0.0 indicates left or top, 1.0 indicates right or bottom, 0.5 means center. If use_align is FALSE, the text scrolls the minimal distance to get the mark onscreen, possibly not scrolling at all. The effective screen for purposes of this function is reduced by a margin of size within_margin.

The function takes the following parameters:

  • mark: TextMark.
  • withinMargin: margin as a [0.0,0.5) fraction of screen size.
  • useAlign: whether to use alignment arguments (if FALSE, just get the mark onscreen).
  • xalign: horizontal alignment of mark within visible area.
  • yalign: vertical alignment of mark within visible area.

func (*TextView) SetAcceptsTab

func (textView *TextView) SetAcceptsTab(acceptsTab bool)

SetAcceptsTab sets the behavior of the text widget when the Tab key is pressed. If accepts_tab is TRUE, a tab character is inserted. If accepts_tab is FALSE the keyboard focus is moved to the next widget in the focus chain.

The function takes the following parameters:

  • acceptsTab: TRUE if pressing the Tab key should insert a tab character, FALSE, if pressing the Tab key should move the keyboard focus.

func (*TextView) SetBorderWindowSize

func (textView *TextView) SetBorderWindowSize(typ TextWindowType, size int)

SetBorderWindowSize sets the width of GTK_TEXT_WINDOW_LEFT or GTK_TEXT_WINDOW_RIGHT, or the height of GTK_TEXT_WINDOW_TOP or GTK_TEXT_WINDOW_BOTTOM. Automatically destroys the corresponding window if the size is set to 0, and creates the window if the size is set to non-zero. This function can only be used for the “border windows”, and it won’t work with GTK_TEXT_WINDOW_WIDGET, GTK_TEXT_WINDOW_TEXT, or GTK_TEXT_WINDOW_PRIVATE.

The function takes the following parameters:

  • typ: window to affect.
  • size: width or height of the window.

func (*TextView) SetBottomMargin

func (textView *TextView) SetBottomMargin(bottomMargin int)

SetBottomMargin sets the bottom margin for text in text_view.

Note that this function is confusingly named. In CSS terms, the value set here is padding.

The function takes the following parameters:

  • bottomMargin: bottom margin in pixels.

func (*TextView) SetBuffer

func (textView *TextView) SetBuffer(buffer *TextBuffer)

SetBuffer sets buffer as the buffer being displayed by text_view. The previous buffer displayed by the text view is unreferenced, and a reference is added to buffer. If you owned a reference to buffer before passing it to this function, you must remove that reference yourself; TextView will not “adopt” it.

The function takes the following parameters:

  • buffer (optional): TextBuffer.

func (*TextView) SetCursorVisible

func (textView *TextView) SetCursorVisible(setting bool)

SetCursorVisible toggles whether the insertion point should be displayed. A buffer with no editable text probably shouldn’t have a visible cursor, so you may want to turn the cursor off.

Note that this property may be overridden by the Settings:gtk-keynave-use-caret settings.

The function takes the following parameters:

  • setting: whether to show the insertion cursor.

func (*TextView) SetEditable

func (textView *TextView) SetEditable(setting bool)

SetEditable sets the default editability of the TextView. You can override this default setting with tags in the buffer, using the “editable” attribute of tags.

The function takes the following parameters:

  • setting: whether it’s editable.

func (*TextView) SetIndent

func (textView *TextView) SetIndent(indent int)

SetIndent sets the default indentation for paragraphs in text_view. Tags in the buffer may override the default.

The function takes the following parameters:

  • indent: indentation in pixels.

func (*TextView) SetInputHints

func (textView *TextView) SetInputHints(hints InputHints)

SetInputHints sets the TextView:input-hints property, which allows input methods to fine-tune their behaviour.

The function takes the following parameters:

  • hints: hints.

func (*TextView) SetInputPurpose

func (textView *TextView) SetInputPurpose(purpose InputPurpose)

SetInputPurpose sets the TextView:input-purpose property which can be used by on-screen keyboards and other input methods to adjust their behaviour.

The function takes the following parameters:

  • purpose: purpose.

func (*TextView) SetJustification

func (textView *TextView) SetJustification(justification Justification)

SetJustification sets the default justification of text in text_view. Tags in the view’s buffer may override the default.

The function takes the following parameters:

  • justification: justification.

func (*TextView) SetLeftMargin

func (textView *TextView) SetLeftMargin(leftMargin int)

SetLeftMargin sets the default left margin for text in text_view. Tags in the buffer may override the default.

Note that this function is confusingly named. In CSS terms, the value set here is padding.

The function takes the following parameters:

  • leftMargin: left margin in pixels.

func (*TextView) SetMonospace

func (textView *TextView) SetMonospace(monospace bool)

SetMonospace sets the TextView:monospace property, which indicates that the text view should use monospace fonts.

The function takes the following parameters:

  • monospace: TRUE to request monospace styling.

func (*TextView) SetOverwrite

func (textView *TextView) SetOverwrite(overwrite bool)

SetOverwrite changes the TextView overwrite mode.

The function takes the following parameters:

  • overwrite: TRUE to turn on overwrite mode, FALSE to turn it off.

func (*TextView) SetPixelsAboveLines

func (textView *TextView) SetPixelsAboveLines(pixelsAboveLines int)

SetPixelsAboveLines sets the default number of blank pixels above paragraphs in text_view. Tags in the buffer for text_view may override the defaults.

The function takes the following parameters:

  • pixelsAboveLines pixels above paragraphs.

func (*TextView) SetPixelsBelowLines

func (textView *TextView) SetPixelsBelowLines(pixelsBelowLines int)

SetPixelsBelowLines sets the default number of pixels of blank space to put below paragraphs in text_view. May be overridden by tags applied to text_view’s buffer.

The function takes the following parameters:

  • pixelsBelowLines pixels below paragraphs.

func (*TextView) SetPixelsInsideWrap

func (textView *TextView) SetPixelsInsideWrap(pixelsInsideWrap int)

SetPixelsInsideWrap sets the default number of pixels of blank space to leave between display/wrapped lines within a paragraph. May be overridden by tags in text_view’s buffer.

The function takes the following parameters:

  • pixelsInsideWrap: default number of pixels between wrapped lines.

func (*TextView) SetRightMargin

func (textView *TextView) SetRightMargin(rightMargin int)

SetRightMargin sets the default right margin for text in the text view. Tags in the buffer may override the default.

Note that this function is confusingly named. In CSS terms, the value set here is padding.

The function takes the following parameters:

  • rightMargin: right margin in pixels.

func (*TextView) SetTabs

func (textView *TextView) SetTabs(tabs *pango.TabArray)

SetTabs sets the default tab stops for paragraphs in text_view. Tags in the buffer may override the default.

The function takes the following parameters:

  • tabs as a TabArray.

func (*TextView) SetTopMargin

func (textView *TextView) SetTopMargin(topMargin int)

SetTopMargin sets the top margin for text in text_view.

Note that this function is confusingly named. In CSS terms, the value set here is padding.

The function takes the following parameters:

  • topMargin: top margin in pixels.

func (*TextView) SetWrapMode

func (textView *TextView) SetWrapMode(wrapMode WrapMode)

SetWrapMode sets the line wrapping for the view.

The function takes the following parameters:

  • wrapMode: WrapMode.

func (*TextView) StartsDisplayLine

func (textView *TextView) StartsDisplayLine(iter *TextIter) bool

StartsDisplayLine determines whether iter is at the start of a display line. See gtk_text_view_forward_display_line() for an explanation of display lines vs. paragraphs.

The function takes the following parameters:

  • iter: TextIter.

The function returns the following values:

  • ok: TRUE if iter begins a wrapped line.

func (*TextView) Tabs

func (textView *TextView) Tabs() *pango.TabArray

Tabs gets the default tabs for text_view. Tags in the buffer may override the defaults. The returned array will be NULL if “standard” (8-space) tabs are used. Free the return value with pango_tab_array_free().

The function returns the following values:

  • tabArray (optional): copy of default tab array, or NULL if “standard" tabs are used; must be freed with pango_tab_array_free().

func (*TextView) TopMargin

func (textView *TextView) TopMargin() int

TopMargin gets the top margin for text in the text_view.

The function returns the following values:

  • gint: top margin in pixels.

func (*TextView) VAdjustment deprecated

func (textView *TextView) VAdjustment() *Adjustment

VAdjustment gets the vertical-scrolling Adjustment.

Deprecated: Use gtk_scrollable_get_vadjustment().

The function returns the following values:

  • adjustment: pointer to the vertical Adjustment.

func (*TextView) VisibleRect

func (textView *TextView) VisibleRect() *gdk.Rectangle

VisibleRect fills visible_rect with the currently-visible region of the buffer, in buffer coordinates. Convert to window coordinates with gtk_text_view_buffer_to_window_coords().

The function returns the following values:

  • visibleRect: rectangle to fill.

func (*TextView) Window

func (textView *TextView) Window(win TextWindowType) gdk.Windower

Window retrieves the Window corresponding to an area of the text view; possible windows include the overall widget window, child windows on the left, right, top, bottom, and the window that displays the text buffer. Windows are NULL and nonexistent if their width or height is 0, and are nonexistent before the widget has been realized.

The function takes the following parameters:

  • win: window to get.

The function returns the following values:

  • window (optional) or NULL.

func (*TextView) WindowToBufferCoords

func (textView *TextView) WindowToBufferCoords(win TextWindowType, windowX, windowY int) (bufferX, bufferY int)

WindowToBufferCoords converts coordinates on the window identified by win to buffer coordinates, storing the result in (buffer_x,buffer_y).

Note that you can’t convert coordinates for a nonexisting window (see gtk_text_view_set_border_window_size()).

The function takes the following parameters:

  • win except GTK_TEXT_WINDOW_PRIVATE.
  • windowX: window x coordinate.
  • windowY: window y coordinate.

The function returns the following values:

  • bufferX (optional): buffer x coordinate return location or NULL.
  • bufferY (optional): buffer y coordinate return location or NULL.

func (*TextView) WindowType

func (textView *TextView) WindowType(window gdk.Windower) TextWindowType

WindowType: usually used to find out which window an event corresponds to.

If you connect to an event signal on text_view, this function should be called on event->window to see which window it was.

The function takes the following parameters:

  • window type.

The function returns the following values:

  • textWindowType: window type.

func (*TextView) WrapMode

func (textView *TextView) WrapMode() WrapMode

WrapMode gets the line wrapping for the view.

The function returns the following values:

  • wrapMode: line wrap setting.

type TextViewAccessible

type TextViewAccessible struct {
	ContainerAccessible

	*coreglib.Object
	atk.EditableText
	atk.StreamableContent
	atk.Text
	// contains filtered or unexported fields
}

type TextViewAccessibleClass added in v0.0.5

type TextViewAccessibleClass struct {
	// contains filtered or unexported fields
}

TextViewAccessibleClass: instance of this type is always passed by reference.

func (*TextViewAccessibleClass) ParentClass added in v0.0.5

type TextViewAccessibleOverrides added in v0.0.5

type TextViewAccessibleOverrides struct {
}

TextViewAccessibleOverrides contains methods that are overridable.

type TextViewClass added in v0.0.5

type TextViewClass struct {
	// contains filtered or unexported fields
}

TextViewClass: instance of this type is always passed by reference.

func (*TextViewClass) ParentClass added in v0.0.5

func (t *TextViewClass) ParentClass() *ContainerClass

ParentClass: object class structure needs to be the first.

type TextViewLayer

type TextViewLayer C.gint

TextViewLayer: used to reference the layers of TextView for the purpose of customized drawing with the ::draw_layer vfunc.

const (
	// TextViewLayerBelow: old deprecated layer, use
	// GTK_TEXT_VIEW_LAYER_BELOW_TEXT instead.
	TextViewLayerBelow TextViewLayer = iota
	// TextViewLayerAbove: old deprecated layer, use
	// GTK_TEXT_VIEW_LAYER_ABOVE_TEXT instead.
	TextViewLayerAbove
	// TextViewLayerBelowText: layer rendered below the text (but above the
	// background). Since: 3.20.
	TextViewLayerBelowText
	// TextViewLayerAboveText: layer rendered above the text. Since: 3.20.
	TextViewLayerAboveText
)

func (TextViewLayer) String

func (t TextViewLayer) String() string

String returns the name in string for TextViewLayer.

type TextViewOverrides added in v0.0.5

type TextViewOverrides struct {
	Backspace     func()
	CopyClipboard func()
	CutClipboard  func()
	// The function takes the following parameters:
	//
	//   - typ
	//   - count
	//
	DeleteFromCursor func(typ DeleteType, count int)
	// The function takes the following parameters:
	//
	//   - layer
	//   - cr
	//
	DrawLayer func(layer TextViewLayer, cr *cairo.Context)
	// The function takes the following parameters:
	//
	//   - granularity
	//   - location
	//   - start
	//   - end
	//
	// The function returns the following values:
	//
	ExtendSelection func(granularity TextExtendSelection, location, start, end *TextIter) bool
	// The function takes the following parameters:
	//
	InsertAtCursor func(str string)
	InsertEmoji    func()
	// The function takes the following parameters:
	//
	//   - step
	//   - count
	//   - extendSelection
	//
	MoveCursor     func(step MovementStep, count int, extendSelection bool)
	PasteClipboard func()
	// The function takes the following parameters:
	//
	PopulatePopup   func(popup Widgetter)
	SetAnchor       func()
	ToggleOverwrite func()
}

TextViewOverrides contains methods that are overridable.

type TextWindowType

type TextWindowType C.gint

TextWindowType: used to reference the parts of TextView.

const (
	// TextWindowPrivate: invalid value, used as a marker.
	TextWindowPrivate TextWindowType = iota
	// TextWindowWidget: window that floats over scrolling areas.
	TextWindowWidget
	// TextWindowText: scrollable text window.
	TextWindowText
	// TextWindowLeft: left side border window.
	TextWindowLeft
	// TextWindowRight: right side border window.
	TextWindowRight
	// TextWindowTop: top border window.
	TextWindowTop
	// TextWindowBottom: bottom border window.
	TextWindowBottom
)

func (TextWindowType) String

func (t TextWindowType) String() string

String returns the name in string for TextWindowType.

type ThemingEngine

type ThemingEngine struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

ThemingEngine was the object used for rendering themed content in GTK+ widgets. It used to allow overriding GTK+'s default implementation of rendering functions by allowing engines to be loaded as modules.

ThemingEngine has been deprecated in GTK+ 3.14 and will be ignored for rendering. The advancements in CSS theming are good enough to allow themers to achieve their goals without the need to modify source code.

func ThemingEngineLoad deprecated

func ThemingEngineLoad(name string) *ThemingEngine

ThemingEngineLoad loads and initializes a theming engine module from the standard directories.

Deprecated: since version 3.14.

The function takes the following parameters:

  • name: theme engine name to load.

The function returns the following values:

  • themingEngine (optional): theming engine, or NULL if the engine name doesn’t exist.

func (*ThemingEngine) BackgroundColor deprecated

func (engine *ThemingEngine) BackgroundColor(state StateFlags) *gdk.RGBA

BackgroundColor gets the background color for a given state.

Deprecated: since version 3.14.

The function takes the following parameters:

  • state to retrieve the color for.

The function returns the following values:

  • color: return value for the background color.

func (*ThemingEngine) Border deprecated

func (engine *ThemingEngine) Border(state StateFlags) *Border

Border gets the border for a given state as a Border.

Deprecated: since version 3.14.

The function takes the following parameters:

  • state to retrieve the border for.

The function returns the following values:

  • border: return value for the border settings.

func (*ThemingEngine) BorderColor deprecated

func (engine *ThemingEngine) BorderColor(state StateFlags) *gdk.RGBA

BorderColor gets the border color for a given state.

Deprecated: since version 3.14.

The function takes the following parameters:

  • state to retrieve the color for.

The function returns the following values:

  • color: return value for the border color.

func (*ThemingEngine) Color deprecated

func (engine *ThemingEngine) Color(state StateFlags) *gdk.RGBA

Color gets the foreground color for a given state.

Deprecated: since version 3.14.

The function takes the following parameters:

  • state to retrieve the color for.

The function returns the following values:

  • color: return value for the foreground color.

func (*ThemingEngine) Direction deprecated

func (engine *ThemingEngine) Direction() TextDirection

Direction returns the widget direction used for rendering.

Deprecated: Use gtk_theming_engine_get_state() and check for K_STATE_FLAG_DIR_LTR and K_STATE_FLAG_DIR_RTL instead.

The function returns the following values:

  • textDirection: widget direction.

func (*ThemingEngine) Font deprecated

func (engine *ThemingEngine) Font(state StateFlags) *pango.FontDescription

Font returns the font description for a given state.

Deprecated: Use gtk_theming_engine_get().

The function takes the following parameters:

  • state to retrieve the font for.

The function returns the following values:

  • fontDescription for the given state. This object is owned by GTK+ and should not be freed.

func (*ThemingEngine) HasClass deprecated

func (engine *ThemingEngine) HasClass(styleClass string) bool

HasClass returns TRUE if the currently rendered contents have defined the given class name.

Deprecated: since version 3.14.

The function takes the following parameters:

  • styleClass class name to look up.

The function returns the following values:

  • ok: TRUE if engine has class_name defined.

func (*ThemingEngine) HasRegion deprecated

func (engine *ThemingEngine) HasRegion(styleRegion string) (RegionFlags, bool)

HasRegion returns TRUE if the currently rendered contents have the region defined. If flags_return is not NULL, it is set to the flags affecting the region.

Deprecated: since version 3.14.

The function takes the following parameters:

  • styleRegion: region name.

The function returns the following values:

  • flags (optional): return location for region flags.
  • ok: TRUE if region is defined.

func (*ThemingEngine) JunctionSides deprecated

func (engine *ThemingEngine) JunctionSides() JunctionSides

JunctionSides returns the widget direction used for rendering.

Deprecated: since version 3.14.

The function returns the following values:

  • junctionSides: widget direction.

func (*ThemingEngine) LookupColor deprecated

func (engine *ThemingEngine) LookupColor(colorName string) (*gdk.RGBA, bool)

LookupColor looks up and resolves a color name in the current style’s color map.

Deprecated: since version 3.14.

The function takes the following parameters:

  • colorName: color name to lookup.

The function returns the following values:

  • color: return location for the looked up color.
  • ok: TRUE if color_name was found and resolved, FALSE otherwise.

func (*ThemingEngine) Margin deprecated

func (engine *ThemingEngine) Margin(state StateFlags) *Border

Margin gets the margin for a given state as a Border.

Deprecated: since version 3.14.

The function takes the following parameters:

  • state to retrieve the border for.

The function returns the following values:

  • margin: return value for the margin settings.

func (*ThemingEngine) Padding deprecated

func (engine *ThemingEngine) Padding(state StateFlags) *Border

Padding gets the padding for a given state as a Border.

Deprecated: since version 3.14.

The function takes the following parameters:

  • state to retrieve the padding for.

The function returns the following values:

  • padding: return value for the padding settings.

func (*ThemingEngine) Path deprecated

func (engine *ThemingEngine) Path() *WidgetPath

Path returns the widget path used for style matching.

Deprecated: since version 3.14.

The function returns the following values:

  • widgetPath: WidgetPath.

func (*ThemingEngine) Property deprecated

func (engine *ThemingEngine) Property(property string, state StateFlags) coreglib.Value

Property gets a property value as retrieved from the style settings that apply to the currently rendered element.

Deprecated: since version 3.14.

The function takes the following parameters:

  • property name.
  • state to retrieve the value for.

The function returns the following values:

  • value: return location for the property value, you must free this memory using g_value_unset() once you are done with it.

func (*ThemingEngine) Screen deprecated

func (engine *ThemingEngine) Screen() *gdk.Screen

Screen returns the Screen to which engine currently rendering to.

Deprecated: since version 3.14.

The function returns the following values:

  • screen (optional) or NULL.

func (*ThemingEngine) State deprecated

func (engine *ThemingEngine) State() StateFlags

State returns the state used when rendering.

Deprecated: since version 3.14.

The function returns the following values:

  • stateFlags: state flags.

func (*ThemingEngine) StateIsRunning deprecated

func (engine *ThemingEngine) StateIsRunning(state StateType) (float64, bool)

StateIsRunning returns TRUE if there is a transition animation running for the current region (see gtk_style_context_push_animatable_region()).

If progress is not NULL, the animation progress will be returned there, 0.0 means the state is closest to being FALSE, while 1.0 means it’s closest to being TRUE. This means transition animations will run from 0 to 1 when state is being set to TRUE and from 1 to 0 when it’s being set to FALSE.

Deprecated: Always returns FALSE.

The function takes the following parameters:

  • state: widget state.

The function returns the following values:

  • progress: return location for the transition progress.
  • ok: TRUE if there is a running transition animation for state.

func (*ThemingEngine) StyleProperty deprecated

func (engine *ThemingEngine) StyleProperty(propertyName string) coreglib.Value

StyleProperty gets the value for a widget style property.

Deprecated: since version 3.14.

The function takes the following parameters:

  • propertyName: name of the widget style property.

The function returns the following values:

  • value: return location for the property value, free with g_value_unset() after use.

type ThemingEngineClass added in v0.0.5

type ThemingEngineClass struct {
	// contains filtered or unexported fields
}

ThemingEngineClass: base class for theming engines.

An instance of this type is always passed by reference.

type ThemingEngineOverrides added in v0.0.5

type ThemingEngineOverrides struct {
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - width
	//   - height
	//
	RenderActivity func(cr *cairo.Context, x, y, width, height float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - angle
	//   - x
	//   - y
	//   - size
	//
	RenderArrow func(cr *cairo.Context, angle, x, y, size float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - width
	//   - height
	//
	RenderBackground func(cr *cairo.Context, x, y, width, height float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - width
	//   - height
	//
	RenderCheck func(cr *cairo.Context, x, y, width, height float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - width
	//   - height
	//
	RenderExpander func(cr *cairo.Context, x, y, width, height float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - width
	//   - height
	//   - gapSide
	//
	RenderExtension func(cr *cairo.Context, x, y, width, height float64, gapSide PositionType)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - width
	//   - height
	//
	RenderFocus func(cr *cairo.Context, x, y, width, height float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - width
	//   - height
	//
	RenderFrame func(cr *cairo.Context, x, y, width, height float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - width
	//   - height
	//   - gapSide
	//   - xy0Gap
	//   - xy1Gap
	//
	RenderFrameGap func(cr *cairo.Context, x, y, width, height float64, gapSide PositionType, xy0Gap, xy1Gap float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - width
	//   - height
	//
	RenderHandle func(cr *cairo.Context, x, y, width, height float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - pixbuf
	//   - x
	//   - y
	//
	RenderIcon func(cr *cairo.Context, pixbuf *gdkpixbuf.Pixbuf, x, y float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - surface
	//   - x
	//   - y
	//
	RenderIconSurface func(cr *cairo.Context, surface *cairo.Surface, x, y float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - layout
	//
	RenderLayout func(cr *cairo.Context, x, y float64, layout *pango.Layout)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x0
	//   - y0
	//   - x1
	//   - y1
	//
	RenderLine func(cr *cairo.Context, x0, y0, x1, y1 float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - width
	//   - height
	//
	RenderOption func(cr *cairo.Context, x, y, width, height float64)
	// The function takes the following parameters:
	//
	//   - cr
	//   - x
	//   - y
	//   - width
	//   - height
	//   - orientation
	//
	RenderSlider func(cr *cairo.Context, x, y, width, height float64, orientation Orientation)
}

ThemingEngineOverrides contains methods that are overridable.

type TickCallback

type TickCallback func(widget Widgetter, frameClock gdk.FrameClocker) (ok bool)

TickCallback: callback type for adding a function to update animations. See gtk_widget_add_tick_callback().

type ToggleAction

type ToggleAction struct {
	Action
	// contains filtered or unexported fields
}

ToggleAction corresponds roughly to a CheckMenuItem. It has an “active” state specifying whether the action has been checked or not.

func NewToggleAction deprecated

func NewToggleAction(name, label, tooltip, stockId string) *ToggleAction

NewToggleAction creates a new ToggleAction object. To add the action to a ActionGroup and set the accelerator for the action, call gtk_action_group_add_action_with_accel().

Deprecated: since version 3.10.

The function takes the following parameters:

  • name: unique name for the action.
  • label (optional) displayed in menu items and on buttons, or NULL.
  • tooltip (optional) for the action, or NULL.
  • stockId (optional): stock icon to display in widgets representing the action, or NULL.

The function returns the following values:

  • toggleAction: new ToggleAction.

func (*ToggleAction) Active deprecated

func (action *ToggleAction) Active() bool

Active returns the checked state of the toggle action.

Deprecated: since version 3.10.

The function returns the following values:

  • ok: checked state of the toggle action.

func (*ToggleAction) ConnectToggled

func (action *ToggleAction) ConnectToggled(f func()) coreglib.SignalHandle

ConnectToggled: should be connected if you wish to perform an action whenever the ToggleAction state is changed.

func (*ToggleAction) DrawAsRadio deprecated

func (action *ToggleAction) DrawAsRadio() bool

DrawAsRadio returns whether the action should have proxies like a radio action.

Deprecated: since version 3.10.

The function returns the following values:

  • ok: whether the action should have proxies like a radio action.

func (*ToggleAction) SetActive deprecated

func (action *ToggleAction) SetActive(isActive bool)

SetActive sets the checked state on the toggle action.

Deprecated: since version 3.10.

The function takes the following parameters:

  • isActive: whether the action should be checked or not.

func (*ToggleAction) SetDrawAsRadio deprecated

func (action *ToggleAction) SetDrawAsRadio(drawAsRadio bool)

SetDrawAsRadio sets whether the action should have proxies like a radio action.

Deprecated: since version 3.10.

The function takes the following parameters:

  • drawAsRadio: whether the action should have proxies like a radio action.

func (*ToggleAction) Toggled deprecated

func (action *ToggleAction) Toggled()

Toggled emits the “toggled” signal on the toggle action.

Deprecated: since version 3.10.

type ToggleActionClass added in v0.0.5

type ToggleActionClass struct {
	// contains filtered or unexported fields
}

ToggleActionClass: instance of this type is always passed by reference.

func (*ToggleActionClass) ParentClass added in v0.0.5

func (t *ToggleActionClass) ParentClass() *ActionClass

type ToggleActionEntry deprecated

type ToggleActionEntry struct {
	// contains filtered or unexported fields
}

ToggleActionEntry structs are used with gtk_action_group_add_toggle_actions() to construct toggle actions.

Deprecated: since version 3.10.

An instance of this type is always passed by reference.

func (*ToggleActionEntry) Accelerator

func (t *ToggleActionEntry) Accelerator() string

Accelerator: accelerator for the action, in the format understood by gtk_accelerator_parse().

func (*ToggleActionEntry) IsActive

func (t *ToggleActionEntry) IsActive() bool

IsActive: initial state of the toggle action.

func (*ToggleActionEntry) Label

func (t *ToggleActionEntry) Label() string

Label: label for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain().

func (*ToggleActionEntry) Name

func (t *ToggleActionEntry) Name() string

Name: name of the action.

func (*ToggleActionEntry) SetIsActive

func (t *ToggleActionEntry) SetIsActive(isActive bool)

IsActive: initial state of the toggle action.

func (*ToggleActionEntry) StockID

func (t *ToggleActionEntry) StockID() string

StockID: stock id for the action, or the name of an icon from the icon theme.

func (*ToggleActionEntry) Tooltip

func (t *ToggleActionEntry) Tooltip() string

Tooltip: tooltip for the action. This field should typically be marked for translation, see gtk_action_group_set_translation_domain().

type ToggleActionOverrides added in v0.0.5

type ToggleActionOverrides struct {
	// Toggled emits the “toggled” signal on the toggle action.
	//
	// Deprecated: since version 3.10.
	Toggled func()
}

ToggleActionOverrides contains methods that are overridable.

type ToggleButton

type ToggleButton struct {
	Button
	// contains filtered or unexported fields
}

ToggleButton is a Button which will remain “pressed-in” when clicked. Clicking again will cause the toggle button to return to its normal state.

A toggle button is created by calling either gtk_toggle_button_new() or gtk_toggle_button_new_with_label(). If using the former, it is advisable to pack a widget, (such as a Label and/or a Image), into the toggle button’s container. (See Button for more information).

The state of a ToggleButton can be set specifically using gtk_toggle_button_set_active(), and retrieved using gtk_toggle_button_get_active().

To simply switch the state of a toggle button, use gtk_toggle_button_toggled().

CSS nodes

GtkToggleButton has a single CSS node with name button. To differentiate it from a plain Button, it gets the .toggle style class.

Creating two ToggleButton widgets.

static void output_state (GtkToggleButton *source, gpointer user_data) {
  printf ("Active: d\n", gtk_toggle_button_get_active (source));
}

void make_toggles (void) {
  GtkWidget *window, *toggle1, *toggle2;
  GtkWidget *box;
  const char *text;

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);

  text = "Hi, I’m a toggle button.";
  toggle1 = gtk_toggle_button_new_with_label (text);

  // Makes this toggle button invisible
  gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle1),
                              TRUE);

  g_signal_connect (toggle1, "toggled",
                    G_CALLBACK (output_state),
                    NULL);
  gtk_container_add (GTK_CONTAINER (box), toggle1);

  text = "Hi, I’m a toggle button.";
  toggle2 = gtk_toggle_button_new_with_label (text);
  gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (toggle2),
                              FALSE);
  g_signal_connect (toggle2, "toggled",
                    G_CALLBACK (output_state),
                    NULL);
  gtk_container_add (GTK_CONTAINER (box), toggle2);

  gtk_container_add (GTK_CONTAINER (window), box);
  gtk_widget_show_all (window);
}.

func NewToggleButton

func NewToggleButton() *ToggleButton

NewToggleButton creates a new toggle button. A widget should be packed into the button, as in gtk_button_new().

The function returns the following values:

  • toggleButton: new toggle button.

func NewToggleButtonWithLabel

func NewToggleButtonWithLabel(label string) *ToggleButton

NewToggleButtonWithLabel creates a new toggle button with a text label.

The function takes the following parameters:

  • label: string containing the message to be placed in the toggle button.

The function returns the following values:

  • toggleButton: new toggle button.

func NewToggleButtonWithMnemonic

func NewToggleButtonWithMnemonic(label string) *ToggleButton

NewToggleButtonWithMnemonic creates a new ToggleButton containing a label. The label will be created using gtk_label_new_with_mnemonic(), so underscores in label indicate the mnemonic for the button.

The function takes the following parameters:

  • label: text of the button, with an underscore in front of the mnemonic character.

The function returns the following values:

  • toggleButton: new ToggleButton.

func (*ToggleButton) Active

func (toggleButton *ToggleButton) Active() bool

Active queries a ToggleButton and returns its current state. Returns TRUE if the toggle button is pressed in and FALSE if it is raised.

The function returns the following values:

  • ok: #gboolean value.

func (*ToggleButton) ConnectToggled

func (toggleButton *ToggleButton) ConnectToggled(f func()) coreglib.SignalHandle

ConnectToggled: should be connected if you wish to perform an action whenever the ToggleButton's state is changed.

func (*ToggleButton) Inconsistent

func (toggleButton *ToggleButton) Inconsistent() bool

Inconsistent gets the value set by gtk_toggle_button_set_inconsistent().

The function returns the following values:

  • ok: TRUE if the button is displayed as inconsistent, FALSE otherwise.

func (*ToggleButton) Mode

func (toggleButton *ToggleButton) Mode() bool

Mode retrieves whether the button is displayed as a separate indicator and label. See gtk_toggle_button_set_mode().

The function returns the following values:

  • ok: TRUE if the togglebutton is drawn as a separate indicator and label.

func (*ToggleButton) SetActive

func (toggleButton *ToggleButton) SetActive(isActive bool)

SetActive sets the status of the toggle button. Set to TRUE if you want the GtkToggleButton to be “pressed in”, and FALSE to raise it. This action causes the ToggleButton::toggled signal and the Button::clicked signal to be emitted.

The function takes the following parameters:

  • isActive: TRUE or FALSE.

func (*ToggleButton) SetInconsistent

func (toggleButton *ToggleButton) SetInconsistent(setting bool)

SetInconsistent: if the user has selected a range of elements (such as some text or spreadsheet cells) that are affected by a toggle button, and the current values in that range are inconsistent, you may want to display the toggle in an “in between” state. This function turns on “in between” display. Normally you would turn off the inconsistent state again if the user toggles the toggle button. This has to be done manually, gtk_toggle_button_set_inconsistent() only affects visual appearance, it doesn’t affect the semantics of the button.

The function takes the following parameters:

  • setting: TRUE if state is inconsistent.

func (*ToggleButton) SetMode

func (toggleButton *ToggleButton) SetMode(drawIndicator bool)

SetMode sets whether the button is displayed as a separate indicator and label. You can call this function on a checkbutton or a radiobutton with draw_indicator = FALSE to make the button look like a normal button.

This can be used to create linked strip of buttons that work like a StackSwitcher.

This function only affects instances of classes like CheckButton and RadioButton that derive from ToggleButton, not instances of ToggleButton itself.

The function takes the following parameters:

  • drawIndicator: if TRUE, draw the button as a separate indicator and label; if FALSE, draw the button like a normal button.

func (*ToggleButton) Toggled

func (toggleButton *ToggleButton) Toggled()

Toggled emits the ToggleButton::toggled signal on the ToggleButton. There is no good reason for an application ever to call this function.

type ToggleButtonAccessible

type ToggleButtonAccessible struct {
	ButtonAccessible
	// contains filtered or unexported fields
}

type ToggleButtonAccessibleClass added in v0.0.5

type ToggleButtonAccessibleClass struct {
	// contains filtered or unexported fields
}

ToggleButtonAccessibleClass: instance of this type is always passed by reference.

func (*ToggleButtonAccessibleClass) ParentClass added in v0.0.5

type ToggleButtonAccessibleOverrides added in v0.0.5

type ToggleButtonAccessibleOverrides struct {
}

ToggleButtonAccessibleOverrides contains methods that are overridable.

type ToggleButtonClass added in v0.0.5

type ToggleButtonClass struct {
	// contains filtered or unexported fields
}

ToggleButtonClass: instance of this type is always passed by reference.

func (*ToggleButtonClass) ParentClass added in v0.0.5

func (t *ToggleButtonClass) ParentClass() *ButtonClass

type ToggleButtonOverrides added in v0.0.5

type ToggleButtonOverrides struct {
	// Toggled emits the ToggleButton::toggled signal on the ToggleButton.
	// There is no good reason for an application ever to call this function.
	Toggled func()
}

ToggleButtonOverrides contains methods that are overridable.

type ToggleToolButton

type ToggleToolButton struct {
	ToolButton
	// contains filtered or unexported fields
}

ToggleToolButton is a ToolItem that contains a toggle button.

Use gtk_toggle_tool_button_new() to create a new GtkToggleToolButton.

CSS nodes

GtkToggleToolButton has a single CSS node with name togglebutton.

func NewToggleToolButton

func NewToggleToolButton() *ToggleToolButton

NewToggleToolButton returns a new ToggleToolButton.

The function returns the following values:

  • toggleToolButton: newly created ToggleToolButton.

func NewToggleToolButtonFromStock deprecated

func NewToggleToolButtonFromStock(stockId string) *ToggleToolButton

NewToggleToolButtonFromStock creates a new ToggleToolButton containing the image and text from a stock item. Some stock ids have preprocessor macros like K_STOCK_OK and K_STOCK_APPLY.

It is an error if stock_id is not a name of a stock item.

Deprecated: Use gtk_toggle_tool_button_new() instead.

The function takes the following parameters:

  • stockId: name of the stock item.

The function returns the following values:

  • toggleToolButton: new ToggleToolButton.

func (*ToggleToolButton) Active

func (button *ToggleToolButton) Active() bool

Active queries a ToggleToolButton and returns its current state. Returns TRUE if the toggle button is pressed in and FALSE if it is raised.

The function returns the following values:

  • ok: TRUE if the toggle tool button is pressed in, FALSE if not.

func (*ToggleToolButton) ConnectToggled

func (button *ToggleToolButton) ConnectToggled(f func()) coreglib.SignalHandle

ConnectToggled is emitted whenever the toggle tool button changes state.

func (*ToggleToolButton) SetActive

func (button *ToggleToolButton) SetActive(isActive bool)

SetActive sets the status of the toggle tool button. Set to TRUE if you want the GtkToggleButton to be “pressed in”, and FALSE to raise it. This action causes the toggled signal to be emitted.

The function takes the following parameters:

  • isActive: whether button should be active.

type ToggleToolButtonClass added in v0.0.5

type ToggleToolButtonClass struct {
	// contains filtered or unexported fields
}

ToggleToolButtonClass: instance of this type is always passed by reference.

func (*ToggleToolButtonClass) ParentClass added in v0.0.5

func (t *ToggleToolButtonClass) ParentClass() *ToolButtonClass

ParentClass: parent class.

type ToggleToolButtonOverrides added in v0.0.5

type ToggleToolButtonOverrides struct {
	Toggled func()
}

ToggleToolButtonOverrides contains methods that are overridable.

type ToolButton

type ToolButton struct {
	ToolItem

	*coreglib.Object
	Actionable
	// contains filtered or unexported fields
}

ToolButton are ToolItems containing buttons.

Use gtk_tool_button_new() to create a new ToolButton.

The label of a ToolButton is determined by the properties ToolButton:label-widget, ToolButton:label, and ToolButton:stock-id. If ToolButton:label-widget is non-NULL, then that widget is used as the label. Otherwise, if ToolButton:label is non-NULL, that string is used as the label. Otherwise, if ToolButton:stock-id is non-NULL, the label is determined by the stock item. Otherwise, the button does not have a label.

The icon of a ToolButton is determined by the properties ToolButton:icon-widget and ToolButton:stock-id. If ToolButton:icon-widget is non-NULL, then that widget is used as the icon. Otherwise, if ToolButton:stock-id is non-NULL, the icon is determined by the stock item. Otherwise, the button does not have a icon.

CSS nodes

GtkToolButton has a single CSS node with name toolbutton.

func NewToolButton

func NewToolButton(iconWidget Widgetter, label string) *ToolButton

NewToolButton creates a new ToolButton using icon_widget as contents and label as label.

The function takes the following parameters:

  • iconWidget (optional): widget that will be used as the button contents, or NULL.
  • label (optional): string that will be used as label, or NULL.

The function returns the following values:

  • toolButton: new ToolButton.

func NewToolButtonFromStock deprecated

func NewToolButtonFromStock(stockId string) *ToolButton

NewToolButtonFromStock creates a new ToolButton containing the image and text from a stock item. Some stock ids have preprocessor macros like K_STOCK_OK and K_STOCK_APPLY.

It is an error if stock_id is not a name of a stock item.

Deprecated: Use gtk_tool_button_new() together with gtk_image_new_from_icon_name() instead.

The function takes the following parameters:

  • stockId: name of the stock item.

The function returns the following values:

  • toolButton: new ToolButton.

func (*ToolButton) ConnectClicked

func (button *ToolButton) ConnectClicked(f func()) coreglib.SignalHandle

ConnectClicked: this signal is emitted when the tool button is clicked with the mouse or activated with the keyboard.

func (*ToolButton) IconName

func (button *ToolButton) IconName() string

IconName returns the name of the themed icon for the tool button, see gtk_tool_button_set_icon_name().

The function returns the following values:

  • utf8 (optional): icon name or NULL if the tool button has no themed icon.

func (*ToolButton) IconWidget

func (button *ToolButton) IconWidget() Widgetter

IconWidget: return the widget used as icon widget on button. See gtk_tool_button_set_icon_widget().

The function returns the following values:

  • widget (optional) used as icon on button, or NULL.

func (*ToolButton) Label

func (button *ToolButton) Label() string

Label returns the label used by the tool button, or NULL if the tool button doesn’t have a label. or uses a the label from a stock item. The returned string is owned by GTK+, and must not be modified or freed.

The function returns the following values:

  • utf8 (optional): label, or NULL.

func (*ToolButton) LabelWidget

func (button *ToolButton) LabelWidget() Widgetter

LabelWidget returns the widget used as label on button. See gtk_tool_button_set_label_widget().

The function returns the following values:

  • widget (optional) used as label on button, or NULL.

func (*ToolButton) SetIconName

func (button *ToolButton) SetIconName(iconName string)

SetIconName sets the icon for the tool button from a named themed icon. See the docs for IconTheme for more details. The ToolButton:icon-name property only has an effect if not overridden by non-NULL ToolButton:label-widget, ToolButton:icon-widget and ToolButton:stock-id properties.

The function takes the following parameters:

  • iconName (optional): name of the themed icon.

func (*ToolButton) SetIconWidget

func (button *ToolButton) SetIconWidget(iconWidget Widgetter)

SetIconWidget sets icon as the widget used as icon on button. If icon_widget is NULL the icon is determined by the ToolButton:stock-id property. If the ToolButton:stock-id property is also NULL, button will not have an icon.

The function takes the following parameters:

  • iconWidget (optional): widget used as icon, or NULL.

func (*ToolButton) SetLabel

func (button *ToolButton) SetLabel(label string)

SetLabel sets label as the label used for the tool button. The ToolButton:label property only has an effect if not overridden by a non-NULL ToolButton:label-widget property. If both the ToolButton:label-widget and ToolButton:label properties are NULL, the label is determined by the ToolButton:stock-id property. If the ToolButton:stock-id property is also NULL, button will not have a label.

The function takes the following parameters:

  • label (optional): string that will be used as label, or NULL.

func (*ToolButton) SetLabelWidget

func (button *ToolButton) SetLabelWidget(labelWidget Widgetter)

SetLabelWidget sets label_widget as the widget that will be used as the label for button. If label_widget is NULL the ToolButton:label property is used as label. If ToolButton:label is also NULL, the label in the stock item determined by the ToolButton:stock-id property is used as label. If ToolButton:stock-id is also NULL, button does not have a label.

The function takes the following parameters:

  • labelWidget (optional): widget used as label, or NULL.

func (*ToolButton) SetStockID deprecated

func (button *ToolButton) SetStockID(stockId string)

SetStockID sets the name of the stock item. See gtk_tool_button_new_from_stock(). The stock_id property only has an effect if not overridden by non-NULL ToolButton:label-widget and ToolButton:icon-widget properties.

Deprecated: Use gtk_tool_button_set_icon_name() instead.

The function takes the following parameters:

  • stockId (optional): name of a stock item, or NULL.

func (*ToolButton) SetUseUnderline

func (button *ToolButton) SetUseUnderline(useUnderline bool)

SetUseUnderline: if set, an underline in the label property indicates that the next character should be used for the mnemonic accelerator key in the overflow menu. For example, if the label property is “_Open” and use_underline is TRUE, the label on the tool button will be “Open” and the item on the overflow menu will have an underlined “O”.

Labels shown on tool buttons never have mnemonics on them; this property only affects the menu item on the overflow menu.

The function takes the following parameters:

  • useUnderline: whether the button label has the form “_Open”.

func (*ToolButton) StockID deprecated

func (button *ToolButton) StockID() string

StockID returns the name of the stock item. See gtk_tool_button_set_stock_id(). The returned string is owned by GTK+ and must not be freed or modifed.

Deprecated: Use gtk_tool_button_get_icon_name() instead.

The function returns the following values:

  • utf8: name of the stock item for button.

func (*ToolButton) UseUnderline

func (button *ToolButton) UseUnderline() bool

UseUnderline returns whether underscores in the label property are used as mnemonics on menu items on the overflow menu. See gtk_tool_button_set_use_underline().

The function returns the following values:

  • ok: TRUE if underscores in the label property are used as mnemonics on menu items on the overflow menu.

type ToolButtonClass added in v0.0.5

type ToolButtonClass struct {
	// contains filtered or unexported fields
}

ToolButtonClass: instance of this type is always passed by reference.

func (*ToolButtonClass) ButtonType added in v0.0.5

func (t *ToolButtonClass) ButtonType() coreglib.Type

func (*ToolButtonClass) ParentClass added in v0.0.5

func (t *ToolButtonClass) ParentClass() *ToolItemClass

ParentClass: parent class.

type ToolButtonOverrides added in v0.0.5

type ToolButtonOverrides struct {
	Clicked func()
}

ToolButtonOverrides contains methods that are overridable.

type ToolItem

type ToolItem struct {
	Bin

	*coreglib.Object
	Activatable
	// contains filtered or unexported fields
}

ToolItem are widgets that can appear on a toolbar. To create a toolbar item that contain something else than a button, use gtk_tool_item_new(). Use gtk_container_add() to add a child widget to the tool item.

For toolbar items that contain buttons, see the ToolButton, ToggleToolButton and RadioToolButton classes.

See the Toolbar class for a description of the toolbar widget, and ToolShell for a description of the tool shell interface.

func NewToolItem

func NewToolItem() *ToolItem

NewToolItem creates a new ToolItem.

The function returns the following values:

  • toolItem: new ToolItem.

func (*ToolItem) ConnectCreateMenuProxy

func (toolItem *ToolItem) ConnectCreateMenuProxy(f func() (ok bool)) coreglib.SignalHandle

ConnectCreateMenuProxy: this signal is emitted when the toolbar needs information from tool_item about whether the item should appear in the toolbar overflow menu. In response the tool item should either

- call gtk_tool_item_set_proxy_menu_item() with a NULL pointer and return TRUE to indicate that the item should not appear in the overflow menu

- call gtk_tool_item_set_proxy_menu_item() with a new menu item and return TRUE, or

- return FALSE to indicate that the signal was not handled by the item. This means that the item will not appear in the overflow menu unless a later handler installs a menu item.

The toolbar may cache the result of this signal. When the tool item changes how it will respond to this signal it must call gtk_tool_item_rebuild_menu() to invalidate the cache and ensure that the toolbar rebuilds its overflow menu.

func (*ToolItem) ConnectToolbarReconfigured

func (toolItem *ToolItem) ConnectToolbarReconfigured(f func()) coreglib.SignalHandle

ConnectToolbarReconfigured: this signal is emitted when some property of the toolbar that the item is a child of changes. For custom subclasses of ToolItem, the default handler of this signal use the functions

- gtk_tool_shell_get_orientation()

- gtk_tool_shell_get_style()

- gtk_tool_shell_get_icon_size()

- gtk_tool_shell_get_relief_style() to find out what the toolbar should look like and change themselves accordingly.

func (*ToolItem) EllipsizeMode

func (toolItem *ToolItem) EllipsizeMode() pango.EllipsizeMode

EllipsizeMode returns the ellipsize mode used for tool_item. Custom subclasses of ToolItem should call this function to find out how text should be ellipsized.

The function returns the following values:

  • ellipsizeMode indicating how text in tool_item should be ellipsized.

func (*ToolItem) Expand

func (toolItem *ToolItem) Expand() bool

Expand returns whether tool_item is allocated extra space. See gtk_tool_item_set_expand().

The function returns the following values:

  • ok: TRUE if tool_item is allocated extra space.

func (*ToolItem) Homogeneous

func (toolItem *ToolItem) Homogeneous() bool

Homogeneous returns whether tool_item is the same size as other homogeneous items. See gtk_tool_item_set_homogeneous().

The function returns the following values:

  • ok: TRUE if the item is the same size as other homogeneous items.

func (*ToolItem) IconSize

func (toolItem *ToolItem) IconSize() int

IconSize returns the icon size used for tool_item. Custom subclasses of ToolItem should call this function to find out what size icons they should use.

The function returns the following values:

  • gint indicating the icon size used for tool_item.

func (*ToolItem) IsImportant

func (toolItem *ToolItem) IsImportant() bool

IsImportant returns whether tool_item is considered important. See gtk_tool_item_set_is_important().

The function returns the following values:

  • ok: TRUE if tool_item is considered important.

func (*ToolItem) Orientation

func (toolItem *ToolItem) Orientation() Orientation

Orientation returns the orientation used for tool_item. Custom subclasses of ToolItem should call this function to find out what size icons they should use.

The function returns the following values:

  • orientation indicating the orientation used for tool_item.

func (*ToolItem) ProxyMenuItem

func (toolItem *ToolItem) ProxyMenuItem(menuItemId string) Widgetter

ProxyMenuItem: if menu_item_id matches the string passed to gtk_tool_item_set_proxy_menu_item() return the corresponding MenuItem.

Custom subclasses of ToolItem should use this function to update their menu item when the ToolItem changes. That the menu_item_ids must match ensures that a ToolItem will not inadvertently change a menu item that they did not create.

The function takes the following parameters:

  • menuItemId: string used to identify the menu item.

The function returns the following values:

  • widget (optional) passed to gtk_tool_item_set_proxy_menu_item(), if the menu_item_ids match.

func (*ToolItem) RebuildMenu

func (toolItem *ToolItem) RebuildMenu()

RebuildMenu: calling this function signals to the toolbar that the overflow menu item for tool_item has changed. If the overflow menu is visible when this function it called, the menu will be rebuilt.

The function must be called when the tool item changes what it will do in response to the ToolItem::create-menu-proxy signal.

func (*ToolItem) ReliefStyle

func (toolItem *ToolItem) ReliefStyle() ReliefStyle

ReliefStyle returns the relief style of tool_item. See gtk_button_set_relief(). Custom subclasses of ToolItem should call this function in the handler of the ToolItem::toolbar_reconfigured signal to find out the relief style of buttons.

The function returns the following values:

  • reliefStyle indicating the relief style used for tool_item.

func (*ToolItem) RetrieveProxyMenuItem

func (toolItem *ToolItem) RetrieveProxyMenuItem() Widgetter

RetrieveProxyMenuItem returns the MenuItem that was last set by gtk_tool_item_set_proxy_menu_item(), ie. the MenuItem that is going to appear in the overflow menu.

The function returns the following values:

  • widget that is going to appear in the overflow menu for tool_item.

func (*ToolItem) SetExpand

func (toolItem *ToolItem) SetExpand(expand bool)

SetExpand sets whether tool_item is allocated extra space when there is more room on the toolbar then needed for the items. The effect is that the item gets bigger when the toolbar gets bigger and smaller when the toolbar gets smaller.

The function takes the following parameters:

  • expand: whether tool_item is allocated extra space.

func (*ToolItem) SetHomogeneous

func (toolItem *ToolItem) SetHomogeneous(homogeneous bool)

SetHomogeneous sets whether tool_item is to be allocated the same size as other homogeneous items. The effect is that all homogeneous items will have the same width as the widest of the items.

The function takes the following parameters:

  • homogeneous: whether tool_item is the same size as other homogeneous items.

func (*ToolItem) SetIsImportant

func (toolItem *ToolItem) SetIsImportant(isImportant bool)

SetIsImportant sets whether tool_item should be considered important. The ToolButton class uses this property to determine whether to show or hide its label when the toolbar style is GTK_TOOLBAR_BOTH_HORIZ. The result is that only tool buttons with the “is_important” property set have labels, an effect known as “priority text”.

The function takes the following parameters:

  • isImportant: whether the tool item should be considered important.

func (*ToolItem) SetProxyMenuItem

func (toolItem *ToolItem) SetProxyMenuItem(menuItemId string, menuItem Widgetter)

SetProxyMenuItem sets the MenuItem used in the toolbar overflow menu. The menu_item_id is used to identify the caller of this function and should also be used with gtk_tool_item_get_proxy_menu_item().

See also ToolItem::create-menu-proxy.

The function takes the following parameters:

  • menuItemId: string used to identify menu_item.
  • menuItem (optional) to use in the overflow menu, or NULL.

func (*ToolItem) SetTooltipMarkup

func (toolItem *ToolItem) SetTooltipMarkup(markup string)

SetTooltipMarkup sets the markup text to be displayed as tooltip on the item. See gtk_widget_set_tooltip_markup().

The function takes the following parameters:

  • markup text to be used as tooltip for tool_item.

func (*ToolItem) SetTooltipText

func (toolItem *ToolItem) SetTooltipText(text string)

SetTooltipText sets the text to be displayed as tooltip on the item. See gtk_widget_set_tooltip_text().

The function takes the following parameters:

  • text to be used as tooltip for tool_item.

func (*ToolItem) SetUseDragWindow

func (toolItem *ToolItem) SetUseDragWindow(useDragWindow bool)

SetUseDragWindow sets whether tool_item has a drag window. When TRUE the toolitem can be used as a drag source through gtk_drag_source_set(). When tool_item has a drag window it will intercept all events, even those that would otherwise be sent to a child of tool_item.

The function takes the following parameters:

  • useDragWindow: whether tool_item has a drag window.

func (*ToolItem) SetVisibleHorizontal

func (toolItem *ToolItem) SetVisibleHorizontal(visibleHorizontal bool)

SetVisibleHorizontal sets whether tool_item is visible when the toolbar is docked horizontally.

The function takes the following parameters:

  • visibleHorizontal: whether tool_item is visible when in horizontal mode.

func (*ToolItem) SetVisibleVertical

func (toolItem *ToolItem) SetVisibleVertical(visibleVertical bool)

SetVisibleVertical sets whether tool_item is visible when the toolbar is docked vertically. Some tool items, such as text entries, are too wide to be useful on a vertically docked toolbar. If visible_vertical is FALSE tool_item will not appear on toolbars that are docked vertically.

The function takes the following parameters:

  • visibleVertical: whether tool_item is visible when the toolbar is in vertical mode.

func (*ToolItem) TextAlignment

func (toolItem *ToolItem) TextAlignment() float32

TextAlignment returns the text alignment used for tool_item. Custom subclasses of ToolItem should call this function to find out how text should be aligned.

The function returns the following values:

  • gfloat indicating the horizontal text alignment used for tool_item.

func (*ToolItem) TextOrientation

func (toolItem *ToolItem) TextOrientation() Orientation

TextOrientation returns the text orientation used for tool_item. Custom subclasses of ToolItem should call this function to find out how text should be orientated.

The function returns the following values:

  • orientation indicating the text orientation used for tool_item.

func (*ToolItem) TextSizeGroup

func (toolItem *ToolItem) TextSizeGroup() *SizeGroup

TextSizeGroup returns the size group used for labels in tool_item. Custom subclasses of ToolItem should call this function and use the size group for labels.

The function returns the following values:

  • sizeGroup: SizeGroup.

func (*ToolItem) ToolbarReconfigured

func (toolItem *ToolItem) ToolbarReconfigured()

ToolbarReconfigured emits the signal ToolItem::toolbar_reconfigured on tool_item. Toolbar and other ToolShell implementations use this function to notify children, when some aspect of their configuration changes.

func (*ToolItem) ToolbarStyle

func (toolItem *ToolItem) ToolbarStyle() ToolbarStyle

ToolbarStyle returns the toolbar style used for tool_item. Custom subclasses of ToolItem should call this function in the handler of the GtkToolItem::toolbar_reconfigured signal to find out in what style the toolbar is displayed and change themselves accordingly

Possibilities are:

- GTK_TOOLBAR_BOTH, meaning the tool item should show both an icon and a label, stacked vertically

- GTK_TOOLBAR_ICONS, meaning the toolbar shows only icons

- GTK_TOOLBAR_TEXT, meaning the tool item should only show text

- GTK_TOOLBAR_BOTH_HORIZ, meaning the tool item should show both an icon and a label, arranged horizontally.

The function returns the following values:

  • toolbarStyle indicating the toolbar style used for tool_item.

func (*ToolItem) UseDragWindow

func (toolItem *ToolItem) UseDragWindow() bool

UseDragWindow returns whether tool_item has a drag window. See gtk_tool_item_set_use_drag_window().

The function returns the following values:

  • ok: TRUE if tool_item uses a drag window.

func (*ToolItem) VisibleHorizontal

func (toolItem *ToolItem) VisibleHorizontal() bool

VisibleHorizontal returns whether the tool_item is visible on toolbars that are docked horizontally.

The function returns the following values:

  • ok: TRUE if tool_item is visible on toolbars that are docked horizontally.

func (*ToolItem) VisibleVertical

func (toolItem *ToolItem) VisibleVertical() bool

VisibleVertical returns whether tool_item is visible when the toolbar is docked vertically. See gtk_tool_item_set_visible_vertical().

The function returns the following values:

  • ok: whether tool_item is visible when the toolbar is docked vertically.

type ToolItemClass added in v0.0.5

type ToolItemClass struct {
	// contains filtered or unexported fields
}

ToolItemClass: instance of this type is always passed by reference.

func (*ToolItemClass) ParentClass added in v0.0.5

func (t *ToolItemClass) ParentClass() *BinClass

ParentClass: parent class.

type ToolItemGroup

type ToolItemGroup struct {
	Container

	*coreglib.Object
	atk.ImplementorIface
	coreglib.InitiallyUnowned
	Buildable
	ToolShell
	Widget
	// contains filtered or unexported fields
}

ToolItemGroup is used together with ToolPalette to add ToolItems to a palette like container with different categories and drag and drop support.

CSS nodes

GtkToolItemGroup has a single CSS node named toolitemgroup.

func NewToolItemGroup

func NewToolItemGroup(label string) *ToolItemGroup

NewToolItemGroup creates a new tool item group with label label.

The function takes the following parameters:

  • label of the new group.

The function returns the following values:

  • toolItemGroup: new ToolItemGroup.

func (*ToolItemGroup) Collapsed

func (group *ToolItemGroup) Collapsed() bool

Collapsed gets whether group is collapsed or expanded.

The function returns the following values:

  • ok: TRUE if group is collapsed, FALSE if it is expanded.

func (*ToolItemGroup) DropItem

func (group *ToolItemGroup) DropItem(x, y int) *ToolItem

DropItem gets the tool item at position (x, y).

The function takes the following parameters:

  • x position.
  • y position.

The function returns the following values:

  • toolItem at position (x, y).

func (*ToolItemGroup) Ellipsize

func (group *ToolItemGroup) Ellipsize() pango.EllipsizeMode

Ellipsize gets the ellipsization mode of group.

The function returns the following values:

  • ellipsizeMode of group.

func (*ToolItemGroup) HeaderRelief

func (group *ToolItemGroup) HeaderRelief() ReliefStyle

HeaderRelief gets the relief mode of the header button of group.

The function returns the following values:

  • reliefStyle: ReliefStyle.

func (*ToolItemGroup) Insert

func (group *ToolItemGroup) Insert(item *ToolItem, position int)

Insert inserts item at position in the list of children of group.

The function takes the following parameters:

  • item to insert into group.
  • position of item in group, starting with 0. The position -1 means end of list.

func (*ToolItemGroup) ItemPosition

func (group *ToolItemGroup) ItemPosition(item *ToolItem) int

ItemPosition gets the position of item in group as index.

The function takes the following parameters:

  • item: ToolItem.

The function returns the following values:

  • gint: index of item in group or -1 if item is no child of group.

func (*ToolItemGroup) Label

func (group *ToolItemGroup) Label() string

Label gets the label of group.

The function returns the following values:

  • utf8: label of group. The label is an internal string of group and must not be modified. Note that NULL is returned if a custom label has been set with gtk_tool_item_group_set_label_widget().

func (*ToolItemGroup) LabelWidget

func (group *ToolItemGroup) LabelWidget() Widgetter

LabelWidget gets the label widget of group. See gtk_tool_item_group_set_label_widget().

The function returns the following values:

  • widget: label widget of group.

func (*ToolItemGroup) NItems

func (group *ToolItemGroup) NItems() uint

NItems gets the number of tool items in group.

The function returns the following values:

  • guint: number of tool items in group.

func (*ToolItemGroup) NthItem

func (group *ToolItemGroup) NthItem(index uint) *ToolItem

NthItem gets the tool item at index in group.

The function takes the following parameters:

  • index: index.

The function returns the following values:

  • toolItem at index.

func (*ToolItemGroup) SetCollapsed

func (group *ToolItemGroup) SetCollapsed(collapsed bool)

SetCollapsed sets whether the group should be collapsed or expanded.

The function takes the following parameters:

  • collapsed: whether the group should be collapsed or expanded.

func (*ToolItemGroup) SetEllipsize

func (group *ToolItemGroup) SetEllipsize(ellipsize pango.EllipsizeMode)

SetEllipsize sets the ellipsization mode which should be used by labels in group.

The function takes the following parameters:

  • ellipsize labels in group should use.

func (*ToolItemGroup) SetHeaderRelief

func (group *ToolItemGroup) SetHeaderRelief(style ReliefStyle)

SetHeaderRelief: set the button relief of the group header. See gtk_button_set_relief() for details.

The function takes the following parameters:

  • style: ReliefStyle.

func (*ToolItemGroup) SetItemPosition

func (group *ToolItemGroup) SetItemPosition(item *ToolItem, position int)

SetItemPosition sets the position of item in the list of children of group.

The function takes the following parameters:

  • item to move to a new position, should be a child of group.
  • position: new position of item in group, starting with 0. The position -1 means end of list.

func (*ToolItemGroup) SetLabel

func (group *ToolItemGroup) SetLabel(label string)

SetLabel sets the label of the tool item group. The label is displayed in the header of the group.

The function takes the following parameters:

  • label: new human-readable label of of the group.

func (*ToolItemGroup) SetLabelWidget

func (group *ToolItemGroup) SetLabelWidget(labelWidget Widgetter)

SetLabelWidget sets the label of the tool item group. The label widget is displayed in the header of the group, in place of the usual label.

The function takes the following parameters:

  • labelWidget: widget to be displayed in place of the usual label.

type ToolItemGroupClass added in v0.0.5

type ToolItemGroupClass struct {
	// contains filtered or unexported fields
}

ToolItemGroupClass: instance of this type is always passed by reference.

func (*ToolItemGroupClass) ParentClass added in v0.0.5

func (t *ToolItemGroupClass) ParentClass() *ContainerClass

ParentClass: parent class.

type ToolItemGroupOverrides added in v0.0.5

type ToolItemGroupOverrides struct {
}

ToolItemGroupOverrides contains methods that are overridable.

type ToolItemOverrides added in v0.0.5

type ToolItemOverrides struct {
	// The function returns the following values:
	//
	CreateMenuProxy func() bool
	// ToolbarReconfigured emits the signal ToolItem::toolbar_reconfigured on
	// tool_item. Toolbar and other ToolShell implementations use this function
	// to notify children, when some aspect of their configuration changes.
	ToolbarReconfigured func()
}

ToolItemOverrides contains methods that are overridable.

type ToolPalette

type ToolPalette struct {
	Container

	*coreglib.Object
	Orientable
	Scrollable
	// contains filtered or unexported fields
}

ToolPalette allows you to add ToolItems to a palette-like container with different categories and drag and drop support.

A ToolPalette is created with a call to gtk_tool_palette_new().

ToolItems cannot be added directly to a ToolPalette - instead they are added to a ToolItemGroup which can than be added to a ToolPalette. To add a ToolItemGroup to a ToolPalette, use gtk_container_add().

static void
passive_canvas_drag_data_received (GtkWidget        *widget,
                                   GdkDragContext   *context,
                                   gint              x,
                                   gint              y,
                                   GtkSelectionData *selection,
                                   guint             info,
                                   guint             time,
                                   gpointer          data)
{
  GtkWidget *palette;
  GtkWidget *item;

  // Get the dragged item
  palette = gtk_widget_get_ancestor (gtk_drag_get_source_widget (context),
                                     GTK_TYPE_TOOL_PALETTE);
  if (palette != NULL)
    item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (palette),
                                           selection);

  // Do something with item
}

GtkWidget *target, palette;

palette = gtk_tool_palette_new ();
target = gtk_drawing_area_new ();

g_signal_connect (G_OBJECT (target), "drag-data-received",
                  G_CALLBACK (passive_canvas_drag_data_received), NULL);
gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), target,
                                GTK_DEST_DEFAULT_ALL,
                                GTK_TOOL_PALETTE_DRAG_ITEMS,
                                GDK_ACTION_COPY);

CSS nodes

GtkToolPalette has a single CSS node named toolpalette.

func NewToolPalette

func NewToolPalette() *ToolPalette

NewToolPalette creates a new tool palette.

The function returns the following values:

  • toolPalette: new ToolPalette.

func (*ToolPalette) AddDragDest

func (palette *ToolPalette) AddDragDest(widget Widgetter, flags DestDefaults, targets ToolPaletteDragTargets, actions gdk.DragAction)

AddDragDest sets palette as drag source (see gtk_tool_palette_set_drag_source()) and sets widget as a drag destination for drags from palette. See gtk_drag_dest_set().

The function takes the following parameters:

  • widget which should be a drag destination for palette.
  • flags that specify what actions GTK+ should take for drops on that widget.
  • targets which the widget should support.
  • actions which the widget should suppport.

func (*ToolPalette) DragItem

func (palette *ToolPalette) DragItem(selection *SelectionData) Widgetter

DragItem: get the dragged item from the selection. This could be a ToolItem or a ToolItemGroup.

The function takes the following parameters:

  • selection: SelectionData.

The function returns the following values:

  • widget: dragged item in selection.

func (*ToolPalette) DropGroup

func (palette *ToolPalette) DropGroup(x, y int) *ToolItemGroup

DropGroup gets the group at position (x, y).

The function takes the following parameters:

  • x position.
  • y position.

The function returns the following values:

  • toolItemGroup (optional) at position or NULL if there is no such group.

func (*ToolPalette) DropItem

func (palette *ToolPalette) DropItem(x, y int) *ToolItem

DropItem gets the item at position (x, y). See gtk_tool_palette_get_drop_group().

The function takes the following parameters:

  • x position.
  • y position.

The function returns the following values:

  • toolItem (optional) at position or NULL if there is no such item.

func (*ToolPalette) Exclusive

func (palette *ToolPalette) Exclusive(group *ToolItemGroup) bool

Exclusive gets whether group is exclusive or not. See gtk_tool_palette_set_exclusive().

The function takes the following parameters:

  • group which is a child of palette.

The function returns the following values:

  • ok: TRUE if group is exclusive.

func (*ToolPalette) Expand

func (palette *ToolPalette) Expand(group *ToolItemGroup) bool

Expand gets whether group should be given extra space. See gtk_tool_palette_set_expand().

The function takes the following parameters:

  • group which is a child of palette.

The function returns the following values:

  • ok: TRUE if group should be given extra space, FALSE otherwise.

func (*ToolPalette) GroupPosition

func (palette *ToolPalette) GroupPosition(group *ToolItemGroup) int

GroupPosition gets the position of group in palette as index. See gtk_tool_palette_set_group_position().

The function takes the following parameters:

  • group: ToolItemGroup.

The function returns the following values:

  • gint: index of group or -1 if group is not a child of palette.

func (*ToolPalette) HAdjustment deprecated

func (palette *ToolPalette) HAdjustment() *Adjustment

HAdjustment gets the horizontal adjustment of the tool palette.

Deprecated: Use gtk_scrollable_get_hadjustment().

The function returns the following values:

  • adjustment: horizontal adjustment of palette.

func (*ToolPalette) IconSize

func (palette *ToolPalette) IconSize() int

IconSize gets the size of icons in the tool palette. See gtk_tool_palette_set_icon_size().

The function returns the following values:

  • gint of icons in the tool palette.

func (*ToolPalette) SetDragSource

func (palette *ToolPalette) SetDragSource(targets ToolPaletteDragTargets)

SetDragSource sets the tool palette as a drag source. Enables all groups and items in the tool palette as drag sources on button 1 and button 3 press with copy and move actions. See gtk_drag_source_set().

The function takes the following parameters:

  • targets: ToolPaletteDragTargets which the widget should support.

func (*ToolPalette) SetExclusive

func (palette *ToolPalette) SetExclusive(group *ToolItemGroup, exclusive bool)

SetExclusive sets whether the group should be exclusive or not. If an exclusive group is expanded all other groups are collapsed.

The function takes the following parameters:

  • group which is a child of palette.
  • exclusive: whether the group should be exclusive or not.

func (*ToolPalette) SetExpand

func (palette *ToolPalette) SetExpand(group *ToolItemGroup, expand bool)

SetExpand sets whether the group should be given extra space.

The function takes the following parameters:

  • group which is a child of palette.
  • expand: whether the group should be given extra space.

func (*ToolPalette) SetGroupPosition

func (palette *ToolPalette) SetGroupPosition(group *ToolItemGroup, position int)

SetGroupPosition sets the position of the group as an index of the tool palette. If position is 0 the group will become the first child, if position is -1 it will become the last child.

The function takes the following parameters:

  • group which is a child of palette.
  • position: new index for group.

func (*ToolPalette) SetIconSize

func (palette *ToolPalette) SetIconSize(iconSize int)

SetIconSize sets the size of icons in the tool palette.

The function takes the following parameters:

  • iconSize that icons in the tool palette shall have.

func (*ToolPalette) SetStyle

func (palette *ToolPalette) SetStyle(style ToolbarStyle)

SetStyle sets the style (text, icons or both) of items in the tool palette.

The function takes the following parameters:

  • style that items in the tool palette shall have.

func (*ToolPalette) Style

func (palette *ToolPalette) Style() ToolbarStyle

Style gets the style (icons, text or both) of items in the tool palette.

The function returns the following values:

  • toolbarStyle of items in the tool palette.

func (*ToolPalette) UnsetIconSize

func (palette *ToolPalette) UnsetIconSize()

UnsetIconSize unsets the tool palette icon size set with gtk_tool_palette_set_icon_size(), so that user preferences will be used to determine the icon size.

func (*ToolPalette) UnsetStyle

func (palette *ToolPalette) UnsetStyle()

UnsetStyle unsets a toolbar style set with gtk_tool_palette_set_style(), so that user preferences will be used to determine the toolbar style.

func (*ToolPalette) VAdjustment deprecated

func (palette *ToolPalette) VAdjustment() *Adjustment

VAdjustment gets the vertical adjustment of the tool palette.

Deprecated: Use gtk_scrollable_get_vadjustment().

The function returns the following values:

  • adjustment: vertical adjustment of palette.

type ToolPaletteClass added in v0.0.5

type ToolPaletteClass struct {
	// contains filtered or unexported fields
}

ToolPaletteClass: instance of this type is always passed by reference.

func (*ToolPaletteClass) ParentClass added in v0.0.5

func (t *ToolPaletteClass) ParentClass() *ContainerClass

ParentClass: parent class.

type ToolPaletteDragTargets

type ToolPaletteDragTargets C.guint

ToolPaletteDragTargets flags used to specify the supported drag targets.

const (
	// ToolPaletteDragItems: support drag of items.
	ToolPaletteDragItems ToolPaletteDragTargets = 0b1
	// ToolPaletteDragGroups: support drag of groups.
	ToolPaletteDragGroups ToolPaletteDragTargets = 0b10
)

func (ToolPaletteDragTargets) Has

Has returns true if t contains other.

func (ToolPaletteDragTargets) String

func (t ToolPaletteDragTargets) String() string

String returns the names in string for ToolPaletteDragTargets.

type ToolPaletteOverrides added in v0.0.5

type ToolPaletteOverrides struct {
}

ToolPaletteOverrides contains methods that are overridable.

type ToolShell

type ToolShell struct {
	Widget
	// contains filtered or unexported fields
}

ToolShell interface allows container widgets to provide additional information when embedding ToolItem widgets.

ToolShell wraps an interface. This means the user can get the underlying type by calling Cast().

func (*ToolShell) EllipsizeMode

func (shell *ToolShell) EllipsizeMode() pango.EllipsizeMode

EllipsizeMode retrieves the current ellipsize mode for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_ellipsize_mode() instead.

The function returns the following values:

  • ellipsizeMode: current ellipsize mode of shell.

func (*ToolShell) IconSize

func (shell *ToolShell) IconSize() int

IconSize retrieves the icon size for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_icon_size() instead.

The function returns the following values:

  • gint: current size (IconSize) for icons of shell.

func (*ToolShell) Orientation

func (shell *ToolShell) Orientation() Orientation

Orientation retrieves the current orientation for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_orientation() instead.

The function returns the following values:

  • orientation: current orientation of shell.

func (*ToolShell) RebuildMenu

func (shell *ToolShell) RebuildMenu()

RebuildMenu: calling this function signals the tool shell that the overflow menu item for tool items have changed. If there is an overflow menu and if it is visible when this function it called, the menu will be rebuilt.

Tool items must not call this function directly, but rely on gtk_tool_item_rebuild_menu() instead.

func (*ToolShell) ReliefStyle

func (shell *ToolShell) ReliefStyle() ReliefStyle

ReliefStyle returns the relief style of buttons on shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_relief_style() instead.

The function returns the following values:

  • reliefStyle: relief style of buttons on shell.

func (*ToolShell) Style

func (shell *ToolShell) Style() ToolbarStyle

Style retrieves whether the tool shell has text, icons, or both. Tool items must not call this function directly, but rely on gtk_tool_item_get_toolbar_style() instead.

The function returns the following values:

  • toolbarStyle: current style of shell.

func (*ToolShell) TextAlignment

func (shell *ToolShell) TextAlignment() float32

TextAlignment retrieves the current text alignment for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_text_alignment() instead.

The function returns the following values:

  • gfloat: current text alignment of shell.

func (*ToolShell) TextOrientation

func (shell *ToolShell) TextOrientation() Orientation

TextOrientation retrieves the current text orientation for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_text_orientation() instead.

The function returns the following values:

  • orientation: current text orientation of shell.

func (*ToolShell) TextSizeGroup

func (shell *ToolShell) TextSizeGroup() *SizeGroup

TextSizeGroup retrieves the current text size group for the tool shell. Tool items must not call this function directly, but rely on gtk_tool_item_get_text_size_group() instead.

The function returns the following values:

  • sizeGroup: current text size group of shell.

type ToolShellIface added in v0.0.5

type ToolShellIface struct {
	// contains filtered or unexported fields
}

ToolShellIface: virtual function table for the ToolShell interface.

An instance of this type is always passed by reference.

type ToolSheller

type ToolSheller interface {
	coreglib.Objector

	// EllipsizeMode retrieves the current ellipsize mode for the tool shell.
	EllipsizeMode() pango.EllipsizeMode
	// IconSize retrieves the icon size for the tool shell.
	IconSize() int
	// Orientation retrieves the current orientation for the tool shell.
	Orientation() Orientation
	// ReliefStyle returns the relief style of buttons on shell.
	ReliefStyle() ReliefStyle
	// Style retrieves whether the tool shell has text, icons, or both.
	Style() ToolbarStyle
	// TextAlignment retrieves the current text alignment for the tool shell.
	TextAlignment() float32
	// TextOrientation retrieves the current text orientation for the tool
	// shell.
	TextOrientation() Orientation
	// TextSizeGroup retrieves the current text size group for the tool shell.
	TextSizeGroup() *SizeGroup
	// RebuildMenu: calling this function signals the tool shell that the
	// overflow menu item for tool items have changed.
	RebuildMenu()
}

ToolSheller describes ToolShell's interface methods.

type Toolbar

type Toolbar struct {
	Container

	*coreglib.Object
	atk.ImplementorIface
	coreglib.InitiallyUnowned
	Buildable
	Orientable
	ToolShell
	Widget
	// contains filtered or unexported fields
}

Toolbar: toolbar is created with a call to gtk_toolbar_new().

A toolbar can contain instances of a subclass of ToolItem. To add a ToolItem to the a toolbar, use gtk_toolbar_insert(). To remove an item from the toolbar use gtk_container_remove(). To add a button to the toolbar, add an instance of ToolButton.

Toolbar items can be visually grouped by adding instances of SeparatorToolItem to the toolbar. If the GtkToolbar child property “expand” is UE and the property SeparatorToolItem:draw is set to LSE, the effect is to force all following items to the end of the toolbar.

By default, a toolbar can be shrunk, upon which it will add an arrow button to show an overflow menu offering access to any ToolItem child that has a proxy menu item. To disable this and request enough size for all children, call gtk_toolbar_set_show_arrow() to set Toolbar:show-arrow to FALSE.

Creating a context menu for the toolbar can be done by connecting to the Toolbar::popup-context-menu signal.

CSS nodes

GtkToolbar has a single CSS node with name toolbar.

func NewToolbar

func NewToolbar() *Toolbar

NewToolbar creates a new toolbar.

The function returns the following values:

  • toolbar: newly-created toolbar.

func (*Toolbar) ConnectFocusHomeOrEnd

func (toolbar *Toolbar) ConnectFocusHomeOrEnd(f func(focusHome bool) (ok bool)) coreglib.SignalHandle

ConnectFocusHomeOrEnd: keybinding signal used internally by GTK+. This signal can't be used in application code.

func (*Toolbar) ConnectOrientationChanged

func (toolbar *Toolbar) ConnectOrientationChanged(f func(orientation Orientation)) coreglib.SignalHandle

ConnectOrientationChanged is emitted when the orientation of the toolbar changes.

func (*Toolbar) ConnectPopupContextMenu

func (toolbar *Toolbar) ConnectPopupContextMenu(f func(x, y, button int) (ok bool)) coreglib.SignalHandle

ConnectPopupContextMenu is emitted when the user right-clicks the toolbar or uses the keybinding to display a popup menu.

Application developers should handle this signal if they want to display a context menu on the toolbar. The context-menu should appear at the coordinates given by x and y. The mouse button number is given by the button parameter. If the menu was popped up using the keybaord, button is -1.

func (*Toolbar) ConnectStyleChanged

func (toolbar *Toolbar) ConnectStyleChanged(f func(style ToolbarStyle)) coreglib.SignalHandle

ConnectStyleChanged is emitted when the style of the toolbar changes.

func (*Toolbar) DropIndex

func (toolbar *Toolbar) DropIndex(x, y int) int

DropIndex returns the position corresponding to the indicated point on toolbar. This is useful when dragging items to the toolbar: this function returns the position a new item should be inserted.

x and y are in toolbar coordinates.

The function takes the following parameters:

  • x coordinate of a point on the toolbar.
  • y coordinate of a point on the toolbar.

The function returns the following values:

  • gint: position corresponding to the point (x, y) on the toolbar.

func (*Toolbar) IconSize

func (toolbar *Toolbar) IconSize() IconSize

IconSize retrieves the icon size for the toolbar. See gtk_toolbar_set_icon_size().

The function returns the following values:

  • iconSize: current icon size for the icons on the toolbar.

func (*Toolbar) Insert

func (toolbar *Toolbar) Insert(item *ToolItem, pos int)

Insert a ToolItem into the toolbar at position pos. If pos is 0 the item is prepended to the start of the toolbar. If pos is negative, the item is appended to the end of the toolbar.

The function takes the following parameters:

  • item: ToolItem.
  • pos: position of the new item.

func (*Toolbar) ItemIndex

func (toolbar *Toolbar) ItemIndex(item *ToolItem) int

ItemIndex returns the position of item on the toolbar, starting from 0. It is an error if item is not a child of the toolbar.

The function takes the following parameters:

  • item that is a child of toolbar.

The function returns the following values:

  • gint: position of item on the toolbar.

func (*Toolbar) NItems

func (toolbar *Toolbar) NItems() int

NItems returns the number of items on the toolbar.

The function returns the following values:

  • gint: number of items on the toolbar.

func (*Toolbar) NthItem

func (toolbar *Toolbar) NthItem(n int) *ToolItem

NthItem returns the n'th item on toolbar, or NULL if the toolbar does not contain an n'th item.

The function takes the following parameters:

  • n on the toolbar.

The function returns the following values:

  • toolItem (optional): n'th ToolItem on toolbar, or NULL if there isn’t an n'th item.

func (*Toolbar) ReliefStyle

func (toolbar *Toolbar) ReliefStyle() ReliefStyle

ReliefStyle returns the relief style of buttons on toolbar. See gtk_button_set_relief().

The function returns the following values:

  • reliefStyle: relief style of buttons on toolbar.

func (*Toolbar) SetDropHighlightItem

func (toolbar *Toolbar) SetDropHighlightItem(toolItem *ToolItem, index_ int)

SetDropHighlightItem highlights toolbar to give an idea of what it would look like if item was added to toolbar at the position indicated by index_. If item is NULL, highlighting is turned off. In that case index_ is ignored.

The tool_item passed to this function must not be part of any widget hierarchy. When an item is set as drop highlight item it can not added to any widget hierarchy or used as highlight item for another toolbar.

The function takes the following parameters:

  • toolItem (optional) or NULL to turn of highlighting.
  • index_: position on toolbar.

func (*Toolbar) SetIconSize

func (toolbar *Toolbar) SetIconSize(iconSize IconSize)

SetIconSize: this function sets the size of stock icons in the toolbar. You can call it both before you add the icons and after they’ve been added. The size you set will override user preferences for the default icon size.

This should only be used for special-purpose toolbars, normal application toolbars should respect the user preferences for the size of icons.

The function takes the following parameters:

  • iconSize that stock icons in the toolbar shall have.

func (*Toolbar) SetShowArrow

func (toolbar *Toolbar) SetShowArrow(showArrow bool)

SetShowArrow sets whether to show an overflow menu when toolbar isn’t allocated enough size to show all of its items. If TRUE, items which can’t fit in toolbar, and which have a proxy menu item set by gtk_tool_item_set_proxy_menu_item() or ToolItem::create-menu-proxy, will be available in an overflow menu, which can be opened by an added arrow button. If FALSE, toolbar will request enough size to fit all of its child items without any overflow.

The function takes the following parameters:

  • showArrow: whether to show an overflow menu.

func (*Toolbar) SetStyle

func (toolbar *Toolbar) SetStyle(style ToolbarStyle)

SetStyle alters the view of toolbar to display either icons only, text only, or both.

The function takes the following parameters:

  • style: new style for toolbar.

func (*Toolbar) ShowArrow

func (toolbar *Toolbar) ShowArrow() bool

ShowArrow returns whether the toolbar has an overflow menu. See gtk_toolbar_set_show_arrow().

The function returns the following values:

  • ok: TRUE if the toolbar has an overflow menu.

func (*Toolbar) Style

func (toolbar *Toolbar) Style() ToolbarStyle

Style retrieves whether the toolbar has text, icons, or both . See gtk_toolbar_set_style().

The function returns the following values:

  • toolbarStyle: current style of toolbar.

func (*Toolbar) UnsetIconSize

func (toolbar *Toolbar) UnsetIconSize()

UnsetIconSize unsets toolbar icon size set with gtk_toolbar_set_icon_size(), so that user preferences will be used to determine the icon size.

func (*Toolbar) UnsetStyle

func (toolbar *Toolbar) UnsetStyle()

UnsetStyle unsets a toolbar style set with gtk_toolbar_set_style(), so that user preferences will be used to determine the toolbar style.

type ToolbarClass added in v0.0.5

type ToolbarClass struct {
	// contains filtered or unexported fields
}

ToolbarClass: instance of this type is always passed by reference.

func (*ToolbarClass) ParentClass added in v0.0.5

func (t *ToolbarClass) ParentClass() *ContainerClass

type ToolbarOverrides added in v0.0.5

type ToolbarOverrides struct {
	// The function takes the following parameters:
	//
	OrientationChanged func(orientation Orientation)
	// The function takes the following parameters:
	//
	//   - x
	//   - y
	//   - buttonNumber
	//
	// The function returns the following values:
	//
	PopupContextMenu func(x, y, buttonNumber int) bool
	// The function takes the following parameters:
	//
	StyleChanged func(style ToolbarStyle)
}

ToolbarOverrides contains methods that are overridable.

type ToolbarSpaceStyle deprecated

type ToolbarSpaceStyle C.gint

ToolbarSpaceStyle: whether spacers are vertical lines or just blank.

Deprecated: since version 3.20.

const (
	// ToolbarSpaceEmpty: use blank spacers.
	ToolbarSpaceEmpty ToolbarSpaceStyle = iota
	// ToolbarSpaceLine: use vertical lines for spacers.
	ToolbarSpaceLine
)

func (ToolbarSpaceStyle) String

func (t ToolbarSpaceStyle) String() string

String returns the name in string for ToolbarSpaceStyle.

type ToolbarStyle

type ToolbarStyle C.gint

ToolbarStyle: used to customize the appearance of a Toolbar. Note that setting the toolbar style overrides the user’s preferences for the default toolbar style. Note that if the button has only a label set and GTK_TOOLBAR_ICONS is used, the label will be visible, and vice versa.

const (
	// ToolbarIcons buttons display only icons in the toolbar.
	ToolbarIcons ToolbarStyle = iota
	// ToolbarText buttons display only text labels in the toolbar.
	ToolbarText
	// ToolbarBoth buttons display text and icons in the toolbar.
	ToolbarBoth
	// ToolbarBothHoriz buttons display icons and text alongside each other,
	// rather than vertically stacked.
	ToolbarBothHoriz
)

func (ToolbarStyle) String

func (t ToolbarStyle) String() string

String returns the name in string for ToolbarStyle.

type Tooltip

type Tooltip struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

Tooltip: basic tooltips can be realized simply by using gtk_widget_set_tooltip_text() or gtk_widget_set_tooltip_markup() without any explicit tooltip object.

When you need a tooltip with a little more fancy contents, like adding an image, or you want the tooltip to have different contents per TreeView row or cell, you will have to do a little more work:

- Set the Widget:has-tooltip property to TRUE, this will make GTK+ monitor the widget for motion and related events which are needed to determine when and where to show a tooltip.

- Connect to the Widget::query-tooltip signal. This signal will be emitted when a tooltip is supposed to be shown. One of the arguments passed to the signal handler is a GtkTooltip object. This is the object that we are about to display as a tooltip, and can be manipulated in your callback using functions like gtk_tooltip_set_icon(). There are functions for setting the tooltip’s markup, setting an image from a named icon, or even putting in a custom widget.

Return TRUE from your query-tooltip handler. This causes the tooltip to be
show. If you return FALSE, it will not be shown.

In the probably rare case where you want to have even more control over the tooltip that is about to be shown, you can set your own Window which will be used as tooltip window. This works as follows:

- Set Widget:has-tooltip and connect to Widget::query-tooltip as before. Use gtk_widget_set_tooltip_window() to set a Window created by you as tooltip window.

- In the Widget::query-tooltip callback you can access your window using gtk_widget_get_tooltip_window() and manipulate as you wish. The semantics of the return value are exactly as before, return TRUE to show the window, FALSE to not show it.

func (*Tooltip) SetCustom

func (tooltip *Tooltip) SetCustom(customWidget Widgetter)

SetCustom replaces the widget packed into the tooltip with custom_widget. custom_widget does not get destroyed when the tooltip goes away. By default a box with a Image and Label is embedded in the tooltip, which can be configured using gtk_tooltip_set_markup() and gtk_tooltip_set_icon().

The function takes the following parameters:

  • customWidget (optional) or NULL to unset the old custom widget.

func (*Tooltip) SetIcon

func (tooltip *Tooltip) SetIcon(pixbuf *gdkpixbuf.Pixbuf)

SetIcon sets the icon of the tooltip (which is in front of the text) to be pixbuf. If pixbuf is NULL, the image will be hidden.

The function takes the following parameters:

  • pixbuf (optional) or NULL.

func (*Tooltip) SetIconFromGIcon

func (tooltip *Tooltip) SetIconFromGIcon(gicon gio.Iconner, size int)

SetIconFromGIcon sets the icon of the tooltip (which is in front of the text) to be the icon indicated by gicon with the size indicated by size. If gicon is NULL, the image will be hidden.

The function takes the following parameters:

  • gicon (optional) representing the icon, or NULL.
  • size: stock icon size (IconSize).

func (*Tooltip) SetIconFromIconName

func (tooltip *Tooltip) SetIconFromIconName(iconName string, size int)

SetIconFromIconName sets the icon of the tooltip (which is in front of the text) to be the icon indicated by icon_name with the size indicated by size. If icon_name is NULL, the image will be hidden.

The function takes the following parameters:

  • iconName (optional): icon name, or NULL.
  • size: stock icon size (IconSize).

func (*Tooltip) SetIconFromStock deprecated

func (tooltip *Tooltip) SetIconFromStock(stockId string, size int)

SetIconFromStock sets the icon of the tooltip (which is in front of the text) to be the stock item indicated by stock_id with the size indicated by size. If stock_id is NULL, the image will be hidden.

Deprecated: Use gtk_tooltip_set_icon_from_icon_name() instead.

The function takes the following parameters:

  • stockId (optional): stock id, or NULL.
  • size: stock icon size (IconSize).

func (*Tooltip) SetMarkup

func (tooltip *Tooltip) SetMarkup(markup string)

SetMarkup sets the text of the tooltip to be markup, which is marked up with the [Pango text markup language][PangoMarkupFormat]. If markup is NULL, the label will be hidden.

The function takes the following parameters:

  • markup (optional) string (see [Pango markup format][PangoMarkupFormat]) or NULL.

func (*Tooltip) SetText

func (tooltip *Tooltip) SetText(text string)

SetText sets the text of the tooltip to be text. If text is NULL, the label will be hidden. See also gtk_tooltip_set_markup().

The function takes the following parameters:

  • text (optional) string or NULL.

func (*Tooltip) SetTipArea

func (tooltip *Tooltip) SetTipArea(rect *gdk.Rectangle)

SetTipArea sets the area of the widget, where the contents of this tooltip apply, to be rect (in widget coordinates). This is especially useful for properly setting tooltips on TreeView rows and cells, IconViews, etc.

For setting tooltips on TreeView, please refer to the convenience functions for this: gtk_tree_view_set_tooltip_row() and gtk_tree_view_set_tooltip_cell().

The function takes the following parameters:

  • rect: Rectangle.

type ToplevelAccessible

type ToplevelAccessible struct {
	atk.AtkObject
	// contains filtered or unexported fields
}

func (*ToplevelAccessible) Children

func (accessible *ToplevelAccessible) Children() []*Window

The function returns the following values:

  • list: list of children.

type ToplevelAccessibleClass added in v0.0.5

type ToplevelAccessibleClass struct {
	// contains filtered or unexported fields
}

ToplevelAccessibleClass: instance of this type is always passed by reference.

func (*ToplevelAccessibleClass) ParentClass added in v0.0.5

func (t *ToplevelAccessibleClass) ParentClass() *atk.ObjectClass

type ToplevelAccessibleOverrides added in v0.0.5

type ToplevelAccessibleOverrides struct {
}

ToplevelAccessibleOverrides contains methods that are overridable.

type TranslateFunc deprecated

type TranslateFunc func(path string) (utf8 string)

TranslateFunc: function used to translate messages in e.g. IconFactory and ActionGroup.

Deprecated: since version 3.10.

type TreeCellDataFunc

type TreeCellDataFunc func(treeColumn *TreeViewColumn, cell CellRendererer, treeModel TreeModeller, iter *TreeIter)

TreeCellDataFunc: function to set the properties of a cell instead of just using the straight mapping between the cell and the model. This is useful for customizing the cell renderer. For example, a function might get an integer from the tree_model, and render it to the “text” attribute of “cell” by converting it to its written equivalent. This is set by calling gtk_tree_view_column_set_cell_data_func().

type TreeDestroyCountFunc

type TreeDestroyCountFunc func(treeView *TreeView, path *TreePath, children int)

type TreeDragDest

type TreeDragDest struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

TreeDragDest wraps an interface. This means the user can get the underlying type by calling Cast().

func (*TreeDragDest) DragDataReceived

func (dragDest *TreeDragDest) DragDataReceived(dest *TreePath, selectionData *SelectionData) bool

DragDataReceived asks the TreeDragDest to insert a row before the path dest, deriving the contents of the row from selection_data. If dest is outside the tree so that inserting before it is impossible, FALSE will be returned. Also, FALSE may be returned if the new row is not created for some model-specific reason. Should robustly handle a dest no longer found in the model!.

The function takes the following parameters:

  • dest: row to drop in front of.
  • selectionData: data to drop.

The function returns the following values:

  • ok: whether a new row was created before position dest.

func (*TreeDragDest) RowDropPossible

func (dragDest *TreeDragDest) RowDropPossible(destPath *TreePath, selectionData *SelectionData) bool

RowDropPossible determines whether a drop is possible before the given dest_path, at the same depth as dest_path. i.e., can we drop the data in selection_data at that location. dest_path does not have to exist; the return value will almost certainly be FALSE if the parent of dest_path doesn’t exist, though.

The function takes the following parameters:

  • destPath: destination row.
  • selectionData: data being dragged.

The function returns the following values:

  • ok: TRUE if a drop is possible before dest_path.

type TreeDragDestIface added in v0.0.5

type TreeDragDestIface struct {
	// contains filtered or unexported fields
}

TreeDragDestIface: instance of this type is always passed by reference.

type TreeDragDester

type TreeDragDester interface {
	coreglib.Objector

	// DragDataReceived asks the TreeDragDest to insert a row before the path
	// dest, deriving the contents of the row from selection_data.
	DragDataReceived(dest *TreePath, selectionData *SelectionData) bool
	// RowDropPossible determines whether a drop is possible before the given
	// dest_path, at the same depth as dest_path.
	RowDropPossible(destPath *TreePath, selectionData *SelectionData) bool
}

TreeDragDester describes TreeDragDest's interface methods.

type TreeDragSource

type TreeDragSource struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

TreeDragSource wraps an interface. This means the user can get the underlying type by calling Cast().

func (*TreeDragSource) DragDataDelete

func (dragSource *TreeDragSource) DragDataDelete(path *TreePath) bool

DragDataDelete asks the TreeDragSource to delete the row at path, because it was moved somewhere else via drag-and-drop. Returns FALSE if the deletion fails because path no longer exists, or for some model-specific reason. Should robustly handle a path no longer found in the model!.

The function takes the following parameters:

  • path: row that was being dragged.

The function returns the following values:

  • ok: TRUE if the row was successfully deleted.

func (*TreeDragSource) DragDataGet

func (dragSource *TreeDragSource) DragDataGet(path *TreePath, selectionData *SelectionData) bool

DragDataGet asks the TreeDragSource to fill in selection_data with a representation of the row at path. selection_data->target gives the required type of the data. Should robustly handle a path no longer found in the model!.

The function takes the following parameters:

  • path: row that was dragged.
  • selectionData to fill with data from the dragged row.

The function returns the following values:

  • ok: TRUE if data of the required type was provided.

func (*TreeDragSource) RowDraggable

func (dragSource *TreeDragSource) RowDraggable(path *TreePath) bool

RowDraggable asks the TreeDragSource whether a particular row can be used as the source of a DND operation. If the source doesn’t implement this interface, the row is assumed draggable.

The function takes the following parameters:

  • path: row on which user is initiating a drag.

The function returns the following values:

  • ok: TRUE if the row can be dragged.

type TreeDragSourceIface added in v0.0.5

type TreeDragSourceIface struct {
	// contains filtered or unexported fields
}

TreeDragSourceIface: instance of this type is always passed by reference.

type TreeDragSourcer

type TreeDragSourcer interface {
	coreglib.Objector

	// DragDataDelete asks the TreeDragSource to delete the row at path, because
	// it was moved somewhere else via drag-and-drop.
	DragDataDelete(path *TreePath) bool
	// DragDataGet asks the TreeDragSource to fill in selection_data with a
	// representation of the row at path.
	DragDataGet(path *TreePath, selectionData *SelectionData) bool
	// RowDraggable asks the TreeDragSource whether a particular row can be used
	// as the source of a DND operation.
	RowDraggable(path *TreePath) bool
}

TreeDragSourcer describes TreeDragSource's interface methods.

type TreeIter

type TreeIter struct {
	// contains filtered or unexported fields
}

TreeIter is the primary structure for accessing a TreeModel. Models are expected to put a unique integer in the stamp member, and put model-specific data in the three user_data members.

An instance of this type is always passed by reference.

func (*TreeIter) Copy

func (iter *TreeIter) Copy() *TreeIter

Copy creates a dynamically allocated tree iterator as a copy of iter.

This function is not intended for use in applications, because you can just copy the structs by value (GtkTreeIter new_iter = iter;). You must free this iter with gtk_tree_iter_free().

The function returns the following values:

  • treeIter: newly-allocated copy of iter.

func (*TreeIter) SetStamp

func (t *TreeIter) SetStamp(stamp int)

Stamp: unique stamp to catch invalid iterators.

func (*TreeIter) Stamp

func (t *TreeIter) Stamp() int

Stamp: unique stamp to catch invalid iterators.

func (*TreeIter) UserData

func (t *TreeIter) UserData() unsafe.Pointer

UserData: model-specific data.

func (*TreeIter) UserData2

func (t *TreeIter) UserData2() unsafe.Pointer

UserData2: model-specific data.

func (*TreeIter) UserData3

func (t *TreeIter) UserData3() unsafe.Pointer

UserData3: model-specific data.

type TreeIterCompareFunc

type TreeIterCompareFunc func(model TreeModeller, a, b *TreeIter) (gint int)

TreeIterCompareFunc should return a negative integer, zero, or a positive integer if a sorts before b, a sorts with b, or a sorts after b respectively. If two iters compare as equal, their order in the sorted model is undefined. In order to ensure that the TreeSortable behaves as expected, the GtkTreeIterCompareFunc must define a partial order on the model, i.e. it must be reflexive, antisymmetric and transitive.

For example, if model is a product catalogue, then a compare function for the “price” column could be one which returns price_of(a) - price_of(b).

type TreeModel

type TreeModel struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

TreeModel interface defines a generic tree interface for use by the TreeView widget. It is an abstract interface, and is designed to be usable with any appropriate data structure. The programmer just has to implement this interface on their own data type for it to be viewable by a TreeView widget.

The model is represented as a hierarchical tree of strongly-typed, columned data. In other words, the model can be seen as a tree where every node has different values depending on which column is being queried. The type of data found in a column is determined by using the GType system (ie. TYPE_INT, K_TYPE_BUTTON, TYPE_POINTER, etc). The types are homogeneous per column across all nodes. It is important to note that this interface only provides a way of examining a model and observing changes. The implementation of each individual model decides how and if changes are made.

In order to make life simpler for programmers who do not need to write their own specialized model, two generic models are provided — the TreeStore and the ListStore. To use these, the developer simply pushes data into these models as necessary. These models provide the data structure as well as all appropriate tree interfaces. As a result, implementing drag and drop, sorting, and storing data is trivial. For the vast majority of trees and lists, these two models are sufficient.

Models are accessed on a node/column level of granularity. One can query for the value of a model at a certain node and a certain column on that node. There are two structures used to reference a particular node in a model. They are the TreePath-struct and the TreeIter-struct (“iter” is short for iterator). Most of the interface consists of operations on a TreeIter-struct.

A path is essentially a potential node. It is a location on a model that may or may not actually correspond to a node on a specific model. The TreePath-struct can be converted into either an array of unsigned integers or a string. The string form is a list of numbers separated by a colon. Each number refers to the offset at that level. Thus, the path 0 refers to the root node and the path 2:4 refers to the fifth child of the third node.

By contrast, a TreeIter-struct is a reference to a specific node on a specific model. It is a generic struct with an integer and three generic pointers. These are filled in by the model in a model-specific way. One can convert a path to an iterator by calling gtk_tree_model_get_iter(). These iterators are the primary way of accessing a model and are similar to the iterators used by TextBuffer. They are generally statically allocated on the stack and only used for a short time. The model interface defines a set of operations using them for navigating the model.

It is expected that models fill in the iterator with private data. For example, the ListStore model, which is internally a simple linked list, stores a list node in one of the pointers. The TreeModelSort stores an array and an offset in two of the pointers. Additionally, there is an integer field. This field is generally filled with a unique stamp per model. This stamp is for catching errors resulting from using invalid iterators with a model.

The lifecycle of an iterator can be a little confusing at first. Iterators are expected to always be valid for as long as the model is unchanged (and doesn’t emit a signal). The model is considered to own all outstanding iterators and nothing needs to be done to free them from the user’s point of view. Additionally, some models guarantee that an iterator is valid for as long as the node it refers to is valid (most notably the TreeStore and ListStore). Although generally uninteresting, as one always has to allow for the case where iterators do not persist beyond a signal, some very important performance enhancements were made in the sort model. As a result, the K_TREE_MODEL_ITERS_PERSIST flag was added to indicate this behavior.

To help show some common operation of a model, some examples are provided. The first example shows three ways of getting the iter at the location 3:2:5. While the first method shown is easier, the second is much more common, as you often get paths from callbacks.

Acquiring a TreeIter-struct

enum
{
  STRING_COLUMN,
  INT_COLUMN,
  N_COLUMNS
};

...

GtkTreeModel *list_store;
GtkTreeIter iter;
gboolean valid;
gint row_count = 0;

// make a new list_store
list_store = gtk_list_store_new (N_COLUMNS,
                                 G_TYPE_STRING,
                                 G_TYPE_INT);

// Fill the list store with data
populate_model (list_store);

// Get the first iter in the list, check it is valid and walk
// through the list, reading each row.

valid = gtk_tree_model_get_iter_first (list_store,
                                       &iter);
while (valid)
 {
   gchar *str_data;
   gint   int_data;

   // Make sure you terminate calls to gtk_tree_model_get() with a “-1” value
   gtk_tree_model_get (list_store, &iter,
                       STRING_COLUMN, &str_data,
                       INT_COLUMN, &int_data,
                       -1);

   // Do something with the data
   g_print ("Row d: (s,d)\n",
            row_count, str_data, int_data);
   g_free (str_data);

   valid = gtk_tree_model_iter_next (list_store,
                                     &iter);
   row_count++;
 }

The TreeModel interface contains two methods for reference counting: gtk_tree_model_ref_node() and gtk_tree_model_unref_node(). These two methods are optional to implement. The reference counting is meant as a way for views to let models know when nodes are being displayed. TreeView will take a reference on a node when it is visible, which means the node is either in the toplevel or expanded. Being displayed does not mean that the node is currently directly visible to the user in the viewport. Based on this reference counting scheme a caching model, for example, can decide whether or not to cache a node based on the reference count. A file-system based model would not want to keep the entire file hierarchy in memory, but just the folders that are currently expanded in every current view.

When working with reference counting, the following rules must be taken into account:

- Never take a reference on a node without owning a reference on its parent. This means that all parent nodes of a referenced node must be referenced as well.

- Outstanding references on a deleted node are not released. This is not possible because the node has already been deleted by the time the row-deleted signal is received.

- Models are not obligated to emit a signal on rows of which none of its siblings are referenced. To phrase this differently, signals are only required for levels in which nodes are referenced. For the root level however, signals must be emitted at all times (however the root level is always referenced when any view is attached).

TreeModel wraps an interface. This means the user can get the underlying type by calling Cast().

func (*TreeModel) ColumnType

func (treeModel *TreeModel) ColumnType(index_ int) coreglib.Type

ColumnType returns the type of the column.

The function takes the following parameters:

  • index_: column index.

The function returns the following values:

  • gType: type of the column.

func (*TreeModel) ConnectRowChanged

func (childModel *TreeModel) ConnectRowChanged(f func(path *TreePath, iter *TreeIter)) coreglib.SignalHandle

ConnectRowChanged: this signal is emitted when a row in the model has changed.

func (*TreeModel) ConnectRowDeleted

func (childModel *TreeModel) ConnectRowDeleted(f func(path *TreePath)) coreglib.SignalHandle

ConnectRowDeleted: this signal is emitted when a row has been deleted.

Note that no iterator is passed to the signal handler, since the row is already deleted.

This should be called by models after a row has been removed. The location pointed to by path should be the location that the row previously was at. It may not be a valid location anymore.

func (*TreeModel) ConnectRowHasChildToggled

func (childModel *TreeModel) ConnectRowHasChildToggled(f func(path *TreePath, iter *TreeIter)) coreglib.SignalHandle

ConnectRowHasChildToggled: this signal is emitted when a row has gotten the first child row or lost its last child row.

func (*TreeModel) ConnectRowInserted

func (childModel *TreeModel) ConnectRowInserted(f func(path *TreePath, iter *TreeIter)) coreglib.SignalHandle

ConnectRowInserted: this signal is emitted when a new row has been inserted in the model.

Note that the row may still be empty at this point, since it is a common pattern to first insert an empty row, and then fill it with the desired values.

func (*TreeModel) ConnectRowsReordered

func (childModel *TreeModel) ConnectRowsReordered(f func(path *TreePath, iter *TreeIter, newOrder unsafe.Pointer)) coreglib.SignalHandle

ConnectRowsReordered: this signal is emitted when the children of a node in the TreeModel have been reordered.

Note that this signal is not emitted when rows are reordered by DND, since this is implemented by removing and then reinserting the row.

func (*TreeModel) Flags

func (treeModel *TreeModel) Flags() TreeModelFlags

Flags returns a set of flags supported by this interface.

The flags are a bitwise combination of TreeModelFlags. The flags supported should not change during the lifetime of the tree_model.

The function returns the following values:

  • treeModelFlags flags supported by this interface.

func (*TreeModel) ForEach

func (model *TreeModel) ForEach(fn TreeModelForEachFunc)

ForEach calls func on each node in model in a depth-first fashion.

If func returns TRUE, then the tree ceases to be walked, and gtk_tree_model_foreach() returns.

The function takes the following parameters:

  • fn: function to be called on each row.

func (*TreeModel) Iter

func (treeModel *TreeModel) Iter(path *TreePath) (*TreeIter, bool)

Iter sets iter to a valid iterator pointing to path. If path does not exist, iter is set to an invalid iterator and FALSE is returned.

The function takes the following parameters:

  • path: TreePath-struct.

The function returns the following values:

  • iter: uninitialized TreeIter-struct.
  • ok: TRUE, if iter was set.

func (*TreeModel) IterChildren

func (treeModel *TreeModel) IterChildren(parent *TreeIter) (*TreeIter, bool)

IterChildren sets iter to point to the first child of parent.

If parent has no children, FALSE is returned and iter is set to be invalid. parent will remain a valid node after this function has been called.

If parent is NULL returns the first node, equivalent to gtk_tree_model_get_iter_first (tree_model, iter);.

The function takes the following parameters:

  • parent (optional) or NULL.

The function returns the following values:

  • iter: new TreeIter-struct to be set to the child.
  • ok: TRUE, if iter has been set to the first child.

func (*TreeModel) IterFirst

func (treeModel *TreeModel) IterFirst() (*TreeIter, bool)

IterFirst initializes iter with the first iterator in the tree (the one at the path "0") and returns TRUE. Returns FALSE if the tree is empty.

The function returns the following values:

  • iter: uninitialized TreeIter-struct.
  • ok: TRUE, if iter was set.

func (*TreeModel) IterFromString

func (treeModel *TreeModel) IterFromString(pathString string) (*TreeIter, bool)

IterFromString sets iter to a valid iterator pointing to path_string, if it exists. Otherwise, iter is left invalid and FALSE is returned.

The function takes the following parameters:

  • pathString: string representation of a TreePath-struct.

The function returns the following values:

  • iter: uninitialized TreeIter-struct.
  • ok: TRUE, if iter was set.

func (*TreeModel) IterHasChild

func (treeModel *TreeModel) IterHasChild(iter *TreeIter) bool

IterHasChild returns TRUE if iter has children, FALSE otherwise.

The function takes the following parameters:

  • iter to test for children.

The function returns the following values:

  • ok: TRUE if iter has children.

func (*TreeModel) IterNChildren

func (treeModel *TreeModel) IterNChildren(iter *TreeIter) int

IterNChildren returns the number of children that iter has.

As a special case, if iter is NULL, then the number of toplevel nodes is returned.

The function takes the following parameters:

  • iter (optional) or NULL.

The function returns the following values:

  • gint: number of children of iter.

func (*TreeModel) IterNext

func (treeModel *TreeModel) IterNext(iter *TreeIter) bool

IterNext sets iter to point to the node following it at the current level.

If there is no next iter, FALSE is returned and iter is set to be invalid.

The function takes the following parameters:

  • iter: TreeIter-struct.

The function returns the following values:

  • ok: TRUE if iter has been changed to the next node.

func (*TreeModel) IterNthChild

func (treeModel *TreeModel) IterNthChild(parent *TreeIter, n int) (*TreeIter, bool)

IterNthChild sets iter to be the child of parent, using the given index.

The first index is 0. If n is too big, or parent has no children, iter is set to an invalid iterator and FALSE is returned. parent will remain a valid node after this function has been called. As a special case, if parent is NULL, then the n-th root node is set.

The function takes the following parameters:

  • parent (optional) to get the child from, or NULL.
  • n: index of the desired child.

The function returns the following values:

  • iter to set to the nth child.
  • ok: TRUE, if parent has an n-th child.

func (*TreeModel) IterParent

func (treeModel *TreeModel) IterParent(child *TreeIter) (*TreeIter, bool)

IterParent sets iter to be the parent of child.

If child is at the toplevel, and doesn’t have a parent, then iter is set to an invalid iterator and FALSE is returned. child will remain a valid node after this function has been called.

iter will be initialized before the lookup is performed, so child and iter cannot point to the same memory location.

The function takes the following parameters:

  • child: TreeIter-struct.

The function returns the following values:

  • iter: new TreeIter-struct to set to the parent.
  • ok: TRUE, if iter is set to the parent of child.

func (*TreeModel) IterPrevious

func (treeModel *TreeModel) IterPrevious(iter *TreeIter) bool

IterPrevious sets iter to point to the previous node at the current level.

If there is no previous iter, FALSE is returned and iter is set to be invalid.

The function takes the following parameters:

  • iter: TreeIter-struct.

The function returns the following values:

  • ok: TRUE if iter has been changed to the previous node.

func (*TreeModel) NColumns

func (treeModel *TreeModel) NColumns() int

NColumns returns the number of columns supported by tree_model.

The function returns the following values:

  • gint: number of columns.

func (*TreeModel) NewFilter

func (childModel *TreeModel) NewFilter(root *TreePath) *TreeModel

NewFilter creates a new TreeModel, with child_model as the child_model and root as the virtual root.

The function takes the following parameters:

  • root (optional) or NULL.

The function returns the following values:

  • treeModel: new TreeModel.

func (*TreeModel) Path

func (treeModel *TreeModel) Path(iter *TreeIter) *TreePath

Path returns a newly-created TreePath-struct referenced by iter.

This path should be freed with gtk_tree_path_free().

The function takes the following parameters:

  • iter: TreeIter-struct.

The function returns the following values:

  • treePath: newly-created TreePath-struct.

func (*TreeModel) RefNode

func (treeModel *TreeModel) RefNode(iter *TreeIter)

RefNode lets the tree ref the node.

This is an optional method for models to implement. To be more specific, models may ignore this call as it exists primarily for performance reasons.

This function is primarily meant as a way for views to let caching models know when nodes are being displayed (and hence, whether or not to cache that node). Being displayed means a node is in an expanded branch, regardless of whether the node is currently visible in the viewport. For example, a file-system based model would not want to keep the entire file-hierarchy in memory, just the sections that are currently being displayed by every current view.

A model should be expected to be able to get an iter independent of its reffed state.

The function takes the following parameters:

  • iter: TreeIter-struct.

func (*TreeModel) RowChanged

func (treeModel *TreeModel) RowChanged(path *TreePath, iter *TreeIter)

RowChanged emits the TreeModel::row-changed signal on tree_model.

The function takes the following parameters:

  • path pointing to the changed row.
  • iter: valid TreeIter-struct pointing to the changed row.

func (*TreeModel) RowDeleted

func (treeModel *TreeModel) RowDeleted(path *TreePath)

RowDeleted emits the TreeModel::row-deleted signal on tree_model.

This should be called by models after a row has been removed. The location pointed to by path should be the location that the row previously was at. It may not be a valid location anymore.

Nodes that are deleted are not unreffed, this means that any outstanding references on the deleted node should not be released.

The function takes the following parameters:

  • path pointing to the previous location of the deleted row.

func (*TreeModel) RowHasChildToggled

func (treeModel *TreeModel) RowHasChildToggled(path *TreePath, iter *TreeIter)

RowHasChildToggled emits the TreeModel::row-has-child-toggled signal on tree_model. This should be called by models after the child state of a node changes.

The function takes the following parameters:

  • path pointing to the changed row.
  • iter: valid TreeIter-struct pointing to the changed row.

func (*TreeModel) RowInserted

func (treeModel *TreeModel) RowInserted(path *TreePath, iter *TreeIter)

RowInserted emits the TreeModel::row-inserted signal on tree_model.

The function takes the following parameters:

  • path pointing to the inserted row.
  • iter: valid TreeIter-struct pointing to the inserted row.

func (*TreeModel) RowsReordered

func (treeModel *TreeModel) RowsReordered(path *TreePath, iter *TreeIter, newOrder []int)

RowsReordered emits the TreeModel::rows-reordered signal on tree_model.

This should be called by models when their rows have been reordered.

The function takes the following parameters:

  • path pointing to the tree node whose children have been reordered.
  • iter (optional): valid TreeIter-struct pointing to the node whose children have been reordered, or NULL if the depth of path is 0.
  • newOrder: array of integers mapping the current position of each child to its old position before the re-ordering, i.e. new_order[newpos] = oldpos.

func (*TreeModel) StringFromIter

func (treeModel *TreeModel) StringFromIter(iter *TreeIter) string

StringFromIter generates a string representation of the iter.

This string is a “:” separated list of numbers. For example, “4:10:0:3” would be an acceptable return value for this string.

The function takes the following parameters:

  • iter: TreeIter-struct.

The function returns the following values:

  • utf8: newly-allocated string. Must be freed with g_free().

func (*TreeModel) UnrefNode

func (treeModel *TreeModel) UnrefNode(iter *TreeIter)

UnrefNode lets the tree unref the node.

This is an optional method for models to implement. To be more specific, models may ignore this call as it exists primarily for performance reasons. For more information on what this means, see gtk_tree_model_ref_node().

Please note that nodes that are deleted are not unreffed.

The function takes the following parameters:

  • iter: TreeIter-struct.

func (*TreeModel) Value

func (treeModel *TreeModel) Value(iter *TreeIter, column int) coreglib.Value

Value initializes and sets value to that at column.

When done with value, g_value_unset() needs to be called to free any allocated memory.

The function takes the following parameters:

  • iter: TreeIter-struct.
  • column to lookup the value at.

The function returns the following values:

  • value: empty #GValue to set.

type TreeModelFilter

type TreeModelFilter struct {
	*coreglib.Object

	TreeDragSource
	TreeModel
	// contains filtered or unexported fields
}

TreeModelFilter is a tree model which wraps another tree model, and can do the following things:

- Filter specific rows, based on data from a “visible column”, a column storing booleans indicating whether the row should be filtered or not, or based on the return value of a “visible function”, which gets a model, iter and user_data and returns a boolean indicating whether the row should be filtered or not.

- Modify the “appearance” of the model, using a modify function. This is extremely powerful and allows for just changing some values and also for creating a completely different model based on the given child model.

- Set a different root node, also known as a “virtual root”. You can pass in a TreePath indicating the root node for the filter at construction time.

The basic API is similar to TreeModelSort. For an example on its usage, see the section on TreeModelSort.

When using TreeModelFilter, it is important to realize that TreeModelFilter maintains an internal cache of all nodes which are visible in its clients. The cache is likely to be a subtree of the tree exposed by the child model. TreeModelFilter will not cache the entire child model when unnecessary to not compromise the caching mechanism that is exposed by the reference counting scheme. If the child model implements reference counting, unnecessary signals may not be emitted because of reference counting rule 3, see the TreeModel documentation. (Note that e.g. TreeStore does not implement reference counting and will always emit all signals, even when the receiving node is not visible).

Because of this, limitations for possible visible functions do apply. In general, visible functions should only use data or properties from the node for which the visibility state must be determined, its siblings or its parents. Usually, having a dependency on the state of any child node is not possible, unless references are taken on these explicitly. When no such reference exists, no signals may be received for these child nodes (see reference couting rule number 3 in the TreeModel section).

Determining the visibility state of a given node based on the state of its child nodes is a frequently occurring use case. Therefore, TreeModelFilter explicitly supports this. For example, when a node does not have any children, you might not want the node to be visible. As soon as the first row is added to the node’s child level (or the last row removed), the node’s visibility should be updated.

This introduces a dependency from the node on its child nodes. In order to accommodate this, TreeModelFilter must make sure the necessary signals are received from the child model. This is achieved by building, for all nodes which are exposed as visible nodes to TreeModelFilter's clients, the child level (if any) and take a reference on the first node in this level. Furthermore, for every row-inserted, row-changed or row-deleted signal (also these which were not handled because the node was not cached), TreeModelFilter will check if the visibility state of any parent node has changed.

Beware, however, that this explicit support is limited to these two cases. For example, if you want a node to be visible only if two nodes in a child’s child level (2 levels deeper) are visible, you are on your own. In this case, either rely on TreeStore to emit all signals because it does not implement reference counting, or for models that do implement reference counting, obtain references on these child levels yourself.

func (*TreeModelFilter) ClearCache

func (filter *TreeModelFilter) ClearCache()

ClearCache: this function should almost never be called. It clears the filter of any cached iterators that haven’t been reffed with gtk_tree_model_ref_node(). This might be useful if the child model being filtered is static (and doesn’t change often) and there has been a lot of unreffed access to nodes. As a side effect of this function, all unreffed iters will be invalid.

func (*TreeModelFilter) ConvertChildIterToIter

func (filter *TreeModelFilter) ConvertChildIterToIter(childIter *TreeIter) (*TreeIter, bool)

ConvertChildIterToIter sets filter_iter to point to the row in filter that corresponds to the row pointed at by child_iter. If filter_iter was not set, FALSE is returned.

The function takes the following parameters:

  • childIter: valid TreeIter pointing to a row on the child model.

The function returns the following values:

  • filterIter: uninitialized TreeIter.
  • ok: TRUE, if filter_iter was set, i.e. if child_iter is a valid iterator pointing to a visible row in child model.

func (*TreeModelFilter) ConvertChildPathToPath

func (filter *TreeModelFilter) ConvertChildPathToPath(childPath *TreePath) *TreePath

ConvertChildPathToPath converts child_path to a path relative to filter. That is, child_path points to a path in the child model. The rerturned path will point to the same row in the filtered model. If child_path isn’t a valid path on the child model or points to a row which is not visible in filter, then NULL is returned.

The function takes the following parameters:

  • childPath to convert.

The function returns the following values:

  • treePath (optional): newly allocated TreePath, or NULL.

func (*TreeModelFilter) ConvertIterToChildIter

func (filter *TreeModelFilter) ConvertIterToChildIter(filterIter *TreeIter) *TreeIter

ConvertIterToChildIter sets child_iter to point to the row pointed to by filter_iter.

The function takes the following parameters:

  • filterIter: valid TreeIter pointing to a row on filter.

The function returns the following values:

  • childIter: uninitialized TreeIter.

func (*TreeModelFilter) ConvertPathToChildPath

func (filter *TreeModelFilter) ConvertPathToChildPath(filterPath *TreePath) *TreePath

ConvertPathToChildPath converts filter_path to a path on the child model of filter. That is, filter_path points to a location in filter. The returned path will point to the same location in the model not being filtered. If filter_path does not point to a location in the child model, NULL is returned.

The function takes the following parameters:

  • filterPath to convert.

The function returns the following values:

  • treePath (optional): newly allocated TreePath, or NULL.

func (*TreeModelFilter) Model

func (filter *TreeModelFilter) Model() *TreeModel

Model returns a pointer to the child model of filter.

The function returns the following values:

  • treeModel: pointer to a TreeModel.

func (*TreeModelFilter) Refilter

func (filter *TreeModelFilter) Refilter()

Refilter emits ::row_changed for each row in the child model, which causes the filter to re-evaluate whether a row is visible or not.

func (*TreeModelFilter) SetModifyFunc

func (filter *TreeModelFilter) SetModifyFunc(types []coreglib.Type, fn TreeModelFilterModifyFunc)

SetModifyFunc: with the n_columns and types parameters, you give an array of column types for this model (which will be exposed to the parent model/view). The func, data and destroy parameters are for specifying the modify function. The modify function will get called for each data access, the goal of the modify function is to return the data which should be displayed at the location specified using the parameters of the modify function.

Note that gtk_tree_model_filter_set_modify_func() can only be called once for a given filter model.

The function takes the following parameters:

  • types of the columns.
  • fn: TreeModelFilterModifyFunc.

func (*TreeModelFilter) SetVisibleColumn

func (filter *TreeModelFilter) SetVisibleColumn(column int)

SetVisibleColumn sets column of the child_model to be the column where filter should look for visibility information. columns should be a column of type G_TYPE_BOOLEAN, where TRUE means that a row is visible, and FALSE if not.

Note that gtk_tree_model_filter_set_visible_func() or gtk_tree_model_filter_set_visible_column() can only be called once for a given filter model.

The function takes the following parameters:

  • column which is the column containing the visible information.

func (*TreeModelFilter) SetVisibleFunc

func (filter *TreeModelFilter) SetVisibleFunc(fn TreeModelFilterVisibleFunc)

SetVisibleFunc sets the visible function used when filtering the filter to be func. The function should return TRUE if the given row should be visible and FALSE otherwise.

If the condition calculated by the function changes over time (e.g. because it depends on some global parameters), you must call gtk_tree_model_filter_refilter() to keep the visibility information of the model up-to-date.

Note that func is called whenever a row is inserted, when it may still be empty. The visible function should therefore take special care of empty rows, like in the example below.

static gboolean
visible_func (GtkTreeModel *model,
              GtkTreeIter  *iter,
              gpointer      data)
{
  // Visible if row is non-empty and first column is “HI”
  gchar *str;
  gboolean visible = FALSE;

  gtk_tree_model_get (model, iter, 0, &str, -1);
  if (str && strcmp (str, "HI") == 0)
    visible = TRUE;
  g_free (str);

  return visible;
}

Note that gtk_tree_model_filter_set_visible_func() or gtk_tree_model_filter_set_visible_column() can only be called once for a given filter model.

The function takes the following parameters:

  • fn the visible function.

type TreeModelFilterClass added in v0.0.5

type TreeModelFilterClass struct {
	// contains filtered or unexported fields
}

TreeModelFilterClass: instance of this type is always passed by reference.

type TreeModelFilterModifyFunc

type TreeModelFilterModifyFunc func(model TreeModeller, iter *TreeIter, column int) (value coreglib.Value)

TreeModelFilterModifyFunc: function which calculates display values from raw values in the model. It must fill value with the display value for the column column in the row indicated by iter.

Since this function is called for each data access, it’s not a particularly efficient operation.

type TreeModelFilterOverrides added in v0.0.5

type TreeModelFilterOverrides struct {
	// The function takes the following parameters:
	//
	//   - childModel
	//   - iter
	//   - value
	//   - column
	//
	Modify func(childModel TreeModeller, iter *TreeIter, value *coreglib.Value, column int)
	// The function takes the following parameters:
	//
	//   - childModel
	//   - iter
	//
	// The function returns the following values:
	//
	Visible func(childModel TreeModeller, iter *TreeIter) bool
}

TreeModelFilterOverrides contains methods that are overridable.

type TreeModelFilterVisibleFunc

type TreeModelFilterVisibleFunc func(model TreeModeller, iter *TreeIter) (ok bool)

TreeModelFilterVisibleFunc: function which decides whether the row indicated by iter is visible.

type TreeModelFlags

type TreeModelFlags C.guint

TreeModelFlags: these flags indicate various properties of a TreeModel.

They are returned by gtk_tree_model_get_flags(), and must be static for the lifetime of the object. A more complete description of K_TREE_MODEL_ITERS_PERSIST can be found in the overview of this section.

const (
	// TreeModelItersPersist iterators survive all signals emitted by the tree.
	TreeModelItersPersist TreeModelFlags = 0b1
	// TreeModelListOnly: model is a list only, and never has children.
	TreeModelListOnly TreeModelFlags = 0b10
)

func (TreeModelFlags) Has

func (t TreeModelFlags) Has(other TreeModelFlags) bool

Has returns true if t contains other.

func (TreeModelFlags) String

func (t TreeModelFlags) String() string

String returns the names in string for TreeModelFlags.

type TreeModelForEachFunc

type TreeModelForEachFunc func(model TreeModeller, path *TreePath, iter *TreeIter) (ok bool)

TreeModelForEachFunc: type of the callback passed to gtk_tree_model_foreach() to iterate over the rows in a tree model.

type TreeModelIface added in v0.0.5

type TreeModelIface struct {
	// contains filtered or unexported fields
}

TreeModelIface: instance of this type is always passed by reference.

type TreeModelSort

type TreeModelSort struct {
	*coreglib.Object

	TreeDragSource
	TreeSortable
	// contains filtered or unexported fields
}

TreeModelSort is a model which implements the TreeSortable interface. It does not hold any data itself, but rather is created with a child model and proxies its data. It has identical column types to this child model, and the changes in the child are propagated. The primary purpose of this model is to provide a way to sort a different model without modifying it. Note that the sort function used by TreeModelSort is not guaranteed to be stable.

The use of this is best demonstrated through an example. In the following sample code we create two TreeView widgets each with a view of the same data. As the model is wrapped here by a TreeModelSort, the two TreeViews can each sort their view of the data without affecting the other. By contrast, if we simply put the same model in each widget, then sorting the first would sort the second.

Using a TreeModelSort

void
selection_changed (GtkTreeSelection *selection, gpointer data)
{
  GtkTreeModel *sort_model = NULL;
  GtkTreeModel *child_model;
  GtkTreeIter sort_iter;
  GtkTreeIter child_iter;
  char *some_data = NULL;
  char *modified_data;

  // Get the current selected row and the model.
  if (! gtk_tree_selection_get_selected (selection,
                                         &sort_model,
                                         &sort_iter))
    return;

  // Look up the current value on the selected row and get
  // a new value to change it to.
  gtk_tree_model_get (GTK_TREE_MODEL (sort_model), &sort_iter,
                      COLUMN_1, &some_data,
                      -1);

  modified_data = change_the_data (some_data);
  g_free (some_data);

  // Get an iterator on the child model, instead of the sort model.
  gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (sort_model),
                                                  &child_iter,
                                                  &sort_iter);

  // Get the child model and change the value of the row. In this
  // example, the child model is a GtkListStore. It could be any other
  // type of model, though.
  child_model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (sort_model));
  gtk_list_store_set (GTK_LIST_STORE (child_model), &child_iter,
                      COLUMN_1, &modified_data,
                      -1);
  g_free (modified_data);
}.

func NewTreeModelSortWithModel

func NewTreeModelSortWithModel(childModel TreeModeller) *TreeModelSort

NewTreeModelSortWithModel creates a new TreeModelSort, with child_model as the child model.

The function takes the following parameters:

  • childModel: TreeModel.

The function returns the following values:

  • treeModelSort: new TreeModelSort.

func (*TreeModelSort) ClearCache

func (treeModelSort *TreeModelSort) ClearCache()

ClearCache: this function should almost never be called. It clears the tree_model_sort of any cached iterators that haven’t been reffed with gtk_tree_model_ref_node(). This might be useful if the child model being sorted is static (and doesn’t change often) and there has been a lot of unreffed access to nodes. As a side effect of this function, all unreffed iters will be invalid.

func (*TreeModelSort) ConvertChildIterToIter

func (treeModelSort *TreeModelSort) ConvertChildIterToIter(childIter *TreeIter) (*TreeIter, bool)

ConvertChildIterToIter sets sort_iter to point to the row in tree_model_sort that corresponds to the row pointed at by child_iter. If sort_iter was not set, FALSE is returned. Note: a boolean is only returned since 2.14.

The function takes the following parameters:

  • childIter: valid TreeIter pointing to a row on the child model.

The function returns the following values:

  • sortIter: uninitialized TreeIter.
  • ok: TRUE, if sort_iter was set, i.e. if sort_iter is a valid iterator pointer to a visible row in the child model.

func (*TreeModelSort) ConvertChildPathToPath

func (treeModelSort *TreeModelSort) ConvertChildPathToPath(childPath *TreePath) *TreePath

ConvertChildPathToPath converts child_path to a path relative to tree_model_sort. That is, child_path points to a path in the child model. The returned path will point to the same row in the sorted model. If child_path isn’t a valid path on the child model, then NULL is returned.

The function takes the following parameters:

  • childPath to convert.

The function returns the following values:

  • treePath (optional): newly allocated TreePath, or NULL.

func (*TreeModelSort) ConvertIterToChildIter

func (treeModelSort *TreeModelSort) ConvertIterToChildIter(sortedIter *TreeIter) *TreeIter

ConvertIterToChildIter sets child_iter to point to the row pointed to by sorted_iter.

The function takes the following parameters:

  • sortedIter: valid TreeIter pointing to a row on tree_model_sort.

The function returns the following values:

  • childIter: uninitialized TreeIter.

func (*TreeModelSort) ConvertPathToChildPath

func (treeModelSort *TreeModelSort) ConvertPathToChildPath(sortedPath *TreePath) *TreePath

ConvertPathToChildPath converts sorted_path to a path on the child model of tree_model_sort. That is, sorted_path points to a location in tree_model_sort. The returned path will point to the same location in the model not being sorted. If sorted_path does not point to a location in the child model, NULL is returned.

The function takes the following parameters:

  • sortedPath to convert.

The function returns the following values:

  • treePath (optional): newly allocated TreePath, or NULL.

func (*TreeModelSort) IterIsValid

func (treeModelSort *TreeModelSort) IterIsValid(iter *TreeIter) bool

IterIsValid: > This function is slow. Only use it for debugging and/or testing > purposes.

Checks if the given iter is a valid iter for this TreeModelSort.

The function takes the following parameters:

  • iter: TreeIter.

The function returns the following values:

  • ok: TRUE if the iter is valid, FALSE if the iter is invalid.

func (*TreeModelSort) Model

func (treeModel *TreeModelSort) Model() *TreeModel

Model returns the model the TreeModelSort is sorting.

The function returns the following values:

  • treeModel: "child model" being sorted.

func (*TreeModelSort) ResetDefaultSortFunc

func (treeModelSort *TreeModelSort) ResetDefaultSortFunc()

ResetDefaultSortFunc: this resets the default sort function to be in the “unsorted” state. That is, it is in the same order as the child model. It will re-sort the model to be in the same order as the child model only if the TreeModelSort is in “unsorted” state.

type TreeModelSortClass added in v0.0.5

type TreeModelSortClass struct {
	// contains filtered or unexported fields
}

TreeModelSortClass: instance of this type is always passed by reference.

type TreeModelSortOverrides added in v0.0.5

type TreeModelSortOverrides struct {
}

TreeModelSortOverrides contains methods that are overridable.

type TreeModeller

type TreeModeller interface {
	coreglib.Objector

	// ForEach calls func on each node in model in a depth-first fashion.
	ForEach(fn TreeModelForEachFunc)
	// ColumnType returns the type of the column.
	ColumnType(index_ int) coreglib.Type
	// Flags returns a set of flags supported by this interface.
	Flags() TreeModelFlags
	// Iter sets iter to a valid iterator pointing to path.
	Iter(path *TreePath) (*TreeIter, bool)
	// IterFirst initializes iter with the first iterator in the tree (the one
	// at the path "0") and returns TRUE.
	IterFirst() (*TreeIter, bool)
	// IterFromString sets iter to a valid iterator pointing to path_string,
	// if it exists.
	IterFromString(pathString string) (*TreeIter, bool)
	// NColumns returns the number of columns supported by tree_model.
	NColumns() int
	// Path returns a newly-created TreePath-struct referenced by iter.
	Path(iter *TreeIter) *TreePath
	// StringFromIter generates a string representation of the iter.
	StringFromIter(iter *TreeIter) string
	// Value initializes and sets value to that at column.
	Value(iter *TreeIter, column int) coreglib.Value
	// IterChildren sets iter to point to the first child of parent.
	IterChildren(parent *TreeIter) (*TreeIter, bool)
	// IterHasChild returns TRUE if iter has children, FALSE otherwise.
	IterHasChild(iter *TreeIter) bool
	// IterNChildren returns the number of children that iter has.
	IterNChildren(iter *TreeIter) int
	// IterNext sets iter to point to the node following it at the current
	// level.
	IterNext(iter *TreeIter) bool
	// IterNthChild sets iter to be the child of parent, using the given index.
	IterNthChild(parent *TreeIter, n int) (*TreeIter, bool)
	// IterParent sets iter to be the parent of child.
	IterParent(child *TreeIter) (*TreeIter, bool)
	// IterPrevious sets iter to point to the previous node at the current
	// level.
	IterPrevious(iter *TreeIter) bool
	// RefNode lets the tree ref the node.
	RefNode(iter *TreeIter)
	// RowChanged emits the TreeModel::row-changed signal on tree_model.
	RowChanged(path *TreePath, iter *TreeIter)
	// RowDeleted emits the TreeModel::row-deleted signal on tree_model.
	RowDeleted(path *TreePath)
	// RowHasChildToggled emits the TreeModel::row-has-child-toggled signal on
	// tree_model.
	RowHasChildToggled(path *TreePath, iter *TreeIter)
	// RowInserted emits the TreeModel::row-inserted signal on tree_model.
	RowInserted(path *TreePath, iter *TreeIter)
	// RowsReordered emits the TreeModel::rows-reordered signal on tree_model.
	RowsReordered(path *TreePath, iter *TreeIter, newOrder []int)
	// UnrefNode lets the tree unref the node.
	UnrefNode(iter *TreeIter)

	// Row-changed: this signal is emitted when a row in the model has changed.
	ConnectRowChanged(func(path *TreePath, iter *TreeIter)) coreglib.SignalHandle
	// Row-deleted: this signal is emitted when a row has been deleted.
	ConnectRowDeleted(func(path *TreePath)) coreglib.SignalHandle
	// Row-has-child-toggled: this signal is emitted when a row has gotten the
	// first child row or lost its last child row.
	ConnectRowHasChildToggled(func(path *TreePath, iter *TreeIter)) coreglib.SignalHandle
	// Row-inserted: this signal is emitted when a new row has been inserted in
	// the model.
	ConnectRowInserted(func(path *TreePath, iter *TreeIter)) coreglib.SignalHandle
	// Rows-reordered: this signal is emitted when the children of a node in the
	// TreeModel have been reordered.
	ConnectRowsReordered(func(path *TreePath, iter *TreeIter, newOrder unsafe.Pointer)) coreglib.SignalHandle
}

TreeModeller describes TreeModel's interface methods.

type TreePath

type TreePath struct {
	// contains filtered or unexported fields
}

TreePath: instance of this type is always passed by reference.

func NewTreePath

func NewTreePath() *TreePath

NewTreePath constructs a struct TreePath.

func NewTreePathFirst

func NewTreePathFirst() *TreePath

NewTreePathFirst constructs a struct TreePath.

func NewTreePathFromIndices

func NewTreePathFromIndices(indices []int) *TreePath

NewTreePathFromIndices constructs a struct TreePath.

func NewTreePathFromString

func NewTreePathFromString(path string) *TreePath

NewTreePathFromString constructs a struct TreePath.

func (*TreePath) AppendIndex

func (path *TreePath) AppendIndex(index_ int)

AppendIndex appends a new index to a path.

As a result, the depth of the path is increased.

The function takes the following parameters:

  • index_: index.

func (*TreePath) Compare

func (a *TreePath) Compare(b *TreePath) int

Compare compares two paths.

If a appears before b in a tree, then -1 is returned. If b appears before a, then 1 is returned. If the two nodes are equal, then 0 is returned.

The function takes the following parameters:

  • b to compare with.

The function returns the following values:

  • gint: relative positions of a and b.

func (*TreePath) Copy

func (path *TreePath) Copy() *TreePath

Copy creates a new TreePath-struct as a copy of path.

The function returns the following values:

  • treePath: new TreePath-struct.

func (*TreePath) Depth

func (path *TreePath) Depth() int

Depth returns the current depth of path.

The function returns the following values:

  • gint: depth of path.

func (*TreePath) Down

func (path *TreePath) Down()

Down moves path to point to the first child of the current path.

func (*TreePath) Indices

func (path *TreePath) Indices() []int

Indices returns the current indices of path.

This is an array of integers, each representing a node in a tree. It also returns the number of elements in the array. The array should not be freed.

The function returns the following values:

  • gints: current indices, or NULL.

func (*TreePath) IsAncestor

func (path *TreePath) IsAncestor(descendant *TreePath) bool

IsAncestor returns TRUE if descendant is a descendant of path.

The function takes the following parameters:

  • descendant: another TreePath-struct.

The function returns the following values:

  • ok: TRUE if descendant is contained inside path.

func (*TreePath) IsDescendant

func (path *TreePath) IsDescendant(ancestor *TreePath) bool

IsDescendant returns TRUE if path is a descendant of ancestor.

The function takes the following parameters:

  • ancestor: another TreePath-struct.

The function returns the following values:

  • ok: TRUE if ancestor contains path somewhere below it.

func (*TreePath) Next

func (path *TreePath) Next()

Next moves the path to point to the next node at the current depth.

func (*TreePath) PrependIndex

func (path *TreePath) PrependIndex(index_ int)

PrependIndex prepends a new index to a path.

As a result, the depth of the path is increased.

The function takes the following parameters:

  • index_: index.

func (*TreePath) Prev

func (path *TreePath) Prev() bool

Prev moves the path to point to the previous node at the current depth, if it exists.

The function returns the following values:

  • ok: TRUE if path has a previous node, and the move was made.

func (*TreePath) String

func (path *TreePath) String() string

String generates a string representation of the path.

This string is a “:” separated list of numbers. For example, “4:10:0:3” would be an acceptable return value for this string.

The function returns the following values:

  • utf8: newly-allocated string. Must be freed with g_free().

func (*TreePath) Up

func (path *TreePath) Up() bool

Up moves the path to point to its parent node, if it has a parent.

The function returns the following values:

  • ok: TRUE if path has a parent, and the move was made.

type TreeRowReference

type TreeRowReference struct {
	// contains filtered or unexported fields
}

TreeRowReference tracks model changes so that it always refers to the same row (a TreePath refers to a position, not a fixed row). Create a new GtkTreeRowReference with gtk_tree_row_reference_new().

An instance of this type is always passed by reference.

func NewTreeRowReference

func NewTreeRowReference(model TreeModeller, path *TreePath) *TreeRowReference

NewTreeRowReference constructs a struct TreeRowReference.

func NewTreeRowReferenceProxy

func NewTreeRowReferenceProxy(proxy *coreglib.Object, model TreeModeller, path *TreePath) *TreeRowReference

NewTreeRowReferenceProxy constructs a struct TreeRowReference.

func (*TreeRowReference) Copy

func (reference *TreeRowReference) Copy() *TreeRowReference

Copy copies a TreeRowReference.

The function returns the following values:

  • treeRowReference: copy of reference.

func (*TreeRowReference) Model

func (reference *TreeRowReference) Model() *TreeModel

Model returns the model that the row reference is monitoring.

The function returns the following values:

  • treeModel: model.

func (*TreeRowReference) Path

func (reference *TreeRowReference) Path() *TreePath

Path returns a path that the row reference currently points to, or NULL if the path pointed to is no longer valid.

The function returns the following values:

  • treePath (optional): current path, or NULL.

func (*TreeRowReference) Valid

func (reference *TreeRowReference) Valid() bool

Valid returns TRUE if the reference is non-NULL and refers to a current valid path.

The function returns the following values:

  • ok: TRUE if reference points to a valid path.

type TreeSelection

type TreeSelection struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

TreeSelection object is a helper object to manage the selection for a TreeView widget. The TreeSelection object is automatically created when a new TreeView widget is created, and cannot exist independently of this widget. The primary reason the TreeSelection objects exists is for cleanliness of code and API. That is, there is no conceptual reason all these functions could not be methods on the TreeView widget instead of a separate function.

The TreeSelection object is gotten from a TreeView by calling gtk_tree_view_get_selection(). It can be manipulated to check the selection status of the tree, as well as select and deselect individual rows. Selection is done completely view side. As a result, multiple views of the same model can have completely different selections. Additionally, you cannot change the selection of a row on the model that is not currently displayed by the view without expanding its parents first.

One of the important things to remember when monitoring the selection of a view is that the TreeSelection::changed signal is mostly a hint. That is, it may only emit one signal when a range of rows is selected. Additionally, it may on occasion emit a TreeSelection::changed signal when nothing has happened (mostly as a result of programmers calling select_row on an already selected row).

func (*TreeSelection) ConnectChanged

func (selection *TreeSelection) ConnectChanged(f func()) coreglib.SignalHandle

ConnectChanged is emitted whenever the selection has (possibly) changed. Please note that this signal is mostly a hint. It may only be emitted once when a range of rows are selected, and it may occasionally be emitted when nothing has happened.

func (*TreeSelection) CountSelectedRows

func (selection *TreeSelection) CountSelectedRows() int

CountSelectedRows returns the number of rows that have been selected in tree.

The function returns the following values:

  • gint: number of rows selected.

func (*TreeSelection) IterIsSelected

func (selection *TreeSelection) IterIsSelected(iter *TreeIter) bool

IterIsSelected returns TRUE if the row at iter is currently selected.

The function takes the following parameters:

  • iter: valid TreeIter.

The function returns the following values:

  • ok: TRUE, if iter is selected.

func (*TreeSelection) Mode

func (selection *TreeSelection) Mode() SelectionMode

Mode gets the selection mode for selection. See gtk_tree_selection_set_mode().

The function returns the following values:

  • selectionMode: current selection mode.

func (*TreeSelection) PathIsSelected

func (selection *TreeSelection) PathIsSelected(path *TreePath) bool

PathIsSelected returns TRUE if the row pointed to by path is currently selected. If path does not point to a valid location, FALSE is returned.

The function takes the following parameters:

  • path to check selection on.

The function returns the following values:

  • ok: TRUE if path is selected.

func (*TreeSelection) SelectAll

func (selection *TreeSelection) SelectAll()

SelectAll selects all the nodes. selection must be set to K_SELECTION_MULTIPLE mode.

func (*TreeSelection) SelectIter

func (selection *TreeSelection) SelectIter(iter *TreeIter)

SelectIter selects the specified iterator.

The function takes the following parameters:

  • iter to be selected.

func (*TreeSelection) SelectPath

func (selection *TreeSelection) SelectPath(path *TreePath)

SelectPath: select the row at path.

The function takes the following parameters:

  • path to be selected.

func (*TreeSelection) SelectRange

func (selection *TreeSelection) SelectRange(startPath, endPath *TreePath)

SelectRange selects a range of nodes, determined by start_path and end_path inclusive. selection must be set to K_SELECTION_MULTIPLE mode.

The function takes the following parameters:

  • startPath: initial node of the range.
  • endPath: final node of the range.

func (*TreeSelection) Selected

func (selection *TreeSelection) Selected() (*TreeModel, *TreeIter, bool)

Selected sets iter to the currently selected node if selection is set to K_SELECTION_SINGLE or K_SELECTION_BROWSE. iter may be NULL if you just want to test if selection has any selected nodes. model is filled with the current model as a convenience. This function will not work if you use selection is K_SELECTION_MULTIPLE.

The function returns the following values:

  • model (optional): pointer to set to the TreeModel, or NULL.
  • iter (optional) or NULL.
  • ok: TRUE, if there is a selected node.

func (*TreeSelection) SelectedForEach

func (selection *TreeSelection) SelectedForEach(fn TreeSelectionForEachFunc)

SelectedForEach calls a function for each selected node. Note that you cannot modify the tree or selection from within this function. As a result, gtk_tree_selection_get_selected_rows() might be more useful.

The function takes the following parameters:

  • fn: function to call for each selected node.

func (*TreeSelection) SelectedRows

func (selection *TreeSelection) SelectedRows() (*TreeModel, []*TreePath)

SelectedRows creates a list of path of all selected rows. Additionally, if you are planning on modifying the model after calling this function, you may want to convert the returned list into a list of TreeRowReferences. To do this, you can use gtk_tree_row_reference_new().

To free the return value, use:

g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);.

The function returns the following values:

  • model (optional): pointer to set to the TreeModel, or NULL.
  • list containing a TreePath for each selected row.

func (*TreeSelection) SetMode

func (selection *TreeSelection) SetMode(typ SelectionMode)

SetMode sets the selection mode of the selection. If the previous type was K_SELECTION_MULTIPLE, then the anchor is kept selected, if it was previously selected.

The function takes the following parameters:

  • typ: selection mode.

func (*TreeSelection) SetSelectFunction

func (selection *TreeSelection) SetSelectFunction(fn TreeSelectionFunc)

SetSelectFunction sets the selection function.

If set, this function is called before any node is selected or unselected, giving some control over which nodes are selected. The select function should return TRUE if the state of the node may be toggled, and FALSE if the state of the node should be left unchanged.

The function takes the following parameters:

  • fn (optional): selection function. May be NULL.

func (*TreeSelection) TreeView

func (selection *TreeSelection) TreeView() *TreeView

TreeView returns the tree view associated with selection.

The function returns the following values:

  • treeView: TreeView.

func (*TreeSelection) UnselectAll

func (selection *TreeSelection) UnselectAll()

UnselectAll unselects all the nodes.

func (*TreeSelection) UnselectIter

func (selection *TreeSelection) UnselectIter(iter *TreeIter)

UnselectIter unselects the specified iterator.

The function takes the following parameters:

  • iter to be unselected.

func (*TreeSelection) UnselectPath

func (selection *TreeSelection) UnselectPath(path *TreePath)

UnselectPath unselects the row at path.

The function takes the following parameters:

  • path to be unselected.

func (*TreeSelection) UnselectRange

func (selection *TreeSelection) UnselectRange(startPath, endPath *TreePath)

UnselectRange unselects a range of nodes, determined by start_path and end_path inclusive.

The function takes the following parameters:

  • startPath: initial node of the range.
  • endPath: initial node of the range.

type TreeSelectionClass added in v0.0.5

type TreeSelectionClass struct {
	// contains filtered or unexported fields
}

TreeSelectionClass: instance of this type is always passed by reference.

type TreeSelectionForEachFunc

type TreeSelectionForEachFunc func(model TreeModeller, path *TreePath, iter *TreeIter)

TreeSelectionForEachFunc: function used by gtk_tree_selection_selected_foreach() to map all selected rows. It will be called on every selected row in the view.

type TreeSelectionFunc

type TreeSelectionFunc func(selection *TreeSelection, model TreeModeller, path *TreePath, pathCurrentlySelected bool) (ok bool)

TreeSelectionFunc: function used by gtk_tree_selection_set_select_function() to filter whether or not a row may be selected. It is called whenever a row's state might change. A return value of TRUE indicates to selection that it is okay to change the selection.

type TreeSelectionOverrides added in v0.0.5

type TreeSelectionOverrides struct {
	Changed func()
}

TreeSelectionOverrides contains methods that are overridable.

type TreeSortable

type TreeSortable struct {
	TreeModel
	// contains filtered or unexported fields
}

TreeSortable is an interface to be implemented by tree models which support sorting. The TreeView uses the methods provided by this interface to sort the model.

TreeSortable wraps an interface. This means the user can get the underlying type by calling Cast().

func (*TreeSortable) ConnectSortColumnChanged

func (sortable *TreeSortable) ConnectSortColumnChanged(f func()) coreglib.SignalHandle

ConnectSortColumnChanged signal is emitted when the sort column or sort order of sortable is changed. The signal is emitted before the contents of sortable are resorted.

func (*TreeSortable) HasDefaultSortFunc

func (sortable *TreeSortable) HasDefaultSortFunc() bool

HasDefaultSortFunc returns TRUE if the model has a default sort function. This is used primarily by GtkTreeViewColumns in order to determine if a model can go back to the default state, or not.

The function returns the following values:

  • ok: TRUE, if the model has a default sort function.

func (*TreeSortable) SetDefaultSortFunc

func (sortable *TreeSortable) SetDefaultSortFunc(sortFunc TreeIterCompareFunc)

SetDefaultSortFunc sets the default comparison function used when sorting to be sort_func. If the current sort column id of sortable is GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, then the model will sort using this function.

If sort_func is NULL, then there will be no default comparison function. This means that once the model has been sorted, it can’t go back to the default state. In this case, when the current sort column id of sortable is GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, the model will be unsorted.

The function takes the following parameters:

  • sortFunc: comparison function.

func (*TreeSortable) SetSortColumnID

func (sortable *TreeSortable) SetSortColumnID(sortColumnId int, order SortType)

SetSortColumnID sets the current sort column to be sort_column_id. The sortable will resort itself to reflect this change, after emitting a TreeSortable::sort-column-changed signal. sort_column_id may either be a regular column id, or one of the following special values:

- GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID: the default sort function will be used, if it is set

- GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID: no sorting will occur.

The function takes the following parameters:

  • sortColumnId: sort column id to set.
  • order: sort order of the column.

func (*TreeSortable) SetSortFunc

func (sortable *TreeSortable) SetSortFunc(sortColumnId int, sortFunc TreeIterCompareFunc)

SetSortFunc sets the comparison function used when sorting to be sort_func. If the current sort column id of sortable is the same as sort_column_id, then the model will sort using this function.

The function takes the following parameters:

  • sortColumnId: sort column id to set the function for.
  • sortFunc: comparison function.

func (*TreeSortable) SortColumnChanged

func (sortable *TreeSortable) SortColumnChanged()

SortColumnChanged emits a TreeSortable::sort-column-changed signal on sortable.

func (*TreeSortable) SortColumnID

func (sortable *TreeSortable) SortColumnID() (int, SortType, bool)

SortColumnID fills in sort_column_id and order with the current sort column and the order. It returns TRUE unless the sort_column_id is GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID or GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID.

The function returns the following values:

  • sortColumnId: sort column id to be filled in.
  • order to be filled in.
  • ok: TRUE if the sort column is not one of the special sort column ids.

type TreeSortableIface added in v0.0.5

type TreeSortableIface struct {
	// contains filtered or unexported fields
}

TreeSortableIface: instance of this type is always passed by reference.

type TreeSortabler

type TreeSortabler interface {
	coreglib.Objector

	// SortColumnID fills in sort_column_id and order with the current sort
	// column and the order.
	SortColumnID() (int, SortType, bool)
	// HasDefaultSortFunc returns TRUE if the model has a default sort function.
	HasDefaultSortFunc() bool
	// SetDefaultSortFunc sets the default comparison function used when sorting
	// to be sort_func.
	SetDefaultSortFunc(sortFunc TreeIterCompareFunc)
	// SetSortColumnID sets the current sort column to be sort_column_id.
	SetSortColumnID(sortColumnId int, order SortType)
	// SetSortFunc sets the comparison function used when sorting to be
	// sort_func.
	SetSortFunc(sortColumnId int, sortFunc TreeIterCompareFunc)
	// SortColumnChanged emits a TreeSortable::sort-column-changed signal on
	// sortable.
	SortColumnChanged()

	// Sort-column-changed signal is emitted when the sort column or sort order
	// of sortable is changed.
	ConnectSortColumnChanged(func()) coreglib.SignalHandle
}

TreeSortabler describes TreeSortable's interface methods.

type TreeStore

type TreeStore struct {
	*coreglib.Object

	Buildable
	TreeDragDest
	TreeDragSource
	TreeSortable
	// contains filtered or unexported fields
}

TreeStore object is a list model for use with a TreeView widget. It implements the TreeModel interface, and consequentially, can use all of the methods available there. It also implements the TreeSortable interface so it can be sorted by the view. Finally, it also implements the tree [drag and drop][gtk3-GtkTreeView-drag-and-drop] interfaces.

GtkTreeStore as GtkBuildable

The GtkTreeStore implementation of the Buildable interface allows to specify the model columns with a <columns> element that may contain multiple <column> elements, each specifying one model column. The “type” attribute specifies the data type for the column.

An example of a UI Definition fragment for a tree store:

<object class="GtkTreeStore">
  <columns>
    <column type="gchararray"/>
    <column type="gchararray"/>
    <column type="gint"/>
  </columns>
</object>.

func NewTreeStore

func NewTreeStore(types []coreglib.Type) *TreeStore

NewTreeStore: non vararg creation function. Used primarily by language bindings.

The function takes the following parameters:

  • types: array of #GType types for the columns, from first to last.

The function returns the following values:

  • treeStore: new TreeStore.

func (*TreeStore) Append

func (treeStore *TreeStore) Append(parent *TreeIter) *TreeIter

Append appends a new row to tree_store. If parent is non-NULL, then it will append the new row after the last child of parent, otherwise it will append a row to the top level. iter will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call gtk_tree_store_set() or gtk_tree_store_set_value().

The function takes the following parameters:

  • parent (optional): valid TreeIter, or NULL.

The function returns the following values:

  • iter: unset TreeIter to set to the appended row.

func (*TreeStore) Clear

func (treeStore *TreeStore) Clear()

Clear removes all rows from tree_store.

func (*TreeStore) Insert

func (treeStore *TreeStore) Insert(parent *TreeIter, position int) *TreeIter

Insert creates a new row at position. If parent is non-NULL, then the row will be made a child of parent. Otherwise, the row will be created at the toplevel. If position is -1 or is larger than the number of rows at that level, then the new row will be inserted to the end of the list. iter will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call gtk_tree_store_set() or gtk_tree_store_set_value().

The function takes the following parameters:

  • parent (optional): valid TreeIter, or NULL.
  • position to insert the new row, or -1 for last.

The function returns the following values:

  • iter: unset TreeIter to set to the new row.

func (*TreeStore) InsertAfter

func (treeStore *TreeStore) InsertAfter(parent, sibling *TreeIter) *TreeIter

InsertAfter inserts a new row after sibling. If sibling is NULL, then the row will be prepended to parent ’s children. If parent and sibling are NULL, then the row will be prepended to the toplevel. If both sibling and parent are set, then parent must be the parent of sibling. When sibling is set, parent is optional.

iter will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call gtk_tree_store_set() or gtk_tree_store_set_value().

The function takes the following parameters:

  • parent (optional): valid TreeIter, or NULL.
  • sibling (optional): valid TreeIter, or NULL.

The function returns the following values:

  • iter: unset TreeIter to set to the new row.

func (*TreeStore) InsertBefore

func (treeStore *TreeStore) InsertBefore(parent, sibling *TreeIter) *TreeIter

InsertBefore inserts a new row before sibling. If sibling is NULL, then the row will be appended to parent ’s children. If parent and sibling are NULL, then the row will be appended to the toplevel. If both sibling and parent are set, then parent must be the parent of sibling. When sibling is set, parent is optional.

iter will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call gtk_tree_store_set() or gtk_tree_store_set_value().

The function takes the following parameters:

  • parent (optional): valid TreeIter, or NULL.
  • sibling (optional): valid TreeIter, or NULL.

The function returns the following values:

  • iter: unset TreeIter to set to the new row.

func (*TreeStore) InsertWithValues

func (treeStore *TreeStore) InsertWithValues(parent *TreeIter, position int, columns []int, values []coreglib.Value) *TreeIter

InsertWithValues: variant of gtk_tree_store_insert_with_values() which takes the columns and values as two arrays, instead of varargs. This function is mainly intended for language bindings.

The function takes the following parameters:

  • parent (optional): valid TreeIter, or NULL.
  • position to insert the new row, or -1 for last.
  • columns: array of column numbers.
  • values: array of GValues.

The function returns the following values:

  • iter (optional): unset TreeIter to set the new row, or NULL.

func (*TreeStore) IsAncestor

func (treeStore *TreeStore) IsAncestor(iter, descendant *TreeIter) bool

IsAncestor returns TRUE if iter is an ancestor of descendant. That is, iter is the parent (or grandparent or great-grandparent) of descendant.

The function takes the following parameters:

  • iter: valid TreeIter.
  • descendant: valid TreeIter.

The function returns the following values:

  • ok: TRUE, if iter is an ancestor of descendant.

func (*TreeStore) IterDepth

func (treeStore *TreeStore) IterDepth(iter *TreeIter) int

IterDepth returns the depth of iter. This will be 0 for anything on the root level, 1 for anything down a level, etc.

The function takes the following parameters:

  • iter: valid TreeIter.

The function returns the following values:

  • gint: depth of iter.

func (*TreeStore) IterIsValid

func (treeStore *TreeStore) IterIsValid(iter *TreeIter) bool

IterIsValid: WARNING: This function is slow. Only use it for debugging and/or testing purposes.

Checks if the given iter is a valid iter for this TreeStore.

The function takes the following parameters:

  • iter: TreeIter.

The function returns the following values:

  • ok: TRUE if the iter is valid, FALSE if the iter is invalid.

func (*TreeStore) MoveAfter

func (treeStore *TreeStore) MoveAfter(iter, position *TreeIter)

MoveAfter moves iter in tree_store to the position after position. iter and position should be in the same level. Note that this function only works with unsorted stores. If position is NULL, iter will be moved to the start of the level.

The function takes the following parameters:

  • iter: TreeIter.
  • position (optional): TreeIter.

func (*TreeStore) MoveBefore

func (treeStore *TreeStore) MoveBefore(iter, position *TreeIter)

MoveBefore moves iter in tree_store to the position before position. iter and position should be in the same level. Note that this function only works with unsorted stores. If position is NULL, iter will be moved to the end of the level.

The function takes the following parameters:

  • iter: TreeIter.
  • position (optional) or NULL.

func (*TreeStore) Prepend

func (treeStore *TreeStore) Prepend(parent *TreeIter) *TreeIter

Prepend prepends a new row to tree_store. If parent is non-NULL, then it will prepend the new row before the first child of parent, otherwise it will prepend a row to the top level. iter will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call gtk_tree_store_set() or gtk_tree_store_set_value().

The function takes the following parameters:

  • parent (optional): valid TreeIter, or NULL.

The function returns the following values:

  • iter: unset TreeIter to set to the prepended row.

func (*TreeStore) Remove

func (treeStore *TreeStore) Remove(iter *TreeIter) bool

Remove removes iter from tree_store. After being removed, iter is set to the next valid row at that level, or invalidated if it previously pointed to the last one.

The function takes the following parameters:

  • iter: valid TreeIter.

The function returns the following values:

  • ok: TRUE if iter is still valid, FALSE if not.

func (*TreeStore) Set

func (treeStore *TreeStore) Set(iter *TreeIter, columns []int, values []coreglib.Value)

Set: variant of gtk_tree_store_set_valist() which takes the columns and values as two arrays, instead of varargs. This function is mainly intended for language bindings or in case the number of columns to change is not known until run-time.

The function takes the following parameters:

  • iter: valid TreeIter for the row being modified.
  • columns: array of column numbers.
  • values: array of GValues.

func (*TreeStore) SetColumnTypes

func (treeStore *TreeStore) SetColumnTypes(types []coreglib.Type)

SetColumnTypes: this function is meant primarily for #GObjects that inherit from TreeStore, and should only be used when constructing a new TreeStore. It will not function after a row has been added, or a method on the TreeModel interface is called.

The function takes the following parameters:

  • types: array of #GType types, one for each column.

func (*TreeStore) SetValue

func (treeStore *TreeStore) SetValue(iter *TreeIter, column int, value *coreglib.Value)

SetValue sets the data in the cell specified by iter and column. The type of value must be convertible to the type of the column.

The function takes the following parameters:

  • iter: valid TreeIter for the row being modified.
  • column number to modify.
  • value: new value for the cell.

func (*TreeStore) Swap

func (treeStore *TreeStore) Swap(a, b *TreeIter)

Swap swaps a and b in the same level of tree_store. Note that this function only works with unsorted stores.

The function takes the following parameters:

  • a: TreeIter.
  • b: another TreeIter.

type TreeStoreClass added in v0.0.5

type TreeStoreClass struct {
	// contains filtered or unexported fields
}

TreeStoreClass: instance of this type is always passed by reference.

type TreeStoreOverrides added in v0.0.5

type TreeStoreOverrides struct {
}

TreeStoreOverrides contains methods that are overridable.

type TreeView

type TreeView struct {
	Container

	*coreglib.Object
	Scrollable
	// contains filtered or unexported fields
}

TreeView: widget that displays any object that implements the TreeModel interface.

Please refer to the [tree widget conceptual overview][TreeWidget] for an overview of all the objects and data types related to the tree widget and how they work together.

Several different coordinate systems are exposed in the GtkTreeView API. These are:

! (tree-view-coordinates.png)

Coordinate systems in GtkTreeView API:

- Widget coordinates: Coordinates relative to the widget (usually widget->window).

- Bin window coordinates: Coordinates relative to the window that GtkTreeView renders to.

- Tree coordinates: Coordinates relative to the entire scrollable area of GtkTreeView. These coordinates start at (0, 0) for row 0 of the tree.

Several functions are available for converting between the different coordinate systems. The most common translations are between widget and bin window coordinates and between bin window and tree coordinates. For the former you can use gtk_tree_view_convert_widget_to_bin_window_coords() (and vice versa), for the latter gtk_tree_view_convert_bin_window_to_tree_coords() (and vice versa).

GtkTreeView as GtkBuildable

The GtkTreeView implementation of the GtkBuildable interface accepts TreeViewColumn objects as <child> elements and exposes the internal TreeSelection in UI definitions.

An example of a UI definition fragment with GtkTreeView:

<object class="GtkTreeView" id="treeview">
  <property name="model">liststore1</property>
  <child>
    <object class="GtkTreeViewColumn" id="test-column">
      <property name="title">Test</property>
      <child>
        <object class="GtkCellRendererText" id="test-renderer"/>
        <attributes>
          <attribute name="text">1</attribute>
        </attributes>
      </child>
    </object>
  </child>
  <child internal-child="selection">
    <object class="GtkTreeSelection" id="selection">
      <signal name="changed" handler="on_treeview_selection_changed"/>
    </object>
  </child>
</object>

CSS nodes

treeview.view
├── header
│   ├── <column header>
┊   ┊
│   ╰── <column header>
│
╰── [rubberband]

GtkTreeView has a main CSS node with name treeview and style class .view. It has a subnode with name header, which is the parent for all the column header widgets' CSS nodes. For rubberband selection, a subnode with name rubberband is used.

func NewTreeView

func NewTreeView() *TreeView

NewTreeView creates a new TreeView widget.

The function returns the following values:

  • treeView: newly created TreeView widget.

func NewTreeViewWithModel

func NewTreeViewWithModel(model TreeModeller) *TreeView

NewTreeViewWithModel creates a new TreeView widget with the model initialized to model.

The function takes the following parameters:

  • model: model.

The function returns the following values:

  • treeView: newly created TreeView widget.

func (*TreeView) ActivateOnSingleClick

func (treeView *TreeView) ActivateOnSingleClick() bool

ActivateOnSingleClick gets the setting set by gtk_tree_view_set_activate_on_single_click().

The function returns the following values:

  • ok: TRUE if row-activated will be emitted on a single click.

func (*TreeView) AppendColumn

func (treeView *TreeView) AppendColumn(column *TreeViewColumn) int

AppendColumn appends column to the list of columns. If tree_view has “fixed_height” mode enabled, then column must have its “sizing” property set to be GTK_TREE_VIEW_COLUMN_FIXED.

The function takes the following parameters:

  • column to add.

The function returns the following values:

  • gint: number of columns in tree_view after appending.

func (*TreeView) BackgroundArea

func (treeView *TreeView) BackgroundArea(path *TreePath, column *TreeViewColumn) *gdk.Rectangle

BackgroundArea fills the bounding rectangle in bin_window coordinates for the cell at the row specified by path and the column specified by column. If path is NULL, or points to a node not found in the tree, the y and height fields of the rectangle will be filled with 0. If column is NULL, the x and width fields will be filled with 0. The returned rectangle is equivalent to the background_area passed to gtk_cell_renderer_render(). These background areas tile to cover the entire bin window. Contrast with the cell_area, returned by gtk_tree_view_get_cell_area(), which returns only the cell itself, excluding surrounding borders and the tree expander area.

The function takes the following parameters:

  • path (optional) for the row, or NULL to get only horizontal coordinates.
  • column (optional) for the column, or NULL to get only vertical coordiantes.

The function returns the following values:

  • rect: rectangle to fill with cell background rect.

func (*TreeView) BinWindow

func (treeView *TreeView) BinWindow() gdk.Windower

BinWindow returns the window that tree_view renders to. This is used primarily to compare to event->window to confirm that the event on tree_view is on the right window.

The function returns the following values:

  • window (optional) or NULL when tree_view hasn’t been realized yet.

func (*TreeView) CellArea

func (treeView *TreeView) CellArea(path *TreePath, column *TreeViewColumn) *gdk.Rectangle

CellArea fills the bounding rectangle in bin_window coordinates for the cell at the row specified by path and the column specified by column. If path is NULL, or points to a path not currently displayed, the y and height fields of the rectangle will be filled with 0. If column is NULL, the x and width fields will be filled with 0. The sum of all cell rects does not cover the entire tree; there are extra pixels in between rows, for example. The returned rectangle is equivalent to the cell_area passed to gtk_cell_renderer_render(). This function is only valid if tree_view is realized.

The function takes the following parameters:

  • path (optional) for the row, or NULL to get only horizontal coordinates.
  • column (optional) for the column, or NULL to get only vertical coordinates.

The function returns the following values:

  • rect: rectangle to fill with cell rect.

func (*TreeView) CollapseAll

func (treeView *TreeView) CollapseAll()

CollapseAll: recursively collapses all visible, expanded nodes in tree_view.

func (*TreeView) CollapseRow

func (treeView *TreeView) CollapseRow(path *TreePath) bool

CollapseRow collapses a row (hides its child rows, if they exist).

The function takes the following parameters:

  • path to a row in the tree_view.

The function returns the following values:

  • ok: TRUE if the row was collapsed.

func (*TreeView) Column

func (treeView *TreeView) Column(n int) *TreeViewColumn

Column gets the TreeViewColumn at the given position in the #tree_view.

The function takes the following parameters:

  • n of the column, counting from 0.

The function returns the following values:

  • treeViewColumn (optional) or NULL if the position is outside the range of columns.

func (*TreeView) Columns

func (treeView *TreeView) Columns() []*TreeViewColumn

Columns returns a #GList of all the TreeViewColumn s currently in tree_view. The returned list must be freed with g_list_free ().

The function returns the following values:

  • list of TreeViewColumn s.

func (*TreeView) ColumnsAutosize

func (treeView *TreeView) ColumnsAutosize()

ColumnsAutosize resizes all columns to their optimal width. Only works after the treeview has been realized.

func (*TreeView) ConnectColumnsChanged

func (treeView *TreeView) ConnectColumnsChanged(f func()) coreglib.SignalHandle

ConnectColumnsChanged: number of columns of the treeview has changed.

func (*TreeView) ConnectCursorChanged

func (treeView *TreeView) ConnectCursorChanged(f func()) coreglib.SignalHandle

ConnectCursorChanged: position of the cursor (focused cell) has changed.

func (*TreeView) ConnectExpandCollapseCursorRow

func (treeView *TreeView) ConnectExpandCollapseCursorRow(f func(object, p0, p1 bool) (ok bool)) coreglib.SignalHandle

func (*TreeView) ConnectMoveCursor

func (treeView *TreeView) ConnectMoveCursor(f func(step MovementStep, direction int) (ok bool)) coreglib.SignalHandle

ConnectMoveCursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user presses one of the cursor keys.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically. In contrast to gtk_tree_view_set_cursor() and gtk_tree_view_set_cursor_on_cell() when moving horizontally TreeView::move-cursor does not reset the current selection.

func (*TreeView) ConnectRowActivated

func (treeView *TreeView) ConnectRowActivated(f func(path *TreePath, column *TreeViewColumn)) coreglib.SignalHandle

ConnectRowActivated: "row-activated" signal is emitted when the method gtk_tree_view_row_activated() is called, when the user double clicks a treeview row with the "activate-on-single-click" property set to FALSE, or when the user single clicks a row when the "activate-on-single-click" property set to TRUE. It is also emitted when a non-editable row is selected and one of the keys: Space, Shift+Space, Return or Enter is pressed.

For selection handling refer to the [tree widget conceptual overview][TreeWidget] as well as TreeSelection.

func (*TreeView) ConnectRowCollapsed

func (treeView *TreeView) ConnectRowCollapsed(f func(iter *TreeIter, path *TreePath)) coreglib.SignalHandle

ConnectRowCollapsed: given row has been collapsed (child nodes are hidden).

func (*TreeView) ConnectRowExpanded

func (treeView *TreeView) ConnectRowExpanded(f func(iter *TreeIter, path *TreePath)) coreglib.SignalHandle

ConnectRowExpanded: given row has been expanded (child nodes are shown).

func (*TreeView) ConnectSelectAll

func (treeView *TreeView) ConnectSelectAll(f func() (ok bool)) coreglib.SignalHandle

func (*TreeView) ConnectSelectCursorParent

func (treeView *TreeView) ConnectSelectCursorParent(f func() (ok bool)) coreglib.SignalHandle

func (*TreeView) ConnectSelectCursorRow

func (treeView *TreeView) ConnectSelectCursorRow(f func(object bool) (ok bool)) coreglib.SignalHandle

func (*TreeView) ConnectStartInteractiveSearch

func (treeView *TreeView) ConnectStartInteractiveSearch(f func() (ok bool)) coreglib.SignalHandle

func (*TreeView) ConnectTestCollapseRow

func (treeView *TreeView) ConnectTestCollapseRow(f func(iter *TreeIter, path *TreePath) (ok bool)) coreglib.SignalHandle

ConnectTestCollapseRow: given row is about to be collapsed (hide its children nodes). Use this signal if you need to control the collapsibility of individual rows.

func (*TreeView) ConnectTestExpandRow

func (treeView *TreeView) ConnectTestExpandRow(f func(iter *TreeIter, path *TreePath) (ok bool)) coreglib.SignalHandle

ConnectTestExpandRow: given row is about to be expanded (show its children nodes). Use this signal if you need to control the expandability of individual rows.

func (*TreeView) ConnectToggleCursorRow

func (treeView *TreeView) ConnectToggleCursorRow(f func() (ok bool)) coreglib.SignalHandle

func (*TreeView) ConnectUnselectAll

func (treeView *TreeView) ConnectUnselectAll(f func() (ok bool)) coreglib.SignalHandle

func (*TreeView) ConvertBinWindowToTreeCoords

func (treeView *TreeView) ConvertBinWindowToTreeCoords(bx, by int) (tx, ty int)

ConvertBinWindowToTreeCoords converts bin_window coordinates to coordinates for the tree (the full scrollable area of the tree).

The function takes the following parameters:

  • bx: x coordinate relative to bin_window.
  • by: y coordinate relative to bin_window.

The function returns the following values:

  • tx: return location for tree X coordinate.
  • ty: return location for tree Y coordinate.

func (*TreeView) ConvertBinWindowToWidgetCoords

func (treeView *TreeView) ConvertBinWindowToWidgetCoords(bx, by int) (wx, wy int)

ConvertBinWindowToWidgetCoords converts bin_window coordinates (see gtk_tree_view_get_bin_window()) to widget relative coordinates.

The function takes the following parameters:

  • bx: bin_window X coordinate.
  • by: bin_window Y coordinate.

The function returns the following values:

  • wx: return location for widget X coordinate.
  • wy: return location for widget Y coordinate.

func (*TreeView) ConvertTreeToBinWindowCoords

func (treeView *TreeView) ConvertTreeToBinWindowCoords(tx, ty int) (bx, by int)

ConvertTreeToBinWindowCoords converts tree coordinates (coordinates in full scrollable area of the tree) to bin_window coordinates.

The function takes the following parameters:

  • tx: tree X coordinate.
  • ty: tree Y coordinate.

The function returns the following values:

  • bx: return location for X coordinate relative to bin_window.
  • by: return location for Y coordinate relative to bin_window.

func (*TreeView) ConvertTreeToWidgetCoords

func (treeView *TreeView) ConvertTreeToWidgetCoords(tx, ty int) (wx, wy int)

ConvertTreeToWidgetCoords converts tree coordinates (coordinates in full scrollable area of the tree) to widget coordinates.

The function takes the following parameters:

  • tx: x coordinate relative to the tree.
  • ty: y coordinate relative to the tree.

The function returns the following values:

  • wx: return location for widget X coordinate.
  • wy: return location for widget Y coordinate.

func (*TreeView) ConvertWidgetToBinWindowCoords

func (treeView *TreeView) ConvertWidgetToBinWindowCoords(wx, wy int) (bx, by int)

ConvertWidgetToBinWindowCoords converts widget coordinates to coordinates for the bin_window (see gtk_tree_view_get_bin_window()).

The function takes the following parameters:

  • wx: x coordinate relative to the widget.
  • wy: y coordinate relative to the widget.

The function returns the following values:

  • bx: return location for bin_window X coordinate.
  • by: return location for bin_window Y coordinate.

func (*TreeView) ConvertWidgetToTreeCoords

func (treeView *TreeView) ConvertWidgetToTreeCoords(wx, wy int) (tx, ty int)

ConvertWidgetToTreeCoords converts widget coordinates to coordinates for the tree (the full scrollable area of the tree).

The function takes the following parameters:

  • wx: x coordinate relative to the widget.
  • wy: y coordinate relative to the widget.

The function returns the following values:

  • tx: return location for tree X coordinate.
  • ty: return location for tree Y coordinate.

func (*TreeView) CreateRowDragIcon

func (treeView *TreeView) CreateRowDragIcon(path *TreePath) *cairo.Surface

CreateRowDragIcon creates a #cairo_surface_t representation of the row at path. This image is used for a drag icon.

The function takes the following parameters:

  • path in tree_view.

The function returns the following values:

  • surface: newly-allocated surface of the drag icon.

func (*TreeView) Cursor

func (treeView *TreeView) Cursor() (*TreePath, *TreeViewColumn)

Cursor fills in path and focus_column with the current path and focus column. If the cursor isn’t currently set, then *path will be NULL. If no column currently has focus, then *focus_column will be NULL.

The returned TreePath must be freed with gtk_tree_path_free() when you are done with it.

The function returns the following values:

  • path (optional): pointer to be filled with the current cursor path, or NULL.
  • focusColumn (optional): a pointer to be filled with the current focus column, or NULL.

func (*TreeView) DestRowAtPos

func (treeView *TreeView) DestRowAtPos(dragX, dragY int) (*TreePath, TreeViewDropPosition, bool)

DestRowAtPos determines the destination row for a given position. drag_x and drag_y are expected to be in widget coordinates. This function is only meaningful if tree_view is realized. Therefore this function will always return FALSE if tree_view is not realized or does not have a model.

The function takes the following parameters:

  • dragX: position to determine the destination row for.
  • dragY: position to determine the destination row for.

The function returns the following values:

  • path (optional): return location for the path of the highlighted row, or NULL.
  • pos (optional): return location for the drop position, or NULL.
  • ok: whether there is a row at the given position, TRUE if this is indeed the case.

func (*TreeView) DragDestRow

func (treeView *TreeView) DragDestRow() (*TreePath, TreeViewDropPosition)

DragDestRow gets information about the row that is highlighted for feedback.

The function returns the following values:

  • path (optional): return location for the path of the highlighted row, or NULL.
  • pos (optional): return location for the drop position, or NULL.

func (*TreeView) EnableModelDragDest

func (treeView *TreeView) EnableModelDragDest(targets []TargetEntry, actions gdk.DragAction)

EnableModelDragDest turns tree_view into a drop destination for automatic DND. Calling this method sets TreeView:reorderable to FALSE.

The function takes the following parameters:

  • targets: table of targets that the drag will support.
  • actions: bitmask of possible actions for a drag from this widget.

func (*TreeView) EnableModelDragSource

func (treeView *TreeView) EnableModelDragSource(startButtonMask gdk.ModifierType, targets []TargetEntry, actions gdk.DragAction)

EnableModelDragSource turns tree_view into a drag source for automatic DND. Calling this method sets TreeView:reorderable to FALSE.

The function takes the following parameters:

  • startButtonMask: mask of allowed buttons to start drag.
  • targets: table of targets that the drag will support.
  • actions: bitmask of possible actions for a drag from this widget.

func (*TreeView) EnableSearch

func (treeView *TreeView) EnableSearch() bool

EnableSearch returns whether or not the tree allows to start interactive searching by typing in text.

The function returns the following values:

  • ok: whether or not to let the user search interactively.

func (*TreeView) EnableTreeLines

func (treeView *TreeView) EnableTreeLines() bool

EnableTreeLines returns whether or not tree lines are drawn in tree_view.

The function returns the following values:

  • ok: TRUE if tree lines are drawn in tree_view, FALSE otherwise.

func (*TreeView) ExpandAll

func (treeView *TreeView) ExpandAll()

ExpandAll: recursively expands all nodes in the tree_view.

func (*TreeView) ExpandRow

func (treeView *TreeView) ExpandRow(path *TreePath, openAll bool) bool

ExpandRow opens the row so its children are visible.

The function takes the following parameters:

  • path to a row.
  • openAll: whether to recursively expand, or just expand immediate children.

The function returns the following values:

  • ok: TRUE if the row existed and had children.

func (*TreeView) ExpandToPath

func (treeView *TreeView) ExpandToPath(path *TreePath)

ExpandToPath expands the row at path. This will also expand all parent rows of path as necessary.

The function takes the following parameters:

  • path to a row.

func (*TreeView) ExpanderColumn

func (treeView *TreeView) ExpanderColumn() *TreeViewColumn

ExpanderColumn returns the column that is the current expander column. This column has the expander arrow drawn next to it.

The function returns the following values:

  • treeViewColumn: expander column.

func (*TreeView) FixedHeightMode

func (treeView *TreeView) FixedHeightMode() bool

FixedHeightMode returns whether fixed height mode is turned on for tree_view.

The function returns the following values:

  • ok: TRUE if tree_view is in fixed height mode.

func (*TreeView) GridLines

func (treeView *TreeView) GridLines() TreeViewGridLines

GridLines returns which grid lines are enabled in tree_view.

The function returns the following values:

  • treeViewGridLines value indicating which grid lines are enabled.

func (*TreeView) HAdjustment deprecated

func (treeView *TreeView) HAdjustment() *Adjustment

HAdjustment gets the Adjustment currently being used for the horizontal aspect.

Deprecated: Use gtk_scrollable_get_hadjustment().

The function returns the following values:

  • adjustment object, or NULL if none is currently being used.

func (*TreeView) HeadersClickable

func (treeView *TreeView) HeadersClickable() bool

HeadersClickable returns whether all header columns are clickable.

The function returns the following values:

  • ok: TRUE if all header columns are clickable, otherwise FALSE.

func (*TreeView) HeadersVisible

func (treeView *TreeView) HeadersVisible() bool

HeadersVisible returns TRUE if the headers on the tree_view are visible.

The function returns the following values:

  • ok: whether the headers are visible or not.

func (*TreeView) HoverExpand

func (treeView *TreeView) HoverExpand() bool

HoverExpand returns whether hover expansion mode is turned on for tree_view.

The function returns the following values:

  • ok: TRUE if tree_view is in hover expansion mode.

func (*TreeView) HoverSelection

func (treeView *TreeView) HoverSelection() bool

HoverSelection returns whether hover selection mode is turned on for tree_view.

The function returns the following values:

  • ok: TRUE if tree_view is in hover selection mode.

func (*TreeView) InsertColumn

func (treeView *TreeView) InsertColumn(column *TreeViewColumn, position int) int

InsertColumn: this inserts the column into the tree_view at position. If position is -1, then the column is inserted at the end. If tree_view has “fixed_height” mode enabled, then column must have its “sizing” property set to be GTK_TREE_VIEW_COLUMN_FIXED.

The function takes the following parameters:

  • column to be inserted.
  • position to insert column in.

The function returns the following values:

  • gint: number of columns in tree_view after insertion.

func (*TreeView) InsertColumnWithDataFunc

func (treeView *TreeView) InsertColumnWithDataFunc(position int, title string, cell CellRendererer, fn TreeCellDataFunc) int

InsertColumnWithDataFunc: convenience function that inserts a new column into the TreeView with the given cell renderer and a TreeCellDataFunc to set cell renderer attributes (normally using data from the model). See also gtk_tree_view_column_set_cell_data_func(), gtk_tree_view_column_pack_start(). If tree_view has “fixed_height” mode enabled, then the new column will have its “sizing” property set to be GTK_TREE_VIEW_COLUMN_FIXED.

The function takes the following parameters:

  • position: position to insert, -1 for append.
  • title: column title.
  • cell renderer for column.
  • fn: function to set attributes of cell renderer.

The function returns the following values:

  • gint: number of columns in the tree view post-insert.

func (*TreeView) IsBlankAtPos

func (treeView *TreeView) IsBlankAtPos(x, y int) (path *TreePath, column *TreeViewColumn, cellX, cellY int, ok bool)

IsBlankAtPos: determine whether the point (x, y) in tree_view is blank, that is no cell content nor an expander arrow is drawn at the location. If so, the location can be considered as the background. You might wish to take special action on clicks on the background, such as clearing a current selection, having a custom context menu or starting rubber banding.

The x and y coordinate that are provided must be relative to bin_window coordinates. That is, x and y must come from an event on tree_view where event->window == gtk_tree_view_get_bin_window ().

For converting widget coordinates (eg. the ones you get from GtkWidget::query-tooltip), please see gtk_tree_view_convert_widget_to_bin_window_coords().

The path, column, cell_x and cell_y arguments will be filled in likewise as for gtk_tree_view_get_path_at_pos(). Please see gtk_tree_view_get_path_at_pos() for more information.

The function takes the following parameters:

  • x position to be identified (relative to bin_window).
  • y position to be identified (relative to bin_window).

The function returns the following values:

  • path (optional): pointer to a TreePath pointer to be filled in, or NULL.
  • column (optional): pointer to a TreeViewColumn pointer to be filled in, or NULL.
  • cellX (optional): pointer where the X coordinate relative to the cell can be placed, or NULL.
  • cellY (optional): pointer where the Y coordinate relative to the cell can be placed, or NULL.
  • ok: TRUE if the area at the given coordinates is blank, FALSE otherwise.

func (*TreeView) IsRubberBandingActive

func (treeView *TreeView) IsRubberBandingActive() bool

IsRubberBandingActive returns whether a rubber banding operation is currently being done in tree_view.

The function returns the following values:

  • ok: TRUE if a rubber banding operation is currently being done in tree_view.

func (*TreeView) LevelIndentation

func (treeView *TreeView) LevelIndentation() int

LevelIndentation returns the amount, in pixels, of extra indentation for child levels in tree_view.

The function returns the following values:

  • gint: amount of extra indentation for child levels in tree_view. A return value of 0 means that this feature is disabled.

func (*TreeView) MapExpandedRows

func (treeView *TreeView) MapExpandedRows(fn TreeViewMappingFunc)

MapExpandedRows calls func on all expanded rows.

The function takes the following parameters:

  • fn: function to be called.

func (*TreeView) Model

func (treeView *TreeView) Model() *TreeModel

Model returns the model the TreeView is based on. Returns NULL if the model is unset.

The function returns the following values:

  • treeModel (optional) or NULL if none is currently being used.

func (*TreeView) MoveColumnAfter

func (treeView *TreeView) MoveColumnAfter(column, baseColumn *TreeViewColumn)

MoveColumnAfter moves column to be after to base_column. If base_column is NULL, then column is placed in the first position.

The function takes the following parameters:

  • column to be moved.
  • baseColumn (optional) to be moved relative to, or NULL.

func (*TreeView) NColumns

func (treeView *TreeView) NColumns() uint

NColumns queries the number of columns in the given tree_view.

The function returns the following values:

  • guint: number of columns in the tree_view.

func (*TreeView) PathAtPos

func (treeView *TreeView) PathAtPos(x, y int) (path *TreePath, column *TreeViewColumn, cellX, cellY int, ok bool)

PathAtPos finds the path at the point (x, y), relative to bin_window coordinates (please see gtk_tree_view_get_bin_window()). That is, x and y are relative to an events coordinates. x and y must come from an event on the tree_view only where event->window == gtk_tree_view_get_bin_window (). It is primarily for things like popup menus. If path is non-NULL, then it will be filled with the TreePath at that point. This path should be freed with gtk_tree_path_free(). If column is non-NULL, then it will be filled with the column at that point. cell_x and cell_y return the coordinates relative to the cell background (i.e. the background_area passed to gtk_cell_renderer_render()). This function is only meaningful if tree_view is realized. Therefore this function will always return FALSE if tree_view is not realized or does not have a model.

For converting widget coordinates (eg. the ones you get from GtkWidget::query-tooltip), please see gtk_tree_view_convert_widget_to_bin_window_coords().

The function takes the following parameters:

  • x position to be identified (relative to bin_window).
  • y position to be identified (relative to bin_window).

The function returns the following values:

  • path (optional): pointer to a TreePath pointer to be filled in, or NULL.
  • column (optional): pointer to a TreeViewColumn pointer to be filled in, or NULL.
  • cellX (optional): pointer where the X coordinate relative to the cell can be placed, or NULL.
  • cellY (optional): pointer where the Y coordinate relative to the cell can be placed, or NULL.
  • ok: TRUE if a row exists at that coordinate.

func (*TreeView) RemoveColumn

func (treeView *TreeView) RemoveColumn(column *TreeViewColumn) int

RemoveColumn removes column from tree_view.

The function takes the following parameters:

  • column to remove.

The function returns the following values:

  • gint: number of columns in tree_view after removing.

func (*TreeView) Reorderable

func (treeView *TreeView) Reorderable() bool

Reorderable retrieves whether the user can reorder the tree via drag-and-drop. See gtk_tree_view_set_reorderable().

The function returns the following values:

  • ok: TRUE if the tree can be reordered.

func (*TreeView) RowActivated

func (treeView *TreeView) RowActivated(path *TreePath, column *TreeViewColumn)

RowActivated activates the cell determined by path and column.

The function takes the following parameters:

  • path to be activated.
  • column to be activated.

func (*TreeView) RowExpanded

func (treeView *TreeView) RowExpanded(path *TreePath) bool

RowExpanded returns TRUE if the node pointed to by path is expanded in tree_view.

The function takes the following parameters:

  • path to test expansion state.

The function returns the following values:

  • ok: TRUE if #path is expanded.

func (*TreeView) RubberBanding

func (treeView *TreeView) RubberBanding() bool

RubberBanding returns whether rubber banding is turned on for tree_view. If the selection mode is K_SELECTION_MULTIPLE, rubber banding will allow the user to select multiple rows by dragging the mouse.

The function returns the following values:

  • ok: TRUE if rubber banding in tree_view is enabled.

func (*TreeView) RulesHint deprecated

func (treeView *TreeView) RulesHint() bool

RulesHint gets the setting set by gtk_tree_view_set_rules_hint().

Deprecated: since version 3.14.

The function returns the following values:

  • ok: TRUE if the hint is set.

func (*TreeView) ScrollToCell

func (treeView *TreeView) ScrollToCell(path *TreePath, column *TreeViewColumn, useAlign bool, rowAlign, colAlign float32)

ScrollToCell moves the alignments of tree_view to the position specified by column and path. If column is NULL, then no horizontal scrolling occurs. Likewise, if path is NULL no vertical scrolling occurs. At a minimum, one of column or path need to be non-NULL. row_align determines where the row is placed, and col_align determines where column is placed. Both are expected to be between 0.0 and 1.0. 0.0 means left/top alignment, 1.0 means right/bottom alignment, 0.5 means center.

If use_align is FALSE, then the alignment arguments are ignored, and the tree does the minimum amount of work to scroll the cell onto the screen. This means that the cell will be scrolled to the edge closest to its current position. If the cell is currently visible on the screen, nothing is done.

This function only works if the model is set, and path is a valid row on the model. If the model changes before the tree_view is realized, the centered path will be modified to reflect this change.

The function takes the following parameters:

  • path (optional) of the row to move to, or NULL.
  • column (optional) to move horizontally to, or NULL.
  • useAlign: whether to use alignment arguments, or FALSE.
  • rowAlign: vertical alignment of the row specified by path.
  • colAlign: horizontal alignment of the column specified by column.

func (*TreeView) ScrollToPoint

func (treeView *TreeView) ScrollToPoint(treeX, treeY int)

ScrollToPoint scrolls the tree view such that the top-left corner of the visible area is tree_x, tree_y, where tree_x and tree_y are specified in tree coordinates. The tree_view must be realized before this function is called. If it isn't, you probably want to be using gtk_tree_view_scroll_to_cell().

If either tree_x or tree_y are -1, then that direction isn’t scrolled.

The function takes the following parameters:

  • treeX: x coordinate of new top-left pixel of visible area, or -1.
  • treeY: y coordinate of new top-left pixel of visible area, or -1.

func (*TreeView) SearchColumn

func (treeView *TreeView) SearchColumn() int

SearchColumn gets the column searched on by the interactive search code.

The function returns the following values:

  • gint: column the interactive search code searches in.

func (*TreeView) SearchEntry

func (treeView *TreeView) SearchEntry() *Entry

SearchEntry returns the Entry which is currently in use as interactive search entry for tree_view. In case the built-in entry is being used, NULL will be returned.

The function returns the following values:

  • entry currently in use as search entry.

func (*TreeView) Selection

func (treeView *TreeView) Selection() *TreeSelection

Selection gets the TreeSelection associated with tree_view.

The function returns the following values:

  • treeSelection: TreeSelection object.

func (*TreeView) SetActivateOnSingleClick

func (treeView *TreeView) SetActivateOnSingleClick(single bool)

SetActivateOnSingleClick: cause the TreeView::row-activated signal to be emitted on a single click instead of a double click.

The function takes the following parameters:

  • single: TRUE to emit row-activated on a single click.

func (*TreeView) SetColumnDragFunction

func (treeView *TreeView) SetColumnDragFunction(fn TreeViewColumnDropFunc)

SetColumnDragFunction sets a user function for determining where a column may be dropped when dragged. This function is called on every column pair in turn at the beginning of a column drag to determine where a drop can take place. The arguments passed to func are: the tree_view, the TreeViewColumn being dragged, the two TreeViewColumn s determining the drop spot, and user_data. If either of the TreeViewColumn arguments for the drop spot are NULL, then they indicate an edge. If func is set to be NULL, then tree_view reverts to the default behavior of allowing all columns to be dropped everywhere.

The function takes the following parameters:

  • fn (optional): function to determine which columns are reorderable, or NULL.

func (*TreeView) SetCursor

func (treeView *TreeView) SetCursor(path *TreePath, focusColumn *TreeViewColumn, startEditing bool)

SetCursor sets the current keyboard focus to be at path, and selects it. This is useful when you want to focus the user’s attention on a particular row. If focus_column is not NULL, then focus is given to the column specified by it. Additionally, if focus_column is specified, and start_editing is TRUE, then editing should be started in the specified cell. This function is often followed by gtk_widget_grab_focus (tree_view) in order to give keyboard focus to the widget. Please note that editing can only happen when the widget is realized.

If path is invalid for model, the current cursor (if any) will be unset and the function will return without failing.

The function takes the following parameters:

  • path: TreePath.
  • focusColumn (optional) or NULL.
  • startEditing: TRUE if the specified cell should start being edited.

func (*TreeView) SetCursorOnCell

func (treeView *TreeView) SetCursorOnCell(path *TreePath, focusColumn *TreeViewColumn, focusCell CellRendererer, startEditing bool)

SetCursorOnCell sets the current keyboard focus to be at path, and selects it. This is useful when you want to focus the user’s attention on a particular row. If focus_column is not NULL, then focus is given to the column specified by it. If focus_column and focus_cell are not NULL, and focus_column contains 2 or more editable or activatable cells, then focus is given to the cell specified by focus_cell. Additionally, if focus_column is specified, and start_editing is TRUE, then editing should be started in the specified cell. This function is often followed by gtk_widget_grab_focus (tree_view) in order to give keyboard focus to the widget. Please note that editing can only happen when the widget is realized.

If path is invalid for model, the current cursor (if any) will be unset and the function will return without failing.

The function takes the following parameters:

  • path: TreePath.
  • focusColumn (optional) or NULL.
  • focusCell (optional) or NULL.
  • startEditing: TRUE if the specified cell should start being edited.

func (*TreeView) SetDestroyCountFunc deprecated

func (treeView *TreeView) SetDestroyCountFunc(fn TreeDestroyCountFunc)

SetDestroyCountFunc: this function should almost never be used. It is meant for private use by ATK for determining the number of visible children that are removed when the user collapses a row, or a row is deleted.

Deprecated: Accessibility does not need the function anymore.

The function takes the following parameters:

  • fn (optional): function to be called when a view row is destroyed, or NULL.

func (*TreeView) SetDragDestRow

func (treeView *TreeView) SetDragDestRow(path *TreePath, pos TreeViewDropPosition)

SetDragDestRow sets the row that is highlighted for feedback. If path is NULL, an existing highlight is removed.

The function takes the following parameters:

  • path (optional) of the row to highlight, or NULL.
  • pos specifies whether to drop before, after or into the row.

func (*TreeView) SetEnableSearch

func (treeView *TreeView) SetEnableSearch(enableSearch bool)

SetEnableSearch: if enable_search is set, then the user can type in text to search through the tree interactively (this is sometimes called "typeahead find").

Note that even if this is FALSE, the user can still initiate a search using the “start-interactive-search” key binding.

The function takes the following parameters:

  • enableSearch: TRUE, if the user can search interactively.

func (*TreeView) SetEnableTreeLines

func (treeView *TreeView) SetEnableTreeLines(enabled bool)

SetEnableTreeLines sets whether to draw lines interconnecting the expanders in tree_view. This does not have any visible effects for lists.

The function takes the following parameters:

  • enabled: TRUE to enable tree line drawing, FALSE otherwise.

func (*TreeView) SetExpanderColumn

func (treeView *TreeView) SetExpanderColumn(column *TreeViewColumn)

SetExpanderColumn sets the column to draw the expander arrow at. It must be in tree_view. If column is NULL, then the expander arrow is always at the first visible column.

If you do not want expander arrow to appear in your tree, set the expander column to a hidden column.

The function takes the following parameters:

  • column (optional): NULL, or the column to draw the expander arrow at.

func (*TreeView) SetFixedHeightMode

func (treeView *TreeView) SetFixedHeightMode(enable bool)

SetFixedHeightMode enables or disables the fixed height mode of tree_view. Fixed height mode speeds up TreeView by assuming that all rows have the same height. Only enable this option if all rows are the same height and all columns are of type GTK_TREE_VIEW_COLUMN_FIXED.

The function takes the following parameters:

  • enable: TRUE to enable fixed height mode.

func (*TreeView) SetGridLines

func (treeView *TreeView) SetGridLines(gridLines TreeViewGridLines)

SetGridLines sets which grid lines to draw in tree_view.

The function takes the following parameters:

  • gridLines value indicating which grid lines to enable.

func (*TreeView) SetHAdjustment deprecated

func (treeView *TreeView) SetHAdjustment(adjustment *Adjustment)

SetHAdjustment sets the Adjustment for the current horizontal aspect.

Deprecated: Use gtk_scrollable_set_hadjustment().

The function takes the following parameters:

  • adjustment (optional) to set, or NULL.

func (*TreeView) SetHeadersClickable

func (treeView *TreeView) SetHeadersClickable(setting bool)

SetHeadersClickable: allow the column title buttons to be clicked.

The function takes the following parameters:

  • setting: TRUE if the columns are clickable.

func (*TreeView) SetHeadersVisible

func (treeView *TreeView) SetHeadersVisible(headersVisible bool)

SetHeadersVisible sets the visibility state of the headers.

The function takes the following parameters:

  • headersVisible: TRUE if the headers are visible.

func (*TreeView) SetHoverExpand

func (treeView *TreeView) SetHoverExpand(expand bool)

SetHoverExpand enables or disables the hover expansion mode of tree_view. Hover expansion makes rows expand or collapse if the pointer moves over them.

The function takes the following parameters:

  • expand: TRUE to enable hover selection mode.

func (*TreeView) SetHoverSelection

func (treeView *TreeView) SetHoverSelection(hover bool)

SetHoverSelection enables or disables the hover selection mode of tree_view. Hover selection makes the selected row follow the pointer. Currently, this works only for the selection modes GTK_SELECTION_SINGLE and GTK_SELECTION_BROWSE.

The function takes the following parameters:

  • hover: TRUE to enable hover selection mode.

func (*TreeView) SetLevelIndentation

func (treeView *TreeView) SetLevelIndentation(indentation int)

SetLevelIndentation sets the amount of extra indentation for child levels to use in tree_view in addition to the default indentation. The value should be specified in pixels, a value of 0 disables this feature and in this case only the default indentation will be used. This does not have any visible effects for lists.

The function takes the following parameters:

  • indentation: amount, in pixels, of extra indentation in tree_view.

func (*TreeView) SetModel

func (treeView *TreeView) SetModel(model TreeModeller)

SetModel sets the model for a TreeView. If the tree_view already has a model set, it will remove it before setting the new model. If model is NULL, then it will unset the old model.

The function takes the following parameters:

  • model (optional): model.

func (*TreeView) SetReorderable

func (treeView *TreeView) SetReorderable(reorderable bool)

SetReorderable: this function is a convenience function to allow you to reorder models that support the TreeDragSourceIface and the TreeDragDestIface. Both TreeStore and ListStore support these. If reorderable is TRUE, then the user can reorder the model by dragging and dropping rows. The developer can listen to these changes by connecting to the model’s TreeModel::row-inserted and TreeModel::row-deleted signals. The reordering is implemented by setting up the tree view as a drag source and destination. Therefore, drag and drop can not be used in a reorderable view for any other purpose.

This function does not give you any degree of control over the order -- any reordering is allowed. If more control is needed, you should probably handle drag and drop manually.

The function takes the following parameters:

  • reorderable: TRUE, if the tree can be reordered.

func (*TreeView) SetRowSeparatorFunc

func (treeView *TreeView) SetRowSeparatorFunc(fn TreeViewRowSeparatorFunc)

SetRowSeparatorFunc sets the row separator function, which is used to determine whether a row should be drawn as a separator. If the row separator function is NULL, no separators are drawn. This is the default value.

The function takes the following parameters:

  • fn (optional): TreeViewRowSeparatorFunc.

func (*TreeView) SetRubberBanding

func (treeView *TreeView) SetRubberBanding(enable bool)

SetRubberBanding enables or disables rubber banding in tree_view. If the selection mode is K_SELECTION_MULTIPLE, rubber banding will allow the user to select multiple rows by dragging the mouse.

The function takes the following parameters:

  • enable: TRUE to enable rubber banding.

func (*TreeView) SetRulesHint deprecated

func (treeView *TreeView) SetRulesHint(setting bool)

SetRulesHint sets a hint for the theme to draw even/odd rows in the tree_view with different colors, also known as "zebra striping".

This function tells the GTK+ theme that the user interface for your application requires users to read across tree rows and associate cells with one another.

Do not use it just because you prefer the appearance of the ruled tree; that’s a question for the theme. Some themes will draw tree rows in alternating colors even when rules are turned off, and users who prefer that appearance all the time can choose those themes. You should call this function only as a semantic hint to the theme engine that your tree makes alternating colors useful from a functional standpoint (since it has lots of columns, generally).

Deprecated: since version 3.14.

The function takes the following parameters:

  • setting: TRUE if the tree requires reading across rows.

func (*TreeView) SetSearchColumn

func (treeView *TreeView) SetSearchColumn(column int)

SetSearchColumn sets column as the column where the interactive search code should search in for the current model.

If the search column is set, users can use the “start-interactive-search” key binding to bring up search popup. The enable-search property controls whether simply typing text will also start an interactive search.

Note that column refers to a column of the current model. The search column is reset to -1 when the model is changed.

The function takes the following parameters:

  • column of the model to search in, or -1 to disable searching.

func (*TreeView) SetSearchEntry

func (treeView *TreeView) SetSearchEntry(entry *Entry)

SetSearchEntry sets the entry which the interactive search code will use for this tree_view. This is useful when you want to provide a search entry in our interface at all time at a fixed position. Passing NULL for entry will make the interactive search code use the built-in popup entry again.

The function takes the following parameters:

  • entry (optional) the interactive search code of tree_view should use or NULL.

func (*TreeView) SetSearchEqualFunc

func (treeView *TreeView) SetSearchEqualFunc(searchEqualFunc TreeViewSearchEqualFunc)

SetSearchEqualFunc sets the compare function for the interactive search capabilities; note that somewhat like strcmp() returning 0 for equality TreeViewSearchEqualFunc returns FALSE on matches.

The function takes the following parameters:

  • searchEqualFunc: compare function to use during the search.

func (*TreeView) SetSearchPositionFunc

func (treeView *TreeView) SetSearchPositionFunc(fn TreeViewSearchPositionFunc)

SetSearchPositionFunc sets the function to use when positioning the search dialog.

The function takes the following parameters:

  • fn (optional): function to use to position the search dialog, or NULL to use the default search position function.

func (*TreeView) SetShowExpanders

func (treeView *TreeView) SetShowExpanders(enabled bool)

SetShowExpanders sets whether to draw and enable expanders and indent child rows in tree_view. When disabled there will be no expanders visible in trees and there will be no way to expand and collapse rows by default. Also note that hiding the expanders will disable the default indentation. You can set a custom indentation in this case using gtk_tree_view_set_level_indentation(). This does not have any visible effects for lists.

The function takes the following parameters:

  • enabled: TRUE to enable expander drawing, FALSE otherwise.

func (*TreeView) SetTooltipCell

func (treeView *TreeView) SetTooltipCell(tooltip *Tooltip, path *TreePath, column *TreeViewColumn, cell CellRendererer)

SetTooltipCell sets the tip area of tooltip to the area path, column and cell have in common. For example if path is NULL and column is set, the tip area will be set to the full area covered by column. See also gtk_tooltip_set_tip_area().

Note that if path is not specified and cell is set and part of a column containing the expander, the tooltip might not show and hide at the correct position. In such cases path must be set to the current node under the mouse cursor for this function to operate correctly.

See also gtk_tree_view_set_tooltip_column() for a simpler alternative.

The function takes the following parameters:

  • tooltip: Tooltip.
  • path (optional) or NULL.
  • column (optional) or NULL.
  • cell (optional) or NULL.

func (*TreeView) SetTooltipColumn

func (treeView *TreeView) SetTooltipColumn(column int)

SetTooltipColumn: if you only plan to have simple (text-only) tooltips on full rows, you can use this function to have TreeView handle these automatically for you. column should be set to the column in tree_view’s model containing the tooltip texts, or -1 to disable this feature.

When enabled, Widget:has-tooltip will be set to TRUE and tree_view will connect a Widget::query-tooltip signal handler.

Note that the signal handler sets the text with gtk_tooltip_set_markup(), so &, <, etc have to be escaped in the text.

The function takes the following parameters:

  • column: integer, which is a valid column number for tree_view’s model.

func (*TreeView) SetTooltipRow

func (treeView *TreeView) SetTooltipRow(tooltip *Tooltip, path *TreePath)

SetTooltipRow sets the tip area of tooltip to be the area covered by the row at path. See also gtk_tree_view_set_tooltip_column() for a simpler alternative. See also gtk_tooltip_set_tip_area().

The function takes the following parameters:

  • tooltip: Tooltip.
  • path: TreePath.

func (*TreeView) SetVAdjustment deprecated

func (treeView *TreeView) SetVAdjustment(adjustment *Adjustment)

SetVAdjustment sets the Adjustment for the current vertical aspect.

Deprecated: Use gtk_scrollable_set_vadjustment().

The function takes the following parameters:

  • adjustment (optional) to set, or NULL.

func (*TreeView) ShowExpanders

func (treeView *TreeView) ShowExpanders() bool

ShowExpanders returns whether or not expanders are drawn in tree_view.

The function returns the following values:

  • ok: TRUE if expanders are drawn in tree_view, FALSE otherwise.

func (*TreeView) TooltipColumn

func (treeView *TreeView) TooltipColumn() int

TooltipColumn returns the column of tree_view’s model which is being used for displaying tooltips on tree_view’s rows.

The function returns the following values:

  • gint: index of the tooltip column that is currently being used, or -1 if this is disabled.

func (*TreeView) UnsetRowsDragDest

func (treeView *TreeView) UnsetRowsDragDest()

UnsetRowsDragDest undoes the effect of gtk_tree_view_enable_model_drag_dest(). Calling this method sets TreeView:reorderable to FALSE.

func (*TreeView) UnsetRowsDragSource

func (treeView *TreeView) UnsetRowsDragSource()

UnsetRowsDragSource undoes the effect of gtk_tree_view_enable_model_drag_source(). Calling this method sets TreeView:reorderable to FALSE.

func (*TreeView) VAdjustment deprecated

func (treeView *TreeView) VAdjustment() *Adjustment

VAdjustment gets the Adjustment currently being used for the vertical aspect.

Deprecated: Use gtk_scrollable_get_vadjustment().

The function returns the following values:

  • adjustment object, or NULL if none is currently being used.

func (*TreeView) VisibleRange

func (treeView *TreeView) VisibleRange() (startPath, endPath *TreePath, ok bool)

VisibleRange sets start_path and end_path to be the first and last visible path. Note that there may be invisible paths in between.

The paths should be freed with gtk_tree_path_free() after use.

The function returns the following values:

  • startPath (optional): return location for start of region, or NULL.
  • endPath (optional): return location for end of region, or NULL.
  • ok: TRUE, if valid paths were placed in start_path and end_path.

func (*TreeView) VisibleRect

func (treeView *TreeView) VisibleRect() *gdk.Rectangle

VisibleRect fills visible_rect with the currently-visible region of the buffer, in tree coordinates. Convert to bin_window coordinates with gtk_tree_view_convert_tree_to_bin_window_coords(). Tree coordinates start at 0,0 for row 0 of the tree, and cover the entire scrollable area of the tree.

The function returns the following values:

  • visibleRect: rectangle to fill.

type TreeViewAccessible

type TreeViewAccessible struct {
	ContainerAccessible

	*coreglib.Object
	atk.Selection
	atk.Table
	CellAccessibleParent
	// contains filtered or unexported fields
}

type TreeViewAccessibleClass added in v0.0.5

type TreeViewAccessibleClass struct {
	// contains filtered or unexported fields
}

TreeViewAccessibleClass: instance of this type is always passed by reference.

func (*TreeViewAccessibleClass) ParentClass added in v0.0.5

type TreeViewAccessibleOverrides added in v0.0.5

type TreeViewAccessibleOverrides struct {
}

TreeViewAccessibleOverrides contains methods that are overridable.

type TreeViewClass added in v0.0.5

type TreeViewClass struct {
	// contains filtered or unexported fields
}

TreeViewClass: instance of this type is always passed by reference.

func (*TreeViewClass) ParentClass added in v0.0.5

func (t *TreeViewClass) ParentClass() *ContainerClass

type TreeViewColumn

type TreeViewColumn struct {
	coreglib.InitiallyUnowned

	*coreglib.Object
	Buildable
	CellLayout
	// contains filtered or unexported fields
}

TreeViewColumn object represents a visible column in a TreeView widget. It allows to set properties of the column header, and functions as a holding pen for the cell renderers which determine how the data in the column is displayed.

Please refer to the [tree widget conceptual overview][TreeWidget] for an overview of all the objects and data types related to the tree widget and how they work together.

func NewTreeViewColumn

func NewTreeViewColumn() *TreeViewColumn

NewTreeViewColumn creates a new TreeViewColumn.

The function returns the following values:

  • treeViewColumn: newly created TreeViewColumn.

func NewTreeViewColumnWithArea

func NewTreeViewColumnWithArea(area CellAreaer) *TreeViewColumn

NewTreeViewColumnWithArea creates a new TreeViewColumn using area to render its cells.

The function takes the following parameters:

  • area that the newly created column should use to layout cells.

The function returns the following values:

  • treeViewColumn: newly created TreeViewColumn.

func (*TreeViewColumn) AddAttribute

func (treeColumn *TreeViewColumn) AddAttribute(cellRenderer CellRendererer, attribute string, column int)

AddAttribute adds an attribute mapping to the list in tree_column. The column is the column of the model to get a value from, and the attribute is the parameter on cell_renderer to be set from the value. So for example if column 2 of the model contains strings, you could have the “text” attribute of a CellRendererText get its values from column 2.

The function takes the following parameters:

  • cellRenderer to set attributes on.
  • attribute on the renderer.
  • column position on the model to get the attribute from.

func (*TreeViewColumn) Alignment

func (treeColumn *TreeViewColumn) Alignment() float32

Alignment returns the current x alignment of tree_column. This value can range between 0.0 and 1.0.

The function returns the following values:

  • gfloat: current alignent of tree_column.

func (*TreeViewColumn) Button

func (treeColumn *TreeViewColumn) Button() Widgetter

Button returns the button used in the treeview column header.

The function returns the following values:

  • widget: button for the column header.

func (*TreeViewColumn) CellGetPosition

func (treeColumn *TreeViewColumn) CellGetPosition(cellRenderer CellRendererer) (xOffset, width int, ok bool)

CellGetPosition obtains the horizontal position and size of a cell in a column. If the cell is not found in the column, start_pos and width are not changed and FALSE is returned.

The function takes the following parameters:

  • cellRenderer: CellRenderer.

The function returns the following values:

  • xOffset (optional): return location for the horizontal position of cell within tree_column, may be NULL.
  • width (optional): return location for the width of cell, may be NULL.
  • ok: TRUE if cell belongs to tree_column.

func (*TreeViewColumn) CellGetSize

func (treeColumn *TreeViewColumn) CellGetSize(cellArea *gdk.Rectangle) (xOffset, yOffset, width, height int)

CellGetSize obtains the width and height needed to render the column. This is used primarily by the TreeView.

The function takes the following parameters:

  • cellArea (optional): area a cell in the column will be allocated, or NULL.

The function returns the following values:

  • xOffset (optional): location to return x offset of a cell relative to cell_area, or NULL.
  • yOffset (optional): location to return y offset of a cell relative to cell_area, or NULL.
  • width (optional): location to return width needed to render a cell, or NULL.
  • height (optional): location to return height needed to render a cell, or NULL.

func (*TreeViewColumn) CellIsVisible

func (treeColumn *TreeViewColumn) CellIsVisible() bool

CellIsVisible returns TRUE if any of the cells packed into the tree_column are visible. For this to be meaningful, you must first initialize the cells with gtk_tree_view_column_cell_set_cell_data().

The function returns the following values:

  • ok: TRUE, if any of the cells packed into the tree_column are currently visible.

func (*TreeViewColumn) CellSetCellData

func (treeColumn *TreeViewColumn) CellSetCellData(treeModel TreeModeller, iter *TreeIter, isExpander, isExpanded bool)

CellSetCellData sets the cell renderer based on the tree_model and iter. That is, for every attribute mapping in tree_column, it will get a value from the set column on the iter, and use that value to set the attribute on the cell renderer. This is used primarily by the TreeView.

The function takes the following parameters:

  • treeModel to to get the cell renderers attributes from.
  • iter to to get the cell renderer’s attributes from.
  • isExpander: TRUE, if the row has children.
  • isExpanded: TRUE, if the row has visible children.

func (*TreeViewColumn) Clear

func (treeColumn *TreeViewColumn) Clear()

Clear unsets all the mappings on all renderers on the tree_column.

func (*TreeViewColumn) ClearAttributes

func (treeColumn *TreeViewColumn) ClearAttributes(cellRenderer CellRendererer)

ClearAttributes clears all existing attributes previously set with gtk_tree_view_column_set_attributes().

The function takes the following parameters:

  • cellRenderer to clear the attribute mapping on.

func (*TreeViewColumn) Clickable

func (treeColumn *TreeViewColumn) Clickable() bool

Clickable returns TRUE if the user can click on the header for the column.

The function returns the following values:

  • ok: TRUE if user can click the column header.

func (*TreeViewColumn) Clicked

func (treeColumn *TreeViewColumn) Clicked()

Clicked emits the “clicked” signal on the column. This function will only work if tree_column is clickable.

func (*TreeViewColumn) ConnectClicked

func (treeColumn *TreeViewColumn) ConnectClicked(f func()) coreglib.SignalHandle

func (*TreeViewColumn) Expand

func (treeColumn *TreeViewColumn) Expand() bool

Expand returns TRUE if the column expands to fill available space.

The function returns the following values:

  • ok: TRUE if the column expands to fill available space.

func (*TreeViewColumn) FixedWidth

func (treeColumn *TreeViewColumn) FixedWidth() int

FixedWidth gets the fixed width of the column. This may not be the actual displayed width of the column; for that, use gtk_tree_view_column_get_width().

The function returns the following values:

  • gint: fixed width of the column.

func (*TreeViewColumn) FocusCell

func (treeColumn *TreeViewColumn) FocusCell(cell CellRendererer)

FocusCell sets the current keyboard focus to be at cell, if the column contains 2 or more editable and activatable cells.

The function takes the following parameters:

  • cell: CellRenderer.

func (*TreeViewColumn) MaxWidth

func (treeColumn *TreeViewColumn) MaxWidth() int

MaxWidth returns the maximum width in pixels of the tree_column, or -1 if no maximum width is set.

The function returns the following values:

  • gint: maximum width of the tree_column.

func (*TreeViewColumn) MinWidth

func (treeColumn *TreeViewColumn) MinWidth() int

MinWidth returns the minimum width in pixels of the tree_column, or -1 if no minimum width is set.

The function returns the following values:

  • gint: minimum width of the tree_column.

func (*TreeViewColumn) PackEnd

func (treeColumn *TreeViewColumn) PackEnd(cell CellRendererer, expand bool)

PackEnd adds the cell to end of the column. If expand is FALSE, then the cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which expand is TRUE.

The function takes the following parameters:

  • cell: CellRenderer.
  • expand: TRUE if cell is to be given extra space allocated to tree_column.

func (*TreeViewColumn) PackStart

func (treeColumn *TreeViewColumn) PackStart(cell CellRendererer, expand bool)

PackStart packs the cell into the beginning of the column. If expand is FALSE, then the cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which expand is TRUE.

The function takes the following parameters:

  • cell: CellRenderer.
  • expand: TRUE if cell is to be given extra space allocated to tree_column.

func (*TreeViewColumn) QueueResize

func (treeColumn *TreeViewColumn) QueueResize()

QueueResize flags the column, and the cell renderers added to this column, to have their sizes renegotiated.

func (*TreeViewColumn) Reorderable

func (treeColumn *TreeViewColumn) Reorderable() bool

Reorderable returns TRUE if the tree_column can be reordered by the user.

The function returns the following values:

  • ok: TRUE if the tree_column can be reordered by the user.

func (*TreeViewColumn) Resizable

func (treeColumn *TreeViewColumn) Resizable() bool

Resizable returns TRUE if the tree_column can be resized by the end user.

The function returns the following values:

  • ok: TRUE, if the tree_column can be resized.

func (*TreeViewColumn) SetAlignment

func (treeColumn *TreeViewColumn) SetAlignment(xalign float32)

SetAlignment sets the alignment of the title or custom widget inside the column header. The alignment determines its location inside the button -- 0.0 for left, 0.5 for center, 1.0 for right.

The function takes the following parameters:

  • xalign: alignment, which is between [0.0 and 1.0] inclusive.

func (*TreeViewColumn) SetCellDataFunc

func (treeColumn *TreeViewColumn) SetCellDataFunc(cellRenderer CellRendererer, fn TreeCellDataFunc)

SetCellDataFunc sets the TreeCellDataFunc to use for the column. This function is used instead of the standard attributes mapping for setting the column value, and should set the value of tree_column's cell renderer as appropriate. func may be NULL to remove an older one.

The function takes the following parameters:

  • cellRenderer: CellRenderer.
  • fn (optional) to use.

func (*TreeViewColumn) SetClickable

func (treeColumn *TreeViewColumn) SetClickable(clickable bool)

SetClickable sets the header to be active if clickable is TRUE. When the header is active, then it can take keyboard focus, and can be clicked.

The function takes the following parameters:

  • clickable: TRUE if the header is active.

func (*TreeViewColumn) SetExpand

func (treeColumn *TreeViewColumn) SetExpand(expand bool)

SetExpand sets the column to take available extra space. This space is shared equally amongst all columns that have the expand set to TRUE. If no column has this option set, then the last column gets all extra space. By default, every column is created with this FALSE.

Along with “fixed-width”, the “expand” property changes when the column is resized by the user.

The function takes the following parameters:

  • expand: TRUE if the column should expand to fill available space.

func (*TreeViewColumn) SetFixedWidth

func (treeColumn *TreeViewColumn) SetFixedWidth(fixedWidth int)

SetFixedWidth: if fixed_width is not -1, sets the fixed width of tree_column; otherwise unsets it. The effective value of fixed_width is clamped between the minimum and maximum width of the column; however, the value stored in the “fixed-width” property is not clamped. If the column sizing is K_TREE_VIEW_COLUMN_GROW_ONLY or K_TREE_VIEW_COLUMN_AUTOSIZE, setting a fixed width overrides the automatically calculated width. Note that fixed_width is only a hint to GTK+; the width actually allocated to the column may be greater or less than requested.

Along with “expand”, the “fixed-width” property changes when the column is resized by the user.

The function takes the following parameters:

  • fixedWidth: new fixed width, in pixels, or -1.

func (*TreeViewColumn) SetMaxWidth

func (treeColumn *TreeViewColumn) SetMaxWidth(maxWidth int)

SetMaxWidth sets the maximum width of the tree_column. If max_width is -1, then the maximum width is unset. Note, the column can actually be wider than max width if it’s the last column in a view. In this case, the column expands to fill any extra space.

The function takes the following parameters:

  • maxWidth: maximum width of the column in pixels, or -1.

func (*TreeViewColumn) SetMinWidth

func (treeColumn *TreeViewColumn) SetMinWidth(minWidth int)

SetMinWidth sets the minimum width of the tree_column. If min_width is -1, then the minimum width is unset.

The function takes the following parameters:

  • minWidth: minimum width of the column in pixels, or -1.

func (*TreeViewColumn) SetReorderable

func (treeColumn *TreeViewColumn) SetReorderable(reorderable bool)

SetReorderable: if reorderable is TRUE, then the column can be reordered by the end user dragging the header.

The function takes the following parameters:

  • reorderable: TRUE, if the column can be reordered.

func (*TreeViewColumn) SetResizable

func (treeColumn *TreeViewColumn) SetResizable(resizable bool)

SetResizable: if resizable is TRUE, then the user can explicitly resize the column by grabbing the outer edge of the column button. If resizable is TRUE and sizing mode of the column is K_TREE_VIEW_COLUMN_AUTOSIZE, then the sizing mode is changed to K_TREE_VIEW_COLUMN_GROW_ONLY.

The function takes the following parameters:

  • resizable: TRUE, if the column can be resized.

func (*TreeViewColumn) SetSizing

func (treeColumn *TreeViewColumn) SetSizing(typ TreeViewColumnSizing)

SetSizing sets the growth behavior of tree_column to type.

The function takes the following parameters:

  • typ: TreeViewColumnSizing.

func (*TreeViewColumn) SetSortColumnID

func (treeColumn *TreeViewColumn) SetSortColumnID(sortColumnId int)

SetSortColumnID sets the logical sort_column_id that this column sorts on when this column is selected for sorting. Doing so makes the column header clickable.

The function takes the following parameters:

  • sortColumnId: sort_column_id of the model to sort on.

func (*TreeViewColumn) SetSortIndicator

func (treeColumn *TreeViewColumn) SetSortIndicator(setting bool)

SetSortIndicator: call this function with a setting of TRUE to display an arrow in the header button indicating the column is sorted. Call gtk_tree_view_column_set_sort_order() to change the direction of the arrow.

The function takes the following parameters:

  • setting: TRUE to display an indicator that the column is sorted.

func (*TreeViewColumn) SetSortOrder

func (treeColumn *TreeViewColumn) SetSortOrder(order SortType)

SetSortOrder changes the appearance of the sort indicator.

This does not actually sort the model. Use gtk_tree_view_column_set_sort_column_id() if you want automatic sorting support. This function is primarily for custom sorting behavior, and should be used in conjunction with gtk_tree_sortable_set_sort_column_id() to do that. For custom models, the mechanism will vary.

The sort indicator changes direction to indicate normal sort or reverse sort. Note that you must have the sort indicator enabled to see anything when calling this function; see gtk_tree_view_column_set_sort_indicator().

The function takes the following parameters:

  • order: sort order that the sort indicator should indicate.

func (*TreeViewColumn) SetSpacing

func (treeColumn *TreeViewColumn) SetSpacing(spacing int)

SetSpacing sets the spacing field of tree_column, which is the number of pixels to place between cell renderers packed into it.

The function takes the following parameters:

  • spacing: distance between cell renderers in pixels.

func (*TreeViewColumn) SetTitle

func (treeColumn *TreeViewColumn) SetTitle(title string)

SetTitle sets the title of the tree_column. If a custom widget has been set, then this value is ignored.

The function takes the following parameters:

  • title of the tree_column.

func (*TreeViewColumn) SetVisible

func (treeColumn *TreeViewColumn) SetVisible(visible bool)

SetVisible sets the visibility of tree_column.

The function takes the following parameters:

  • visible: TRUE if the tree_column is visible.

func (*TreeViewColumn) SetWidget

func (treeColumn *TreeViewColumn) SetWidget(widget Widgetter)

SetWidget sets the widget in the header to be widget. If widget is NULL, then the header button is set with a Label set to the title of tree_column.

The function takes the following parameters:

  • widget (optional): child Widget, or NULL.

func (*TreeViewColumn) Sizing

func (treeColumn *TreeViewColumn) Sizing() TreeViewColumnSizing

Sizing returns the current type of tree_column.

The function returns the following values:

  • treeViewColumnSizing: type of tree_column.

func (*TreeViewColumn) SortColumnID

func (treeColumn *TreeViewColumn) SortColumnID() int

SortColumnID gets the logical sort_column_id that the model sorts on when this column is selected for sorting. See gtk_tree_view_column_set_sort_column_id().

The function returns the following values:

  • gint: current sort_column_id for this column, or -1 if this column can’t be used for sorting.

func (*TreeViewColumn) SortIndicator

func (treeColumn *TreeViewColumn) SortIndicator() bool

SortIndicator gets the value set by gtk_tree_view_column_set_sort_indicator().

The function returns the following values:

  • ok: whether the sort indicator arrow is displayed.

func (*TreeViewColumn) SortOrder

func (treeColumn *TreeViewColumn) SortOrder() SortType

SortOrder gets the value set by gtk_tree_view_column_set_sort_order().

The function returns the following values:

  • sortType: sort order the sort indicator is indicating.

func (*TreeViewColumn) Spacing

func (treeColumn *TreeViewColumn) Spacing() int

Spacing returns the spacing of tree_column.

The function returns the following values:

  • gint: spacing of tree_column.

func (*TreeViewColumn) Title

func (treeColumn *TreeViewColumn) Title() string

Title returns the title of the widget.

The function returns the following values:

  • utf8: title of the column. This string should not be modified or freed.

func (*TreeViewColumn) TreeView

func (treeColumn *TreeViewColumn) TreeView() Widgetter

TreeView returns the TreeView wherein tree_column has been inserted. If column is currently not inserted in any tree view, NULL is returned.

The function returns the following values:

  • widget (optional): tree view wherein column has been inserted if any, NULL otherwise.

func (*TreeViewColumn) Visible

func (treeColumn *TreeViewColumn) Visible() bool

Visible returns TRUE if tree_column is visible.

The function returns the following values:

  • ok: whether the column is visible or not. If it is visible, then the tree will show the column.

func (*TreeViewColumn) Widget

func (treeColumn *TreeViewColumn) Widget() Widgetter

Widget returns the Widget in the button on the column header. If a custom widget has not been set then NULL is returned.

The function returns the following values:

  • widget (optional) in the column header, or NULL.

func (*TreeViewColumn) Width

func (treeColumn *TreeViewColumn) Width() int

Width returns the current size of tree_column in pixels.

The function returns the following values:

  • gint: current width of tree_column.

func (*TreeViewColumn) XOffset

func (treeColumn *TreeViewColumn) XOffset() int

XOffset returns the current X offset of tree_column in pixels.

The function returns the following values:

  • gint: current X offset of tree_column.

type TreeViewColumnClass added in v0.0.5

type TreeViewColumnClass struct {
	// contains filtered or unexported fields
}

TreeViewColumnClass: instance of this type is always passed by reference.

type TreeViewColumnDropFunc

type TreeViewColumnDropFunc func(treeView *TreeView, column, prevColumn, nextColumn *TreeViewColumn) (ok bool)

TreeViewColumnDropFunc: function type for determining whether column can be dropped in a particular spot (as determined by prev_column and next_column). In left to right locales, prev_column is on the left of the potential drop spot, and next_column is on the right. In right to left mode, this is reversed. This function should return TRUE if the spot is a valid drop spot. Please note that returning TRUE does not actually indicate that the column drop was made, but is meant only to indicate a possible drop spot to the user.

type TreeViewColumnOverrides added in v0.0.5

type TreeViewColumnOverrides struct {
	// Clicked emits the “clicked” signal on the column. This function will only
	// work if tree_column is clickable.
	Clicked func()
}

TreeViewColumnOverrides contains methods that are overridable.

type TreeViewColumnSizing

type TreeViewColumnSizing C.gint

TreeViewColumnSizing: sizing method the column uses to determine its width. Please note that GTK_TREE_VIEW_COLUMN_AUTOSIZE are inefficient for large views, and can make columns appear choppy.

const (
	// TreeViewColumnGrowOnly columns only get bigger in reaction to changes in
	// the model.
	TreeViewColumnGrowOnly TreeViewColumnSizing = iota
	// TreeViewColumnAutosize columns resize to be the optimal size everytime
	// the model changes.
	TreeViewColumnAutosize
	// TreeViewColumnFixed columns are a fixed numbers of pixels wide.
	TreeViewColumnFixed
)

func (TreeViewColumnSizing) String

func (t TreeViewColumnSizing) String() string

String returns the name in string for TreeViewColumnSizing.

type TreeViewDropPosition

type TreeViewDropPosition C.gint

TreeViewDropPosition: enum for determining where a dropped row goes.

const (
	// TreeViewDropBefore: dropped row is inserted before.
	TreeViewDropBefore TreeViewDropPosition = iota
	// TreeViewDropAfter: dropped row is inserted after.
	TreeViewDropAfter
	// TreeViewDropIntoOrBefore: dropped row becomes a child or is inserted
	// before.
	TreeViewDropIntoOrBefore
	// TreeViewDropIntoOrAfter: dropped row becomes a child or is inserted
	// after.
	TreeViewDropIntoOrAfter
)

func (TreeViewDropPosition) String

func (t TreeViewDropPosition) String() string

String returns the name in string for TreeViewDropPosition.

type TreeViewGridLines

type TreeViewGridLines C.gint

TreeViewGridLines: used to indicate which grid lines to draw in a tree view.

const (
	// TreeViewGridLinesNone: no grid lines.
	TreeViewGridLinesNone TreeViewGridLines = iota
	// TreeViewGridLinesHorizontal: horizontal grid lines.
	TreeViewGridLinesHorizontal
	// TreeViewGridLinesVertical: vertical grid lines.
	TreeViewGridLinesVertical
	// TreeViewGridLinesBoth: horizontal and vertical grid lines.
	TreeViewGridLinesBoth
)

func (TreeViewGridLines) String

func (t TreeViewGridLines) String() string

String returns the name in string for TreeViewGridLines.

type TreeViewMappingFunc

type TreeViewMappingFunc func(treeView *TreeView, path *TreePath)

TreeViewMappingFunc: function used for gtk_tree_view_map_expanded_rows().

type TreeViewOverrides added in v0.0.5

type TreeViewOverrides struct {
	ColumnsChanged func()
	CursorChanged  func()
	// The function takes the following parameters:
	//
	//   - logical
	//   - expand
	//   - openAll
	//
	// The function returns the following values:
	//
	ExpandCollapseCursorRow func(logical, expand, openAll bool) bool
	// The function takes the following parameters:
	//
	//   - step
	//   - count
	//
	// The function returns the following values:
	//
	MoveCursor func(step MovementStep, count int) bool
	// RowActivated activates the cell determined by path and column.
	//
	// The function takes the following parameters:
	//
	//   - path to be activated.
	//   - column to be activated.
	//
	RowActivated func(path *TreePath, column *TreeViewColumn)
	// The function takes the following parameters:
	//
	//   - iter
	//   - path
	//
	RowCollapsed func(iter *TreeIter, path *TreePath)
	// The function takes the following parameters:
	//
	//   - iter
	//   - path
	//
	RowExpanded func(iter *TreeIter, path *TreePath)
	// The function returns the following values:
	//
	SelectAll func() bool
	// The function returns the following values:
	//
	SelectCursorParent func() bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	SelectCursorRow func(startEditing bool) bool
	// The function returns the following values:
	//
	StartInteractiveSearch func() bool
	// The function takes the following parameters:
	//
	//   - iter
	//   - path
	//
	// The function returns the following values:
	//
	TestCollapseRow func(iter *TreeIter, path *TreePath) bool
	// The function takes the following parameters:
	//
	//   - iter
	//   - path
	//
	// The function returns the following values:
	//
	TestExpandRow func(iter *TreeIter, path *TreePath) bool
	// The function returns the following values:
	//
	ToggleCursorRow func() bool
	// The function returns the following values:
	//
	UnselectAll func() bool
}

TreeViewOverrides contains methods that are overridable.

type TreeViewRowSeparatorFunc

type TreeViewRowSeparatorFunc func(model TreeModeller, iter *TreeIter) (ok bool)

TreeViewRowSeparatorFunc: function type for determining whether the row pointed to by iter should be rendered as a separator. A common way to implement this is to have a boolean column in the model, whose values the TreeViewRowSeparatorFunc returns.

type TreeViewSearchEqualFunc

type TreeViewSearchEqualFunc func(model TreeModeller, column int, key string, iter *TreeIter) (ok bool)

TreeViewSearchEqualFunc: function used for checking whether a row in model matches a search key string entered by the user. Note the return value is reversed from what you would normally expect, though it has some similarity to strcmp() returning 0 for equal strings.

type TreeViewSearchPositionFunc

type TreeViewSearchPositionFunc func(treeView *TreeView, searchDialog Widgetter)

type UIManager

type UIManager struct {
	*coreglib.Object

	Buildable
	// contains filtered or unexported fields
}

UIManager: > GtkUIManager is deprecated since GTK+ 3.10. To construct user interfaces > from XML definitions, you should use Builder, Model, et al. To > work with actions, use #GAction, Actionable et al. These newer classes > support richer functionality and integration with various desktop shells. > It should be possible to migrate most/all functionality from GtkUIManager.

A UIManager constructs a user interface (menus and toolbars) from one or more UI definitions, which reference actions from one or more action groups.

UI Definitions

The UI definitions are specified in an XML format which can be roughly described by the following DTD.

> Do not confuse the GtkUIManager UI Definitions described here with > the similarly named [GtkBuilder UI Definitions][BUILDER-UI].

<!ELEMENT ui          (menubar|toolbar|popup|accelerator)* >
<!ELEMENT menubar     (menuitem|separator|placeholder|menu)* >
<!ELEMENT menu        (menuitem|separator|placeholder|menu)* >
<!ELEMENT popup       (menuitem|separator|placeholder|menu)* >
<!ELEMENT toolbar     (toolitem|separator|placeholder)* >
<!ELEMENT placeholder (menuitem|toolitem|separator|placeholder|menu)* >
<!ELEMENT menuitem     EMPTY >
<!ELEMENT toolitem     (menu?) >
<!ELEMENT separator    EMPTY >
<!ELEMENT accelerator  EMPTY >
<!ATTLIST menubar      name                      PLIED
                       action                    PLIED >
<!ATTLIST toolbar      name                      PLIED
                       action                    PLIED >
<!ATTLIST popup        name                      PLIED
                       action                    PLIED
                       accelerators (true|false) PLIED >
<!ATTLIST placeholder  name                      PLIED
                       action                    PLIED >
<!ATTLIST separator    name                      PLIED
                       action                    PLIED
                       expand       (true|false) PLIED >
<!ATTLIST menu         name                      PLIED
                       action                    QUIRED
                       position     (top|bot)    PLIED >
<!ATTLIST menuitem     name                      PLIED
                       action                    QUIRED
                       position     (top|bot)    PLIED
                       always-show-image (true|false) PLIED >
<!ATTLIST toolitem     name                      PLIED
                       action                    QUIRED
                       position     (top|bot)    PLIED >
<!ATTLIST accelerator  name                      PLIED
                       action                    QUIRED >

There are some additional restrictions beyond those specified in the DTD, e.g. every toolitem must have a toolbar in its anchestry and every menuitem must have a menubar or popup in its anchestry. Since a Parser is used to parse the UI description, it must not only be valid XML, but valid markup.

If a name is not specified, it defaults to the action. If an action is not specified either, the element name is used. The name and action attributes must not contain “/” characters after parsing (since that would mess up path lookup) and must be usable as XML attributes when enclosed in doublequotes, thus they must not “"” characters or references to the &quot; entity.

A UI definition #

<ui>
  <menubar>
    <menu name="FileMenu" action="FileMenuAction">
      <menuitem name="New" action="New2Action" />
      <placeholder name="FileMenuAdditions" />
    </menu>
    <menu name="JustifyMenu" action="JustifyMenuAction">
      <menuitem name="Left" action="justify-left"/>
      <menuitem name="Centre" action="justify-center"/>
      <menuitem name="Right" action="justify-right"/>
      <menuitem name="Fill" action="justify-fill"/>
    </menu>
  </menubar>
  <toolbar action="toolbar1">
    <placeholder name="JustifyToolItems">
      <separator/>
      <toolitem name="Left" action="justify-left"/>
      <toolitem name="Centre" action="justify-center"/>
      <toolitem name="Right" action="justify-right"/>
      <toolitem name="Fill" action="justify-fill"/>
      <separator/>
    </placeholder>
  </toolbar>
</ui>

The constructed widget hierarchy is very similar to the element tree of the XML, with the exception that placeholders are merged into their parents. The correspondence of XML elements to widgets should be almost obvious:

- menubar

a MenuBar

- toolbar

a Toolbar

- popup

a toplevel Menu

- menu

a Menu attached to a menuitem

- menuitem

a MenuItem subclass, the exact type depends on the action

- toolitem

a ToolItem subclass, the exact type depends on the
action. Note that toolitem elements may contain a menu element,
but only if their associated action specifies a
MenuToolButton as proxy.

- separator

a SeparatorMenuItem or SeparatorToolItem

- accelerator

a keyboard accelerator

The “position” attribute determines where a constructed widget is positioned wrt. to its siblings in the partially constructed tree. If it is “top”, the widget is prepended, otherwise it is appended.

UI Merging

The most remarkable feature of UIManager is that it can overlay a set of menuitems and toolitems over another one, and demerge them later.

Merging is done based on the names of the XML elements. Each element is identified by a path which consists of the names of its anchestors, separated by slashes. For example, the menuitem named “Left” in the example above has the path /ui/menubar/JustifyMenu/Left and the toolitem with the same name has path /ui/toolbar1/JustifyToolItems/Left.

Accelerators #

Every action has an accelerator path. Accelerators are installed together with menuitem proxies, but they can also be explicitly added with <accelerator> elements in the UI definition. This makes it possible to have accelerators for actions even if they have no visible proxies.

Smart Separators

The separators created by UIManager are “smart”, i.e. they do not show up in the UI unless they end up between two visible menu or tool items. Separators which are located at the very beginning or end of the menu or toolbar containing them, or multiple separators next to each other, are hidden. This is a useful feature, since the merging of UI elements from multiple sources can make it hard or impossible to determine in advance whether a separator will end up in such an unfortunate position.

For separators in toolbars, you can set expand="true" to turn them from a small, visible separator to an expanding, invisible one. Toolitems following an expanding separator are effectively right-aligned.

Empty Menus

Submenus pose similar problems to separators inconnection with merging. It is impossible to know in advance whether they will end up empty after merging. UIManager offers two ways to treat empty submenus:

- make them disappear by hiding the menu item they’re attached to

- add an insensitive “Empty” item

The behaviour is chosen based on the “hide_if_empty” property of the action to which the submenu is associated.

GtkUIManager as GtkBuildable

The GtkUIManager implementation of the GtkBuildable interface accepts GtkActionGroup objects as <child> elements in UI definitions.

A GtkUIManager UI definition as described above can be embedded in an GtkUIManager <object> element in a GtkBuilder UI definition.

The widgets that are constructed by a GtkUIManager can be embedded in other parts of the constructed user interface with the help of the “constructor” attribute. See the example below.

An embedded GtkUIManager UI definition

<object class="GtkUIManager" id="uiman">
  <child>
    <object class="GtkActionGroup" id="actiongroup">
      <child>
        <object class="GtkAction" id="file">
          <property name="label">_File</property>
        </object>
      </child>
    </object>
  </child>
  <ui>
    <menubar name="menubar1">
      <menu action="file">
      </menu>
    </menubar>
  </ui>
</object>
<object class="GtkWindow" id="main-window">
  <child>
    <object class="GtkMenuBar" id="menubar1" constructor="uiman"/>
  </child>
</object>.

func NewUIManager deprecated

func NewUIManager() *UIManager

NewUIManager creates a new ui manager object.

Deprecated: since version 3.10.

The function returns the following values:

  • uiManager: new ui manager object.

func (*UIManager) AccelGroup deprecated

func (manager *UIManager) AccelGroup() *AccelGroup

AccelGroup returns the AccelGroup associated with manager.

Deprecated: since version 3.10.

The function returns the following values:

  • accelGroup: AccelGroup.

func (*UIManager) Action deprecated

func (manager *UIManager) Action(path string) *Action

Action looks up an action by following a path. See gtk_ui_manager_get_widget() for more information about paths.

Deprecated: since version 3.10.

The function takes the following parameters:

  • path: path.

The function returns the following values:

  • action whose proxy widget is found by following the path, or NULL if no widget was found.

func (*UIManager) ActionGroups deprecated

func (manager *UIManager) ActionGroups() []*ActionGroup

ActionGroups returns the list of action groups associated with manager.

Deprecated: since version 3.10.

The function returns the following values:

  • list of action groups. The list is owned by GTK+ and should not be modified.

func (*UIManager) AddTearoffs deprecated

func (manager *UIManager) AddTearoffs() bool

AddTearoffs returns whether menus generated by this UIManager will have tearoff menu items.

Deprecated: Tearoff menus are deprecated and should not be used in newly written code.

The function returns the following values:

  • ok: whether tearoff menu items are added.

func (*UIManager) AddUi deprecated

func (manager *UIManager) AddUi(mergeId uint, path, name, action string, typ UIManagerItemType, top bool)

AddUi adds a UI element to the current contents of manager.

If type is GTK_UI_MANAGER_AUTO, GTK+ inserts a menuitem, toolitem or separator if such an element can be inserted at the place determined by path. Otherwise type must indicate an element that can be inserted at the place determined by path.

If path points to a menuitem or toolitem, the new element will be inserted before or after this item, depending on top.

Deprecated: since version 3.10.

The function takes the following parameters:

  • mergeId: merge id for the merged UI, see gtk_ui_manager_new_merge_id().
  • path: path.
  • name for the added UI element.
  • action (optional): name of the action to be proxied, or NULL to add a separator.
  • typ: type of UI element to add.
  • top: if TRUE, the UI element is added before its siblings, otherwise it is added after its siblings.

func (*UIManager) AddUiFromFile deprecated

func (manager *UIManager) AddUiFromFile(filename string) (uint, error)

AddUiFromFile parses a file containing a [UI definition][XML-UI] and merges it with the current contents of manager.

Deprecated: since version 3.10.

The function takes the following parameters:

  • filename: name of the file to parse.

The function returns the following values:

  • guint: merge id for the merged UI. The merge id can be used to unmerge the UI with gtk_ui_manager_remove_ui(). If an error occurred, the return value is 0.

func (*UIManager) AddUiFromResource deprecated

func (manager *UIManager) AddUiFromResource(resourcePath string) (uint, error)

AddUiFromResource parses a resource file containing a [UI definition][XML-UI] and merges it with the current contents of manager.

Deprecated: since version 3.10.

The function takes the following parameters:

  • resourcePath: resource path of the file to parse.

The function returns the following values:

  • guint: merge id for the merged UI. The merge id can be used to unmerge the UI with gtk_ui_manager_remove_ui(). If an error occurred, the return value is 0.

func (*UIManager) AddUiFromString deprecated

func (manager *UIManager) AddUiFromString(buffer string, length int) (uint, error)

AddUiFromString parses a string containing a [UI definition][XML-UI] and merges it with the current contents of manager. An enclosing <ui> element is added if it is missing.

Deprecated: since version 3.10.

The function takes the following parameters:

  • buffer: string to parse.
  • length of buffer (may be -1 if buffer is nul-terminated).

The function returns the following values:

  • guint: merge id for the merged UI. The merge id can be used to unmerge the UI with gtk_ui_manager_remove_ui(). If an error occurred, the return value is 0.

func (*UIManager) ConnectActionsChanged

func (manager *UIManager) ConnectActionsChanged(f func()) coreglib.SignalHandle

ConnectActionsChanged signal is emitted whenever the set of actions changes.

func (*UIManager) ConnectAddWidget

func (manager *UIManager) ConnectAddWidget(f func(widget Widgetter)) coreglib.SignalHandle

ConnectAddWidget signal is emitted for each generated menubar and toolbar. It is not emitted for generated popup menus, which can be obtained by gtk_ui_manager_get_widget().

func (*UIManager) ConnectConnectProxy

func (manager *UIManager) ConnectConnectProxy(f func(action *Action, proxy Widgetter)) coreglib.SignalHandle

ConnectConnectProxy signal is emitted after connecting a proxy to an action in the group.

This is intended for simple customizations for which a custom action class would be too clumsy, e.g. showing tooltips for menuitems in the statusbar.

func (*UIManager) ConnectDisconnectProxy

func (manager *UIManager) ConnectDisconnectProxy(f func(action *Action, proxy Widgetter)) coreglib.SignalHandle

ConnectDisconnectProxy signal is emitted after disconnecting a proxy from an action in the group.

func (*UIManager) ConnectPostActivate

func (manager *UIManager) ConnectPostActivate(f func(action *Action)) coreglib.SignalHandle

ConnectPostActivate signal is emitted just after the action is activated.

This is intended for applications to get notification just after any action is activated.

func (*UIManager) ConnectPreActivate

func (manager *UIManager) ConnectPreActivate(f func(action *Action)) coreglib.SignalHandle

ConnectPreActivate signal is emitted just before the action is activated.

This is intended for applications to get notification just before any action is activated.

func (*UIManager) EnsureUpdate deprecated

func (manager *UIManager) EnsureUpdate()

EnsureUpdate makes sure that all pending updates to the UI have been completed.

This may occasionally be necessary, since UIManager updates the UI in an idle function. A typical example where this function is useful is to enforce that the menubar and toolbar have been added to the main window before showing it:

gtk_container_add (GTK_CONTAINER (window), vbox);
g_signal_connect (merge, "add-widget",
                  G_CALLBACK (add_widget), vbox);
gtk_ui_manager_add_ui_from_file (merge, "my-menus");
gtk_ui_manager_add_ui_from_file (merge, "my-toolbars");
gtk_ui_manager_ensure_update (merge);
gtk_widget_show (window);

Deprecated: since version 3.10.

func (*UIManager) InsertActionGroup deprecated

func (manager *UIManager) InsertActionGroup(actionGroup *ActionGroup, pos int)

InsertActionGroup inserts an action group into the list of action groups associated with manager. Actions in earlier groups hide actions with the same name in later groups.

If pos is larger than the number of action groups in manager, or negative, action_group will be inserted at the end of the internal list.

Deprecated: since version 3.10.

The function takes the following parameters:

  • actionGroup: action group to be inserted.
  • pos: position at which the group will be inserted.

func (*UIManager) NewMergeID deprecated

func (manager *UIManager) NewMergeID() uint

NewMergeID returns an unused merge id, suitable for use with gtk_ui_manager_add_ui().

Deprecated: since version 3.10.

The function returns the following values:

  • guint: unused merge id.

func (*UIManager) RemoveActionGroup deprecated

func (manager *UIManager) RemoveActionGroup(actionGroup *ActionGroup)

RemoveActionGroup removes an action group from the list of action groups associated with manager.

Deprecated: since version 3.10.

The function takes the following parameters:

  • actionGroup: action group to be removed.

func (*UIManager) RemoveUi deprecated

func (manager *UIManager) RemoveUi(mergeId uint)

RemoveUi unmerges the part of manager's content identified by merge_id.

Deprecated: since version 3.10.

The function takes the following parameters:

  • mergeId: merge id as returned by gtk_ui_manager_add_ui_from_string().

func (*UIManager) SetAddTearoffs deprecated

func (manager *UIManager) SetAddTearoffs(addTearoffs bool)

SetAddTearoffs sets the “add_tearoffs” property, which controls whether menus generated by this UIManager will have tearoff menu items.

Note that this only affects regular menus. Generated popup menus never have tearoff menu items.

Deprecated: Tearoff menus are deprecated and should not be used in newly written code.

The function takes the following parameters:

  • addTearoffs: whether tearoff menu items are added.

func (*UIManager) Toplevels deprecated

func (manager *UIManager) Toplevels(types UIManagerItemType) []Widgetter

Toplevels obtains a list of all toplevel widgets of the requested types.

Deprecated: since version 3.10.

The function takes the following parameters:

  • types specifies the types of toplevel widgets to include. Allowed types are K_UI_MANAGER_MENUBAR, K_UI_MANAGER_TOOLBAR and K_UI_MANAGER_POPUP.

The function returns the following values:

  • sList: newly-allocated List of all toplevel widgets of the requested types. Free the returned list with g_slist_free().

func (*UIManager) Ui deprecated

func (manager *UIManager) Ui() string

Ui creates a [UI definition][XML-UI] of the merged UI.

Deprecated: since version 3.10.

The function returns the following values:

  • utf8: newly allocated string containing an XML representation of the merged UI.

func (*UIManager) Widget deprecated

func (manager *UIManager) Widget(path string) Widgetter

Widget looks up a widget by following a path. The path consists of the names specified in the XML description of the UI. separated by “/”. Elements which don’t have a name or action attribute in the XML (e.g. <popup>) can be addressed by their XML element name (e.g. "popup"). The root element ("/ui") can be omitted in the path.

Note that the widget found by following a path that ends in a <menu>; element is the menuitem to which the menu is attached, not the menu it manages.

Also note that the widgets constructed by a ui manager are not tied to the lifecycle of the ui manager. If you add the widgets returned by this function to some container or explicitly ref them, they will survive the destruction of the ui manager.

Deprecated: since version 3.10.

The function takes the following parameters:

  • path: path.

The function returns the following values:

  • widget found by following the path, or NULL if no widget was found.

type UIManagerClass added in v0.0.5

type UIManagerClass struct {
	// contains filtered or unexported fields
}

UIManagerClass: instance of this type is always passed by reference.

type UIManagerItemType deprecated

type UIManagerItemType C.guint

UIManagerItemType: these enumeration values are used by gtk_ui_manager_add_ui() to determine what UI element to create.

Deprecated: since version 3.10.

const (
	// UiManagerAuto: pick the type of the UI element according to context.
	UiManagerAuto UIManagerItemType = 0b0
	// UiManagerMenubar: create a menubar.
	UiManagerMenubar UIManagerItemType = 0b1
	// UiManagerMenu: create a menu.
	UiManagerMenu UIManagerItemType = 0b10
	// UiManagerToolbar: create a toolbar.
	UiManagerToolbar UIManagerItemType = 0b100
	// UiManagerPlaceholder: insert a placeholder.
	UiManagerPlaceholder UIManagerItemType = 0b1000
	// UiManagerPopup: create a popup menu.
	UiManagerPopup UIManagerItemType = 0b10000
	// UiManagerMenuitem: create a menuitem.
	UiManagerMenuitem UIManagerItemType = 0b100000
	// UiManagerToolitem: create a toolitem.
	UiManagerToolitem UIManagerItemType = 0b1000000
	// UiManagerSeparator: create a separator.
	UiManagerSeparator UIManagerItemType = 0b10000000
	// UiManagerAccelerator: install an accelerator.
	UiManagerAccelerator UIManagerItemType = 0b100000000
	// UiManagerPopupWithAccels: same as GTK_UI_MANAGER_POPUP, but the actions’
	// accelerators are shown.
	UiManagerPopupWithAccels UIManagerItemType = 0b1000000000
)

func (UIManagerItemType) Has

Has returns true if u contains other.

func (UIManagerItemType) String

func (u UIManagerItemType) String() string

String returns the names in string for UIManagerItemType.

type UIManagerOverrides added in v0.0.5

type UIManagerOverrides struct {
	ActionsChanged func()
	// The function takes the following parameters:
	//
	AddWidget func(widget Widgetter)
	// The function takes the following parameters:
	//
	//   - action
	//   - proxy
	//
	ConnectProxy func(action *Action, proxy Widgetter)
	// The function takes the following parameters:
	//
	//   - action
	//   - proxy
	//
	DisconnectProxy func(action *Action, proxy Widgetter)
	// Action looks up an action by following a path. See
	// gtk_ui_manager_get_widget() for more information about paths.
	//
	// Deprecated: since version 3.10.
	//
	// The function takes the following parameters:
	//
	//   - path: path.
	//
	// The function returns the following values:
	//
	//   - action whose proxy widget is found by following the path, or NULL if
	//     no widget was found.
	//
	Action func(path string) *Action
	// Widget looks up a widget by following a path. The path consists of the
	// names specified in the XML description of the UI. separated by “/”.
	// Elements which don’t have a name or action attribute in the XML (e.g.
	// <popup>) can be addressed by their XML element name (e.g. "popup").
	// The root element ("/ui") can be omitted in the path.
	//
	// Note that the widget found by following a path that ends in a <menu>;
	// element is the menuitem to which the menu is attached, not the menu it
	// manages.
	//
	// Also note that the widgets constructed by a ui manager are not tied to
	// the lifecycle of the ui manager. If you add the widgets returned by this
	// function to some container or explicitly ref them, they will survive the
	// destruction of the ui manager.
	//
	// Deprecated: since version 3.10.
	//
	// The function takes the following parameters:
	//
	//   - path: path.
	//
	// The function returns the following values:
	//
	//   - widget found by following the path, or NULL if no widget was found.
	//
	Widget func(path string) Widgetter
	// The function takes the following parameters:
	//
	PostActivate func(action *Action)
	// The function takes the following parameters:
	//
	PreActivate func(action *Action)
}

UIManagerOverrides contains methods that are overridable.

type Unit

type Unit C.gint

Unit: see also gtk_print_settings_set_paper_width().

const (
	// UnitNone: no units.
	UnitNone Unit = iota
	// UnitPoints dimensions in points.
	UnitPoints
	// UnitInch dimensions in inches.
	UnitInch
	// UnitMm dimensions in millimeters.
	UnitMm
)

func (Unit) String

func (u Unit) String() string

String returns the name in string for Unit.

type VBox

type VBox struct {
	Box
	// contains filtered or unexported fields
}

VBox is a container that organizes child widgets into a single column.

Use the Box packing interface to determine the arrangement, spacing, height, and alignment of VBox children.

All children are allocated the same width.

GtkVBox has been deprecated. You can use Box with a Orientable:orientation set to GTK_ORIENTATION_VERTICAL instead when calling gtk_box_new(), which is a very quick and easy change.

If you have derived your own classes from GtkVBox, you can change the inheritance to derive directly from Box, and set the Orientable:orientation property to GTK_ORIENTATION_VERTICAL in your instance init function, with a call like:

gtk_orientable_set_orientation (GTK_ORIENTABLE (object),
                                GTK_ORIENTATION_VERTICAL);

If you have a grid-like layout composed of nested boxes, and you don’t need first-child or last-child styling, the recommendation is to switch to Grid. For more information about migrating to Grid, see [Migrating from other containers to GtkGrid][gtk-migrating-GtkGrid].

func NewVBox deprecated

func NewVBox(homogeneous bool, spacing int) *VBox

NewVBox creates a new VBox.

Deprecated: You can use gtk_box_new() with GTK_ORIENTATION_VERTICAL instead, which is a quick and easy change. But the recommendation is to switch to Grid, since Box is going to go away eventually. See [Migrating from other containers to GtkGrid][gtk-migrating-GtkGrid].

The function takes the following parameters:

  • homogeneous: TRUE if all children are to be given equal space allotments.
  • spacing: number of pixels to place by default between children.

The function returns the following values:

  • vBox: new VBox.

type VBoxClass added in v0.0.5

type VBoxClass struct {
	// contains filtered or unexported fields
}

VBoxClass: instance of this type is always passed by reference.

func (*VBoxClass) ParentClass added in v0.0.5

func (v *VBoxClass) ParentClass() *BoxClass

type VBoxOverrides added in v0.0.5

type VBoxOverrides struct {
}

VBoxOverrides contains methods that are overridable.

type VButtonBox

type VButtonBox struct {
	ButtonBox
	// contains filtered or unexported fields
}

func NewVButtonBox deprecated

func NewVButtonBox() *VButtonBox

NewVButtonBox creates a new vertical button box.

Deprecated: Use gtk_button_box_new() with GTK_ORIENTATION_VERTICAL instead.

The function returns the following values:

  • vButtonBox: new button box Widget.

type VButtonBoxClass added in v0.0.5

type VButtonBoxClass struct {
	// contains filtered or unexported fields
}

VButtonBoxClass: instance of this type is always passed by reference.

func (*VButtonBoxClass) ParentClass added in v0.0.5

func (v *VButtonBoxClass) ParentClass() *ButtonBoxClass

type VButtonBoxOverrides added in v0.0.5

type VButtonBoxOverrides struct {
}

VButtonBoxOverrides contains methods that are overridable.

type VPaned

type VPaned struct {
	Paned
	// contains filtered or unexported fields
}

VPaned widget is a container widget with two children arranged vertically. The division between the two panes is adjustable by the user by dragging a handle. See Paned for details.

GtkVPaned has been deprecated, use Paned instead.

func NewVPaned deprecated

func NewVPaned() *VPaned

NewVPaned: create a new VPaned

Deprecated: Use gtk_paned_new() with GTK_ORIENTATION_VERTICAL instead.

The function returns the following values:

  • vPaned: new VPaned.

type VPanedClass added in v0.0.5

type VPanedClass struct {
	// contains filtered or unexported fields
}

VPanedClass: instance of this type is always passed by reference.

func (*VPanedClass) ParentClass added in v0.0.5

func (v *VPanedClass) ParentClass() *PanedClass

type VPanedOverrides added in v0.0.5

type VPanedOverrides struct {
}

VPanedOverrides contains methods that are overridable.

type VScale

type VScale struct {
	Scale
	// contains filtered or unexported fields
}

VScale widget is used to allow the user to select a value using a vertical slider. To create one, use gtk_hscale_new_with_range().

The position to show the current value, and the number of decimal places shown can be set using the parent Scale class’s functions.

GtkVScale has been deprecated, use Scale instead.

func NewVScale deprecated

func NewVScale(adjustment *Adjustment) *VScale

NewVScale creates a new VScale.

Deprecated: Use gtk_scale_new() with GTK_ORIENTATION_VERTICAL instead.

The function takes the following parameters:

  • adjustment which sets the range of the scale.

The function returns the following values:

  • vScale: new VScale.

func NewVScaleWithRange deprecated

func NewVScaleWithRange(min, max, step float64) *VScale

NewVScaleWithRange creates a new vertical scale widget that lets the user input a number between min and max (including min and max) with the increment step. step must be nonzero; it’s the distance the slider moves when using the arrow keys to adjust the scale value.

Note that the way in which the precision is derived works best if step is a power of ten. If the resulting precision is not suitable for your needs, use gtk_scale_set_digits() to correct it.

Deprecated: Use gtk_scale_new_with_range() with GTK_ORIENTATION_VERTICAL instead.

The function takes the following parameters:

  • min: minimum value.
  • max: maximum value.
  • step increment (tick size) used with keyboard shortcuts.

The function returns the following values:

  • vScale: new VScale.

type VScaleClass added in v0.0.5

type VScaleClass struct {
	// contains filtered or unexported fields
}

VScaleClass: instance of this type is always passed by reference.

func (*VScaleClass) ParentClass added in v0.0.5

func (v *VScaleClass) ParentClass() *ScaleClass

type VScaleOverrides added in v0.0.5

type VScaleOverrides struct {
}

VScaleOverrides contains methods that are overridable.

type VScrollbar

type VScrollbar struct {
	Scrollbar
	// contains filtered or unexported fields
}

VScrollbar widget is a widget arranged vertically creating a scrollbar. See Scrollbar for details on scrollbars. Adjustment pointers may be added to handle the adjustment of the scrollbar or it may be left NULL in which case one will be created for you. See Scrollbar for a description of what the fields in an adjustment represent for a scrollbar.

GtkVScrollbar has been deprecated, use Scrollbar instead.

func NewVScrollbar deprecated

func NewVScrollbar(adjustment *Adjustment) *VScrollbar

NewVScrollbar creates a new vertical scrollbar.

Deprecated: Use gtk_scrollbar_new() with GTK_ORIENTATION_VERTICAL instead.

The function takes the following parameters:

  • adjustment (optional) to use, or NULL to create a new adjustment.

The function returns the following values:

  • vScrollbar: new VScrollbar.

type VScrollbarClass added in v0.0.5

type VScrollbarClass struct {
	// contains filtered or unexported fields
}

VScrollbarClass: instance of this type is always passed by reference.

func (*VScrollbarClass) ParentClass added in v0.0.5

func (v *VScrollbarClass) ParentClass() *ScrollbarClass

type VScrollbarOverrides added in v0.0.5

type VScrollbarOverrides struct {
}

VScrollbarOverrides contains methods that are overridable.

type VSeparator

type VSeparator struct {
	Separator
	// contains filtered or unexported fields
}

VSeparator widget is a vertical separator, used to group the widgets within a window. It displays a vertical line with a shadow to make it appear sunken into the interface.

GtkVSeparator has been deprecated, use Separator instead.

func NewVSeparator deprecated

func NewVSeparator() *VSeparator

NewVSeparator creates a new VSeparator.

Deprecated: Use gtk_separator_new() with GTK_ORIENTATION_VERTICAL instead.

The function returns the following values:

  • vSeparator: new VSeparator.

type VSeparatorClass added in v0.0.5

type VSeparatorClass struct {
	// contains filtered or unexported fields
}

VSeparatorClass: instance of this type is always passed by reference.

func (*VSeparatorClass) ParentClass added in v0.0.5

func (v *VSeparatorClass) ParentClass() *SeparatorClass

type VSeparatorOverrides added in v0.0.5

type VSeparatorOverrides struct {
}

VSeparatorOverrides contains methods that are overridable.

type Viewport

type Viewport struct {
	Bin

	*coreglib.Object
	Scrollable
	// contains filtered or unexported fields
}

Viewport widget acts as an adaptor class, implementing scrollability for child widgets that lack their own scrolling capabilities. Use GtkViewport to scroll child widgets such as Grid, Box, and so on.

If a widget has native scrolling abilities, such as TextView, TreeView or IconView, it can be added to a ScrolledWindow with gtk_container_add(). If a widget does not, you must first add the widget to a Viewport, then add the viewport to the scrolled window. gtk_container_add() does this automatically if a child that does not implement Scrollable is added to a ScrolledWindow, so you can ignore the presence of the viewport.

The GtkViewport will start scrolling content only if allocated less than the child widget’s minimum size in a given orientation.

CSS nodes

GtkViewport has a single CSS node with name viewport.

func NewViewport

func NewViewport(hadjustment, vadjustment *Adjustment) *Viewport

NewViewport creates a new Viewport with the given adjustments, or with default adjustments if none are given.

The function takes the following parameters:

  • hadjustment (optional): horizontal adjustment.
  • vadjustment (optional): vertical adjustment.

The function returns the following values:

  • viewport: new Viewport.

func (*Viewport) BinWindow

func (viewport *Viewport) BinWindow() gdk.Windower

BinWindow gets the bin window of the Viewport.

The function returns the following values:

  • window: Window.

func (*Viewport) HAdjustment deprecated

func (viewport *Viewport) HAdjustment() *Adjustment

HAdjustment returns the horizontal adjustment of the viewport.

Deprecated: Use gtk_scrollable_get_hadjustment().

The function returns the following values:

  • adjustment: horizontal adjustment of viewport.

func (*Viewport) SetHAdjustment deprecated

func (viewport *Viewport) SetHAdjustment(adjustment *Adjustment)

SetHAdjustment sets the horizontal adjustment of the viewport.

Deprecated: Use gtk_scrollable_set_hadjustment().

The function takes the following parameters:

  • adjustment (optional): Adjustment.

func (*Viewport) SetShadowType

func (viewport *Viewport) SetShadowType(typ ShadowType)

SetShadowType sets the shadow type of the viewport.

The function takes the following parameters:

  • typ: new shadow type.

func (*Viewport) SetVAdjustment deprecated

func (viewport *Viewport) SetVAdjustment(adjustment *Adjustment)

SetVAdjustment sets the vertical adjustment of the viewport.

Deprecated: Use gtk_scrollable_set_vadjustment().

The function takes the following parameters:

  • adjustment (optional): Adjustment.

func (*Viewport) ShadowType

func (viewport *Viewport) ShadowType() ShadowType

ShadowType gets the shadow type of the Viewport. See gtk_viewport_set_shadow_type().

The function returns the following values:

  • shadowType: shadow type.

func (*Viewport) VAdjustment deprecated

func (viewport *Viewport) VAdjustment() *Adjustment

VAdjustment returns the vertical adjustment of the viewport.

Deprecated: Use gtk_scrollable_get_vadjustment().

The function returns the following values:

  • adjustment: vertical adjustment of viewport.

func (*Viewport) ViewWindow

func (viewport *Viewport) ViewWindow() gdk.Windower

ViewWindow gets the view window of the Viewport.

The function returns the following values:

  • window: Window.

type ViewportClass added in v0.0.5

type ViewportClass struct {
	// contains filtered or unexported fields
}

ViewportClass: instance of this type is always passed by reference.

func (*ViewportClass) ParentClass added in v0.0.5

func (v *ViewportClass) ParentClass() *BinClass

ParentClass: parent class.

type ViewportOverrides added in v0.0.5

type ViewportOverrides struct {
}

ViewportOverrides contains methods that are overridable.

type VolumeButton

type VolumeButton struct {
	ScaleButton
	// contains filtered or unexported fields
}

VolumeButton is a subclass of ScaleButton that has been tailored for use as a volume control widget with suitable icons, tooltips and accessible labels.

func NewVolumeButton

func NewVolumeButton() *VolumeButton

NewVolumeButton creates a VolumeButton, with a range between 0.0 and 1.0, with a stepping of 0.02. Volume values can be obtained and modified using the functions from ScaleButton.

The function returns the following values:

  • volumeButton: new VolumeButton.

type VolumeButtonClass added in v0.0.5

type VolumeButtonClass struct {
	// contains filtered or unexported fields
}

VolumeButtonClass: instance of this type is always passed by reference.

func (*VolumeButtonClass) ParentClass added in v0.0.5

func (v *VolumeButtonClass) ParentClass() *ScaleButtonClass

type VolumeButtonOverrides added in v0.0.5

type VolumeButtonOverrides struct {
}

VolumeButtonOverrides contains methods that are overridable.

type Widget

type Widget struct {
	coreglib.InitiallyUnowned

	*coreglib.Object
	atk.ImplementorIface
	Buildable
	// contains filtered or unexported fields
}

Widget is the base class all widgets in GTK+ derive from. It manages the widget lifecycle, states and style.

Height-for-width Geometry Management

GTK+ uses a height-for-width (and width-for-height) geometry management system. Height-for-width means that a widget can change how much vertical space it needs, depending on the amount of horizontal space that it is given (and similar for width-for-height). The most common example is a label that reflows to fill up the available width, wraps to fewer lines, and therefore needs less height.

Height-for-width geometry management is implemented in GTK+ by way of five virtual methods:

- WidgetClass.get_request_mode()

- WidgetClass.get_preferred_width()

- WidgetClass.get_preferred_height()

- WidgetClass.get_preferred_height_for_width()

- WidgetClass.get_preferred_width_for_height()

- WidgetClass.get_preferred_height_and_baseline_for_width()

There are some important things to keep in mind when implementing height-for-width and when using it in container implementations.

The geometry management system will query a widget hierarchy in only one orientation at a time. When widgets are initially queried for their minimum sizes it is generally done in two initial passes in the SizeRequestMode chosen by the toplevel.

For example, when queried in the normal GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH mode: First, the default minimum and natural width for each widget in the interface will be computed using gtk_widget_get_preferred_width(). Because the preferred widths for each container depend on the preferred widths of their children, this information propagates up the hierarchy, and finally a minimum and natural width is determined for the entire toplevel. Next, the toplevel will use the minimum width to query for the minimum height contextual to that width using gtk_widget_get_preferred_height_for_width(), which will also be a highly recursive operation. The minimum height for the minimum width is normally used to set the minimum size constraint on the toplevel (unless gtk_window_set_geometry_hints() is explicitly used instead).

After the toplevel window has initially requested its size in both dimensions it can go on to allocate itself a reasonable size (or a size previously specified with gtk_window_set_default_size()). During the recursive allocation process it’s important to note that request cycles will be recursively executed while container widgets allocate their children. Each container widget, once allocated a size, will go on to first share the space in one orientation among its children and then request each child's height for its target allocated width or its width for allocated height, depending. In this way a Widget will typically be requested its size a number of times before actually being allocated a size. The size a widget is finally allocated can of course differ from the size it has requested. For this reason, Widget caches a small number of results to avoid re-querying for the same sizes in one allocation cycle.

See [GtkContainer’s geometry management section][container-geometry-management] to learn more about how height-for-width allocations are performed by container widgets.

If a widget does move content around to intelligently use up the allocated size then it must support the request in both SizeRequestModes even if the widget in question only trades sizes in a single orientation.

For instance, a Label that does height-for-width word wrapping will not expect to have WidgetClass.get_preferred_height() called because that call is specific to a width-for-height request. In this case the label must return the height required for its own minimum possible width. By following this rule any widget that handles height-for-width or width-for-height requests will always be allocated at least enough space to fit its own content.

Here are some examples of how a GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH widget generally deals with width-for-height requests, for WidgetClass.get_preferred_height() it will do:

// the signal handler has the instance and user data swapped
// because of the swapped="yes" attribute in the template XML
static void
hello_button_clicked (FooWidget *self,
                      GtkButton *button)
{
  g_print ("Hello, world!\n");
}

static void
foo_widget_class_init (FooWidgetClass *klass)
{
  // ...
  gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass),
                                               "/com/example/ui/foowidget.ui");
  gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), hello_button_clicked);
}.

func BaseWidget

func BaseWidget(obj Widgetter) *Widget

BaseWidget returns the underlying base object.

func (*Widget) Accessible

func (widget *Widget) Accessible() *atk.AtkObject

Accessible returns the accessible object that describes the widget to an assistive technology.

If accessibility support is not available, this Object instance may be a no-op. Likewise, if no class-specific Object implementation is available for the widget instance in question, it will inherit an Object implementation from the first ancestor class for which such an implementation is defined.

The documentation of the ATK (http://developer.gnome.org/atk/stable/) library contains more information about accessible objects and their uses.

The function returns the following values:

  • object associated with widget.

func (*Widget) ActionGroup

func (widget *Widget) ActionGroup(prefix string) *gio.ActionGroup

ActionGroup retrieves the Group that was registered using prefix. The resulting Group may have been registered to widget or any Widget in its ancestry.

If no action group was found matching prefix, then NULL is returned.

The function takes the following parameters:

  • prefix: “prefix” of the action group.

The function returns the following values:

  • actionGroup (optional) or NULL.

func (*Widget) Activate

func (widget *Widget) Activate() bool

Activate: for widgets that can be “activated” (buttons, menu items, etc.) this function activates them. Activation is what happens when you press Enter on a widget during key navigation. If widget isn't activatable, the function returns FALSE.

The function returns the following values:

  • ok: TRUE if the widget was activatable.

func (*Widget) AddAccelerator

func (widget *Widget) AddAccelerator(accelSignal string, accelGroup *AccelGroup, accelKey uint, accelMods gdk.ModifierType, accelFlags AccelFlags)

AddAccelerator installs an accelerator for this widget in accel_group that causes accel_signal to be emitted if the accelerator is activated. The accel_group needs to be added to the widget’s toplevel via gtk_window_add_accel_group(), and the signal must be of type G_SIGNAL_ACTION. Accelerators added through this function are not user changeable during runtime. If you want to support accelerators that can be changed by the user, use gtk_accel_map_add_entry() and gtk_widget_set_accel_path() or gtk_menu_item_set_accel_path() instead.

The function takes the following parameters:

  • accelSignal: widget signal to emit on accelerator activation.
  • accelGroup: accel group for this widget, added to its toplevel.
  • accelKey: GDK keyval of the accelerator.
  • accelMods: modifier key combination of the accelerator.
  • accelFlags: flag accelerators, e.g. GTK_ACCEL_VISIBLE.

func (*Widget) AddDeviceEvents

func (widget *Widget) AddDeviceEvents(device gdk.Devicer, events gdk.EventMask)

AddDeviceEvents adds the device events in the bitfield events to the event mask for widget. See gtk_widget_set_device_events() for details.

The function takes the following parameters:

  • device: Device.
  • events: event mask, see EventMask.

func (*Widget) AddEvents

func (widget *Widget) AddEvents(events int)

AddEvents adds the events in the bitfield events to the event mask for widget. See gtk_widget_set_events() and the [input handling overview][event-masks] for details.

The function takes the following parameters:

  • events: event mask, see EventMask.

func (*Widget) AddMnemonicLabel

func (widget *Widget) AddMnemonicLabel(label Widgetter)

AddMnemonicLabel adds a widget to the list of mnemonic labels for this widget. (See gtk_widget_list_mnemonic_labels()). Note the list of mnemonic labels for the widget is cleared when the widget is destroyed, so the caller must make sure to update its internal state at this point as well, by using a connection to the Widget::destroy signal or a weak notifier.

The function takes the following parameters:

  • label that acts as a mnemonic label for widget.

func (*Widget) AddTickCallback

func (widget *Widget) AddTickCallback(callback TickCallback) uint

AddTickCallback queues an animation frame update and adds a callback to be called before each frame. Until the tick callback is removed, it will be called frequently (usually at the frame rate of the output device or as quickly as the application can be repainted, whichever is slower). For this reason, is most suitable for handling graphics that change every frame or every few frames. The tick callback does not automatically imply a relayout or repaint. If you want a repaint or relayout, and aren’t changing widget properties that would trigger that (for example, changing the text of a Label), then you will have to call gtk_widget_queue_resize() or gtk_widget_queue_draw_area() yourself.

gdk_frame_clock_get_frame_time() should generally be used for timing continuous animations and gdk_frame_timings_get_predicted_presentation_time() if you are trying to display isolated frames at particular times.

This is a more convenient alternative to connecting directly to the FrameClock::update signal of FrameClock, since you don't have to worry about when a FrameClock is assigned to a widget.

The function takes the following parameters:

  • callback: function to call for updating animations.

The function returns the following values:

  • guint: id for the connection of this callback. Remove the callback by passing it to gtk_widget_remove_tick_callback().

func (*Widget) AllocatedBaseline

func (widget *Widget) AllocatedBaseline() int

AllocatedBaseline returns the baseline that has currently been allocated to widget. This function is intended to be used when implementing handlers for the Widget::draw function, and when allocating child widgets in Widget::size_allocate.

The function returns the following values:

  • gint: baseline of the widget, or -1 if none.

func (*Widget) AllocatedHeight

func (widget *Widget) AllocatedHeight() int

AllocatedHeight returns the height that has currently been allocated to widget. This function is intended to be used when implementing handlers for the Widget::draw function.

The function returns the following values:

  • gint: height of the widget.

func (*Widget) AllocatedSize

func (widget *Widget) AllocatedSize() (*Allocation, int)

AllocatedSize retrieves the widget’s allocated size.

This function returns the last values passed to gtk_widget_size_allocate_with_baseline(). The value differs from the size returned in gtk_widget_get_allocation() in that functions like gtk_widget_set_halign() can adjust the allocation, but not the value returned by this function.

If a widget is not visible, its allocated size is 0.

The function returns the following values:

  • allocation: pointer to a Allocation to copy to.
  • baseline (optional): pointer to an integer to copy to.

func (*Widget) AllocatedWidth

func (widget *Widget) AllocatedWidth() int

AllocatedWidth returns the width that has currently been allocated to widget. This function is intended to be used when implementing handlers for the Widget::draw function.

The function returns the following values:

  • gint: width of the widget.

func (*Widget) Allocation

func (widget *Widget) Allocation() *Allocation

Allocation retrieves the widget’s allocation.

Note, when implementing a Container: a widget’s allocation will be its “adjusted” allocation, that is, the widget’s parent container typically calls gtk_widget_size_allocate() with an allocation, and that allocation is then adjusted (to handle margin and alignment for example) before assignment to the widget. gtk_widget_get_allocation() returns the adjusted allocation that was actually assigned to the widget. The adjusted allocation is guaranteed to be completely contained within the gtk_widget_size_allocate() allocation, however. So a Container is guaranteed that its children stay inside the assigned bounds, but not that they have exactly the bounds the container assigned. There is no way to get the original allocation assigned by gtk_widget_size_allocate(), since it isn’t stored; if a container implementation needs that information it will have to track it itself.

The function returns the following values:

  • allocation: pointer to a Allocation to copy to.

func (*Widget) Ancestor

func (widget *Widget) Ancestor(widgetType coreglib.Type) Widgetter

Ancestor gets the first ancestor of widget with type widget_type. For example, gtk_widget_get_ancestor (widget, GTK_TYPE_BOX) gets the first Box that’s an ancestor of widget. No reference will be added to the returned widget; it should not be unreferenced. See note about checking for a toplevel Window in the docs for gtk_widget_get_toplevel().

Note that unlike gtk_widget_is_ancestor(), gtk_widget_get_ancestor() considers widget to be an ancestor of itself.

The function takes the following parameters:

  • widgetType: ancestor type.

The function returns the following values:

  • ret (optional): ancestor widget, or NULL if not found.

func (*Widget) AppPaintable

func (widget *Widget) AppPaintable() bool

AppPaintable determines whether the application intends to draw on the widget in an Widget::draw handler.

See gtk_widget_set_app_paintable().

The function returns the following values:

  • ok: TRUE if the widget is app paintable.

func (*Widget) CanActivateAccel

func (widget *Widget) CanActivateAccel(signalId uint) bool

CanActivateAccel determines whether an accelerator that activates the signal identified by signal_id can currently be activated. This is done by emitting the Widget::can-activate-accel signal on widget; if the signal isn’t overridden by a handler or in a derived widget, then the default check is that the widget must be sensitive, and the widget and all its ancestors mapped.

The function takes the following parameters:

  • signalId: ID of a signal installed on widget.

The function returns the following values:

  • ok: TRUE if the accelerator can be activated.

func (*Widget) CanDefault

func (widget *Widget) CanDefault() bool

CanDefault determines whether widget can be a default widget. See gtk_widget_set_can_default().

The function returns the following values:

  • ok: TRUE if widget can be a default widget, FALSE otherwise.

func (*Widget) CanFocus

func (widget *Widget) CanFocus() bool

CanFocus determines whether widget can own the input focus. See gtk_widget_set_can_focus().

The function returns the following values:

  • ok: TRUE if widget can own the input focus, FALSE otherwise.

func (*Widget) ChildFocus

func (widget *Widget) ChildFocus(direction DirectionType) bool

ChildFocus: this function is used by custom widget implementations; if you're writing an app, you’d use gtk_widget_grab_focus() to move the focus to a particular widget, and gtk_container_set_focus_chain() to change the focus tab order. So you may want to investigate those functions instead.

gtk_widget_child_focus() is called by containers as the user moves around the window using keyboard shortcuts. direction indicates what kind of motion is taking place (up, down, left, right, tab forward, tab backward). gtk_widget_child_focus() emits the Widget::focus signal; widgets override the default handler for this signal in order to implement appropriate focus behavior.

The default ::focus handler for a widget should return TRUE if moving in direction left the focus on a focusable location inside that widget, and FALSE if moving in direction moved the focus outside the widget. If returning TRUE, widgets normally call gtk_widget_grab_focus() to place the focus accordingly; if returning FALSE, they don’t modify the current focus location.

The function takes the following parameters:

  • direction of focus movement.

The function returns the following values:

  • ok: TRUE if focus ended up inside widget.

func (*Widget) ChildNotify

func (widget *Widget) ChildNotify(childProperty string)

ChildNotify emits a Widget::child-notify signal for the [child property][child-properties] child_property on widget.

This is the analogue of g_object_notify() for child properties.

Also see gtk_container_child_notify().

The function takes the following parameters:

  • childProperty: name of a child property installed on the class of widget’s parent.

func (*Widget) ChildRequisition deprecated

func (widget *Widget) ChildRequisition() *Requisition

ChildRequisition: this function is only for use in widget implementations. Obtains widget->requisition, unless someone has forced a particular geometry on the widget (e.g. with gtk_widget_set_size_request()), in which case it returns that geometry instead of the widget's requisition.

This function differs from gtk_widget_size_request() in that it retrieves the last size request value from widget->requisition, while gtk_widget_size_request() actually calls the "size_request" method on widget to compute the size request and fill in widget->requisition, and only then returns widget->requisition.

Because this function does not call the “size_request” method, it can only be used when you know that widget->requisition is up-to-date, that is, gtk_widget_size_request() has been called since the last time a resize was queued. In general, only container implementations have this information; applications should use gtk_widget_size_request().

Deprecated: Use gtk_widget_get_preferred_size() instead.

The function returns the following values:

  • requisition to be filled in.

func (*Widget) ChildVisible

func (widget *Widget) ChildVisible() bool

ChildVisible gets the value set with gtk_widget_set_child_visible(). If you feel a need to use this function, your code probably needs reorganization.

This function is only useful for container implementations and never should be called by an application.

The function returns the following values:

  • ok: TRUE if the widget is mapped with the parent.

func (*Widget) ClassPath deprecated

func (widget *Widget) ClassPath() (pathLength uint, path, pathReversed string)

ClassPath: same as gtk_widget_path(), but always uses the name of a widget’s type, never uses a custom name set with gtk_widget_set_name().

Deprecated: Use gtk_widget_get_path() instead.

The function returns the following values:

  • pathLength (optional): location to store the length of the class path, or NULL.
  • path (optional): location to store the class path as an allocated string, or NULL.
  • pathReversed (optional): location to store the reverse class path as an allocated string, or NULL.

func (*Widget) Clip

func (widget *Widget) Clip() *Allocation

Clip retrieves the widget’s clip area.

The clip area is the area in which all of widget's drawing will happen. Other toolkits call it the bounding box.

Historically, in GTK+ the clip area has been equal to the allocation retrieved via gtk_widget_get_allocation().

The function returns the following values:

  • clip: pointer to a Allocation to copy to.

func (*Widget) CompositeName deprecated

func (widget *Widget) CompositeName() string

CompositeName obtains the composite name of a widget.

Deprecated: Use gtk_widget_class_set_template(), or don’t use this API at all.

The function returns the following values:

  • utf8: composite name of widget, or NULL if widget is not a composite child. The string should be freed when it is no longer needed.

func (*Widget) ComputeExpand

func (widget *Widget) ComputeExpand(orientation Orientation) bool

ComputeExpand computes whether a container should give this widget extra space when possible. Containers should check this, rather than looking at gtk_widget_get_hexpand() or gtk_widget_get_vexpand().

This function already checks whether the widget is visible, so visibility does not need to be checked separately. Non-visible widgets are not expanded.

The computed expand value uses either the expand setting explicitly set on the widget itself, or, if none has been explicitly set, the widget may expand if some of its children do.

The function takes the following parameters:

  • orientation: expand direction.

The function returns the following values:

  • ok: whether widget tree rooted here should be expanded.

func (*Widget) ConnectAccelClosuresChanged

func (widget *Widget) ConnectAccelClosuresChanged(f func()) coreglib.SignalHandle

func (*Widget) ConnectButtonPressEvent

func (widget *Widget) ConnectButtonPressEvent(f func(event *gdk.EventButton) (ok bool)) coreglib.SignalHandle

ConnectButtonPressEvent signal will be emitted when a button (typically from a mouse) is pressed.

To receive this signal, the Window associated to the widget needs to enable the K_BUTTON_PRESS_MASK mask.

This signal will be sent to the grab widget if there is one.

func (*Widget) ConnectButtonReleaseEvent

func (widget *Widget) ConnectButtonReleaseEvent(f func(event *gdk.EventButton) (ok bool)) coreglib.SignalHandle

ConnectButtonReleaseEvent signal will be emitted when a button (typically from a mouse) is released.

To receive this signal, the Window associated to the widget needs to enable the K_BUTTON_RELEASE_MASK mask.

This signal will be sent to the grab widget if there is one.

func (*Widget) ConnectCanActivateAccel

func (widget *Widget) ConnectCanActivateAccel(f func(signalId uint) (ok bool)) coreglib.SignalHandle

ConnectCanActivateAccel determines whether an accelerator that activates the signal identified by signal_id can currently be activated. This signal is present to allow applications and derived widgets to override the default Widget handling for determining whether an accelerator can be activated.

func (*Widget) ConnectCompositedChanged

func (widget *Widget) ConnectCompositedChanged(f func()) coreglib.SignalHandle

ConnectCompositedChanged signal is emitted when the composited status of widgets screen changes. See gdk_screen_is_composited().

func (*Widget) ConnectConfigureEvent

func (widget *Widget) ConnectConfigureEvent(f func(event *gdk.EventConfigure) (ok bool)) coreglib.SignalHandle

ConnectConfigureEvent signal will be emitted when the size, position or stacking of the widget's window has changed.

To receive this signal, the Window associated to the widget needs to enable the K_STRUCTURE_MASK mask. GDK will enable this mask automatically for all new windows.

func (*Widget) ConnectDamageEvent

func (widget *Widget) ConnectDamageEvent(f func(event *gdk.EventExpose) (ok bool)) coreglib.SignalHandle

ConnectDamageEvent is emitted when a redirected window belonging to widget gets drawn into. The region/area members of the event shows what area of the redirected drawable was drawn into.

func (*Widget) ConnectDeleteEvent

func (widget *Widget) ConnectDeleteEvent(f func(event *gdk.Event) (ok bool)) coreglib.SignalHandle

ConnectDeleteEvent signal is emitted if a user requests that a toplevel window is closed. The default handler for this signal destroys the window. Connecting gtk_widget_hide_on_delete() to this signal will cause the window to be hidden instead, so that it can later be shown again without reconstructing it.

func (*Widget) ConnectDestroy

func (widget *Widget) ConnectDestroy(f func()) coreglib.SignalHandle

ConnectDestroy signals that all holders of a reference to the widget should release the reference that they hold. May result in finalization of the widget if all references are released.

This signal is not suitable for saving widget state.

func (*Widget) ConnectDestroyEvent

func (widget *Widget) ConnectDestroyEvent(f func(event *gdk.Event) (ok bool)) coreglib.SignalHandle

ConnectDestroyEvent signal is emitted when a Window is destroyed. You rarely get this signal, because most widgets disconnect themselves from their window before they destroy it, so no widget owns the window at destroy time.

To receive this signal, the Window associated to the widget needs to enable the K_STRUCTURE_MASK mask. GDK will enable this mask automatically for all new windows.

func (*Widget) ConnectDirectionChanged

func (widget *Widget) ConnectDirectionChanged(f func(previousDirection TextDirection)) coreglib.SignalHandle

ConnectDirectionChanged signal is emitted when the text direction of a widget changes.

func (*Widget) ConnectDragBegin

func (widget *Widget) ConnectDragBegin(f func(context *gdk.DragContext)) coreglib.SignalHandle

ConnectDragBegin signal is emitted on the drag source when a drag is started. A typical reason to connect to this signal is to set up a custom drag icon with e.g. gtk_drag_source_set_icon_pixbuf().

Note that some widgets set up a drag icon in the default handler of this signal, so you may have to use g_signal_connect_after() to override what the default handler did.

func (*Widget) ConnectDragDataDelete

func (widget *Widget) ConnectDragDataDelete(f func(context *gdk.DragContext)) coreglib.SignalHandle

ConnectDragDataDelete signal is emitted on the drag source when a drag with the action GDK_ACTION_MOVE is successfully completed. The signal handler is responsible for deleting the data that has been dropped. What "delete" means depends on the context of the drag operation.

func (*Widget) ConnectDragDataGet

func (widget *Widget) ConnectDragDataGet(f func(context *gdk.DragContext, data *SelectionData, info, time uint)) coreglib.SignalHandle

ConnectDragDataGet signal is emitted on the drag source when the drop site requests the data which is dragged. It is the responsibility of the signal handler to fill data with the data in the format which is indicated by info. See gtk_selection_data_set() and gtk_selection_data_set_text().

func (*Widget) ConnectDragDataReceived

func (widget *Widget) ConnectDragDataReceived(f func(context *gdk.DragContext, x, y int, data *SelectionData, info, time uint)) coreglib.SignalHandle

ConnectDragDataReceived signal is emitted on the drop site when the dragged data has been received. If the data was received in order to determine whether the drop will be accepted, the handler is expected to call gdk_drag_status() and not finish the drag. If the data was received in response to a Widget::drag-drop signal (and this is the last target to be received), the handler for this signal is expected to process the received data and then call gtk_drag_finish(), setting the success parameter depending on whether the data was processed successfully.

Applications must create some means to determine why the signal was emitted and therefore whether to call gdk_drag_status() or gtk_drag_finish().

The handler may inspect the selected action with gdk_drag_context_get_selected_action() before calling gtk_drag_finish(), e.g. to implement GDK_ACTION_ASK as shown in the following example:

void
drag_data_received (GtkWidget          *widget,
                    GdkDragContext     *context,
                    gint                x,
                    gint                y,
                    GtkSelectionData   *data,
                    guint               info,
                    guint               time)
{
  if ((data->length >= 0) && (data->format == 8))
    {
      GdkDragAction action;

      // handle data here

      action = gdk_drag_context_get_selected_action (context);
      if (action == GDK_ACTION_ASK)
        {
          GtkWidget *dialog;
          gint response;

          dialog = gtk_message_dialog_new (NULL,
                                           GTK_DIALOG_MODAL |
                                           GTK_DIALOG_DESTROY_WITH_PARENT,
                                           GTK_MESSAGE_INFO,
                                           GTK_BUTTONS_YES_NO,
                                           "Move the data ?\n");
          response = gtk_dialog_run (GTK_DIALOG (dialog));
          gtk_widget_destroy (dialog);

          if (response == GTK_RESPONSE_YES)
            action = GDK_ACTION_MOVE;
          else
            action = GDK_ACTION_COPY;
         }

      gtk_drag_finish (context, TRUE, action == GDK_ACTION_MOVE, time);
    }
  else
    gtk_drag_finish (context, FALSE, FALSE, time);
 }.

func (*Widget) ConnectDragDrop

func (widget *Widget) ConnectDragDrop(f func(context *gdk.DragContext, x, y int, time uint) (ok bool)) coreglib.SignalHandle

ConnectDragDrop signal is emitted on the drop site when the user drops the data onto the widget. The signal handler must determine whether the cursor position is in a drop zone or not. If it is not in a drop zone, it returns FALSE and no further processing is necessary. Otherwise, the handler returns TRUE. In this case, the handler must ensure that gtk_drag_finish() is called to let the source know that the drop is done. The call to gtk_drag_finish() can be done either directly or in a Widget::drag-data-received handler which gets triggered by calling gtk_drag_get_data() to receive the data for one or more of the supported targets.

func (*Widget) ConnectDragEnd

func (widget *Widget) ConnectDragEnd(f func(context *gdk.DragContext)) coreglib.SignalHandle

ConnectDragEnd signal is emitted on the drag source when a drag is finished. A typical reason to connect to this signal is to undo things done in Widget::drag-begin.

func (*Widget) ConnectDragFailed

func (widget *Widget) ConnectDragFailed(f func(context *gdk.DragContext, result DragResult) (ok bool)) coreglib.SignalHandle

ConnectDragFailed signal is emitted on the drag source when a drag has failed. The signal handler may hook custom code to handle a failed DnD operation based on the type of error, it returns TRUE is the failure has been already handled (not showing the default "drag operation failed" animation), otherwise it returns FALSE.

func (*Widget) ConnectDragLeave

func (widget *Widget) ConnectDragLeave(f func(context *gdk.DragContext, time uint)) coreglib.SignalHandle

ConnectDragLeave signal is emitted on the drop site when the cursor leaves the widget. A typical reason to connect to this signal is to undo things done in Widget::drag-motion, e.g. undo highlighting with gtk_drag_unhighlight().

Likewise, the Widget::drag-leave signal is also emitted before the ::drag-drop signal, for instance to allow cleaning up of a preview item created in the Widget::drag-motion signal handler.

func (*Widget) ConnectDragMotion

func (widget *Widget) ConnectDragMotion(f func(context *gdk.DragContext, x, y int, time uint) (ok bool)) coreglib.SignalHandle

ConnectDragMotion signal is emitted on the drop site when the user moves the cursor over the widget during a drag. The signal handler must determine whether the cursor position is in a drop zone or not. If it is not in a drop zone, it returns FALSE and no further processing is necessary. Otherwise, the handler returns TRUE. In this case, the handler is responsible for providing the necessary information for displaying feedback to the user, by calling gdk_drag_status().

If the decision whether the drop will be accepted or rejected can't be made based solely on the cursor position and the type of the data, the handler may inspect the dragged data by calling gtk_drag_get_data() and defer the gdk_drag_status() call to the Widget::drag-data-received handler. Note that you must pass K_DEST_DEFAULT_DROP, K_DEST_DEFAULT_MOTION or K_DEST_DEFAULT_ALL to gtk_drag_dest_set() when using the drag-motion signal that way.

Also note that there is no drag-enter signal. The drag receiver has to keep track of whether he has received any drag-motion signals since the last Widget::drag-leave and if not, treat the drag-motion signal as an "enter" signal. Upon an "enter", the handler will typically highlight the drop site with gtk_drag_highlight().

static void
drag_motion (GtkWidget      *widget,
             GdkDragContext *context,
             gint            x,
             gint            y,
             guint           time)
{
  GdkAtom target;

  PrivateData *private_data = GET_PRIVATE_DATA (widget);

  if (!private_data->drag_highlight)
   {
     private_data->drag_highlight = 1;
     gtk_drag_highlight (widget);
   }

  target = gtk_drag_dest_find_target (widget, context, NULL);
  if (target == GDK_NONE)
    gdk_drag_status (context, 0, time);
  else
   {
     private_data->pending_status
        = gdk_drag_context_get_suggested_action (context);
     gtk_drag_get_data (widget, context, target, time);
   }

  return TRUE;
}

static void
drag_data_received (GtkWidget        *widget,
                    GdkDragContext   *context,
                    gint              x,
                    gint              y,
                    GtkSelectionData *selection_data,
                    guint             info,
                    guint             time)
{
  PrivateData *private_data = GET_PRIVATE_DATA (widget);

  if (private_data->suggested_action)
   {
     private_data->suggested_action = 0;

     // We are getting this data due to a request in drag_motion,
     // rather than due to a request in drag_drop, so we are just
     // supposed to call gdk_drag_status(), not actually paste in
     // the data.

     str = gtk_selection_data_get_text (selection_data);
     if (!data_is_acceptable (str))
       gdk_drag_status (context, 0, time);
     else
       gdk_drag_status (context,
                        private_data->suggested_action,
                        time);
   }
  else
   {
     // accept the drop
   }
}.

func (*Widget) ConnectDraw

func (widget *Widget) ConnectDraw(f func(cr *cairo.Context) (ok bool)) coreglib.SignalHandle

ConnectDraw: this signal is emitted when a widget is supposed to render itself. The widget's top left corner must be painted at the origin of the passed in context and be sized to the values returned by gtk_widget_get_allocated_width() and gtk_widget_get_allocated_height().

Signal handlers connected to this signal can modify the cairo context passed as cr in any way they like and don't need to restore it. The signal emission takes care of calling cairo_save() before and cairo_restore() after invoking the handler.

The signal handler will get a cr with a clip region already set to the widget's dirty region, i.e. to the area that needs repainting. Complicated widgets that want to avoid redrawing themselves completely can get the full extents of the clip region with gdk_cairo_get_clip_rectangle(), or they can get a finer-grained representation of the dirty region with cairo_copy_clip_rectangle_list().

func (*Widget) ConnectEnterNotifyEvent

func (widget *Widget) ConnectEnterNotifyEvent(f func(event *gdk.EventCrossing) (ok bool)) coreglib.SignalHandle

ConnectEnterNotifyEvent will be emitted when the pointer enters the widget's window.

To receive this signal, the Window associated to the widget needs to enable the K_ENTER_NOTIFY_MASK mask.

This signal will be sent to the grab widget if there is one.

func (*Widget) ConnectEvent

func (widget *Widget) ConnectEvent(f func(event *gdk.Event) (ok bool)) coreglib.SignalHandle

ConnectEvent: GTK+ main loop will emit three signals for each GDK event delivered to a widget: one generic ::event signal, another, more specific, signal that matches the type of event delivered (e.g. Widget::key-press-event) and finally a generic Widget::event-after signal.

func (*Widget) ConnectEventAfter

func (widget *Widget) ConnectEventAfter(f func(event *gdk.Event)) coreglib.SignalHandle

ConnectEventAfter: after the emission of the Widget::event signal and (optionally) the second more specific signal, ::event-after will be emitted regardless of the previous two signals handlers return values.

func (*Widget) ConnectFocus

func (widget *Widget) ConnectFocus(f func(direction DirectionType) (ok bool)) coreglib.SignalHandle

func (*Widget) ConnectFocusInEvent

func (widget *Widget) ConnectFocusInEvent(f func(event *gdk.EventFocus) (ok bool)) coreglib.SignalHandle

ConnectFocusInEvent signal will be emitted when the keyboard focus enters the widget's window.

To receive this signal, the Window associated to the widget needs to enable the K_FOCUS_CHANGE_MASK mask.

func (*Widget) ConnectFocusOutEvent

func (widget *Widget) ConnectFocusOutEvent(f func(event *gdk.EventFocus) (ok bool)) coreglib.SignalHandle

ConnectFocusOutEvent signal will be emitted when the keyboard focus leaves the widget's window.

To receive this signal, the Window associated to the widget needs to enable the K_FOCUS_CHANGE_MASK mask.

func (*Widget) ConnectGrabBrokenEvent

func (widget *Widget) ConnectGrabBrokenEvent(f func(event *gdk.EventGrabBroken) (ok bool)) coreglib.SignalHandle

ConnectGrabBrokenEvent is emitted when a pointer or keyboard grab on a window belonging to widget gets broken.

On X11, this happens when the grab window becomes unviewable (i.e. it or one of its ancestors is unmapped), or if the same application grabs the pointer or keyboard again.

func (*Widget) ConnectGrabFocus

func (widget *Widget) ConnectGrabFocus(f func()) coreglib.SignalHandle

func (*Widget) ConnectGrabNotify

func (widget *Widget) ConnectGrabNotify(f func(wasGrabbed bool)) coreglib.SignalHandle

ConnectGrabNotify signal is emitted when a widget becomes shadowed by a GTK+ grab (not a pointer or keyboard grab) on another widget, or when it becomes unshadowed due to a grab being removed.

A widget is shadowed by a gtk_grab_add() when the topmost grab widget in the grab stack of its window group is not its ancestor.

func (*Widget) ConnectHide

func (widget *Widget) ConnectHide(f func()) coreglib.SignalHandle

ConnectHide signal is emitted when widget is hidden, for example with gtk_widget_hide().

func (*Widget) ConnectHierarchyChanged

func (widget *Widget) ConnectHierarchyChanged(f func(previousToplevel Widgetter)) coreglib.SignalHandle

ConnectHierarchyChanged signal is emitted when the anchored state of a widget changes. A widget is “anchored” when its toplevel ancestor is a Window. This signal is emitted when a widget changes from un-anchored to anchored or vice-versa.

func (*Widget) ConnectKeyPressEvent

func (widget *Widget) ConnectKeyPressEvent(f func(event *gdk.EventKey) (ok bool)) coreglib.SignalHandle

ConnectKeyPressEvent signal is emitted when a key is pressed. The signal emission will reoccur at the key-repeat rate when the key is kept pressed.

To receive this signal, the Window associated to the widget needs to enable the K_KEY_PRESS_MASK mask.

This signal will be sent to the grab widget if there is one.

func (*Widget) ConnectKeyReleaseEvent

func (widget *Widget) ConnectKeyReleaseEvent(f func(event *gdk.EventKey) (ok bool)) coreglib.SignalHandle

ConnectKeyReleaseEvent signal is emitted when a key is released.

To receive this signal, the Window associated to the widget needs to enable the K_KEY_RELEASE_MASK mask.

This signal will be sent to the grab widget if there is one.

func (*Widget) ConnectKeynavFailed

func (widget *Widget) ConnectKeynavFailed(f func(direction DirectionType) (ok bool)) coreglib.SignalHandle

ConnectKeynavFailed gets emitted if keyboard navigation fails. See gtk_widget_keynav_failed() for details.

func (*Widget) ConnectLeaveNotifyEvent

func (widget *Widget) ConnectLeaveNotifyEvent(f func(event *gdk.EventCrossing) (ok bool)) coreglib.SignalHandle

ConnectLeaveNotifyEvent will be emitted when the pointer leaves the widget's window.

To receive this signal, the Window associated to the widget needs to enable the K_LEAVE_NOTIFY_MASK mask.

This signal will be sent to the grab widget if there is one.

func (*Widget) ConnectMap

func (widget *Widget) ConnectMap(f func()) coreglib.SignalHandle

ConnectMap signal is emitted when widget is going to be mapped, that is when the widget is visible (which is controlled with gtk_widget_set_visible()) and all its parents up to the toplevel widget are also visible. Once the map has occurred, Widget::map-event will be emitted.

The ::map signal can be used to determine whether a widget will be drawn, for instance it can resume an animation that was stopped during the emission of Widget::unmap.

func (*Widget) ConnectMapEvent

func (widget *Widget) ConnectMapEvent(f func(event *gdk.EventAny) (ok bool)) coreglib.SignalHandle

ConnectMapEvent signal will be emitted when the widget's window is mapped. A window is mapped when it becomes visible on the screen.

To receive this signal, the Window associated to the widget needs to enable the K_STRUCTURE_MASK mask. GDK will enable this mask automatically for all new windows.

func (*Widget) ConnectMnemonicActivate

func (widget *Widget) ConnectMnemonicActivate(f func(groupCycling bool) (ok bool)) coreglib.SignalHandle

ConnectMnemonicActivate: default handler for this signal activates widget if group_cycling is FALSE, or just makes widget grab focus if group_cycling is TRUE.

func (*Widget) ConnectMotionNotifyEvent

func (widget *Widget) ConnectMotionNotifyEvent(f func(event *gdk.EventMotion) (ok bool)) coreglib.SignalHandle

ConnectMotionNotifyEvent signal is emitted when the pointer moves over the widget's Window.

To receive this signal, the Window associated to the widget needs to enable the K_POINTER_MOTION_MASK mask.

This signal will be sent to the grab widget if there is one.

func (*Widget) ConnectMoveFocus

func (widget *Widget) ConnectMoveFocus(f func(direction DirectionType)) coreglib.SignalHandle

func (*Widget) ConnectParentSet

func (widget *Widget) ConnectParentSet(f func(oldParent Widgetter)) coreglib.SignalHandle

ConnectParentSet signal is emitted when a new parent has been set on a widget.

func (*Widget) ConnectPopupMenu

func (widget *Widget) ConnectPopupMenu(f func() (ok bool)) coreglib.SignalHandle

ConnectPopupMenu: this signal gets emitted whenever a widget should pop up a context menu. This usually happens through the standard key binding mechanism; by pressing a certain key while a widget is focused, the user can cause the widget to pop up a menu. For example, the Entry widget creates a menu with clipboard commands. See the [Popup Menu Migration Checklist][checklist-popup-menu] for an example of how to use this signal.

func (*Widget) ConnectPropertyNotifyEvent

func (widget *Widget) ConnectPropertyNotifyEvent(f func(event *gdk.EventProperty) (ok bool)) coreglib.SignalHandle

ConnectPropertyNotifyEvent signal will be emitted when a property on the widget's window has been changed or deleted.

To receive this signal, the Window associated to the widget needs to enable the K_PROPERTY_CHANGE_MASK mask.

func (*Widget) ConnectProximityInEvent

func (widget *Widget) ConnectProximityInEvent(f func(event *gdk.EventProximity) (ok bool)) coreglib.SignalHandle

ConnectProximityInEvent: to receive this signal the Window associated to the widget needs to enable the K_PROXIMITY_IN_MASK mask.

This signal will be sent to the grab widget if there is one.

func (*Widget) ConnectProximityOutEvent

func (widget *Widget) ConnectProximityOutEvent(f func(event *gdk.EventProximity) (ok bool)) coreglib.SignalHandle

ConnectProximityOutEvent: to receive this signal the Window associated to the widget needs to enable the K_PROXIMITY_OUT_MASK mask.

This signal will be sent to the grab widget if there is one.

func (*Widget) ConnectQueryTooltip

func (widget *Widget) ConnectQueryTooltip(f func(x, y int, keyboardMode bool, tooltip *Tooltip) (ok bool)) coreglib.SignalHandle

ConnectQueryTooltip is emitted when Widget:has-tooltip is TRUE and the hover timeout has expired with the cursor hovering "above" widget; or emitted when widget got focus in keyboard mode.

Using the given coordinates, the signal handler should determine whether a tooltip should be shown for widget. If this is the case TRUE should be returned, FALSE otherwise. Note that if keyboard_mode is TRUE, the values of x and y are undefined and should not be used.

The signal handler is free to manipulate tooltip with the therefore destined function calls.

func (*Widget) ConnectRealize

func (widget *Widget) ConnectRealize(f func()) coreglib.SignalHandle

ConnectRealize signal is emitted when widget is associated with a Window, which means that gtk_widget_realize() has been called or the widget has been mapped (that is, it is going to be drawn).

func (*Widget) ConnectScreenChanged

func (widget *Widget) ConnectScreenChanged(f func(previousScreen *gdk.Screen)) coreglib.SignalHandle

ConnectScreenChanged signal gets emitted when the screen of a widget has changed.

func (*Widget) ConnectScrollEvent

func (widget *Widget) ConnectScrollEvent(f func(event *gdk.EventScroll) (ok bool)) coreglib.SignalHandle

ConnectScrollEvent signal is emitted when a button in the 4 to 7 range is pressed. Wheel mice are usually configured to generate button press events for buttons 4 and 5 when the wheel is turned.

To receive this signal, the Window associated to the widget needs to enable the K_SCROLL_MASK mask.

This signal will be sent to the grab widget if there is one.

func (*Widget) ConnectSelectionClearEvent

func (widget *Widget) ConnectSelectionClearEvent(f func(event *gdk.EventSelection) (ok bool)) coreglib.SignalHandle

ConnectSelectionClearEvent signal will be emitted when the the widget's window has lost ownership of a selection.

func (*Widget) ConnectSelectionGet

func (widget *Widget) ConnectSelectionGet(f func(data *SelectionData, info, time uint)) coreglib.SignalHandle

func (*Widget) ConnectSelectionNotifyEvent

func (widget *Widget) ConnectSelectionNotifyEvent(f func(event *gdk.EventSelection) (ok bool)) coreglib.SignalHandle

func (*Widget) ConnectSelectionReceived

func (widget *Widget) ConnectSelectionReceived(f func(data *SelectionData, time uint)) coreglib.SignalHandle

func (*Widget) ConnectSelectionRequestEvent

func (widget *Widget) ConnectSelectionRequestEvent(f func(event *gdk.EventSelection) (ok bool)) coreglib.SignalHandle

ConnectSelectionRequestEvent signal will be emitted when another client requests ownership of the selection owned by the widget's window.

func (*Widget) ConnectShow

func (widget *Widget) ConnectShow(f func()) coreglib.SignalHandle

ConnectShow signal is emitted when widget is shown, for example with gtk_widget_show().

func (*Widget) ConnectShowHelp

func (widget *Widget) ConnectShowHelp(f func(helpType WidgetHelpType) (ok bool)) coreglib.SignalHandle

func (*Widget) ConnectSizeAllocate

func (widget *Widget) ConnectSizeAllocate(f func(allocation *Allocation)) coreglib.SignalHandle

func (*Widget) ConnectStateChanged

func (widget *Widget) ConnectStateChanged(f func(state StateType)) coreglib.SignalHandle

ConnectStateChanged signal is emitted when the widget state changes. See gtk_widget_get_state().

func (*Widget) ConnectStateFlagsChanged

func (widget *Widget) ConnectStateFlagsChanged(f func(flags StateFlags)) coreglib.SignalHandle

ConnectStateFlagsChanged signal is emitted when the widget state changes, see gtk_widget_get_state_flags().

func (*Widget) ConnectStyleSet

func (widget *Widget) ConnectStyleSet(f func(previousStyle *Style)) coreglib.SignalHandle

ConnectStyleSet signal is emitted when a new style has been set on a widget. Note that style-modifying functions like gtk_widget_modify_base() also cause this signal to be emitted.

Note that this signal is emitted for changes to the deprecated Style. To track changes to the StyleContext associated with a widget, use the Widget::style-updated signal.

func (*Widget) ConnectStyleUpdated

func (widget *Widget) ConnectStyleUpdated(f func()) coreglib.SignalHandle

ConnectStyleUpdated signal is a convenience signal that is emitted when the StyleContext::changed signal is emitted on the widget's associated StyleContext as returned by gtk_widget_get_style_context().

Note that style-modifying functions like gtk_widget_override_color() also cause this signal to be emitted.

func (*Widget) ConnectTouchEvent

func (widget *Widget) ConnectTouchEvent(f func(object *gdk.Event) (ok bool)) coreglib.SignalHandle

func (*Widget) ConnectUnmap

func (widget *Widget) ConnectUnmap(f func()) coreglib.SignalHandle

ConnectUnmap signal is emitted when widget is going to be unmapped, which means that either it or any of its parents up to the toplevel widget have been set as hidden.

As ::unmap indicates that a widget will not be shown any longer, it can be used to, for example, stop an animation on the widget.

func (*Widget) ConnectUnmapEvent

func (widget *Widget) ConnectUnmapEvent(f func(event *gdk.EventAny) (ok bool)) coreglib.SignalHandle

ConnectUnmapEvent signal will be emitted when the widget's window is unmapped. A window is unmapped when it becomes invisible on the screen.

To receive this signal, the Window associated to the widget needs to enable the K_STRUCTURE_MASK mask. GDK will enable this mask automatically for all new windows.

func (*Widget) ConnectUnrealize

func (widget *Widget) ConnectUnrealize(f func()) coreglib.SignalHandle

ConnectUnrealize signal is emitted when the Window associated with widget is destroyed, which means that gtk_widget_unrealize() has been called or the widget has been unmapped (that is, it is going to be hidden).

func (*Widget) ConnectVisibilityNotifyEvent

func (widget *Widget) ConnectVisibilityNotifyEvent(f func(event *gdk.EventVisibility) (ok bool)) coreglib.SignalHandle

ConnectVisibilityNotifyEvent will be emitted when the widget's window is obscured or unobscured.

To receive this signal the Window associated to the widget needs to enable the K_VISIBILITY_NOTIFY_MASK mask.

func (*Widget) ConnectWindowStateEvent

func (widget *Widget) ConnectWindowStateEvent(f func(event *gdk.EventWindowState) (ok bool)) coreglib.SignalHandle

ConnectWindowStateEvent will be emitted when the state of the toplevel window associated to the widget changes.

To receive this signal the Window associated to the widget needs to enable the K_STRUCTURE_MASK mask. GDK will enable this mask automatically for all new windows.

func (*Widget) CreatePangoContext

func (widget *Widget) CreatePangoContext() *pango.Context

CreatePangoContext creates a new Context with the appropriate font map, font options, font description, and base direction for drawing text for this widget. See also gtk_widget_get_pango_context().

The function returns the following values:

  • context: new Context.

func (*Widget) CreatePangoLayout

func (widget *Widget) CreatePangoLayout(text string) *pango.Layout

CreatePangoLayout creates a new Layout with the appropriate font map, font description, and base direction for drawing text for this widget.

If you keep a Layout created in this way around, you need to re-create it when the widget Context is replaced. This can be tracked by using the Widget::screen-changed signal on the widget.

The function takes the following parameters:

  • text (optional) to set on the layout (can be NULL).

The function returns the following values:

  • layout: new Layout.

func (*Widget) Destroy

func (widget *Widget) Destroy()

Destroy destroys a widget.

When a widget is destroyed all references it holds on other objects will be released:

  • if the widget is inside a container, it will be removed from its parent
  • if the widget is a container, all its children will be destroyed, recursively
  • if the widget is a top level, it will be removed from the list of top level widgets that GTK+ maintains internally

It's expected that all references held on the widget will also be released; you should connect to the Widget::destroy signal if you hold a reference to widget and you wish to remove it when this function is called. It is not necessary to do so if you are implementing a Container, as you'll be able to use the ContainerClass.remove() virtual function for that.

It's important to notice that gtk_widget_destroy() will only cause the widget to be finalized if no additional references, acquired using g_object_ref(), are held on it. In case additional references are in place, the widget will be in an "inert" state after calling this function; widget will still point to valid memory, allowing you to release the references you hold, but you may not query the widget's own state.

You should typically call this function on top level widgets, and rarely on child widgets.

See also: gtk_container_remove().

func (*Widget) DeviceEnabled

func (widget *Widget) DeviceEnabled(device gdk.Devicer) bool

DeviceEnabled returns whether device can interact with widget and its children. See gtk_widget_set_device_enabled().

The function takes the following parameters:

  • device: Device.

The function returns the following values:

  • ok: TRUE is device is enabled for widget.

func (*Widget) DeviceEvents

func (widget *Widget) DeviceEvents(device gdk.Devicer) gdk.EventMask

DeviceEvents returns the events mask for the widget corresponding to an specific device. These are the events that the widget will receive when device operates on it.

The function takes the following parameters:

  • device: Device.

The function returns the following values:

  • eventMask: device event mask for widget.

func (*Widget) DeviceIsShadowed

func (widget *Widget) DeviceIsShadowed(device gdk.Devicer) bool

DeviceIsShadowed returns TRUE if device has been shadowed by a GTK+ device grab on another widget, so it would stop sending events to widget. This may be used in the Widget::grab-notify signal to check for specific devices. See gtk_device_grab_add().

The function takes the following parameters:

  • device: Device.

The function returns the following values:

  • ok: TRUE if there is an ongoing grab on device by another Widget than widget.

func (*Widget) Direction

func (widget *Widget) Direction() TextDirection

Direction gets the reading direction for a particular widget. See gtk_widget_set_direction().

The function returns the following values:

  • textDirection: reading direction for the widget.

func (*Widget) Display

func (widget *Widget) Display() *gdk.Display

Display: get the Display for the toplevel window associated with this widget. This function can only be called after the widget has been added to a widget hierarchy with a Window at the top.

In general, you should only create display specific resources when a widget has been realized, and you should free those resources when the widget is unrealized.

The function returns the following values:

  • display for the toplevel for this widget.

func (*Widget) DoubleBuffered

func (widget *Widget) DoubleBuffered() bool

DoubleBuffered determines whether the widget is double buffered.

See gtk_widget_set_double_buffered().

The function returns the following values:

  • ok: TRUE if the widget is double buffered.

func (*Widget) DragBegin deprecated

func (widget *Widget) DragBegin(targets *TargetList, actions gdk.DragAction, button int, event *gdk.Event) *gdk.DragContext

DragBegin: this function is equivalent to gtk_drag_begin_with_coordinates(), passing -1, -1 as coordinates.

Deprecated: Use gtk_drag_begin_with_coordinates() instead.

The function takes the following parameters:

  • targets (data formats) in which the source can provide the data.
  • actions: bitmask of the allowed drag actions for this drag.
  • button the user clicked to start the drag.
  • event (optional) that triggered the start of the drag, or NULL if none can be obtained.

The function returns the following values:

  • dragContext: context for this drag.

func (*Widget) DragBeginWithCoordinates

func (widget *Widget) DragBeginWithCoordinates(targets *TargetList, actions gdk.DragAction, button int, event *gdk.Event, x, y int) *gdk.DragContext

DragBeginWithCoordinates initiates a drag on the source side. The function only needs to be used when the application is starting drags itself, and is not needed when gtk_drag_source_set() is used.

The event is used to retrieve the timestamp that will be used internally to grab the pointer. If event is NULL, then GDK_CURRENT_TIME will be used. However, you should try to pass a real event in all cases, since that can be used to get information about the drag.

Generally there are three cases when you want to start a drag by hand by calling this function:

1. During a Widget::button-press-event handler, if you want to start a drag immediately when the user presses the mouse button. Pass the event that you have in your Widget::button-press-event handler.

2. During a Widget::motion-notify-event handler, if you want to start a drag when the mouse moves past a certain threshold distance after a button-press. Pass the event that you have in your Widget::motion-notify-event handler.

3. During a timeout handler, if you want to start a drag after the mouse button is held down for some time. Try to save the last event that you got from the mouse, using gdk_event_copy(), and pass it to this function (remember to free the event with gdk_event_free() when you are done). If you really cannot pass a real event, pass NULL instead.

The function takes the following parameters:

  • targets (data formats) in which the source can provide the data.
  • actions: bitmask of the allowed drag actions for this drag.
  • button the user clicked to start the drag.
  • event (optional) that triggered the start of the drag, or NULL if none can be obtained.
  • x: initial x coordinate to start dragging from, in the coordinate space of widget. If -1 is passed, the coordinates are retrieved from event or the current pointer position.
  • y: initial y coordinate to start dragging from, in the coordinate space of widget. If -1 is passed, the coordinates are retrieved from event or the current pointer position.

The function returns the following values:

  • dragContext: context for this drag.

func (*Widget) DragCheckThreshold

func (widget *Widget) DragCheckThreshold(startX, startY, currentX, currentY int) bool

DragCheckThreshold checks to see if a mouse drag starting at (start_x, start_y) and ending at (current_x, current_y) has passed the GTK+ drag threshold, and thus should trigger the beginning of a drag-and-drop operation.

The function takes the following parameters:

  • startX: x coordinate of start of drag.
  • startY: y coordinate of start of drag.
  • currentX: current X coordinate.
  • currentY: current Y coordinate.

The function returns the following values:

  • ok: TRUE if the drag threshold has been passed.

func (*Widget) DragDestAddImageTargets

func (widget *Widget) DragDestAddImageTargets()

DragDestAddImageTargets: add the image targets supported by SelectionData to the target list of the drag destination. The targets are added with info = 0. If you need another value, use gtk_target_list_add_image_targets() and gtk_drag_dest_set_target_list().

func (*Widget) DragDestAddTextTargets

func (widget *Widget) DragDestAddTextTargets()

DragDestAddTextTargets: add the text targets supported by SelectionData to the target list of the drag destination. The targets are added with info = 0. If you need another value, use gtk_target_list_add_text_targets() and gtk_drag_dest_set_target_list().

func (*Widget) DragDestAddURITargets

func (widget *Widget) DragDestAddURITargets()

DragDestAddURITargets: add the URI targets supported by SelectionData to the target list of the drag destination. The targets are added with info = 0. If you need another value, use gtk_target_list_add_uri_targets() and gtk_drag_dest_set_target_list().

func (*Widget) DragDestGetTargetList

func (widget *Widget) DragDestGetTargetList() *TargetList

DragDestGetTargetList returns the list of targets this widget can accept from drag-and-drop.

The function returns the following values:

  • targetList (optional) or NULL if none.

func (*Widget) DragDestGetTrackMotion

func (widget *Widget) DragDestGetTrackMotion() bool

DragDestGetTrackMotion returns whether the widget has been configured to always emit Widget::drag-motion signals.

The function returns the following values:

  • ok: TRUE if the widget always emits Widget::drag-motion events.

func (*Widget) DragDestSet

func (widget *Widget) DragDestSet(flags DestDefaults, targets []TargetEntry, actions gdk.DragAction)

DragDestSet sets a widget as a potential drop destination, and adds default behaviors.

The default behaviors listed in flags have an effect similar to installing default handlers for the widget’s drag-and-drop signals (Widget::drag-motion, Widget::drag-drop, ...). They all exist for convenience. When passing K_DEST_DEFAULT_ALL for instance it is sufficient to connect to the widget’s Widget::drag-data-received signal to get primitive, but consistent drag-and-drop support.

Things become more complicated when you try to preview the dragged data, as described in the documentation for Widget::drag-motion. The default behaviors described by flags make some assumptions, that can conflict with your own signal handlers. For instance K_DEST_DEFAULT_DROP causes invokations of gdk_drag_status() in the context of Widget::drag-motion, and invokations of gtk_drag_finish() in Widget::drag-data-received. Especially the later is dramatic, when your own Widget::drag-motion handler calls gtk_drag_get_data() to inspect the dragged data.

There’s no way to set a default action here, you can use the Widget::drag-motion callback for that. Here’s an example which selects the action to use depending on whether the control key is pressed or not:

static void
drag_motion (GtkWidget *widget,
             GdkDragContext *context,
             gint x,
             gint y,
             guint time)
{
  GdkModifierType mask;

  gdk_window_get_pointer (gtk_widget_get_window (widget),
                          NULL, NULL, &mask);
  if (mask & GDK_CONTROL_MASK)
    gdk_drag_status (context, GDK_ACTION_COPY, time);
  else
    gdk_drag_status (context, GDK_ACTION_MOVE, time);
}.

The function takes the following parameters:

  • flags: which types of default drag behavior to use.
  • targets (optional): pointer to an array of TargetEntrys indicating the drop types that this widget will accept, or NULL. Later you can access the list with gtk_drag_dest_get_target_list() and gtk_drag_dest_find_target().
  • actions: bitmask of possible actions for a drop onto this widget.

func (*Widget) DragDestSetProxy deprecated

func (widget *Widget) DragDestSetProxy(proxyWindow gdk.Windower, protocol gdk.DragProtocol, useCoordinates bool)

DragDestSetProxy sets this widget as a proxy for drops to another window.

Deprecated: since version 3.22.

The function takes the following parameters:

  • proxyWindow: window to which to forward drag events.
  • protocol: drag protocol which the proxy_window accepts (You can use gdk_drag_get_protocol() to determine this).
  • useCoordinates: if TRUE, send the same coordinates to the destination, because it is an embedded subwindow.

func (*Widget) DragDestSetTargetList

func (widget *Widget) DragDestSetTargetList(targetList *TargetList)

DragDestSetTargetList sets the target types that this widget can accept from drag-and-drop. The widget must first be made into a drag destination with gtk_drag_dest_set().

The function takes the following parameters:

  • targetList (optional): list of droppable targets, or NULL for none.

func (*Widget) DragDestSetTrackMotion

func (widget *Widget) DragDestSetTrackMotion(trackMotion bool)

DragDestSetTrackMotion tells the widget to emit Widget::drag-motion and Widget::drag-leave events regardless of the targets and the GTK_DEST_DEFAULT_MOTION flag.

This may be used when a widget wants to do generic actions regardless of the targets that the source offers.

The function takes the following parameters:

  • trackMotion: whether to accept all targets.

func (*Widget) DragDestUnset

func (widget *Widget) DragDestUnset()

DragDestUnset clears information about a drop destination set with gtk_drag_dest_set(). The widget will no longer receive notification of drags.

func (*Widget) DragHighlight

func (widget *Widget) DragHighlight()

DragHighlight highlights a widget as a currently hovered drop target. To end the highlight, call gtk_drag_unhighlight(). GTK+ calls this automatically if GTK_DEST_DEFAULT_HIGHLIGHT is set.

func (*Widget) DragSourceAddImageTargets

func (widget *Widget) DragSourceAddImageTargets()

DragSourceAddImageTargets: add the writable image targets supported by SelectionData to the target list of the drag source. The targets are added with info = 0. If you need another value, use gtk_target_list_add_image_targets() and gtk_drag_source_set_target_list().

func (*Widget) DragSourceAddTextTargets

func (widget *Widget) DragSourceAddTextTargets()

DragSourceAddTextTargets: add the text targets supported by SelectionData to the target list of the drag source. The targets are added with info = 0. If you need another value, use gtk_target_list_add_text_targets() and gtk_drag_source_set_target_list().

func (*Widget) DragSourceAddURITargets

func (widget *Widget) DragSourceAddURITargets()

DragSourceAddURITargets: add the URI targets supported by SelectionData to the target list of the drag source. The targets are added with info = 0. If you need another value, use gtk_target_list_add_uri_targets() and gtk_drag_source_set_target_list().

func (*Widget) DragSourceGetTargetList

func (widget *Widget) DragSourceGetTargetList() *TargetList

DragSourceGetTargetList gets the list of targets this widget can provide for drag-and-drop.

The function returns the following values:

  • targetList (optional) or NULL if none.

func (*Widget) DragSourceSet

func (widget *Widget) DragSourceSet(startButtonMask gdk.ModifierType, targets []TargetEntry, actions gdk.DragAction)

DragSourceSet sets up a widget so that GTK+ will start a drag operation when the user clicks and drags on the widget. The widget must have a window.

The function takes the following parameters:

  • startButtonMask: bitmask of buttons that can start the drag.
  • targets (optional): table of targets that the drag will support, may be NULL.
  • actions: bitmask of possible actions for a drag from this widget.

func (*Widget) DragSourceSetIconGIcon

func (widget *Widget) DragSourceSetIconGIcon(icon gio.Iconner)

DragSourceSetIconGIcon sets the icon that will be used for drags from a particular source to icon. See the docs for IconTheme for more details.

The function takes the following parameters:

  • icon: #GIcon.

func (*Widget) DragSourceSetIconName

func (widget *Widget) DragSourceSetIconName(iconName string)

DragSourceSetIconName sets the icon that will be used for drags from a particular source to a themed icon. See the docs for IconTheme for more details.

The function takes the following parameters:

  • iconName: name of icon to use.

func (*Widget) DragSourceSetIconPixbuf

func (widget *Widget) DragSourceSetIconPixbuf(pixbuf *gdkpixbuf.Pixbuf)

DragSourceSetIconPixbuf sets the icon that will be used for drags from a particular widget from a Pixbuf. GTK+ retains a reference for pixbuf and will release it when it is no longer needed.

The function takes the following parameters:

  • pixbuf for the drag icon.

func (*Widget) DragSourceSetIconStock deprecated

func (widget *Widget) DragSourceSetIconStock(stockId string)

DragSourceSetIconStock sets the icon that will be used for drags from a particular source to a stock icon.

Deprecated: Use gtk_drag_source_set_icon_name() instead.

The function takes the following parameters:

  • stockId: ID of the stock icon to use.

func (*Widget) DragSourceSetTargetList

func (widget *Widget) DragSourceSetTargetList(targetList *TargetList)

DragSourceSetTargetList changes the target types that this widget offers for drag-and-drop. The widget must first be made into a drag source with gtk_drag_source_set().

The function takes the following parameters:

  • targetList (optional): list of draggable targets, or NULL for none.

func (*Widget) DragSourceUnset

func (widget *Widget) DragSourceUnset()

DragSourceUnset undoes the effects of gtk_drag_source_set().

func (*Widget) DragUnhighlight

func (widget *Widget) DragUnhighlight()

DragUnhighlight removes a highlight set by gtk_drag_highlight() from a widget.

func (*Widget) Draw

func (widget *Widget) Draw(cr *cairo.Context)

Draw draws widget to cr. The top left corner of the widget will be drawn to the currently set origin point of cr.

You should pass a cairo context as cr argument that is in an original state. Otherwise the resulting drawing is undefined. For example changing the operator using cairo_set_operator() or the line width using cairo_set_line_width() might have unwanted side effects. You may however change the context’s transform matrix - like with cairo_scale(), cairo_translate() or cairo_set_matrix() and clip region with cairo_clip() prior to calling this function. Also, it is fine to modify the context with cairo_save() and cairo_push_group() prior to calling this function.

Note that special-purpose widgets may contain special code for rendering to the screen and might appear differently on screen and when rendered using gtk_widget_draw().

The function takes the following parameters:

  • cr: cairo context to draw to.

func (*Widget) EnsureStyle deprecated

func (widget *Widget) EnsureStyle()

EnsureStyle ensures that widget has a style (widget->style).

Not a very useful function; most of the time, if you want the style, the widget is realized, and realized widgets are guaranteed to have a style already.

Deprecated: Use StyleContext instead.

func (*Widget) ErrorBell

func (widget *Widget) ErrorBell()

ErrorBell notifies the user about an input-related error on this widget. If the Settings:gtk-error-bell setting is TRUE, it calls gdk_window_beep(), otherwise it does nothing.

Note that the effect of gdk_window_beep() can be configured in many ways, depending on the windowing backend and the desktop environment or window manager that is used.

func (*Widget) Event

func (widget *Widget) Event(event *gdk.Event) bool

Event: rarely-used function. This function is used to emit the event signals on a widget (those signals should never be emitted without using this function to do so). If you want to synthesize an event though, don’t use this function; instead, use gtk_main_do_event() so the event will behave as if it were in the event queue. Don’t synthesize expose events; instead, use gdk_window_invalidate_rect() to invalidate a region of the window.

The function takes the following parameters:

  • event: Event.

The function returns the following values:

  • ok: return from the event signal emission (TRUE if the event was handled).

func (*Widget) Events

func (widget *Widget) Events() int

Events returns the event mask (see EventMask) for the widget. These are the events that the widget will receive.

Note: Internally, the widget event mask will be the logical OR of the event mask set through gtk_widget_set_events() or gtk_widget_add_events(), and the event mask necessary to cater for every EventController created for the widget.

The function returns the following values:

  • gint: event mask for widget.

func (*Widget) FocusOnClick

func (widget *Widget) FocusOnClick() bool

FocusOnClick returns whether the widget should grab focus when it is clicked with the mouse. See gtk_widget_set_focus_on_click().

The function returns the following values:

  • ok: TRUE if the widget should grab focus when it is clicked with the mouse.

func (*Widget) FontMap

func (widget *Widget) FontMap() pango.FontMapper

FontMap gets the font map that has been set with gtk_widget_set_font_map().

The function returns the following values:

  • fontMap (optional) or NULL.

func (*Widget) FontOptions

func (widget *Widget) FontOptions() *cairo.FontOptions

FontOptions returns the #cairo_font_options_t used for Pango rendering. When not set, the defaults font options for the Screen will be used.

The function returns the following values:

  • fontOptions (optional) or NULL if not set.

func (*Widget) FrameClock

func (widget *Widget) FrameClock() gdk.FrameClocker

FrameClock obtains the frame clock for a widget. The frame clock is a global “ticker” that can be used to drive animations and repaints. The most common reason to get the frame clock is to call gdk_frame_clock_get_frame_time(), in order to get a time to use for animating. For example you might record the start of the animation with an initial value from gdk_frame_clock_get_frame_time(), and then update the animation by calling gdk_frame_clock_get_frame_time() again during each repaint.

gdk_frame_clock_request_phase() will result in a new frame on the clock, but won’t necessarily repaint any widgets. To repaint a widget, you have to use gtk_widget_queue_draw() which invalidates the widget (thus scheduling it to receive a draw on the next frame). gtk_widget_queue_draw() will also end up requesting a frame on the appropriate frame clock.

A widget’s frame clock will not change while the widget is mapped. Reparenting a widget (which implies a temporary unmap) can change the widget’s frame clock.

Unrealized widgets do not have a frame clock.

The function returns the following values:

  • frameClock (optional) NULL if widget is unrealized.

func (*Widget) FreezeChildNotify

func (widget *Widget) FreezeChildNotify()

FreezeChildNotify stops emission of Widget::child-notify signals on widget. The signals are queued until gtk_widget_thaw_child_notify() is called on widget.

This is the analogue of g_object_freeze_notify() for child properties.

func (*Widget) GetPath

func (widget *Widget) GetPath() *WidgetPath

GetPath returns the WidgetPath representing widget, if the widget is not connected to a toplevel widget, a partial path will be created.

The function returns the following values:

  • widgetPath representing widget.

func (*Widget) GetSizeRequest

func (widget *Widget) GetSizeRequest() (width, height int)

GetSizeRequest gets the size request that was explicitly set for the widget using gtk_widget_set_size_request(). A value of -1 stored in width or height indicates that that dimension has not been set explicitly and the natural requisition of the widget will be used instead. See gtk_widget_set_size_request(). To get the size a widget will actually request, call gtk_widget_get_preferred_size() instead of this function.

The function returns the following values:

  • width (optional): return location for width, or NULL.
  • height (optional): return location for height, or NULL.

func (*Widget) GrabAdd

func (widget *Widget) GrabAdd()

GrabAdd makes widget the current grabbed widget.

This means that interaction with other widgets in the same application is blocked and mouse as well as keyboard events are delivered to this widget.

If widget is not sensitive, it is not set as the current grabbed widget and this function does nothing.

func (*Widget) GrabDefault

func (widget *Widget) GrabDefault()

GrabDefault causes widget to become the default widget. widget must be able to be a default widget; typically you would ensure this yourself by calling gtk_widget_set_can_default() with a TRUE value. The default widget is activated when the user presses Enter in a window. Default widgets must be activatable, that is, gtk_widget_activate() should affect them. Note that Entry widgets require the “activates-default” property set to TRUE before they activate the default widget when Enter is pressed and the Entry is focused.

func (*Widget) GrabFocus

func (widget *Widget) GrabFocus()

GrabFocus causes widget to have the keyboard focus for the Window it's inside. widget must be a focusable widget, such as a Entry; something like Frame won’t work.

More precisely, it must have the GTK_CAN_FOCUS flag set. Use gtk_widget_set_can_focus() to modify that flag.

The widget also needs to be realized and mapped. This is indicated by the related signals. Grabbing the focus immediately after creating the widget will likely fail and cause critical warnings.

func (*Widget) GrabRemove

func (widget *Widget) GrabRemove()

GrabRemove removes the grab from the given widget.

You have to pair calls to gtk_grab_add() and gtk_grab_remove().

If widget does not have the grab, this function does nothing.

func (*Widget) HAlign

func (widget *Widget) HAlign() Align

HAlign gets the value of the Widget:halign property.

For backwards compatibility reasons this method will never return GTK_ALIGN_BASELINE, but instead it will convert it to GTK_ALIGN_FILL. Baselines are not supported for horizontal alignment.

The function returns the following values:

  • align: horizontal alignment of widget.

func (*Widget) HExpand

func (widget *Widget) HExpand() bool

HExpand gets whether the widget would like any available extra horizontal space. When a user resizes a Window, widgets with expand=TRUE generally receive the extra space. For example, a list or scrollable area or document in your window would often be set to expand.

Containers should use gtk_widget_compute_expand() rather than this function, to see whether a widget, or any of its children, has the expand flag set. If any child of a widget wants to expand, the parent may ask to expand also.

This function only looks at the widget’s own hexpand flag, rather than computing whether the entire widget tree rooted at this widget wants to expand.

The function returns the following values:

  • ok: whether hexpand flag is set.

func (*Widget) HExpandSet

func (widget *Widget) HExpandSet() bool

HExpandSet gets whether gtk_widget_set_hexpand() has been used to explicitly set the expand flag on this widget.

If hexpand is set, then it overrides any computed expand value based on child widgets. If hexpand is not set, then the expand value depends on whether any children of the widget would like to expand.

There are few reasons to use this function, but it’s here for completeness and consistency.

The function returns the following values:

  • ok: whether hexpand has been explicitly set.

func (*Widget) HasDefault

func (widget *Widget) HasDefault() bool

HasDefault determines whether widget is the current default widget within its toplevel. See gtk_widget_set_can_default().

The function returns the following values:

  • ok: TRUE if widget is the current default widget within its toplevel, FALSE otherwise.

func (*Widget) HasFocus

func (widget *Widget) HasFocus() bool

HasFocus determines if the widget has the global input focus. See gtk_widget_is_focus() for the difference between having the global input focus, and only having the focus within a toplevel.

The function returns the following values:

  • ok: TRUE if the widget has the global input focus.

func (*Widget) HasGrab

func (widget *Widget) HasGrab() bool

HasGrab determines whether the widget is currently grabbing events, so it is the only widget receiving input events (keyboard and mouse).

See also gtk_grab_add().

The function returns the following values:

  • ok: TRUE if the widget is in the grab_widgets stack.

func (*Widget) HasRCStyle deprecated

func (widget *Widget) HasRCStyle() bool

HasRCStyle determines if the widget style has been looked up through the rc mechanism.

Deprecated: Use StyleContext instead.

The function returns the following values:

  • ok: TRUE if the widget has been looked up through the rc mechanism, FALSE otherwise.

func (*Widget) HasScreen

func (widget *Widget) HasScreen() bool

HasScreen checks whether there is a Screen is associated with this widget. All toplevel widgets have an associated screen, and all widgets added into a hierarchy with a toplevel window at the top.

The function returns the following values:

  • ok: TRUE if there is a Screen associated with the widget.

func (*Widget) HasTooltip

func (widget *Widget) HasTooltip() bool

HasTooltip returns the current value of the has-tooltip property. See Widget:has-tooltip for more information.

The function returns the following values:

  • ok: current value of has-tooltip on widget.

func (*Widget) HasVisibleFocus

func (widget *Widget) HasVisibleFocus() bool

HasVisibleFocus determines if the widget should show a visible indication that it has the global input focus. This is a convenience function for use in ::draw handlers that takes into account whether focus indication should currently be shown in the toplevel window of widget. See gtk_window_get_focus_visible() for more information about focus indication.

To find out if the widget has the global input focus, use gtk_widget_has_focus().

The function returns the following values:

  • ok: TRUE if the widget should display a “focus rectangle”.

func (*Widget) HasWindow

func (widget *Widget) HasWindow() bool

HasWindow determines whether widget has a Window of its own. See gtk_widget_set_has_window().

The function returns the following values:

  • ok: TRUE if widget has a window, FALSE otherwise.

func (*Widget) Hide

func (widget *Widget) Hide()

Hide reverses the effects of gtk_widget_show(), causing the widget to be hidden (invisible to the user).

func (*Widget) HideOnDelete

func (widget *Widget) HideOnDelete() bool

HideOnDelete: utility function; intended to be connected to the Widget::delete-event signal on a Window. The function calls gtk_widget_hide() on its argument, then returns TRUE. If connected to ::delete-event, the result is that clicking the close button for a window (on the window frame, top right corner usually) will hide but not destroy the window. By default, GTK+ destroys windows when ::delete-event is received.

The function returns the following values:

  • ok: TRUE.

func (*Widget) InDestruction

func (widget *Widget) InDestruction() bool

InDestruction returns whether the widget is currently being destroyed. This information can sometimes be used to avoid doing unnecessary work.

The function returns the following values:

  • ok: TRUE if widget is being destroyed.

func (*Widget) InitTemplate

func (widget *Widget) InitTemplate()

InitTemplate creates and initializes child widgets defined in templates. This function must be called in the instance initializer for any class which assigned itself a template using gtk_widget_class_set_template()

It is important to call this function in the instance initializer of a Widget subclass and not in #GObject.constructed() or #GObject.constructor() for two reasons.

One reason is that generally derived widgets will assume that parent class composite widgets have been created in their instance initializers.

Another reason is that when calling g_object_new() on a widget with composite templates, it’s important to build the composite widgets before the construct properties are set. Properties passed to g_object_new() should take precedence over properties set in the private template XML.

func (*Widget) InputShapeCombineRegion

func (widget *Widget) InputShapeCombineRegion(region *cairo.Region)

InputShapeCombineRegion sets an input shape for this widget’s GDK window. This allows for windows which react to mouse click in a nonrectangular region, see gdk_window_input_shape_combine_region() for more information.

The function takes the following parameters:

  • region (optional): shape to be added, or NULL to remove an existing shape.

func (*Widget) InsertActionGroup

func (widget *Widget) InsertActionGroup(name string, group gio.ActionGrouper)

InsertActionGroup inserts group into widget. Children of widget that implement Actionable can then be associated with actions in group by setting their “action-name” to prefix.action-name.

If group is NULL, a previously inserted group for name is removed from widget.

The function takes the following parameters:

  • name: prefix for actions in group.
  • group (optional) or NULL.

func (*Widget) Intersect

func (widget *Widget) Intersect(area *gdk.Rectangle) (*gdk.Rectangle, bool)

Intersect computes the intersection of a widget’s area and area, storing the intersection in intersection, and returns TRUE if there was an intersection. intersection may be NULL if you’re only interested in whether there was an intersection.

The function takes the following parameters:

  • area: rectangle.

The function returns the following values:

  • intersection (optional): rectangle to store intersection of widget and area.
  • ok: TRUE if there was an intersection.

func (*Widget) IsAncestor

func (widget *Widget) IsAncestor(ancestor Widgetter) bool

IsAncestor determines whether widget is somewhere inside ancestor, possibly with intermediate containers.

The function takes the following parameters:

  • ancestor: another Widget.

The function returns the following values:

  • ok: TRUE if ancestor contains widget as a child, grandchild, great grandchild, etc.

func (*Widget) IsComposited deprecated

func (widget *Widget) IsComposited() bool

IsComposited: whether widget can rely on having its alpha channel drawn correctly. On X11 this function returns whether a compositing manager is running for widget’s screen.

Please note that the semantics of this call will change in the future if used on a widget that has a composited window in its hierarchy (as set by gdk_window_set_composited()).

Deprecated: Use gdk_screen_is_composited() instead.

The function returns the following values:

  • ok: TRUE if the widget can rely on its alpha channel being drawn correctly.

func (*Widget) IsDrawable

func (widget *Widget) IsDrawable() bool

IsDrawable determines whether widget can be drawn to. A widget can be drawn to if it is mapped and visible.

The function returns the following values:

  • ok: TRUE if widget is drawable, FALSE otherwise.

func (*Widget) IsFocus

func (widget *Widget) IsFocus() bool

IsFocus determines if the widget is the focus widget within its toplevel. (This does not mean that the Widget:has-focus property is necessarily set; Widget:has-focus will only be set if the toplevel widget additionally has the global input focus.).

The function returns the following values:

  • ok: TRUE if the widget is the focus widget.

func (*Widget) IsSensitive

func (widget *Widget) IsSensitive() bool

IsSensitive returns the widget’s effective sensitivity, which means it is sensitive itself and also its parent widget is sensitive.

The function returns the following values:

  • ok: TRUE if the widget is effectively sensitive.

func (*Widget) IsToplevel

func (widget *Widget) IsToplevel() bool

IsToplevel determines whether widget is a toplevel widget.

Currently only Window and Invisible (and out-of-process Plugs) are toplevel widgets. Toplevel widgets have no parent widget.

The function returns the following values:

  • ok: TRUE if widget is a toplevel, FALSE otherwise.

func (*Widget) IsVisible

func (widget *Widget) IsVisible() bool

IsVisible determines whether the widget and all its parents are marked as visible.

This function does not check if the widget is obscured in any way.

See also gtk_widget_get_visible() and gtk_widget_set_visible().

The function returns the following values:

  • ok: TRUE if the widget and all its parents are visible.

func (*Widget) KeynavFailed

func (widget *Widget) KeynavFailed(direction DirectionType) bool

KeynavFailed: this function should be called whenever keyboard navigation within a single widget hits a boundary. The function emits the Widget::keynav-failed signal on the widget and its return value should be interpreted in a way similar to the return value of gtk_widget_child_focus():

When TRUE is returned, stay in the widget, the failed keyboard navigation is OK and/or there is nowhere we can/should move the focus to.

When FALSE is returned, the caller should continue with keyboard navigation outside the widget, e.g. by calling gtk_widget_child_focus() on the widget’s toplevel.

The default ::keynav-failed handler returns FALSE for GTK_DIR_TAB_FORWARD and GTK_DIR_TAB_BACKWARD. For the other values of DirectionType it returns TRUE.

Whenever the default handler returns TRUE, it also calls gtk_widget_error_bell() to notify the user of the failed keyboard navigation.

A use case for providing an own implementation of ::keynav-failed (either by connecting to it or by overriding it) would be a row of Entry widgets where the user should be able to navigate the entire row with the cursor keys, as e.g. known from user interfaces that require entering license keys.

The function takes the following parameters:

  • direction of focus movement.

The function returns the following values:

  • ok: TRUE if stopping keyboard navigation is fine, FALSE if the emitting widget should try to handle the keyboard navigation attempt in its parent container(s).

func (*Widget) ListActionPrefixes

func (widget *Widget) ListActionPrefixes() []string

ListActionPrefixes retrieves a NULL-terminated array of strings containing the prefixes of Group's available to widget.

The function returns the following values:

  • utf8s: NULL-terminated array of strings.

func (*Widget) ListMnemonicLabels

func (widget *Widget) ListMnemonicLabels() []Widgetter

ListMnemonicLabels returns a newly allocated list of the widgets, normally labels, for which this widget is the target of a mnemonic (see for example, gtk_label_set_mnemonic_widget()).

The widgets in the list are not individually referenced. If you want to iterate through the list and perform actions involving callbacks that might destroy the widgets, you must call g_list_foreach (result, (GFunc)g_object_ref, NULL) first, and then unref all the widgets afterwards.

The function returns the following values:

  • list of mnemonic labels; free this list with g_list_free() when you are done with it.

func (*Widget) Map

func (widget *Widget) Map()

Map: this function is only for use in widget implementations. Causes a widget to be mapped if it isn’t already.

func (*Widget) Mapped

func (widget *Widget) Mapped() bool

Mapped: whether the widget is mapped.

The function returns the following values:

  • ok: TRUE if the widget is mapped, FALSE otherwise.

func (*Widget) MarginBottom

func (widget *Widget) MarginBottom() int

MarginBottom gets the value of the Widget:margin-bottom property.

The function returns the following values:

  • gint: bottom margin of widget.

func (*Widget) MarginEnd

func (widget *Widget) MarginEnd() int

MarginEnd gets the value of the Widget:margin-end property.

The function returns the following values:

  • gint: end margin of widget.

func (*Widget) MarginLeft deprecated

func (widget *Widget) MarginLeft() int

MarginLeft gets the value of the Widget:margin-left property.

Deprecated: Use gtk_widget_get_margin_start() instead.

The function returns the following values:

  • gint: left margin of widget.

func (*Widget) MarginRight deprecated

func (widget *Widget) MarginRight() int

MarginRight gets the value of the Widget:margin-right property.

Deprecated: Use gtk_widget_get_margin_end() instead.

The function returns the following values:

  • gint: right margin of widget.

func (*Widget) MarginStart

func (widget *Widget) MarginStart() int

MarginStart gets the value of the Widget:margin-start property.

The function returns the following values:

  • gint: start margin of widget.

func (*Widget) MarginTop

func (widget *Widget) MarginTop() int

MarginTop gets the value of the Widget:margin-top property.

The function returns the following values:

  • gint: top margin of widget.

func (*Widget) MnemonicActivate

func (widget *Widget) MnemonicActivate(groupCycling bool) bool

MnemonicActivate emits the Widget::mnemonic-activate signal.

The function takes the following parameters:

  • groupCycling: TRUE if there are other widgets with the same mnemonic.

The function returns the following values:

  • ok: TRUE if the signal has been handled.

func (*Widget) ModifierMask

func (widget *Widget) ModifierMask(intent gdk.ModifierIntent) gdk.ModifierType

ModifierMask returns the modifier mask the widget’s windowing system backend uses for a particular purpose.

See gdk_keymap_get_modifier_mask().

The function takes the following parameters:

  • intent: use case for the modifier mask.

The function returns the following values:

  • modifierType: modifier mask used for intent.

func (*Widget) ModifierStyle deprecated

func (widget *Widget) ModifierStyle() *RCStyle

ModifierStyle returns the current modifier style for the widget. (As set by gtk_widget_modify_style().) If no style has previously set, a new RcStyle will be created with all values unset, and set as the modifier style for the widget. If you make changes to this rc style, you must call gtk_widget_modify_style(), passing in the returned rc style, to make sure that your changes take effect.

Caution: passing the style back to gtk_widget_modify_style() will normally end up destroying it, because gtk_widget_modify_style() copies the passed-in style and sets the copy as the new modifier style, thus dropping any reference to the old modifier style. Add a reference to the modifier style if you want to keep it alive.

Deprecated: Use StyleContext with a custom StyleProvider instead.

The function returns the following values:

  • rcStyle: modifier style for the widget. This rc style is owned by the widget. If you want to keep a pointer to value this around, you must add a refcount using g_object_ref().

func (*Widget) ModifyBase deprecated

func (widget *Widget) ModifyBase(state StateType, color *gdk.Color)

ModifyBase sets the base color for a widget in a particular state. All other style values are left untouched. The base color is the background color used along with the text color (see gtk_widget_modify_text()) for widgets such as Entry and TextView. See also gtk_widget_modify_style().

> Note that “no window” widgets (which have the GTK_NO_WINDOW > flag set) draw on their parent container’s window and thus may > not draw any background themselves. This is the case for e.g. > Label. > > To modify the background of such widgets, you have to set the > base color on their parent; if you want to set the background > of a rectangular area around a label, try placing the label in > a EventBox widget and setting the base color on that.

Deprecated: Use gtk_widget_override_background_color() instead.

The function takes the following parameters:

  • state for which to set the base color.
  • color (optional) to assign (does not need to be allocated), or NULL to undo the effect of previous calls to of gtk_widget_modify_base().

func (*Widget) ModifyBg deprecated

func (widget *Widget) ModifyBg(state StateType, color *gdk.Color)

ModifyBg sets the background color for a widget in a particular state.

All other style values are left untouched. See also gtk_widget_modify_style().

> Note that “no window” widgets (which have the GTK_NO_WINDOW > flag set) draw on their parent container’s window and thus may > not draw any background themselves. This is the case for e.g. > Label. > > To modify the background of such widgets, you have to set the > background color on their parent; if you want to set the background > of a rectangular area around a label, try placing the label in > a EventBox widget and setting the background color on that.

Deprecated: Use gtk_widget_override_background_color() instead.

The function takes the following parameters:

  • state for which to set the background color.
  • color (optional) to assign (does not need to be allocated), or NULL to undo the effect of previous calls to of gtk_widget_modify_bg().

func (*Widget) ModifyCursor deprecated

func (widget *Widget) ModifyCursor(primary, secondary *gdk.Color)

ModifyCursor sets the cursor color to use in a widget, overriding the Widget cursor-color and secondary-cursor-color style properties.

All other style values are left untouched. See also gtk_widget_modify_style().

Deprecated: Use gtk_widget_override_cursor() instead.

The function takes the following parameters:

  • primary (optional): color to use for primary cursor (does not need to be allocated), or NULL to undo the effect of previous calls to of gtk_widget_modify_cursor().
  • secondary (optional): color to use for secondary cursor (does not need to be allocated), or NULL to undo the effect of previous calls to of gtk_widget_modify_cursor().

func (*Widget) ModifyFg deprecated

func (widget *Widget) ModifyFg(state StateType, color *gdk.Color)

ModifyFg sets the foreground color for a widget in a particular state.

All other style values are left untouched. See also gtk_widget_modify_style().

Deprecated: Use gtk_widget_override_color() instead.

The function takes the following parameters:

  • state for which to set the foreground color.
  • color (optional) to assign (does not need to be allocated), or NULL to undo the effect of previous calls to of gtk_widget_modify_fg().

func (*Widget) ModifyFont deprecated

func (widget *Widget) ModifyFont(fontDesc *pango.FontDescription)

ModifyFont sets the font to use for a widget.

All other style values are left untouched. See also gtk_widget_modify_style().

Deprecated: Use gtk_widget_override_font() instead.

The function takes the following parameters:

  • fontDesc (optional): font description to use, or NULL to undo the effect of previous calls to gtk_widget_modify_font().

func (*Widget) ModifyStyle deprecated

func (widget *Widget) ModifyStyle(style *RCStyle)

ModifyStyle modifies style values on the widget.

Modifications made using this technique take precedence over style values set via an RC file, however, they will be overridden if a style is explicitly set on the widget using gtk_widget_set_style(). The RcStyle-struct is designed so each field can either be set or unset, so it is possible, using this function, to modify some style values and leave the others unchanged.

Note that modifications made with this function are not cumulative with previous calls to gtk_widget_modify_style() or with such functions as gtk_widget_modify_fg(). If you wish to retain previous values, you must first call gtk_widget_get_modifier_style(), make your modifications to the returned style, then call gtk_widget_modify_style() with that style. On the other hand, if you first call gtk_widget_modify_style(), subsequent calls to such functions gtk_widget_modify_fg() will have a cumulative effect with the initial modifications.

Deprecated: Use StyleContext with a custom StyleProvider instead.

The function takes the following parameters:

  • style holding the style modifications.

func (*Widget) ModifyText deprecated

func (widget *Widget) ModifyText(state StateType, color *gdk.Color)

ModifyText sets the text color for a widget in a particular state.

All other style values are left untouched. The text color is the foreground color used along with the base color (see gtk_widget_modify_base()) for widgets such as Entry and TextView. See also gtk_widget_modify_style().

Deprecated: Use gtk_widget_override_color() instead.

The function takes the following parameters:

  • state for which to set the text color.
  • color (optional) to assign (does not need to be allocated), or NULL to undo the effect of previous calls to of gtk_widget_modify_text().

func (*Widget) Name

func (widget *Widget) Name() string

Name retrieves the name of a widget. See gtk_widget_set_name() for the significance of widget names.

The function returns the following values:

  • utf8: name of the widget. This string is owned by GTK+ and should not be modified or freed.

func (*Widget) NoShowAll

func (widget *Widget) NoShowAll() bool

NoShowAll returns the current value of the Widget:no-show-all property, which determines whether calls to gtk_widget_show_all() will affect this widget.

The function returns the following values:

  • ok: current value of the “no-show-all” property.

func (*Widget) Opacity

func (widget *Widget) Opacity() float64

Opacity fetches the requested opacity for this widget. See gtk_widget_set_opacity().

The function returns the following values:

  • gdouble: requested opacity for this widget.

func (*Widget) OverrideBackgroundColor deprecated

func (widget *Widget) OverrideBackgroundColor(state StateFlags, color *gdk.RGBA)

OverrideBackgroundColor sets the background color to use for a widget.

All other style values are left untouched. See gtk_widget_override_color().

Deprecated: This function is not useful in the context of CSS-based rendering. If you wish to change the way a widget renders its background you should use a custom CSS style, through an application-specific StyleProvider and a CSS style class. You can also override the default drawing of a widget through the Widget::draw signal, and use Cairo to draw a specific color, regardless of the CSS style.

The function takes the following parameters:

  • state for which to set the background color.
  • color (optional) to assign, or NULL to undo the effect of previous calls to gtk_widget_override_background_color().

func (*Widget) OverrideColor deprecated

func (widget *Widget) OverrideColor(state StateFlags, color *gdk.RGBA)

OverrideColor sets the color to use for a widget.

All other style values are left untouched.

This function does not act recursively. Setting the color of a container does not affect its children. Note that some widgets that you may not think of as containers, for instance Buttons, are actually containers.

This API is mostly meant as a quick way for applications to change a widget appearance. If you are developing a widgets library and intend this change to be themeable, it is better done by setting meaningful CSS classes in your widget/container implementation through gtk_style_context_add_class().

This way, your widget library can install a CssProvider with the GTK_STYLE_PROVIDER_PRIORITY_FALLBACK priority in order to provide a default styling for those widgets that need so, and this theming may fully overridden by the user’s theme.

Note that for complex widgets this may bring in undesired results (such as uniform background color everywhere), in these cases it is better to fully style such widgets through a CssProvider with the GTK_STYLE_PROVIDER_PRIORITY_APPLICATION priority.

Deprecated: Use a custom style provider and style classes instead.

The function takes the following parameters:

  • state for which to set the color.
  • color (optional) to assign, or NULL to undo the effect of previous calls to gtk_widget_override_color().

func (*Widget) OverrideCursor deprecated

func (widget *Widget) OverrideCursor(cursor, secondaryCursor *gdk.RGBA)

OverrideCursor sets the cursor color to use in a widget, overriding the cursor-color and secondary-cursor-color style properties. All other style values are left untouched. See also gtk_widget_modify_style().

Note that the underlying properties have the Color type, so the alpha value in primary and secondary will be ignored.

Deprecated: This function is not useful in the context of CSS-based rendering. If you wish to change the color used to render the primary and secondary cursors you should use a custom CSS style, through an application-specific StyleProvider and a CSS style class.

The function takes the following parameters:

  • cursor (optional): color to use for primary cursor (does not need to be allocated), or NULL to undo the effect of previous calls to of gtk_widget_override_cursor().
  • secondaryCursor (optional): color to use for secondary cursor (does not need to be allocated), or NULL to undo the effect of previous calls to of gtk_widget_override_cursor().

func (*Widget) OverrideFont deprecated

func (widget *Widget) OverrideFont(fontDesc *pango.FontDescription)

OverrideFont sets the font to use for a widget. All other style values are left untouched. See gtk_widget_override_color().

Deprecated: This function is not useful in the context of CSS-based rendering. If you wish to change the font a widget uses to render its text you should use a custom CSS style, through an application-specific StyleProvider and a CSS style class.

The function takes the following parameters:

  • fontDesc (optional): font description to use, or NULL to undo the effect of previous calls to gtk_widget_override_font().

func (*Widget) OverrideSymbolicColor deprecated

func (widget *Widget) OverrideSymbolicColor(name string, color *gdk.RGBA)

OverrideSymbolicColor sets a symbolic color for a widget.

All other style values are left untouched. See gtk_widget_override_color() for overriding the foreground or background color.

Deprecated: This function is not useful in the context of CSS-based rendering. If you wish to change the color used to render symbolic icons you should use a custom CSS style, through an application-specific StyleProvider and a CSS style class.

The function takes the following parameters:

  • name of the symbolic color to modify.
  • color (optional) to assign (does not need to be allocated), or NULL to undo the effect of previous calls to gtk_widget_override_symbolic_color().

func (*Widget) PangoContext

func (widget *Widget) PangoContext() *pango.Context

PangoContext gets a Context with the appropriate font map, font description, and base direction for this widget. Unlike the context returned by gtk_widget_create_pango_context(), this context is owned by the widget (it can be used until the screen for the widget changes or the widget is removed from its toplevel), and will be updated to match any changes to the widget’s attributes. This can be tracked by using the Widget::screen-changed signal on the widget.

The function returns the following values:

  • context for the widget.

func (*Widget) Parent

func (widget *Widget) Parent() Widgetter

Parent returns the parent container of widget.

The function returns the following values:

  • ret (optional): parent container of widget, or NULL.

func (*Widget) ParentWindow

func (widget *Widget) ParentWindow() gdk.Windower

ParentWindow gets widget’s parent window, or NULL if it does not have one.

The function returns the following values:

  • window (optional): parent window of widget, or NULL if it does not have a parent window.

func (*Widget) Path deprecated

func (widget *Widget) Path() (pathLength uint, path, pathReversed string)

Path obtains the full path to widget. The path is simply the name of a widget and all its parents in the container hierarchy, separated by periods. The name of a widget comes from gtk_widget_get_name(). Paths are used to apply styles to a widget in gtkrc configuration files. Widget names are the type of the widget by default (e.g. “GtkButton”) or can be set to an application-specific value with gtk_widget_set_name(). By setting the name of a widget, you allow users or theme authors to apply styles to that specific widget in their gtkrc file. path_reversed_p fills in the path in reverse order, i.e. starting with widget’s name instead of starting with the name of widget’s outermost ancestor.

Deprecated: Use gtk_widget_get_path() instead.

The function returns the following values:

  • pathLength (optional): location to store length of the path, or NULL.
  • path (optional): location to store allocated path string, or NULL.
  • pathReversed (optional): location to store allocated reverse path string, or NULL.

func (*Widget) Pointer deprecated

func (widget *Widget) Pointer() (x, y int)

Pointer obtains the location of the mouse pointer in widget coordinates. Widget coordinates are a bit odd; for historical reasons, they are defined as widget->window coordinates for widgets that return TRUE for gtk_widget_get_has_window(); and are relative to widget->allocation.x, widget->allocation.y otherwise.

Deprecated: Use gdk_window_get_device_position() instead.

The function returns the following values:

  • x (optional): return location for the X coordinate, or NULL.
  • y (optional): return location for the Y coordinate, or NULL.

func (*Widget) PreferredHeight

func (widget *Widget) PreferredHeight() (minimumHeight, naturalHeight int)

PreferredHeight retrieves a widget’s initial minimum and natural height.

This call is specific to width-for-height requests.

The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any SizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.

The function returns the following values:

  • minimumHeight (optional): location to store the minimum height, or NULL.
  • naturalHeight (optional): location to store the natural height, or NULL.

func (*Widget) PreferredHeightAndBaselineForWidth

func (widget *Widget) PreferredHeightAndBaselineForWidth(width int) (minimumHeight, naturalHeight, minimumBaseline, naturalBaseline int)

PreferredHeightAndBaselineForWidth retrieves a widget’s minimum and natural height and the corresponding baselines if it would be given the specified width, or the default height if width is -1. The baselines may be -1 which means that no baseline is requested for this widget.

The returned request will be modified by the GtkWidgetClass::adjust_size_request and GtkWidgetClass::adjust_baseline_request virtual methods and by any SizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.

The function takes the following parameters:

  • width which is available for allocation, or -1 if none.

The function returns the following values:

  • minimumHeight (optional): location for storing the minimum height, or NULL.
  • naturalHeight (optional): location for storing the natural height, or NULL.
  • minimumBaseline (optional): location for storing the baseline for the minimum height, or NULL.
  • naturalBaseline (optional): location for storing the baseline for the natural height, or NULL.

func (*Widget) PreferredHeightForWidth

func (widget *Widget) PreferredHeightForWidth(width int) (minimumHeight, naturalHeight int)

PreferredHeightForWidth retrieves a widget’s minimum and natural height if it would be given the specified width.

The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any SizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.

The function takes the following parameters:

  • width which is available for allocation.

The function returns the following values:

  • minimumHeight (optional): location for storing the minimum height, or NULL.
  • naturalHeight (optional): location for storing the natural height, or NULL.

func (*Widget) PreferredSize

func (widget *Widget) PreferredSize() (minimumSize, naturalSize *Requisition)

PreferredSize retrieves the minimum and natural size of a widget, taking into account the widget’s preference for height-for-width management.

This is used to retrieve a suitable size by container widgets which do not impose any restrictions on the child placement. It can be used to deduce toplevel window and menu sizes as well as child widgets in free-form containers such as GtkLayout.

Handle with care. Note that the natural height of a height-for-width widget will generally be a smaller size than the minimum height, since the required height for the natural width is generally smaller than the required height for the minimum width.

Use gtk_widget_get_preferred_height_and_baseline_for_width() if you want to support baseline alignment.

The function returns the following values:

  • minimumSize (optional): location for storing the minimum size, or NULL.
  • naturalSize (optional): location for storing the natural size, or NULL.

func (*Widget) PreferredWidth

func (widget *Widget) PreferredWidth() (minimumWidth, naturalWidth int)

PreferredWidth retrieves a widget’s initial minimum and natural width.

This call is specific to height-for-width requests.

The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any SizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.

The function returns the following values:

  • minimumWidth (optional): location to store the minimum width, or NULL.
  • naturalWidth (optional): location to store the natural width, or NULL.

func (*Widget) PreferredWidthForHeight

func (widget *Widget) PreferredWidthForHeight(height int) (minimumWidth, naturalWidth int)

PreferredWidthForHeight retrieves a widget’s minimum and natural width if it would be given the specified height.

The returned request will be modified by the GtkWidgetClass::adjust_size_request virtual method and by any SizeGroups that have been applied. That is, the returned request is the one that should be used for layout, not necessarily the one returned by the widget itself.

The function takes the following parameters:

  • height which is available for allocation.

The function returns the following values:

  • minimumWidth (optional): location for storing the minimum width, or NULL.
  • naturalWidth (optional): location for storing the natural width, or NULL.

func (*Widget) QueueAllocate

func (widget *Widget) QueueAllocate()

QueueAllocate: this function is only for use in widget implementations.

Flags the widget for a rerun of the GtkWidgetClass::size_allocate function. Use this function instead of gtk_widget_queue_resize() when the widget's size request didn't change but it wants to reposition its contents.

An example user of this function is gtk_widget_set_halign().

func (*Widget) QueueComputeExpand

func (widget *Widget) QueueComputeExpand()

QueueComputeExpand: mark widget as needing to recompute its expand flags. Call this function when setting legacy expand child properties on the child of a container.

See gtk_widget_compute_expand().

func (*Widget) QueueDraw

func (widget *Widget) QueueDraw()

QueueDraw: equivalent to calling gtk_widget_queue_draw_area() for the entire area of a widget.

func (*Widget) QueueDrawArea

func (widget *Widget) QueueDrawArea(x, y, width, height int)

QueueDrawArea: convenience function that calls gtk_widget_queue_draw_region() on the region created from the given coordinates.

The region here is specified in widget coordinates. Widget coordinates are a bit odd; for historical reasons, they are defined as widget->window coordinates for widgets that return TRUE for gtk_widget_get_has_window(), and are relative to widget->allocation.x, widget->allocation.y otherwise.

width or height may be 0, in this case this function does nothing. Negative values for width and height are not allowed.

The function takes the following parameters:

  • x coordinate of upper-left corner of rectangle to redraw.
  • y coordinate of upper-left corner of rectangle to redraw.
  • width of region to draw.
  • height of region to draw.

func (*Widget) QueueDrawRegion

func (widget *Widget) QueueDrawRegion(region *cairo.Region)

QueueDrawRegion invalidates the area of widget defined by region by calling gdk_window_invalidate_region() on the widget’s window and all its child windows. Once the main loop becomes idle (after the current batch of events has been processed, roughly), the window will receive expose events for the union of all regions that have been invalidated.

Normally you would only use this function in widget implementations. You might also use it to schedule a redraw of a DrawingArea or some portion thereof.

The function takes the following parameters:

  • region to draw.

func (*Widget) QueueResize

func (widget *Widget) QueueResize()

QueueResize: this function is only for use in widget implementations. Flags a widget to have its size renegotiated; should be called when a widget for some reason has a new size request. For example, when you change the text in a Label, Label queues a resize to ensure there’s enough space for the new text.

Note that you cannot call gtk_widget_queue_resize() on a widget from inside its implementation of the GtkWidgetClass::size_allocate virtual method. Calls to gtk_widget_queue_resize() from inside GtkWidgetClass::size_allocate will be silently ignored.

func (*Widget) QueueResizeNoRedraw

func (widget *Widget) QueueResizeNoRedraw()

QueueResizeNoRedraw: this function works like gtk_widget_queue_resize(), except that the widget is not invalidated.

func (*Widget) Realize

func (widget *Widget) Realize()

Realize creates the GDK (windowing system) resources associated with a widget. For example, widget->window will be created when a widget is realized. Normally realization happens implicitly; if you show a widget and all its parent containers, then the widget will be realized and mapped automatically.

Realizing a widget requires all the widget’s parent widgets to be realized; calling gtk_widget_realize() realizes the widget’s parents in addition to widget itself. If a widget is not yet inside a toplevel window when you realize it, bad things will happen.

This function is primarily used in widget implementations, and isn’t very useful otherwise. Many times when you think you might need it, a better approach is to connect to a signal that will be called after the widget is realized automatically, such as Widget::draw. Or simply g_signal_connect () to the Widget::realize signal.

func (*Widget) Realized

func (widget *Widget) Realized() bool

Realized determines whether widget is realized.

The function returns the following values:

  • ok: TRUE if widget is realized, FALSE otherwise.

func (*Widget) ReceivesDefault

func (widget *Widget) ReceivesDefault() bool

ReceivesDefault determines whether widget is always treated as the default widget within its toplevel when it has the focus, even if another widget is the default.

See gtk_widget_set_receives_default().

The function returns the following values:

  • ok: TRUE if widget acts as the default widget when focused, FALSE otherwise.

func (*Widget) RegionIntersect deprecated

func (widget *Widget) RegionIntersect(region *cairo.Region) *cairo.Region

RegionIntersect computes the intersection of a widget’s area and region, returning the intersection. The result may be empty, use cairo_region_is_empty() to check.

Deprecated: Use gtk_widget_get_allocation() and cairo_region_intersect_rectangle() to get the same behavior.

The function takes the following parameters:

  • region in the same coordinate system as widget->allocation. That is, relative to widget->window for widgets which return FALSE from gtk_widget_get_has_window(); relative to the parent window of widget->window otherwise.

The function returns the following values:

  • ret: newly allocated region holding the intersection of widget and region.

func (*Widget) RegisterWindow

func (widget *Widget) RegisterWindow(window gdk.Windower)

RegisterWindow registers a Window with the widget and sets it up so that the widget receives events for it. Call gtk_widget_unregister_window() when destroying the window.

Before 3.8 you needed to call gdk_window_set_user_data() directly to set this up. This is now deprecated and you should use gtk_widget_register_window() instead. Old code will keep working as is, although some new features like transparency might not work perfectly.

The function takes the following parameters:

  • window: Window.

func (*Widget) RemoveAccelerator

func (widget *Widget) RemoveAccelerator(accelGroup *AccelGroup, accelKey uint, accelMods gdk.ModifierType) bool

RemoveAccelerator removes an accelerator from widget, previously installed with gtk_widget_add_accelerator().

The function takes the following parameters:

  • accelGroup: accel group for this widget.
  • accelKey: GDK keyval of the accelerator.
  • accelMods: modifier key combination of the accelerator.

The function returns the following values:

  • ok: whether an accelerator was installed and could be removed.

func (*Widget) RemoveMnemonicLabel

func (widget *Widget) RemoveMnemonicLabel(label Widgetter)

RemoveMnemonicLabel removes a widget from the list of mnemonic labels for this widget. (See gtk_widget_list_mnemonic_labels()). The widget must have previously been added to the list with gtk_widget_add_mnemonic_label().

The function takes the following parameters:

  • label that was previously set as a mnemonic label for widget with gtk_widget_add_mnemonic_label().

func (*Widget) RemoveTickCallback

func (widget *Widget) RemoveTickCallback(id uint)

RemoveTickCallback removes a tick callback previously registered with gtk_widget_add_tick_callback().

The function takes the following parameters:

  • id returned by gtk_widget_add_tick_callback().

func (*Widget) RenderIcon deprecated

func (widget *Widget) RenderIcon(stockId string, size int, detail string) *gdkpixbuf.Pixbuf

RenderIcon: convenience function that uses the theme settings for widget to look up stock_id and render it to a pixbuf. stock_id should be a stock icon ID such as K_STOCK_OPEN or K_STOCK_OK. size should be a size such as K_ICON_SIZE_MENU. detail should be a string that identifies the widget or code doing the rendering, so that theme engines can special-case rendering for that widget or code.

The pixels in the returned Pixbuf are shared with the rest of the application and should not be modified. The pixbuf should be freed after use with g_object_unref().

Deprecated: Use gtk_widget_render_icon_pixbuf() instead.

The function takes the following parameters:

  • stockId: stock ID.
  • size: stock size (IconSize). A size of (GtkIconSize)-1 means render at the size of the source and don’t scale (if there are multiple source sizes, GTK+ picks one of the available sizes).
  • detail (optional): render detail to pass to theme engine.

The function returns the following values:

  • pixbuf (optional): new pixbuf, or NULL if the stock ID wasn’t known.

func (*Widget) RenderIconPixbuf deprecated

func (widget *Widget) RenderIconPixbuf(stockId string, size int) *gdkpixbuf.Pixbuf

RenderIconPixbuf: convenience function that uses the theme engine and style settings for widget to look up stock_id and render it to a pixbuf. stock_id should be a stock icon ID such as K_STOCK_OPEN or K_STOCK_OK. size should be a size such as K_ICON_SIZE_MENU.

The pixels in the returned Pixbuf are shared with the rest of the application and should not be modified. The pixbuf should be freed after use with g_object_unref().

Deprecated: Use gtk_icon_theme_load_icon() instead.

The function takes the following parameters:

  • stockId: stock ID.
  • size: stock size (IconSize). A size of (GtkIconSize)-1 means render at the size of the source and don’t scale (if there are multiple source sizes, GTK+ picks one of the available sizes).

The function returns the following values:

  • pixbuf (optional): new pixbuf, or NULL if the stock ID wasn’t known.

func (*Widget) Reparent deprecated

func (widget *Widget) Reparent(newParent Widgetter)

Reparent moves a widget from one Container to another, handling reference count issues to avoid destroying the widget.

Deprecated: Use gtk_container_remove() and gtk_container_add().

The function takes the following parameters:

  • newParent to move the widget into.

func (*Widget) RequestMode

func (widget *Widget) RequestMode() SizeRequestMode

RequestMode gets whether the widget prefers a height-for-width layout or a width-for-height layout.

Bin widgets generally propagate the preference of their child, container widgets need to request something either in context of their children or in context of their allocation capabilities.

The function returns the following values:

  • sizeRequestMode preferred by widget.

func (*Widget) Requisition deprecated

func (widget *Widget) Requisition() *Requisition

Requisition retrieves the widget’s requisition.

This function should only be used by widget implementations in order to figure whether the widget’s requisition has actually changed after some internal state change (so that they can call gtk_widget_queue_resize() instead of gtk_widget_queue_draw()).

Normally, gtk_widget_size_request() should be used.

Deprecated: The Requisition cache on the widget was removed, If you need to cache sizes across requests and allocations, add an explicit cache to the widget in question instead.

The function returns the following values:

  • requisition: pointer to a Requisition to copy to.

func (*Widget) ResetRCStyles deprecated

func (widget *Widget) ResetRCStyles()

ResetRCStyles: reset the styles of widget and all descendents, so when they are looked up again, they get the correct values for the currently loaded RC file settings.

This function is not useful for applications.

Deprecated: Use StyleContext instead, and gtk_widget_reset_style().

func (*Widget) ResetStyle

func (widget *Widget) ResetStyle()

ResetStyle updates the style context of widget and all descendants by updating its widget path. Containers may want to use this on a child when reordering it in a way that a different style might apply to it. See also gtk_container_get_path_for_child().

func (*Widget) RootWindow deprecated

func (widget *Widget) RootWindow() gdk.Windower

RootWindow: get the root window where this widget is located. This function can only be called after the widget has been added to a widget hierarchy with Window at the top.

The root window is useful for such purposes as creating a popup Window associated with the window. In general, you should only create display specific resources when a widget has been realized, and you should free those resources when the widget is unrealized.

Deprecated: Use gdk_screen_get_root_window() instead.

The function returns the following values:

  • window root window for the toplevel for this widget.

func (*Widget) ScaleFactor

func (widget *Widget) ScaleFactor() int

ScaleFactor retrieves the internal scale factor that maps from window coordinates to the actual device pixels. On traditional systems this is 1, on high density outputs, it can be a higher value (typically 2).

See gdk_window_get_scale_factor().

The function returns the following values:

  • gint: scale factor for widget.

func (*Widget) Screen

func (widget *Widget) Screen() *gdk.Screen

Screen: get the Screen from the toplevel window associated with this widget. This function can only be called after the widget has been added to a widget hierarchy with a Window at the top.

In general, you should only create screen specific resources when a widget has been realized, and you should free those resources when the widget is unrealized.

The function returns the following values:

  • screen for the toplevel for this widget.

func (*Widget) SendExpose deprecated

func (widget *Widget) SendExpose(event *gdk.Event) int

SendExpose: very rarely-used function. This function is used to emit an expose event on a widget. This function is not normally used directly. The only time it is used is when propagating an expose event to a windowless child widget (gtk_widget_get_has_window() is FALSE), and that is normally done using gtk_container_propagate_draw().

If you want to force an area of a window to be redrawn, use gdk_window_invalidate_rect() or gdk_window_invalidate_region(). To cause the redraw to be done immediately, follow that call with a call to gdk_window_process_updates().

Deprecated: Application and widget code should not handle expose events directly; invalidation should use the Widget API, and drawing should only happen inside Widget::draw implementations.

The function takes the following parameters:

  • event: expose Event.

The function returns the following values:

  • gint: return from the event signal emission (TRUE if the event was handled).

func (*Widget) SendFocusChange

func (widget *Widget) SendFocusChange(event *gdk.Event) bool

SendFocusChange sends the focus change event to widget

This function is not meant to be used by applications. The only time it should be used is when it is necessary for a Widget to assign focus to a widget that is semantically owned by the first widget even though it’s not a direct child - for instance, a search entry in a floating window similar to the quick search in TreeView.

An example of its usage is:

GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE);

fevent->focus_change.type = GDK_FOCUS_CHANGE;
fevent->focus_change.in = TRUE;
fevent->focus_change.window = _gtk_widget_get_window (widget);
if (fevent->focus_change.window != NULL)
  g_object_ref (fevent->focus_change.window);

gtk_widget_send_focus_change (widget, fevent);

gdk_event_free (event);.

The function takes the following parameters:

  • event of type GDK_FOCUS_CHANGE.

The function returns the following values:

  • ok: return value from the event signal emission: TRUE if the event was handled, and FALSE otherwise.

func (*Widget) Sensitive

func (widget *Widget) Sensitive() bool

Sensitive returns the widget’s sensitivity (in the sense of returning the value that has been set using gtk_widget_set_sensitive()).

The effective sensitivity of a widget is however determined by both its own and its parent widget’s sensitivity. See gtk_widget_is_sensitive().

The function returns the following values:

  • ok: TRUE if the widget is sensitive.

func (*Widget) SetAccelPath

func (widget *Widget) SetAccelPath(accelPath string, accelGroup *AccelGroup)

SetAccelPath: given an accelerator group, accel_group, and an accelerator path, accel_path, sets up an accelerator in accel_group so whenever the key binding that is defined for accel_path is pressed, widget will be activated. This removes any accelerators (for any accelerator group) installed by previous calls to gtk_widget_set_accel_path(). Associating accelerators with paths allows them to be modified by the user and the modifications to be saved for future use. (See gtk_accel_map_save().)

This function is a low level function that would most likely be used by a menu creation system like UIManager. If you use UIManager, setting up accelerator paths will be done automatically.

Even when you you aren’t using UIManager, if you only want to set up accelerators on menu items gtk_menu_item_set_accel_path() provides a somewhat more convenient interface.

Note that accel_path string will be stored in a #GQuark. Therefore, if you pass a static string, you can save some memory by interning it first with g_intern_static_string().

The function takes the following parameters:

  • accelPath (optional): path used to look up the accelerator.
  • accelGroup (optional): AccelGroup.

func (*Widget) SetAllocation

func (widget *Widget) SetAllocation(allocation *Allocation)

SetAllocation sets the widget’s allocation. This should not be used directly, but from within a widget’s size_allocate method.

The allocation set should be the “adjusted” or actual allocation. If you’re implementing a Container, you want to use gtk_widget_size_allocate() instead of gtk_widget_set_allocation(). The GtkWidgetClass::adjust_size_allocation virtual method adjusts the allocation inside gtk_widget_size_allocate() to create an adjusted allocation.

The function takes the following parameters:

  • allocation: pointer to a Allocation to copy from.

func (*Widget) SetAppPaintable

func (widget *Widget) SetAppPaintable(appPaintable bool)

SetAppPaintable sets whether the application intends to draw on the widget in an Widget::draw handler.

This is a hint to the widget and does not affect the behavior of the GTK+ core; many widgets ignore this flag entirely. For widgets that do pay attention to the flag, such as EventBox and Window, the effect is to suppress default themed drawing of the widget's background. (Children of the widget will still be drawn.) The application is then entirely responsible for drawing the widget background.

Note that the background is still drawn when the widget is mapped.

The function takes the following parameters:

  • appPaintable: TRUE if the application will paint on the widget.

func (*Widget) SetCanDefault

func (widget *Widget) SetCanDefault(canDefault bool)

SetCanDefault specifies whether widget can be a default widget. See gtk_widget_grab_default() for details about the meaning of “default”.

The function takes the following parameters:

  • canDefault: whether or not widget can be a default widget.

func (*Widget) SetCanFocus

func (widget *Widget) SetCanFocus(canFocus bool)

SetCanFocus specifies whether widget can own the input focus. See gtk_widget_grab_focus() for actually setting the input focus on a widget.

The function takes the following parameters:

  • canFocus: whether or not widget can own the input focus.

func (*Widget) SetChildVisible

func (widget *Widget) SetChildVisible(isVisible bool)

SetChildVisible sets whether widget should be mapped along with its when its parent is mapped and widget has been shown with gtk_widget_show().

The child visibility can be set for widget before it is added to a container with gtk_widget_set_parent(), to avoid mapping children unnecessary before immediately unmapping them. However it will be reset to its default state of TRUE when the widget is removed from a container.

Note that changing the child visibility of a widget does not queue a resize on the widget. Most of the time, the size of a widget is computed from all visible children, whether or not they are mapped. If this is not the case, the container can queue a resize itself.

This function is only useful for container implementations and never should be called by an application.

The function takes the following parameters:

  • isVisible: if TRUE, widget should be mapped along with its parent.

func (*Widget) SetClip

func (widget *Widget) SetClip(clip *Allocation)

SetClip sets the widget’s clip. This must not be used directly, but from within a widget’s size_allocate method. It must be called after gtk_widget_set_allocation() (or after chaining up to the parent class), because that function resets the clip.

The clip set should be the area that widget draws on. If widget is a Container, the area must contain all children's clips.

If this function is not called by widget during a ::size-allocate handler, the clip will be set to widget's allocation.

The function takes the following parameters:

  • clip: pointer to a Allocation to copy from.

func (*Widget) SetCompositeName deprecated

func (widget *Widget) SetCompositeName(name string)

SetCompositeName sets a widgets composite name. The widget must be a composite child of its parent; see gtk_widget_push_composite_child().

Deprecated: Use gtk_widget_class_set_template(), or don’t use this API at all.

The function takes the following parameters:

  • name to set.

func (*Widget) SetDeviceEnabled

func (widget *Widget) SetDeviceEnabled(device gdk.Devicer, enabled bool)

SetDeviceEnabled enables or disables a Device to interact with widget and all its children.

It does so by descending through the Window hierarchy and enabling the same mask that is has for core events (i.e. the one that gdk_window_get_events() returns).

The function takes the following parameters:

  • device: Device.
  • enabled: whether to enable the device.

func (*Widget) SetDeviceEvents

func (widget *Widget) SetDeviceEvents(device gdk.Devicer, events gdk.EventMask)

SetDeviceEvents sets the device event mask (see EventMask) for a widget. The event mask determines which events a widget will receive from device. Keep in mind that different widgets have different default event masks, and by changing the event mask you may disrupt a widget’s functionality, so be careful. This function must be called while a widget is unrealized. Consider gtk_widget_add_device_events() for widgets that are already realized, or if you want to preserve the existing event mask. This function can’t be used with windowless widgets (which return FALSE from gtk_widget_get_has_window()); to get events on those widgets, place them inside a EventBox and receive events on the event box.

The function takes the following parameters:

  • device: Device.
  • events: event mask.

func (*Widget) SetDirection

func (widget *Widget) SetDirection(dir TextDirection)

SetDirection sets the reading direction on a particular widget. This direction controls the primary direction for widgets containing text, and also the direction in which the children of a container are packed. The ability to set the direction is present in order so that correct localization into languages with right-to-left reading directions can be done. Generally, applications will let the default reading direction present, except for containers where the containers are arranged in an order that is explicitly visual rather than logical (such as buttons for text justification).

If the direction is set to GTK_TEXT_DIR_NONE, then the value set by gtk_widget_set_default_direction() will be used.

The function takes the following parameters:

  • dir: new direction.

func (*Widget) SetDoubleBuffered deprecated

func (widget *Widget) SetDoubleBuffered(doubleBuffered bool)

SetDoubleBuffered widgets are double buffered by default; you can use this function to turn off the buffering. “Double buffered” simply means that gdk_window_begin_draw_frame() and gdk_window_end_draw_frame() are called automatically around expose events sent to the widget. gdk_window_begin_draw_frame() diverts all drawing to a widget's window to an offscreen buffer, and gdk_window_end_draw_frame() draws the buffer to the screen. The result is that users see the window update in one smooth step, and don’t see individual graphics primitives being rendered.

In very simple terms, double buffered widgets don’t flicker, so you would only use this function to turn off double buffering if you had special needs and really knew what you were doing.

Note: if you turn off double-buffering, you have to handle expose events, since even the clearing to the background color or pixmap will not happen automatically (as it is done in gdk_window_begin_draw_frame()).

In 3.10 GTK and GDK have been restructured for translucent drawing. Since then expose events for double-buffered widgets are culled into a single event to the toplevel GDK window. If you now unset double buffering, you will cause a separate rendering pass for every widget. This will likely cause rendering problems - in particular related to stacking - and usually increases rendering times significantly.

Deprecated: This function does not work under non-X11 backends or with non-native windows. It should not be used in newly written code.

The function takes the following parameters:

  • doubleBuffered: TRUE to double-buffer a widget.

func (*Widget) SetEvents

func (widget *Widget) SetEvents(events int)

SetEvents sets the event mask (see EventMask) for a widget. The event mask determines which events a widget will receive. Keep in mind that different widgets have different default event masks, and by changing the event mask you may disrupt a widget’s functionality, so be careful. This function must be called while a widget is unrealized. Consider gtk_widget_add_events() for widgets that are already realized, or if you want to preserve the existing event mask. This function can’t be used with widgets that have no window. (See gtk_widget_get_has_window()). To get events on those widgets, place them inside a EventBox and receive events on the event box.

The function takes the following parameters:

  • events: event mask.

func (*Widget) SetFocusOnClick

func (widget *Widget) SetFocusOnClick(focusOnClick bool)

SetFocusOnClick sets whether the widget should grab focus when it is clicked with the mouse. Making mouse clicks not grab focus is useful in places like toolbars where you don’t want the keyboard focus removed from the main area of the application.

The function takes the following parameters:

  • focusOnClick: whether the widget should grab focus when clicked with the mouse.

func (*Widget) SetFontMap

func (widget *Widget) SetFontMap(fontMap pango.FontMapper)

SetFontMap sets the font map to use for Pango rendering. When not set, the widget will inherit the font map from its parent.

The function takes the following parameters:

  • fontMap (optional) or NULL to unset any previously set font map.

func (*Widget) SetFontOptions

func (widget *Widget) SetFontOptions(options *cairo.FontOptions)

SetFontOptions sets the #cairo_font_options_t used for Pango rendering in this widget. When not set, the default font options for the Screen will be used.

The function takes the following parameters:

  • options (optional) or NULL to unset any previously set default font options.

func (*Widget) SetHAlign

func (widget *Widget) SetHAlign(align Align)

SetHAlign sets the horizontal alignment of widget. See the Widget:halign property.

The function takes the following parameters:

  • align: horizontal alignment.

func (*Widget) SetHExpand

func (widget *Widget) SetHExpand(expand bool)

SetHExpand sets whether the widget would like any available extra horizontal space. When a user resizes a Window, widgets with expand=TRUE generally receive the extra space. For example, a list or scrollable area or document in your window would often be set to expand.

Call this function to set the expand flag if you would like your widget to become larger horizontally when the window has extra room.

By default, widgets automatically expand if any of their children want to expand. (To see if a widget will automatically expand given its current children and state, call gtk_widget_compute_expand(). A container can decide how the expandability of children affects the expansion of the container by overriding the compute_expand virtual method on Widget.).

Setting hexpand explicitly with this function will override the automatic expand behavior.

This function forces the widget to expand or not to expand, regardless of children. The override occurs because gtk_widget_set_hexpand() sets the hexpand-set property (see gtk_widget_set_hexpand_set()) which causes the widget’s hexpand value to be used, rather than looking at children and widget state.

The function takes the following parameters:

  • expand: whether to expand.

func (*Widget) SetHExpandSet

func (widget *Widget) SetHExpandSet(set bool)

SetHExpandSet sets whether the hexpand flag (see gtk_widget_get_hexpand()) will be used.

The hexpand-set property will be set automatically when you call gtk_widget_set_hexpand() to set hexpand, so the most likely reason to use this function would be to unset an explicit expand flag.

If hexpand is set, then it overrides any computed expand value based on child widgets. If hexpand is not set, then the expand value depends on whether any children of the widget would like to expand.

There are few reasons to use this function, but it’s here for completeness and consistency.

The function takes the following parameters:

  • set: value for hexpand-set property.

func (*Widget) SetHasTooltip

func (widget *Widget) SetHasTooltip(hasTooltip bool)

SetHasTooltip sets the has-tooltip property on widget to has_tooltip. See Widget:has-tooltip for more information.

The function takes the following parameters:

  • hasTooltip: whether or not widget has a tooltip.

func (*Widget) SetHasWindow

func (widget *Widget) SetHasWindow(hasWindow bool)

SetHasWindow specifies whether widget has a Window of its own. Note that all realized widgets have a non-NULL “window” pointer (gtk_widget_get_window() never returns a NULL window when a widget is realized), but for many of them it’s actually the Window of one of its parent widgets. Widgets that do not create a window for themselves in Widget::realize must announce this by calling this function with has_window = FALSE.

This function should only be called by widget implementations, and they should call it in their init() function.

The function takes the following parameters:

  • hasWindow: whether or not widget has a window.

func (*Widget) SetMapped

func (widget *Widget) SetMapped(mapped bool)

SetMapped marks the widget as being mapped.

This function should only ever be called in a derived widget's “map” or “unmap” implementation.

The function takes the following parameters:

  • mapped: TRUE to mark the widget as mapped.

func (*Widget) SetMarginBottom

func (widget *Widget) SetMarginBottom(margin int)

SetMarginBottom sets the bottom margin of widget. See the Widget:margin-bottom property.

The function takes the following parameters:

  • margin: bottom margin.

func (*Widget) SetMarginEnd

func (widget *Widget) SetMarginEnd(margin int)

SetMarginEnd sets the end margin of widget. See the Widget:margin-end property.

The function takes the following parameters:

  • margin: end margin.

func (*Widget) SetMarginLeft deprecated

func (widget *Widget) SetMarginLeft(margin int)

SetMarginLeft sets the left margin of widget. See the Widget:margin-left property.

Deprecated: Use gtk_widget_set_margin_start() instead.

The function takes the following parameters:

  • margin: left margin.

func (*Widget) SetMarginRight deprecated

func (widget *Widget) SetMarginRight(margin int)

SetMarginRight sets the right margin of widget. See the Widget:margin-right property.

Deprecated: Use gtk_widget_set_margin_end() instead.

The function takes the following parameters:

  • margin: right margin.

func (*Widget) SetMarginStart

func (widget *Widget) SetMarginStart(margin int)

SetMarginStart sets the start margin of widget. See the Widget:margin-start property.

The function takes the following parameters:

  • margin: start margin.

func (*Widget) SetMarginTop

func (widget *Widget) SetMarginTop(margin int)

SetMarginTop sets the top margin of widget. See the Widget:margin-top property.

The function takes the following parameters:

  • margin: top margin.

func (*Widget) SetName

func (widget *Widget) SetName(name string)

SetName widgets can be named, which allows you to refer to them from a CSS file. You can apply a style to widgets with a particular name in the CSS file. See the documentation for the CSS syntax (on the same page as the docs for StyleContext).

Note that the CSS syntax has certain special characters to delimit and represent elements in a selector (period, #, >, *...), so using these will make your widget impossible to match by name. Any combination of alphanumeric symbols, dashes and underscores will suffice.

The function takes the following parameters:

  • name for the widget.

func (*Widget) SetNoShowAll

func (widget *Widget) SetNoShowAll(noShowAll bool)

SetNoShowAll sets the Widget:no-show-all property, which determines whether calls to gtk_widget_show_all() will affect this widget.

This is mostly for use in constructing widget hierarchies with externally controlled visibility, see UIManager.

The function takes the following parameters:

  • noShowAll: new value for the “no-show-all” property.

func (*Widget) SetOpacity

func (widget *Widget) SetOpacity(opacity float64)

SetOpacity: request the widget to be rendered partially transparent, with opacity 0 being fully transparent and 1 fully opaque. (Opacity values are clamped to the [0,1] range.). This works on both toplevel widget, and child widgets, although there are some limitations:

For toplevel widgets this depends on the capabilities of the windowing system. On X11 this has any effect only on X screens with a compositing manager running. See gtk_widget_is_composited(). On Windows it should work always, although setting a window’s opacity after the window has been shown causes it to flicker once on Windows.

For child widgets it doesn’t work if any affected widget has a native window, or disables double buffering.

The function takes the following parameters:

  • opacity: desired opacity, between 0 and 1.

func (*Widget) SetParent

func (widget *Widget) SetParent(parent Widgetter)

SetParent: this function is useful only when implementing subclasses of Container. Sets the container as the parent of widget, and takes care of some details such as updating the state and style of the child to reflect its new location. The opposite function is gtk_widget_unparent().

The function takes the following parameters:

  • parent container.

func (*Widget) SetParentWindow

func (widget *Widget) SetParentWindow(parentWindow gdk.Windower)

SetParentWindow sets a non default parent window for widget.

For Window classes, setting a parent_window effects whether the window is a toplevel window or can be embedded into other widgets.

For Window classes, this needs to be called before the window is realized.

The function takes the following parameters:

  • parentWindow: new parent window.

func (*Widget) SetRealized

func (widget *Widget) SetRealized(realized bool)

SetRealized marks the widget as being realized. This function must only be called after all Windows for the widget have been created and registered.

This function should only ever be called in a derived widget's “realize” or “unrealize” implementation.

The function takes the following parameters:

  • realized: TRUE to mark the widget as realized.

func (*Widget) SetReceivesDefault

func (widget *Widget) SetReceivesDefault(receivesDefault bool)

SetReceivesDefault specifies whether widget will be treated as the default widget within its toplevel when it has the focus, even if another widget is the default.

See gtk_widget_grab_default() for details about the meaning of “default”.

The function takes the following parameters:

  • receivesDefault: whether or not widget can be a default widget.

func (*Widget) SetRedrawOnAllocate

func (widget *Widget) SetRedrawOnAllocate(redrawOnAllocate bool)

SetRedrawOnAllocate sets whether the entire widget is queued for drawing when its size allocation changes. By default, this setting is TRUE and the entire widget is redrawn on every size change. If your widget leaves the upper left unchanged when made bigger, turning this setting off will improve performance.

Note that for widgets where gtk_widget_get_has_window() is FALSE setting this flag to FALSE turns off all allocation on resizing: the widget will not even redraw if its position changes; this is to allow containers that don’t draw anything to avoid excess invalidations. If you set this flag on a widget with no window that does draw on widget->window, you are responsible for invalidating both the old and new allocation of the widget when the widget is moved and responsible for invalidating regions newly when the widget increases size.

The function takes the following parameters:

  • redrawOnAllocate: if TRUE, the entire widget will be redrawn when it is allocated to a new size. Otherwise, only the new portion of the widget will be redrawn.

func (*Widget) SetSensitive

func (widget *Widget) SetSensitive(sensitive bool)

SetSensitive sets the sensitivity of a widget. A widget is sensitive if the user can interact with it. Insensitive widgets are “grayed out” and the user can’t interact with them. Insensitive widgets are known as “inactive”, “disabled”, or “ghosted” in some other toolkits.

The function takes the following parameters:

  • sensitive: TRUE to make the widget sensitive.

func (*Widget) SetSizeRequest

func (widget *Widget) SetSizeRequest(width, height int)

SetSizeRequest sets the minimum size of a widget; that is, the widget’s size request will be at least width by height. You can use this function to force a widget to be larger than it normally would be.

In most cases, gtk_window_set_default_size() is a better choice for toplevel windows than this function; setting the default size will still allow users to shrink the window. Setting the size request will force them to leave the window at least as large as the size request. When dealing with window sizes, gtk_window_set_geometry_hints() can be a useful function as well.

Note the inherent danger of setting any fixed size - themes, translations into other languages, different fonts, and user action can all change the appropriate size for a given widget. So, it's basically impossible to hardcode a size that will always be correct.

The size request of a widget is the smallest size a widget can accept while still functioning well and drawing itself correctly. However in some strange cases a widget may be allocated less than its requested size, and in many cases a widget may be allocated more space than it requested.

If the size request in a given direction is -1 (unset), then the “natural” size request of the widget will be used instead.

The size request set here does not include any margin from the Widget properties margin-left, margin-right, margin-top, and margin-bottom, but it does include pretty much all other padding or border properties set by any subclass of Widget.

The function takes the following parameters:

  • width widget should request, or -1 to unset.
  • height widget should request, or -1 to unset.

func (*Widget) SetState deprecated

func (widget *Widget) SetState(state StateType)

SetState: this function is for use in widget implementations. Sets the state of a widget (insensitive, prelighted, etc.) Usually you should set the state using wrapper functions such as gtk_widget_set_sensitive().

Deprecated: Use gtk_widget_set_state_flags() instead.

The function takes the following parameters:

  • state: new state for widget.

func (*Widget) SetStateFlags

func (widget *Widget) SetStateFlags(flags StateFlags, clear bool)

SetStateFlags: this function is for use in widget implementations. Turns on flag values in the current widget state (insensitive, prelighted, etc.).

This function accepts the values GTK_STATE_FLAG_DIR_LTR and GTK_STATE_FLAG_DIR_RTL but ignores them. If you want to set the widget's direction, use gtk_widget_set_direction().

It is worth mentioning that any other state than GTK_STATE_FLAG_INSENSITIVE, will be propagated down to all non-internal children if widget is a Container, while GTK_STATE_FLAG_INSENSITIVE itself will be propagated down to all Container children by different means than turning on the state flag down the hierarchy, both gtk_widget_get_state_flags() and gtk_widget_is_sensitive() will make use of these.

The function takes the following parameters:

  • flags: state flags to turn on.
  • clear: whether to clear state before turning on flags.

func (*Widget) SetStyle deprecated

func (widget *Widget) SetStyle(style *Style)

SetStyle: used to set the Style for a widget (widget->style). Since GTK 3, this function does nothing, the passed in style is ignored.

Deprecated: Use StyleContext instead.

The function takes the following parameters:

  • style (optional) or NULL to remove the effect of a previous call to gtk_widget_set_style() and go back to the default style.

func (*Widget) SetSupportMultidevice

func (widget *Widget) SetSupportMultidevice(supportMultidevice bool)

SetSupportMultidevice enables or disables multiple pointer awareness. If this setting is TRUE, widget will start receiving multiple, per device enter/leave events. Note that if custom Windows are created in Widget::realize, gdk_window_set_support_multidevice() will have to be called manually on them.

The function takes the following parameters:

  • supportMultidevice: TRUE to support input from multiple devices.

func (*Widget) SetTooltipMarkup

func (widget *Widget) SetTooltipMarkup(markup string)

SetTooltipMarkup sets markup as the contents of the tooltip, which is marked up with the [Pango text markup language][PangoMarkupFormat].

This function will take care of setting Widget:has-tooltip to TRUE and of the default handler for the Widget::query-tooltip signal.

See also the Widget:tooltip-markup property and gtk_tooltip_set_markup().

The function takes the following parameters:

  • markup (optional) contents of the tooltip for widget, or NULL.

func (*Widget) SetTooltipText

func (widget *Widget) SetTooltipText(text string)

SetTooltipText sets text as the contents of the tooltip. This function will take care of setting Widget:has-tooltip to TRUE and of the default handler for the Widget::query-tooltip signal.

See also the Widget:tooltip-text property and gtk_tooltip_set_text().

The function takes the following parameters:

  • text (optional) contents of the tooltip for widget.

func (*Widget) SetTooltipWindow

func (widget *Widget) SetTooltipWindow(customWindow *Window)

SetTooltipWindow replaces the default window used for displaying tooltips with custom_window. GTK+ will take care of showing and hiding custom_window at the right moment, to behave likewise as the default tooltip window. If custom_window is NULL, the default tooltip window will be used.

The function takes the following parameters:

  • customWindow (optional) or NULL.

func (*Widget) SetVAlign

func (widget *Widget) SetVAlign(align Align)

SetVAlign sets the vertical alignment of widget. See the Widget:valign property.

The function takes the following parameters:

  • align: vertical alignment.

func (*Widget) SetVExpand

func (widget *Widget) SetVExpand(expand bool)

SetVExpand sets whether the widget would like any available extra vertical space.

See gtk_widget_set_hexpand() for more detail.

The function takes the following parameters:

  • expand: whether to expand.

func (*Widget) SetVExpandSet

func (widget *Widget) SetVExpandSet(set bool)

SetVExpandSet sets whether the vexpand flag (see gtk_widget_get_vexpand()) will be used.

See gtk_widget_set_hexpand_set() for more detail.

The function takes the following parameters:

  • set: value for vexpand-set property.

func (*Widget) SetVisible

func (widget *Widget) SetVisible(visible bool)

SetVisible sets the visibility state of widget. Note that setting this to TRUE doesn’t mean the widget is actually viewable, see gtk_widget_get_visible().

This function simply calls gtk_widget_show() or gtk_widget_hide() but is nicer to use when the visibility of the widget depends on some condition.

The function takes the following parameters:

  • visible: whether the widget should be shown or not.

func (*Widget) SetVisual

func (widget *Widget) SetVisual(visual *gdk.Visual)

SetVisual sets the visual that should be used for by widget and its children for creating Windows. The visual must be on the same Screen as returned by gtk_widget_get_screen(), so handling the Widget::screen-changed signal is necessary.

Setting a new visual will not cause widget to recreate its windows, so you should call this function before widget is realized.

The function takes the following parameters:

  • visual (optional) to be used or NULL to unset a previous one.

func (*Widget) SetWindow

func (widget *Widget) SetWindow(window gdk.Windower)

SetWindow sets a widget’s window. This function should only be used in a widget’s Widget::realize implementation. The window passed is usually either new window created with gdk_window_new(), or the window of its parent widget as returned by gtk_widget_get_parent_window().

Widgets must indicate whether they will create their own Window by calling gtk_widget_set_has_window(). This is usually done in the widget’s init() function.

Note that this function does not add any reference to window.

The function takes the following parameters:

  • window: Window.

func (*Widget) Settings

func (widget *Widget) Settings() *Settings

Settings gets the settings object holding the settings used for this widget.

Note that this function can only be called when the Widget is attached to a toplevel, since the settings object is specific to a particular Screen.

The function returns the following values:

  • settings: relevant Settings object.

func (*Widget) ShapeCombineRegion

func (widget *Widget) ShapeCombineRegion(region *cairo.Region)

ShapeCombineRegion sets a shape for this widget’s GDK window. This allows for transparent windows etc., see gdk_window_shape_combine_region() for more information.

The function takes the following parameters:

  • region (optional): shape to be added, or NULL to remove an existing shape.

func (*Widget) Show

func (widget *Widget) Show()

Show flags a widget to be displayed. Any widget that isn’t shown will not appear on the screen. If you want to show all the widgets in a container, it’s easier to call gtk_widget_show_all() on the container, instead of individually showing the widgets.

Remember that you have to show the containers containing a widget, in addition to the widget itself, before it will appear onscreen.

When a toplevel container is shown, it is immediately realized and mapped; other shown widgets are realized and mapped when their toplevel container is realized and mapped.

func (*Widget) ShowAll

func (widget *Widget) ShowAll()

ShowAll: recursively shows a widget, and any child widgets (if the widget is a container).

func (*Widget) ShowNow

func (widget *Widget) ShowNow()

ShowNow shows a widget. If the widget is an unmapped toplevel widget (i.e. a Window that has not yet been shown), enter the main loop and wait for the window to actually be mapped. Be careful; because the main loop is running, anything can happen during this function.

func (*Widget) SizeAllocate

func (widget *Widget) SizeAllocate(allocation *Allocation)

SizeAllocate: this function is only used by Container subclasses, to assign a size and position to their child widgets.

In this function, the allocation may be adjusted. It will be forced to a 1x1 minimum size, and the adjust_size_allocation virtual method on the child will be used to adjust the allocation. Standard adjustments include removing the widget’s margins, and applying the widget’s Widget:halign and Widget:valign properties.

For baseline support in containers you need to use gtk_widget_size_allocate_with_baseline() instead.

The function takes the following parameters:

  • allocation: position and size to be allocated to widget.

func (*Widget) SizeAllocateWithBaseline

func (widget *Widget) SizeAllocateWithBaseline(allocation *Allocation, baseline int)

SizeAllocateWithBaseline: this function is only used by Container subclasses, to assign a size, position and (optionally) baseline to their child widgets.

In this function, the allocation and baseline may be adjusted. It will be forced to a 1x1 minimum size, and the adjust_size_allocation virtual and adjust_baseline_allocation methods on the child will be used to adjust the allocation and baseline. Standard adjustments include removing the widget's margins, and applying the widget’s Widget:halign and Widget:valign properties.

If the child widget does not have a valign of GTK_ALIGN_BASELINE the baseline argument is ignored and -1 is used instead.

The function takes the following parameters:

  • allocation: position and size to be allocated to widget.
  • baseline of the child, or -1.

func (*Widget) SizeRequest deprecated

func (widget *Widget) SizeRequest() *Requisition

SizeRequest: this function is typically used when implementing a Container subclass. Obtains the preferred size of a widget. The container uses this information to arrange its child widgets and decide what size allocations to give them with gtk_widget_size_allocate().

You can also call this function from an application, with some caveats. Most notably, getting a size request requires the widget to be associated with a screen, because font information may be needed. Multihead-aware applications should keep this in mind.

Also remember that the size request is not necessarily the size a widget will actually be allocated.

Deprecated: Use gtk_widget_get_preferred_size() instead.

The function returns the following values:

  • requisition to be filled in.

func (*Widget) State deprecated

func (widget *Widget) State() StateType

State returns the widget’s state. See gtk_widget_set_state().

Deprecated: Use gtk_widget_get_state_flags() instead.

The function returns the following values:

  • stateType: state of widget.

func (*Widget) StateFlags

func (widget *Widget) StateFlags() StateFlags

StateFlags returns the widget state as a flag set. It is worth mentioning that the effective GTK_STATE_FLAG_INSENSITIVE state will be returned, that is, also based on parent insensitivity, even if widget itself is sensitive.

Also note that if you are looking for a way to obtain the StateFlags to pass to a StyleContext method, you should look at gtk_style_context_get_state().

The function returns the following values:

  • stateFlags: state flags for widget.

func (*Widget) Style deprecated

func (widget *Widget) Style() *Style

Style: simply an accessor function that returns widget->style.

Deprecated: Use StyleContext instead.

The function returns the following values:

  • style widget’s Style.

func (*Widget) StyleAttach deprecated

func (widget *Widget) StyleAttach()

StyleAttach: this function attaches the widget’s Style to the widget's Window. It is a replacement for

widget->style = gtk_style_attach (widget->style, widget->window);

and should only ever be called in a derived widget’s “realize” implementation which does not chain up to its parent class' “realize” implementation, because one of the parent classes (finally Widget) would attach the style itself.

Deprecated: This step is unnecessary with StyleContext.

func (*Widget) StyleContext

func (widget *Widget) StyleContext() *StyleContext

StyleContext returns the style context associated to widget. The returned object is guaranteed to be the same for the lifetime of widget.

The function returns the following values:

  • styleContext This memory is owned by widget and must not be freed.

func (*Widget) StyleGetProperty

func (widget *Widget) StyleGetProperty(propertyName string, value *coreglib.Value)

StyleGetProperty gets the value of a style property of widget.

The function takes the following parameters:

  • propertyName: name of a style property.
  • value: location to return the property value.

func (*Widget) SupportMultidevice

func (widget *Widget) SupportMultidevice() bool

SupportMultidevice returns TRUE if widget is multiple pointer aware. See gtk_widget_set_support_multidevice() for more information.

The function returns the following values:

  • ok: TRUE if widget is multidevice aware.

func (*Widget) TemplateChild

func (widget *Widget) TemplateChild(widgetType coreglib.Type, name string) *coreglib.Object

TemplateChild: fetch an object build from the template XML for widget_type in this widget instance.

This will only report children which were previously declared with gtk_widget_class_bind_template_child_full() or one of its variants.

This function is only meant to be called for code which is private to the widget_type which declared the child and is meant for language bindings which cannot easily make use of the GObject structure offsets.

The function takes the following parameters:

  • widgetType to get a template child for.
  • name: “id” of the child defined in the template XML.

The function returns the following values:

  • object built in the template XML with the id name.

func (*Widget) ThawChildNotify

func (widget *Widget) ThawChildNotify()

ThawChildNotify reverts the effect of a previous call to gtk_widget_freeze_child_notify(). This causes all queued Widget::child-notify signals on widget to be emitted.

func (*Widget) TooltipMarkup

func (widget *Widget) TooltipMarkup() string

TooltipMarkup gets the contents of the tooltip for widget.

The function returns the following values:

  • utf8 (optional): tooltip text, or NULL. You should free the returned string with g_free() when done.

func (*Widget) TooltipText

func (widget *Widget) TooltipText() string

TooltipText gets the contents of the tooltip for widget.

The function returns the following values:

  • utf8 (optional): tooltip text, or NULL. You should free the returned string with g_free() when done.

func (*Widget) TooltipWindow

func (widget *Widget) TooltipWindow() *Window

TooltipWindow returns the Window of the current tooltip. This can be the GtkWindow created by default, or the custom tooltip window set using gtk_widget_set_tooltip_window().

The function returns the following values:

  • window of the current tooltip.

func (*Widget) Toplevel

func (widget *Widget) Toplevel() Widgetter

Toplevel: this function returns the topmost widget in the container hierarchy widget is a part of. If widget has no parent widgets, it will be returned as the topmost widget. No reference will be added to the returned widget; it should not be unreferenced.

Note the difference in behavior vs. gtk_widget_get_ancestor(); gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW) would return NULL if widget wasn’t inside a toplevel window, and if the window was inside a Window-derived widget which was in turn inside the toplevel Window. While the second case may seem unlikely, it actually happens when a Plug is embedded inside a Socket within the same application.

To reliably find the toplevel Window, use gtk_widget_get_toplevel() and call GTK_IS_WINDOW() on the result. For instance, to get the title of a widget's toplevel window, one might use:

static const char *
get_widget_toplevel_title (GtkWidget *widget)
{
  GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
  if (GTK_IS_WINDOW (toplevel))
    {
      return gtk_window_get_title (GTK_WINDOW (toplevel));
    }

  return NULL;
}.

The function returns the following values:

  • ret: topmost ancestor of widget, or widget itself if there’s no ancestor.

func (*Widget) TranslateCoordinates

func (srcWidget *Widget) TranslateCoordinates(destWidget Widgetter, srcX, srcY int) (destX, destY int, ok bool)

TranslateCoordinates: translate coordinates relative to src_widget’s allocation to coordinates relative to dest_widget’s allocations. In order to perform this operation, both widgets must be realized, and must share a common toplevel.

The function takes the following parameters:

  • destWidget: Widget.
  • srcX: x position relative to src_widget.
  • srcY: y position relative to src_widget.

The function returns the following values:

  • destX (optional): location to store X position relative to dest_widget.
  • destY (optional): location to store Y position relative to dest_widget.
  • ok: FALSE if either widget was not realized, or there was no common ancestor. In this case, nothing is stored in *dest_x and *dest_y. Otherwise TRUE.

func (*Widget) TriggerTooltipQuery

func (widget *Widget) TriggerTooltipQuery()

TriggerTooltipQuery triggers a tooltip query on the display where the toplevel of widget is located. See gtk_tooltip_trigger_tooltip_query() for more information.

func (*Widget) Unmap

func (widget *Widget) Unmap()

Unmap: this function is only for use in widget implementations. Causes a widget to be unmapped if it’s currently mapped.

func (*Widget) Unparent

func (widget *Widget) Unparent()

Unparent: this function is only for use in widget implementations. Should be called by implementations of the remove method on Container, to dissociate a child from the container.

func (*Widget) Unrealize

func (widget *Widget) Unrealize()

Unrealize: this function is only useful in widget implementations. Causes a widget to be unrealized (frees all GDK resources associated with the widget, such as widget->window).

func (*Widget) UnregisterWindow

func (widget *Widget) UnregisterWindow(window gdk.Windower)

UnregisterWindow unregisters a Window from the widget that was previously set up with gtk_widget_register_window(). You need to call this when the window is no longer used by the widget, such as when you destroy it.

The function takes the following parameters:

  • window: Window.

func (*Widget) UnsetStateFlags

func (widget *Widget) UnsetStateFlags(flags StateFlags)

UnsetStateFlags: this function is for use in widget implementations. Turns off flag values for the current widget state (insensitive, prelighted, etc.). See gtk_widget_set_state_flags().

The function takes the following parameters:

  • flags: state flags to turn off.

func (*Widget) VAlign

func (widget *Widget) VAlign() Align

VAlign gets the value of the Widget:valign property.

For backwards compatibility reasons this method will never return GTK_ALIGN_BASELINE, but instead it will convert it to GTK_ALIGN_FILL. If your widget want to support baseline aligned children it must use gtk_widget_get_valign_with_baseline(), or g_object_get (widget, "valign", &value, NULL), which will also report the true value.

The function returns the following values:

  • align: vertical alignment of widget, ignoring baseline alignment.

func (*Widget) VAlignWithBaseline

func (widget *Widget) VAlignWithBaseline() Align

VAlignWithBaseline gets the value of the Widget:valign property, including GTK_ALIGN_BASELINE.

The function returns the following values:

  • align: vertical alignment of widget.

func (*Widget) VExpand

func (widget *Widget) VExpand() bool

VExpand gets whether the widget would like any available extra vertical space.

See gtk_widget_get_hexpand() for more detail.

The function returns the following values:

  • ok: whether vexpand flag is set.

func (*Widget) VExpandSet

func (widget *Widget) VExpandSet() bool

VExpandSet gets whether gtk_widget_set_vexpand() has been used to explicitly set the expand flag on this widget.

See gtk_widget_get_hexpand_set() for more detail.

The function returns the following values:

  • ok: whether vexpand has been explicitly set.

func (*Widget) Visible

func (widget *Widget) Visible() bool

Visible determines whether the widget is visible. If you want to take into account whether the widget’s parent is also marked as visible, use gtk_widget_is_visible() instead.

This function does not check if the widget is obscured in any way.

See gtk_widget_set_visible().

The function returns the following values:

  • ok: TRUE if the widget is visible.

func (*Widget) Visual

func (widget *Widget) Visual() *gdk.Visual

Visual gets the visual that will be used to render widget.

The function returns the following values:

  • visual for widget.

func (*Widget) Window

func (widget *Widget) Window() gdk.Windower

Window returns the widget’s window if it is realized, NULL otherwise.

The function returns the following values:

  • window (optional) widget’s window.

type WidgetAccessible

type WidgetAccessible struct {
	Accessible

	atk.Component
	// contains filtered or unexported fields
}

type WidgetAccessibleClass added in v0.0.5

type WidgetAccessibleClass struct {
	// contains filtered or unexported fields
}

WidgetAccessibleClass: instance of this type is always passed by reference.

func (*WidgetAccessibleClass) ParentClass added in v0.0.5

func (w *WidgetAccessibleClass) ParentClass() *AccessibleClass

type WidgetAccessibleOverrides added in v0.0.5

type WidgetAccessibleOverrides struct {
}

WidgetAccessibleOverrides contains methods that are overridable.

type WidgetClass added in v0.0.5

type WidgetClass struct {
	// contains filtered or unexported fields
}

WidgetClass: instance of this type is always passed by reference.

func (*WidgetClass) ActivateSignal added in v0.0.5

func (w *WidgetClass) ActivateSignal() uint

ActivateSignal: signal to emit when a widget of this class is activated, gtk_widget_activate() handles the emission. Implementation of this signal is optional.

func (*WidgetClass) BindTemplateChildFull added in v0.0.5

func (widgetClass *WidgetClass) BindTemplateChildFull(name string, internalChild bool, structOffset int)

BindTemplateChildFull: automatically assign an object declared in the class template XML to be set to a location on a freshly built instance’s private data, or alternatively accessible via gtk_widget_get_template_child().

The struct can point either into the public instance, then you should use G_STRUCT_OFFSET(WidgetType, member) for struct_offset, or in the private struct, then you should use G_PRIVATE_OFFSET(WidgetType, member).

An explicit strong reference will be held automatically for the duration of your instance’s life cycle, it will be released automatically when Class.dispose() runs on your instance and if a struct_offset that is != 0 is specified, then the automatic location in your instance public or private data will be set to NULL. You can however access an automated child pointer the first time your classes Class.dispose() runs, or alternatively in WidgetClass.destroy().

If internal_child is specified, BuildableIface.get_internal_child() will be automatically implemented by the Widget class so there is no need to implement it manually.

The wrapper macros gtk_widget_class_bind_template_child(), gtk_widget_class_bind_template_child_internal(), gtk_widget_class_bind_template_child_private() and gtk_widget_class_bind_template_child_internal_private() might be more convenient to use.

Note that this must be called from a composite widget classes class initializer after calling gtk_widget_class_set_template().

The function takes the following parameters:

  • name: “id” of the child defined in the template XML.
  • internalChild: whether the child should be accessible as an “internal-child” when this class is used in GtkBuilder XML.
  • structOffset: structure offset into the composite widget’s instance public or private structure where the automated child pointer should be set, or 0 to not assign the pointer.

func (*WidgetClass) CSSName added in v0.0.5

func (widgetClass *WidgetClass) CSSName() string

CSSName gets the name used by this class for matching in CSS code. See gtk_widget_class_set_css_name() for details.

The function returns the following values:

  • utf8: CSS name of the given class.

func (*WidgetClass) SetAccessibleRole added in v0.0.5

func (widgetClass *WidgetClass) SetAccessibleRole(role atk.Role)

SetAccessibleRole sets the default Role to be set on accessibles created for widgets of widget_class. Accessibles may decide to not honor this setting if their role reporting is more refined. Calls to gtk_widget_class_set_accessible_type() will reset this value.

In cases where you want more fine-grained control over the role of accessibles created for widget_class, you should provide your own accessible type and use gtk_widget_class_set_accessible_type() instead.

If role is K_ROLE_INVALID, the default role will not be changed and the accessible’s default role will be used instead.

This function should only be called from class init functions of widgets.

The function takes the following parameters:

  • role to use for accessibles created for widget_class.

func (*WidgetClass) SetAccessibleType added in v0.0.5

func (widgetClass *WidgetClass) SetAccessibleType(typ coreglib.Type)

SetAccessibleType sets the type to be used for creating accessibles for widgets of widget_class. The given type must be a subtype of the type used for accessibles of the parent class.

This function should only be called from class init functions of widgets.

The function takes the following parameters:

  • typ: object type that implements the accessible for widget_class.

func (*WidgetClass) SetCSSName added in v0.0.5

func (widgetClass *WidgetClass) SetCSSName(name string)

SetCSSName sets the name to be used for CSS matching of widgets.

If this function is not called for a given class, the name of the parent class is used.

The function takes the following parameters:

  • name to use.

func (*WidgetClass) SetTemplate added in v0.0.5

func (widgetClass *WidgetClass) SetTemplate(templateBytes *glib.Bytes)

SetTemplate: this should be called at class initialization time to specify the GtkBuilder XML to be used to extend a widget.

For convenience, gtk_widget_class_set_template_from_resource() is also provided.

Note that any class that installs templates must call gtk_widget_init_template() in the widget’s instance initializer.

The function takes the following parameters:

  • templateBytes holding the Builder XML.

func (*WidgetClass) SetTemplateFromResource added in v0.0.5

func (widgetClass *WidgetClass) SetTemplateFromResource(resourceName string)

SetTemplateFromResource: convenience function to call gtk_widget_class_set_template().

Note that any class that installs templates must call gtk_widget_init_template() in the widget’s instance initializer.

The function takes the following parameters:

  • resourceName: name of the resource to load the template from.

type WidgetHelpType

type WidgetHelpType C.gint

WidgetHelpType kinds of widget-specific help. Used by the ::show-help signal.

const (
	// WidgetHelpTooltip: tooltip.
	WidgetHelpTooltip WidgetHelpType = iota
	// WidgetHelpWhatsThis what’s this.
	WidgetHelpWhatsThis
)

func (WidgetHelpType) String

func (w WidgetHelpType) String() string

String returns the name in string for WidgetHelpType.

type WidgetOverrides added in v0.0.5

type WidgetOverrides struct {
	// The function takes the following parameters:
	//
	AdjustBaselineAllocation func(baseline *int)
	// The function takes the following parameters:
	//
	//   - minimumBaseline
	//   - naturalBaseline
	//
	AdjustBaselineRequest func(minimumBaseline, naturalBaseline *int)
	// The function takes the following parameters:
	//
	//   - orientation
	//   - minimumSize
	//   - naturalSize
	//   - allocatedPos
	//   - allocatedSize
	//
	AdjustSizeAllocation func(orientation Orientation, minimumSize, naturalSize, allocatedPos, allocatedSize *int)
	// The function takes the following parameters:
	//
	//   - orientation
	//   - minimumSize
	//   - naturalSize
	//
	AdjustSizeRequest func(orientation Orientation, minimumSize, naturalSize *int)
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ButtonPressEvent func(event *gdk.EventButton) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ButtonReleaseEvent func(event *gdk.EventButton) bool
	// CanActivateAccel determines whether an accelerator that activates
	// the signal identified by signal_id can currently be activated.
	// This is done by emitting the Widget::can-activate-accel signal on widget;
	// if the signal isn’t overridden by a handler or in a derived widget,
	// then the default check is that the widget must be sensitive, and the
	// widget and all its ancestors mapped.
	//
	// The function takes the following parameters:
	//
	//   - signalId: ID of a signal installed on widget.
	//
	// The function returns the following values:
	//
	//   - ok: TRUE if the accelerator can be activated.
	//
	CanActivateAccel  func(signalId uint) bool
	CompositedChanged func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ConfigureEvent func(event *gdk.EventConfigure) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	DamageEvent func(event *gdk.EventExpose) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	DeleteEvent func(event *gdk.EventAny) bool
	// Destroy destroys a widget.
	//
	// When a widget is destroyed all references it holds on other objects will
	// be released:
	//
	//   - if the widget is inside a container, it will be removed from its
	//     parent
	//   - if the widget is a container, all its children will be destroyed,
	//     recursively
	//   - if the widget is a top level, it will be removed from the list of top
	//     level widgets that GTK+ maintains internally
	//
	// It's expected that all references held on the widget will also be
	// released; you should connect to the Widget::destroy signal if you hold
	// a reference to widget and you wish to remove it when this function is
	// called. It is not necessary to do so if you are implementing a Container,
	// as you'll be able to use the ContainerClass.remove() virtual function for
	// that.
	//
	// It's important to notice that gtk_widget_destroy() will only cause
	// the widget to be finalized if no additional references, acquired using
	// g_object_ref(), are held on it. In case additional references are
	// in place, the widget will be in an "inert" state after calling this
	// function; widget will still point to valid memory, allowing you to
	// release the references you hold, but you may not query the widget's own
	// state.
	//
	// You should typically call this function on top level widgets, and rarely
	// on child widgets.
	//
	// See also: gtk_container_remove().
	Destroy func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	DestroyEvent func(event *gdk.EventAny) bool
	// The function takes the following parameters:
	//
	DirectionChanged func(previousDirection TextDirection)
	// The function takes the following parameters:
	//
	DragBegin func(context *gdk.DragContext)
	// The function takes the following parameters:
	//
	DragDataDelete func(context *gdk.DragContext)
	// The function takes the following parameters:
	//
	//   - context
	//   - selectionData
	//   - info
	//   - time_
	//
	DragDataGet func(context *gdk.DragContext, selectionData *SelectionData, info, time_ uint)
	// The function takes the following parameters:
	//
	//   - context
	//   - x
	//   - y
	//   - selectionData
	//   - info
	//   - time_
	//
	DragDataReceived func(context *gdk.DragContext, x, y int, selectionData *SelectionData, info, time_ uint)
	// The function takes the following parameters:
	//
	//   - context
	//   - x
	//   - y
	//   - time_
	//
	// The function returns the following values:
	//
	DragDrop func(context *gdk.DragContext, x, y int, time_ uint) bool
	// The function takes the following parameters:
	//
	DragEnd func(context *gdk.DragContext)
	// The function takes the following parameters:
	//
	//   - context
	//   - result
	//
	// The function returns the following values:
	//
	DragFailed func(context *gdk.DragContext, result DragResult) bool
	// The function takes the following parameters:
	//
	//   - context
	//   - time_
	//
	DragLeave func(context *gdk.DragContext, time_ uint)
	// The function takes the following parameters:
	//
	//   - context
	//   - x
	//   - y
	//   - time_
	//
	// The function returns the following values:
	//
	DragMotion func(context *gdk.DragContext, x, y int, time_ uint) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	Draw func(cr *cairo.Context) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	EnterNotifyEvent func(event *gdk.EventCrossing) bool
	// Event: rarely-used function. This function is used to emit the event
	// signals on a widget (those signals should never be emitted without using
	// this function to do so). If you want to synthesize an event though, don’t
	// use this function; instead, use gtk_main_do_event() so the event will
	// behave as if it were in the event queue. Don’t synthesize expose events;
	// instead, use gdk_window_invalidate_rect() to invalidate a region of the
	// window.
	//
	// The function takes the following parameters:
	//
	//   - event: Event.
	//
	// The function returns the following values:
	//
	//   - ok: return from the event signal emission (TRUE if the event was
	//     handled).
	//
	Event func(event *gdk.Event) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	Focus func(direction DirectionType) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	FocusInEvent func(event *gdk.EventFocus) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	FocusOutEvent func(event *gdk.EventFocus) bool
	// Accessible returns the accessible object that describes the widget to an
	// assistive technology.
	//
	// If accessibility support is not available, this Object instance may
	// be a no-op. Likewise, if no class-specific Object implementation is
	// available for the widget instance in question, it will inherit an
	// Object implementation from the first ancestor class for which such an
	// implementation is defined.
	//
	// The documentation of the ATK (http://developer.gnome.org/atk/stable/)
	// library contains more information about accessible objects and their
	// uses.
	//
	// The function returns the following values:
	//
	//   - object associated with widget.
	//
	Accessible func() *atk.AtkObject
	// PreferredHeight retrieves a widget’s initial minimum and natural height.
	//
	// This call is specific to width-for-height requests.
	//
	// The returned request will be modified by the
	// GtkWidgetClass::adjust_size_request virtual method and by any SizeGroups
	// that have been applied. That is, the returned request is the one that
	// should be used for layout, not necessarily the one returned by the widget
	// itself.
	//
	// The function returns the following values:
	//
	//   - minimumHeight (optional): location to store the minimum height,
	//     or NULL.
	//   - naturalHeight (optional): location to store the natural height,
	//     or NULL.
	//
	PreferredHeight func() (minimumHeight, naturalHeight int)
	// PreferredHeightAndBaselineForWidth retrieves a widget’s minimum and
	// natural height and the corresponding baselines if it would be given the
	// specified width, or the default height if width is -1. The baselines may
	// be -1 which means that no baseline is requested for this widget.
	//
	// The returned request will be modified by
	// the GtkWidgetClass::adjust_size_request and
	// GtkWidgetClass::adjust_baseline_request virtual methods and by any
	// SizeGroups that have been applied. That is, the returned request is the
	// one that should be used for layout, not necessarily the one returned by
	// the widget itself.
	//
	// The function takes the following parameters:
	//
	//   - width which is available for allocation, or -1 if none.
	//
	// The function returns the following values:
	//
	//   - minimumHeight (optional): location for storing the minimum height,
	//     or NULL.
	//   - naturalHeight (optional): location for storing the natural height,
	//     or NULL.
	//   - minimumBaseline (optional): location for storing the baseline for the
	//     minimum height, or NULL.
	//   - naturalBaseline (optional): location for storing the baseline for the
	//     natural height, or NULL.
	//
	PreferredHeightAndBaselineForWidth func(width int) (minimumHeight, naturalHeight, minimumBaseline, naturalBaseline int)
	// PreferredHeightForWidth retrieves a widget’s minimum and natural height
	// if it would be given the specified width.
	//
	// The returned request will be modified by the
	// GtkWidgetClass::adjust_size_request virtual method and by any SizeGroups
	// that have been applied. That is, the returned request is the one that
	// should be used for layout, not necessarily the one returned by the widget
	// itself.
	//
	// The function takes the following parameters:
	//
	//   - width which is available for allocation.
	//
	// The function returns the following values:
	//
	//   - minimumHeight (optional): location for storing the minimum height,
	//     or NULL.
	//   - naturalHeight (optional): location for storing the natural height,
	//     or NULL.
	//
	PreferredHeightForWidth func(width int) (minimumHeight, naturalHeight int)
	// PreferredWidth retrieves a widget’s initial minimum and natural width.
	//
	// This call is specific to height-for-width requests.
	//
	// The returned request will be modified by the
	// GtkWidgetClass::adjust_size_request virtual method and by any SizeGroups
	// that have been applied. That is, the returned request is the one that
	// should be used for layout, not necessarily the one returned by the widget
	// itself.
	//
	// The function returns the following values:
	//
	//   - minimumWidth (optional): location to store the minimum width,
	//     or NULL.
	//   - naturalWidth (optional): location to store the natural width,
	//     or NULL.
	//
	PreferredWidth func() (minimumWidth, naturalWidth int)
	// PreferredWidthForHeight retrieves a widget’s minimum and natural width if
	// it would be given the specified height.
	//
	// The returned request will be modified by the
	// GtkWidgetClass::adjust_size_request virtual method and by any SizeGroups
	// that have been applied. That is, the returned request is the one that
	// should be used for layout, not necessarily the one returned by the widget
	// itself.
	//
	// The function takes the following parameters:
	//
	//   - height which is available for allocation.
	//
	// The function returns the following values:
	//
	//   - minimumWidth (optional): location for storing the minimum width,
	//     or NULL.
	//   - naturalWidth (optional): location for storing the natural width,
	//     or NULL.
	//
	PreferredWidthForHeight func(height int) (minimumWidth, naturalWidth int)
	// RequestMode gets whether the widget prefers a height-for-width layout or
	// a width-for-height layout.
	//
	// Bin widgets generally propagate the preference of their child, container
	// widgets need to request something either in context of their children or
	// in context of their allocation capabilities.
	//
	// The function returns the following values:
	//
	//   - sizeRequestMode preferred by widget.
	//
	RequestMode func() SizeRequestMode
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	GrabBrokenEvent func(event *gdk.EventGrabBroken) bool
	// GrabFocus causes widget to have the keyboard focus for the Window it's
	// inside. widget must be a focusable widget, such as a Entry; something
	// like Frame won’t work.
	//
	// More precisely, it must have the GTK_CAN_FOCUS flag set. Use
	// gtk_widget_set_can_focus() to modify that flag.
	//
	// The widget also needs to be realized and mapped. This is indicated by the
	// related signals. Grabbing the focus immediately after creating the widget
	// will likely fail and cause critical warnings.
	GrabFocus func()
	// The function takes the following parameters:
	//
	GrabNotify func(wasGrabbed bool)
	// Hide reverses the effects of gtk_widget_show(), causing the widget to be
	// hidden (invisible to the user).
	Hide func()
	// The function takes the following parameters:
	//
	HierarchyChanged func(previousToplevel Widgetter)
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	KeyPressEvent func(event *gdk.EventKey) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	KeyReleaseEvent func(event *gdk.EventKey) bool
	// KeynavFailed: this function should be called whenever keyboard
	// navigation within a single widget hits a boundary. The function
	// emits the Widget::keynav-failed signal on the widget and its return
	// value should be interpreted in a way similar to the return value of
	// gtk_widget_child_focus():
	//
	// When TRUE is returned, stay in the widget, the failed keyboard navigation
	// is OK and/or there is nowhere we can/should move the focus to.
	//
	// When FALSE is returned, the caller should continue with keyboard
	// navigation outside the widget, e.g. by calling gtk_widget_child_focus()
	// on the widget’s toplevel.
	//
	// The default ::keynav-failed handler returns FALSE for GTK_DIR_TAB_FORWARD
	// and GTK_DIR_TAB_BACKWARD. For the other values of DirectionType it
	// returns TRUE.
	//
	// Whenever the default handler returns TRUE, it also calls
	// gtk_widget_error_bell() to notify the user of the failed keyboard
	// navigation.
	//
	// A use case for providing an own implementation of ::keynav-failed (either
	// by connecting to it or by overriding it) would be a row of Entry widgets
	// where the user should be able to navigate the entire row with the cursor
	// keys, as e.g. known from user interfaces that require entering license
	// keys.
	//
	// The function takes the following parameters:
	//
	//   - direction of focus movement.
	//
	// The function returns the following values:
	//
	//   - ok: TRUE if stopping keyboard navigation is fine, FALSE if the
	//     emitting widget should try to handle the keyboard navigation attempt
	//     in its parent container(s).
	//
	KeynavFailed func(direction DirectionType) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	LeaveNotifyEvent func(event *gdk.EventCrossing) bool
	// Map: this function is only for use in widget implementations. Causes a
	// widget to be mapped if it isn’t already.
	Map func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	MapEvent func(event *gdk.EventAny) bool
	// MnemonicActivate emits the Widget::mnemonic-activate signal.
	//
	// The function takes the following parameters:
	//
	//   - groupCycling: TRUE if there are other widgets with the same mnemonic.
	//
	// The function returns the following values:
	//
	//   - ok: TRUE if the signal has been handled.
	//
	MnemonicActivate func(groupCycling bool) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	MotionNotifyEvent func(event *gdk.EventMotion) bool
	// The function takes the following parameters:
	//
	MoveFocus func(direction DirectionType)
	// The function takes the following parameters:
	//
	ParentSet func(previousParent Widgetter)
	// The function returns the following values:
	//
	PopupMenu func() bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	PropertyNotifyEvent func(event *gdk.EventProperty) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ProximityInEvent func(event *gdk.EventProximity) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ProximityOutEvent func(event *gdk.EventProximity) bool
	// The function takes the following parameters:
	//
	//   - x
	//   - y
	//   - keyboardTooltip
	//   - tooltip
	//
	// The function returns the following values:
	//
	QueryTooltip func(x, y int, keyboardTooltip bool, tooltip *Tooltip) bool
	// QueueDrawRegion invalidates the area of widget defined by region by
	// calling gdk_window_invalidate_region() on the widget’s window and all its
	// child windows. Once the main loop becomes idle (after the current batch
	// of events has been processed, roughly), the window will receive expose
	// events for the union of all regions that have been invalidated.
	//
	// Normally you would only use this function in widget implementations.
	// You might also use it to schedule a redraw of a DrawingArea or some
	// portion thereof.
	//
	// The function takes the following parameters:
	//
	//   - region to draw.
	//
	QueueDrawRegion func(region *cairo.Region)
	// Realize creates the GDK (windowing system) resources associated with
	// a widget. For example, widget->window will be created when a widget is
	// realized. Normally realization happens implicitly; if you show a widget
	// and all its parent containers, then the widget will be realized and
	// mapped automatically.
	//
	// Realizing a widget requires all the widget’s parent widgets to be
	// realized; calling gtk_widget_realize() realizes the widget’s parents
	// in addition to widget itself. If a widget is not yet inside a toplevel
	// window when you realize it, bad things will happen.
	//
	// This function is primarily used in widget implementations, and isn’t
	// very useful otherwise. Many times when you think you might need it,
	// a better approach is to connect to a signal that will be called after
	// the widget is realized automatically, such as Widget::draw. Or simply
	// g_signal_connect () to the Widget::realize signal.
	Realize func()
	// The function takes the following parameters:
	//
	ScreenChanged func(previousScreen *gdk.Screen)
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ScrollEvent func(event *gdk.EventScroll) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	SelectionClearEvent func(event *gdk.EventSelection) bool
	// The function takes the following parameters:
	//
	//   - selectionData
	//   - info
	//   - time_
	//
	SelectionGet func(selectionData *SelectionData, info, time_ uint)
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	SelectionNotifyEvent func(event *gdk.EventSelection) bool
	// The function takes the following parameters:
	//
	//   - selectionData
	//   - time_
	//
	SelectionReceived func(selectionData *SelectionData, time_ uint)
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	SelectionRequestEvent func(event *gdk.EventSelection) bool
	// Show flags a widget to be displayed. Any widget that isn’t shown will not
	// appear on the screen. If you want to show all the widgets in a container,
	// it’s easier to call gtk_widget_show_all() on the container, instead of
	// individually showing the widgets.
	//
	// Remember that you have to show the containers containing a widget,
	// in addition to the widget itself, before it will appear onscreen.
	//
	// When a toplevel container is shown, it is immediately realized and
	// mapped; other shown widgets are realized and mapped when their toplevel
	// container is realized and mapped.
	Show func()
	// ShowAll: recursively shows a widget, and any child widgets (if the widget
	// is a container).
	ShowAll func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	ShowHelp func(helpType WidgetHelpType) bool
	// SizeAllocate: this function is only used by Container subclasses,
	// to assign a size and position to their child widgets.
	//
	// In this function, the allocation may be adjusted. It will be forced to
	// a 1x1 minimum size, and the adjust_size_allocation virtual method on the
	// child will be used to adjust the allocation. Standard adjustments include
	// removing the widget’s margins, and applying the widget’s Widget:halign
	// and Widget:valign properties.
	//
	// For baseline support in containers you need to use
	// gtk_widget_size_allocate_with_baseline() instead.
	//
	// The function takes the following parameters:
	//
	//   - allocation: position and size to be allocated to widget.
	//
	SizeAllocate func(allocation *Allocation)
	// The function takes the following parameters:
	//
	StateChanged func(previousState StateType)
	// The function takes the following parameters:
	//
	StateFlagsChanged func(previousStateFlags StateFlags)
	// The function takes the following parameters:
	//
	StyleSet     func(previousStyle *Style)
	StyleUpdated func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	TouchEvent func(event *gdk.EventTouch) bool
	// Unmap: this function is only for use in widget implementations. Causes a
	// widget to be unmapped if it’s currently mapped.
	Unmap func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	UnmapEvent func(event *gdk.EventAny) bool
	// Unrealize: this function is only useful in widget implementations.
	// Causes a widget to be unrealized (frees all GDK resources associated with
	// the widget, such as widget->window).
	Unrealize func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	VisibilityNotifyEvent func(event *gdk.EventVisibility) bool
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	WindowStateEvent func(event *gdk.EventWindowState) bool
}

WidgetOverrides contains methods that are overridable.

type WidgetPath

type WidgetPath struct {
	// contains filtered or unexported fields
}

WidgetPath is a boxed type that represents a widget hierarchy from the topmost widget, typically a toplevel, to any child. This widget path abstraction is used in StyleContext on behalf of the real widget in order to query style information.

If you are using GTK+ widgets, you probably will not need to use this API directly, as there is gtk_widget_get_path(), and the style context returned by gtk_widget_get_style_context() will be automatically updated on widget hierarchy changes.

The widget path generation is generally simple:

Defining a button within a window

{
  GtkWidgetPath *path;
  guint pos;

  path = gtk_widget_path_new ();

  pos = gtk_widget_path_append_type (path, GTK_TYPE_NOTEBOOK);
  gtk_widget_path_iter_add_region (path, pos, "tab", GTK_REGION_EVEN | GTK_REGION_FIRST);

  pos = gtk_widget_path_append_type (path, GTK_TYPE_LABEL);
  gtk_widget_path_iter_set_name (path, pos, "first tab label");
}

All this information will be used to match the style information that applies to the described widget.

An instance of this type is always passed by reference.

func NewWidgetPath

func NewWidgetPath() *WidgetPath

NewWidgetPath constructs a struct WidgetPath.

func (*WidgetPath) AppendForWidget

func (path *WidgetPath) AppendForWidget(widget Widgetter) int

AppendForWidget appends the data from widget to the widget hierarchy represented by path. This function is a shortcut for adding information from widget to the given path. This includes setting the name or adding the style classes from widget.

The function takes the following parameters:

  • widget to append to the widget path.

The function returns the following values:

  • gint: position where the data was inserted.

func (*WidgetPath) AppendType

func (path *WidgetPath) AppendType(typ coreglib.Type) int

AppendType appends a widget type to the widget hierarchy represented by path.

The function takes the following parameters:

  • typ: widget type to append.

The function returns the following values:

  • gint: position where the element was inserted.

func (*WidgetPath) AppendWithSiblings

func (path *WidgetPath) AppendWithSiblings(siblings *WidgetPath, siblingIndex uint) int

AppendWithSiblings appends a widget type with all its siblings to the widget hierarchy represented by path. Using this function instead of gtk_widget_path_append_type() will allow the CSS theming to use sibling matches in selectors and apply :nth-child() pseudo classes. In turn, it requires a lot more care in widget implementations as widgets need to make sure to call gtk_widget_reset_style() on all involved widgets when the siblings path changes.

The function takes the following parameters:

  • siblings: widget path describing a list of siblings. This path may not contain any siblings itself and it must not be modified afterwards.
  • siblingIndex: index into siblings for where the added element is positioned.

The function returns the following values:

  • gint: position where the element was inserted.

func (*WidgetPath) Copy

func (path *WidgetPath) Copy() *WidgetPath

Copy returns a copy of path.

The function returns the following values:

  • widgetPath: copy of path.

func (*WidgetPath) HasParent

func (path *WidgetPath) HasParent(typ coreglib.Type) bool

HasParent returns TRUE if any of the parents of the widget represented in path is of type type, or any subtype of it.

The function takes the following parameters:

  • typ: widget type to check in parents.

The function returns the following values:

  • ok: TRUE if any parent is of type type.

func (*WidgetPath) IsType

func (path *WidgetPath) IsType(typ coreglib.Type) bool

IsType returns TRUE if the widget type represented by this path is type, or a subtype of it.

The function takes the following parameters:

  • typ: widget type to match.

The function returns the following values:

  • ok: TRUE if the widget represented by path is of type type.

func (*WidgetPath) IterAddClass

func (path *WidgetPath) IterAddClass(pos int, name string)

IterAddClass adds the class name to the widget at position pos in the hierarchy defined in path. See gtk_style_context_add_class().

The function takes the following parameters:

  • pos: position to modify, -1 for the path head.
  • name class name.

func (*WidgetPath) IterAddRegion deprecated

func (path *WidgetPath) IterAddRegion(pos int, name string, flags RegionFlags)

IterAddRegion adds the region name to the widget at position pos in the hierarchy defined in path. See gtk_style_context_add_region().

Region names must only contain lowercase letters and “-”, starting always with a lowercase letter.

Deprecated: The use of regions is deprecated.

The function takes the following parameters:

  • pos: position to modify, -1 for the path head.
  • name: region name.
  • flags affecting the region.

func (*WidgetPath) IterClearClasses

func (path *WidgetPath) IterClearClasses(pos int)

IterClearClasses removes all classes from the widget at position pos in the hierarchy defined in path.

The function takes the following parameters:

  • pos: position to modify, -1 for the path head.

func (*WidgetPath) IterClearRegions deprecated

func (path *WidgetPath) IterClearRegions(pos int)

IterClearRegions removes all regions from the widget at position pos in the hierarchy defined in path.

Deprecated: The use of regions is deprecated.

The function takes the following parameters:

  • pos: position to modify, -1 for the path head.

func (*WidgetPath) IterGetName

func (path *WidgetPath) IterGetName(pos int) string

IterGetName returns the name corresponding to the widget found at the position pos in the widget hierarchy defined by path.

The function takes the following parameters:

  • pos: position to get the widget name for, -1 for the path head.

The function returns the following values:

  • utf8 (optional): widget name, or NULL if none was set.

func (*WidgetPath) IterGetObjectName

func (path *WidgetPath) IterGetObjectName(pos int) string

IterGetObjectName returns the object name that is at position pos in the widget hierarchy defined in path.

The function takes the following parameters:

  • pos: position to get the object name for, -1 for the path head.

The function returns the following values:

  • utf8 (optional): name or NULL.

func (*WidgetPath) IterGetObjectType

func (path *WidgetPath) IterGetObjectType(pos int) coreglib.Type

IterGetObjectType returns the object #GType that is at position pos in the widget hierarchy defined in path.

The function takes the following parameters:

  • pos: position to get the object type for, -1 for the path head.

The function returns the following values:

  • gType: widget type.

func (*WidgetPath) IterGetSiblingIndex

func (path *WidgetPath) IterGetSiblingIndex(pos int) uint

IterGetSiblingIndex returns the index into the list of siblings for the element at pos as returned by gtk_widget_path_iter_get_siblings(). If that function would return NULL because the element at pos has no siblings, this function will return 0.

The function takes the following parameters:

  • pos: position to get the sibling index for, -1 for the path head.

The function returns the following values:

  • guint: 0 or the index into the list of siblings for the element at pos.

func (*WidgetPath) IterGetSiblings

func (path *WidgetPath) IterGetSiblings(pos int) *WidgetPath

IterGetSiblings returns the list of siblings for the element at pos. If the element was not added with siblings, NULL is returned.

The function takes the following parameters:

  • pos: position to get the siblings for, -1 for the path head.

The function returns the following values:

  • widgetPath: NULL or the list of siblings for the element at pos.

func (*WidgetPath) IterGetState

func (path *WidgetPath) IterGetState(pos int) StateFlags

IterGetState returns the state flags corresponding to the widget found at the position pos in the widget hierarchy defined by path.

The function takes the following parameters:

  • pos: position to get the state for, -1 for the path head.

The function returns the following values:

  • stateFlags: state flags.

func (*WidgetPath) IterHasClass

func (path *WidgetPath) IterHasClass(pos int, name string) bool

IterHasClass returns TRUE if the widget at position pos has the class name defined, FALSE otherwise.

The function takes the following parameters:

  • pos: position to query, -1 for the path head.
  • name class name.

The function returns the following values:

  • ok: TRUE if the class name is defined for the widget at pos.

func (*WidgetPath) IterHasName

func (path *WidgetPath) IterHasName(pos int, name string) bool

IterHasName returns TRUE if the widget at position pos has the name name, FALSE otherwise.

The function takes the following parameters:

  • pos: position to query, -1 for the path head.
  • name: widget name.

The function returns the following values:

  • ok: TRUE if the widget at pos has this name.

func (*WidgetPath) IterHasQclass

func (path *WidgetPath) IterHasQclass(pos int, qname glib.Quark) bool

IterHasQclass: see gtk_widget_path_iter_has_class(). This is a version that operates with GQuarks.

The function takes the following parameters:

  • pos: position to query, -1 for the path head.
  • qname class name as a #GQuark.

The function returns the following values:

  • ok: TRUE if the widget at pos has the class defined.

func (*WidgetPath) IterHasQname

func (path *WidgetPath) IterHasQname(pos int, qname glib.Quark) bool

IterHasQname: see gtk_widget_path_iter_has_name(). This is a version that operates on #GQuarks.

The function takes the following parameters:

  • pos: position to query, -1 for the path head.
  • qname: widget name as a #GQuark.

The function returns the following values:

  • ok: TRUE if the widget at pos has this name.

func (*WidgetPath) IterHasQregion deprecated

func (path *WidgetPath) IterHasQregion(pos int, qname glib.Quark) (RegionFlags, bool)

IterHasQregion: see gtk_widget_path_iter_has_region(). This is a version that operates with GQuarks.

Deprecated: The use of regions is deprecated.

The function takes the following parameters:

  • pos: position to query, -1 for the path head.
  • qname: region name as a #GQuark.

The function returns the following values:

  • flags: return location for the region flags.
  • ok: TRUE if the widget at pos has the region defined.

func (*WidgetPath) IterHasRegion deprecated

func (path *WidgetPath) IterHasRegion(pos int, name string) (RegionFlags, bool)

IterHasRegion returns TRUE if the widget at position pos has the class name defined, FALSE otherwise.

Deprecated: The use of regions is deprecated.

The function takes the following parameters:

  • pos: position to query, -1 for the path head.
  • name: region name.

The function returns the following values:

  • flags: return location for the region flags.
  • ok: TRUE if the class name is defined for the widget at pos.

func (*WidgetPath) IterListClasses

func (path *WidgetPath) IterListClasses(pos int) []string

IterListClasses returns a list with all the class names defined for the widget at position pos in the hierarchy defined in path.

The function takes the following parameters:

  • pos: position to query, -1 for the path head.

The function returns the following values:

  • sList: list of classes, This is a list of strings, the List contents are owned by GTK+, but you should use g_slist_free() to free the list itself.

func (*WidgetPath) IterListRegions deprecated

func (path *WidgetPath) IterListRegions(pos int) []string

IterListRegions returns a list with all the region names defined for the widget at position pos in the hierarchy defined in path.

Deprecated: The use of regions is deprecated.

The function takes the following parameters:

  • pos: position to query, -1 for the path head.

The function returns the following values:

  • sList: list of regions, This is a list of strings, the List contents are owned by GTK+, but you should use g_slist_free() to free the list itself.

func (*WidgetPath) IterRemoveClass

func (path *WidgetPath) IterRemoveClass(pos int, name string)

IterRemoveClass removes the class name from the widget at position pos in the hierarchy defined in path.

The function takes the following parameters:

  • pos: position to modify, -1 for the path head.
  • name class name.

func (*WidgetPath) IterRemoveRegion deprecated

func (path *WidgetPath) IterRemoveRegion(pos int, name string)

IterRemoveRegion removes the region name from the widget at position pos in the hierarchy defined in path.

Deprecated: The use of regions is deprecated.

The function takes the following parameters:

  • pos: position to modify, -1 for the path head.
  • name: region name.

func (*WidgetPath) IterSetName

func (path *WidgetPath) IterSetName(pos int, name string)

IterSetName sets the widget name for the widget found at position pos in the widget hierarchy defined by path.

The function takes the following parameters:

  • pos: position to modify, -1 for the path head.
  • name: widget name.

func (*WidgetPath) IterSetObjectName

func (path *WidgetPath) IterSetObjectName(pos int, name string)

IterSetObjectName sets the object name for a given position in the widget hierarchy defined by path.

When set, the object name overrides the object type when matching CSS.

The function takes the following parameters:

  • pos: position to modify, -1 for the path head.
  • name (optional): object name to set or NULL to unset.

func (*WidgetPath) IterSetObjectType

func (path *WidgetPath) IterSetObjectType(pos int, typ coreglib.Type)

IterSetObjectType sets the object type for a given position in the widget hierarchy defined by path.

The function takes the following parameters:

  • pos: position to modify, -1 for the path head.
  • typ: object type to set.

func (*WidgetPath) IterSetState

func (path *WidgetPath) IterSetState(pos int, state StateFlags)

IterSetState sets the widget name for the widget found at position pos in the widget hierarchy defined by path.

If you want to update just a single state flag, you need to do this manually, as this function updates all state flags.

Setting a flag

gtk_widget_path_iter_set_state (path, pos, gtk_widget_path_iter_get_state (path, pos) & ~flag);.

The function takes the following parameters:

  • pos: position to modify, -1 for the path head.
  • state flags.

func (*WidgetPath) Length

func (path *WidgetPath) Length() int

Length returns the number of Widget #GTypes between the represented widget and its topmost container.

The function returns the following values:

  • gint: number of elements in the path.

func (*WidgetPath) ObjectType

func (path *WidgetPath) ObjectType() coreglib.Type

ObjectType returns the topmost object type, that is, the object type this path is representing.

The function returns the following values:

  • gType: object type.

func (*WidgetPath) PrependType

func (path *WidgetPath) PrependType(typ coreglib.Type)

PrependType prepends a widget type to the widget hierachy represented by path.

The function takes the following parameters:

  • typ: widget type to prepend.

func (*WidgetPath) String

func (path *WidgetPath) String() string

String dumps the widget path into a string representation. It tries to match the CSS style as closely as possible (Note that there might be paths that cannot be represented in CSS).

The main use of this code is for debugging purposes, so that you can g_print() the path or dump it in a gdb session.

The function returns the following values:

  • utf8: new string describing path.

type Widgetter

type Widgetter interface {
	coreglib.Objector
	// contains filtered or unexported methods
}

Widgetter describes types inherited from class Widget.

To get the original type, the caller must assert this to an interface or another type.

func DragGetSourceWidget

func DragGetSourceWidget(context *gdk.DragContext) Widgetter

DragGetSourceWidget determines the source widget for a drag.

The function takes the following parameters:

  • context: (destination side) drag context.

The function returns the following values:

  • widget (optional): if the drag is occurring within a single application, a pointer to the source widget. Otherwise, NULL.

func GetEventWidget

func GetEventWidget(event *gdk.Event) Widgetter

GetEventWidget: if event is NULL or the event was not associated with any widget, returns NULL, otherwise returns the widget that received the event originally.

The function takes the following parameters:

  • event: Event.

The function returns the following values:

  • widget (optional) that originally received event, or NULL.

func GrabGetCurrent

func GrabGetCurrent() Widgetter

GrabGetCurrent queries the current grab of the default window group.

The function returns the following values:

  • widget (optional) which currently has the grab or NULL if no grab is active.
func MenuGetForAttachWidget(widget Widgetter) []Widgetter

MenuGetForAttachWidget returns a list of the menus which are attached to this widget. This list is owned by GTK+ and must not be modified.

The function takes the following parameters:

  • widget: Widget.

The function returns the following values:

  • list: list of menus attached to his widget.

func TestCreateSimpleWindow deprecated

func TestCreateSimpleWindow(windowTitle, dialogText string) Widgetter

TestCreateSimpleWindow: create a simple window with window title window_title and text contents dialog_text. The window will quit any running gtk_main()-loop when destroyed, and it will automatically be destroyed upon test function teardown.

Deprecated: This testing infrastructure is phased out in favor of reftests.

The function takes the following parameters:

  • windowTitle: title of the window to be displayed.
  • dialogText: text inside the window to be displayed.

The function returns the following values:

  • widget pointer to the newly created GtkWindow.

func TestFindLabel

func TestFindLabel(widget Widgetter, labelPattern string) Widgetter

TestFindLabel: this function will search widget and all its descendants for a GtkLabel widget with a text string matching label_pattern. The label_pattern may contain asterisks “*” and question marks “?” as placeholders, g_pattern_match() is used for the matching. Note that locales other than "C“ tend to alter (translate” label strings, so this function is genrally only useful in test programs with predetermined locales, see gtk_test_init() for more details.

The function takes the following parameters:

  • widget: valid label or container widget.
  • labelPattern: shell-glob pattern to match a label string.

The function returns the following values:

  • ret: gtkLabel widget if any is found.

func TestFindSibling

func TestFindSibling(baseWidget Widgetter, widgetType coreglib.Type) Widgetter

TestFindSibling: this function will search siblings of base_widget and siblings of its ancestors for all widgets matching widget_type. Of the matching widgets, the one that is geometrically closest to base_widget will be returned. The general purpose of this function is to find the most likely “action” widget, relative to another labeling widget. Such as finding a button or text entry widget, given its corresponding label widget.

The function takes the following parameters:

  • baseWidget: valid widget, part of a widget hierarchy.
  • widgetType: type of a aearched for sibling widget.

The function returns the following values:

  • widget of type widget_type if any is found.

func TestFindWidget

func TestFindWidget(widget Widgetter, labelPattern string, widgetType coreglib.Type) Widgetter

TestFindWidget: this function will search the descendants of widget for a widget of type widget_type that has a label matching label_pattern next to it. This is most useful for automated GUI testing, e.g. to find the “OK” button in a dialog and synthesize clicks on it. However see gtk_test_find_label(), gtk_test_find_sibling() and gtk_test_widget_click() for possible caveats involving the search of such widgets and synthesizing widget events.

The function takes the following parameters:

  • widget: container widget, usually a GtkWindow.
  • labelPattern: shell-glob pattern to match a label string.
  • widgetType: type of a aearched for label sibling widget.

The function returns the following values:

  • ret (optional): valid widget if any is found or NULL.

func WindowListToplevels

func WindowListToplevels() []Widgetter

WindowListToplevels returns a list of all existing toplevel windows. The widgets in the list are not individually referenced. If you want to iterate through the list and perform actions involving callbacks that might destroy the widgets, you must call g_list_foreach (result, (GFunc)g_object_ref, NULL) first, and then unref all the widgets afterwards.

The function returns the following values:

  • list of toplevel widgets.

type Window

type Window struct {
	Bin
	// contains filtered or unexported fields
}

Window is a toplevel window which can contain other widgets. Windows normally have decorations that are under the control of the windowing system and allow the user to manipulate the window (resize it, move it, close it,...).

GtkWindow as GtkBuildable

The GtkWindow implementation of the Buildable interface supports a custom <accel-groups> element, which supports any number of <group> elements representing the AccelGroup objects you want to add to your window (synonymous with gtk_window_add_accel_group().

It also supports the <initial-focus> element, whose name property names the widget to receive the focus when the window is mapped.

An example of a UI definition fragment with accel groups:

<object class="GtkWindow">
  <accel-groups>
    <group name="accelgroup1"/>
  </accel-groups>
  <initial-focus name="thunderclap"/>
</object>

...

<object class="GtkAccelGroup" id="accelgroup1"/>

The GtkWindow implementation of the Buildable interface supports setting a child as the titlebar by specifying “titlebar” as the “type” attribute of a <child> element.

CSS nodes

window.background
├── decoration
├── <titlebar child>.titlebar [.default-decoration]
╰── <child>

GtkWindow has a main CSS node with name window and style class .background, and a subnode with name decoration.

Style classes that are typically used with the main CSS node are .csd (when client-side decorations are in use), .solid-csd (for client-side decorations without invisible borders), .ssd (used by mutter when rendering server-side decorations). GtkWindow also represents window states with the following style classes on the main node: .tiled, .maximized, .fullscreen. Specialized types of window often add their own discriminating style classes, such as .popup or .tooltip.

GtkWindow adds the .titlebar and .default-decoration style classes to the widget that is added as a titlebar child.

func NewWindow

func NewWindow(typ WindowType) *Window

NewWindow creates a new Window, which is a toplevel window that can contain other widgets. Nearly always, the type of the window should be K_WINDOW_TOPLEVEL. If you’re implementing something like a popup menu from scratch (which is a bad idea, just use Menu), you might use K_WINDOW_POPUP. K_WINDOW_POPUP is not for dialogs, though in some other toolkits dialogs are called “popups”. In GTK+, K_WINDOW_POPUP means a pop-up menu or pop-up tooltip. On X11, popup windows are not controlled by the [window manager][gtk-X11-arch].

If you simply want an undecorated window (no window borders), use gtk_window_set_decorated(), don’t use K_WINDOW_POPUP.

All top-level windows created by gtk_window_new() are stored in an internal top-level window list. This list can be obtained from gtk_window_list_toplevels(). Due to Gtk+ keeping a reference to the window internally, gtk_window_new() does not return a reference to the caller.

To delete a Window, call gtk_widget_destroy().

The function takes the following parameters:

  • typ: type of window.

The function returns the following values:

  • window: new Window.

func (*Window) AcceptFocus

func (window *Window) AcceptFocus() bool

AcceptFocus gets the value set by gtk_window_set_accept_focus().

The function returns the following values:

  • ok: TRUE if window should receive the input focus.

func (*Window) ActivateDefault

func (window *Window) ActivateDefault() bool

ActivateDefault activates the default widget for the window, unless the current focused widget has been configured to receive the default action (see gtk_widget_set_receives_default()), in which case the focused widget is activated.

The function returns the following values:

  • ok: TRUE if a widget got activated.

func (*Window) ActivateFocus

func (window *Window) ActivateFocus() bool

ActivateFocus activates the current focused widget within the window.

The function returns the following values:

  • ok: TRUE if a widget got activated.

func (*Window) ActivateKey

func (window *Window) ActivateKey(event *gdk.EventKey) bool

ActivateKey activates mnemonics and accelerators for this Window. This is normally called by the default ::key_press_event handler for toplevel windows, however in some cases it may be useful to call this directly when overriding the standard key handling for a toplevel window.

The function takes the following parameters:

  • event: EventKey.

The function returns the following values:

  • ok: TRUE if a mnemonic or accelerator was found and activated.

func (*Window) AddAccelGroup

func (window *Window) AddAccelGroup(accelGroup *AccelGroup)

AddAccelGroup: associate accel_group with window, such that calling gtk_accel_groups_activate() on window will activate accelerators in accel_group.

The function takes the following parameters:

  • accelGroup: AccelGroup.

func (*Window) AddMnemonic

func (window *Window) AddMnemonic(keyval uint, target Widgetter)

AddMnemonic adds a mnemonic to this window.

The function takes the following parameters:

  • keyval: mnemonic.
  • target: widget that gets activated by the mnemonic.

func (*Window) Application

func (window *Window) Application() *Application

Application gets the Application associated with the window (if any).

The function returns the following values:

  • application (optional) or NULL.

func (*Window) AttachedTo

func (window *Window) AttachedTo() Widgetter

AttachedTo fetches the attach widget for this window. See gtk_window_set_attached_to().

The function returns the following values:

  • widget (optional) where the window is attached, or NULL if the window is not attached to any widget.

func (*Window) BeginMoveDrag

func (window *Window) BeginMoveDrag(button, rootX, rootY int, timestamp uint32)

BeginMoveDrag starts moving a window. This function is used if an application has window movement grips. When GDK can support it, the window movement will be done using the standard mechanism for the [window manager][gtk-X11-arch] or windowing system. Otherwise, GDK will try to emulate window movement, potentially not all that well, depending on the windowing system.

The function takes the following parameters:

  • button: mouse button that initiated the drag.
  • rootX: x position where the user clicked to initiate the drag, in root window coordinates.
  • rootY: y position where the user clicked to initiate the drag.
  • timestamp from the click event that initiated the drag.

func (*Window) BeginResizeDrag

func (window *Window) BeginResizeDrag(edge gdk.WindowEdge, button, rootX, rootY int, timestamp uint32)

BeginResizeDrag starts resizing a window. This function is used if an application has window resizing controls. When GDK can support it, the resize will be done using the standard mechanism for the [window manager][gtk-X11-arch] or windowing system. Otherwise, GDK will try to emulate window resizing, potentially not all that well, depending on the windowing system.

The function takes the following parameters:

  • edge: position of the resize control.
  • button: mouse button that initiated the drag.
  • rootX: x position where the user clicked to initiate the drag, in root window coordinates.
  • rootY: y position where the user clicked to initiate the drag.
  • timestamp from the click event that initiated the drag.

func (*Window) Close

func (window *Window) Close()

Close requests that the window is closed, similar to what happens when a window manager close button is clicked.

This function can be used with close buttons in custom titlebars.

func (*Window) ConnectActivateDefault

func (window *Window) ConnectActivateDefault(f func()) coreglib.SignalHandle

ConnectActivateDefault signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user activates the default widget of window.

func (*Window) ConnectActivateFocus

func (window *Window) ConnectActivateFocus(f func()) coreglib.SignalHandle

ConnectActivateFocus signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user activates the currently focused widget of window.

func (*Window) ConnectEnableDebugging

func (window *Window) ConnectEnableDebugging(f func(toggle bool) (ok bool)) coreglib.SignalHandle

ConnectEnableDebugging signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user enables or disables interactive debugging. When toggle is TRUE, interactive debugging is toggled on or off, when it is FALSE, the debugger will be pointed at the widget under the pointer.

The default bindings for this signal are Ctrl-Shift-I and Ctrl-Shift-D.

func (*Window) ConnectKeysChanged

func (window *Window) ConnectKeysChanged(f func()) coreglib.SignalHandle

ConnectKeysChanged signal gets emitted when the set of accelerators or mnemonics that are associated with window changes.

func (*Window) ConnectSetFocus

func (window *Window) ConnectSetFocus(f func(widget Widgetter)) coreglib.SignalHandle

ConnectSetFocus: this signal is emitted whenever the currently focused widget in this window changes.

func (*Window) Decorated

func (window *Window) Decorated() bool

Decorated returns whether the window has been set to have decorations such as a title bar via gtk_window_set_decorated().

The function returns the following values:

  • ok: TRUE if the window has been set to have decorations.

func (*Window) DefaultSize

func (window *Window) DefaultSize() (width, height int)

DefaultSize gets the default size of the window. A value of -1 for the width or height indicates that a default size has not been explicitly set for that dimension, so the “natural” size of the window will be used.

The function returns the following values:

  • width (optional): location to store the default width, or NULL.
  • height (optional): location to store the default height, or NULL.

func (*Window) DefaultWidget

func (window *Window) DefaultWidget() Widgetter

DefaultWidget returns the default widget for window. See gtk_window_set_default() for more details.

The function returns the following values:

  • widget (optional): default widget, or NULL if there is none.

func (*Window) Deiconify

func (window *Window) Deiconify()

Deiconify asks to deiconify (i.e. unminimize) the specified window. Note that you shouldn’t assume the window is definitely deiconified afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch])) could iconify it again before your code which assumes deiconification gets to run.

You can track iconification via the “window-state-event” signal on Widget.

func (*Window) Deletable

func (window *Window) Deletable() bool

Deletable returns whether the window has been set to have a close button via gtk_window_set_deletable().

The function returns the following values:

  • ok: TRUE if the window has been set to have a close button.

func (*Window) DestroyWithParent

func (window *Window) DestroyWithParent() bool

DestroyWithParent returns whether the window will be destroyed with its transient parent. See gtk_window_set_destroy_with_parent ().

The function returns the following values:

  • ok: TRUE if the window will be destroyed with its transient parent.

func (*Window) Focus

func (window *Window) Focus() Widgetter

Focus retrieves the current focused widget within the window. Note that this is the widget that would have the focus if the toplevel window focused; if the toplevel window is not focused then gtk_widget_has_focus (widget) will not be TRUE for the widget.

The function returns the following values:

  • widget (optional): currently focused widget, or NULL if there is none.

func (*Window) FocusOnMap

func (window *Window) FocusOnMap() bool

FocusOnMap gets the value set by gtk_window_set_focus_on_map().

The function returns the following values:

  • ok: TRUE if window should receive the input focus when mapped.

func (*Window) FocusVisible

func (window *Window) FocusVisible() bool

FocusVisible gets the value of the Window:focus-visible property.

The function returns the following values:

  • ok: TRUE if “focus rectangles” are supposed to be visible in this window.

func (*Window) Fullscreen

func (window *Window) Fullscreen()

Fullscreen asks to place window in the fullscreen state. Note that you shouldn’t assume the window is definitely full screen afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could unfullscreen it again, and not all window managers honor requests to fullscreen windows. But normally the window will end up fullscreen. Just don’t write code that crashes if not.

You can track the fullscreen state via the “window-state-event” signal on Widget.

func (*Window) FullscreenOnMonitor

func (window *Window) FullscreenOnMonitor(screen *gdk.Screen, monitor int)

FullscreenOnMonitor asks to place window in the fullscreen state. Note that you shouldn't assume the window is definitely full screen afterward.

You can track the fullscreen state via the "window-state-event" signal on Widget.

The function takes the following parameters:

  • screen to draw to.
  • monitor: which monitor to go fullscreen on.

func (*Window) Gravity

func (window *Window) Gravity() gdk.Gravity

Gravity gets the value set by gtk_window_set_gravity().

The function returns the following values:

  • gravity: window gravity.

func (*Window) Group

func (window *Window) Group() *WindowGroup

Group returns the group for window or the default group, if window is NULL or if window does not have an explicit window group.

The function returns the following values:

  • windowGroup for a window or the default group.

func (*Window) HasGroup

func (window *Window) HasGroup() bool

HasGroup returns whether window has an explicit window group.

The function returns the following values:

  • ok: TRUE if window has an explicit window group.

    Since 2.22.

func (*Window) HasResizeGrip deprecated

func (window *Window) HasResizeGrip() bool

HasResizeGrip determines whether the window may have a resize grip.

Deprecated: Resize grips have been removed.

The function returns the following values:

  • ok: TRUE if the window has a resize grip.

func (*Window) HasToplevelFocus

func (window *Window) HasToplevelFocus() bool

HasToplevelFocus returns whether the input focus is within this GtkWindow. For real toplevel windows, this is identical to gtk_window_is_active(), but for embedded windows, like Plug, the results will differ.

The function returns the following values:

  • ok: TRUE if the input focus is within this GtkWindow.

func (*Window) HideTitlebarWhenMaximized

func (window *Window) HideTitlebarWhenMaximized() bool

HideTitlebarWhenMaximized returns whether the window has requested to have its titlebar hidden when maximized. See gtk_window_set_hide_titlebar_when_maximized ().

The function returns the following values:

  • ok: TRUE if the window has requested to have its titlebar hidden when maximized.

func (*Window) Icon

func (window *Window) Icon() *gdkpixbuf.Pixbuf

Icon gets the value set by gtk_window_set_icon() (or if you've called gtk_window_set_icon_list(), gets the first icon in the icon list).

The function returns the following values:

  • pixbuf (optional): icon for window or NULL if none.

func (*Window) IconList

func (window *Window) IconList() []*gdkpixbuf.Pixbuf

IconList retrieves the list of icons set by gtk_window_set_icon_list(). The list is copied, but the reference count on each member won’t be incremented.

The function returns the following values:

  • list: copy of window’s icon list.

func (*Window) IconName

func (window *Window) IconName() string

IconName returns the name of the themed icon for the window, see gtk_window_set_icon_name().

The function returns the following values:

  • utf8 (optional): icon name or NULL if the window has no themed icon.

func (*Window) Iconify

func (window *Window) Iconify()

Iconify asks to iconify (i.e. minimize) the specified window. Note that you shouldn’t assume the window is definitely iconified afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could deiconify it again, or there may not be a window manager in which case iconification isn’t possible, etc. But normally the window will end up iconified. Just don’t write code that crashes if not.

It’s permitted to call this function before showing a window, in which case the window will be iconified before it ever appears onscreen.

You can track iconification via the “window-state-event” signal on Widget.

func (*Window) IsActive

func (window *Window) IsActive() bool

IsActive returns whether the window is part of the current active toplevel. (That is, the toplevel window receiving keystrokes.) The return value is TRUE if the window is active toplevel itself, but also if it is, say, a Plug embedded in the active toplevel. You might use this function if you wanted to draw a widget differently in an active window from a widget in an inactive window. See gtk_window_has_toplevel_focus().

The function returns the following values:

  • ok: TRUE if the window part of the current active window.

func (*Window) IsMaximized

func (window *Window) IsMaximized() bool

IsMaximized retrieves the current maximized state of window.

Note that since maximization is ultimately handled by the window manager and happens asynchronously to an application request, you shouldn’t assume the return value of this function changing immediately (or at all), as an effect of calling gtk_window_maximize() or gtk_window_unmaximize().

The function returns the following values:

  • ok: whether the window has a maximized state.

func (*Window) Maximize

func (window *Window) Maximize()

Maximize asks to maximize window, so that it becomes full-screen. Note that you shouldn’t assume the window is definitely maximized afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could unmaximize it again, and not all window managers support maximization. But normally the window will end up maximized. Just don’t write code that crashes if not.

It’s permitted to call this function before showing a window, in which case the window will be maximized when it appears onscreen initially.

You can track maximization via the “window-state-event” signal on Widget, or by listening to notifications on the Window:is-maximized property.

func (*Window) MnemonicActivate

func (window *Window) MnemonicActivate(keyval uint, modifier gdk.ModifierType) bool

MnemonicActivate activates the targets associated with the mnemonic.

The function takes the following parameters:

  • keyval: mnemonic.
  • modifier: modifiers.

The function returns the following values:

  • ok: TRUE if the activation is done.

func (*Window) MnemonicModifier

func (window *Window) MnemonicModifier() gdk.ModifierType

MnemonicModifier returns the mnemonic modifier for this window. See gtk_window_set_mnemonic_modifier().

The function returns the following values:

  • modifierType: modifier mask used to activate mnemonics on this window.

func (*Window) MnemonicsVisible

func (window *Window) MnemonicsVisible() bool

MnemonicsVisible gets the value of the Window:mnemonics-visible property.

The function returns the following values:

  • ok: TRUE if mnemonics are supposed to be visible in this window.

func (*Window) Modal

func (window *Window) Modal() bool

Modal returns whether the window is modal. See gtk_window_set_modal().

The function returns the following values:

  • ok: TRUE if the window is set to be modal and establishes a grab when shown.

func (*Window) Move

func (window *Window) Move(x, y int)

Move asks the [window manager][gtk-X11-arch] to move window to the given position. Window managers are free to ignore this; most window managers ignore requests for initial window positions (instead using a user-defined placement algorithm) and honor requests after the window has already been shown.

Note: the position is the position of the gravity-determined reference point for the window. The gravity determines two things: first, the location of the reference point in root window coordinates; and second, which point on the window is positioned at the reference point.

By default the gravity is K_GRAVITY_NORTH_WEST, so the reference point is simply the x, y supplied to gtk_window_move(). The top-left corner of the window decorations (aka window frame or border) will be placed at x, y. Therefore, to position a window at the top left of the screen, you want to use the default gravity (which is K_GRAVITY_NORTH_WEST) and move the window to 0,0.

To position a window at the bottom right corner of the screen, you would set K_GRAVITY_SOUTH_EAST, which means that the reference point is at x + the window width and y + the window height, and the bottom-right corner of the window border will be placed at that reference point. So, to place a window in the bottom right corner you would first set gravity to south east, then write: gtk_window_move (window, gdk_screen_width () - window_width, gdk_screen_height () - window_height) (note that this example does not take multi-head scenarios into account).

The Extended Window Manager Hints Specification (http://www.freedesktop.org/Standards/wm-spec) has a nice table of gravities in the “implementation notes” section.

The gtk_window_get_position() documentation may also be relevant.

The function takes the following parameters:

  • x: x coordinate to move window to.
  • y: y coordinate to move window to.

func (*Window) Opacity deprecated

func (window *Window) Opacity() float64

Opacity fetches the requested opacity for this window. See gtk_window_set_opacity().

Deprecated: Use gtk_widget_get_opacity instead.

The function returns the following values:

  • gdouble: requested opacity for this window.

func (*Window) ParseGeometry deprecated

func (window *Window) ParseGeometry(geometry string) bool

ParseGeometry parses a standard X Window System geometry string - see the manual page for X (type “man X”) for details on this. gtk_window_parse_geometry() does work on all GTK+ ports including Win32 but is primarily intended for an X environment.

If either a size or a position can be extracted from the geometry string, gtk_window_parse_geometry() returns TRUE and calls gtk_window_set_default_size() and/or gtk_window_move() to resize/move the window.

If gtk_window_parse_geometry() returns TRUE, it will also set the K_HINT_USER_POS and/or K_HINT_USER_SIZE hints indicating to the window manager that the size/position of the window was user-specified. This causes most window managers to honor the geometry.

Note that for gtk_window_parse_geometry() to work as expected, it has to be called when the window has its “final” size, i.e. after calling gtk_widget_show_all() on the contents and gtk_window_set_geometry_hints() on the window.

#include <gtk/gtk.h>

static void
fill_with_content (GtkWidget *vbox)
{
  // fill with content...
}

int
main (int argc, char *argv[])
{
  GtkWidget *window, *vbox;
  GdkGeometry size_hints = {
    100, 50, 0, 0, 100, 50, 10,
    10, 0.0, 0.0, GDK_GRAVITY_NORTH_WEST
  };

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);

  gtk_container_add (GTK_CONTAINER (window), vbox);
  fill_with_content (vbox);
  gtk_widget_show_all (vbox);

  gtk_window_set_geometry_hints (GTK_WINDOW (window),
	  			    NULL,
				    &size_hints,
				    GDK_HINT_MIN_SIZE |
				    GDK_HINT_BASE_SIZE |
				    GDK_HINT_RESIZE_INC);

  if (argc > 1)
    {
      gboolean res;
      res = gtk_window_parse_geometry (GTK_WINDOW (window),
                                       argv[1]);
      if (! res)
        fprintf (stderr,
                 "Failed to parse “s”\n",
                 argv[1]);
    }

  gtk_widget_show_all (window);
  gtk_main ();

  return 0;
}

Deprecated: Geometry handling in GTK is deprecated.

The function takes the following parameters:

  • geometry string.

The function returns the following values:

  • ok: TRUE if string was parsed successfully.

func (*Window) Position

func (window *Window) Position() (rootX, rootY int)

Position: this function returns the position you need to pass to gtk_window_move() to keep window in its current position. This means that the meaning of the returned value varies with window gravity. See gtk_window_move() for more details.

The reliability of this function depends on the windowing system currently in use. Some windowing systems, such as Wayland, do not support a global coordinate system, and thus the position of the window will always be (0, 0). Others, like X11, do not have a reliable way to obtain the geometry of the decorations of a window if they are provided by the window manager. Additionally, on X11, window manager have been known to mismanage window gravity, which result in windows moving even if you use the coordinates of the current position as returned by this function.

If you haven’t changed the window gravity, its gravity will be K_GRAVITY_NORTH_WEST. This means that gtk_window_get_position() gets the position of the top-left corner of the window manager frame for the window. gtk_window_move() sets the position of this same top-left corner.

If a window has gravity K_GRAVITY_STATIC the window manager frame is not relevant, and thus gtk_window_get_position() will always produce accurate results. However you can’t use static gravity to do things like place a window in a corner of the screen, because static gravity ignores the window manager decorations.

Ideally, this function should return appropriate values if the window has client side decorations, assuming that the windowing system supports global coordinates.

In practice, saving the window position should not be left to applications, as they lack enough knowledge of the windowing system and the window manager state to effectively do so. The appropriate way to implement saving the window position is to use a platform-specific protocol, wherever that is available.

The function returns the following values:

  • rootX (optional): return location for X coordinate of gravity-determined reference point, or NULL.
  • rootY (optional): return location for Y coordinate of gravity-determined reference point, or NULL.

func (*Window) Present

func (window *Window) Present()

Present presents a window to the user. This function should not be used as when it is called, it is too late to gather a valid timestamp to allow focus stealing prevention to work correctly.

func (*Window) PresentWithTime

func (window *Window) PresentWithTime(timestamp uint32)

PresentWithTime presents a window to the user. This may mean raising the window in the stacking order, deiconifying it, moving it to the current desktop, and/or giving it the keyboard focus, possibly dependent on the user’s platform, window manager, and preferences.

If window is hidden, this function calls gtk_widget_show() as well.

This function should be used when the user tries to open a window that’s already open. Say for example the preferences dialog is currently open, and the user chooses Preferences from the menu a second time; use gtk_window_present() to move the already-open dialog where the user can see it.

Presents a window to the user in response to a user interaction. The timestamp should be gathered when the window was requested to be shown (when clicking a link for example), rather than once the window is ready to be shown.

The function takes the following parameters:

  • timestamp of the user interaction (typically a button or key press event) which triggered this call.

func (*Window) PropagateKeyEvent

func (window *Window) PropagateKeyEvent(event *gdk.EventKey) bool

PropagateKeyEvent: propagate a key press or release event to the focus widget and up the focus container chain until a widget handles event. This is normally called by the default ::key_press_event and ::key_release_event handlers for toplevel windows, however in some cases it may be useful to call this directly when overriding the standard key handling for a toplevel window.

The function takes the following parameters:

  • event: EventKey.

The function returns the following values:

  • ok: TRUE if a widget in the focus chain handled the event.

func (*Window) RemoveAccelGroup

func (window *Window) RemoveAccelGroup(accelGroup *AccelGroup)

RemoveAccelGroup reverses the effects of gtk_window_add_accel_group().

The function takes the following parameters:

  • accelGroup: AccelGroup.

func (*Window) RemoveMnemonic

func (window *Window) RemoveMnemonic(keyval uint, target Widgetter)

RemoveMnemonic removes a mnemonic from this window.

The function takes the following parameters:

  • keyval: mnemonic.
  • target: widget that gets activated by the mnemonic.

func (*Window) ReshowWithInitialSize deprecated

func (window *Window) ReshowWithInitialSize()

ReshowWithInitialSize hides window, then reshows it, resetting the default size and position of the window. Used by GUI builders only.

Deprecated: GUI builders can call gtk_widget_hide(), gtk_widget_unrealize() and then gtk_widget_show() on window themselves, if they still need this functionality.

func (*Window) Resizable

func (window *Window) Resizable() bool

Resizable gets the value set by gtk_window_set_resizable().

The function returns the following values:

  • ok: TRUE if the user can resize the window.

func (*Window) Resize

func (window *Window) Resize(width, height int)

Resize resizes the window as if the user had done so, obeying geometry constraints. The default geometry constraint is that windows may not be smaller than their size request; to override this constraint, call gtk_widget_set_size_request() to set the window's request to a smaller value.

If gtk_window_resize() is called before showing a window for the first time, it overrides any default size set with gtk_window_set_default_size().

Windows may not be resized smaller than 1 by 1 pixels.

When using client side decorations, GTK+ will do its best to adjust the given size so that the resulting window size matches the requested size without the title bar, borders and shadows added for the client side decorations, but there is no guarantee that the result will be totally accurate because these widgets added for client side decorations depend on the theme and may not be realized or visible at the time gtk_window_resize() is issued.

If the GtkWindow has a titlebar widget (see gtk_window_set_titlebar()), then typically, gtk_window_resize() will compensate for the height of the titlebar widget only if the height is known when the resulting GtkWindow configuration is issued. For example, if new widgets are added after the GtkWindow configuration and cause the titlebar widget to grow in height, this will result in a window content smaller that specified by gtk_window_resize() and not a larger window.

The function takes the following parameters:

  • width in pixels to resize the window to.
  • height in pixels to resize the window to.

func (*Window) ResizeGripArea deprecated

func (window *Window) ResizeGripArea() (*gdk.Rectangle, bool)

ResizeGripArea: if a window has a resize grip, this will retrieve the grip position, width and height into the specified Rectangle.

Deprecated: Resize grips have been removed.

The function returns the following values:

  • rect: pointer to a Rectangle which we should store the resize grip area.
  • ok: TRUE if the resize grip’s area was retrieved.

func (*Window) ResizeGripIsVisible deprecated

func (window *Window) ResizeGripIsVisible() bool

ResizeGripIsVisible determines whether a resize grip is visible for the specified window.

Deprecated: Resize grips have been removed.

The function returns the following values:

  • ok: TRUE if a resize grip exists and is visible.

func (*Window) ResizeToGeometry deprecated

func (window *Window) ResizeToGeometry(width, height int)

ResizeToGeometry: like gtk_window_resize(), but width and height are interpreted in terms of the base size and increment set with gtk_window_set_geometry_hints.

Deprecated: This function does nothing. Use gtk_window_resize() and compute the geometry yourself.

The function takes the following parameters:

  • width in resize increments to resize the window to.
  • height in resize increments to resize the window to.

func (*Window) Role

func (window *Window) Role() string

Role returns the role of the window. See gtk_window_set_role() for further explanation.

The function returns the following values:

  • utf8 (optional): role of the window if set, or NULL. The returned is owned by the widget and must not be modified or freed.

func (*Window) Screen

func (window *Window) Screen() *gdk.Screen

Screen returns the Screen associated with window.

The function returns the following values:

  • screen: Screen.

func (*Window) SetAcceptFocus

func (window *Window) SetAcceptFocus(setting bool)

SetAcceptFocus windows may set a hint asking the desktop environment not to receive the input focus. This function sets this hint.

The function takes the following parameters:

  • setting: TRUE to let this window receive input focus.

func (*Window) SetApplication

func (window *Window) SetApplication(application *Application)

SetApplication sets or unsets the Application associated with the window.

The application will be kept alive for at least as long as it has any windows associated with it (see g_application_hold() for a way to keep it alive without windows).

Normally, the connection between the application and the window will remain until the window is destroyed, but you can explicitly remove it by setting the application to NULL.

This is equivalent to calling gtk_application_remove_window() and/or gtk_application_add_window() on the old/new applications as relevant.

The function takes the following parameters:

  • application (optional) or NULL to unset.

func (*Window) SetAttachedTo

func (window *Window) SetAttachedTo(attachWidget Widgetter)

SetAttachedTo marks window as attached to attach_widget. This creates a logical binding between the window and the widget it belongs to, which is used by GTK+ to propagate information such as styling or accessibility to window as if it was a children of attach_widget.

Examples of places where specifying this relation is useful are for instance a Menu created by a ComboBox, a completion popup window created by Entry or a typeahead search entry created by TreeView.

Note that this function should not be confused with gtk_window_set_transient_for(), which specifies a window manager relation between two toplevels instead.

Passing NULL for attach_widget detaches the window.

The function takes the following parameters:

  • attachWidget (optional) or NULL.

func (*Window) SetDecorated

func (window *Window) SetDecorated(setting bool)

SetDecorated: by default, windows are decorated with a title bar, resize controls, etc. Some [window managers][gtk-X11-arch] allow GTK+ to disable these decorations, creating a borderless window. If you set the decorated property to FALSE using this function, GTK+ will do its best to convince the window manager not to decorate the window. Depending on the system, this function may not have any effect when called on a window that is already visible, so you should call it before calling gtk_widget_show().

On Windows, this function always works, since there’s no window manager policy involved.

The function takes the following parameters:

  • setting: TRUE to decorate the window.

func (*Window) SetDefault

func (window *Window) SetDefault(defaultWidget Widgetter)

SetDefault: default widget is the widget that’s activated when the user presses Enter in a dialog (for example). This function sets or unsets the default widget for a Window. When setting (rather than unsetting) the default widget it’s generally easier to call gtk_widget_grab_default() on the widget. Before making a widget the default widget, you must call gtk_widget_set_can_default() on the widget you’d like to make the default.

The function takes the following parameters:

  • defaultWidget (optional): widget to be the default, or NULL to unset the default widget for the toplevel.

func (*Window) SetDefaultGeometry deprecated

func (window *Window) SetDefaultGeometry(width, height int)

SetDefaultGeometry: like gtk_window_set_default_size(), but width and height are interpreted in terms of the base size and increment set with gtk_window_set_geometry_hints.

Deprecated: This function does nothing. If you want to set a default size, use gtk_window_set_default_size() instead.

The function takes the following parameters:

  • width in resize increments, or -1 to unset the default width.
  • height in resize increments, or -1 to unset the default height.

func (*Window) SetDefaultSize

func (window *Window) SetDefaultSize(width, height int)

SetDefaultSize sets the default size of a window. If the window’s “natural” size (its size request) is larger than the default, the default will be ignored. More generally, if the default size does not obey the geometry hints for the window (gtk_window_set_geometry_hints() can be used to set these explicitly), the default size will be clamped to the nearest permitted size.

Unlike gtk_widget_set_size_request(), which sets a size request for a widget and thus would keep users from shrinking the window, this function only sets the initial size, just as if the user had resized the window themselves. Users can still shrink the window again as they normally would. Setting a default size of -1 means to use the “natural” default size (the size request of the window).

For more control over a window’s initial size and how resizing works, investigate gtk_window_set_geometry_hints().

For some uses, gtk_window_resize() is a more appropriate function. gtk_window_resize() changes the current size of the window, rather than the size to be used on initial display. gtk_window_resize() always affects the window itself, not the geometry widget.

The default size of a window only affects the first time a window is shown; if a window is hidden and re-shown, it will remember the size it had prior to hiding, rather than using the default size.

Windows can’t actually be 0x0 in size, they must be at least 1x1, but passing 0 for width and height is OK, resulting in a 1x1 default size.

If you use this function to reestablish a previously saved window size, note that the appropriate size to save is the one returned by gtk_window_get_size(). Using the window allocation directly will not work in all circumstances and can lead to growing or shrinking windows.

The function takes the following parameters:

  • width in pixels, or -1 to unset the default width.
  • height in pixels, or -1 to unset the default height.

func (*Window) SetDeletable

func (window *Window) SetDeletable(setting bool)

SetDeletable: by default, windows have a close button in the window frame. Some [window managers][gtk-X11-arch] allow GTK+ to disable this button. If you set the deletable property to FALSE using this function, GTK+ will do its best to convince the window manager not to show a close button. Depending on the system, this function may not have any effect when called on a window that is already visible, so you should call it before calling gtk_widget_show().

On Windows, this function always works, since there’s no window manager policy involved.

The function takes the following parameters:

  • setting: TRUE to decorate the window as deletable.

func (*Window) SetDestroyWithParent

func (window *Window) SetDestroyWithParent(setting bool)

SetDestroyWithParent: if setting is TRUE, then destroying the transient parent of window will also destroy window itself. This is useful for dialogs that shouldn’t persist beyond the lifetime of the main window they're associated with, for example.

The function takes the following parameters:

  • setting: whether to destroy window with its transient parent.

func (*Window) SetFocus

func (window *Window) SetFocus(focus Widgetter)

SetFocus: if focus is not the current focus widget, and is focusable, sets it as the focus widget for the window. If focus is NULL, unsets the focus widget for this window. To set the focus to a particular widget in the toplevel, it is usually more convenient to use gtk_widget_grab_focus() instead of this function.

The function takes the following parameters:

  • focus (optional): widget to be the new focus widget, or NULL to unset any focus widget for the toplevel window.

func (*Window) SetFocusOnMap

func (window *Window) SetFocusOnMap(setting bool)

SetFocusOnMap windows may set a hint asking the desktop environment not to receive the input focus when the window is mapped. This function sets this hint.

The function takes the following parameters:

  • setting: TRUE to let this window receive input focus on map.

func (*Window) SetFocusVisible

func (window *Window) SetFocusVisible(setting bool)

SetFocusVisible sets the Window:focus-visible property.

The function takes the following parameters:

  • setting: new value.

func (*Window) SetGeometryHints

func (window *Window) SetGeometryHints(geometryWidget Widgetter, geometry *gdk.Geometry, geomMask gdk.WindowHints)

SetGeometryHints: this function sets up hints about how a window can be resized by the user. You can set a minimum and maximum size; allowed resize increments (e.g. for xterm, you can only resize by the size of a character); aspect ratios; and more. See the Geometry struct.

The function takes the following parameters:

  • geometryWidget (optional): widget the geometry hints used to be applied to or NULL. Since 3.20 this argument is ignored and GTK behaves as if NULL was set.
  • geometry (optional): struct containing geometry information or NULL.
  • geomMask: mask indicating which struct fields should be paid attention to.

func (*Window) SetGravity

func (window *Window) SetGravity(gravity gdk.Gravity)

SetGravity: window gravity defines the meaning of coordinates passed to gtk_window_move(). See gtk_window_move() and Gravity for more details.

The default window gravity is K_GRAVITY_NORTH_WEST which will typically “do what you mean.”.

The function takes the following parameters:

  • gravity: window gravity.

func (*Window) SetHasResizeGrip deprecated

func (window *Window) SetHasResizeGrip(value bool)

SetHasResizeGrip sets whether window has a corner resize grip.

Note that the resize grip is only shown if the window is actually resizable and not maximized. Use gtk_window_resize_grip_is_visible() to find out if the resize grip is currently shown.

Deprecated: Resize grips have been removed.

The function takes the following parameters:

  • value: TRUE to allow a resize grip.

func (*Window) SetHasUserRefCount

func (window *Window) SetHasUserRefCount(setting bool)

SetHasUserRefCount tells GTK+ whether to drop its extra reference to the window when gtk_widget_destroy() is called.

This function is only exported for the benefit of language bindings which may need to keep the window alive until their wrapper object is garbage collected. There is no justification for ever calling this function in an application.

The function takes the following parameters:

  • setting: new value.

func (*Window) SetHideTitlebarWhenMaximized

func (window *Window) SetHideTitlebarWhenMaximized(setting bool)

SetHideTitlebarWhenMaximized: if setting is TRUE, then window will request that it’s titlebar should be hidden when maximized. This is useful for windows that don’t convey any information other than the application name in the titlebar, to put the available screen space to better use. If the underlying window system does not support the request, the setting will not have any effect.

Note that custom titlebars set with gtk_window_set_titlebar() are not affected by this. The application is in full control of their content and visibility anyway.

The function takes the following parameters:

  • setting: whether to hide the titlebar when window is maximized.

func (*Window) SetIcon

func (window *Window) SetIcon(icon *gdkpixbuf.Pixbuf)

SetIcon sets up the icon representing a Window. This icon is used when the window is minimized (also known as iconified). Some window managers or desktop environments may also place it in the window frame, or display it in other contexts. On others, the icon is not used at all, so your mileage may vary.

The icon should be provided in whatever size it was naturally drawn; that is, don’t scale the image before passing it to GTK+. Scaling is postponed until the last minute, when the desired final size is known, to allow best quality.

If you have your icon hand-drawn in multiple sizes, use gtk_window_set_icon_list(). Then the best size will be used.

This function is equivalent to calling gtk_window_set_icon_list() with a 1-element list.

See also gtk_window_set_default_icon_list() to set the icon for all windows in your application in one go.

The function takes the following parameters:

  • icon (optional) image, or NULL.

func (*Window) SetIconFromFile

func (window *Window) SetIconFromFile(filename string) error

SetIconFromFile sets the icon for window. Warns on failure if err is NULL.

This function is equivalent to calling gtk_window_set_icon() with a pixbuf created by loading the image from filename.

The function takes the following parameters:

  • filename: location of icon file.

func (*Window) SetIconList

func (window *Window) SetIconList(list []*gdkpixbuf.Pixbuf)

SetIconList sets up the icon representing a Window. The icon is used when the window is minimized (also known as iconified). Some window managers or desktop environments may also place it in the window frame, or display it in other contexts. On others, the icon is not used at all, so your mileage may vary.

gtk_window_set_icon_list() allows you to pass in the same icon in several hand-drawn sizes. The list should contain the natural sizes your icon is available in; that is, don’t scale the image before passing it to GTK+. Scaling is postponed until the last minute, when the desired final size is known, to allow best quality.

By passing several sizes, you may improve the final image quality of the icon, by reducing or eliminating automatic image scaling.

Recommended sizes to provide: 16x16, 32x32, 48x48 at minimum, and larger images (64x64, 128x128) if you have them.

See also gtk_window_set_default_icon_list() to set the icon for all windows in your application in one go.

Note that transient windows (those who have been set transient for another window using gtk_window_set_transient_for()) will inherit their icon from their transient parent. So there’s no need to explicitly set the icon on transient windows.

The function takes the following parameters:

  • list of Pixbuf.

func (*Window) SetIconName

func (window *Window) SetIconName(name string)

SetIconName sets the icon for the window from a named themed icon. See the docs for IconTheme for more details. On some platforms, the window icon is not used at all.

Note that this has nothing to do with the WM_ICON_NAME property which is mentioned in the ICCCM.

The function takes the following parameters:

  • name (optional) of the themed icon.

func (*Window) SetKeepAbove

func (window *Window) SetKeepAbove(setting bool)

SetKeepAbove asks to keep window above, so that it stays on top. Note that you shouldn’t assume the window is definitely above afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could not keep it above, and not all window managers support keeping windows above. But normally the window will end kept above. Just don’t write code that crashes if not.

It’s permitted to call this function before showing a window, in which case the window will be kept above when it appears onscreen initially.

You can track the above state via the “window-state-event” signal on Widget.

Note that, according to the Extended Window Manager Hints Specification (http://www.freedesktop.org/Standards/wm-spec), the above state is mainly meant for user preferences and should not be used by applications e.g. for drawing attention to their dialogs.

The function takes the following parameters:

  • setting: whether to keep window above other windows.

func (*Window) SetKeepBelow

func (window *Window) SetKeepBelow(setting bool)

SetKeepBelow asks to keep window below, so that it stays in bottom. Note that you shouldn’t assume the window is definitely below afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could not keep it below, and not all window managers support putting windows below. But normally the window will be kept below. Just don’t write code that crashes if not.

It’s permitted to call this function before showing a window, in which case the window will be kept below when it appears onscreen initially.

You can track the below state via the “window-state-event” signal on Widget.

Note that, according to the Extended Window Manager Hints Specification (http://www.freedesktop.org/Standards/wm-spec), the above state is mainly meant for user preferences and should not be used by applications e.g. for drawing attention to their dialogs.

The function takes the following parameters:

  • setting: whether to keep window below other windows.

func (*Window) SetMnemonicModifier

func (window *Window) SetMnemonicModifier(modifier gdk.ModifierType)

SetMnemonicModifier sets the mnemonic modifier for this window.

The function takes the following parameters:

  • modifier mask used to activate mnemonics on this window.

func (*Window) SetMnemonicsVisible

func (window *Window) SetMnemonicsVisible(setting bool)

SetMnemonicsVisible sets the Window:mnemonics-visible property.

The function takes the following parameters:

  • setting: new value.

func (*Window) SetModal

func (window *Window) SetModal(modal bool)

SetModal sets a window modal or non-modal. Modal windows prevent interaction with other windows in the same application. To keep modal dialogs on top of main application windows, use gtk_window_set_transient_for() to make the dialog transient for the parent; most [window managers][gtk-X11-arch] will then disallow lowering the dialog below the parent.

The function takes the following parameters:

  • modal: whether the window is modal.

func (*Window) SetOpacity deprecated

func (window *Window) SetOpacity(opacity float64)

SetOpacity: request the windowing system to make window partially transparent, with opacity 0 being fully transparent and 1 fully opaque. (Values of the opacity parameter are clamped to the [0,1] range.) On X11 this has any effect only on X screens with a compositing manager running. See gtk_widget_is_composited(). On Windows it should work always.

Note that setting a window’s opacity after the window has been shown causes it to flicker once on Windows.

Deprecated: Use gtk_widget_set_opacity instead.

The function takes the following parameters:

  • opacity: desired opacity, between 0 and 1.

func (*Window) SetPosition

func (window *Window) SetPosition(position WindowPosition)

SetPosition sets a position constraint for this window. If the old or new constraint is GTK_WIN_POS_CENTER_ALWAYS, this will also cause the window to be repositioned to satisfy the new constraint.

The function takes the following parameters:

  • position constraint.

func (*Window) SetResizable

func (window *Window) SetResizable(resizable bool)

SetResizable sets whether the user can resize a window. Windows are user resizable by default.

The function takes the following parameters:

  • resizable: TRUE if the user can resize this window.

func (*Window) SetRole

func (window *Window) SetRole(role string)

SetRole: this function is only useful on X11, not with other GTK+ targets.

In combination with the window title, the window role allows a [window manager][gtk-X11-arch] to identify "the same" window when an application is restarted. So for example you might set the “toolbox” role on your app’s toolbox window, so that when the user restarts their session, the window manager can put the toolbox back in the same place.

If a window already has a unique title, you don’t need to set the role, since the WM can use the title to identify the window when restoring the session.

The function takes the following parameters:

  • role: unique identifier for the window to be used when restoring a session.

func (*Window) SetScreen

func (window *Window) SetScreen(screen *gdk.Screen)

SetScreen sets the Screen where the window is displayed; if the window is already mapped, it will be unmapped, and then remapped on the new screen.

The function takes the following parameters:

  • screen: Screen.

func (*Window) SetSkipPagerHint

func (window *Window) SetSkipPagerHint(setting bool)

SetSkipPagerHint windows may set a hint asking the desktop environment not to display the window in the pager. This function sets this hint. (A "pager" is any desktop navigation tool such as a workspace switcher that displays a thumbnail representation of the windows on the screen.).

The function takes the following parameters:

  • setting: TRUE to keep this window from appearing in the pager.

func (*Window) SetSkipTaskbarHint

func (window *Window) SetSkipTaskbarHint(setting bool)

SetSkipTaskbarHint windows may set a hint asking the desktop environment not to display the window in the task bar. This function sets this hint.

The function takes the following parameters:

  • setting: TRUE to keep this window from appearing in the task bar.

func (*Window) SetStartupID

func (window *Window) SetStartupID(startupId string)

SetStartupID: startup notification identifiers are used by desktop environment to track application startup, to provide user feedback and other features. This function changes the corresponding property on the underlying GdkWindow. Normally, startup identifier is managed automatically and you should only use this function in special cases like transferring focus from other processes. You should use this function before calling gtk_window_present() or any equivalent function generating a window map event.

This function is only useful on X11, not with other GTK+ targets.

The function takes the following parameters:

  • startupId: string with startup-notification identifier.

func (*Window) SetTitle

func (window *Window) SetTitle(title string)

SetTitle sets the title of the Window. The title of a window will be displayed in its title bar; on the X Window System, the title bar is rendered by the [window manager][gtk-X11-arch], so exactly how the title appears to users may vary according to a user’s exact configuration. The title should help a user distinguish this window from other windows they may have open. A good title might include the application name and current document filename, for example.

The function takes the following parameters:

  • title of the window.

func (*Window) SetTitlebar

func (window *Window) SetTitlebar(titlebar Widgetter)

SetTitlebar sets a custom titlebar for window.

A typical widget used here is HeaderBar, as it provides various features expected of a titlebar while allowing the addition of child widgets to it.

If you set a custom titlebar, GTK+ will do its best to convince the window manager not to put its own titlebar on the window. Depending on the system, this function may not work for a window that is already visible, so you set the titlebar before calling gtk_widget_show().

The function takes the following parameters:

  • titlebar (optional): widget to use as titlebar.

func (*Window) SetTransientFor

func (window *Window) SetTransientFor(parent *Window)

SetTransientFor: dialog windows should be set transient for the main application window they were spawned from. This allows [window managers][gtk-X11-arch] to e.g. keep the dialog on top of the main window, or center the dialog over the main window. gtk_dialog_new_with_buttons() and other convenience functions in GTK+ will sometimes call gtk_window_set_transient_for() on your behalf.

Passing NULL for parent unsets the current transient window.

On Wayland, this function can also be used to attach a new K_WINDOW_POPUP to a K_WINDOW_TOPLEVEL parent already mapped on screen so that the K_WINDOW_POPUP will be created as a subsurface-based window K_WINDOW_SUBSURFACE which can be positioned at will relatively to the K_WINDOW_TOPLEVEL surface.

On Windows, this function puts the child window on top of the parent, much as the window manager would have done on X.

The function takes the following parameters:

  • parent (optional) window, or NULL.

func (*Window) SetTypeHint

func (window *Window) SetTypeHint(hint gdk.WindowTypeHint)

SetTypeHint: by setting the type hint for the window, you allow the window manager to decorate and handle the window in a way which is suitable to the function of the window in your application.

This function should be called before the window becomes visible.

gtk_dialog_new_with_buttons() and other convenience functions in GTK+ will sometimes call gtk_window_set_type_hint() on your behalf.

The function takes the following parameters:

  • hint: window type.

func (*Window) SetUrgencyHint

func (window *Window) SetUrgencyHint(setting bool)

SetUrgencyHint windows may set a hint asking the desktop environment to draw the users attention to the window. This function sets this hint.

The function takes the following parameters:

  • setting: TRUE to mark this window as urgent.

func (*Window) SetWmclass deprecated

func (window *Window) SetWmclass(wmclassName, wmclassClass string)

SetWmclass: don’t use this function. It sets the X Window System “class” and “name” hints for a window. According to the ICCCM, you should always set these to the same value for all windows in an application, and GTK+ sets them to that value by default, so calling this function is sort of pointless. However, you may want to call gtk_window_set_role() on each window in your application, for the benefit of the session manager. Setting the role allows the window manager to restore window positions when loading a saved session.

Deprecated: since version 3.22.

The function takes the following parameters:

  • wmclassName: window name hint.
  • wmclassClass: window class hint.

func (*Window) Size

func (window *Window) Size() (width, height int)

Size obtains the current size of window.

If window is not visible on screen, this function return the size GTK+ will suggest to the [window manager][gtk-X11-arch] for the initial window size (but this is not reliably the same as the size the window manager will actually select). See: gtk_window_set_default_size().

Depending on the windowing system and the window manager constraints, the size returned by this function may not match the size set using gtk_window_resize(); additionally, since gtk_window_resize() may be implemented as an asynchronous operation, GTK+ cannot guarantee in any way that this code:

static void
on_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
{
  int new_width, new_height;

  gtk_window_get_size (GTK_WINDOW (widget), &new_width, &new_height);

  ...
}

Note that, if you connect to the Widget::size-allocate signal, you should not use the dimensions of the Allocation passed to the signal handler, as the allocation may contain client side decorations added by GTK+, depending on the windowing system in use.

If you are getting a window size in order to position the window on the screen, you should, instead, simply set the window’s semantic type with gtk_window_set_type_hint(), which allows the window manager to e.g. center dialogs. Also, if you set the transient parent of dialogs with gtk_window_set_transient_for() window managers will often center the dialog over its parent window. It's much preferred to let the window manager handle these cases rather than doing it yourself, because all apps will behave consistently and according to user or system preferences, if the window manager handles it. Also, the window manager can take into account the size of the window decorations and border that it may add, and of which GTK+ has no knowledge. Additionally, positioning windows in global screen coordinates may not be allowed by the windowing system. For more information, see: gtk_window_set_position().

The function returns the following values:

  • width (optional): return location for width, or NULL.
  • height (optional): return location for height, or NULL.

func (*Window) SkipPagerHint

func (window *Window) SkipPagerHint() bool

SkipPagerHint gets the value set by gtk_window_set_skip_pager_hint().

The function returns the following values:

  • ok: TRUE if window shouldn’t be in pager.

func (*Window) SkipTaskbarHint

func (window *Window) SkipTaskbarHint() bool

SkipTaskbarHint gets the value set by gtk_window_set_skip_taskbar_hint().

The function returns the following values:

  • ok: TRUE if window shouldn’t be in taskbar.

func (*Window) Stick

func (window *Window) Stick()

Stick asks to stick window, which means that it will appear on all user desktops. Note that you shouldn’t assume the window is definitely stuck afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch] could unstick it again, and some window managers do not support sticking windows. But normally the window will end up stuck. Just don't write code that crashes if not.

It’s permitted to call this function before showing a window.

You can track stickiness via the “window-state-event” signal on Widget.

func (*Window) Title

func (window *Window) Title() string

Title retrieves the title of the window. See gtk_window_set_title().

The function returns the following values:

  • utf8 (optional): title of the window, or NULL if none has been set explicitly. The returned string is owned by the widget and must not be modified or freed.

func (*Window) Titlebar

func (window *Window) Titlebar() Widgetter

Titlebar returns the custom titlebar that has been set with gtk_window_set_titlebar().

The function returns the following values:

  • widget (optional): custom titlebar, or NULL.

func (*Window) TransientFor

func (window *Window) TransientFor() *Window

TransientFor fetches the transient parent for this window. See gtk_window_set_transient_for().

The function returns the following values:

  • ret (optional): transient parent for this window, or NULL if no transient parent has been set.

func (*Window) TypeHint

func (window *Window) TypeHint() gdk.WindowTypeHint

TypeHint gets the type hint for this window. See gtk_window_set_type_hint().

The function returns the following values:

  • windowTypeHint: type hint for window.

func (*Window) Unfullscreen

func (window *Window) Unfullscreen()

Unfullscreen asks to toggle off the fullscreen state for window. Note that you shouldn’t assume the window is definitely not full screen afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could fullscreen it again, and not all window managers honor requests to unfullscreen windows. But normally the window will end up restored to its normal state. Just don’t write code that crashes if not.

You can track the fullscreen state via the “window-state-event” signal on Widget.

func (*Window) Unmaximize

func (window *Window) Unmaximize()

Unmaximize asks to unmaximize window. Note that you shouldn’t assume the window is definitely unmaximized afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could maximize it again, and not all window managers honor requests to unmaximize. But normally the window will end up unmaximized. Just don’t write code that crashes if not.

You can track maximization via the “window-state-event” signal on Widget.

func (*Window) Unstick

func (window *Window) Unstick()

Unstick asks to unstick window, which means that it will appear on only one of the user’s desktops. Note that you shouldn’t assume the window is definitely unstuck afterward, because other entities (e.g. the user or [window manager][gtk-X11-arch]) could stick it again. But normally the window will end up stuck. Just don’t write code that crashes if not.

You can track stickiness via the “window-state-event” signal on Widget.

func (*Window) UrgencyHint

func (window *Window) UrgencyHint() bool

UrgencyHint gets the value set by gtk_window_set_urgency_hint().

The function returns the following values:

  • ok: TRUE if window is urgent.

func (*Window) WindowType

func (window *Window) WindowType() WindowType

WindowType gets the type of the window. See WindowType.

The function returns the following values:

  • windowType: type of the window.

type WindowAccessible

type WindowAccessible struct {
	ContainerAccessible

	atk.Window
	// contains filtered or unexported fields
}

type WindowAccessibleClass added in v0.0.5

type WindowAccessibleClass struct {
	// contains filtered or unexported fields
}

WindowAccessibleClass: instance of this type is always passed by reference.

func (*WindowAccessibleClass) ParentClass added in v0.0.5

type WindowAccessibleOverrides added in v0.0.5

type WindowAccessibleOverrides struct {
}

WindowAccessibleOverrides contains methods that are overridable.

type WindowClass added in v0.0.5

type WindowClass struct {
	// contains filtered or unexported fields
}

WindowClass: instance of this type is always passed by reference.

func (*WindowClass) ParentClass added in v0.0.5

func (w *WindowClass) ParentClass() *BinClass

ParentClass: parent class.

type WindowGroup

type WindowGroup struct {
	*coreglib.Object
	// contains filtered or unexported fields
}

WindowGroup restricts the effect of grabs to windows in the same group, thereby making window groups almost behave like separate applications.

A window can be a member in at most one window group at a time. Windows that have not been explicitly assigned to a group are implicitly treated like windows of the default window group.

GtkWindowGroup objects are referenced by each window in the group, so once you have added all windows to a GtkWindowGroup, you can drop the initial reference to the window group with g_object_unref(). If the windows in the window group are subsequently destroyed, then they will be removed from the window group and drop their references on the window group; when all window have been removed, the window group will be freed.

func NewWindowGroup

func NewWindowGroup() *WindowGroup

NewWindowGroup creates a new WindowGroup object. Grabs added with gtk_grab_add() only affect windows within the same WindowGroup.

The function returns the following values:

  • windowGroup: new WindowGroup.

func (*WindowGroup) AddWindow

func (windowGroup *WindowGroup) AddWindow(window *Window)

AddWindow adds a window to a WindowGroup.

The function takes the following parameters:

  • window to add.

func (*WindowGroup) CurrentDeviceGrab

func (windowGroup *WindowGroup) CurrentDeviceGrab(device gdk.Devicer) Widgetter

CurrentDeviceGrab returns the current grab widget for device, or NULL if none.

The function takes the following parameters:

  • device: Device.

The function returns the following values:

  • widget (optional): grab widget, or NULL.

func (*WindowGroup) CurrentGrab

func (windowGroup *WindowGroup) CurrentGrab() Widgetter

CurrentGrab gets the current grab widget of the given group, see gtk_grab_add().

The function returns the following values:

  • widget: current grab widget of the group.

func (*WindowGroup) ListWindows

func (windowGroup *WindowGroup) ListWindows() []*Window

ListWindows returns a list of the Windows that belong to window_group.

The function returns the following values:

  • list: a newly-allocated list of windows inside the group.

func (*WindowGroup) RemoveWindow

func (windowGroup *WindowGroup) RemoveWindow(window *Window)

RemoveWindow removes a window from a WindowGroup.

The function takes the following parameters:

  • window to remove.

type WindowGroupClass added in v0.0.5

type WindowGroupClass struct {
	// contains filtered or unexported fields
}

WindowGroupClass: instance of this type is always passed by reference.

type WindowGroupOverrides added in v0.0.5

type WindowGroupOverrides struct {
}

WindowGroupOverrides contains methods that are overridable.

type WindowOverrides added in v0.0.5

type WindowOverrides struct {
	ActivateDefault func()
	ActivateFocus   func()
	// The function takes the following parameters:
	//
	// The function returns the following values:
	//
	EnableDebugging func(toggle bool) bool
	KeysChanged     func()
	// SetFocus: if focus is not the current focus widget, and is focusable,
	// sets it as the focus widget for the window. If focus is NULL,
	// unsets the focus widget for this window. To set the focus to a
	// particular widget in the toplevel, it is usually more convenient to use
	// gtk_widget_grab_focus() instead of this function.
	//
	// The function takes the following parameters:
	//
	//   - focus (optional): widget to be the new focus widget, or NULL to unset
	//     any focus widget for the toplevel window.
	//
	SetFocus func(focus Widgetter)
}

WindowOverrides contains methods that are overridable.

type WindowPosition

type WindowPosition C.gint

WindowPosition: window placement can be influenced using this enumeration. Note that using K_WIN_POS_CENTER_ALWAYS is almost always a bad idea. It won’t necessarily work well with all window managers or on all windowing systems.

const (
	// WinPosNone: no influence is made on placement.
	WinPosNone WindowPosition = iota
	// WinPosCenter windows should be placed in the center of the screen.
	WinPosCenter
	// WinPosMouse windows should be placed at the current mouse position.
	WinPosMouse
	// WinPosCenterAlways: keep window centered as it changes size, etc.
	WinPosCenterAlways
	// WinPosCenterOnParent: center the window on its transient parent (see
	// gtk_window_set_transient_for()).
	WinPosCenterOnParent
)

func (WindowPosition) String

func (w WindowPosition) String() string

String returns the name in string for WindowPosition.

type WindowType

type WindowType C.gint

WindowType can be one of these types. Most things you’d consider a “window” should have type K_WINDOW_TOPLEVEL; windows with this type are managed by the window manager and have a frame by default (call gtk_window_set_decorated() to toggle the frame). Windows with type K_WINDOW_POPUP are ignored by the window manager; window manager keybindings won’t work on them, the window manager won’t decorate the window with a frame, many GTK+ features that rely on the window manager will not work (e.g. resize grips and maximization/minimization). K_WINDOW_POPUP is used to implement widgets such as Menu or tooltips that you normally don’t think of as windows per se. Nearly all windows should be K_WINDOW_TOPLEVEL. In particular, do not use K_WINDOW_POPUP just to turn off the window borders; use gtk_window_set_decorated() for that.

const (
	// WindowToplevel: regular window, such as a dialog.
	WindowToplevel WindowType = iota
	// WindowPopup: special window such as a tooltip.
	WindowPopup
)

func (WindowType) String

func (w WindowType) String() string

String returns the name in string for WindowType.

type WrapMode

type WrapMode C.gint

WrapMode describes a type of line wrapping.

const (
	// WrapNone: do not wrap lines; just make the text area wider.
	WrapNone WrapMode = iota
	// WrapChar: wrap text, breaking lines anywhere the cursor can appear
	// (between characters, usually - if you want to be technical, between
	// graphemes, see pango_get_log_attrs()).
	WrapChar
	// WrapWord: wrap text, breaking lines in between words.
	WrapWord
	// WrapWordChar: wrap text, breaking lines in between words, or if that is
	// not enough, also between graphemes.
	WrapWordChar
)

func (WrapMode) String

func (w WrapMode) String() string

String returns the name in string for WrapMode.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL