pingus-cvs
[Top][All Lists]
Advanced

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

[Pingus-CVS] CVS: Games/Pingus/src/editor property_window.cxx,NONE,1.1 p


From: grumbel
Subject: [Pingus-CVS] CVS: Games/Pingus/src/editor property_window.cxx,NONE,1.1 property_window.hxx,NONE,1.1 Makefile.am,1.18,1.19 editor.cxx,1.11,1.12 editor.hxx,1.4,1.5 editor_event.cxx,1.14,1.15 editor_event.hxx,1.7,1.8 editor_help_screen.cxx,1.2,1.3 editorobj.hxx,1.5,1.6 entrance_window.hxx,1.1,1.2 groundpiece_window.cxx,1.2,1.3 groundpiece_window.hxx,1.2,1.3
Date: 30 Jun 2002 22:03:16 -0000

Update of /usr/local/cvsroot/Games/Pingus/src/editor
In directory dark:/tmp/cvs-serv22367/editor

Modified Files:
        Makefile.am editor.cxx editor.hxx editor_event.cxx 
        editor_event.hxx editor_help_screen.cxx editorobj.hxx 
        entrance_window.hxx groundpiece_window.cxx 
        groundpiece_window.hxx 
Added Files:
        property_window.cxx property_window.hxx 
Log Message:
- added a global property window, which gets the child frames from the EditorObj
- added ugly hook for selection changes

--- NEW FILE: property_window.cxx ---
//  $Id: property_window.cxx,v 1.1 2002/06/30 22:03:13 grumbel Exp $
//
//  Pingus - A free Lemmings clone
//  Copyright (C) 2000 Ingo Ruhnke <address@hidden>
//
//  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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

#include "../boost/smart_ptr.hpp"
#include "editorobj.hxx"
#include "property_window.hxx"

using namespace Pingus::Editor;

PropertyWindow::PropertyWindow (CL_Component* parent)
  : CL_Window (CL_Rect (0, 0, 200, 200), "Object Properties", parent),
    current_frame (0)
{
  
}

void
PropertyWindow::update_frame (boost::shared_ptr<EditorObj> obj)
{
  if (current_frame)
    remove_child (current_frame);
  
  if (obj.get ())
    {
      CL_Component* comp = obj->get_gui_dialog (this);
   
      if (comp)
        {
          // FIXME: This looks like a workaround for a missing feature in
          // FIXME: CL_Window
          comp->set_position (2, 22);

          std::cout << "Got GUI" << std::endl;
          current_frame = comp;
          set_client_size (comp->get_width (), comp->get_height ());
        }
      else
        {
          std::cout << "No GUI" << std::endl;
          current_frame = 0;
          set_client_size (200, 30);
        }
    }
  else
    {
      set_client_size (200, 30);
    }
}

/* EOF */

--- NEW FILE: property_window.hxx ---
//  $Id: property_window.hxx,v 1.1 2002/06/30 22:03:13 grumbel Exp $
// 
//  Pingus - A free Lemmings clone
//  Copyright (C) 2000 Ingo Ruhnke <address@hidden>
//
//  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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

#ifndef PINGUS_EDITOR_PROPERTY_WINDOW_HXX
#define PINGUS_EDITOR_PROPERTY_WINDOW_HXX

#include <ClanLib/gui.h>

class EditorObj;

namespace Pingus
{
  namespace Editor
  {
    class PropertyWindow : public CL_Window
    {
    private:
      CL_Component* current_frame;

    public:
      PropertyWindow (CL_Component* parent);

      void update_frame (boost::shared_ptr<EditorObj>);
    };
  }
}

#endif

/* EOF */

Index: Makefile.am
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/editor/Makefile.am,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- Makefile.am 29 Jun 2002 14:01:32 -0000      1.18
+++ Makefile.am 30 Jun 2002 22:03:13 -0000      1.19
@@ -37,6 +37,7 @@
 editorobj.cxx              rect_editorobj.cxx    weather_obj.cxx \
     scroll_map.cxx \
   sprite_editorobj.cxx editorobj_group.hxx editorobj_group.cxx \
