[gdlmm] update .gitignore



commit b85a9949285da7a81102fb504782203db4c6c92c
Author: Fabien Parent <parent f gmail com>
Date:   Wed Oct 14 17:34:26 2009 +0200

    update .gitignore
    update the example (remove all C code)
    fix the StyleSwitcher
    create init files
    add get_master method

 doc/reference/.gitignore         |    4 +-
 doc/reference/gdlmm-1.0.devhelp2 |  257 -----
 doc/reference/gdlmm-1.0.tag      | 1910 --------------------------------------
 examples/dock.cc                 |  140 ++--
 gdl/.gitignore                   |   16 +-
 gdl/gdlmm.h                      |    1 +
 gdl/gdlmm/dock.cc                |  342 -------
 gdl/gdlmm/dock.h                 |  278 ------
 gdl/gdlmm/dockbar.cc             |  202 ----
 gdl/gdlmm/dockbar.h              |  197 ----
 gdl/gdlmm/dockitem.cc            |  576 ------------
 gdl/gdlmm/dockitem.h             |  394 --------
 gdl/gdlmm/docklayout.cc          |  234 -----
 gdl/gdlmm/docklayout.h           |  200 ----
 gdl/gdlmm/dockmaster.cc          |  298 ------
 gdl/gdlmm/dockmaster.h           |  238 -----
 gdl/gdlmm/dockobject.cc          |  373 --------
 gdl/gdlmm/dockobject.h           |  354 -------
 gdl/gdlmm/dockplaceholder.cc     |  243 -----
 gdl/gdlmm/dockplaceholder.h      |  261 ------
 gdl/gdlmm/filelist.am            |    4 +-
 gdl/gdlmm/init.cc                |   36 +
 gdl/gdlmm/init.h                 |   34 +
 gdl/gdlmm/wrap_init.cc           |   79 --
 gdl/src/dockmaster.hg            |    5 +-
 gdl/src/dockobject.ccg           |    7 +
 gdl/src/dockobject.hg            |    2 +
 27 files changed, 157 insertions(+), 6528 deletions(-)
---
diff --git a/doc/reference/.gitignore b/doc/reference/.gitignore
index 005f07a..0d1ad88 100644
--- a/doc/reference/.gitignore
+++ b/doc/reference/.gitignore
@@ -1,5 +1,5 @@
 /Doxyfile
 /doxygen.log
-/skeletonmm-1.0.devhelp2
-/skeletonmm-1.0.tag
+/gdlmm-1.0.devhelp2
+/gdlmm-1.0.tag
 /html
diff --git a/examples/dock.cc b/examples/dock.cc
index a8ad046..d0ab69b 100644
--- a/examples/dock.cc
+++ b/examples/dock.cc
@@ -22,106 +22,77 @@
 #include <gdlmm.h>
 #include <gdl/gdl.h>
 
+
 Gtk::Widget* create_text_item(void)
 {
-	GtkWidget *vbox1;
-	GtkWidget *scrolledwindow1;
-	GtkWidget *text;
-
-	vbox1 = gtk_vbox_new (FALSE, 0);
-	gtk_widget_show (vbox1);
-
-	scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
-	gtk_widget_show (scrolledwindow1);
-	gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow1, TRUE, TRUE, 0);
-	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1),
-					GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-        gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1),
-                                             GTK_SHADOW_ETCHED_IN);
-	text = gtk_text_view_new ();
-        g_object_set (text, "wrap-mode", GTK_WRAP_WORD, NULL);
-	gtk_widget_show (text);
-	gtk_container_add (GTK_CONTAINER (scrolledwindow1), text);
-
-	return Glib::wrap(vbox1);
+	Gtk::VBox* vbox = new Gtk::VBox(false);
+	Gtk::TextView* text = new Gtk::TextView();
+	Gtk::ScrolledWindow* scrolledwindow = new Gtk::ScrolledWindow();
+	scrolledwindow->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
+	scrolledwindow->set_shadow_type(Gtk::SHADOW_ETCHED_IN);
+	scrolledwindow->add(*Gtk::manage(text));
+	vbox->pack_start(*Gtk::manage(scrolledwindow));
+	vbox->show_all();
+	
+	return Gtk::manage(vbox);
 }
 
