client/game_window.h

Go to the documentation of this file.
00001 /* $Id:game_window.h jjs $ */
00002 /*
00003    Copyright (C) 2007 by Jurjen Stellingwerff <jurjen@stwerff.xs4all.nl>
00004    Part of the Moros Project http://moros.sourceforge.net/
00005 
00006    This program is free software; you can redistribute it and/or modify
00007    it under the terms of the GNU General Public License.
00008    This program is distributed in the hope that it will be useful,
00009    but WITHOUT ANY WARRANTY.
00010 
00011    See the COPYING file for more details.
00012 */
00013 #ifndef GAME_WINDOW_H
00014 #define GAME_WINDOW_H
00015 
00016 #include <gtkmm.h>
00017 #include <libglademm.h>
00018 #include <gtkmm/drawingarea.h>
00019 #include "../general/channel.h"
00020 
00021 #define slen_x 7
00022 #define slen_y 5
00023 
00024 class game_window;
00025 
00026 class draw_area : public Gtk::DrawingArea {
00027   public:
00028     draw_area(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade) :
00029       Gtk::DrawingArea(cobject), m_refGlade(refGlade) {}
00030     virtual ~draw_area() {};
00031     game_window *curr;
00032 
00033   protected:
00034     Glib::RefPtr<Gdk::Pixmap> background;
00035     void bg_image(string name, int x, int y);
00036     void calc_background();
00037     void move_background(int dir);
00038     void image(string name, int x, int y);
00039     virtual bool on_expose_event(GdkEventExpose* event);
00040     Glib::RefPtr<Gnome::Glade::Xml> m_refGlade;
00041 };
00042 
00043 class tile {
00044   public:
00045     tile() {
00046         terrain=0;
00047         fields=0;
00048         name="";
00049         citysize=0;
00050         wallsize=0;
00051         wall=0;
00052         moat=0;
00053     }
00054     unsigned int terrain : 4;
00055     unsigned char add[8];
00056     unsigned int fields: 8;
00057     std::string name;
00058     unsigned int citysize: 8;
00059     unsigned int castlesize: 8;
00060     unsigned int wallsize: 8;
00061     unsigned int wall: 2;
00062     unsigned int moat: 2;
00063 };
00064 
00065 class game_window : public Gtk::Window {
00066   public:
00067     game_window(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml> refGlade); 
00068     virtual ~game_window(); 
00069   private:
00070     tile map[slen_x*6+1][slen_y*6+1];
00071     int cx; 
00072     int cy; 
00073     int sx; 
00074     int sy; 
00075     void set_map(int x,int y,tile t);
00076     tile get_map(int x,int y);
00077   protected:
00078     Glib::RefPtr<Gnome::Glade::Xml> m_refGlade;
00079     draw_area* area;
00080     Gtk::TreeView* game_tree;
00081     void file_handler(std::string f);
00082     void game_handler(channel *ch);
00083     channel *ch;
00084 
00086     struct ModelColumns : public Gtk::TreeModelColumnRecord {
00087         Gtk::TreeModelColumn<Glib::ustring> name;
00088         Gtk::TreeModelColumn<Glib::ustring> descr;
00089         Gtk::TreeModelColumn<int> item_nr;
00090         ModelColumns()
00091         {
00092             add(name); add(descr);
00093             add(item_nr);
00094         }
00095     };
00096     const ModelColumns cols;
00097 };
00098 
00099 #endif //GAME_WINDOW_H
00100 


Generated on Tue Jan 1 17:30:00 2008 for client/game_window.h Source File by  doxygen   Visit the project page on SourceForge.net Logo