-groundpiece_window.hxx groundpiece_window.cxx 
+groundpiece_window.hxx groundpiece_window.cxx \
+property_window.hxx property_window.cxx
 
 # EOF #

Index: editor.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/editor/editor.cxx,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- editor.cxx  30 Jun 2002 09:01:02 -0000      1.11
+++ editor.cxx  30 Jun 2002 22:03:13 -0000      1.12
@@ -46,6 +46,9 @@
 #include "object_selector.hxx"
 #include "object_manager.hxx"
 #include "action_window.hxx"
+#include "property_window.hxx"
+
+using namespace Pingus::Editor;
 
 Editor* Editor::instance_ = 0;
 
@@ -77,6 +80,7 @@
   gui   = new CL_GUIManager (style_manager);
 
   action_window = new ActionWindow (gui, object_manager->get_actions ());
+  property_window = new Pingus::Editor::PropertyWindow (gui);
 
   view = new EditorView (0, 0, CL_Display::get_width (), 
CL_Display::get_height (), 0, 0);
 
@@ -152,6 +156,8 @@
 
   register_event_handler();
 
+  std::list<boost::shared_ptr<EditorObj> > tmp_selection;
+
   while (!quit) 
     {
       // FIXME: This busy loop should be replaced by redraw events
@@ -159,12 +165,32 @@
       CL_System::keep_alive();
       move_objects();
       draw();
-      gui->show ();
-      //std::cout << "GUI has Focus: " << (gui->get_focus () !=  gui) << 
std::endl;
       if (get_gui_manager ()->get_focus () == get_gui_manager ())
        CL_Display::draw_rect (25, 0, CL_Display::get_width (), 
CL_Display::get_height (),
                               1.0f, 1.0f, 1.0f);
+      gui->show ();
+      //std::cout << "GUI has Focus: " << (gui->get_focus () !=  gui) << 
std::endl;
       Display::flip_display(true);
+
+      // FIXME: This should be moved to the object manager
+      if (tmp_selection != object_manager->current_objs)
+       {
+         std::cout << "Selection changed" << std::endl;
+         tmp_selection = object_manager->current_objs;
+
+         // FIXME: dirty hack
+         if (object_manager->current_objs.size() == 1)
+           {
+             boost::shared_ptr<EditorObj>  obj = 
*object_manager->current_objs.begin ();
+             property_window->update_frame (obj);
+             //CL_Component* comp = obj->get_gui_dialog 
(editor->property_window);
+           }
+         else
+           {
+             property_window->update_frame (boost::shared_ptr<EditorObj>());
+             std::cout << "EditorEvent::editor_show_object_properties (): 
error: multiple objects selected" << std::endl;
+           }
+       }
     }
 
   unregister_event_handler();
@@ -177,31 +203,35 @@
 Editor::draw ()
 {
   CL_Display::clear_display();
+
   object_manager->draw(view);
   panel->draw();
 
   /*  {
-    int x1_pos = CL_Display::get_width() - 200;
-    int y1_pos = CL_Display::get_height() - 150;
-    int x2_pos = CL_Display::get_width() - 1;
-    int y2_pos = CL_Display::get_height() - 1;
-    int width  = (CL_Display::get_width() - 25) * 200 / object_manager.width;
-    int height = CL_Display::get_height() * 150 / object_manager.height;;
+      int x1_pos = CL_Display::get_width() - 200;
+      int y1_pos = CL_Display::get_height() - 150;
+      int x2_pos = CL_Display::get_width() - 1;
+      int y2_pos = CL_Display::get_height() - 1;
+      int width  = (CL_Display::get_width() - 25) * 200 / object_manager.width;
+      int height = CL_Display::get_height() * 150 / object_manager.height;;
 
-    Display::draw_rect(x1_pos, y1_pos , x2_pos, y2_pos,
-                      1.0, 1.0, 1.0, 1.0);
+      Display::draw_rect(x1_pos, y1_pos , x2_pos, y2_pos,
+      1.0, 1.0, 1.0, 1.0);
 
-    Display::draw_rect(x1_pos - (object_manager.x_offset * 200 / 
object_manager.width),
-                      y1_pos - (object_manager.y_offset * 150 / 
object_manager.height),
-                      x1_pos - (object_manager.x_offset * 200 / 
object_manager.width) + width,  
-                      y1_pos - (object_manager.y_offset * 150 / 
object_manager.height) + height,
-                      1.0, 1.0, 1.0, 1.0);
-                      }*/
+      Display::draw_rect(x1_pos - (object_manager.x_offset * 200 / 
object_manager.width),
+      y1_pos - (object_manager.y_offset * 150 / object_manager.height),
+      x1_pos - (object_manager.x_offset * 200 / object_manager.width) + width, 
 
+      y1_pos - (object_manager.y_offset * 150 / object_manager.height) + 
height,
+      1.0, 1.0, 1.0, 1.0);
+      }*/
 
   status_line->draw(view);
   scroll_map->draw();