-Gtk::Widget* create_item(const gchar *button_title)
+Gtk::Widget* create_item(const Glib::ustring& button_title)
 {
-	GtkWidget *vbox1;
-	GtkWidget *button1;
-
-	vbox1 = gtk_vbox_new (FALSE, 0);
-	gtk_widget_show (vbox1);
-
-	button1 = gtk_button_new_with_label (button_title);
-	gtk_widget_show (button1);
-	gtk_box_pack_start (GTK_BOX (vbox1), button1, TRUE, TRUE, 0);
-
-	return Glib::wrap(vbox1);
+	Gtk::VBox* vbox = new Gtk::VBox(false);
+	Gtk::Button* button = new Gtk::Button(button_title);
+	vbox->pack_start(*Gtk::manage(button));
+	vbox->show_all();
+	
+	return Gtk::manage(vbox);
 }
 
-void on_style_button_toggled(GtkRadioButton *button, GdlDock *dock)
+void on_style_button_toggled(Gtk::RadioButton* button, Gdl::Dock& dock, Gdl::SwitcherStyle style)
 {
-	gboolean active;
-	GdlDockMaster *master = GDL_DOCK_OBJECT_GET_MASTER (dock);
-	GdlSwitcherStyle style =
-		static_cast<GdlSwitcherStyle>(GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button),
-						    "__style_id")));
-	active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
-	if (active) {
-	    g_object_set (master, "switcher-style", style, NULL);
+	Glib::RefPtr<Gdl::DockMaster> master = dock.property_master();
+	if (button->get_active())
+	{
+		master->property_switcher_style() = style;
 	}
 }
 
-GtkWidget* create_style_button (GtkWidget *dock, GtkWidget *box, GtkWidget *group,
-		     GdlSwitcherStyle style, const gchar *style_text)
+Gtk::RadioButton* create_style_button(Gdl::Dock& dock, Gtk::VBox* box, Gtk::RadioButtonGroup* group, Gdl::SwitcherStyle style, const Glib::ustring& style_text)
 {
-	GdlSwitcherStyle current_style;
-	GtkWidget *button1;
-	GdlDockMaster *master = GDL_DOCK_OBJECT_GET_MASTER (dock);
-	
-	g_object_get (master, "switcher-style", &current_style, NULL);
-	button1 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (group),
-						   style_text);
-	gtk_widget_show (button1);
-	g_object_set_data (G_OBJECT (button1), "__style_id",
-			   GINT_TO_POINTER (style));
-	if (current_style == style) {
-	    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button1), TRUE);
+	Gdl::SwitcherStyle current_style;
+	Gtk::RadioButton* button;
+	if (group)
+		button = new Gtk::RadioButton(*group, style_text);
+	else
+		button = new Gtk::RadioButton(style_text);
+	
+	Glib::RefPtr<Gdl::DockMaster> master = dock.property_master();
+	current_style = master->property_switcher_style();
+	
+	if (current_style == style)
+	{
+		button->set_active(true);
 	}
-	g_signal_connect (button1, "toggled",
-			  G_CALLBACK (on_style_button_toggled),
-			  dock);
-	gtk_box_pack_start (GTK_BOX (box), button1, FALSE, FALSE, 0);
-	return button1;
+	
+	button->signal_toggled().connect(sigc::bind<Gtk::RadioButton*, Gdl::Dock&, Gdl::SwitcherStyle>(sigc::ptr_fun(&on_style_button_toggled), button, dock, style));
+	box->pack_start(*Gtk::manage(button), false, false);
+	return button;
 }
 
