[niepce] Remove gdl



commit 35d11d72052d76a3c1993f15c5376105d5eb5c95
Author: Hub Figuiere <hub figuiere net>
Date:   Fri Oct 28 22:12:42 2011 -0700

    Remove gdl

 src/ext/Makefile.am                               |    2 +-
 src/ext/README                                    |    5 -
 src/ext/libgdl/CMakeLists.txt                     |   42 -
 src/ext/libgdl/Makefile.am                        |   41 -
 src/ext/libgdl/Makefile_insert                    |   41 -
 src/ext/libgdl/README.gdl-dock                    |  184 --
 src/ext/libgdl/gdl-dock-bar.c                     |  976 ----------
 src/ext/libgdl/gdl-dock-bar.h                     |   75 -
 src/ext/libgdl/gdl-dock-item-grip.c               |  720 -------
 src/ext/libgdl/gdl-dock-item-grip.h               |   56 -
 src/ext/libgdl/gdl-dock-item.c                    | 2060 ---------------------
 src/ext/libgdl/gdl-dock-item.h                    |  195 --
 src/ext/libgdl/gdl-dock-master.c                  | 1023 ----------
 src/ext/libgdl/gdl-dock-master.h                  |   97 -
 src/ext/libgdl/gdl-dock-notebook.c                |  528 ------
 src/ext/libgdl/gdl-dock-notebook.h                |   59 -
 src/ext/libgdl/gdl-dock-object.c                  |  944 ----------
 src/ext/libgdl/gdl-dock-object.h                  |  239 ---
 src/ext/libgdl/gdl-dock-paned.c                   |  797 --------
 src/ext/libgdl/gdl-dock-paned.h                   |   66 -
 src/ext/libgdl/gdl-dock-placeholder.c             |  834 ---------
 src/ext/libgdl/gdl-dock-placeholder.h             |   69 -
 src/ext/libgdl/gdl-dock-tablabel.c                |  621 -------
 src/ext/libgdl/gdl-dock-tablabel.h                |   74 -
 src/ext/libgdl/gdl-dock.c                         | 1368 --------------
 src/ext/libgdl/gdl-dock.h                         |   99 -
 src/ext/libgdl/gdl-i18n.c                         |   43 -
 src/ext/libgdl/gdl-i18n.h                         |   72 -
 src/ext/libgdl/gdl-stock-icons.h                  |  135 --
 src/ext/libgdl/gdl-stock.c                        |  126 --
 src/ext/libgdl/gdl-stock.h                        |   37 -
 src/ext/libgdl/gdl-switcher.c                     | 1078 -----------
 src/ext/libgdl/gdl-switcher.h                     |   73 -
 src/ext/libgdl/gdl-tools.h                        |  190 --
 src/ext/libgdl/gdl-win32.c                        |   42 -
 src/ext/libgdl/gdl-win32.h                        |   30 -
 src/ext/libgdl/libgdl.h                           |   37 -
 src/ext/libgdl/libgdlmarshal.c                    |  170 --
 src/ext/libgdl/libgdlmarshal.h                    |   48 -
 src/ext/libgdl/libgdlmarshal.list                 |    7 -
 src/ext/libgdl/libgdltypebuiltins.c               |  183 --
 src/ext/libgdl/libgdltypebuiltins.h               |   40 -
 src/ext/libgdl/makefile.in                        |   17 -
 src/fwk/toolkit/Makefile.am                       |    1 -
 src/fwk/toolkit/dockable.cpp                      |   21 +-
 src/fwk/toolkit/dockable.hpp                      |   25 +-
 src/fwk/toolkit/widgets/dock-item.hpp             |  158 --
 src/fwk/toolkit/widgets/dock.cpp                  |  301 +---
 src/fwk/toolkit/widgets/dock.hpp                  |   98 +-
 src/niepce/Makefile.am                            |    1 -
 src/niepce/modules/darkroom/darkroommodule.cpp    |    8 +-
 src/niepce/modules/darkroom/toolboxcontroller.cpp |   16 +-
 src/niepce/modules/darkroom/toolboxcontroller.hpp |    6 +-
 src/niepce/ui/gridviewmodule.cpp                  |    6 +-
 src/niepce/ui/metadatapanecontroller.cpp          |  175 +-
 src/niepce/ui/metadatapanecontroller.hpp          |   18 +-
 56 files changed, 188 insertions(+), 14189 deletions(-)
---
diff --git a/src/ext/Makefile.am b/src/ext/Makefile.am
index 4f515f6..8afd99f 100644
--- a/src/ext/Makefile.am
+++ b/src/ext/Makefile.am
@@ -1,5 +1,5 @@
 
 EXTRA_DIST = README
 
-SUBDIRS = libgdl libview
+SUBDIRS = libview
 # DIST_SUBDIRS = 
diff --git a/src/ext/README b/src/ext/README
index 8809675..7ad9608 100644
--- a/src/ext/README
+++ b/src/ext/README
@@ -1,7 +1,2 @@
 This directory contains external code:
 