+    
   if (show_help_screen)
-    help_screen.draw ();
+    {
+      help_screen.draw ();
+    }
 }
 
 

Index: editor.hxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/editor/editor.hxx,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- editor.hxx  29 Jun 2002 11:54:22 -0000      1.4
+++ editor.hxx  30 Jun 2002 22:03:13 -0000      1.5
@@ -34,6 +34,15 @@
 class ObjectSelector;
 class StatusLine;
 class ActionWindow;
+
+namespace Pingus 
+{
+  namespace Editor
+  {
+    class PropertyWindow;
+  }
+}
+
 class CL_StyleManager_Default;
 class CL_GUIManager;
 
@@ -71,7 +80,8 @@
   CL_StyleManager_Default* style_manager;
   CL_GUIManager* gui;
 
-  ActionWindow* action_window;
+  ActionWindow*   action_window;
+  Pingus::Editor::PropertyWindow* property_window;
 
   enum { SELECTOR_TOOL, ZOOM_TOOL } tool;
 

Index: editor_event.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/editor/editor_event.cxx,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- editor_event.cxx    29 Jun 2002 16:04:22 -0000      1.14
+++ editor_event.cxx    30 Jun 2002 22:03:13 -0000      1.15
@@ -44,10 +44,21 @@
 #include "object_selector.hxx"
 #include "editor.hxx"
 #include "action_window.hxx"
+#include "property_window.hxx"
 
 EditorEvent::EditorEvent()
   : is_enabled (1)
 {
+  for (float i = 0; i < 1.0f; i += 0.1f)
+    background_colors.push_back (Color (i, i, i));
+
+  background_colors.push_back (Color (1.0, 1.0, 0.0));
+  background_colors.push_back (Color (0.0, 1.0, 1.0));
+  background_colors.push_back (Color (1.0, 0.0, 1.0));
+
+  background_colors.push_back (Color (0.0, 1.0, 0.0));
+  background_colors.push_back (Color (1.0, 0.0, 0.0));
+  background_colors.push_back (Color (0.0, 0.0, 1.0));
 }
 
 EditorEvent::~EditorEvent()
@@ -179,19 +190,6 @@
          editor_mark_all_objects();
          break;
     
