diff options
| author | Bradley Smith | 2008-05-05 22:36:42 +0100 | 
|---|---|---|
| committer | Bradley Smith | 2008-05-05 22:36:42 +0100 | 
| commit | 5fce44d580c24ac4c817ca62614670b04b4cf10b (patch) | |
| tree | c6a8fc270fbf0db982d84b6653cf6520500da14c /include | |
| parent | Make UI update in a loop, and thread out input. (diff) | |
| download | gnurobots-5fce44d580c24ac4c817ca62614670b04b4cf10b.tar.gz | |
Scrap plug-able interfaces in preparation for GTK GUI.
Signed-off-by: Bradley Smith <brad@brad-smith.co.uk>
Diffstat (limited to 'include')
| -rw-r--r-- | include/userinterface.h | 169 | 
1 files changed, 67 insertions, 102 deletions
diff --git a/include/userinterface.h b/include/userinterface.h index c67d364..e8c7665 100644 --- a/include/userinterface.h +++ b/include/userinterface.h @@ -1,11 +1,11 @@  /* Copyright (C) 1998 Jim Hall <jhall1@isd.net>   * Copyright (C) 2008 Bradley Smith <brad@brad-smith.co.uk>   * - * GNU Robots game engine. This is the header file for user_interface module + * GNU Robots game engine.   * - * GNU Robots is free software: you can redistribute it and/or modify + * GNU Robots 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 3 of the License, or + * the Free Software Foundation; either version 2 of the License, or   * (at your option) any later version.   *   * GNU Robots is distributed in the hope that it will be useful, @@ -21,121 +21,87 @@  #ifndef __USER_INTERFACE_H__  #define __USER_INTERFACE_H__ +#include <X11/Xlib.h> +#include <X11/Xutil.h> +#include <X11/xpm.h> +#include <X11/keysym.h> +  #include <glib-object.h> +/*#include "userinterface.h"*/  #include "map.h"  G_BEGIN_DECLS -#define G_TYPE_USER_INTERFACE           \ -            user_interface_get_type() -#define G_IS_USER_INTERFACE(obj)        \ -            G_TYPE_CHECK_INSTANCE_TYPE(obj, G_TYPE_USER_INTERFACE) -#define G_IS_USER_INTERFACE_CLASS(klass)\ -            G_TYPE_CHECK_CLASS_TYPE(klass, G_TYPE_USER_INTERFACE) -#define USER_INTERFACE_GET_CLASS(obj)   \ -            G_TYPE_INSTANCE_GET_INTERFACE(obj, G_TYPE_USER_INTERFACE,\ -              UserInterfaceClass) -#define USER_INTERFACE(obj)             \ -            G_TYPE_CHECK_INSTANCE_CAST(obj, G_TYPE_USER_INTERFACE, \ -              UserInterface) -#define USER_INTERFACE_CLASS(klass)     \ -            G_TYPE_CHECK_CLASS_CAST(klass, G_TYPE_USER_INTERFACE,\ -              UserInterfaceClass) +#define G_TYPE_USER_INTERFACE			  user_interface_get_type() +#define G_IS_USER_INTERFACE(obj)		  G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ +                                          G_TYPE_USER_INTERFACE) +#define G_IS_USER_INTERFACE_CLASS(klass)  G_TYPE_CHECK_CLASS_TYPE ((klass), \ +                                          G_TYPE_USER_INTERFACE) +#define USER_INTERFACE_GET_CLASS(obj)	  G_TYPE_INSTANCE_GET_CLASS ((obj), \ +                                          G_TYPE_USER_INTERFACE, \ +                                          UserInterfaceClass) +#define USER_INTERFACE(obj)			      G_TYPE_CHECK_INSTANCE_CAST ((obj), \ +                                          G_TYPE_USER_INTERFACE, UserInterface) +#define USER_INTERFACE_CLASS(klass)		  G_TYPE_CHECK_CLASS_CAST ((klass), \ +                                          G_TYPE_USER_INTERFACE, \ +                                          UserInterfaceClass)  typedef struct _UserInterface UserInterface;  typedef struct _UserInterfaceClass UserInterfaceClass; +struct _UserInterface { +  GObject 	object; +  Map 		*map; +  MapSize 	*map_size; + +  Display 	*dpy; +  Window 	x_win; +  Atom      wm_delete_win; +  Atom      wm_protocols; +  GC 		gc; +  GC 		buf_gc; +  Font 		text; + +#ifdef USE_MITSHM +#include <sys/ipc.h> +#include <sys/shm.h> +#include <X11/extensions/XShm.h> +  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; +}; +  struct _UserInterfaceClass { -  GTypeInterface parent; - -  void  (* user_interface_add_thing)      (UserInterface *ui, -                         gint x, -                         gint y, -                         gint thing); - -  void  (* user_interface_run)            (UserInterface *ui); -  void  (* user_interface_draw)           (UserInterface *ui); - -  void  (* user_interface_update_status)  (UserInterface *ui, -                         const gchar *s, -                         glong energy, -                         glong score, -                         glong shields); - -  void  (* user_interface_move_robot)     (UserInterface *ui, -                         gint from_x, -                         gint from_y, -                         gint to_x, -                         gint to_y, -                         gint cdir, -                         glong energy, -                         glong score, -                         glong shields); - -  void  (* user_interface_robot_smell)    (UserInterface *ui, -                         gint x, -                         gint y, -                         gint cdir, -                         glong energy, -                         glong score, -                         glong shields); - -  void  (* user_interface_robot_zap)      (UserInterface *ui, -                         gint x, -                         gint y, -                         gint cdir, -                         gint x_to, -                         gint y_to, -                         glong energy, -                         glong score, -                         glong shields); - -  void  (* user_interface_robot_feel)     (UserInterface *ui, -                         gint x, -                         gint y, -                         gint cdir, -                         gint x_to, -                         gint y_to, -                         glong energy, -                         glong score, -                         glong shields); - -  void  (* user_interface_robot_grab)     (UserInterface *ui, -                         gint x, -                         gint y, -                         gint cdir, -                         gint x_to, -                         gint y_to, -                         glong energy, -                         glong score, -                         glong shields); - -  void  (* user_interface_robot_look)     (UserInterface *ui, -                         gint x, -                         gint y, -                         gint cdir, -                         gint x_to, -                         gint y_to, -                         glong energy, -                         glong score, -                         glong shields); - -  void  (* user_interface_get_string)     (UserInterface *ui, -                         gchar *prompt, -                         gchar *buff, -                         gint len); +  GObjectClass	parent_class;  };  /* normal GObject stuff */ -GType   user_interface_get_type     (void); +GType       user_interface_get_type		(void); + +UserInterface*	user_interface_new 		(Map* map); -/* functions we want implemented by the implementers of our interface */  void    user_interface_add_thing        (UserInterface *ui,                       gint x,                       gint y,                       gint thing);  void    user_interface_run              (UserInterface *ui); +  void    user_interface_draw             (UserInterface *ui);  void    user_interface_update_status    (UserInterface *ui, @@ -207,10 +173,9 @@ void    user_interface_get_string       (UserInterface *ui,                       gchar *buff,                       gint len); -typedef UserInterface * (* UserInterfaceInitFunc) (Map *map, -                           GType parent_type); -#define USER_INTERFACE_INIT_FUNCTION "user_interface_new" +/* 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 /* __USER_INTERFACE_H__*/ +#endif /* __USER_INTERFACE_H__ */  | 
