1 /* 2 * Copyright (c) 2013 Red Hat, Inc. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or (at your 7 * option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, but 10 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 12 * License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public License 15 * along with this program; if not, write to the Free Software Foundation, 16 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 17 * 18 */ 19 20 #ifndef __GTK_HEADER_BAR_H__ 21 #define __GTK_HEADER_BAR_H__ 22 23 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 24 #error "Only <gtk/gtk.h> can be included directly." 25 #endif 26 27 #include <gtk/gtkcontainer.h> 28 29 G_BEGIN_DECLS 30 31 #define GTK_TYPE_HEADER_BAR (gtk_header_bar_get_type ()) 32 #define GTK_HEADER_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_HEADER_BAR, GtkHeaderBar)) 33 #define GTK_HEADER_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_HEADER_BAR, GtkHeaderBarClass)) 34 #define GTK_IS_HEADER_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_HEADER_BAR)) 35 #define GTK_IS_HEADER_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_HEADER_BAR)) 36 #define GTK_HEADER_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_HEADER_BAR, GtkHeaderBarClass)) 37 38 typedef struct _GtkHeaderBar GtkHeaderBar; 39 typedef struct _GtkHeaderBarPrivate GtkHeaderBarPrivate; 40 typedef struct _GtkHeaderBarClass GtkHeaderBarClass; 41 42 struct _GtkHeaderBar 43 { 44 GtkContainer container; 45 }; 46 47 struct _GtkHeaderBarClass 48 { 49 GtkContainerClass parent_class; 50 51 /* Padding for future expansion */ 52 void (*_gtk_reserved1) (void); 53 void (*_gtk_reserved2) (void); 54 void (*_gtk_reserved3) (void); 55 void (*_gtk_reserved4) (void); 56 }; 57 58 GDK_AVAILABLE_IN_3_10 59 GType gtk_header_bar_get_type (void) G_GNUC_CONST; 60 GDK_AVAILABLE_IN_3_10 61 GtkWidget *gtk_header_bar_new (void); 62 GDK_AVAILABLE_IN_3_10 63 void gtk_header_bar_set_title (GtkHeaderBar *bar, 64 const gchar *title); 65 GDK_AVAILABLE_IN_3_10 66 const gchar *gtk_header_bar_get_title (GtkHeaderBar *bar); 67 GDK_AVAILABLE_IN_3_10 68 void gtk_header_bar_set_subtitle (GtkHeaderBar *bar, 69 const gchar *subtitle); 70 GDK_AVAILABLE_IN_3_10 71 const gchar *gtk_header_bar_get_subtitle (GtkHeaderBar *bar); 72 73 74 GDK_AVAILABLE_IN_3_10 75 void gtk_header_bar_set_custom_title (GtkHeaderBar *bar, 76 GtkWidget *title_widget); 77 GDK_AVAILABLE_IN_3_10 78 GtkWidget *gtk_header_bar_get_custom_title (GtkHeaderBar *bar); 79 GDK_AVAILABLE_IN_3_10 80 void gtk_header_bar_pack_start (GtkHeaderBar *bar, 81 GtkWidget *child); 82 GDK_AVAILABLE_IN_3_10 83 void gtk_header_bar_pack_end (GtkHeaderBar *bar, 84 GtkWidget *child); 85 86 GDK_AVAILABLE_IN_3_10 87 gboolean gtk_header_bar_get_show_close_button (GtkHeaderBar *bar); 88 89 GDK_AVAILABLE_IN_3_10 90 void gtk_header_bar_set_show_close_button (GtkHeaderBar *bar, 91 gboolean setting); 92 93 GDK_AVAILABLE_IN_3_12 94 void gtk_header_bar_set_has_subtitle (GtkHeaderBar *bar, 95 gboolean setting); 96 GDK_AVAILABLE_IN_3_12 97 gboolean gtk_header_bar_get_has_subtitle (GtkHeaderBar *bar); 98 99 GDK_AVAILABLE_IN_3_12 100 void gtk_header_bar_set_decoration_layout (GtkHeaderBar *bar, 101 const gchar *layout); 102 GDK_AVAILABLE_IN_3_12 103 const gchar *gtk_header_bar_get_decoration_layout (GtkHeaderBar *bar); 104 105 G_END_DECLS 106 107 #endif /* __GTK_HEADER_BAR_H__ */ 108