-Gtk::Widget* create_styles_item(GtkWidget *dock)
+Gtk::Widget* create_styles_item(Gdl::Dock& dock)
 {
-	GtkWidget *vbox1;
-	GtkWidget *group;
+	Gtk::VBox* vbox = new Gtk::VBox(false);
+	Gtk::RadioButtonGroup* group;
 	
-	vbox1 = gtk_vbox_new (FALSE, 0);
-	gtk_widget_show (vbox1);
-
-	group = create_style_button (dock, vbox1, NULL,
-				     GDL_SWITCHER_STYLE_ICON, "Only icon");
-	group = create_style_button (dock, vbox1, group,
-				     GDL_SWITCHER_STYLE_TEXT, "Only text");
-	group = create_style_button (dock, vbox1, group,
-				     GDL_SWITCHER_STYLE_BOTH,
-				     "Both icons and texts");
-	group = create_style_button (dock, vbox1, group,
-				     GDL_SWITCHER_STYLE_TOOLBAR,
-				     "Desktop toolbar style");
-	group = create_style_button (dock, vbox1, group,
-				     GDL_SWITCHER_STYLE_TABS,
-				     "Notebook tabs");
-	group = create_style_button (dock, vbox1, group,
-				     GDL_SWITCHER_STYLE_NONE,
-                                     "None of the above");
-	return Glib::wrap(vbox1);
+	group = &(create_style_button(dock, vbox, 0, Gdl::SWITCHER_STYLE_ICON, "Only icon")->get_group());
+	create_style_button(dock, vbox, group, Gdl::SWITCHER_STYLE_TEXT, "Only text");
+	create_style_button(dock, vbox, group, Gdl::SWITCHER_STYLE_BOTH, "Both icons and texts");
+	create_style_button(dock, vbox, group, Gdl::SWITCHER_STYLE_TOOLBAR, "Desktop toolbar style");
+	create_style_button(dock, vbox, group, Gdl::SWITCHER_STYLE_TABS, "Notebook tabs");
+	create_style_button(dock, vbox, group, Gdl::SWITCHER_STYLE_NONE, "None of the above");
+	
+	vbox->show_all();
+	
+	return Gtk::manage(vbox);
 }
 
 void button_dump_cb(Glib::RefPtr<Gdl::DockLayout> layout)
