From e6e7222d5a730368ed4e84c2e0f55427460e5230 Mon Sep 17 00:00:00 2001 From: Bradley Smith Date: Mon, 21 Jan 2008 00:16:45 +0000 Subject: Imported GNU robots from CVS. Signed-off-by: Bradley Smith --- lib/x11plugin.h | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 lib/x11plugin.h (limited to 'lib/x11plugin.h') diff --git a/lib/x11plugin.h b/lib/x11plugin.h new file mode 100644 index 0000000..0c39fa2 --- /dev/null +++ b/lib/x11plugin.h @@ -0,0 +1,102 @@ +/* $Id: x11plugin.h,v 1.1 2004/10/21 19:24:30 zeenix Exp $ */ + +/* GNU Robots game engine. */ + +/* Copyright (C) 1998 Jim Hall, jhall1@isd.net */ + +/* + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef __X11_PLUGIN_H__ +#define __X11_PLUGIN_H__ + +#include +#include +#include +#include + +#include +#include "userinterface.h" +#include "map.h" + +G_BEGIN_DECLS + +extern GType _x11_plugin_type; + +typedef struct _X11Plugin X11Plugin; + +struct _X11Plugin { + GObject object; + Map *map; + MapSize *map_size; + gint errors; + + Display *dpy; + Window x_win; + GC gc; + GC buf_gc; + Font text; + +#ifdef USE_MITSHM +#include +#include +#include + + XShmSegmentInfo + shm_info; + guchar use_mitshm = 1; +#endif + + gint win_width; + gint win_height; + + Pixmap win_buf; + + XImage *win_bufi; + XImage *statusbar; + XImage *space; + XImage *food; + XImage *wall; + XImage *prize; + XImage *baddie; + XImage *robotDirs[4]; + XImage *robotPix; +}; + +typedef struct _X11PluginClass X11PluginClass; + +struct _X11PluginClass { + GObjectClass parent_class; +}; + +#define G_TYPE_X11_PLUGIN (_x11_plugin_type) +#define G_IS_X11_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_X11_PLUGIN)) +#define G_IS_X11_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), G_TYPE_X11_PLUGIN)) +#define X11_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G_TYPE_X11_PLUGIN, X11PluginClass)) +#define X11_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_X11_PLUGIN, X11Plugin)) +#define X11_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G_TYPE_X11_PLUGIN, X11PluginClass)) + +/* normal GObject stuff */ +GType x11_plugin_get_type (void); + +X11Plugin* x11_plugin_new (void); + +/* SYMBOLIC CONSTANTS */ +#define dist(f_x, f_y, t_x, t_y) (abs((f_x)-(t_x))+abs((f_y)-(t_y))) + +G_END_DECLS + +#endif /* __X11_PLUGIN_H__*/ -- cgit v1.1