1 /* vi:set ts=8 sts=4 sw=4 noet: 2 * 3 * VIM - Vi IMproved by Bram Moolenaar 4 * 5 * Do ":help uganda" in Vim to read copying and usage conditions. 6 * Do ":help credits" in Vim to see a list of people who contributed. 7 */ 8 9 #ifndef __GTK_FORM_H__ 10 #define __GTK_FORM_H__ 11 12 #ifdef USE_GTK3 13 #include <gtk/gtk.h> 14 #else 15 #include <gdk/gdk.h> 16 #include <gtk/gtkcontainer.h> 17 #endif 18 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 #define GTK_TYPE_FORM (gui_gtk_form_get_type ()) 25 #ifdef USE_GTK3 26 #define GTK_FORM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_FORM, GtkForm)) 27 #define GTK_FORM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_FORM, GtkFormClass)) 28 #define GTK_IS_FORM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_FORM)) 29 #define GTK_IS_FORM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_FORM)) 30 #else 31 #define GTK_FORM(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_FORM, GtkForm)) 32 #define GTK_FORM_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_FORM, GtkFormClass)) 33 #define GTK_IS_FORM(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_FORM)) 34 #define GTK_IS_FORM_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_FORM)) 35 #endif 36 37 38 typedef struct _GtkForm GtkForm; 39 typedef struct _GtkFormClass GtkFormClass; 40 41 struct _GtkForm 42 { 43 GtkContainer container; 44 45 GList *children; 46 GdkWindow *bin_window; 47 gint freeze_count; 48 }; 49 50 struct _GtkFormClass 51 { 52 GtkContainerClass parent_class; 53 }; 54 55 #ifdef USE_GTK3 56 GType gui_gtk_form_get_type(void); 57 #else 58 GtkType gui_gtk_form_get_type(void); 59 #endif 60 61 GtkWidget *gui_gtk_form_new(void); 62 63 void gui_gtk_form_put(GtkForm * form, GtkWidget * widget, gint x, gint y); 64 65 void gui_gtk_form_move(GtkForm *form, GtkWidget * widget, gint x, gint y); 66 67 void gui_gtk_form_move_resize(GtkForm * form, GtkWidget * widget, gint x, gint y, gint w, gint h); 68 69 // These disable and enable moving and repainting respectively. If you 70 // want to update the layout's offsets but do not want it to repaint 71 // itself, you should use these functions. 72 73 void gui_gtk_form_freeze(GtkForm *form); 74 void gui_gtk_form_thaw(GtkForm *form); 75 76 77 #ifdef __cplusplus 78 } 79 #endif 80 #endif // __GTK_FORM_H__ 81