[glom] Use ToolGroupItem as C++.



commit a03382a47bb294fe495418770b05f52a23b192d7
Author: Murray Cumming <murrayc murrayc com>
Date:   Tue Dec 22 15:46:58 2009 +0100

    Use ToolGroupItem as C++.

 .../data_structure/layout/fieldformatting.cc       |    1 +
 .../print_layouts/print_layout_toolbar.cc          |   24 ++++++++++----------
 .../print_layouts/print_layout_toolbar.h           |    3 ++
 glom/utility_widgets/flowtable_dnd.cc              |   22 ++++++++----------
 glom/utility_widgets/layouttoolbar.cc              |   22 +++++++++---------
 glom/utility_widgets/layouttoolbar.h               |    2 +
 glom/utility_widgets/sidebar.cc                    |   11 ++++-----
 glom/utility_widgets/sidebar.h                     |    6 ++--
 8 files changed, 47 insertions(+), 44 deletions(-)
---
diff --git a/glom/libglom/data_structure/layout/fieldformatting.cc b/glom/libglom/data_structure/layout/fieldformatting.cc
index 10228cc..4a27cb2 100644
--- a/glom/libglom/data_structure/layout/fieldformatting.cc
+++ b/glom/libglom/data_structure/layout/fieldformatting.cc
@@ -20,6 +20,7 @@
 
 #include "fieldformatting.h"
 #include <libglom/data_structure/layout/fieldformatting.h>
+#include <libglom/data_structure/glomconversions.h>
 #include <glibmm/i18n.h>
 
 const guint MULTILINE_TEXT_DEFAULT_HEIGHT_LINES = 6;
diff --git a/glom/mode_design/print_layouts/print_layout_toolbar.cc b/glom/mode_design/print_layouts/print_layout_toolbar.cc
index 061f0a7..0235aa8 100644
--- a/glom/mode_design/print_layouts/print_layout_toolbar.cc
+++ b/glom/mode_design/print_layouts/print_layout_toolbar.cc
@@ -31,6 +31,9 @@ namespace Glom
 {
 
 PrintLayoutToolbar::PrintLayoutToolbar()
+:  m_group_items(_("Items")), 
+   m_group_lines(_("Lines")), 
+   m_group_records(_("Records"))
 {
   // Looks ugly otherwise:
   set_size_request(100, 200);
@@ -57,23 +60,20 @@ PrintLayoutToolbar::PrintLayoutToolbar()
                                         _("Related Records"), _("Drag this to the layout to add a new related records portal.")));
   
   //Note for translators: These are layout items, like widgets in GTK+.
-  GtkContainer* items_group = GTK_CONTAINER(gtk_tool_item_group_new(_("Items")));
-  gtk_container_add(items_group, GTK_WIDGET(drag_field->gobj()));
-  gtk_container_add(items_group, GTK_WIDGET(drag_text->gobj()));
-  gtk_container_add(items_group, GTK_WIDGET(drag_image->gobj()));
+  m_group_items.add(*drag_field);
+  m_group_items.add(*drag_text);
+  m_group_items.add(*drag_image);
 
   //Note for translators: These are layout items, like widgets in GTK+.
-  GtkContainer* lines_group = GTK_CONTAINER(gtk_tool_item_group_new(_("Lines")));
-  gtk_container_add(lines_group, GTK_WIDGET(drag_line_horizontal->gobj()));
-  gtk_container_add(lines_group, GTK_WIDGET(drag_line_vertical->gobj()));
+  m_group_lines.add(*drag_line_horizontal);
+  m_group_lines.add(*drag_line_vertical);
   
   //Note for translators: These are layout items, like widgets in GTK+.
-  GtkContainer* related_group = GTK_CONTAINER(gtk_tool_item_group_new(_("Records")));
-  gtk_container_add(related_group, GTK_WIDGET(drag_related_records->gobj()));
+  m_group_records.add(*drag_related_records);
 
-  add_group(GTK_TOOL_ITEM_GROUP(items_group));
-  add_group(GTK_TOOL_ITEM_GROUP(lines_group));
-  add_group(GTK_TOOL_ITEM_GROUP(related_group));
+  add_group(m_group_items);
+  add_group(m_group_lines);
+  add_group(m_group_records);
 
   set_drag_source();
   
