Module: synfig
Branch: zelgadis_master
Commit: b11817a7154a704ce068400f22e7894e2e362ae0
URL:    
http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=b11817a7154a704ce068400f22e7894e2e362ae0

Author: Carlos Lopez <car...@pcnuevo.(none)>
Date:   Sat Jun 27 09:30:59 2009 +0200

Use toogleducksdial member pointer and do not expose the toggle buttons 
pointers outide. Create member methods instead

---

 synfig-studio/trunk/src/gtkmm/canvasview.cpp      |   13 ++++---------
 synfig-studio/trunk/src/gtkmm/canvasview.h        |    2 ++
 synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp |   11 +++++++++++
 synfig-studio/trunk/src/gtkmm/toggleducksdial.h   |   10 +++-------
 4 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp 
b/synfig-studio/trunk/src/gtkmm/canvasview.cpp
index 72ce50a..c7db107 100644
--- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp
+++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp
@@ -100,7 +100,6 @@
 #include "audiocontainer.h"
 #include "widget_timeslider.h"
 #include "keyframedial.h"
-#include "toggleducksdial.h"
 
 #include <synfigapp/main.h>
 #include <synfigapp/inputdevice.h>
@@ -1023,14 +1022,10 @@ CanvasView::create_time_bar()
        keyframebutton=keyframedial->get_lock_button();
 
        // Setup the ToggleDuckDial widget
-       ToggleDucksDial *toggleducksdial = Gtk::manage(new class 
ToggleDucksDial());
-
-       toggleducksdial->get_position_toggle()-> 
set_active(work_area->get_type_mask()&Duck::TYPE_POSITION);
-       toggleducksdial->get_vertex_toggle()  -> 
set_active(work_area->get_type_mask()&Duck::TYPE_VERTEX);
-       toggleducksdial->get_tangent_toggle() -> 
set_active(work_area->get_type_mask()&Duck::TYPE_TANGENT);
-       toggleducksdial->get_radius_toggle()  -> 
set_active(work_area->get_type_mask()&Duck::TYPE_RADIUS);
-       toggleducksdial->get_width_toggle()   -> 
set_active(work_area->get_type_mask()&Duck::TYPE_WIDTH);
-       toggleducksdial->get_angle_toggle()   -> 
set_active(work_area->get_type_mask()&Duck::TYPE_ANGLE);
+       toggleducksdial = Gtk::manage(new class ToggleDucksDial());
+
+       Duck::Type m = work_area->get_type_mask();
+       toggleducksdial->update_toggles(m);
 
        toggleducksdial->signal_ducks_position().connect(
                        sigc::bind(sigc::mem_fun(*this, 
&studio::CanvasView::toggle_duck_mask),Duck::TYPE_POSITION)
diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h 
b/synfig-studio/trunk/src/gtkmm/canvasview.h
index 2ed261e..182d3e6 100644
--- a/synfig-studio/trunk/src/gtkmm/canvasview.h
+++ b/synfig-studio/trunk/src/gtkmm/canvasview.h
@@ -66,6 +66,7 @@
 #include "dialog_waypoint.h"
 #include "dialog_keyframe.h"
 #include "framedial.h"
+#include "toggleducksdial.h"
 
 #include "duckmatic.h"
 #include <gtkmm/scale.h>
@@ -265,6 +266,7 @@ private:
        Gtk::Button *animatebutton;
        Gtk::Button *keyframebutton;
        FrameDial *framedial;
+       ToggleDucksDial *toggleducksdial;
 
 
        //! Shows current time and allows edition
diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp 
b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp
index 78aeab5..6dd67bc 100644
--- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp
+++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp
@@ -81,3 +81,14 @@ ToggleDucksDial::create_label_button(Gtk::IconSize iconsize, 
const char *label,
 
        return tbutton;
 }
+
+void
+ToggleDucksDial::initiate_toggles(Duck::Type mask)
+{
+       ducks_position-> set_active((mask & Duck::TYPE_POSITION));
+       ducks_vertex  -> set_active((mask & Duck::TYPE_VERTEX));
+       ducks_tangent -> set_active((mask & Duck::TYPE_TANGENT));
+       ducks_radius  -> set_active((mask & Duck::TYPE_RADIUS));
+       ducks_width   -> set_active((mask & Duck::TYPE_WIDTH));
+       ducks_angle   -> set_active((mask & Duck::TYPE_ANGLE));
+}
diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.h 
b/synfig-studio/trunk/src/gtkmm/toggleducksdial.h
index d2e50f2..312e3fd 100644
--- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.h
+++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.h
@@ -33,9 +33,11 @@
 #include <gtkmm/tooltips.h>
 #include <gtkmm/table.h>
 #include <gtkmm/togglebutton.h>
+#include "duckmatic.h"
 
 #include "general.h"
 
+
 /* === M A C R O S ========================================================= */
 
 /* === T Y P E D E F S ===================================================== */
@@ -61,6 +63,7 @@ class ToggleDucksDial : public Gtk::Table
 public:
 
        ToggleDucksDial();
+       void initiate_toggles(Duck::Type mask);
        Glib::SignalProxy0<void> signal_ducks_position()  { return 
ducks_position->signal_toggled(); }
        Glib::SignalProxy0<void> signal_ducks_vertex()    { return 
ducks_vertex->  signal_toggled(); }
        Glib::SignalProxy0<void> signal_ducks_tangent()   { return 
ducks_tangent-> signal_toggled(); }
@@ -68,13 +71,6 @@ public:
        Glib::SignalProxy0<void> signal_ducks_width()     { return 
ducks_width->   signal_toggled(); }
        Glib::SignalProxy0<void> signal_ducks_angle()     { return 
ducks_angle->   signal_toggled(); }
 
-       Gtk::ToggleButton * get_position_toggle() { return ducks_position; }
-       Gtk::ToggleButton * get_vertex_toggle()   { return ducks_vertex; }
-       Gtk::ToggleButton * get_tangent_toggle()  { return ducks_tangent; }
-       Gtk::ToggleButton * get_radius_toggle()   { return ducks_radius; }
-       Gtk::ToggleButton * get_width_toggle()    { return ducks_width; }
-       Gtk::ToggleButton * get_angle_toggle()    { return ducks_angle; }
-
 }; // END of class ToggleDucksDial
 
 }; // END of namespace studio


------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Synfig-devl mailing list
Synfig-devl@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to