blob: cdff7f4374257d397c72e70d1f53a24720347de6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
#ifndef ECLIPSE_GTK_H
#define ECLIPSE_GTK_H
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk/gdkx.h>
struct GTK_PTRS {
short not_initialized;
GtkObject* (*gtk_adjustment_new) (gdouble, gdouble, gdouble, gdouble, gdouble, gdouble);
void (*gtk_box_set_child_packing)(GtkBox*, GtkWidget*, gboolean, gboolean, guint, GtkPackType);
void (*gtk_container_add) (GtkContainer*, GtkWidget*);
gint (*gtk_dialog_run) (GtkDialog *);
GtkWidget* (*gtk_fixed_new) ();
void (*gtk_fixed_set_has_window) (GtkFixed *, gboolean);
GtkWidget* (*gtk_image_new_from_pixbuf)(GdkPixbuf*);
gboolean (*gtk_init_check) (int*, char***);
GtkWidget* (*gtk_message_dialog_new) (GtkWindow*, GtkDialogFlags, GtkMessageType, GtkButtonsType, const gchar*, ...);
void (*gtk_scrolled_window_set_policy)(GtkScrolledWindow*, GtkPolicyType, GtkPolicyType);
GtkWidget* (*gtk_scrolled_window_new) (GtkAdjustment*, GtkAdjustment*);
gchar* (*gtk_set_locale) ();
gulong (*gtk_signal_connect_full) (GtkObject*, const gchar*, GtkSignalFunc, GtkCallbackMarshal, gpointer, GtkDestroyNotify, gint, gint);
GtkWidget* (*gtk_vbox_new) (gboolean, gint);
void (*gtk_widget_destroy) (GtkWidget*);
void (*gtk_widget_destroyed) (GtkWidget*, GtkWidget**);
void (*gtk_widget_show_all) (GtkWidget*);
GtkWidget* (*gtk_window_new) (GtkWindowType);
void (*gtk_window_resize) (GtkWindow*, gint, gint);
void (*gtk_window_set_title) (GtkWindow*, const gchar*);
void (*gtk_window_set_decorated) (GtkWindow*, gboolean);
void (*gtk_window_set_position) (GtkWindow*, GtkWindowPosition);
guint (*g_log_set_handler) (const gchar*, GLogLevelFlags, GLogFunc, gpointer);
void (*g_log_remove_handler) (const gchar*, guint);
gboolean (*g_main_context_iteration) (GMainContext*, gboolean);
void (*g_object_unref) (gpointer);
GObject* (*g_object_new) (GType, const gchar*, ...);
guint (*g_timeout_add) (guint, GSourceFunc, gpointer);
#ifdef SOLARIS
GString* (*g_string_insert_c) (GString *, gssize, gchar);
#endif
GdkPixbuf* (*gdk_pixbuf_new_from_file) (const char*, GError **);
int (*gdk_pixbuf_get_width) (const GdkPixbuf*);
int (*gdk_pixbuf_get_height) (const GdkPixbuf*);
void (*gdk_set_program_class) (const char*);
Window (*XGetSelectionOwner) (Display*, Atom);
void (*XSetSelectionOwner) (Display*, Atom, Window, Time);
void (*XChangeProperty) (Display*, Window, Atom, Atom, int, int, unsigned char *, int);
Window (*XCreateWindow) (Display*, Window, int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, Visual*, unsigned long, XSetWindowAttributes*);
void (*XSync) (Display*, Bool);
int (*XDefaultScreen) (Display*);
Window (*XRootWindow) (Display*, int);
Atom (*XInternAtom) (Display*, _Xconst char*, Bool );
Display **gdk_display;
};
#define gtk_GDK_DISPLAY *(gtk.gdk_display)
extern struct GTK_PTRS gtk;
#define FN_TABLE_ENTRY(fn) { (void**)& gtk.fn, #fn }
typedef struct {
void ** fnPtr;
char * fnName;
} FN_TABLE;
/* load the gtk libraries and initialize the function pointers */
extern int loadGtk();
#endif