blob: be7693a4da71e01f1e830dd68ba629d3a7d3f8b9 [file] [log] [blame]
Bram Moolenaaredf3f972016-08-29 22:49:24 +02001/* vi:set ts=8 sts=4 sw=4 noet:
Bram Moolenaar071d4272004-06-13 20:20:40 +00002 *
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 Moolenaar98921892016-02-23 17:14:37 +010012#ifdef USE_GTK3
13#include <gtk/gtk.h>
14#else
Bram Moolenaar071d4272004-06-13 20:20:40 +000015#include <gdk/gdk.h>
16#include <gtk/gtkcontainer.h>
Bram Moolenaar98921892016-02-23 17:14:37 +010017#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000018
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#define GTK_TYPE_FORM (gtk_form_get_type ())
Bram Moolenaar98921892016-02-23 17:14:37 +010025#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 Moolenaar071d4272004-06-13 20:20:40 +000031#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 Moolenaar98921892016-02-23 17:14:37 +010035#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000036
37
38typedef struct _GtkForm GtkForm;
39typedef struct _GtkFormClass GtkFormClass;
40
41struct _GtkForm
42{
43 GtkContainer container;
44
45 GList *children;
Bram Moolenaar071d4272004-06-13 20:20:40 +000046 GdkWindow *bin_window;
Bram Moolenaar071d4272004-06-13 20:20:40 +000047 gint freeze_count;
48};
49
50struct _GtkFormClass
51{
52 GtkContainerClass parent_class;
53};
54
Bram Moolenaar98921892016-02-23 17:14:37 +010055#ifdef USE_GTK3
56GType gtk_form_get_type(void);
57#else
Bram Moolenaar071d4272004-06-13 20:20:40 +000058GtkType gtk_form_get_type(void);
Bram Moolenaar98921892016-02-23 17:14:37 +010059#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000060
61GtkWidget *gtk_form_new(void);
62
63void gtk_form_put(GtkForm * form, GtkWidget * widget,
64 gint x, gint y);
65
66void gtk_form_move(GtkForm *form, GtkWidget * widget,
67 gint x, gint y);
68
69void gtk_form_move_resize(GtkForm * form, GtkWidget * widget,
70 gint x, gint y,
71 gint w, gint h);
Bram Moolenaar071d4272004-06-13 20:20:40 +000072
73/* These disable and enable moving and repainting respectively. If you
74 * want to update the layout's offsets but do not want it to repaint
75 * itself, you should use these functions.
76 */
77
78void gtk_form_freeze(GtkForm *form);
79void gtk_form_thaw(GtkForm *form);
80
81
82#ifdef __cplusplus
83}
84#endif
85#endif /* __GTK_FORM_H__ */