краткое описание#include <gtk/gtk.h> gtkwindow; gtkwidget* gtk_window_new (gtkwindowtype type); void gtk_window_set_title (gtkwindow *window, const gchar *title); void gtk_window_set_wmclass (gtkwindow *window, const gchar *wmclass_name, const gchar *wmclass_class); void gtk_window_set_policy (gtkwindow *window, gint allow_shrink, gint allow_grow, gint auto_shrink); void gtk_window_set_resizable (gtkwindow *window, gboolean resizable); gboolean gtk_window_get_resizable (gtkwindow *window); void gtk_window_add_accel_group (gtkwindow *window, gtkaccelgroup *accel_group); void gtk_window_remove_accel_group (gtkwindow *window, gtkaccelgroup *accel_group); #define gtk_window_position gboolean gtk_window_activate_focus (gtkwindow *window); gboolean gtk_window_activate_default (gtkwindow *window); void gtk_window_set_modal (gtkwindow *window, gboolean modal); void gtk_window_set_default_size (gtkwindow *window, gint width, gint height); void gtk_window_set_geometry_hints (gtkwindow *window, gtkwidget *geometry_widget, gdkgeometry *geometry, gdkwindowhints geom_mask); void gtk_window_set_gravity (gtkwindow *window, gdkgravity gravity); gdkgravity gtk_window_get_gravity (gtkwindow *window); void gtk_window_set_position (gtkwindow *window, gtkwindowposition position); void gtk_window_set_transient_for (gtkwindow *window, gtkwindow *parent); void gtk_window_set_destroy_with_parent (gtkwindow *window, gboolean setting); void gtk_window_set_screen (gtkwindow *window, gdkscreen *screen); gdkscreen* gtk_window_get_screen (gtkwindow *window); gboolean gtk_window_is_active (gtkwindow *window); gboolean gtk_window_has_toplevel_focus (gtkwindow *window); glist* gtk_window_list_toplevels (void); void gtk_window_add_mnemonic (gtkwindow *window, guint keyval, gtkwidget *target); void gtk_window_remove_mnemonic (gtkwindow *window, guint keyval, gtkwidget *target); gboolean gtk_window_mnemonic_activate (gtkwindow *window, guint keyval, gdkmodifiertype modifier); gboolean gtk_window_activate_key (gtkwindow *window, gdkeventkey *event); gboolean gtk_window_propagate_key_event (gtkwindow *window, gdkeventkey *event); gtkwidget* gtk_window_get_focus (gtkwindow *window); void gtk_window_set_focus (gtkwindow *window, gtkwidget *focus); void gtk_window_set_default (gtkwindow *window, gtkwidget *default_widget); void gtk_window_present (gtkwindow *window); void gtk_window_present_with_time (gtkwindow *window, guint32 timestamp); void gtk_window_iconify (gtkwindow *window); void gtk_window_deiconify (gtkwindow *window); void gtk_window_stick (gtkwindow *window); void gtk_window_unstick (gtkwindow *window); void gtk_window_maximize (gtkwindow *window); void gtk_window_unmaximize (gtkwindow *window); void gtk_window_fullscreen (gtkwindow *window); void gtk_window_unfullscreen (gtkwindow *window); void gtk_window_set_keep_above (gtkwindow *window, gboolean setting); void gtk_window_set_keep_below (gtkwindow *window, gboolean setting); void gtk_window_begin_resize_drag (gtkwindow *window, gdkwindowedge edge, gint button, gint root_x, gint root_y, guint32 timestamp); void gtk_window_begin_move_drag (gtkwindow *window, gint button, gint root_x, gint root_y, guint32 timestamp); void gtk_window_set_decorated (gtkwindow *window, gboolean setting); void gtk_window_set_deletable (gtkwindow *window, gboolean setting); void gtk_window_set_frame_dimensions (gtkwindow *window, gint left, gint top, gint right, gint bottom); void gtk_window_set_has_frame (gtkwindow *window, gboolean setting); void gtk_window_set_mnemonic_modifier (gtkwindow *window, gdkmodifiertype modifier); void gtk_window_set_role (gtkwindow *window, const gchar *role); void gtk_window_set_type_hint (gtkwindow *window, gdkwindowtypehint hint); void gtk_window_set_skip_taskbar_hint (gtkwindow *window, gboolean setting); void gtk_window_set_skip_pager_hint (gtkwindow *window, gboolean setting); void gtk_window_set_urgency_hint (gtkwindow *window, gboolean setting); void gtk_window_set_accept_focus (gtkwindow *window, gboolean setting); void gtk_window_set_focus_on_map (gtkwindow *window, gboolean setting); gboolean gtk_window_get_decorated (gtkwindow *window); gboolean gtk_window_get_deletable (gtkwindow *window); glist* gtk_window_get_default_icon_list (void); void gtk_window_get_default_size (gtkwindow *window, gint *width, gint *height); gboolean gtk_window_get_destroy_with_parent (gtkwindow *window); void gtk_window_get_frame_dimensions (gtkwindow *window, gint *left, gint *top, gint *right, gint *bottom); gboolean gtk_window_get_has_frame (gtkwindow *window); gdkpixbuf* gtk_window_get_icon (gtkwindow *window); glist* gtk_window_get_icon_list (gtkwindow *window); gchar* gtk_window_get_icon_name (gtkwindow *window); gdkmodifiertype gtk_window_get_mnemonic_modifier (gtkwindow *window); gboolean gtk_window_get_modal (gtkwindow *window); void gtk_window_get_position (gtkwindow *window, gint *root_x, gint *root_y); const gchar* gtk_window_get_role (gtkwindow *window); void gtk_window_get_size (gtkwindow *window, gint *width, gint *height); const gchar* gtk_window_get_title (gtkwindow *window); gtkwindow* gtk_window_get_transient_for (gtkwindow *window); gdkwindowtypehint gtk_window_get_type_hint (gtkwindow *window); gboolean gtk_window_get_skip_taskbar_hint (gtkwindow *window); gboolean gtk_window_get_skip_pager_hint (gtkwindow *window); gboolean gtk_window_get_urgency_hint (gtkwindow *window); gboolean gtk_window_get_accept_focus (gtkwindow *window); gboolean gtk_window_get_focus_on_map (gtkwindow *window); gtkwindowgroup* gtk_window_get_group (gtkwindow *window); void gtk_window_move (gtkwindow *window, gint x, gint y); gboolean gtk_window_parse_geometry (gtkwindow *window, const gchar *geometry); void gtk_window_reshow_with_initial_size (gtkwindow *window); void gtk_window_resize (gtkwindow *window, gint width, gint height); void gtk_window_set_default_icon_list (glist *list); void gtk_window_set_default_icon (gdkpixbuf *icon); gboolean gtk_window_set_default_icon_from_file (const gchar *filename, gerror **err); void gtk_window_set_default_icon_name (const gchar *name); void gtk_window_set_icon (gtkwindow *window, gdkpixbuf *icon); void gtk_window_set_icon_list (gtkwindow *window, glist *list); gboolean gtk_window_set_icon_from_file (gtkwindow *window, const gchar *filename, gerror **err); void gtk_window_set_icon_name (gtkwindow *window, const gchar *name); void gtk_window_set_auto_startup_notification (gboolean setting); void gtk_decorated_window_init (gtkwindow *window); void gtk_decorated_window_calculate_frame_size (gtkwindow *window); void gtk_decorated_window_set_title (gtkwindow *window, const gchar *title); void gtk_decorated_window_move_resize_window (gtkwindow *window, gint x, gint y, gint width, gint height); иерархия объектовgobject +----ginitiallyunowned +----gtkobject +----gtkwidget +----gtkcontainer +----gtkbin +----gtkwindow +----gtkdialog +----gtkplug обеспечивающие интерфейсыgtkwindow обеспечивают atkimplementoriface. свойства"accept-focus" gboolean : read / write "allow-grow" gboolean : read / write "allow-shrink" gboolean : read / write "decorated" gboolean : read / write "default-height" gint : read / write "default-width" gint : read / write "destroy-with-parent" gboolean : read / write "focus-on-map" gboolean : read / write "gravity" gdkgravity : read / write "has-toplevel-focus" gboolean : read "icon" gdkpixbuf : read / write "icon-name" gchararray : read / write "is-active" gboolean : read "modal" gboolean : read / write "resizable" gboolean : read / write "role" gchararray : read / write "screen" gdkscreen : read / write "skip-pager-hint" gboolean : read / write "skip-taskbar-hint" gboolean : read / write "title" gchararray : read / write "type" gtkwindowtype : read / write / construct only "type-hint" gdkwindowtypehint : read / write "urgency-hint" gboolean : read / write "window-position" gtkwindowposition : read / write сигналы"activate-default" void user_function (gtkwindow *window, gpointer user_data) : run last / action "activate-focus" void user_function (gtkwindow *window, gpointer user_data) : run last / action "frame-event" gboolean user_function (gtkwindow *window, gdkevent *event, gpointer user_data) : run last "keys-changed" void user_function (gtkwindow *window, gpointer user_data) : run first "move-focus" void user_function (gtkwindow *window, gtkdirectiontype arg1, gpointer user_data) : run last / action "set-focus" void user_function (gtkwindow *window, gtkwidget *widget, gpointer user_data) : run last описаниедеталиgtkwindowtypedef struct _gtkwindow gtkwindow; gtk_window_new ()gtkwidget* gtk_window_new (gtkwindowtype type); создаёт новый gtkwindow, который является окном верхнего уровня способным содержать другие виджеты. практически всегда тип окна должен быть gtk_window_toplevel. если вы создаёте что-то вроде всплывающего меню с нуля (что является плохой идеей, просто используйте gtkmenu), вы могли бы использовать gtk_window_popup. gtk_window_popup не для диалогов, хотя в некоторых других программных инструментах диалоги называются "popups". в gtk+, gtk_window_popup означает всплывающее меню или всплывающую подсказку. в x11, всплывающими окнами не может управлять window manager. если вам нужно простое окно (окно без границ), используйте gtk_window_set_decorated(), не используйте gtk_window_popup.
gtk_window_set_title ()void gtk_window_set_title (gtkwindow *window, const gchar *title); устанавливает заголовок gtkwindow. заголовок окна будет отображён в панели заголовка; в x window system, панель заголовка представляется window manager, может изменяться согласно точной конфигурации пользователя. заголовок должен помогать пользователю отличать одно окно от других открытых окон. хороший заголовок может включать имя приложения и текущемго файла например.
gtk_window_set_wmclass ()void gtk_window_set_wmclass (gtkwindow *window, const gchar *wmclass_name, const gchar *wmclass_class); не используйте эту функцию. она устанавливает x window system "class" и "name" подсказки для окна. согласно icccm, вы должны всегда устанавливать их в тоже самое значение для всех окон в приложении и gtk+ устанавливает их в эти значения по умолчанию, поэтому вызывать эту функцию бессмысленно. однако вы можете вызвать gtk_window_set_role() для каждого окна в вашем приложении, чтобы помочь управляющему сессиями (session manager). установка функции позволяет менеджеру окон запоминать позицию окна при запуске сохранённых сессий.
gtk_window_set_policy ()void gtk_window_set_policy (gtkwindow *window, gint allow_shrink, gint allow_grow, gint auto_shrink); вниманиеgtk_window_set_policy устарела и не нужно её использовать во вновь создаваемом коде. используйте вместо неё gtk_window_set_resizable(). изменения размеров окна верхнего уровня и попытки пользователя изменять размер. в действительности есть только два способа вызова этой функции:
первая политика – по умолчанию, то есть по умолчанию окна предназначены для изменения размера пользователями. основная функции должна быть например: void gtk_window_set_resizable (gtkwindow* window, gboolean setting); ...почему gtk+ 2.0 и представляет gtk_window_set_resizable(), которую вы должны использовать вместо gtk_window_set_policy(). если установлено true, параметр allow_grow позволяет пользователю разворачивать окно сверх размера запрошенного его дочерними виджетами. если allow_grow равно true, убедитесь что ваши дочерние виджеты работают верно при изменении размера окна. окно верхнего уровня будет всегда изменять размер для соответствия запрошенному размеру дочерних виджетов. это значит, что если вы добавите дочерние виджеты, окно верхнего уровня растянется для их размещения. однако, обычно окно верхнего уровня не сжимается если его дочерние виджеты запрашивают меньший размер; параметр auto_shrink заставляет окно уплотизменяться, когда дочерние виджеты получают слишком много пространства. auto_shrink обычно используется со второй из двух выше упомянутых политик окон. таким образом, установите auto_shrink в true если вы хотите иметь фиксированное окно, всегда оптимизированного размера, установленного вашей программой. заметьте, auto_shrink не делает ничего, если allow_shrink и allow_grow установлены в false. не одна из двух предложенных политик поведения окна не устанавливает параметр allow_shrink в значение true. если allow_shrink равен true, пользователь может уменьшать окно таким образом, что его дочерние виджеты не получат запрашиваемый размер полностью; по существу это плохая ситуация, потому что виджеты будут выглядеть неправильно если это случиться. кроме того gtk+ имеет тенденцию повторно разворачивать окно если размер пересчитан по какой нибудь причине. поэтому allow_shrink должен всегда быть установлен в false. иногда, когда вы думаете, что нужно использовать allow_shrink, реальная проблема заключается в некотором определённом дочернем виджете который запрашивает слишком много пространства, поэтому пользователь не может достаточно уменьшить окно. возможно вызвать gtk_widget_set_size_request() на дочернем виджете, сделав этот запрашиваемый размер слишком большим. вместо установки размеров дочерних виджетов, рассмотрите использование gtk_window_set_default_size() таким образом, чтобы этот дочерний виджет получал больше распределения чем запрашивается.
gtk_window_set_resizable ()void gtk_window_set_resizable (gtkwindow *window, gboolean resizable); устанавливает может ли пользователь изменять размер окна. по умолчанию окна позволяют пользователю менять размер.
gtk_window_get_resizable ()gboolean gtk_window_get_resizable (gtkwindow *window); получает значение установленное gtk_window_set_resizable().
gtk_window_add_accel_group ()void gtk_window_add_accel_group (gtkwindow *window, gtkaccelgroup *accel_group); присоединяет accel_group к window, так что вызов gtk_accel_groups_activate() на window активизирует акселераторы в accel_group.
gtk_window_remove_accel_group ()void gtk_window_remove_accel_group (gtkwindow *window, gtkaccelgroup *accel_group); обратный эффект от gtk_window_add_accel_group().
gtk_window_position#define gtk_window_position gtk_window_set_position вниманиеgtk_window_position устарела и не нужно её использовать во вновь создаваемом коде. устаревший псевдоним для gtk_window_set_position(). gtk_window_activate_focus ()gboolean gtk_window_activate_focus (gtkwindow *window); активирует текущий виджет окна находящийся в фокусе.
gtk_window_activate_default ()gboolean gtk_window_activate_default (gtkwindow *window); активирует виджет по умолчанию в данном окне, если текущий виджет находящийся в фокусе не был сконфигурирован получать действие по умолчанию (смотрите gtk_receives_default в gtkwidgetflags), когда виджет в фокусе активирован.
gtk_window_set_modal ()void gtk_window_set_modal (gtkwindow *window, gboolean modal); устанавливает окно модальным или нет. модальные окна предотвращают взаимодействие с другими окнами в том же самом приложении. чтобы сохранять модальные диалоги на переднем плане основного окна приложения, используйте gtk_window_set_transient_for() чтобы сделать диалог переходным для родителя; большинство window managers будут запрещать понижение диалога ниже родительского.
gtk_window_set_default_size ()void gtk_window_set_default_size (gtkwindow *window, gint width, gint height); устанавливает размер окна по умолчанию. если окно "natural" размера (его запрашиваемый размер) будет больше чем значение по умолчанию, то значение по умолчанию игнорируется. наиболее обычно, если размер по умолчанию не подчиняется подсказкам геометрии окна (gtk_window_set_geometry_hints() может использоваться для их явной установки), размер по умолчанию будет прикреплён к ближайшему допустимому размеру. в отличии от gtk_widget_set_size_request(), которая устанавливает запрашиваемый размер для виджета и таким образом препятствует пользователям уменьшать окно, эта функция только устанавливает начальный размер, так же, как если бы пользователь самостоятельно изменил размер. пользователи могут уменьшать окно как обычно. установка размера по умолчанию равного -1, это способ использовать по умолчанию размер "natural" (запрашиваемый размер окна). для большего контроля начального размера окна и как работает изменение размера, изучите gtk_window_set_geometry_hints(). для некоторых ситуаций, gtk_window_resize() является более соответствующей функцией. gtk_window_resize() изменяет текущий размер окна, а не размер используемый на начальном дисплее. gtk_window_resize() всегда оказывает воздействие непосредственно на окно, не на геометрию виджета. размер по умолчанию используется только при отображении окна в первый раз; если окно скрыть и снова развернуть, то будет использован запомненный размер до скрытия, вместо использования размера по умолчанию. окна не могут фактически быть размером 0x0, они должны быть по крайней мере 1x1, но помещение 0 для width и height позволяется, результатом будет размер по умолчанию 1x1.
gtk_window_set_geometry_hints ()void gtk_window_set_geometry_hints (gtkwindow *window, gtkwidget *geometry_widget, gdkgeometry *geometry, gdkwindowhints geom_mask); эта функция устанавливает подсказки о том, как пользователь может изменять размер окна. вы можете установить минимальный и максимальный размер окна; позволить изменение размера приращением (например для xterm, вы можете только изменять размер размером символов); аспект соотношения и многое другое. смотрите структуру gdkgeometry.
gtk_window_set_gravity ()void gtk_window_set_gravity (gtkwindow *window, gdkgravity gravity); уравновешенность окна определяют координаты помещенные в gtk_window_move(). смотрите gtk_window_move() и gdkgravity для более подробной информации. по умолчанию уравновешивание окна имеет значение gdk_gravity_north_west которое будет естественно "делать то, что подразумевается."
gtk_window_get_gravity ()gdkgravity gtk_window_get_gravity (gtkwindow *window); получает значение установленное gtk_window_set_gravity().
gtk_window_set_position ()void gtk_window_set_position (gtkwindow *window, gtkwindowposition position); устанавливает ограничения позиции окна. если старое или новое ограничение равно gtk_win_pos_center_always, то это будет причиной перестановки окна для удовлетворения нового ограничения.
gtk_window_set_transient_for ()void gtk_window_set_transient_for (gtkwindow *window, gtkwindow *parent); диалоговые окна должны быть установлены переходящими для основного окна приложения, которым они были порождены. это позволяет window managers например сохранять диалог на переднем плане относительно основного окна, или распределить диалог поверх основного окна. gtk_dialog_new_with_buttons() и другие функции удобств в gtk+ будут иногда вызывать gtk_window_set_transient_for() от вашего имени. в windows, эта функция помещает дочернее окно поверх родительского, почти также сделал бы менеджер окон в x.
gtk_window_set_destroy_with_parent ()void gtk_window_set_destroy_with_parent (gtkwindow *window, gboolean setting); если setting равно true, то когда закрытие переходного окна родителя для window, так же закроет window непосредственно. это полезно для диалогов которые не должны существовать без основного окна с которым они ассоциированы.
gtk_window_set_screen ()void gtk_window_set_screen (gtkwindow *window, gdkscreen *screen); устанавливает gdkscreen на котором отображается window; если окно уже отображено, это отменит отображение и отобразит на новом экране.
начиная с версии 2.2 gtk_window_get_screen ()gdkscreen* gtk_window_get_screen (gtkwindow *window); возвращает gdkscreen ассоциированный с window.
начиная с версии 2.2 gtk_window_is_active ()gboolean gtk_window_is_active (gtkwindow *window); определяет, является ли окно частью текущемго активного верхнего уровня. (таким образом, окно верхнего уровня получает нажатие клавиши.) значение true возвращается, если активно непосредственно окно верхнего уровня, а так же если, скажем, gtkplug встроен в активный верхний уровень. вы можете использовать эту функцию, если хотите отрисовывать виджет по разному в активном и не активном окне. смотрите gtk_window_has_toplevel_focus()
начиная с версии 2.4 gtk_window_has_toplevel_focus ()gboolean gtk_window_has_toplevel_focus (gtkwindow *window); определяет сфокусирован ли ввод в пределах данного gtkwindow. для реальных окон верхнего уровня, это идентично gtk_window_is_active(), но для встроенных окон, как например gtkplug, результаты будут отличаться.
начиная с версии 2.4 gtk_window_list_toplevels ()glist* gtk_window_list_toplevels (void); возвращает список всех существующих окон верхнего уровня. на виджеты в списке нет индивидуальных ссылок. если вы хотите выполнить итерацию через список и выполнить действия, вовлекающие callbacks-функции, которые могли бы уничтожить виджеты, вы должны сначала вызвать g_list_foreach (result, (gfunc)g_object_ref, null), а затем убрать ссылки на все виджеты.
gtk_window_add_mnemonic ()void gtk_window_add_mnemonic (gtkwindow *window, guint keyval, gtkwidget *target); добавляет мнемоник к окну.
gtk_window_remove_mnemonic ()void gtk_window_remove_mnemonic (gtkwindow *window, guint keyval, gtkwidget *target); удаляет мнемоник из окна.
gtk_window_mnemonic_activate ()gboolean gtk_window_mnemonic_activate (gtkwindow *window, guint keyval, gdkmodifiertype modifier); активизирует цель ассоциированную с мнемоником.
gtk_window_activate_key ()gboolean gtk_window_activate_key (gtkwindow *window, gdkeventkey *event); активизирует мнемоники и акселераторы для данного gtkwindow. это обычно вызывает обработчик по умолчанию ::key_press_event для окон верхнего уровня, тем не менее в некоторых случаях может быть полезным вызвать их непосредственно, когда аннулирована стандартная обработка ключей для окна верхнего уровня.
gtk_window_propagate_key_event ()gboolean gtk_window_propagate_key_event (gtkwindow *window, gdkeventkey *event); распространяет нажатие клавиши или выпуск события на сфокусированном виджете и фокусирует цепочку контейнера пока виджет не обработает event. это обычно вызывает обработчик по умолчанию ::key_press_event and ::key_release_event для окон верхнего уровня, тем не менее в некоторых случаях может быть полезным вызвать их непосредственно, когда аннулирована стандартная обработка ключей для окна верхнего уровня.
gtk_window_get_focus ()gtkwidget* gtk_window_get_focus (gtkwindow *window); получает текущий сфокусированный виджет внутри окна. помните, этот виджет был бы сфокусирован если окно верхнего уровня находится в фокусе; если это не так, то gtk_widget_has_focus (widget) не будет равным true для данного виджета.
gtk_window_set_focus ()void gtk_window_set_focus (gtkwindow *window, gtkwidget *focus); если focus не является текущим сфокусированным виджетом, но является допустимым к фокусированию, то устанавливается как сфокусированный виджет для данного окна. если focus равен null, снимаются установки сфокусированного виджета для этого окна. для установки фокуса специального виджета в верхнем уровне намного удобней использовать gtk_widget_grab_focus() вместо этой функции.
gtk_window_set_default ()void gtk_window_set_default (gtkwindow *window, gtkwidget *default_widget); виджет по умолчанию, это виджет который активируется при нажатии клавиши enter в нутри диалога (для примера). эта функции устанавливает или снимает установку виджета по умолчанию для gtkwindow. устанавливать виджет по умолчанию в основном легче вызвав для него функцию gtk_widget_grab_focus(). после создания виджета по умолчанию, вы должны установить флаг gtk_can_default на виджете который вы сделали по умолчанию, используя gtk_widget_set_flags().
gtk_window_present ()void gtk_window_present (gtkwindow *window); представляет окно пользователю. это означает поднятие окна в стековом порядке, разворачивая или перемещая его на текущий рабочий стол, и/или предоставление ему управления с клавиатуры (keyboard focus), возможно зависящее от пользовательской платформы, менеджера окон и персональных настроек. если window скрыто, эта функция так же вызовет gtk_widget_show(). эта функция должна использоваться когда пользователь пытается открыть уже открытое окно. например диалог настроек уже открыт и пользователь пытается выбрать открытие этого же диалога через меню; используйте gtk_window_present() для перемещения уже открытого диалога в видимое для пользователя положение. если вы вызываете эту функцию взаимодействуя с пользователем, предпочтительно использовать gdk_window_present_with_time().
gtk_window_present_with_time ()void gtk_window_present_with_time (gtkwindow *window, guint32 timestamp); предоставляет окно пользователю для взаимодействия. если вам нужно представить окно без фиксации времени, используйте gtk_window_present(). подробности смотрите в gtk_window_present().
начиная с версии 2.8 gtk_window_iconify ()void gtk_window_iconify (gtkwindow *window); запрашивает минимизацию определённого window. помните, вы не должны предполагать определённую минимизацию окна в последствии, потому что другие субъекты (например пользователь или window manager) могут де-минимизировать его снова, или может быть в данном случае минимизация (iconification) не возможна для менеджера окон, и т.п.. но обычно окно в конечном счете минимизировано. просто не нужно создавать код приводящий к краху, если это не так. разрешён вызов этой функции перед отображением окна, когда окно будет минимизировано, перед этим оно всегда появляется на экране. вы можете отслеживать минимизацию через сигнал "window_state_event" на gtkwidget.
gtk_window_deiconify ()void gtk_window_deiconify (gtkwindow *window); запрашивает де-минимизацию определённого window. помните, вы не должны предполагать определённую де-минимизацию окна в последствии, потому что другие субъекты (например пользователь или window manager) могут минимизировать перед вашим кодом который предполагает де-минимизацию чтобы выполниться. вы можете отслеживать минимизацию через сигнал "window_state_event" на gtkwidget.
gtk_window_stick ()void gtk_window_stick (gtkwindow *window); запрашивает прикрепление window, что позволит показывать его на всех пользовательских рабочих столах. помните, вы не должны предполагать определённое прикрепление окна в последствии, потому что другие субъекты (например пользователь или window manager) могут открепить его снова, а некоторые менеджеры окон не поддерживают прикрепление окон. но обычно, окно в конечном счете будет прикреплено. просто не нужно создавать код приводящий к краху, если это не так. позволяется вызывать эту функцию перед отображением окна. вы можете отслеживать прикрепления через сигнал "window_state_event" на gtkwidget.
gtk_window_unstick ()void gtk_window_unstick (gtkwindow *window); запрашивает открепление window, что позволит показывать его на одном текущемм рабочем столе. помните, вы не должны предполагать определённое открепление окна в последствии, потому что другие субъекты (например пользователь или window manager) могут прикрепить его снова. но обычно, окно в конечном счете будет откреплено. просто не нужно создавать код приводящий к краху, если это не так. вы можете отслеживать прикрепления через сигнал "window_state_event" на gtkwidget.
gtk_window_maximize ()void gtk_window_maximize (gtkwindow *window); запрашивает максимизацию window, это максимально разворачивает окно. помните, вы не должны предполагать определённую максимизацию окна впоследствии, потому что другие субъекты (например пользователь или window manager) могут вернуть его в первоначальное состояние, а некоторые менеджеры окон не поддерживают максимизацию окон. но обычно, окно в конечном счете будет максимизировано. просто не нужно создавать код приводящий к краху, если это не так. позволяется вызывать эту функцию перед отображением окна, в этом случае окно будет максимизировано после отображения на экране. вы можете отслеживать максимизацию с помощью сигнала "window_state_event" на gtkwidget.
gtk_window_unmaximize ()void gtk_window_unmaximize (gtkwindow *window); запрашивает отмену максимизации window. помните, вы не должны предполагать определённую отмену максимизации окна впоследствии, потому что другие субъекты (например пользователь или window manager) могут максимизировать его снова, а некоторые менеджеры окон не поддерживают отмену максимизации окон. но обычно, в конечном счете максимизация будет отменена. просто не нужно создавать код приводящий к краху, если это не так. вы можете отслеживать максимизацию с помощью сигнала "window_state_event" на gtkwidget.
gtk_window_fullscreen ()void gtk_window_fullscreen (gtkwindow *window); запрашивает полноэкранный режим для window . помните, вы не должны предполагать полноэкранный режим окна впоследствии, потому что другие субъекты (например пользователь или window manager) могут вернуть его в нормальное состояние, а некоторые менеджеры окон не поддерживают полноэкранный режим окон. но обычно, в конечном счете полноэкранный режим будет установлен. просто не нужно создавать код приводящий к краху, если это не так. вы можете отслеживать полноэкранный режим через сигнал "window_state_event" на gtkwidget.
начиная с версии 2.2 gtk_window_unfullscreen ()void gtk_window_unfullscreen (gtkwindow *window); запрашивает отмену полноэкранного режима для window . помните, вы не должны предполагать отмену полноэкранного режима окна впоследствии, потому что другие субъекты (например пользователь или window manager) могут вернуть его полноэкранный режим снова. но обычно, в конечном счете полноэкранный режим будет отменён. просто не нужно создавать код приводящий к краху, если это не так. вы можете отслеживать полноэкранный режим через сигнал "window_state_event" на gtkwidget.
начиная с версии 2.2 gtk_window_set_keep_above ()void gtk_window_set_keep_above (gtkwindow *window, gboolean setting); устанавливает window всегда на передний план. помните, вы не должны предполагать что этот режим окна останется впоследствии, потому что другие субъекты (например пользователь или window manager) могут отменить его. но обычно, в конечном счете режим переднего плана для окна будет установлен. просто не нужно создавать код приводящий к краху, если это не так. допускается применение этой функции до отображения окна, в этом случае режим переднего плана для окна включится после его отображения. вы можете отследить это состояние через сигнал "window_state_event" на gtkwidget. заметьте, в соответствии со спецификацией extended window manager hints, упомянутое выше состояние главным образом предназначено для пользовательских настроек и не должно использоваться приложениями например для того, чтобы привлечь внимание к их диалогам.
начиная с версии 2.4 gtk_window_set_keep_below ()void gtk_window_set_keep_below (gtkwindow *window, gboolean setting); устанавливает сохранение window свёрнутым. помните, вы не должны предполагать что этот режим окна останется впоследствии, потому что другие субъекты (например пользователь или window manager) могут отменить его. но обычно, в конечном счете режим для окна будет установлен. просто не нужно создавать код приводящий к краху, если это не так. допускается применение этой функции до отображения окна, в этом случае режим сворачивания окна включится после его отображения. вы можете отследить это состояние через сигнал "window_state_event" на gtkwidget. заметьте, в соответствии со спецификацией extended window manager hints, упомянутое выше состояние главным образом предназначено для пользовательских настроек и не должно использоваться приложениями например для того, чтобы привлечь внимание к их диалогам.
начиная с версии 2.4 gtk_window_begin_resize_drag ()void gtk_window_begin_resize_drag (gtkwindow *window, gdkwindowedge edge, gint button, gint root_x, gint root_y, guint32 timestamp); начинает изменение размера окна. эта функция используется если приложение имеет окно управления изменением размера. когда gdk может поддерживать это, изменение размера будет выполнено используя стандартный механизм для window manager или оконной системы. иначе, gdk попробует эмулировать изменение размера окна.
gtk_window_begin_move_drag ()void gtk_window_begin_move_drag (gtkwindow *window, gint button, gint root_x, gint root_y, guint32 timestamp); начинает перемещение окна. эта функция используется если приложение имеет окно с захватами для перемещения. когда gdk может поддерживать это, перемещение будет выполнено используя стандартный механизм для window manager или оконной системы. иначе, gdk попробует эмулировать перемещение окна.
gtk_window_set_decorated ()void gtk_window_set_decorated (gtkwindow *window, gboolean setting); по умолчанию, окна декорированы панелью заголовка, окошком управления размером, и т.п.. некоторые window managers позволяют gtk+ отключать эту декорацию, создавая окно без бордюров. если вы установите свойство декорирования в false используя эту функцию, gtk+ приложит все усилия, чтобы window manager не декорировал окно. в зависимости от системы, эта функция может не иметь эффекта для уже отображенного окна, поэтому вы должны вызывать эту функцию перед gtk_window_show(). в windows, эта функция работает всегда, так как нет включённой политики оконного менеджера.
gtk_window_set_deletable ()void gtk_window_set_deletable (gtkwindow *window, gboolean setting);
по умолчанию, окна имеют кнопку «close»
в рамке окна. некоторые window
managers позволяют gtk+ отключать эту
кнопку. если вы установили свойство
deletable в значение в windows, эта функция работает всегда, с тех пор как менеджер окон не включает политики.
начиная с версии 2.10 gtk_window_set_frame_dimensions ()void gtk_window_set_frame_dimensions (gtkwindow *window, gint left, gint top, gint right, gint bottom); (примечание: эта специально-ориентированная функция предназначена для порта framebuffer; смотрите gtk_window_set_has_frame(). она не имеет эффекта для отрисовки окна оконным менеджером, в случае обычного использования x window system.) для окон с рамками (see gtk_window_set_has_frame()) эта функция используется для изменения размера окантовки рамки.
gtk_window_set_has_frame ()void gtk_window_set_has_frame (gtkwindow *window, gboolean setting); (примечание: эта специально-ориентированная функция предназначена для порта framebuffer, она заставляет gtk+ отрисовывать собственную окантовку окна. для большинства приложений, вы имеете вместо неё функцию gtk_window_set_decorated(), которая сообщает менеджеру окон нужно ли отрисовывать окантовку окна.) если эта функция вызвана с установкой true, перед отображением окна, она получит "frame" вокруг окна window->window, доступный в window->frame. используя сигнал frame_event вы можете получать все события предназначенные для рамки. эта функция используется портом linux-fb для осуществления управления окнами, но может использоваться x-программами которые хотят сделать собственную декорацию окна.
gtk_window_set_mnemonic_modifier ()void gtk_window_set_mnemonic_modifier (gtkwindow *window, gdkmodifiertype modifier); устанавливает мнемонический модификатор для данного окна.
gtk_window_set_role ()void gtk_window_set_role (gtkwindow *window, const gchar *role); эта функция полезна только для x11. в комбинации с заголовком окна, роль окна позволяет window manager идентифицировать ''то же самое" окно когда пере-запускает приложение. так например, вы могли бы установить роль "toolbox" для окна инструментов вашего приложения, так, чтобы, когда пользователь пере-запускает сессию, менеджер окон мог поместить окно инструментов на тоже самое место. если окно уже имеет уникальный заголовок, вы не должны устанавливать роль, так как wm может использовать заголовок для идентификации окна при восстановлении сеанса.
gtk_window_set_type_hint ()void gtk_window_set_type_hint (gtkwindow *window, gdkwindowtypehint hint); устанавливает тип подсказки для окна, вы позволяете менеджеру окон декорировать и обрабатывать окно в подходящем функциональном направлении окна для вашего приложения. эта функция должна быть вызвана перед отображением окна. gtk_dialog_new_with_buttons() и другие функции удобств в gtk+ будут иногда вызывать gtk_window_set_type_hint() от вашего имени.
gtk_window_set_skip_taskbar_hint ()void gtk_window_set_skip_taskbar_hint (gtkwindow *window, gboolean setting); окнам можно установить подсказку, указав окружению рабочего стола не отображать окно в панели задач. эта функция устанавливает эту подсказку.
начиная с версии 2.2 gtk_window_set_skip_pager_hint ()void gtk_window_set_skip_pager_hint (gtkwindow *window, gboolean setting); окнам можно установить подсказку, указав окружению рабочего стола не отображать окно в пейджере. эта функция устанавливает эту подсказку. (пейджер ("pager") – это инструмент навигации рабочего стола, как например переключатель рабочего пространства представляющий эскизы окон на экране.)
начиная с версии 2.2 gtk_window_set_urgency_hint ()void gtk_window_set_urgency_hint (gtkwindow *window, gboolean setting); окнам можно установить подсказку, указав окружению рабочего стола привлечь внимание пользователей к окну. эта функция устанавливает эту подсказку.
начиная с версии 2.8 gtk_window_set_accept_focus ()void gtk_window_set_accept_focus (gtkwindow *window, gboolean setting); окнам можно установить подсказку, указывая окружению рабочего стола не получать фокусирование ввода. эта функция устанавливает эту подсказку.
начиная с версии 2.4 gtk_window_set_focus_on_map ()void gtk_window_set_focus_on_map (gtkwindow *window, gboolean setting); окнам можно установить подсказку, указывая окружению рабочего стола не получать фокусирование ввода, когда окно отображено. эта функция устанавливает эту подсказку.
начиная с версии 2.6 gtk_window_get_decorated ()gboolean gtk_window_get_decorated (gtkwindow *window); определяет собирается ли окно иметь декорации, например заголовок окна через gtk_window_set_decorated().
gtk_window_get_deletable ()gboolean gtk_window_get_deletable (gtkwindow *window);
определяет была ли установлена кнопка
«close button» с помощью
начиная с версии 2.10 gtk_window_get_default_icon_list ()glist* gtk_window_get_default_icon_list (void); получает значение установленное gtk_window_set_default_icon_list(). список является копией и должен освобождаться с помощью g_list_free(), но изображения в списке не увеличивают количество ссылок.
gtk_window_get_default_size ()void gtk_window_get_default_size (gtkwindow *window, gint *width, gint *height); получает значение по умолчанию размера окна. значение -1 для ширины или высоты сообщает, что размер по умолчанию не был явно установлен для этого измерения, поэтому будет использован "natural" размер окна.
gtk_window_get_destroy_with_parent ()gboolean gtk_window_get_destroy_with_parent (gtkwindow *window); определяет будет ли окно закрыто с его переходным родителем. смотрите gtk_window_set_destroy_with_parent().
gtk_window_get_frame_dimensions ()void gtk_window_get_frame_dimensions (gtkwindow *window, gint *left, gint *top, gint *right, gint *bottom); (примечание: эта специально-ориентированная функция предназначена для порта framebuffer; смотрите gtk_window_set_has_frame(). она не будет возвращать размер окантовки окна нарисованную window manager, что было бы нормально при использовании оконной системы. смотрите gdk_window_get_frame_extents() для получения стандарта окантовки окна.) получает размер рамки окна для верхнего уровня. смотрите gtk_window_set_has_frame(), gtk_window_set_frame_dimensions().
gtk_window_get_has_frame ()gboolean gtk_window_get_has_frame (gtkwindow *window); имеет ли окно внешнюю область рамки окна window->window. получает значение установленное gtk_window_set_has_frame().
gtk_window_get_icon ()gdkpixbuf* gtk_window_get_icon (gtkwindow *window); получает значение установленное gtk_window_set_icon() (или если вы вызывали gtk_window_set_icon_list(), получает первый значок в списке значков).
gtk_window_get_icon_list ()glist* gtk_window_get_icon_list (gtkwindow *window); получает список значков установленных gtk_window_set_icon_list(). список копируется, но число ссылок каждого элемента не увеличивается.
gtk_window_get_icon_name ()gchar* gtk_window_get_icon_name (gtkwindow *window); возвращает имя темы значков для окна, смотрите gtk_window_set_icon_name().
начиная с версии 2.6 gtk_window_get_mnemonic_modifier ()gdkmodifiertype gtk_window_get_mnemonic_modifier (gtkwindow *window); возвращает мнемонический модификатор для этого окна. смотрите gtk_window_set_mnemonic_modifier().
gtk_window_get_modal ()gboolean gtk_window_get_modal (gtkwindow *window); определяет является ли окно модальным. смотрите gtk_window_set_modal().
gtk_window_get_position ()void gtk_window_get_position (gtkwindow *window, gint *root_x, gint *root_y); эта функция возвращает позицию, которую вы должны передать в gtk_window_move() для сохранения window в этой текущемй позиции. возвращаемое значение меняется с притяжением окна. смотрите gtk_window_move() для подробностей. если вы не изменили притяжение окна, то оно будет gdk_gravity_north_west. это означает, что gtk_window_get_position() получает позицию в верхнем-левом углу фрейма оконного менеджера. gtk_window_move() устанавливает туже самую позицию в левом-верхнем углу. gtk_window_get_position() не на 100% надежна, потому что x window system не определяет способ геометрии для декораций размещаемых в окне менеджером окон. поэтому gtk+ использует лучшее предложение ("best guess") которое работает с большинством оконных менеджеров. более того, почти все менеджеры окон плохо обрабатывают притяжение окон. так например, перемещение окна к его текущемй позиции которая возвращена gtk_window_get_position() имеет тенденцию небольшого перемещения окна. менеджеры окон слишком медленно улучшаются. если окно имеет притяжение gdk_gravity_static фрейм менеджера окон не уместен, и таким образом gtk_window_get_position() будет всегда производить точные результаты. однако вы не можете использовать статическое притяжение для некоторых вещей, например размещения окна в углу экрана, потому что статическое притяжение игнорирует декорации оконного менеджера. если вы сохраняете и восстанавливаете позицию окна вашего приложения, вы должны знать, что это невозможно сделать для приложений без некоторых ошибок, потому что приложения не имеют достаточных знаний о состояниях менеджера окон. корректный механизм должен поддерживать протокол управления сессиями (для примера смотрите объект "gnomeclient" в библиотеке gnome) и позволять оконному менеджеру сохранять размер окна и его позицию.
gtk_window_get_role ()const gchar* gtk_window_get_role (gtkwindow *window); возвращает роль окна. детали смотрите в gtk_window_set_role().
gtk_window_get_size ()void gtk_window_get_size (gtkwindow *window, gint *width, gint *height); получает текущий размер window. если window не на экране, возвращаемый размер gtk+ будет советовать window manager в качестве начального для окна (но это не значит что менеджер окон выберет именно этот размер). размер полученный gtk_window_get_size() является последним в gdkeventconfigure, то есть, gtk+ использует этот локально-сохранённый размер, вместо запроса размера у x server. как результат, если вы вызвали gtk_window_resize() то когда немедленно вызывается gtk_window_get_size(), размер все же не вступает в силу. после запроса процесса менеджера окон изменения размера, gtk+ получает сообщение об изменении размера через конфигурационное событие и размер окна обновляется. примечание 1: почти любое использование этой функции создаёт особое условие, потому что размер окна может изменяться между тем, когда вы получаете размер и временем когда вы выполняете некоторые действия предполагающие, что этот размер является текущим. чтобы избежать особого условия, подключите к окну "configure_event" и регулируйте ваше состояние зависящее от размера, чтобы соответствовать размеру поставленному в gdkeventconfigure. примечание 2: возвращаемый размер не включает размер декораций менеджера окон (рамку окна или окантовку). gtk+ не занимается их отрисовкой и не имеет надёжного метода определения размера для них. примечание 3: если вы получаете размер окна в порядке позиции окна на экране, здесь может быть лучший путь. предпочтительный путь состоит в том, чтобы просто установить семантический тип окна используя gtk_window_set_type_hint(), который позволяет менеджеру окон, например, центровать диалоги. кроме того, если вы установите переходящего родителя диалогов используя gtk_window_set_transient_for() менеджер окон будет часто центровать диалоги относительно родительского окна. это оптимально для обработки менеджером окон, вместо непосредственной обработки, потому что все приложения будут вести себя последовательно и согласно пользовательским установкам, если менеджер окон их обработает. кроме того менеджер окон может принять во внимание размер декораций окна, а ваше приложение не может. в любом случае, если вы настоите на приложение-определяемом (application-specified) позиционировании окна, есть всё ещё лучший путь, чем непосредственное выполнение - gtk_window_set_position() обрабатывает детали для вас.
gtk_window_get_title ()const gchar* gtk_window_get_title (gtkwindow *window); получает заголовок окна. смотрите gtk_window_set_title().
gtk_window_get_transient_for ()gtkwindow* gtk_window_get_transient_for (gtkwindow *window); даёт переходящего родителя для окна. смотрите gtk_window_set_transient_for().
gtk_window_get_type_hint ()gdkwindowtypehint gtk_window_get_type_hint (gtkwindow *window); получает тип подсказки для этого окна. смотрите gtk_window_set_type_hint().
gtk_window_get_skip_taskbar_hint ()gboolean gtk_window_get_skip_taskbar_hint (gtkwindow *window); получает значение установленное gtk_window_set_skip_taskbar_hint()
начиная с версии 2.2 gtk_window_get_skip_pager_hint ()gboolean gtk_window_get_skip_pager_hint (gtkwindow *window); получает значение установленное gtk_window_set_skip_pager_hint().
начиная с версии 2.2 gtk_window_get_urgency_hint ()gboolean gtk_window_get_urgency_hint (gtkwindow *window); получает значение полученное gtk_window_set_urgency_hint()
начиная с версии 2.8 gtk_window_get_accept_focus ()gboolean gtk_window_get_accept_focus (gtkwindow *window); получает значение полученное gtk_window_set_accept_focus().
начиная с версии 2.4 gtk_window_get_focus_on_map ()gboolean gtk_window_get_focus_on_map (gtkwindow *window); получает значение полученное gtk_window_set_focus_on_map().
начиная с версии 2.6 gtk_window_get_group ()gtkwindowgroup* gtk_window_get_group (gtkwindow *window);
возвращает группу для
начиная с версии 2.10 gtk_window_move ()void gtk_window_move (gtkwindow *window, gint x, gint y); просит window manager переместить window в данную позицию. менеджер окон может вполне проигнорировать это; большинство менеджеров окон игнорируют запрос начальной позиции окна (вместо этого используйте user-defined алгоритм размещения) и выполняют запросы после отображения окна. помните: позиция – это позиция определенная (gravity-determined) контрольной точкой притяжения для окна. притяжение определяет две вещи: первое, размещение контрольной точки в главном координирующем окне; и второе, какая точка на окне является контрольной точкой. по умолчанию притяжение будет gdk_gravity_north_west, таким образом контрольная точка это просто x, y поставленные в gtk_window_move(). верхний-левый угол декорации окна (рамка окна или окантовка) будет помещён в x, y. поэтому, позиционируя окно в левом-верхнем углу экрана, вам нужно использовать притяжение по умолчанию (то-есть gdk_gravity_north_west) и перемещение окна на 0,0. для установки позиции окна в верхний правый угол экрана, вы должны установить gdk_gravity_south_east, что означает контрольную точку в x + ширина окна и y + высота окна, и верхний-правый угол декорации окна будет помещен в эту контрольную точку. таким образом, чтобы разместить окно в правом-верхнем углу вы должны сначала установить притяжение в юго-восток (south east), затем написать: gtk_window_move (window, gdk_screen_width() - window_width, gdk_screen_height() - window_height). спецификация extended window manager hints на http://www.freedesktop.org/standards/wm-spec имеет хорошую таблицу притяжений в разделе "implementation notes". документация по gtk_window_get_position() может тоже быть полезной.
gtk_window_parse_geometry ()gboolean gtk_window_parse_geometry (gtkwindow *window, const gchar *geometry); анализирует стандартную строку геометрии x window system – для детального изучения обратитесь к страницам руководства для x (тип 'man x'). gtk_window_parse_geometry() в действительности работает на всех портах gtk+ включая win32, но в первую очередь рассчитана на окружение x. если позиция или размер могут быть извлечены из строки геометрии, gtk_window_parse_geometry() возвращает true и вызывает gtk_window_set_default_size() и/или gtk_window_move() для изменения размера или перемещения окна. если gtk_window_parse_geometry() возвратит true, будет также установлены подсказки индикаторы gdk_hint_user_pos и/или gdk_hint_user_size для менеджера окон указывающие что размер/позиция окна были определены пользователем. это заставляет большинство менеджеров окон соблюдать геометрию. помните, для ожидаемого результата gtk_window_parse_geometry() должна вызываться когда окно имеет окончательный ("final") размер, например после вызова gtk_widget_show_all() для содержимого и gtk_window_set_geometry_hints() для окна. include <gtk/gtk.h> static void fill_with_content (gtkwidget *vbox) { /* заполняется содержимым... */ } 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_vbox_new (false, 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), window, &size_hints, gdk_hint_min_size | gdk_hint_base_size | gdk_hint_resize_inc); if (argc > 1) { if (!gtk_window_parse_geometry (gtk_window (window), argv[1])) fprintf (stderr, "failed to parse '%s'\n", argv[1]); } gtk_widget_show_all (window); gtk_main(); return 0; }
gtk_window_reshow_with_initial_size ()void gtk_window_reshow_with_initial_size (gtkwindow *window); скрывает window, затем повторно отображает, сбрасывая значение по умолчанию размера и позиции окна. используется только сборщиками gui.
gtk_window_resize ()void gtk_window_resize (gtkwindow *window, gint width, gint height); изменяет размер окна как если бы пользователь сделал это, повинуясь ограничениям геометрии. значение по умолчанию ограничения геометрии в том, чтобы окна не могли быть меньше запрашиваемого размера; для отмены этого ограничения, вызовите gtk_widget_set_size_request() установив запрашиваемый размер окна в меньшее значение. если gtk_window_resize() перед отображением окна в первый раз, это отменяет любой установленный по умолчанию размер с помощью gtk_window_set_default_size(). окно не может быть меньше чем 1 на 1 пиксел.
gtk_window_set_default_icon_list ()void gtk_window_set_default_icon_list (glist *list); устанавливает список значков используемых как аварийные (fallback) для окон, которые не имеют определенного списка значков установленного вызовом gtk_window_set_icon_list(). эта функция позволяет вам устанавливать значок для всех окон вашего приложения сразу. подробности смотрите в gtk_window_set_icon_list().
gtk_window_set_default_icon ()void gtk_window_set_default_icon (gdkpixbuf *icon); устанавливает значок используемый как аварийный (fallback) для окон не имеющих изображение установленного вызовом gtk_window_set_icon().
начиная с версии 2.4 gtk_window_set_default_icon_from_file ()gboolean gtk_window_set_default_icon_from_file (const gchar *filename, gerror **err); устанавливает значок используемый как аварийный (fallback) для окон не имеющих файла на диске для вызова gtk_window_set_icon_list(). сообщает об ошибке если err равен null.
начиная с версии 2.2 gtk_window_set_default_icon_name ()void gtk_window_set_default_icon_name (const gchar *name); устанавливает значок используемый как аварийный (fallback) для окон не имеющих значка в именованной теме для вызова gtk_window_set_icon_list(), смотрите gtk_window_set_icon_name().
начиная с версии 2.6 gtk_window_set_icon ()void gtk_window_set_icon (gtkwindow *window, gdkpixbuf *icon); устанавливает значок представляющий gtkwindow. он используется когда окно минимизируется (тоже что и iconified). некоторые менеджеры окон или окруженияя рабочего стола могут также разместить его в оконной рамке, или отобразить в других контекстах. значок должен быть естественно нарисован в любом размере; то есть, не масштабируйте изображение перед помещением его в gtk+. масштабирование откладывается до последнего, когда окончательный желаемый размер известен, что позволяет получить наилучшее качество. если вы ваш значок вручную нарисовали в многочисленных размерах, используйте gtk_window_set_icon_list(). тогда будет использован лучший размер. эта функция эквивалентна вызову gtk_window_set_icon_list() с единственным элементом списка. смотрите также gtk_window_set_default_icon_list() для установки значка для всех окон в вашем приложении.
gtk_window_set_icon_list ()void gtk_window_set_icon_list (gtkwindow *window, glist *list); устанавливает значок представляющий gtkwindow. он используется когда окно минимизируется (тоже что и iconified). некоторые менеджеры окон или окруженияя рабочего стола могут также разместить его в оконной рамке, или отобразить в других контекстах. gtk_window_set_icon_list() позволяет вам помещать значок в нескольких размерах. список должен содержать естественные размеры в которых доступен ваш значок; то есть, не масштабируйте изображение перед помещением его в gtk+. масштабирование откладывается до последнего, когда окончательный желаемый размер известен, что позволяет получить наилучшее качество. помещая несколько размеров, вы можете улучшить конечное изображение значка, уменьшая или исключая автоматическое масштабирование значка. рекомендованные размеры: 16x16, 32x32, 48x48 в минимуме и большие изображения (64x64, 128x128), если вы имеете их. смотрите также gtk_window_set_default_icon_list() для установки значка для всех окон в вашем приложении. отметьте, что переходные окна (те которые установлены переходными для других окон с помощью gtk_window_set_transient_for()) будут наследовать значки от их переходного родителя. таким образом нет никакой необходимости явно устанавливать значок на переходных окнах.
gtk_window_set_icon_from_file ()gboolean gtk_window_set_icon_from_file (gtkwindow *window, const gchar *filename, gerror **err); устанавливает значок для window. предупреждает об ошибке если err равно null. эта функция эквивалентна вызову gtk_window_set_icon() с созданным изображением, загружаемым из filename.
начиная с версии 2.2 gtk_window_set_icon_name ()void gtk_window_set_icon_name (gtkwindow *window, const gchar *name); устанавливает значок для окна из именованной темы значков. для подробностей смотрите документацию gtkicontheme. отметьте, это не имеет никакого отношения к свойству wm_icon_name, которое упомянуто в icccm.
начиная с версии 2.6 gtk_window_set_auto_startup_notification ()void gtk_window_set_auto_startup_notification (gboolean setting); по умолчанию, после показа первого gtkwindow, для каждого gdkscreen gtk+ вызывает gdk_screen_notify_startup_complete(). вызовите эту функцию для отключения автоматического запуска уведомления. вы можете сделать это, например, если ваше первое окно является заставкой и вы хотите задержать уведомление пока не покажется реальное основное окно. в этом примере вы должны отключить запуск уведомления временно, показывая вашу заставку, затем вновь дать возможность показа основного окна приводящего к автоматическому запуску уведомления.
начиная с версии 2.2 gtk_decorated_window_init ()void gtk_decorated_window_init (gtkwindow *window);
gtk_decorated_window_calculate_frame_size ()void gtk_decorated_window_calculate_frame_size (gtkwindow *window);
gtk_decorated_window_set_title ()void gtk_decorated_window_set_title (gtkwindow *window, const gchar *title);
gtk_decorated_window_move_resize_window ()void gtk_decorated_window_move_resize_window (gtkwindow *window, gint x, gint y, gint width, gint height);
детали свойствсвойство "accept-focus""accept-focus" gboolean : read / write true если окно должно получать фокус ввода. значение по умолчанию: true свойство "allow-grow""allow-grow" gboolean : read / write если true, пользователь может расширять окно сверх минимального размера. значение по умолчанию: true свойство "allow-shrink""allow-shrink" gboolean : read / write если true, окно не имеет минимального размера. установка true в 99% случаев – плохая идея. значение по умолчанию: false свойство "decorated""decorated" gboolean : read / write должно ли окно декорироваться менеджером окон. значение по умолчанию: true начиная с версии 2.4 свойство "default-height""default-height" gint : read / write высота окна по умолчанию, используется когда первоначально показывается окно. допустимые значения: >= -1 значение по умолчанию: -1 свойство "default-width""default-width" gint : read / write ширина окна по умолчанию, используется когда первоначально показывается окно. допустимые значения: >= -1 значение по умолчанию: -1 свойство "
|
window : |
объект который получает сигнал. |
user_data : |
пользовательские данные установленные при подключении обработчика сигнала. |
void user_function (gtkwindow *window, gpointer user_data) : run last / action
window : |
объект который получает сигнал. |
user_data : |
пользовательские данные установленные при подключении обработчика сигнала. |
gboolean user_function (gtkwindow *window, gdkevent *event, gpointer user_data) : run last
window : |
объект который получает сигнал. |
event : |
|
user_data : |
пользовательские данные установленные при подключении обработчика сигнала. |
возвращает : |
void user_function (gtkwindow *window, gpointer user_data) : run first
window : |
объект который получает сигнал. |
user_data : |
пользовательские данные установленные при подключении обработчика сигнала. |
void user_function (gtkwindow *window, gtkdirectiontype arg1, gpointer user_data) : run last / action
window : |
объект который получает сигнал. |
arg1 : |
|
user_data : |
пользовательские данные установленные при подключении обработчика сигнала. |
void user_function (gtkwindow *window, gtkwidget *widget, gpointer user_data) : run last
window : |
объект который получает сигнал. |
widget : |
|
user_data : |
пользовательские данные установленные при подключении обработчика сигнала. |