windstille-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Windstille-devel] rev 334 - trunk/src


From: Ingo Ruhnke
Subject: [Windstille-devel] rev 334 - trunk/src
Date: Sun, 16 May 2004 02:23:13 +0200

Author: grumbel
Date: 2004-05-16 02:23:13 +0200 (Sun, 16 May 2004)
New Revision: 334

Modified:
   trunk/src/SConstruct
   trunk/src/clanlib.i
   trunk/src/editor.cxx
   trunk/src/editor.py
   trunk/src/editor_map_component.cxx
   trunk/src/editor_map_component.hxx
   trunk/src/flexlay.cxx
   trunk/src/gui_manager.cxx
   trunk/src/paint_command.cxx
   trunk/src/paint_command.hxx
   trunk/src/tile_selector.hxx
Log:
- something to fix crash on exit

Modified: trunk/src/SConstruct
===================================================================
--- trunk/src/SConstruct        2004-05-15 23:27:44 UTC (rev 333)
+++ trunk/src/SConstruct        2004-05-16 00:23:13 UTC (rev 334)
@@ -1,7 +1,7 @@
 ## -*- mode: python -*-
 
 env = Environment(CXX = 'g++-3.3',
-                  CXXFLAGS = '-g -Wall',
+                  CXXFLAGS = '-g -O0 -Wall',
                   SWIGFLAGS='-c++ -python',
                   SHLIBPREFIX='')
 

Modified: trunk/src/clanlib.i
===================================================================
--- trunk/src/clanlib.i 2004-05-15 23:27:44 UTC (rev 333)
+++ trunk/src/clanlib.i 2004-05-16 00:23:13 UTC (rev 334)
@@ -9,92 +9,101 @@
 class CL_Point
 {
 public:
-  CL_Point(int x, int y)
-    : x(x), y(y) { }
-  int x;
-  int y;
+       CL_Point(int x, int y)
+               : x(x), y(y) { }
+       int x;
+       int y;
 };
 
 class CL_Rect
 {
 public:
-  int left;
-  int right;
-  int top;
-  int bottom;
+       int left;
+       int right;
+       int top;
+       int bottom;
 
-  CL_Rect(int, int, int, int);
-        CL_Rect(const CL_Point&, const CL_Size&);     
+       CL_Rect(int, int, int, int);
+       CL_Rect(const CL_Point&, const CL_Size&);     
 
-  int get_width() const;
-  int get_height() const;
+       int get_width() const;
+       int get_height() const;
 };
 
 class CL_Color
 {
 public:
-  CL_Color(unsigned int, unsigned int, unsigned int, unsigned int);
+       CL_Color(unsigned int, unsigned int, unsigned int, unsigned int);
 
-  void set_red  (unsigned int);
-  void set_blue (unsigned int);
-  void set_green(unsigned int);
-  void set_alpha(unsigned int);
+       void set_red  (unsigned int);
+       void set_blue (unsigned int);
+       void set_green(unsigned int);
+       void set_alpha(unsigned int);
 
-  unsigned int get_red  ();
-  unsigned int get_blue ();
-  unsigned int get_green();
-  unsigned int get_alpha();
+       unsigned int get_red  ();
+       unsigned int get_blue ();
+       unsigned int get_green();
+       unsigned int get_alpha();
 };
 
 class CL_Component
 {
+private:
+       ~CL_Component();
 public:
-  CL_Component(CL_Component* parent, CL_StyleManager* style = NULL);
-  
+       CL_Component(CL_Component* parent, CL_StyleManager* style = NULL);
 };
 
 class CL_Window : public CL_Component
 {
+private:
+       ~CL_Window();
 public:
-  CL_Window(
-            const CL_Rect &pos,
-            const std::string &title,
-            CL_Component *parent,
-            CL_StyleManager *style = NULL);
-  CL_Component* get_client_area();
+       CL_Window(
+               const CL_Rect &pos,
+               const std::string &title,
+               CL_Component *parent,
+               CL_StyleManager *style = NULL);
+       CL_Component* get_client_area();
 };
 
 class CL_Button : public CL_Component
 {
+private:
+       ~CL_Button();
 public:        
-  CL_Button(
-            const CL_Rect &pos,
-            const std::string &text,
-            CL_Component *parent,
-            CL_StyleManager *style = NULL);
+       CL_Button(
+               const CL_Rect &pos,
+               const std::string &text,
+               CL_Component *parent,
+               CL_StyleManager *style = NULL);
 
-  CL_Signal_v0 &sig_clicked();
+       CL_Signal_v0 &sig_clicked();
 };
 
 class CL_Menu : public CL_Component
 {
+private:
+       ~CL_Menu();
 public:
-  CL_Menu(
-          const CL_Rect &rect,
-          CL_Component *parent,
-          CL_StyleManager *style = NULL,
-          bool vertical=false);
+       CL_Menu(
+               const CL_Rect &rect,
+               CL_Component *parent,
+               CL_StyleManager *style = NULL,
+               bool vertical=false);
 
-  CL_Menu(
-          CL_Component *parent,
-          CL_StyleManager *style = NULL,
-          bool vertical=false);
-
-  CL_MenuNode *create_item( const std::string &path, const std::string 
&labels=std::string());
+       CL_Menu(
+               CL_Component *parent,
+               CL_StyleManager *style = NULL,
+               bool vertical=false);
+       
+       CL_MenuNode *create_item( const std::string &path, const std::string 
&labels=std::string());
 };
 
 class CL_MenuNode : public CL_Component
 {
+private:
+       ~CL_MenuNode();
 //! Construction:
 public:
        //: CL_MenuNode Constructor

Modified: trunk/src/editor.cxx
===================================================================
--- trunk/src/editor.cxx        2004-05-15 23:27:44 UTC (rev 333)
+++ trunk/src/editor.cxx        2004-05-16 00:23:13 UTC (rev 334)
@@ -43,14 +43,11 @@
 
   manager      = new GUIManager();
   tool_manager = new ToolManager();
-
-#ifdef SWIGGUILE
-  gh_load((datadir + "editor.scm").c_str());
-#endif
 }
 
 Editor::~Editor()
 {
+  delete tool_manager;
   delete manager;
 }
 