@@ -159,6 +130,7 @@ void save_layout_cb(Glib::RefPtr<Gdl::DockLayout> layout)
 int main(int argc, char** argv)
 {
 	Gtk::Main kit(argc, argv);
+	Gdl::init();
 	Gtk::Window window;
 	
 	window.set_title("Docking widget test");
@@ -184,7 +156,7 @@ int main(int argc, char** argv)
 	dock.add_item(*(items[0]), Gdl::DOCK_BOTTOM);
 	
 	item1.add(*create_text_item());
-	item2.add(*create_styles_item((GtkWidget*) dock.gobj()));
+	item2.add(*create_styles_item(dock));
 	item3.add(*create_item("Button 3"));
 	items[0]->add(*create_text_item());
 	
diff --git a/gdl/.gitignore b/gdl/.gitignore
index 6dd3485..5055445 100644
--- a/gdl/.gitignore
+++ b/gdl/.gitignore
@@ -1,6 +1,18 @@
 /gdlmmconfig.h
 /gdlmm-*.pc
-/gdlmm/gdl.cc
-/gdlmm/gdl.h
+/gdlmm/dock.cc
+/gdlmm/dock.h
+/gdlmm/dockbar.cc
+/gdlmm/dockbar.h
+/gdlmm/dockitem.cc
+/gdlmm/dockitem.h
+/gdlmm/docklayout.cc
+/gdlmm/docklayout.h
+/gdlmm/dockmaster.cc
+/gdlmm/dockmaster.h
+/gdlmm/dockobject.cc
+/gdlmm/dockobject.h
+/gdlmm/dockplaceholder.cc
+/gdlmm/dockplaceholder.h
 /gdlmm/wrap_init.cc
 /src/.stamps
diff --git a/gdl/gdlmm.h b/gdl/gdlmm.h
index 3492560..47fc082 100644
--- a/gdl/gdlmm.h
+++ b/gdl/gdlmm.h
@@ -20,6 +20,7 @@
  */
 
 
+#include <gdlmm/init.h>
 #include <gdlmm/dock.h>
 #include <gdlmm/dockbar.h>
 #include <gdlmm/dockitem.h>
diff --git a/gdl/gdlmm/filelist.am b/gdl/gdlmm/filelist.am
index e6fc821..ddde010 100644
--- a/gdl/gdlmm/filelist.am
+++ b/gdl/gdlmm/filelist.am
@@ -3,6 +3,6 @@
 files_built_cc = $(files_hg:.hg=.cc) wrap_init.cc
 files_built_h  = $(files_hg:.hg=.h)
 files_built_ph = $(patsubst %.hg,private/%_p.h,$(files_hg))
-files_extra_cc =
-files_extra_h  = wrap_init.h
+files_extra_cc = init.cc
+files_extra_h  = wrap_init.h init.h
 files_extra_ph =
diff --git a/gdl/gdlmm/init.cc b/gdl/gdlmm/init.cc
new file mode 100644
index 0000000..0b9bf0c
--- /dev/null
+++ b/gdl/gdlmm/init.cc
@@ -0,0 +1,36 @@
+/* Copyright (c) 2009  Fabien Parent <parent f gmail com>
+ *
+ * This file is part of gdlmm.
+ *
+ * gdlmm is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 2.1 of the License,
+ * or (at your option) any later version.
+ *
+ * gdlmm 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "init.h"
+#include <gtkmm/main.h>
+
+namespace Gdl
+{
+
+void init()
+{
+  static bool is_init = false;
+  if (!is_init)
+  {
+    Gtk::Main::init_gtkmm_internals();
+    Gdl::wrap_init();
+    is_init = true;
+  }
+}
+
+} // namespace Gdl
diff --git a/gdl/gdlmm/init.h b/gdl/gdlmm/init.h
new file mode 100644
index 0000000..ed0a288
--- /dev/null
+++ b/gdl/gdlmm/init.h
@@ -0,0 +1,34 @@
+// -*- c++ -*-
+#ifndef _GDLMM_INIT_H
+#define _GDLMM_INIT_H
+
+#include "wrap_init.h"
+
+/* Copyright (c) 2009  Fabien Parent <parent f gmail com>
+ *
+ * This file is part of gdlmm.
+ *
+ * gdlmm is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 2.1 of the License,
+ * or (at your option) any later version.
+ *
+ * gdlmm 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+namespace Gdl
+{
+
+void init() ;
+
+} // namespace Gdl
+
+#endif //_GDLMM_INIT_H
+
diff --git a/gdl/src/dockmaster.hg b/gdl/src/dockmaster.hg
index b231fc2..90a3630 100644
--- a/gdl/src/dockmaster.hg
+++ b/gdl/src/dockmaster.hg
@@ -22,12 +22,14 @@ _PINCLUDE(glibmm/private/object_p.h)
 #include <glibmm/object.h>
 #include "dockobject.h"
 
+#include <gdl/libgdltypebuiltins.h>
+
 namespace Gdl
 {
 
 _CC_INCLUDE(gdl/gdl-dock-master.h)
 
-_WRAP_ENUM(SwitcherStyle, GdlSwitcherStyle, NO_GTYPE)
+_WRAP_ENUM(SwitcherStyle, GdlSwitcherStyle)
 
 class DockMaster : public Glib::Object
 {
@@ -39,7 +41,6 @@ protected:
 public:
   _WRAP_CREATE()
   
-  
   _WRAP_METHOD(void add(DockObject& object), gdl_dock_master_add)
   
   _WRAP_METHOD(void remove(DockObject& object), gdl_dock_master_remove)
diff --git a/gdl/src/dockobject.ccg b/gdl/src/dockobject.ccg
index 5483836..118a494 100644
--- a/gdl/src/dockobject.ccg
+++ b/gdl/src/dockobject.ccg
@@ -19,6 +19,8 @@
 #include "dockmaster.h"
 #include <glibmm/object.h>
 
+#include <gdl/gdl-dock-master.h>
+
 namespace Gdl
 {
 
@@ -42,4 +44,9 @@ bool DockObject::reorder(DockObject& child, const Glib::ValueBase& other_data, D
   return gdl_dock_object_reorder(gobj(), child.gobj(), static_cast<GdlDockPlacement>(new_position), const_cast<GValue*>(other_data.gobj()));
 }
 
+Glib::RefPtr<DockMaster> DockObject::get_master()
+{
+	return Glib::wrap(GDL_DOCK_OBJECT_GET_MASTER(gobj()), true);
+}
+
 } // namespace Gdl
diff --git a/gdl/src/dockobject.hg b/gdl/src/dockobject.hg
index 5c2db53..7923b75 100644
--- a/gdl/src/dockobject.hg
+++ b/gdl/src/dockobject.hg
@@ -75,6 +75,8 @@ public:
   
   _WRAP_METHOD(bool child_placement(DockObject& child, DockPlacement placement = static_cast<DockPlacement>(DOCK_NONE)), gdl_dock_object_child_placement)
   
+  Glib::RefPtr<DockMaster> get_master();
+  
   
   _WRAP_PROPERTY("long-name", Glib::ustring)
   



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