X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkwindow.h;h=7b0c0dc5e5f08dbb198e021bff8da635d48aeaf7;hb=bb3c56abe2e7916126bd4f8234dee080b5381941;hp=6d60912c027feb035bafad656e593fe9cf1ec3fb;hpb=8821161c38664d6f43dbb1fe5139a92af1c93fe2;p=~andy%2Fgtk diff --git a/gtk/gtkwindow.h b/gtk/gtkwindow.h index 6d60912c0..7b0c0dc5e 100644 --- a/gtk/gtkwindow.h +++ b/gtk/gtkwindow.h @@ -12,27 +12,27 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ /* * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS * file for a list of people on the GTK+ Team. See the ChangeLog * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ #ifndef __GTK_WINDOW_H__ #define __GTK_WINDOW_H__ -#include +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + +#include #include #include -#include -#include G_BEGIN_DECLS @@ -43,72 +43,18 @@ G_BEGIN_DECLS #define GTK_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_WINDOW)) #define GTK_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_WINDOW, GtkWindowClass)) - -typedef struct _GtkWindow GtkWindow; +typedef struct _GtkWindowPrivate GtkWindowPrivate; typedef struct _GtkWindowClass GtkWindowClass; typedef struct _GtkWindowGeometryInfo GtkWindowGeometryInfo; typedef struct _GtkWindowGroup GtkWindowGroup; typedef struct _GtkWindowGroupClass GtkWindowGroupClass; +typedef struct _GtkWindowGroupPrivate GtkWindowGroupPrivate; struct _GtkWindow { GtkBin bin; - gchar *title; - gchar *wmclass_name; - gchar *wmclass_class; - gchar *wm_role; - - GtkWidget *focus_widget; - GtkWidget *default_widget; - GtkWindow *transient_parent; - GtkWindowGeometryInfo *geometry_info; - GdkWindow *frame; - GtkWindowGroup *group; - - guint16 configure_request_count; - guint allow_shrink : 1; - guint allow_grow : 1; - guint configure_notify_received : 1; - /* The following flags are initially TRUE (before a window is mapped). - * They cause us to compute a configure request that involves - * default-only parameters. Once mapped, we set them to FALSE. - * Then we set them to TRUE again on unmap (for position) - * and on unrealize (for size). - */ - guint need_default_position : 1; - guint need_default_size : 1; - guint position : 3; - guint type : 4; /* GtkWindowType */ - guint has_user_ref_count : 1; - guint has_focus : 1; - - guint modal : 1; - guint destroy_with_parent : 1; - - guint has_frame : 1; - - /* gtk_window_iconify() called before realization */ - guint iconify_initially : 1; - guint stick_initially : 1; - guint maximize_initially : 1; - guint decorated : 1; - - guint type_hint : 3; /* GdkWindowTypeHint */ - guint gravity : 5; /* GdkGravity */ - - guint is_active : 1; - guint has_toplevel_focus : 1; - - guint frame_left; - guint frame_top; - guint frame_right; - guint frame_bottom; - - guint keys_changed_handler; - - GdkModifierType mnemonic_modifier; - GdkScreen *screen; + GtkWindowPrivate *priv; }; struct _GtkWindowClass @@ -116,19 +62,14 @@ struct _GtkWindowClass GtkBinClass parent_class; void (* set_focus) (GtkWindow *window, - GtkWidget *focus); - gboolean (* frame_event) (GtkWindow *window, - GdkEvent *event); + GtkWidget *focus); /* G_SIGNAL_ACTION signals for keybindings */ - void (* activate_focus) (GtkWindow *window); - void (* activate_default) (GtkWindow *window); - void (* move_focus) (GtkWindow *window, - GtkDirectionType direction); - - void (*keys_changed) (GtkWindow *window); - + void (* activate_focus) (GtkWindow *window); + void (* activate_default) (GtkWindow *window); + void (* keys_changed) (GtkWindow *window); + /* Padding for future expansion */ void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); @@ -147,7 +88,7 @@ struct _GtkWindowGroup { GObject parent_instance; - GSList *grabs; + GtkWindowGroupPrivate *priv; }; struct _GtkWindowGroupClass @@ -161,23 +102,19 @@ struct _GtkWindowGroupClass void (*_gtk_reserved4) (void); }; -#ifdef G_OS_WIN32 -/* Reserve old names for DLL ABI backward compatibility */ -#define gtk_window_set_icon_from_file gtk_window_set_icon_from_file_utf8 -#define gtk_window_set_default_icon_from_file gtk_window_set_default_icon_from_file_utf8 -#endif - GType gtk_window_get_type (void) G_GNUC_CONST; GtkWidget* gtk_window_new (GtkWindowType type); void gtk_window_set_title (GtkWindow *window, const gchar *title); -G_CONST_RETURN gchar *gtk_window_get_title (GtkWindow *window); +const gchar * gtk_window_get_title (GtkWindow *window); void gtk_window_set_wmclass (GtkWindow *window, const gchar *wmclass_name, const gchar *wmclass_class); void gtk_window_set_role (GtkWindow *window, const gchar *role); -G_CONST_RETURN gchar *gtk_window_get_role (GtkWindow *window); +void gtk_window_set_startup_id (GtkWindow *window, + const gchar *startup_id); +const gchar * gtk_window_get_role (GtkWindow *window); void gtk_window_add_accel_group (GtkWindow *window, GtkAccelGroup *accel_group); void gtk_window_remove_accel_group (GtkWindow *window, @@ -190,11 +127,22 @@ void gtk_window_set_focus (GtkWindow *window, GtkWidget *gtk_window_get_focus (GtkWindow *window); void gtk_window_set_default (GtkWindow *window, GtkWidget *default_widget); +GtkWidget *gtk_window_get_default_widget (GtkWindow *window); gboolean gtk_window_activate_default (GtkWindow *window); void gtk_window_set_transient_for (GtkWindow *window, GtkWindow *parent); GtkWindow *gtk_window_get_transient_for (GtkWindow *window); +GDK_AVAILABLE_IN_3_4 +void gtk_window_set_attached_to (GtkWindow *window, + GtkWidget *attach_widget); +GDK_AVAILABLE_IN_3_4 +GtkWidget *gtk_window_get_attached_to (GtkWindow *window); +GDK_DEPRECATED_IN_3_8_FOR(gtk_widget_set_opacity) +void gtk_window_set_opacity (GtkWindow *window, + gdouble opacity); +GDK_DEPRECATED_IN_3_8_FOR(gtk_widget_get_opacity) +gdouble gtk_window_get_opacity (GtkWindow *window); void gtk_window_set_type_hint (GtkWindow *window, GdkWindowTypeHint hint); GdkWindowTypeHint gtk_window_get_type_hint (GtkWindow *window); @@ -216,6 +164,19 @@ gboolean gtk_window_get_focus_on_map (GtkWindow *window); void gtk_window_set_destroy_with_parent (GtkWindow *window, gboolean setting); gboolean gtk_window_get_destroy_with_parent (GtkWindow *window); +GDK_AVAILABLE_IN_3_4 +void gtk_window_set_hide_titlebar_when_maximized (GtkWindow *window, + gboolean setting); +GDK_AVAILABLE_IN_3_4 +gboolean gtk_window_get_hide_titlebar_when_maximized (GtkWindow *window); +void gtk_window_set_mnemonics_visible (GtkWindow *window, + gboolean setting); +gboolean gtk_window_get_mnemonics_visible (GtkWindow *window); +GDK_AVAILABLE_IN_3_2 +void gtk_window_set_focus_visible (GtkWindow *window, + gboolean setting); +GDK_AVAILABLE_IN_3_2 +gboolean gtk_window_get_focus_visible (GtkWindow *window); void gtk_window_set_resizable (GtkWindow *window, gboolean resizable); @@ -238,25 +199,12 @@ GdkScreen* gtk_window_get_screen (GtkWindow *window); gboolean gtk_window_is_active (GtkWindow *window); gboolean gtk_window_has_toplevel_focus (GtkWindow *window); - - -/* gtk_window_set_has_frame () must be called before realizing the window_*/ -void gtk_window_set_has_frame (GtkWindow *window, - gboolean setting); -gboolean gtk_window_get_has_frame (GtkWindow *window); -void gtk_window_set_frame_dimensions (GtkWindow *window, - gint left, - gint top, - gint right, - gint bottom); -void gtk_window_get_frame_dimensions (GtkWindow *window, - gint *left, - gint *top, - gint *right, - gint *bottom); void gtk_window_set_decorated (GtkWindow *window, gboolean setting); gboolean gtk_window_get_decorated (GtkWindow *window); +void gtk_window_set_deletable (GtkWindow *window, + gboolean setting); +gboolean gtk_window_get_deletable (GtkWindow *window); void gtk_window_set_icon_list (GtkWindow *window, GList *list); @@ -269,12 +217,12 @@ gboolean gtk_window_set_icon_from_file (GtkWindow *window, const gchar *filename, GError **err); GdkPixbuf* gtk_window_get_icon (GtkWindow *window); -G_CONST_RETURN -gchar *gtk_window_get_icon_name (GtkWindow *window); +const gchar * gtk_window_get_icon_name (GtkWindow *window); void gtk_window_set_default_icon_list (GList *list); GList* gtk_window_get_default_icon_list (void); void gtk_window_set_default_icon (GdkPixbuf *icon); void gtk_window_set_default_icon_name (const gchar *name); +const gchar * gtk_window_get_default_icon_name (void); gboolean gtk_window_set_default_icon_from_file (const gchar *filename, GError **err); @@ -285,6 +233,8 @@ void gtk_window_set_modal (GtkWindow *window, gboolean modal); gboolean gtk_window_get_modal (GtkWindow *window); GList* gtk_window_list_toplevels (void); +void gtk_window_set_has_user_ref_count (GtkWindow *window, + gboolean setting); void gtk_window_add_mnemonic (GtkWindow *window, guint keyval, @@ -330,14 +280,6 @@ void gtk_window_begin_move_drag (GtkWindow *window, gint root_y, guint32 timestamp); -#ifndef GTK_DISABLE_DEPRECATED -void gtk_window_set_policy (GtkWindow *window, - gint allow_shrink, - gint allow_grow, - gint auto_shrink); -#define gtk_window_position gtk_window_set_position -#endif /* GTK_DISABLE_DEPRECATED */ - /* Set initial default size of the window (does not constrain user * resize operations) */ @@ -362,9 +304,21 @@ void gtk_window_get_position (GtkWindow *window, gboolean gtk_window_parse_geometry (GtkWindow *window, const gchar *geometry); +void gtk_window_set_default_geometry (GtkWindow *window, + gint width, + gint height); +void gtk_window_resize_to_geometry (GtkWindow *window, + gint width, + gint height); + +GtkWindowGroup *gtk_window_get_group (GtkWindow *window); +gboolean gtk_window_has_group (GtkWindow *window); + /* Ignore this unless you are writing a GUI builder */ void gtk_window_reshow_with_initial_size (GtkWindow *window); +GtkWindowType gtk_window_get_window_type (GtkWindow *window); + /* Window groups */ GType gtk_window_group_get_type (void) G_GNUC_CONST; @@ -374,47 +328,25 @@ void gtk_window_group_add_window (GtkWindowGroup *window_grou GtkWindow *window); void gtk_window_group_remove_window (GtkWindowGroup *window_group, GtkWindow *window); +GList * gtk_window_group_list_windows (GtkWindowGroup *window_group); -/* --- internal functions --- */ -void _gtk_window_internal_set_focus (GtkWindow *window, - GtkWidget *focus); -void gtk_window_remove_embedded_xid (GtkWindow *window, - guint xid); -void gtk_window_add_embedded_xid (GtkWindow *window, - guint xid); -void _gtk_window_reposition (GtkWindow *window, - gint x, - gint y); -void _gtk_window_constrain_size (GtkWindow *window, - gint width, - gint height, - gint *new_width, - gint *new_height); -GtkWindowGroup *_gtk_window_get_group (GtkWindow *window); -GtkWidget *_gtk_window_group_get_current_grab (GtkWindowGroup *window_group); - -void _gtk_window_set_has_toplevel_focus (GtkWindow *window, - gboolean has_toplevel_focus); -void _gtk_window_unset_focus_and_default (GtkWindow *window, - GtkWidget *widget); - -void _gtk_window_set_is_active (GtkWindow *window, - gboolean is_active); - -typedef void (*GtkWindowKeysForeachFunc) (GtkWindow *window, - guint keyval, - GdkModifierType modifiers, - gboolean is_mnemonic, - gpointer data); - -void _gtk_window_keys_foreach (GtkWindow *window, - GtkWindowKeysForeachFunc func, - gpointer func_data); - -/* --- internal (GtkAcceleratable) --- */ -gboolean _gtk_window_query_nonaccels (GtkWindow *window, - guint accel_key, - GdkModifierType accel_mods); +GtkWidget * gtk_window_group_get_current_grab (GtkWindowGroup *window_group); +GtkWidget * gtk_window_group_get_current_device_grab (GtkWindowGroup *window_group, + GdkDevice *device); + +GtkApplication *gtk_window_get_application (GtkWindow *window); +void gtk_window_set_application (GtkWindow *window, + GtkApplication *application); + + +/* Window grips + */ +void gtk_window_set_has_resize_grip (GtkWindow *window, + gboolean value); +gboolean gtk_window_get_has_resize_grip (GtkWindow *window); +gboolean gtk_window_resize_grip_is_visible (GtkWindow *window); +gboolean gtk_window_get_resize_grip_area (GtkWindow *window, + GdkRectangle *rect); G_END_DECLS