-         // Select another background.
-       case CL_KEY_F10:
-         {
-           // FIXME
-           std::cout << "EditorEvent: Background setting is currently not 
supported" << std::endl;
-           /*
-           SurfaceBackgroundData* sur_bg;
-           if ((sur_bg = 
dynamic_cast<SurfaceBackgroundData*>(*(object_manager->backgrounds.begin()))) 
!= 0)
-             sur_bg->desc.res_name = editor->object_selector->get_background();
-           */
-         }
-         break;
-
          /*    case CL_KEY_F11:
          CL_Display::set_videomode(screen_width, screen_height, 16, 
                                    fullscreen_enabled, 
@@ -493,15 +491,19 @@
 void
 EditorEvent::editor_toggle_background_color()
 {
-  object_manager->bg.red   += 0.1f;
-  object_manager->bg.green += 0.1f;
-  object_manager->bg.blue  += 0.1f;
-      
-  if (object_manager->bg.red > 1.0f) 
+  std::vector<Color>::iterator i = 
+    std::find(background_colors.begin (), background_colors.end (), 
object_manager->bg);
+
+  if (i == background_colors.end ())
+    object_manager->bg = *background_colors.begin ();
+  else
     {
-      object_manager->bg.red   = 0.0f;
-      object_manager->bg.green = 0.0f;
-      object_manager->bg.blue  = 0.0f;
+      ++i;
+
+      if (i == background_colors.end ())
+       object_manager->bg = *background_colors.begin ();
+      else
+       object_manager->bg = *i;
     }
 }
 
@@ -838,23 +840,10 @@
 void
 EditorEvent::editor_show_object_properties ()
 {
-  if (object_manager->current_objs.size() == 1)
-    {
-      boost::shared_ptr<EditorObj>  obj = *object_manager->current_objs.begin 
();
-      CL_Component* comp = obj->get_gui_dialog (editor->get_gui_manager ());
-      if (comp)
-       {
-         std::cout << "Got gui" << std::endl;
-       }
-      else
-       {
-         std::cout << "GUI for object not available: " << comp << std::endl;
-       }
-    }
+  if (editor->property_window->is_visible ())
+    editor->property_window->show (false);
   else
-    {
-      std::cout << "EditorEvent::editor_show_object_properties (): error: 
multiple objects selected" << std::endl;
-    }
+    editor->property_window->show (true);
 }
 
 bool

Index: editor_event.hxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/editor/editor_event.hxx,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- editor_event.hxx    29 Jun 2002 16:04:22 -0000      1.7
+++ editor_event.hxx    30 Jun 2002 22:03:13 -0000      1.8
@@ -20,18 +20,21 @@
 #ifndef HEADER_PINGUS_EDITOR_EDITOR_EVENT_HXX
 #define HEADER_PINGUS_EDITOR_EDITOR_EVENT_HXX
 
+#include "../color.hxx"
+
 class CL_Key;
 class CL_Font;
 class CL_InputDevice;
 class Editor;
 class ObjectManager;
 
-
 class EditorEvent //: public CL_Event_ButtonPress, public 
CL_Event_ButtonRelease
 {
 private:
   int is_enabled;
   CL_Font* font;
+
+  std::vector<Color> background_colors;
 
 public:
   EditorEvent();

Index: editor_help_screen.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/editor/editor_help_screen.cxx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- editor_help_screen.cxx      22 Jun 2002 17:40:56 -0000      1.2
+++ editor_help_screen.cxx      30 Jun 2002 22:03:13 -0000      1.3
@@ -35,7 +35,7 @@
 {
   CL_Display::fill_rect (0,0, CL_Display::get_width (), CL_Display::get_height 
(),
                         0.0f, 0.0f, 0.0f, 0.5f);
-  large_font->print_center (CL_Display::get_width ()/2, 32, "Helpscreen (hide 
with F1)");
+  large_font->print_center (CL_Display::get_width ()/2, 32, "Editor Helpscreen 
(hide with F1)");
 
   int x_pos;
   int y_pos;
@@ -51,7 +51,7 @@
   font->print_left (x_pos, y_pos + 120, _("F7 - [unset]"));
   font->print_left (x_pos, y_pos + 140, _("F8 - quick save/backup save?!"));
   font->print_left (x_pos, y_pos + 160, _("F9 - change level width and 
height"));
-  font->print_left (x_pos, y_pos + 180, _("F10 - set/configure background"));
+  font->print_left (x_pos, y_pos + 180, _("F10 - [unset]"));
   font->print_left (x_pos, y_pos + 200, _("F11 - toggle fps counter"));
   font->print_left (x_pos, y_pos + 220, _("F12 - make screenshot"));
 
@@ -70,7 +70,7 @@
   font->print_left (x_pos, y_pos + 200, _("a - mark all objects"));
   font->print_left (x_pos, y_pos + 220, _("shift leftmouseclick - add object 
to selection"));
   font->print_left (x_pos, y_pos + 240, _("leftmouseclick - select object"));
-  font->print_left (x_pos, y_pos + 260, _("Insert - insert selected object"));
+  font->print_left (x_pos, y_pos + 260, _("Insert - insert new object"));
   font->print_left (x_pos, y_pos + 280, _("Remove - remove selected object"));
   font->print_left (x_pos, y_pos + 300, _("g - ungroup/group current 
selection"));
   font->print_left (x_pos, y_pos + 320, _("Ctrl PageUp   - increase objects 
z-pos by 1"));

Index: editorobj.hxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/editor/editorobj.hxx,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- editorobj.hxx       29 Jun 2002 11:54:22 -0000      1.5
+++ editorobj.hxx       30 Jun 2002 22:03:13 -0000      1.6
@@ -109,7 +109,11 @@
       object */
   virtual boost::shared_ptr<EditorObj> duplicate() =0;
 