-libgdl/
-  - copied from Inskscape has it has more feature then upstream gdl.
-    last resync r19169
-    https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk/src/libgdl/gdl-stock.h
-
diff --git a/src/fwk/toolkit/Makefile.am b/src/fwk/toolkit/Makefile.am
index 3de9bc1..2dbc6a9 100644
--- a/src/fwk/toolkit/Makefile.am
+++ b/src/fwk/toolkit/Makefile.am
@@ -29,7 +29,6 @@ libniepceframework_a_SOURCES = configuration.hpp configuration.cpp \
 	widgets/addinstreemodel.hpp widgets/addinstreemodel.cpp \
 	widgets/toolboxitemwidget.hpp widgets/toolboxitemwidget.cpp \
 	widgets/editablehscale.hpp widgets/editablehscale.cpp \
-	widgets/dock-item.cpp widgets/dock-item.hpp \
 	widgets/dock.cpp widgets/dock.hpp \
 	dockable.hpp dockable.cpp \
 	metadatawidget.hpp metadatawidget.cpp \
diff --git a/src/fwk/toolkit/dockable.cpp b/src/fwk/toolkit/dockable.cpp
index c30547e..4d506bd 100644
--- a/src/fwk/toolkit/dockable.cpp
+++ b/src/fwk/toolkit/dockable.cpp
@@ -1,7 +1,7 @@
 /*
  * niepce - fwk/toolkit/dockable.cpp
  *
- * Copyright (C) 2008-2009 Hubert Figuiere
+ * Copyright (C) 2008-2011 Hubert Figuiere
  *
  * 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
@@ -22,13 +22,24 @@
 
 namespace fwk {
 
-Dockable::Dockable(Dock & dock, const Glib::ustring& name, 
-             const Glib::ustring& long_name, 
-             const Glib::ustring& icon_name, DockItem::State state)
-    : DockItem(dock, name, long_name, icon_name, state)
+Dockable::Dockable(const Glib::ustring& name, 
+                   const Glib::ustring& long_name, 
+                   const Glib::ustring& icon_name)
+    : m_name(name)
+    , m_long_name(long_name)
+    , m_icon_name(icon_name)
 {
 }
 
+Gtk::VBox * 
+Dockable::build_vbox()
+{
+    m_vbox = Gtk::manage(new Gtk::VBox());
+    // do the label, the name, etc.
+
+    // TODO
+    return m_vbox;
+}
 
 }
 /*
diff --git a/src/fwk/toolkit/dockable.hpp b/src/fwk/toolkit/dockable.hpp
index cac9bb4..56741ff 100644
--- a/src/fwk/toolkit/dockable.hpp
+++ b/src/fwk/toolkit/dockable.hpp
@@ -1,7 +1,7 @@
 /*
  * niepce - fwk/toolkit/dockable.hpp
  *
- * Copyright (C) 2008 Hubert Figuiere
+ * Copyright (C) 2008, 2011 Hubert Figuiere
  *
  * 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
@@ -21,8 +21,10 @@
 #ifndef __FRAMEWORK_DOCKABLE_H__
 #define __FRAMEWORK_DOCKABLE_H__
 
+#include <glibmm/ustring.h>
+#include <gtkmm/box.h>
 #include "fwk/toolkit/uicontroller.hpp"
-#include "fwk/toolkit/widgets/dock-item.hpp"
+#include "fwk/toolkit/widgets/dock.hpp"
 
 namespace fwk {
 
@@ -30,14 +32,25 @@ namespace fwk {
 /** A dockable item controller
  */
 class Dockable
-    : public UiController,
-      protected DockItem
+    : public UiController
 {
 public:
-    Dockable(fwk::Dock & dock, const Glib::ustring& name, 
+    Dockable(const Glib::ustring& name, 
              const Glib::ustring& long_name, 
-             const Glib::ustring& icon_name, DockItem::State state);
+             const Glib::ustring& icon_name);
 
+    /** return the vbox controlled (construct it if needed) */
+    Gtk::VBox * build_vbox();
+
+    const Glib::ustring & get_name() const
+        {
+            return m_name;
+        }
+private:
+    Gtk::VBox * m_vbox;
+    Glib::ustring m_name;
+    Glib::ustring m_long_name;
+    Glib::ustring m_icon_name;
 };
 
 