diff --git a/glom/mode_design/print_layouts/print_layout_toolbar.h b/glom/mode_design/print_layouts/print_layout_toolbar.h
index 1e123de..54b199f 100644
--- a/glom/mode_design/print_layouts/print_layout_toolbar.h
+++ b/glom/mode_design/print_layouts/print_layout_toolbar.h
@@ -24,6 +24,7 @@
 #include <gtkmm/window.h>
 #include <gtkmm/handlebox.h>
 #include <gtkmm/box.h>
+#include <gtkmm/toolitemgroup.h>
 
 #include <glom/utility_widgets/sidebar.h>
 
@@ -36,6 +37,8 @@ public:
   PrintLayoutToolbar();
   virtual ~PrintLayoutToolbar();
 
+private:
+  Gtk::ToolItemGroup m_group_items, m_group_lines, m_group_records;
 };
 
 } //namespace Glom
diff --git a/glom/utility_widgets/flowtable_dnd.cc b/glom/utility_widgets/flowtable_dnd.cc
index 7bb47cb..e45f799 100644
--- a/glom/utility_widgets/flowtable_dnd.cc
+++ b/glom/utility_widgets/flowtable_dnd.cc
@@ -144,7 +144,7 @@ bool FlowTableDnd::on_drag_motion(const Glib::RefPtr<Gdk::DragContext>& /* drag_
   y += get_allocation().get_y();
   
   m_current_dnd_item = dnd_item_at_position(x, y);  
-  Gtk::Widget* above = dnd_datawidget_from_item(0);
+  Gtk::Widget* above = dnd_datawidget_from_item(m_current_dnd_item);
 
   // above might be 0 here...
   on_dnd_add_placeholder(above);
@@ -187,12 +187,15 @@ void FlowTableDnd::on_drag_data_received(const Glib::RefPtr<Gdk::DragContext>& d
   }
   
   on_dnd_remove_placeholder();
-  Gtk::Widget* above = dnd_datawidget_from_item(0);
-  if(palette)
+  Gtk::Widget* above = dnd_datawidget_from_item(m_current_dnd_item);
+  if(palette) //If the item was dragged from the palette.
   {
     Gtk::Widget* tool_item = palette->get_drag_item(selection_data);
-    const int type = GPOINTER_TO_INT(tool_item->get_data("glom-type"));
-    on_dnd_add_layout_item_by_type(type, above);
+    if(tool_item)
+    {
+      const int type = GPOINTER_TO_INT(tool_item->get_data("glom-type"));
+      on_dnd_add_layout_item_by_type(type, above);
+    }
   }
   else
   {
@@ -226,7 +229,6 @@ void FlowTableDnd::on_drag_data_received(const Glib::RefPtr<Gdk::DragContext>& d
         base->set_dnd_in_progress(false);
       }
     }
-
   }
 }
 
@@ -285,11 +287,7 @@ Gtk::Widget* FlowTableDnd::dnd_datawidget_from_item(FlowTable::FlowTableItem* it
 {
   // Test if we have a datawidget below which we want to add
   LayoutWidgetBase* above = 0;
-  FlowTableItem* used_item = 0;
-  if(item)
-    used_item = item;
-  else
-    used_item = m_current_dnd_item;
+  FlowTableItem* used_item = item;
   
   if(used_item)
   {
@@ -384,7 +382,7 @@ bool FlowTableDnd::on_child_drag_motion(const Glib::RefPtr<Gdk::DragContext>& /*
 {
   m_current_dnd_item = find_current_dnd_item(child, x, y);
   
-  Gtk::Widget* above = dnd_datawidget_from_item(0);
+  Gtk::Widget* above = dnd_datawidget_from_item(m_current_dnd_item);
   
   // above might be 0 here...
   on_dnd_add_placeholder(above);
diff --git a/glom/utility_widgets/layouttoolbar.cc b/glom/utility_widgets/layouttoolbar.cc
index 51a73f7..9af4117 100644
--- a/glom/utility_widgets/layouttoolbar.cc
+++ b/glom/utility_widgets/layouttoolbar.cc
@@ -49,6 +49,8 @@ namespace Glom
 {
 
 LayoutToolbar::LayoutToolbar()
+:  m_group_items(_("Items")), 
+   m_group_containers(_("Containers"))
 {
   // Looks ugly otherwise:
   set_size_request(100, 200);
@@ -79,20 +81,18 @@ LayoutToolbar::LayoutToolbar()
   //TODO: Add a drag item for the related records item.
   
   //Note for translators: These are container layout items, containing child layout items, like container widgets in GTK+.
-  GtkContainer* container_group = GTK_CONTAINER(gtk_tool_item_group_new(_("Containers")));
-  gtk_container_add(container_group, GTK_WIDGET(drag_group->gobj()));
-  gtk_container_add(container_group, GTK_WIDGET(drag_notebook->gobj()));
+  m_group_containers.add(*drag_group);
+  m_group_containers.add(*drag_notebook);
 
   //Note for translators: These are layout items, like widgets in GTK+.
-  GtkContainer* fields_group = GTK_CONTAINER(gtk_tool_item_group_new(_("Items")));
-  gtk_container_add(fields_group, GTK_WIDGET(drag_portal->gobj()));
-  gtk_container_add(fields_group, GTK_WIDGET(drag_item->gobj()));
-  gtk_container_add(fields_group, GTK_WIDGET(drag_button->gobj()));  
-  gtk_container_add(fields_group, GTK_WIDGET(drag_text->gobj()));
-  gtk_container_add(fields_group, GTK_WIDGET(drag_image->gobj()));
+  m_group_items.add(*drag_portal);
+  m_group_items.add(*drag_item);
+  m_group_items.add(*drag_button);
+  m_group_items.add(*drag_text);
+  m_group_items.add(*drag_image);
   
-  add_group(GTK_TOOL_ITEM_GROUP(container_group));
-  add_group(GTK_TOOL_ITEM_GROUP(fields_group));
+  add_group(m_group_containers);
+  add_group(m_group_items);
 
   set_drag_source();
   
diff --git a/glom/utility_widgets/layouttoolbar.h b/glom/utility_widgets/layouttoolbar.h
index 81dd94a..1586b43 100644
--- a/glom/utility_widgets/layouttoolbar.h
+++ b/glom/utility_widgets/layouttoolbar.h
@@ -36,6 +36,8 @@ public:
   LayoutToolbar();
    ~LayoutToolbar();
 
+private:
+  Gtk::ToolItemGroup m_group_items, m_group_containers;
 };
 
 } //namespace Glom
diff --git a/glom/utility_widgets/sidebar.cc b/glom/utility_widgets/sidebar.cc
index f63bbe7..9a11359 100644
--- a/glom/utility_widgets/sidebar.cc
+++ b/glom/utility_widgets/sidebar.cc
@@ -33,22 +33,21 @@ SideBar::SideBar()
   m_palette.set_style(Gtk::TOOLBAR_BOTH_HORIZ);
   
   add(m_palette);
-  show_all_children();;
-
+  show_all_children();
 }
 
 SideBar::~SideBar()
 {
 }
 
-void SideBar::add_group(GtkToolItemGroup* group)
+void SideBar::add_group(Gtk::ToolItemGroup& group)
 {
-  m_palette.add(*Glib::wrap(GTK_WIDGET(group)));
+  m_palette.add(group);
 }
 
-void SideBar::remove_group(GtkToolItemGroup* group)
+void SideBar::remove_group(Gtk::ToolItemGroup& group)
 {
-  m_palette.remove(*Glib::wrap(GTK_WIDGET(group)));
+  m_palette.remove(group);
 }
 
 void SideBar::set_drag_source()
diff --git a/glom/utility_widgets/sidebar.h b/glom/utility_widgets/sidebar.h
index dbd2249..7ae07be 100644
--- a/glom/utility_widgets/sidebar.h
+++ b/glom/utility_widgets/sidebar.h
@@ -34,10 +34,10 @@ class SideBar : public Gtk::HandleBox
 {
 public:
   SideBar();
-  ~SideBar();
+  virtual ~SideBar();
     
-  void add_group(GtkToolItemGroup* group);
-  void remove_group(GtkToolItemGroup* group);
+  void add_group(Gtk::ToolItemGroup& group);
+  void remove_group(Gtk::ToolItemGroup& group);
   
   void set_drag_source();
 



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