-  /** */
+  /** Return a pointer to a CL_Component which can be used to
+      manipulate the properties of this gameobject. The caller is
+      responsible for deleting the object after usage. The
+      CL_Component* should/must be a CL_Frame so that it can get
+      embedded in the properties window */
   virtual CL_Component* get_gui_dialog (CL_Component* parent);
 };
 

Index: entrance_window.hxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/editor/entrance_window.hxx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- entrance_window.hxx 28 Jun 2002 22:21:59 -0000      1.1
+++ entrance_window.hxx 30 Jun 2002 22:03:13 -0000      1.2
@@ -20,17 +20,15 @@
 #ifndef HEADER_PINGUS_EDITOR_ENTRANCE_WINDOW_HXX
 #define HEADER_PINGUS_EDITOR_ENTRANCE_WINDOW_HXX
 
-namespace Pingus
+namespace Editor
 {
-  namespace Editor
+  class EntranceWindow : public CL_Window
   {
-    class EntranceWindow
-    {
-    private:
-
-    public:
-    };
-  }
+  private:
+    
+  public:
+    EntranceWindow ();
+  };
 }
 
 #endif

Index: groundpiece_window.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/editor/groundpiece_window.cxx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- groundpiece_window.cxx      29 Jun 2002 11:54:22 -0000      1.2
+++ groundpiece_window.cxx      30 Jun 2002 22:03:13 -0000      1.3
@@ -31,20 +31,99 @@
 
 using namespace Pingus::Editor;
 