diff --git a/src/fwk/toolkit/widgets/dock.cpp b/src/fwk/toolkit/widgets/dock.cpp
index 843ae56..c06a25d 100644
--- a/src/fwk/toolkit/widgets/dock.cpp
+++ b/src/fwk/toolkit/widgets/dock.cpp
@@ -1,296 +1,23 @@
-/**
- * \brief A desktop dock pane to dock dialogs.
+/*
+ * niepce - fwk/toolkit/dock.hpp
+ *
+ * Copyright (C) 2011 Hubert Figuiere
  *
- * Author:
- *   Gustav Broberg <broberg kth se>
+ * 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 3 of the License, or
+ * (at your option) any later version.
  *
- * Copyright (C) 2007 Authors
+ * 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.
  *
- * Released under GNU GPL.  Read the file 'COPYING' for more information.
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-//#include "inkscape.h"
-//#include "prefs-utils.h"
-//#include "desktop.h"
 
 #include "dock.hpp"
 
-#include <gtkmm/adjustment.h>
-
-namespace fwk {
-
-namespace {
-
-void hideCallback(GtkObject */*object*/, gpointer dock_ptr)
-{
-    g_return_if_fail( dock_ptr != NULL );
-
-    Dock *dock = (Dock *)dock_ptr;
-    dock->hide();
-}
-
-void unhideCallback(GtkObject */*object*/, gpointer dock_ptr)
-{
-    g_return_if_fail( dock_ptr != NULL );
-
-    Dock *dock = (Dock *)dock_ptr;
-    dock->show();
-}
-
-}
-
-const int Dock::_default_empty_width = 0;
-const int Dock::_default_dock_bar_width = 36;
-
-
-Dock::Dock(Gtk::Orientation orientation)
-    : _gdl_dock (GDL_DOCK (gdl_dock_new())),
-      _gdl_dock_bar (GDL_DOCK_BAR (gdl_dock_bar_new(GDL_DOCK(_gdl_dock)))),
-      _scrolled_window (Gtk::manage(new Gtk::ScrolledWindow))
-{
-    gdl_dock_bar_set_orientation(_gdl_dock_bar, static_cast<GtkOrientation>(orientation));
-
-    switch (orientation) {
-        case Gtk::ORIENTATION_VERTICAL:
-            _dock_box = Gtk::manage(new Gtk::HBox());
-            _paned = Gtk::manage(new Gtk::VPaned());
-            break;
-        case Gtk::ORIENTATION_HORIZONTAL:
-            _dock_box = Gtk::manage(new Gtk::VBox());
-            _paned = Gtk::manage(new Gtk::HPaned());
-    }
-
-    _scrolled_window->add(*_dock_box);
-    _scrolled_window->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
-
-    _paned->pack1(*Glib::wrap(GTK_WIDGET(_gdl_dock)), false, false);
-    _paned->pack2(_filler, true, false);
-
-    _dock_box->pack_start(*_paned, Gtk::PACK_EXPAND_WIDGET);
-    _dock_box->pack_end(*Gtk::manage(Glib::wrap(GTK_WIDGET(_gdl_dock_bar))), Gtk::PACK_SHRINK);
-    _dock_box->get_parent()->set_resize_mode(Gtk::RESIZE_PARENT);
-
-    _scrolled_window->set_size_request(0);
-
-    GdlSwitcherStyle gdl_switcher_style = GDL_SWITCHER_STYLE_BOTH;
-// HUB
-//        static_cast<GdlSwitcherStyle>(prefs_get_int_attribute_limited("options.dock", "switcherstyle",
-//                                                                      GDL_SWITCHER_STYLE_BOTH, 0, 4));
-
-// HUB
-    g_object_set (GDL_DOCK_OBJECT(_gdl_dock)->master,
-                  "switcher-style", gdl_switcher_style,
-                  "expand-direction", GDL_DOCK_EXPANSION_DIRECTION_DOWN,
-                  NULL);
-
-    GdlDockBarStyle gdl_dock_bar_style = GDL_DOCK_BAR_BOTH;
-// HUB
-//        static_cast<GdlDockBarStyle>(prefs_get_int_attribute_limited("options.dock", "dockbarstyle",
-//                                                                     GDL_DOCK_BAR_BOTH, 0, 3));
-
-    gdl_dock_bar_set_style(_gdl_dock_bar, gdl_dock_bar_style);
-// HUB
-//    g_signal_connect(G_OBJECT(INKSCAPE), "dialogs_hide", G_CALLBACK(hideCallback), (void *)this);
-//    g_signal_connect(G_OBJECT(INKSCAPE), "dialogs_unhide", G_CALLBACK(unhideCallback), (void *)this);
-
-    g_signal_connect(_paned->gobj(), "button-press-event", G_CALLBACK(_on_paned_button_event), (void *)this);
-    g_signal_connect(_paned->gobj(), "button-release-event", G_CALLBACK(_on_paned_button_event), (void *)this);
-
-    signal_layout_changed().connect(sigc::mem_fun(*this, &Dock::_onLayoutChanged));
-}
-
-Dock::~Dock()
-{
-//WTF is that?
-//    g_free(_gdl_dock);
-//    g_free(_gdl_dock_bar);
-}
-
-void
-Dock::addItem(DockItem& item, DockItem::Placement placement)
-{
-    _dock_items.push_back(&item);
-    gdl_dock_add_item(_gdl_dock, GDL_DOCK_ITEM(item.gobj()), (GdlDockPlacement)placement);
-
-    // FIXME: This is a hack to prevent the dock from expanding the main window, this can't be done
-    // initially as the paned doesn't exist.
-    if (Gtk::Paned *paned = getParentPaned()) {
-        paned->set_resize_mode(Gtk::RESIZE_QUEUE);
-    }
-}
-
-Gtk::Widget&
-Dock::getWidget()
-{
-     return *_scrolled_window;
-}
-
-Gtk::Paned *
-Dock::getParentPaned()
-{
-    g_return_val_if_fail(_dock_box, 0);
-    Gtk::Container *parent = getWidget().get_parent();
-    return (parent != 0 ? dynamic_cast<Gtk::Paned *>(parent) : 0);
-}
-
-
-Gtk::Paned *
-Dock::getPaned()
-{
-    return _paned;
-}
 