Modified: trunk/src/editor.py
===================================================================
--- trunk/src/editor.py 2004-05-15 23:27:44 UTC (rev 333)
+++ trunk/src/editor.py 2004-05-16 00:23:13 UTC (rev 334)
@@ -52,10 +52,10 @@
             data  = i[1:]
             id    = get_value_from_tree(['id', '_'], data, -1)
             image = get_value_from_tree(['editor-images', '_'], data, False)
-            
+
             if not(image):
                 image = get_value_from_tree(['images', '_'], data, 
"notile.png")
-                
+
             tileset.add_tile(id,
                              Tile(supertux_datadir + 'images/tilesets/' + 
image,
                                   CL_Color(255, 255, 255, 255),
@@ -73,11 +73,11 @@
     background  = None
 
     editormap = None
-    
+
     def __init__(self, filename):
         print "SuperTuxLevel:__init__"
         self.me = self
-        
+
         tree = sexpr_read_from_file(filename)
         data = tree[1:]
 
@@ -113,109 +113,115 @@
 
 flexlay.init()
 
-editor = Editor()
-gui = editor.get_gui_manager()
-
-editor_map = EditorMapComponent(CL_Rect(0, 0, 799, 599), gui.get_component())
-workspace  = Workspace(799, 599)
-editor_map.set_workspace(workspace)
-
-m = EditorMap()
-workspace.set_current_map(m)
 tileset = Tileset(32)
-tilemap = TilemapLayer(tileset, 20, 10)
-m.add_layer(tilemap.to_layer())
-tile = Tile("/home/ingo/cvs/supertux/supertux/data/images/tilesets/bonus1.png",
-            CL_Color(255, 255, 255, 255),
-            CL_Color(255,   0,   0, 128))
-tileset.add_tile(0, tile)
-tileset.add_tile(1, tile)
-tileset.add_tile(2, tile)
-
 load_game_tiles(tileset, 
"/home/ingo/cvs/supertux/supertux/data/images/tilesets/supertux.stgt")
 
-TilemapLayer_set_current(tilemap)
-tilemap_paint_tool_set_tilemap(tilemap)
+def do_editor():
+    editor = Editor()
+    gui = editor.get_gui_manager()
+    
+    editor_map = EditorMapComponent(CL_Rect(0, 0, 799, 599), 
gui.get_component())
+    workspace  = Workspace(799, 599)
+    editor_map.set_workspace(workspace)
+    
+    m = EditorMap()
+    workspace.set_current_map(m)
 
-editor_set_brush_tile(1)
+    tilemap = TilemapLayer(tileset, 20, 10)
+    m.add_layer(tilemap.to_layer())
+        
+    TilemapLayer_set_current(tilemap)
+    tilemap_paint_tool_set_tilemap(tilemap)
+    
+    editor_set_brush_tile(1)
+    
+    def foo():
+        print "---My Callback---"
+        gui.quit()
 
-def foo():
-    print "---My Callback---"
-    gui.quit()
+    g = None
 
-g = None
+    def draw_something():
+        print "Draw something"
+        brush = TileBrush(2, 2)
+        brush.set_opaque()
+        _ = PaintCommand(tilemap, brush)
+        _.add_point(CL_Point(1,1))
+        _.add_point(CL_Point(2,2))
+        _.add_point(CL_Point(3,3))
+        _.add_point(CL_Point(4,4))
+        _.execute()
+        g = _
+        print "Draw something done"
 
-def draw_something():
-    print "Draw something"
-    brush = TileBrush(2, 2)
-    brush.set_opaque()
-    _ = PaintCommand(tilemap, brush)
-    _.add_point(CL_Point(1,1))
-    _.add_point(CL_Point(2,2))
-    _.add_point(CL_Point(3,3))
-    _.add_point(CL_Point(4,4))
-    _.execute()
-    g = _
-    print "Draw something done"
+    window = CL_Window(CL_Rect(50, 50, 350, 300), "My Window", 
gui.get_component())
+        
+    gui.push_component(window)
+    button1 = CL_Button(CL_Rect(50, 50, 200, 75), "Quit", gui.get_component())
+    connect(button1.sig_clicked(), foo)
+    
+    button2 = CL_Button(CL_Rect(CL_Point(50, 100), CL_Size(150, 25)), "Draw", 
gui.get_component())
+    connect(button2.sig_clicked(), draw_something)
+    
+    def get_data():
+        print tilemap.get_data()
+        
+    def set_data():
+        tilemap.set_data((0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
0))
 
-window = CL_Window(CL_Rect(50, 50, 350, 300), "My Window", gui.get_component())
+    button3 = CL_Button(CL_Rect(CL_Point(50, 150), CL_Size(150, 25)), "Get 
Data", gui.get_component())
+    connect(button3.sig_clicked(), get_data)
+    
+    button4 = CL_Button(CL_Rect(CL_Point(50, 180), CL_Size(150, 25)), "Get 
Data", gui.get_component())
+    connect(button4.sig_clicked(), set_data)
+    
+    gui.pop_component()
+    
+    tileselectorw = CL_Window(CL_Rect(CL_Point(150, 150), CL_Size(210, 210)), 
"Tile Selector", gui.get_component())
+    tileselector = TileSelector(5, 3, tileselectorw.get_client_area())
+    tileselector.set_tileset(tileset)
+    tileselector.set_tiles(range(1,100))
 
-gui.push_component(window)
-button1 = CL_Button(CL_Rect(50, 50, 200, 75), "Quit", gui.get_component())
-connect(button1.sig_clicked(), foo)
+    class Menu(CL_Menu):
+        def __init__(self):
+            CL_Menu.__init__(self, gui.get_component())
 
-button2 = CL_Button(CL_Rect(CL_Point(50, 100), CL_Size(150, 25)), "Draw", 
gui.get_component())
-connect(button2.sig_clicked(), draw_something)
+        def add_item(self, name, func):
+                item = self.create_item(name)
+                connect(item.sig_clicked(), func)
 
-def get_data():
-    print tilemap.get_data()
+    level = None
+    def menu_file_open():
+        print "File/Open"
+        level = 
SuperTuxLevel('/home/ingo/cvs/supertux/supertux/data/levels/world1/level2.stl')
+        print "Loading done"
+        level.activate(workspace)
+        print "Activation done"
 
-def set_data():
-    tilemap.set_data((0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0))
+    def menu_file_save():
+        print "File/Save"
 
-button3 = CL_Button(CL_Rect(CL_Point(50, 150), CL_Size(150, 25)), "Get Data", 
gui.get_component())
-connect(button3.sig_clicked(), get_data)
+    def menu_file_save_as():
+        print "File/Save As"
 
-button4 = CL_Button(CL_Rect(CL_Point(50, 180), CL_Size(150, 25)), "Get Data", 
gui.get_component())
-connect(button4.sig_clicked(), set_data)
+    menu = Menu()
+    a = menu.add_item("File/Open...", menu_file_open)
+    a = menu.add_item("File/Save...", menu_file_save)
+    a = menu.add_item("File/Save As...", menu_file_save_as)
 
-gui.pop_component()
+    print "- entering main loop"
+    gui.run()
 
-tileselectorw = CL_Window(CL_Rect(CL_Point(150, 150), CL_Size(210, 210)), 
"Tile Selector", gui.get_component())
-tileselector = TileSelector(5, 3, tileselectorw.get_client_area())
-tileselector.set_tileset(tileset)
-tileselector.set_tiles(range(1,100))
+    del button1
+    del button2
+    del button3
+    del button4
+    del window
+    print "- exit main loop"
 
-class Menu(CL_Menu):
-    def __init__(self):
-        CL_Menu.__init__(self, gui.get_component())
+do_editor()
 
-    def add_item(self, name, func):
-        item = self.create_item(name)
-        connect(item.sig_clicked(), func)
-
-level = None
-def menu_file_open():
-    print "File/Open"
-    level = 
SuperTuxLevel('/home/ingo/cvs/supertux/supertux/data/levels/world1/level2.stl')
-    print "Loading done"
-    level.activate(workspace)
-    print "Activation done"
-
-def menu_file_save():
-    print "File/Save"
-
-def menu_file_save_as():
-    print "File/Save As"
-
-menu = Menu()
-a = menu.add_item("File/Open...", menu_file_open)
-a = menu.add_item("File/Save...", menu_file_save)
-a = menu.add_item("File/Save As...", menu_file_save_as)
-
-
-gui.run()
-
 flexlay.deinit()
+print "deinit done"
 
 # EOF #

Modified: trunk/src/editor_map_component.cxx
===================================================================
--- trunk/src/editor_map_component.cxx  2004-05-15 23:27:44 UTC (rev 333)
+++ trunk/src/editor_map_component.cxx  2004-05-16 00:23:13 UTC (rev 334)
@@ -46,6 +46,7 @@
 
 EditorMapComponent::~EditorMapComponent()
 {
+  std::cout << "~EditorMapComponent()" << std::endl;
 }
 
 Workspace

Modified: trunk/src/editor_map_component.hxx
===================================================================
--- trunk/src/editor_map_component.hxx  2004-05-15 23:27:44 UTC (rev 333)
+++ trunk/src/editor_map_component.hxx  2004-05-16 00:23:13 UTC (rev 334)
@@ -44,7 +44,13 @@
   static EditorMapComponent* current() { return current_; } 
 
   EditorMapComponent(const CL_Rect& rect, CL_Component* parent);
+#ifdef SWIGPYTHON
+private:
   ~EditorMapComponent();
+public:
+#else
+  ~EditorMapComponent();
+#endif
  
   Workspace get_workspace() const;
   void      set_workspace(Workspace m);

Modified: trunk/src/flexlay.cxx
===================================================================
--- trunk/src/flexlay.cxx       2004-05-15 23:27:44 UTC (rev 333)
+++ trunk/src/flexlay.cxx       2004-05-16 00:23:13 UTC (rev 334)
@@ -36,6 +36,8 @@
 void
 Flexlay::init()
 {
+  std::cout << "Flexlay::init()" << std::endl;
+
   CL_SetupCore::init();
 #ifdef HAVE_LIBSDL
   if (use_opengl)
@@ -58,6 +60,8 @@
 void
 Flexlay::deinit()
 {
+  std::cout << "Flexlay::deinit()" << std::endl;
+
   CL_SetupDisplay::deinit();
 
 #ifdef HAVE_LIBSDL

Modified: trunk/src/gui_manager.cxx
===================================================================
--- trunk/src/gui_manager.cxx   2004-05-15 23:27:44 UTC (rev 333)
+++ trunk/src/gui_manager.cxx   2004-05-16 00:23:13 UTC (rev 334)
@@ -105,6 +105,6 @@
 GUIManager::quit()
 {
   manager->quit(); 
-}
+} 
 
 /* EOF */

Modified: trunk/src/paint_command.cxx
===================================================================
--- trunk/src/paint_command.cxx 2004-05-15 23:27:44 UTC (rev 333)
+++ trunk/src/paint_command.cxx 2004-05-16 00:23:13 UTC (rev 334)
@@ -20,74 +20,98 @@
 #include <assert.h>
 #include <iostream>
 #include <sstream>
+#include <vector>
 #include <ClanLib/Core/core_iostream.h>
 #include <ClanLib/Core/Math/rect.h>
+#include "field.hxx"
 #include "tilemap_layer.hxx"
 #include "paint_command.hxx"
 
+class PaintCommandImpl
+{
+public:
+  typedef std::vector<CL_Point> Points;
+  Points points;
+  
+  TilemapLayer tilemap;
+  TileBrush    brush;
+
+  /** Copy of the field used to generate undo informations */
+  Field<int>   undo_field;
+
+  CL_Point     pos;
+  TileBrush*   redo_brush;
+  TileBrush*   undo_brush;
+};
+
 PaintCommand::PaintCommand(TilemapLayer t, const TileBrush& b)
-  : tilemap(t), brush(b)
+  : impl(new PaintCommandImpl())
 {  
-  undo_field = *(tilemap.get_field());
+  impl->tilemap = t;
+  impl->brush   = b;
 
-  redo_brush = 0;
-  undo_brush = 0;
+  impl->undo_field = *(impl->tilemap.get_field());
+
+  impl->redo_brush = 0;
+  impl->undo_brush = 0;
 }
 
 PaintCommand::~PaintCommand()
 {
-  delete redo_brush;
-  delete undo_brush;
+  delete impl->redo_brush;
+  delete impl->undo_brush;
 }
 
 void
 PaintCommand::add_point(const CL_Point& pos)
 {
-  points.push_back(pos);
-  tilemap.draw_tile(brush, pos);
+  impl->points.push_back(pos);
+  impl->tilemap.draw_tile(impl->brush, pos);
 }
 
 void
 PaintCommand::execute()
 {
-  assert(!points.empty());
+  assert(!impl->points.empty());
   
   // Calc bounding rect
-  CL_Rect rect(points.front().x, 
-               points.front().y, 
-               points.front().x + brush.get_width(),
-               points.front().y + brush.get_height());
+  CL_Rect rect(impl->points.front().x, 
+               impl->points.front().y, 
+               impl->points.front().x + impl->brush.get_width(),
+               impl->points.front().y + impl->brush.get_height());
 
-  for(Points::iterator i = points.begin(); i != points.end(); ++i)
+  for(PaintCommandImpl::Points::iterator i = impl->points.begin(); i != 
impl->points.end(); ++i)
     {
       rect.left   = std::min(rect.left,   (*i).x);
       rect.top    = std::min(rect.top,    (*i).y);
-      rect.right  = std::max(rect.right,  (*i).x + brush.get_width());
-      rect.bottom = std::max(rect.bottom, (*i).y + brush.get_height());
+      rect.right  = std::max(rect.right,  (*i).x + impl->brush.get_width());
+      rect.bottom = std::max(rect.bottom, (*i).y + impl->brush.get_height());
     }
   
-  pos.x = rect.left;
-  pos.y = rect.top;
+  impl->pos.x = rect.left;
+  impl->pos.y = rect.top;
 
-  redo_brush = new TileBrush(*(tilemap.get_field()), rect.get_width(), 
rect.get_height(), -pos.x, -pos.y);
-  undo_brush = new TileBrush(undo_field, rect.get_width(), rect.get_height(), 
-pos.x, -pos.y);
+  impl->redo_brush = new TileBrush(*(impl->tilemap.get_field()), 
rect.get_width(), rect.get_height(),
+                                   -impl->pos.x, -impl->pos.y);
+  impl->undo_brush = new TileBrush(impl->undo_field, rect.get_width(), 
rect.get_height(), 
+                                   -impl->pos.x, -impl->pos.y);
   
-  redo_brush->set_opaque();
-  undo_brush->set_opaque();
+  impl->redo_brush->set_opaque();
+  impl->undo_brush->set_opaque();
 
-  undo_field.clear();
+  impl->undo_field.clear();
 }
 
 void
 PaintCommand::redo()
 {
-  TilemapLayer::draw_tile(tilemap.get_field(), *redo_brush, pos);
+  TilemapLayer::draw_tile(impl->tilemap.get_field(), *impl->redo_brush, 
impl->pos);
 }
 
 void
 PaintCommand::undo()
 {
-  TilemapLayer::draw_tile(tilemap.get_field(), *undo_brush, pos);
+  TilemapLayer::draw_tile(impl->tilemap.get_field(), *impl->undo_brush, 
impl->pos);
 }
 
 std::string
@@ -95,8 +119,8 @@
 {
   std::stringstream s;
 
-  s << "_ = PaintCommand(" << &tilemap << ", " << &brush << ")" << std::endl;
-  for(Points::iterator i = points.begin(); i != points.end(); ++i)
+  s << "_ = PaintCommand(" << &impl->tilemap << ", " << &impl->brush << ")" << 
std::endl;
+  for(PaintCommandImpl::Points::iterator i = impl->points.begin(); i != 
impl->points.end(); ++i)
     {
       s << "_.add_paint(" << i->x << ", " << i->y << ")"  << std::endl;
     }

Modified: trunk/src/paint_command.hxx
===================================================================
--- trunk/src/paint_command.hxx 2004-05-15 23:27:44 UTC (rev 333)
+++ trunk/src/paint_command.hxx 2004-05-16 00:23:13 UTC (rev 334)
@@ -20,33 +20,19 @@
 #ifndef HEADER_PAINT_COMMAND_HXX
 #define HEADER_PAINT_COMMAND_HXX
 
-#include <vector>
 #include <ClanLib/Core/Math/point.h>
-#include "field.hxx"
 #include "tile_brush.hxx"
 #include "tilemap_layer.hxx"
 #include "command.hxx"
 
+class PaintCommandImpl;
+
 /** The PaintCommand provides functionality to draw onto an TileMap.
     The user needs to supply a brush and a map to draw to and the
     points to which should be drawn, undo, redo and the internals of
     drawing are handled by the PaintCommand itself. */
 class PaintCommand : public Command
 {
-private: 
-  typedef std::vector<CL_Point> Points;
-  Points points;
-  
-  TilemapLayer tilemap;
-  TileBrush    brush;
-
-  /** Copy of the field used to generate undo informations */
-  Field<int>   undo_field;
-
-  CL_Point     pos;
-  TileBrush*   redo_brush;
-  TileBrush*   undo_brush;
-  
 public:
   PaintCommand(TilemapLayer t, const TileBrush& b);
   virtual ~PaintCommand();
@@ -59,6 +45,9 @@
   void undo();
 
   std::string serialize();
+
+private:
+  CL_SharedPtr<PaintCommandImpl> impl;
 };
 
 #endif

Modified: trunk/src/tile_selector.hxx
===================================================================
--- trunk/src/tile_selector.hxx 2004-05-15 23:27:44 UTC (rev 333)
+++ trunk/src/tile_selector.hxx 2004-05-16 00:23:13 UTC (rev 334)
@@ -46,10 +46,15 @@
   Tiles tiles;
 
   Tileset* tileset;
+
+#ifdef SWIGPYTHON
+  ~TileSelector();
+#endif
 public:
   /** width and height in number of tiles */
   TileSelector(int width, int height, CL_Component* parent);
 
+
   void set_tileset(Tileset* t);
   void set_tiles(const Tiles& t);
   





reply via email to

[Prev in Thread] Current Thread [Next in Thread]