Bram Moolenaar | edf3f97 | 2016-08-29 22:49:24 +0200 | [diff] [blame] | 1 | /* vi:set ts=8 sts=4 sw=4 noet: |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 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 | |
Bram Moolenaar | 9892189 | 2016-02-23 17:14:37 +0100 | [diff] [blame] | 12 | #ifdef USE_GTK3 |
| 13 | #include <gtk/gtk.h> |
| 14 | #else |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 15 | #include <gdk/gdk.h> |
| 16 | #include <gtk/gtkcontainer.h> |
Bram Moolenaar | 9892189 | 2016-02-23 17:14:37 +0100 | [diff] [blame] | 17 | #endif |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 18 | |
| 19 | |
| 20 | #ifdef __cplusplus |
| 21 | extern "C" { |
| 22 | #endif |
| 23 | |
Bram Moolenaar | 8a99e66 | 2020-10-21 16:10:21 +0200 | [diff] [blame] | 24 | #define GTK_TYPE_FORM (gui_gtk_form_get_type ()) |
Bram Moolenaar | 9892189 | 2016-02-23 17:14:37 +0100 | [diff] [blame] | 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 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 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)) |
Bram Moolenaar | 9892189 | 2016-02-23 17:14:37 +0100 | [diff] [blame] | 35 | #endif |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 36 | |
| 37 | |
| 38 | typedef struct _GtkForm GtkForm; |
| 39 | typedef struct _GtkFormClass GtkFormClass; |
| 40 | |
| 41 | struct _GtkForm |
| 42 | { |
| 43 | GtkContainer container; |
| 44 | |
| 45 | GList *children; |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 46 | GdkWindow *bin_window; |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 47 | gint freeze_count; |
| 48 | }; |
| 49 | |
| 50 | struct _GtkFormClass |
| 51 | { |
| 52 | GtkContainerClass parent_class; |
| 53 | }; |
| 54 | |
Bram Moolenaar | 9892189 | 2016-02-23 17:14:37 +0100 | [diff] [blame] | 55 | #ifdef USE_GTK3 |
Bram Moolenaar | 8a99e66 | 2020-10-21 16:10:21 +0200 | [diff] [blame] | 56 | GType gui_gtk_form_get_type(void); |
Bram Moolenaar | 9892189 | 2016-02-23 17:14:37 +0100 | [diff] [blame] | 57 | #else |
Bram Moolenaar | 8a99e66 | 2020-10-21 16:10:21 +0200 | [diff] [blame] | 58 | GtkType gui_gtk_form_get_type(void); |
Bram Moolenaar | 9892189 | 2016-02-23 17:14:37 +0100 | [diff] [blame] | 59 | #endif |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 60 | |
Bram Moolenaar | 8a99e66 | 2020-10-21 16:10:21 +0200 | [diff] [blame] | 61 | GtkWidget *gui_gtk_form_new(void); |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 62 | |
Bram Moolenaar | 8a99e66 | 2020-10-21 16:10:21 +0200 | [diff] [blame] | 63 | void gui_gtk_form_put(GtkForm * form, GtkWidget * widget, gint x, gint y); |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 64 | |
Bram Moolenaar | 8a99e66 | 2020-10-21 16:10:21 +0200 | [diff] [blame] | 65 | void gui_gtk_form_move(GtkForm *form, GtkWidget * widget, gint x, gint y); |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 66 | |
Bram Moolenaar | 8a99e66 | 2020-10-21 16:10:21 +0200 | [diff] [blame] | 67 | void gui_gtk_form_move_resize(GtkForm * form, GtkWidget * widget, gint x, gint y, gint w, gint h); |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 68 | |
Bram Moolenaar | 9bf703d | 2019-11-30 19:44:38 +0100 | [diff] [blame] | 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. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 72 | |
Bram Moolenaar | 8a99e66 | 2020-10-21 16:10:21 +0200 | [diff] [blame] | 73 | void gui_gtk_form_freeze(GtkForm *form); |
| 74 | void gui_gtk_form_thaw(GtkForm *form); |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 75 | |
| 76 | |
| 77 | #ifdef __cplusplus |
| 78 | } |
| 79 | #endif |
Bram Moolenaar | 9bf703d | 2019-11-30 19:44:38 +0100 | [diff] [blame] | 80 | #endif // __GTK_FORM_H__ |