-GtkWidget *
-Dock::getGdlWidget()
-{
-    return GTK_WIDGET(_gdl_dock);
-}
-
-bool
-Dock::isEmpty() const
-{
-    std::list<const DockItem *>::const_iterator
-        i = _dock_items.begin(),
-        e = _dock_items.end();
-
-    for (; i != e; ++i) {
-        if ((*i)->getState() == DockItem::DOCKED_STATE) {
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool
-Dock::hasIconifiedItems() const
-{
-    std::list<const DockItem *>::const_iterator
-        i = _dock_items.begin(),
-        e = _dock_items.end();
-
-    for (; i != e; ++i) {
-        if ((*i)->isIconified()) {
-            return true;
-        }
-    }
-
-    return false;
-}
-
-void
-Dock::hide()
-{
-    getWidget().hide();
-}
-
-void
-Dock::show()
-{
-    getWidget().show();
-}
-
-void
-Dock::toggleDockable(int width, int height)
-{
-    static int prev_horizontal_position, prev_vertical_position;
-
-    Gtk::Paned *parent_paned = getParentPaned();
-
-    if (width > 0 && height > 0) {
-        prev_horizontal_position = parent_paned->get_position();
-        prev_vertical_position = _paned->get_position();
-
-        if (getWidget().get_width() < width)
-            parent_paned->set_position(parent_paned->get_width() - width);
-
-        if (_paned->get_position() < height)
-            _paned->set_position(height);
-
-    } else {
-        parent_paned->set_position(prev_horizontal_position);
-        _paned->set_position(prev_vertical_position);
-    }
-
-}
-
-void
-Dock::scrollToItem(DockItem& item)
-{
-    int item_x, item_y;
-    item.getWidget().translate_coordinates(getWidget(), 0, 0, item_x, item_y);
-
-    int dock_height = getWidget().get_height(), item_height = item.getWidget().get_height();
-    double vadjustment = _scrolled_window->get_vadjustment()->get_value();
-
-    if (item_y < 0)
-        _scrolled_window->get_vadjustment()->set_value(vadjustment + item_y);
-    else if (item_y + item_height > dock_height)
-        _scrolled_window->get_vadjustment()->set_value(
-            vadjustment + ((item_y + item_height) - dock_height));
-}
-
-Glib::SignalProxy0<void>
-Dock::signal_layout_changed()
-{
-    return Glib::SignalProxy0<void>(Glib::wrap(GTK_WIDGET(_gdl_dock)),
-                                    &_signal_layout_changed_proxy);
-}
-
-void
-Dock::_onLayoutChanged()
-{
-    if (isEmpty()) {
-        if (hasIconifiedItems()) {
-            _scrolled_window->set_size_request(_default_dock_bar_width);
-        } else {
-            _scrolled_window->set_size_request(_default_empty_width);
-        }
-
-        getParentPaned()->set_position(INT_MAX);
-    } else {
-        // unset any forced size requests
-        _paned->get_child1()->set_size_request(-1, -1);
-        _scrolled_window->set_size_request(-1);
-    }
-}
-
-void
-Dock::_onPanedButtonEvent(GdkEventButton *event)
-{
-    if (event->button == 1 && event->type == GDK_BUTTON_PRESS)
-        /* unset size request when starting a drag */
-        _paned->get_child1()->set_size_request(-1, -1);
-}
-
-gboolean
-Dock::_on_paned_button_event(GtkWidget */*widget*/, GdkEventButton *event, gpointer user_data)
-{
-    if (Dock *dock = static_cast<Dock *>(user_data))
-        dock->_onPanedButtonEvent(event);
-
-    return FALSE;
-}
-
-const Glib::SignalProxyInfo
-Dock::_signal_layout_changed_proxy =
-{
-    "layout-changed",
-    (GCallback) &Glib::SignalProxyNormal::slot0_void_callback,
-    (GCallback) &Glib::SignalProxyNormal::slot0_void_callback
-};
-
-
-} // namespace framework
-
-
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
-  indent-tabs-mode:nil
-  fill-column:80
-  End:
-*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
diff --git a/src/fwk/toolkit/widgets/dock.hpp b/src/fwk/toolkit/widgets/dock.hpp
index 3169c54..dc86f9a 100644
--- a/src/fwk/toolkit/widgets/dock.hpp
+++ b/src/fwk/toolkit/widgets/dock.hpp
@@ -1,99 +1,47 @@
-/**
- * \brief A desktop dock pane to dock dialogs, a custom wrapper around gdl-dock.
+/*
+ * niepce - fwk/toolkit/dock.hpp
+ *
+ * Copyright (C) 2011 Hubert Figuiere
  *
- * Author:
- *   Gustav Broberg <broberg kth se>
+ * 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 3 of the License, or
+ * (at your option) any later version.
  *
- * Copyright (C) 2007 Authors
+ * 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.
  *
- * Released under GNU GPL.  Read the file 'COPYING' for more information.
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef INKSCAPE_UI_WIDGET_DOCK_H
-#define INKSCAPE_UI_WIDGET_DOCK_H
+#ifndef __FWK_TOOLKIT_DOCK_HPP__
+#define __FWK_TOOLKIT_DOCK_HPP__
 
-#include <gtkmm/scrolledwindow.h>
 #include <gtkmm/box.h>
-#include <gtkmm/paned.h>
-
-#include <list>
-
-#include "fwk/toolkit/widgets/dock-item.hpp"
-
-#include "libgdl/libgdl.h"
 
 namespace fwk {
 
-class Dock {
 
+class Dock
+  : public Gtk::VBox
+{
 public:
+  
 
-    Dock(Gtk::Orientation orientation=Gtk::ORIENTATION_VERTICAL);
-    ~Dock();
-
-    void addItem(DockItem& item, DockItem::Placement placement);
-
-    Gtk::Widget& getWidget();     //< return the top widget
-    Gtk::Paned *getParentPaned();
-    Gtk::Paned *getPaned();
-
-    GtkWidget* getGdlWidget();    //< return the top gdl widget
-
-    bool isEmpty() const;         //< true iff none of the dock's items are in a docked state
-    bool hasIconifiedItems() const;
-
-    Glib::SignalProxy0<void> signal_layout_changed();
-
-    void hide();
-    void show();
-
-    /** Toggle size of dock between the previous dimensions and the ones sent as parameters */
-    void toggleDockable(int width=0, int height=0);
-
-    /** Scrolls the scrolled window container to make the provided dock item visible, if needed */
-    void scrollToItem(DockItem& item);
-
-protected:
-
-    std::list<const DockItem *> _dock_items;   //< added dock items
-
-    /** Interface widgets, will be packed like 
-     * _scrolled_window -> (_dock_box -> (_paned -> (_dock -> _filler) | _dock_bar))
-     */
-    Gtk::Box *_dock_box;
-    Gtk::Paned* _paned;
-    GdlDock *_gdl_dock;
-    GdlDockBar *_gdl_dock_bar;
-    Gtk::VBox _filler;
-    Gtk::ScrolledWindow *_scrolled_window;
-
-    /** Internal signal handlers */
-    void _onLayoutChanged();
-    void _onPanedButtonEvent(GdkEventButton *event);
-
-    static gboolean _on_paned_button_event(GtkWidget *widget, GdkEventButton *event, 
-                                           gpointer user_data);
-
-    /** GdlDock signal proxy structures */
-    static const Glib::SignalProxyInfo _signal_layout_changed_proxy;
-
-    /** Standard widths */
-    static const int _default_empty_width;
-    static const int _default_dock_bar_width;
 };
 
-} // namespace framework
-
-#endif //INKSCAPE_UI_DIALOG_BEHAVIOUR_H
 
