view plugins/crazychat/cc_gtk_gl.h @ 13765:13b7e59a0759

[gaim-migrate @ 16177] SF Bug #1485718 "At Solaris ARC review, the architect committee noticed that gaim installs two files to /usr/bin with the *.py extension. These include: gaim-notifications-example.py gaim-remote.py ARC also noticed that there are no other applications in /usr/bin with this extension, and questioned whether it makes sense to add applications to the default user PATH like this. Does it make more sense to remove the .py from the filenames if you are planning to install them into PATH? They recommend changing the name for consistancy. Also, not sure it is a good idea to install example programs to /usr/bin. Perhaps gaim-notifications-example should be installed to a /usr/demo directory, or elsewhere?" I've renamed gaim-remote.py to gaim-remote and moved gaim-notifications-example to /usr/share/gaim/doc/examples. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Thu, 11 May 2006 17:02:46 +0000
parents fc464a0abccc
children
line wrap: on
line source

#include <gtk/gtk.h>
#include <gtk/gtkgl.h>

#define DEFAULT_FRAME_DELAY		40

typedef void (gl_init_func) (GtkWidget *widget, void *data);
typedef gboolean (*gl_config_func) (GtkWidget *widget, GdkEventConfigure *event,
		void *data);
typedef gboolean (*gl_draw_func) (GtkWidget *widget, GdkEventExpose *event,
			      void *data);

struct draw_info {
	gboolean timeout;		/* use/not use a timer callback */
	int timer_id;			/* glib timer callback id */
	guint delay_ms;			/* timer callback delay in ms */
	void *data;			/* drawing data */
};

struct window_box {
	GtkWidget *window;
	GtkWidget *vbox;
	GtkWidget *draw_area;
};

/**
 * Initialize the gtkglext framework for all our widgets.
 * @return		0 on success, non-zero on failure
 */
int cc_init_gtk_gl(void);

/**
 * Create a new OpenGL enabled window
 * @param init		the initialize callback function
 * @param draw		the drawing callback function
 * @param data		drawing metadata
 * @param ret		struct with returned window and vbox
 */
void cc_new_gl_window(gl_init_func init, gl_config_func config,
		gl_draw_func draw, struct draw_info *data,
		struct window_box *ret);

/**
 * Create a new OpenGL enabled drawing area widget.
 * @param init		the initialize callback function
 * @param draw		the drawing callback function
 * @param data		drawing metadata
 * @return 		the drawing widget
 */
GtkWidget *cc_new_gl_area(gl_init_func init, gl_config_func config,
		gl_draw_func draw, struct draw_info *data);