-GroundpieceWindow::GroundpieceWindow (CL_Component* parent,  
EditorGroundpieceObj* data)
-  : CL_Window (CL_Rect (0, 0, 200, 300), "Groundpiece Properties", parent),
+GroundpieceWindow::GroundpieceWindow (CL_Component* parent,  
EditorGroundpieceObj* arg_data)
+  : CL_Frame (CL_Rect (0, 0, 200, 180), /* "Groundpiece Properties",*/ parent),
+    data (arg_data),
     convert_to_hotspot_button (CL_Rect (10, 30, 190, 30 + 20), "Convert to 
HotSpot", this),
 
     groundtype_label (CL_Rect (10, 60, 90, 60 + 20), "Groundtype", this),
-    groundtype_listbox (CL_Rect (110, 60, 190, 60 + 60), this),
+    //groundtype_listbox (CL_Rect (110, 60, 190, 60 + 60), this),
+
+    ground_radiobutton (CL_Point (110, 60), "ground", this),
+    transparent_radiobutton (CL_Point (110, 80), "transparent", this),
+    solid_radiobutton (CL_Point (110, 100), "solid", this),
+    bridge_radiobutton (CL_Point (110, 120), "bridge", this),
 
     ok_button (CL_Rect (10, 150, 90, 150 + 20), "Ok", this),
     cancel_button (CL_Rect (110, 150, 190, 150 + 20), "Cancel", this)
 {
-  groundtype_listbox.insert_item ("ground");
-  groundtype_listbox.insert_item ("transparent");
-  groundtype_listbox.insert_item ("bridge");
-  groundtype_listbox.insert_item ("solid");
+  //groundtype_listbox.insert_item ("ground");
+  //groundtype_listbox.insert_item ("transparent");
+  //groundtype_listbox.insert_item ("bridge");
+  //groundtype_listbox.insert_item ("solid");
+  groundtype_group.add (&ground_radiobutton);
+  groundtype_group.add (&transparent_radiobutton);
+  groundtype_group.add (&solid_radiobutton);
+  groundtype_group.add (&bridge_radiobutton);
+
+  ok_button_slot     = ok_button.sig_clicked ().connect (this, 
&GroundpieceWindow::ok_clicked);
+  cancel_button_slot = cancel_button.sig_clicked ().connect (this, 
&GroundpieceWindow::cancel_clicked);
+
+  convert_to_hotspot_button_slot
+    = convert_to_hotspot_button.sig_clicked ().connect (this, 
&GroundpieceWindow::convert_to_hotspot);
+
+  read_data ();
+}
+
+void 
+GroundpieceWindow::ok_clicked ()
+{
+  std::cout << "OK Clicked" << std::endl;
+  write_data ();
+  show (false);
+}
+
+void
+GroundpieceWindow::cancel_clicked ()
+{
+  std::cout << "Cancel Clicked" << std::endl;
+  show (false);
+}
+
+void
+GroundpieceWindow::convert_to_hotspot ()
+{
+  // not implemented
+}
+
+void
+GroundpieceWindow::read_data ()
+{
+  switch (data->gptype)
+    {
+    case GroundpieceData::GP_SOLID:
+      solid_radiobutton.set_checked (true);
+      break;
+    case GroundpieceData::GP_BRIDGE:
+      bridge_radiobutton.set_checked (true);
+      break;
+    case GroundpieceData::GP_TRANSPARENT:
+      transparent_radiobutton.set_checked (true);
+      break;
+    case GroundpieceData::GP_GROUND:
+      ground_radiobutton.set_checked (true);
+      break;
+    default:
+      std::cout << "Unhandled" << std::endl;
+      break;
+    }
+}
+
+void
+GroundpieceWindow::write_data ()
+{
+  if (ground_radiobutton.is_checked ())
+    data->gptype = GroundpieceData::GP_GROUND;
+  else if (transparent_radiobutton.is_checked ())
+    data->gptype = GroundpieceData::GP_TRANSPARENT;
+  else if (solid_radiobutton.is_checked ())
+    data->gptype = GroundpieceData::GP_SOLID;
+  else if (bridge_radiobutton.is_checked ())
+    data->gptype = GroundpieceData::GP_BRIDGE;
+  else
+    {
+      std::cout << "Unhandled" << std::endl;
+    }
 }
 
 /* EOF */

Index: groundpiece_window.hxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/editor/groundpiece_window.hxx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- groundpiece_window.hxx      29 Jun 2002 11:54:22 -0000      1.2
+++ groundpiece_window.hxx      30 Jun 2002 22:03:13 -0000      1.3
@@ -27,23 +27,38 @@
 {
   namespace Editor
   {
-    class GroundpieceWindow : public CL_Window
+    class GroundpieceWindow : public CL_Frame
     {
     private:
-      GroundpieceData* data;
+      EditorGroundpieceObj* data;
 
       CL_Button convert_to_hotspot_button;
 
       CL_Label  groundtype_label;
-      CL_ListBox groundtype_listbox;
+      //CL_ListBox groundtype_listbox;
+
+      CL_RadioGroup groundtype_group;
+      CL_RadioButton ground_radiobutton;
+      CL_RadioButton transparent_radiobutton;
+      CL_RadioButton solid_radiobutton;
+      CL_RadioButton bridge_radiobutton;
 
       CL_Button ok_button;
       CL_Button cancel_button;
       
       CL_Slot ok_button_slot;
       CL_Slot cancel_button_slot;
+      CL_Slot convert_to_hotspot_button_slot;
+
     public:
       GroundpieceWindow (CL_Component* parent,  EditorGroundpieceObj* data);
+
+      void ok_clicked ();
+      void cancel_clicked ();
+      void convert_to_hotspot ();
+
+      void read_data ();
+      void write_data ();
     };
   }
 }




reply via email to

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