+}
 /*
   Local Variables:
   mode:c++
   c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  c-file-offsets:((innamespace . 0))
   indent-tabs-mode:nil
   fill-column:80
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 
-
+#endif
diff --git a/src/niepce/Makefile.am b/src/niepce/Makefile.am
index 3740b59..f6c2f20 100644
--- a/src/niepce/Makefile.am
+++ b/src/niepce/Makefile.am
@@ -24,7 +24,6 @@ niepce_LDADD = \
 	$(top_builddir)/src/fwk/utils/libniepceutils.a \
 	$(top_builddir)/src/fwk/libfwk.a \
 	$(top_builddir)/src/ncr/libncr.a \
-	$(top_builddir)/src/ext/libgdl/libgdl.a \
 	$(top_builddir)/src/ext/libview/libview.a \
 	@LIBGLIBMM_LIBS@ \
 	@LIBGTKMM_LIBS@ @SQLITE3_LIBS@ \
diff --git a/src/niepce/modules/darkroom/darkroommodule.cpp b/src/niepce/modules/darkroom/darkroommodule.cpp
index 9562074..31d451f 100644
--- a/src/niepce/modules/darkroom/darkroommodule.cpp
+++ b/src/niepce/modules/darkroom/darkroommodule.cpp
@@ -81,17 +81,17 @@ Gtk::Widget * DarkroomModule::buildWidget(const Glib::RefPtr<Gtk::UIManager> & m
 
     m_vbox.pack_start(*toolbar, Gtk::PACK_SHRINK);
     m_dr_splitview.pack1(m_vbox, Gtk::EXPAND);
-    m_dock = new fwk::Dock();
-    m_dr_splitview.pack2(m_dock->getWidget(), Gtk::SHRINK);
+    m_dock = Gtk::manage(new fwk::Dock());
+    m_dr_splitview.pack2(*m_dock, Gtk::SHRINK);
 
     m_databinders.add_binder(new fwk::ConfigDataBinder<int>(
                                  m_dr_splitview.property_position(),
                                  fwk::Application::app()->config(),
                                  "dr_toolbox_pane_splitter"));
 
-    m_toolbox_ctrl = ToolboxController::Ptr(new ToolboxController(*m_dock));
+    m_toolbox_ctrl = ToolboxController::Ptr(new ToolboxController);
     add(m_toolbox_ctrl);
-    (void)m_toolbox_ctrl->buildWidget(manager);
+    m_dock->pack_start(*m_toolbox_ctrl->buildWidget(manager));
 
     return m_widget;
 }
diff --git a/src/niepce/modules/darkroom/toolboxcontroller.cpp b/src/niepce/modules/darkroom/toolboxcontroller.cpp
index 3e8fbff..3200f3c 100644
--- a/src/niepce/modules/darkroom/toolboxcontroller.cpp
+++ b/src/niepce/modules/darkroom/toolboxcontroller.cpp
@@ -25,28 +25,30 @@
 #include <gtkmm/stock.h>
 
 #include "toolboxcontroller.hpp"
+#include "fwk/base/debug.hpp"
 #include "fwk/toolkit/widgets/editablehscale.hpp"
-#include "fwk/toolkit/widgets/dock-item.hpp"
 #include "dritemwidget.hpp"
 
 namespace darkroom {
 
-ToolboxController::ToolboxController(fwk::Dock &dock)
-    : Dockable(dock,"tools", _("Develop"), Gtk::Stock::APPLY.id, 
-               DockItem::DOCKED_STATE)
+ToolboxController::ToolboxController()
+    : Dockable("tools", _("Develop"), Gtk::Stock::APPLY.id)
 {
 
 }
 
-Gtk::Widget * ToolboxController::buildWidget(const Glib::RefPtr<Gtk::UIManager> &)
+Gtk::Widget * 
+ToolboxController::buildWidget(const Glib::RefPtr<Gtk::UIManager> & )
 {
     if(m_widget) {
         return m_widget;
     }
     DrItemWidget *item = NULL;
     fwk::EditableHScale *s = NULL;
-    Gtk::VBox *toolbox = DockItem::get_vbox();
-    m_widget = &DockItem::getWidget();
+
+    Gtk::VBox *toolbox = Dockable::build_vbox();
+    m_widget = toolbox;
+    DBG_ASSERT(toolbox, "vbox not found.");
 
     item = manage(new DrItemWidget(_("Crop")));
     toolbox->pack_start(*item, Gtk::PACK_SHRINK);
diff --git a/src/niepce/modules/darkroom/toolboxcontroller.hpp b/src/niepce/modules/darkroom/toolboxcontroller.hpp
index c618742..3e77885 100644
--- a/src/niepce/modules/darkroom/toolboxcontroller.hpp
+++ b/src/niepce/modules/darkroom/toolboxcontroller.hpp
@@ -23,10 +23,6 @@
 
 #include "fwk/toolkit/dockable.hpp"
 
-namespace fwk {
-class Dock;
-}
-
 namespace darkroom {
 
 class ToolboxController
@@ -34,7 +30,7 @@ class ToolboxController
 {
 public:
     typedef std::tr1::shared_ptr<ToolboxController> Ptr;
-    ToolboxController(fwk::Dock &);
+    ToolboxController();
     virtual Gtk::Widget * buildWidget(const Glib::RefPtr<Gtk::UIManager> &);
 };
 
diff --git a/src/niepce/ui/gridviewmodule.cpp b/src/niepce/ui/gridviewmodule.cpp
index c93224b..62c5755 100644
--- a/src/niepce/ui/gridviewmodule.cpp
+++ b/src/niepce/ui/gridviewmodule.cpp
@@ -105,10 +105,10 @@ Gtk::Widget * GridViewModule::buildWidget(const Glib::RefPtr<Gtk::UIManager> & m
   m_scrollview.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
   m_lib_splitview.pack1(m_scrollview);
   m_dock = new fwk::Dock();
-  m_metapanecontroller = MetaDataPaneController::Ptr(new MetaDataPaneController(*m_dock));
+  m_metapanecontroller = MetaDataPaneController::Ptr(new MetaDataPaneController);
   add(m_metapanecontroller);
-  m_lib_splitview.pack2(m_dock->getWidget());
-  (void)m_metapanecontroller->buildWidget(manager);
+  m_lib_splitview.pack2(*m_dock);
+  m_dock->pack_start(*m_metapanecontroller->buildWidget(manager));
 
   m_databinders.add_binder(new fwk::ConfigDataBinder<int>(
                              m_lib_splitview.property_position(),
diff --git a/src/niepce/ui/metadatapanecontroller.cpp b/src/niepce/ui/metadatapanecontroller.cpp
index 9894efc..5219ac6 100644
--- a/src/niepce/ui/metadatapanecontroller.cpp
+++ b/src/niepce/ui/metadatapanecontroller.cpp
@@ -36,94 +36,97 @@ using namespace xmp;
 namespace ui {
 
 	
-	const MetaDataSectionFormat *
-	MetaDataPaneController::get_format() 
-	{
-		static const MetaDataFormat s_camerainfo_format[] = {
-			{ _("Make:"), NS_TIFF, "Make", META_DT_STRING, true },
-			{ _("Model:"), NS_TIFF, "Model", META_DT_STRING, true },
-			{ _("Lens:"), NS_EXIF_AUX, "Lens", META_DT_STRING, true },
-			{ NULL, NULL, NULL, META_DT_NONE, true }
-		};
-		static const MetaDataFormat s_shootinginfo_format[] = {
-			{ _("Exposure Program:"), NS_EXIF, "ExposureProgram", META_DT_STRING, true },
-			{ _("Speed:"), NS_EXIF, "ExposureTime", META_DT_STRING, true },
-			{ _("Aperture:"), NS_EXIF, "FNumber", META_DT_FRAC, true },
-			{ _("ISO:"), NS_EXIF, "ISOSpeedRatings", META_DT_STRING_ARRAY, true },
-			{ _("Exposure Bias:"), NS_EXIF, "ExposureBiasValue", META_DT_FRAC, true },
-			// this one is fishy as it hardcode the prefix.
-			{ _("Flash:"), NS_EXIF, "Flash/exif:Fired", META_DT_STRING, true },
-			{ _("Flash compensation:"), NS_EXIF_AUX, "FlashCompensation", META_DT_STRING, true },
-			{ _("Focal length:"), NS_EXIF, "FocalLength", META_DT_FRAC, true },
-			{ _("White balance:"), NS_EXIF, "WhiteBalance", META_DT_STRING, true },
-			{ _("Date:"), NS_EXIF, "DateTimeOriginal", META_DT_DATE, false },
-			{ NULL, NULL, NULL, META_DT_NONE, true }
-		};
-		static const MetaDataFormat s_iptc_format[] = {
-			{ _("Rating:"), NS_XAP, "Rating", META_DT_STAR_RATING, false },
-			{ _("Label:"), NS_XAP, "Label", META_DT_STRING, false },            
-			{ _("Keywords:"), NS_DC, "subject", META_DT_STRING_ARRAY, false },
-			{ NULL, NULL, NULL, META_DT_NONE, true }			
-		};
-		static const MetaDataSectionFormat s_format[] = {
-			{ _("Camera Information"),
-			  s_camerainfo_format
-			},
-			{ _("Shooting Information"),
-			  s_shootinginfo_format
-			},
-			{ _("IPTC"),
-			  s_iptc_format
-			},
-			{ _("Rights"),
-			  NULL
-			},
-			{ NULL, NULL
-			}
-		};
-		return s_format;
-	}
-
-	MetaDataPaneController::MetaDataPaneController(fwk::Dock &dock)
-		: Dockable(dock, "Metadata", _("Image Properties"), 
-                   Gtk::Stock::PROPERTIES.id, DockItem::DOCKED_STATE),
-          m_fileid(0)
-	{
-	}
-
-    MetaDataPaneController::~MetaDataPaneController()
-    {
-    }
-	
-	Gtk::Widget * MetaDataPaneController::buildWidget(const Glib::RefPtr<Gtk::UIManager> &)
-	{
+  const MetaDataSectionFormat *
+  MetaDataPaneController::get_format() 
+  {
+    static const MetaDataFormat s_camerainfo_format[] = {
+      { _("Make:"), NS_TIFF, "Make", META_DT_STRING, true },
+      { _("Model:"), NS_TIFF, "Model", META_DT_STRING, true },
+      { _("Lens:"), NS_EXIF_AUX, "Lens", META_DT_STRING, true },
+      { NULL, NULL, NULL, META_DT_NONE, true }
+    };
+    static const MetaDataFormat s_shootinginfo_format[] = {
+      { _("Exposure Program:"), NS_EXIF, "ExposureProgram", META_DT_STRING, true },
+      { _("Speed:"), NS_EXIF, "ExposureTime", META_DT_STRING, true },
+      { _("Aperture:"), NS_EXIF, "FNumber", META_DT_FRAC, true },
+      { _("ISO:"), NS_EXIF, "ISOSpeedRatings", META_DT_STRING_ARRAY, true },
+      { _("Exposure Bias:"), NS_EXIF, "ExposureBiasValue", META_DT_FRAC, true },
+      // this one is fishy as it hardcode the prefix.
+      { _("Flash:"), NS_EXIF, "Flash/exif:Fired", META_DT_STRING, true },
+      { _("Flash compensation:"), NS_EXIF_AUX, "FlashCompensation", META_DT_STRING, true },
+      { _("Focal length:"), NS_EXIF, "FocalLength", META_DT_FRAC, true },
+      { _("White balance:"), NS_EXIF, "WhiteBalance", META_DT_STRING, true },
+      { _("Date:"), NS_EXIF, "DateTimeOriginal", META_DT_DATE, false },
+      { NULL, NULL, NULL, META_DT_NONE, true }
+    };
+    static const MetaDataFormat s_iptc_format[] = {
+      { _("Rating:"), NS_XAP, "Rating", META_DT_STAR_RATING, false },
+      { _("Label:"), NS_XAP, "Label", META_DT_STRING, false },            
+      { _("Keywords:"), NS_DC, "subject", META_DT_STRING_ARRAY, false },
+      { NULL, NULL, NULL, META_DT_NONE, true }			
+    };
+    static const MetaDataSectionFormat s_format[] = {
+      { _("Camera Information"),
+	s_camerainfo_format
+      },
+      { _("Shooting Information"),
+	s_shootinginfo_format
+      },
+      { _("IPTC"),
+	s_iptc_format
+      },
+      { _("Rights"),
+	NULL
+      },
+      { NULL, NULL
+      }
+    };
+    return s_format;
+  }
+  
+  MetaDataPaneController::MetaDataPaneController()
+    : Dockable("Metadata", _("Image Properties"), 
+	       Gtk::Stock::PROPERTIES.id /*, DockItem::DOCKED_STATE*/),
+      m_fileid(0)
+  {
+  }
+  
+  MetaDataPaneController::~MetaDataPaneController()
+  {
+  }
+  
+  Gtk::Widget * 
+  MetaDataPaneController::buildWidget(const Glib::RefPtr<Gtk::UIManager> & )
+  {
     if(m_widget) {
       return m_widget;
     }
-		m_widget = &DockItem::getWidget();
-
-		const MetaDataSectionFormat * formats = get_format();
-		
-		const MetaDataSectionFormat * current = formats;
-		while(current->section) {
-			fwk::MetaDataWidget *w = Gtk::manage(new fwk::MetaDataWidget(current->section));
-            DockItem::get_vbox()->pack_start(*w, Gtk::PACK_SHRINK, 0);
-			w->set_data_format(current);
-			m_widgets.push_back(w);
-			current++;
-		}
-
-		return m_widget;
-	}
-
-
-	void MetaDataPaneController::display(int file_id, const fwk::XmpMeta * meta)
-	{
-        m_fileid = file_id;
-		DBG_OUT("displaying metadata");
-		std::for_each(m_widgets.begin(), m_widgets.end(),
-					  boost::bind(&fwk::MetaDataWidget::set_data_source,
-								  _1, meta));
-	}
+    Gtk::VBox *vbox = build_vbox();
+    m_widget = vbox;
+    DBG_ASSERT(vbox, "dockable vbox not found");
 
+    const MetaDataSectionFormat * formats = get_format();
+    
+    const MetaDataSectionFormat * current = formats;
+    while(current->section) {
+      fwk::MetaDataWidget *w = Gtk::manage(new fwk::MetaDataWidget(current->section));
+      vbox->pack_start(*w, Gtk::PACK_SHRINK, 0);
+      w->set_data_format(current);
+      m_widgets.push_back(w);
+      current++;
+    }
+    
+    return m_widget;
+  }
+  
+  
+  void MetaDataPaneController::display(int file_id, const fwk::XmpMeta * meta)
+  {
+    m_fileid = file_id;
+    DBG_OUT("displaying metadata");
+    std::for_each(m_widgets.begin(), m_widgets.end(),
+		  boost::bind(&fwk::MetaDataWidget::set_data_source,
+			      _1, meta));
+  }
+  
 }
diff --git a/src/niepce/ui/metadatapanecontroller.hpp b/src/niepce/ui/metadatapanecontroller.hpp
index 09b3b0a..d9394f0 100644
--- a/src/niepce/ui/metadatapanecontroller.hpp
+++ b/src/niepce/ui/metadatapanecontroller.hpp
@@ -36,21 +36,21 @@ class Dock;
 namespace ui {
 	
 class MetaDataPaneController
-		: public fwk::Dockable
+    : public fwk::Dockable
 {
 public:
-		typedef std::tr1::shared_ptr<MetaDataPaneController> Ptr;
-		MetaDataPaneController(fwk::Dock &);
+    typedef std::tr1::shared_ptr<MetaDataPaneController> Ptr;
+    MetaDataPaneController();
     ~MetaDataPaneController();
-		virtual Gtk::Widget * buildWidget(const Glib::RefPtr<Gtk::UIManager> &);
-		void display(int file_id, const fwk::XmpMeta * meta);
+    virtual Gtk::Widget * buildWidget(const Glib::RefPtr<Gtk::UIManager> &);
+    void display(int file_id, const fwk::XmpMeta * meta);
     int displayed_file() const 
         { return m_fileid; }
 private:
-		std::vector<fwk::MetaDataWidget *> m_widgets;
-
-		static const xmp::MetaDataSectionFormat * get_format();
-
+    std::vector<fwk::MetaDataWidget *> m_widgets;
+    
+    static const xmp::MetaDataSectionFormat * get_format();
+    
     int m_fileid;
 };
 



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