[niepce: 4/5] * Rename framework namespace to fwk.



commit e94cdf7d9f58985b430e109719e63e0ec06ab316
Author: Hubert Figuiere <hub figuiere net>
Date:   Fri Mar 6 14:46:56 2009 -0500

    	* Rename framework namespace to fwk.
    	* Move dialogs in their directory
    	* Rename some .h to .hpp
---
 ChangeLog                                         |    6 +
 configure.ac                                      |    1 +
 po/POTFILES.in                                    |    6 +-
 po/POTFILES.skip                                  |    3 +
 po/niepce.pot                                     |  689 +++++++++++++++++----
 src/engine/db/Makefile.am                         |    2 +-
 src/engine/db/filebundle.cpp                      |    4 +-
 src/engine/db/libfile.cpp                         |    2 +-
 src/engine/db/libfile.h                           |    4 +-
 src/engine/db/library.cpp                         |   14 +-
 src/engine/db/library.h                           |    6 +-
 src/engine/db/test_library.cpp                    |    2 +-
 src/engine/library/thumbnailcache.cpp             |   16 +-
 src/engine/library/thumbnailcache.h               |    6 +-
 src/fwk/toolkit/Makefile.am                       |   39 +-
 src/fwk/toolkit/application.cpp                   |    2 +-
 src/fwk/toolkit/application.hpp                   |    6 +-
 src/fwk/toolkit/command.h                         |   48 --
 src/fwk/toolkit/command.hpp                       |   48 ++
 src/fwk/toolkit/configdatabinder.cpp              |    8 +-
 src/fwk/toolkit/configdatabinder.h                |  110 ----
 src/fwk/toolkit/configdatabinder.hpp              |  110 ++++
 src/fwk/toolkit/configuration.cpp                 |  114 ++--
 src/fwk/toolkit/configuration.h                   |   50 --
 src/fwk/toolkit/configuration.hpp                 |   59 ++
 src/fwk/toolkit/controller.cpp                    |    8 +-
 src/fwk/toolkit/controller.h                      |   95 ---
 src/fwk/toolkit/controller.hpp                    |   95 +++
 src/fwk/toolkit/dockable.cpp                      |   10 +-
 src/fwk/toolkit/dockable.h                        |   56 --
 src/fwk/toolkit/dockable.hpp                      |   56 ++
 src/fwk/toolkit/frame.cpp                         |    6 +-
 src/fwk/toolkit/frame.hpp                         |    6 +-
 src/fwk/toolkit/gconf_proxy_header.h              |   34 -
 src/fwk/toolkit/gdkutils.cpp                      |    6 +-
 src/fwk/toolkit/gdkutils.h                        |   39 --
 src/fwk/toolkit/gdkutils.hpp                      |   39 ++
 src/fwk/toolkit/goocanvas_proxy_header.h          |   38 --
 src/fwk/toolkit/goocanvas_proxy_header.hpp        |   38 ++
 src/fwk/toolkit/imageloader.cpp                   |   10 +-
 src/fwk/toolkit/imageloader.h                     |   41 --
 src/fwk/toolkit/imageloader.hpp                   |   41 ++
 src/fwk/toolkit/metadatawidget.cpp                |    4 +-
 src/fwk/toolkit/metadatawidget.h                  |   70 ---
 src/fwk/toolkit/metadatawidget.hpp                |   70 +++
 src/fwk/toolkit/mimetype.cpp                      |    6 +-
 src/fwk/toolkit/mimetype.h                        |   50 --
 src/fwk/toolkit/mimetype.hpp                      |   50 ++
 src/fwk/toolkit/notification.h                    |   62 --
 src/fwk/toolkit/notification.hpp                  |   62 ++
 src/fwk/toolkit/notificationcenter.cpp            |    6 +-
 src/fwk/toolkit/notificationcenter.h              |   59 --
 src/fwk/toolkit/notificationcenter.hpp            |   59 ++
 src/fwk/toolkit/undo.cpp                          |    6 +-
 src/fwk/toolkit/undo.h                            |   89 ---
 src/fwk/toolkit/undo.hpp                          |   89 +++
 src/fwk/toolkit/widgets/dock-item.cpp             |   24 +-
 src/fwk/toolkit/widgets/dock-item.h               |  158 -----
 src/fwk/toolkit/widgets/dock-item.hpp             |  158 +++++
 src/fwk/toolkit/widgets/dock.cpp                  |    6 +-
 src/fwk/toolkit/widgets/dock.h                    |   99 ---
 src/fwk/toolkit/widgets/dock.hpp                  |   99 +++
 src/fwk/toolkit/widgets/editablehscale.cpp        |    6 +-
 src/fwk/toolkit/widgets/editablehscale.h          |   75 ---
 src/fwk/toolkit/widgets/editablehscale.hpp        |   75 +++
 src/fwk/toolkit/widgets/toolboxitemwidget.cpp     |    6 +-
 src/fwk/toolkit/widgets/toolboxitemwidget.h       |   48 --
 src/fwk/toolkit/widgets/toolboxitemwidget.hpp     |   48 ++
 src/libraryclient/clientimpl.cpp                  |    4 +-
 src/libraryclient/clientimpl.h                    |    4 +-
 src/libraryclient/libraryclient.cpp               |    2 +-
 src/libraryclient/libraryclient.h                 |    4 +-
 src/libraryclient/locallibraryserver.h            |    2 +-
 src/libraryclient/test_worker.cpp                 |    2 +-
 src/niepce/main.cpp                               |    2 +-
 src/niepce/modules/darkroom/darkroommodule.cpp    |   10 +-
 src/niepce/modules/darkroom/darkroommodule.h      |    8 +-
 src/niepce/modules/darkroom/dritemwidget.cpp      |    2 +-
 src/niepce/modules/darkroom/dritemwidget.h        |    4 +-
 src/niepce/modules/darkroom/imagecanvas.cpp       |    2 +-
 src/niepce/modules/darkroom/imagecanvas.h         |    2 +-
 src/niepce/modules/darkroom/toolboxcontroller.cpp |   28 +-
 src/niepce/modules/darkroom/toolboxcontroller.h   |   10 +-
 src/niepce/ui/Makefile.am                         |   11 +-
 src/niepce/ui/dialogs/Makefile.am                 |    2 +
 src/niepce/ui/dialogs/importdialog.cpp            |  121 ++++
 src/niepce/ui/dialogs/importdialog.glade          |  244 ++++++++
 src/niepce/ui/dialogs/importdialog.hpp            |   77 +++
 src/niepce/ui/dialogs/importdialog.ui             |  254 ++++++++
 src/niepce/ui/filmstripcontroller.h               |    6 +-
 src/niepce/ui/imageliststore.cpp                  |   12 +-
 src/niepce/ui/imageliststore.h                    |   12 +-
 src/niepce/ui/importdialog.cpp                    |  121 ----
 src/niepce/ui/importdialog.glade                  |  244 --------
 src/niepce/ui/importdialog.hpp                    |   77 ---
 src/niepce/ui/importdialog.ui                     |  254 --------
 src/niepce/ui/librarymainviewcontroller.cpp       |   12 +-
 src/niepce/ui/librarymainviewcontroller.h         |   38 +-
 src/niepce/ui/metadatapanecontroller.cpp          |   10 +-
 src/niepce/ui/metadatapanecontroller.h            |   70 ---
 src/niepce/ui/metadatapanecontroller.hpp          |   70 +++
 src/niepce/ui/niepceapplication.cpp               |    4 +-
 src/niepce/ui/niepceapplication.hpp               |    8 +-
 src/niepce/ui/niepcewindow.cpp                    |   48 +-
 src/niepce/ui/niepcewindow.hpp                    |   11 +-
 src/niepce/ui/selectioncontroller.cpp             |   10 +-
 src/niepce/ui/selectioncontroller.h               |    4 +-
 src/niepce/ui/workspacecontroller.cpp             |    8 +-
 src/niepce/ui/workspacecontroller.h               |   10 +-
 109 files changed, 2865 insertions(+), 2416 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d51b057..b88cf19 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-03-06  Hubert Figuiere  <hub figuiere net>
+
+	* Rename framework namespace to fwk.
+	* Move dialogs in their directory
+	* Rename some .h to .hpp
+
 2009-03-05  Hubert Figuiere  <hub figuiere net>
 
 	* Kill some warnings in libgdl.
diff --git a/configure.ac b/configure.ac
index acb31de..391d967 100644
--- a/configure.ac
+++ b/configure.ac
@@ -170,6 +170,7 @@ src/Makefile
 src/ext/Makefile
 src/ext/libgdl/Makefile
 src/niepce/ui/Makefile
+src/niepce/ui/dialogs/Makefile
 src/niepce/ui/thumb-view/Makefile
 src/niepce/modules/Makefile
 src/niepce/modules/darkroom/Makefile
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 956bdcc..742d872 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,12 +1,12 @@
 src/fwk/toolkit/metadatawidget.cpp
 src/fwk/toolkit/application.cpp
-src/niepce/ui/importdialog.cpp
-src/niepce/ui/importdialog.glade
+src/niepce/ui/dialogs/importdialog.cpp
+src/niepce/ui/dialogs/importdialog.ui
 src/niepce/ui/librarymainviewcontroller.cpp
 src/niepce/ui/metadatapanecontroller.cpp
 src/niepce/ui/niepceapplication.cpp
 src/niepce/ui/niepcewindow.cpp
-src/niepce/ui/preferences.glade
+src/niepce/ui/preferences.ui
 src/niepce/ui/selectioncontroller.cpp
 src/niepce/ui/workspacecontroller.cpp
 src/niepce/ui/thumb-view/eog-thumb-view.cpp
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
new file mode 100644
index 0000000..921a659
--- /dev/null
+++ b/po/POTFILES.skip
@@ -0,0 +1,3 @@
+src/niepce/ui/dialogs/importdialog.glade
+src/niepce/ui/preferences.glade
+
diff --git a/po/niepce.pot b/po/niepce.pot
index 33c8694..e0b31da 100644
--- a/po/niepce.pot
+++ b/po/niepce.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-06-07 16:45-0400\n"
+"POT-Creation-Date: 2009-03-06 14:16-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL ADDRESS>\n"
 "Language-Team: LANGUAGE <LL li org>\n"
@@ -17,283 +17,724 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: ../src/ui/importdialog.cpp:76
-msgid "Import picture folder"
-msgstr ""
-
-#: ../src/ui/importdialog.cpp:80 ../src/ui/importdialog.glade.h:5
-msgid "Import"
-msgstr ""
-
-#: ../src/ui/importdialog.glade.h:1
-msgid "..."
-msgstr ""
-
-#: ../src/ui/importdialog.glade.h:2
-msgid "<b>Date:</b>"
-msgstr ""
-
-#: ../src/ui/importdialog.glade.h:3
-msgid ""
-"Date is local\n"
-"Date is UTC"
+#: ../../po/../src/fwk/toolkit/application.cpp:44
+msgid "System"
 msgstr ""
 
-#: ../src/ui/importdialog.glade.h:6
-msgid "Import Raw_Studio"
-msgstr ""
-
-#: ../src/ui/importdialog.glade.h:7
-msgid "Import _UFRaw"
-msgstr ""
-
-#: ../src/ui/importdialog.glade.h:8
-msgid "You can still change this after importing the pictures."
-msgstr ""
-
-#: ../src/ui/importdialog.glade.h:9
-msgid "_Directory:"
-msgstr ""
-
-#: ../src/ui/importdialog.glade.h:10
-msgid "_Folders"
-msgstr ""
-
-#: ../src/ui/importdialog.glade.h:11
-msgid "_Import"
-msgstr ""
-
-#: ../src/ui/importdialog.glade.h:12
-msgid "_Options"
+#: ../../po/../src/niepce/ui/dialogs/importdialog.cpp:73
+msgid "Import picture folder"
 msgstr ""
 
-#: ../src/ui/importdialog.glade.h:13
-msgid "gtk-cancel"
+#: ../../po/../src/niepce/ui/dialogs/importdialog.cpp:77
+msgid "Import"
 msgstr ""
 
-#: ../src/ui/librarymainviewcontroller.cpp:146
+#: ../../po/../src/niepce/ui/librarymainviewcontroller.cpp:110
 msgid "Library"
 msgstr ""
 
-#: ../src/ui/librarymainviewcontroller.cpp:150
+#: ../../po/../src/niepce/ui/librarymainviewcontroller.cpp:116
 msgid "Darkroom"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:39
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:43
 msgid "Make:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:40
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:44
 msgid "Model:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:41
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:45
 msgid "Lens:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:45
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:49
 msgid "Exposure Program:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:46
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:50
 msgid "Speed:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:47
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:51
 msgid "Aperture:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:48
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:52
 msgid "ISO:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:49
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:53
 msgid "Exposure Bias:"
 msgstr ""
 
 #. this one is fishy as it hardcode the prefix.
-#: ../src/ui/metadatapanecontroller.cpp:51
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:55
 msgid "Flash:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:52
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:56
 msgid "Flash compensation:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:53
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:57
 msgid "Focal length:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:54
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:58
 msgid "White balance:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:55
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:59
 msgid "Date:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:59
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:63
 msgid "Rating:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:60
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:64
+msgid "Label:"
+msgstr ""
+
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:65
 msgid "Keywords:"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:64
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:69
 msgid "Camera Information"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:67
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:72
 msgid "Shooting Information"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:70
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:75
 msgid "IPTC"
 msgstr ""
 
-#: ../src/ui/metadatapanecontroller.cpp:73
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:78
 msgid "Rights"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:134
+#: ../../po/../src/niepce/ui/metadatapanecontroller.cpp:88
+msgid "Image Properties"
+msgstr ""
+
+#: ../../po/../src/niepce/ui/niepceapplication.cpp:40
+msgid "Niepce Dark"
+msgstr ""
+
+#: ../../po/../src/niepce/ui/niepceapplication.cpp:64
+msgid ""
+"A digital photo application.\n"
+"\n"
+"Build options: "
+msgstr ""
+
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:138
 msgid "Ready"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:220
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:238
 msgid "_Library"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:226
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:244
 msgid "New _Folder..."
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:227
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:245
 msgid "New _Project..."
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:229
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:247
 msgid "_Import..."
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:239
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:257
 msgid "_Edit"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:268
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:286
 msgid "_Image"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:279
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:306
 msgid "Set _Label"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:282
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:307
+msgid "Label _6"
+msgstr ""
+
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:312
+msgid "Label _7"
+msgstr ""
+
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:317
+msgid "Label _8"
+msgstr ""
+
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:322
+msgid "Label _9"
+msgstr ""
+
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:327
+msgid "Edit Labels..."
+msgstr ""
+
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:330
 msgid "Set _Rating"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:283
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:331
 msgid "_No Rating"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:285
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:335
 msgid "_1 Star"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:287
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:339
 msgid "_2 Stars"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:289
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:343
 msgid "_3 Stars"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:291
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:347
 msgid "_4 Stars"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:293
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:351
 msgid "_5 Stars"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:298
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:358
+msgid "_Tools"
+msgstr ""
+
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:360
+msgid "_Hide tools"
+msgstr ""
+
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:364
 msgid "_Help"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:315
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:381
 msgid "Undo "
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:324
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:390
 msgid "Redo "
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:385
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:454
 msgid "Create library"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:389
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:458
 msgid "Create"
 msgstr ""
 
-#: ../src/ui/niepcewindow.cpp:463
+#: ../../po/../src/niepce/ui/niepcewindow.cpp:555
 msgid "Niepce Digital - "
 msgstr ""
 
-#.
-#. Local Variables:
-#. mode:c++
-#. c-file-style:"stroustrup"
-#. c-file-offsets:((innamespace . 0))
-#. indent-tabs-mode:nil
-#. fill-column:99
-#. End:
-#.
-#: ../src/ui/preferences.glade.h:1
-msgid ""
-"System\n"
-"Dark"
-msgstr ""
-
-#: ../src/ui/preferences.glade.h:3
-msgid "_General"
-msgstr ""
-
-#: ../src/ui/preferences.glade.h:4
-msgid "_Reopen Library"
-msgstr ""
-
-#: ../src/ui/preferences.glade.h:5
-msgid "_Theme:\t"
+#: ../../po/../src/niepce/ui/selectioncontroller.cpp:186
+msgid "Set Label"
 msgstr ""
 
-#: ../src/ui/preferences.glade.h:6
-msgid "_User Interface"
+#: ../../po/../src/niepce/ui/selectioncontroller.cpp:207
+msgid "Set Rating"
 msgstr ""
 
-#: ../src/ui/workspacecontroller.cpp:197
+#: ../../po/../src/niepce/ui/workspacecontroller.cpp:197
 msgid "Pictures"
 msgstr ""
 
-#: ../src/ui/workspacecontroller.cpp:201
+#: ../../po/../src/niepce/ui/workspacecontroller.cpp:201
 msgid "Projects"
 msgstr ""
 
-#: ../src/ui/workspacecontroller.cpp:205
+#: ../../po/../src/niepce/ui/workspacecontroller.cpp:205
 msgid "Keywords"
 msgstr ""
 
 #. TODO make it a mnemonic
-#: ../src/ui/workspacecontroller.cpp:218
+#: ../../po/../src/niepce/ui/workspacecontroller.cpp:218
 msgid "_Workspace"
 msgstr ""
 
-#: ../src/ui/thumb-view/eog-thumb-view.cpp:423
+#: ../../po/../src/niepce/ui/thumb-view/eog-thumb-view.cpp:425
 msgid "pixel"
 msgid_plural "pixels"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/ui/thumb-view/eog-thumb-view.cpp:434
+#: ../../po/../src/niepce/ui/thumb-view/eog-thumb-view.cpp:436
 msgid "Taken on"
 msgstr ""
+
+#: ../../po/../src/niepce/stock.cpp:46
+msgid "Rotate L_eft"
+msgstr ""
+
+#: ../../po/../src/niepce/stock.cpp:49
+msgid "Rotate R_ight"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:35
+msgid "Develop"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:48
+msgid "Crop"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:51
+msgid "Tilt"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:53
+msgid "White balance"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:56
+msgid "Color temperature"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:58
+msgid "Tone and colour"
+msgstr ""
+
+#. s->signal_value_changed().connect();
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:62
+msgid "Exposure"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:64
+msgid "Recovery"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:66
+msgid "Fill Light"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:68
+msgid "Blacks"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:70
+msgid "Brightness"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:72
+msgid "Contrast"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:74
+msgid "Saturation"
+msgstr ""
+
+#: ../../po/../src/niepce/modules/darkroom/toolboxcontroller.cpp:76
+msgid "Vibrance"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-bar.c:108
+msgid "Master"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-bar.c:109
+msgid "GdlDockMaster object which the dockbar widget is attached to"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-bar.c:116
+msgid "Dockbar style"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-bar.c:117
+msgid "Dockbar style to show items on it"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item-grip.c:395
+msgid "Iconify"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item-grip.c:395
+msgid "Iconify this dock"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item-grip.c:397
+msgid "Close"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item-grip.c:397
+msgid "Close this dock"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item-grip.c:706
+#: ../../po/../src/ext/libgdl/gdl-dock-tablabel.c:128
+msgid "Controlling dock item"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item-grip.c:707
+msgid "Dockitem which 'owns' this grip"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:287
+msgid "Orientation"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:288
+msgid "Orientation of the docking item"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:303
+msgid "Resizable"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:304
+msgid "If set, the dock item can be resized when docked in a panel"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:311
+msgid "Item behavior"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:312
+msgid ""
+"General behavior for the dock item (i.e. whether it can float, if it's "
+"locked, etc.)"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:320
+#: ../../po/../src/ext/libgdl/gdl-dock-master.c:151
+msgid "Locked"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:321
+msgid ""
+"If set, the dock item cannot be dragged around and it doesn't show a grip"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:329
+msgid "Preferred width"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:330
+msgid "Preferred width for the dock item"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:336
+msgid "Preferred height"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:337
+msgid "Preferred height for the dock item"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:616
+#, c-format
+msgid ""
+"You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or "
+"some other compound dock object."
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:623
+#, c-format
+msgid ""
+"Attempting to add a widget with type %s to a %s, but it can only contain one "
+"widget at a time; it already contains a widget of type %s"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:1345
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:1390
+#, c-format
+msgid "Unsupported docking strategy %s in dock object of type %s"
+msgstr ""
+
+#. UnLock menuitem
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:1479
+msgid "UnLock"
+msgstr ""
+
+#. Hide menuitem.
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:1486
+msgid "Hide"
+msgstr ""
+
+#. Lock menuitem
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:1491
+msgid "Lock"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-item.c:1717
+#, c-format
+msgid "Attempt to bind an unbound item %p"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-master.c:144
+#: ../../po/../src/ext/libgdl/gdl-dock.c:183
+msgid "Default title"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-master.c:145
+msgid "Default title for newly created floating docks"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-master.c:152
+msgid ""
+"If is set to 1, all the dock items bound to the master are locked; if it's "
+"0, all are unlocked; -1 indicates inconsistency among the items"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-master.c:160
+#: ../../po/../src/ext/libgdl/gdl-switcher.c:706
+msgid "Switcher Style"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-master.c:161
+#: ../../po/../src/ext/libgdl/gdl-switcher.c:707
+msgid "Switcher buttons style"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-master.c:168
+msgid "Expand direction"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-master.c:169
+msgid ""
+"Allow the master's dock items to expand their container dock objects in the "
+"given direction"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-master.c:794
+#, c-format
+msgid ""
+"master %p: unable to add object %p[%s] to the hash.  There already is an "
+"item with that name (%p)."
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-master.c:967
+#, c-format
+msgid ""
+"The new dock controller %p is automatic.  Only manual dock objects should be "
+"named controller."
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-notebook.c:134
+msgid "Page"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-notebook.c:135
+msgid "The index of the current page"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:120
+msgid "Name"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:121
+msgid "Unique name for identifying the dock object"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:128
+msgid "Long name"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:129
+msgid "Human readable name for the dock object"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:135
+msgid "Stock Icon"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:136
+msgid "Stock icon for the dock object"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:142
+msgid "Pixbuf Icon"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:143
+msgid "Pixbuf icon for the dock object"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:148
+msgid "Dock master"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:149
+msgid "Dock master this dock object is bound to"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:434
+#, c-format
+msgid ""
+"Call to gdl_dock_object_dock in a dock object %p (object type is %s) which "
+"hasn't implemented this method"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:563
+#, c-format
+msgid ""
+"Dock operation requested in a non-bound object %p. The application might "
+"crash"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:570
+#, c-format
+msgid "Cannot dock %p to %p because they belong to different masters"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-object.c:612
+#, c-format
+msgid ""
+"Attempt to bind to %p an already bound dock object %p (current master: %p)"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-paned.c:132
+msgid "Position"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-paned.c:133
+msgid "Position of the divider in pixels"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:143
+msgid "Sticky"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:144
+msgid ""
+"Whether the placeholder will stick to its host or move up the hierarchy when "
+"the host is redocked"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:151
+msgid "Host"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:152
+msgid "The dock object this placeholder is attached to"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:159
+msgid "Next placement"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:160
+msgid ""
+"The position an item will be docked to our host if a request is made to dock "
+"to us"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:169
+#: ../../po/../src/ext/libgdl/gdl-dock.c:190
+msgid "Width"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:170
+msgid "Width for the widget when it's attached to the placeholder"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:177
+#: ../../po/../src/ext/libgdl/gdl-dock.c:198
+msgid "Height"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:178
+msgid "Height for the widget when it's attached to the placeholder"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:184
+msgid "Floating Toplevel"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:185
+msgid "Whether the placeholder is standing in for a floating toplevel dock"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:191
+msgid "X-Coordinate"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:192
+msgid "X coordinate for dock when floating"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:198
+msgid "Y-Coordinate"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:199
+msgid "Y coordinate for dock when floating"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:494
+msgid "Attempt to dock a dock object to an unbound placeholder"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:618
+#, c-format
+msgid "Got a detach signal from an object (%p) who is not our host %p"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-placeholder.c:643
+#, c-format
+msgid ""
+"Something weird happened while getting the child placement for %p from "
+"parent %p"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock-tablabel.c:129
+msgid "Dockitem which 'owns' this tablabel"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock.c:175
+msgid "Floating"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock.c:176
+msgid "Whether the dock is floating in its own window"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock.c:184
+msgid "Default title for the newly created floating docks"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock.c:191
+msgid "Width for the dock when it's of floating type"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock.c:199
+msgid "Height for the dock when it's of floating type"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock.c:206
+msgid "Float X"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock.c:207
+msgid "X coordinate for a floating dock"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock.c:214
+msgid "Float Y"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock.c:215
+msgid "Y coordinate for a floating dock"
+msgstr ""
+
+#: ../../po/../src/ext/libgdl/gdl-dock.c:499
+#, c-format
+msgid "Dock #%d"
+msgstr ""
diff --git a/src/engine/db/Makefile.am b/src/engine/db/Makefile.am
index 863ceba..65bdcfe 100644
--- a/src/engine/db/Makefile.am
+++ b/src/engine/db/Makefile.am
@@ -35,5 +35,5 @@ libniepcedb_a_SOURCES = library.cpp \
 	keyword.h keyword.cpp \
 	storage.h storage.cpp \
 	fsfile.h fsfile.cpp \
-	filebundle.h filebundle.cpp \
+	filebundle.hpp filebundle.cpp \
 	metadata.h
diff --git a/src/engine/db/filebundle.cpp b/src/engine/db/filebundle.cpp
index 43ed814..a37407d 100644
--- a/src/engine/db/filebundle.cpp
+++ b/src/engine/db/filebundle.cpp
@@ -21,7 +21,7 @@
 
 #include "filebundle.hpp"
 #include "fwk/utils/debug.h"
-#include "fwk/toolkit/mimetype.h"
+#include "fwk/toolkit/mimetype.hpp"
 
 
 namespace db {
@@ -30,7 +30,7 @@ void
 FileBundle::add(const boost::filesystem::path & path)
 {
     // TODO make it more reliable with more tests.
-    framework::MimeType type(path);
+    fwk::MimeType type(path);
     
     if(type.isImage()) {
         if(type.isDigicamRaw()) {
diff --git a/src/engine/db/libfile.cpp b/src/engine/db/libfile.cpp
index 621b820..589d672 100644
--- a/src/engine/db/libfile.cpp
+++ b/src/engine/db/libfile.cpp
@@ -94,7 +94,7 @@ void LibFile::setMetaData(int meta, int32_t v)
  * @return the filetype
  * @todo: add the Video, JPEG+RAW file types.
  */
-LibFile::FileType LibFile::mimetype_to_filetype(framework::MimeType mime)
+LibFile::FileType LibFile::mimetype_to_filetype(fwk::MimeType mime)
 {
     if(mime.isDigicamRaw())
     {
diff --git a/src/engine/db/libfile.h b/src/engine/db/libfile.h
index ff4478e..771504d 100644
--- a/src/engine/db/libfile.h
+++ b/src/engine/db/libfile.h
@@ -25,7 +25,7 @@
 #include <boost/shared_ptr.hpp>
 #include <boost/filesystem/path.hpp>
 
-#include "fwk/toolkit/mimetype.h"
+#include "fwk/toolkit/mimetype.hpp"
 #include "engine/db/keyword.h"
 #include "engine/db/storage.h"
 #include "engine/db/fsfile.h"
@@ -48,7 +48,7 @@ public:
         FILE_TYPE_VIDEO = 4
     };
 
-    static FileType mimetype_to_filetype(framework::MimeType mime);
+    static FileType mimetype_to_filetype(fwk::MimeType mime);
 
     LibFile(int id, int folderId, int fsfileid, 
             const boost::filesystem::path & p,
diff --git a/src/engine/db/library.cpp b/src/engine/db/library.cpp
index 1a5b453..e5c6f6c 100644
--- a/src/engine/db/library.cpp
+++ b/src/engine/db/library.cpp
@@ -36,10 +36,10 @@
 #include "fwk/utils/db/sqlite/sqlitecnxmgrdrv.h"
 #include "fwk/utils/db/sqlite/sqlitecnxdrv.h"
 #include "fwk/utils/db/sqlstatement.h"
-#include "fwk/toolkit/notificationcenter.h"
-#include "fwk/toolkit/mimetype.h"
+#include "fwk/toolkit/notificationcenter.hpp"
+#include "fwk/toolkit/mimetype.hpp"
 
-using framework::NotificationCenter;
+using fwk::NotificationCenter;
 
 namespace bfs = boost::filesystem;
 
@@ -77,12 +77,12 @@ void Library::triggerRewriteXmp(void)
 
 void Library::notify(NotifyType t, const boost::any & param)
 {
-    framework::NotificationCenter::Ptr nc(m_notif_center.lock());
+    fwk::NotificationCenter::Ptr nc(m_notif_center.lock());
     if(nc) {
         DBG_OUT("notif");
         // pass the notification
-        framework::Notification::Ptr n(new framework::Notification(niepce::NOTIFICATION_LIB));
-        framework::Notification::mutex_t::scoped_lock lock(n->mutex());
+        fwk::Notification::Ptr n(new fwk::Notification(niepce::NOTIFICATION_LIB));
+        fwk::Notification::mutex_t::scoped_lock lock(n->mutex());
         LibNotification ln;
         ln.type = t;
         ln.param = param;
@@ -257,7 +257,7 @@ int Library::addFile(int folder_id, const bfs::path & file, bool manage)
     try {
         int32_t rating, label_id, orientation;
         std::string label;  
-        framework::MimeType mime = framework::MimeType(file);
+        fwk::MimeType mime = fwk::MimeType(file);
         db::LibFile::FileType file_type = db::LibFile::mimetype_to_filetype(mime);
         utils::XmpMeta meta(file, file_type == db::LibFile::FILE_TYPE_RAW);
         label_id = 0;
diff --git a/src/engine/db/library.h b/src/engine/db/library.h
index 54d03f5..1bb69db 100644
--- a/src/engine/db/library.h
+++ b/src/engine/db/library.h
@@ -29,7 +29,7 @@
 #include <boost/any.hpp>
 #include <boost/filesystem/path.hpp>
 
-#include "fwk/toolkit/notificationcenter.h"
+#include "fwk/toolkit/notificationcenter.hpp"
 #include "fwk/utils/db/iconnectiondriver.h"
 #include "fwk/utils/db/iconnectionmanagerdriver.h"
 #include "engine/db/libfolder.h"
@@ -63,7 +63,7 @@ namespace db {
 			NOTIFY_FOLDER_COUNTED
 		} NotifyType;
 
-		Library(const std::string & dir, const framework::NotificationCenter::Ptr & nc);
+		Library(const std::string & dir, const fwk::NotificationCenter::Ptr & nc);
 		virtual ~Library();
 
 		bool ok()
@@ -197,7 +197,7 @@ namespace db {
 		boost::filesystem::path           m_dbname;
 		db::IConnectionManagerDriver::Ptr m_dbmgr;
 		db::IConnectionDriver::Ptr        m_dbdrv;
-		boost::weak_ptr<framework::NotificationCenter>  m_notif_center;
+		boost::weak_ptr<fwk::NotificationCenter>  m_notif_center;
 		bool                              m_inited;
 	};
 
diff --git a/src/engine/db/test_library.cpp b/src/engine/db/test_library.cpp
index 903e621..4d09124 100644
--- a/src/engine/db/test_library.cpp
+++ b/src/engine/db/test_library.cpp
@@ -32,7 +32,7 @@
 //BOOST_AUTO_TEST_CASE(library_test)
 int test_main(int, char *[])
 {
-	db::Library lib("./", framework::NotificationCenter::Ptr());
+	db::Library lib("./", fwk::NotificationCenter::Ptr());
 
 	BOOST_CHECK(lib.checkDatabaseVersion() == DB_SCHEMA_VERSION);
 
diff --git a/src/engine/library/thumbnailcache.cpp b/src/engine/library/thumbnailcache.cpp
index 4994683..f95e127 100644
--- a/src/engine/library/thumbnailcache.cpp
+++ b/src/engine/library/thumbnailcache.cpp
@@ -28,8 +28,8 @@
 
 #include "niepce/notifications.h"
 #include "fwk/utils/debug.h"
-#include "fwk/toolkit/mimetype.h"
-#include "fwk/toolkit/gdkutils.h"
+#include "fwk/toolkit/mimetype.hpp"
+#include "fwk/toolkit/gdkutils.hpp"
 #include "thumbnailcache.h"
 #include "thumbnailnotification.h"
 
@@ -38,7 +38,7 @@ using db::LibFile;
 namespace library {
 
 	ThumbnailCache::ThumbnailCache(const boost::filesystem::path & dir,
-								   const framework::NotificationCenter::Ptr & nc)
+								   const fwk::NotificationCenter::Ptr & nc)
 		: m_cacheDir(dir),
 		  m_notif_center(nc)
 	{
@@ -71,7 +71,7 @@ namespace library {
         w = task->width();
         h = task->height();
 
-		framework::MimeType mime_type(filename);
+		fwk::MimeType mime_type(filename);
 
 
 		DBG_OUT("MIME type %s", mime_type.string().c_str());
@@ -91,7 +91,7 @@ namespace library {
             try {
                 pix = Gdk::Pixbuf::create_from_file(filename, w, h, true);
                 if(pix) {
-                    pix = framework::gdkpixbuf_exif_rotate(pix, task->file()->orientation());
+                    pix = fwk::gdkpixbuf_exif_rotate(pix, task->file()->orientation());
                 }
             }
             catch(const Glib::Error & e) 
@@ -109,12 +109,12 @@ namespace library {
 		if(pix)
 		{
             if((w < pix->get_width()) || (h < pix->get_height())) {
-                pix = framework::gdkpixbuf_scale_to_fit(pix, std::min(w,h));
+                pix = fwk::gdkpixbuf_scale_to_fit(pix, std::min(w,h));
             }
-			framework::NotificationCenter::Ptr nc(m_notif_center);
+			fwk::NotificationCenter::Ptr nc(m_notif_center);
 			if(nc) {
 				// pass the notification
-				framework::Notification::Ptr n(new framework::Notification(niepce::NOTIFICATION_THUMBNAIL));
+				fwk::Notification::Ptr n(new fwk::Notification(niepce::NOTIFICATION_THUMBNAIL));
 				ThumbnailNotification tn;
 				tn.id = task->file()->id();
 				tn.width = pix->get_width();
diff --git a/src/engine/library/thumbnailcache.h b/src/engine/library/thumbnailcache.h
index bd7352a..4e7050f 100644
--- a/src/engine/library/thumbnailcache.h
+++ b/src/engine/library/thumbnailcache.h
@@ -25,7 +25,7 @@
 #include <boost/weak_ptr.hpp>
 
 #include "fwk/utils/worker.h"
-#include "fwk/toolkit/notificationcenter.h"
+#include "fwk/toolkit/notificationcenter.hpp"
 #include "engine/db/libfile.h"
 
 namespace library {
@@ -58,7 +58,7 @@ namespace library {
 	{
 	public:
 		ThumbnailCache(const boost::filesystem::path & dir,
-					   const framework::NotificationCenter::Ptr & nc);
+					   const fwk::NotificationCenter::Ptr & nc);
 		~ThumbnailCache();
 
 		void request(const db::LibFile::ListPtr & fl);
@@ -68,7 +68,7 @@ namespace library {
 		virtual void execute(const  ThumbnailTask::Ptr & task);
 	private:
 		boost::filesystem::path         m_cacheDir;
-		boost::weak_ptr<framework::NotificationCenter> m_notif_center;
+		boost::weak_ptr<fwk::NotificationCenter> m_notif_center;
 	};
 
 }
diff --git a/src/fwk/toolkit/Makefile.am b/src/fwk/toolkit/Makefile.am
index 231ae41..bc3a4ed 100644
--- a/src/fwk/toolkit/Makefile.am
+++ b/src/fwk/toolkit/Makefile.am
@@ -9,25 +9,26 @@ INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/src/ext \
 
 noinst_LIBRARIES = libniepceframework.a
 
-noinst_HEADERS = configuration.h application.hpp \
-	frame.hpp controller.h goocanvas_proxy_header.h \
-	gconf_proxy_header.h
+noinst_HEADERS =   \
+	  goocanvas_proxy_header.hpp
 
-libniepceframework_a_SOURCES = configuration.cpp \
-	application.cpp frame.cpp controller.cpp \
-	notification.h \
-	mimetype.h mimetype.cpp \
-	imageloader.h imageloader.cpp \
-	notificationcenter.h notificationcenter.cpp \
-	configdatabinder.h configdatabinder.cpp \
-	gdkutils.h gdkutils.cpp \
+libniepceframework_a_SOURCES = configuration.hpp configuration.cpp \
+	application.hpp application.cpp \
+	frame.hpp frame.cpp \
+	controller.hpp controller.cpp \
+	notification.hpp \
+	mimetype.hpp mimetype.cpp \
+	imageloader.hpp imageloader.cpp \
+	notificationcenter.hpp notificationcenter.cpp \
+	configdatabinder.hpp configdatabinder.cpp \
+	gdkutils.hpp gdkutils.cpp \
 	gtkutils.hpp gtkutils.cpp \
-	widgets/toolboxitemwidget.h widgets/toolboxitemwidget.cpp \
-	widgets/editablehscale.h widgets/editablehscale.cpp \
-	widgets/dock-item.cpp widgets/dock-item.h \
-	widgets/dock.cpp widgets/dock.h \
-	dockable.h dockable.cpp \
-	metadatawidget.h metadatawidget.cpp \
-	undo.h undo.cpp \
-	command.h \
+	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 \
+	undo.hpp undo.cpp \
+	command.hpp \
 	$(NULL)
diff --git a/src/fwk/toolkit/application.cpp b/src/fwk/toolkit/application.cpp
index b0a2410..38897e6 100644
--- a/src/fwk/toolkit/application.cpp
+++ b/src/fwk/toolkit/application.cpp
@@ -33,7 +33,7 @@
 #include "frame.hpp"
 
 
-namespace framework {
+namespace fwk {
 
 Application::Ptr Application::m_application;
 
diff --git a/src/fwk/toolkit/application.hpp b/src/fwk/toolkit/application.hpp
index 444cbc4..aa69b7b 100644
--- a/src/fwk/toolkit/application.hpp
+++ b/src/fwk/toolkit/application.hpp
@@ -27,12 +27,12 @@
 #include <gtkmm/uimanager.h>
 #include <gtkmm/icontheme.h>
 
-#include "fwk/toolkit/configuration.h"
+#include "fwk/toolkit/configuration.hpp"
 #include "fwk/toolkit/frame.hpp"
-#include "fwk/toolkit/undo.h"
+#include "fwk/toolkit/undo.hpp"
 
 
-namespace framework {
+namespace fwk {
 
 class Application 
     : public Controller
diff --git a/src/fwk/toolkit/command.h b/src/fwk/toolkit/command.h
deleted file mode 100644
index f05cdf5..0000000
--- a/src/fwk/toolkit/command.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * niepce - framework/command.h
- *
- * Copyright (C) 2008 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef __FRAMEWORK_COMMAND_H_
-#define __FRAMEWORK_COMMAND_H_
-
-#include <boost/function.hpp>
-
-namespace framework {
-
-class Command
-{
-public:
-    boost::function<void (void)> undo;
-    boost::function<void (void)> redo;
-};
-
-
-#endif
-
-}
-
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0))
-  indent-tabs-mode:nil
-  fill-column:99
-  End:
-*/
diff --git a/src/fwk/toolkit/command.hpp b/src/fwk/toolkit/command.hpp
new file mode 100644
index 0000000..b313718
--- /dev/null
+++ b/src/fwk/toolkit/command.hpp
@@ -0,0 +1,48 @@
+/*
+ * niepce - fwk/command.h
+ *
+ * Copyright (C) 2008 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef __FWK_COMMAND_H_
+#define __FWK_COMMAND_H_
+
+#include <boost/function.hpp>
+
+namespace fwk {
+
+class Command
+{
+public:
+    boost::function<void (void)> undo;
+    boost::function<void (void)> redo;
+};
+
+
+#endif
+
+}
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
diff --git a/src/fwk/toolkit/configdatabinder.cpp b/src/fwk/toolkit/configdatabinder.cpp
index 2f32ed5..6242cae 100644
--- a/src/fwk/toolkit/configdatabinder.cpp
+++ b/src/fwk/toolkit/configdatabinder.cpp
@@ -1,7 +1,7 @@
 /*
- * niepce - framework/configdatabinder.cpp
+ * niepce - fwk/toolkit/configdatabinder.cpp
  *
- * Copyright (C) 2007 Hubert Figuiere
+ * Copyright (C) 2007-2009 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
@@ -17,9 +17,9 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "configdatabinder.h"
+#include "configdatabinder.hpp"
 
-namespace framework {
+namespace fwk {
 
 
 ConfigDataBinderBase::ConfigDataBinderBase(const property_t & property,
diff --git a/src/fwk/toolkit/configdatabinder.h b/src/fwk/toolkit/configdatabinder.h
deleted file mode 100644
index d4d36ab..0000000
--- a/src/fwk/toolkit/configdatabinder.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * niepce - framework/configdatabinder.h
- *
- * Copyright (C) 2007 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _FRAMEWORK_CONFIGDATABINDER_H_
-#define _FRAMEWORK_CONFIGDATABINDER_H_
-
-#include <exception>
-#include <string>
-
-#include <boost/lexical_cast.hpp>
-
-#include <glibmm/propertyproxy.h>
-
-#include "fwk/utils/debug.h"
-#include "fwk/utils/databinder.h"
-#include "fwk/toolkit//configuration.h"
-
-namespace framework {
-
-class ConfigDataBinderBase
-	: public utils::DataBinderBase
-{
-public:
-	typedef Glib::PropertyProxy_Base property_t;
-
-	ConfigDataBinderBase(const property_t & property,
-						 Configuration & config, const std::string & key);
-	
-	virtual void on_changed(void) = 0;
-protected:
-	property_t        m_property;
-	std::string       m_config_key;
-	Configuration   & m_config;
-	sigc::connection  m_conn;
-};
-
-template <class T>
-class ConfigDataBinder
-	: public ConfigDataBinderBase
-{
-public:
-	typedef Glib::PropertyProxy<T> property_t;
-
-	ConfigDataBinder(const property_t & property,
-					 Configuration & config, const std::string & key)
-		: ConfigDataBinderBase(property, config, key)
-		{
-			Glib::ustring value;
-			value = m_config.getValue(m_config_key, "");
-			if(!value.empty()) {
-				try {
-					static_cast<property_t&>(m_property).set_value(
-						boost::lexical_cast<T>(value));
-				}
-				catch(const boost::bad_lexical_cast &)
-				{
-					ERR_OUT("exception converting %s", value.c_str());
-				}
-			}
-		}
-
-	virtual ~ConfigDataBinder()
-		{
-			try {
-				m_config.setValue(m_config_key, 
-								  boost::lexical_cast<std::string>(m_value));
-			}
-			catch(const boost::bad_lexical_cast &)
-			{
-				ERR_OUT("exception");
-			}
-		}
-
-
-	virtual void on_changed(void)
-		{
-			try {
-				m_value = static_cast<property_t&>(m_property).get_value();
-			}
-			catch(const std::exception &)
-			{
-				ERR_OUT("exception");
-			}
-		}
-private:
-	T m_value;
-};
-
-
-}
-
-
-#endif
diff --git a/src/fwk/toolkit/configdatabinder.hpp b/src/fwk/toolkit/configdatabinder.hpp
new file mode 100644
index 0000000..d9dcad7
--- /dev/null
+++ b/src/fwk/toolkit/configdatabinder.hpp
@@ -0,0 +1,110 @@
+/*
+ * niepce - fwk/toolkit/configdatabinder.h
+ *
+ * Copyright (C) 2007-2009 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef _FRAMEWORK_CONFIGDATABINDER_H_
+#define _FRAMEWORK_CONFIGDATABINDER_H_
+
+#include <exception>
+#include <string>
+
+#include <boost/lexical_cast.hpp>
+
+#include <glibmm/propertyproxy.h>
+
+#include "fwk/utils/debug.h"
+#include "fwk/utils/databinder.h"
+#include "fwk/toolkit/configuration.hpp"
+
+namespace fwk {
+
+class ConfigDataBinderBase
+	: public utils::DataBinderBase
+{
+public:
+	typedef Glib::PropertyProxy_Base property_t;
+
+	ConfigDataBinderBase(const property_t & property,
+						 Configuration & config, const std::string & key);
+	
+	virtual void on_changed(void) = 0;
+protected:
+	property_t        m_property;
+	std::string       m_config_key;
+	Configuration   & m_config;
+	sigc::connection  m_conn;
+};
+
+template <class T>
+class ConfigDataBinder
+	: public ConfigDataBinderBase
+{
+public:
+	typedef Glib::PropertyProxy<T> property_t;
+
+	ConfigDataBinder(const property_t & property,
+					 Configuration & config, const std::string & key)
+		: ConfigDataBinderBase(property, config, key)
+		{
+			Glib::ustring value;
+			value = m_config.getValue(m_config_key, "");
+			if(!value.empty()) {
+				try {
+					static_cast<property_t&>(m_property).set_value(
+						boost::lexical_cast<T>(value));
+				}
+				catch(const boost::bad_lexical_cast &)
+				{
+					ERR_OUT("exception converting %s", value.c_str());
+				}
+			}
+		}
+
+	virtual ~ConfigDataBinder()
+		{
+			try {
+				m_config.setValue(m_config_key, 
+								  boost::lexical_cast<std::string>(m_value));
+			}
+			catch(const boost::bad_lexical_cast &)
+			{
+				ERR_OUT("exception");
+			}
+		}
+
+
+	virtual void on_changed(void)
+		{
+			try {
+				m_value = static_cast<property_t&>(m_property).get_value();
+			}
+			catch(const std::exception &)
+			{
+				ERR_OUT("exception");
+			}
+		}
+private:
+	T m_value;
+};
+
+
+}
+
+
+#endif
diff --git a/src/fwk/toolkit/configuration.cpp b/src/fwk/toolkit/configuration.cpp
index c90f46a..9c497a0 100644
--- a/src/fwk/toolkit/configuration.cpp
+++ b/src/fwk/toolkit/configuration.cpp
@@ -23,79 +23,89 @@
 #include <gconf/gconf-client.h>
 
 #include "fwk/utils/debug.h"
-#include "configuration.h"
+#include "configuration.hpp"
 
 
-namespace framework {
+namespace fwk {
 
-	Configuration::Configuration(const Glib::ustring & root)
+Configuration::Configuration(const Glib::ustring & root)
 		: m_gconf(gconf_client_get_default()),
 		  m_root(root)
-	{
-	}
+{
+}
 
 
-	Configuration::~Configuration()
-	{
-	}
+Configuration::~Configuration()
+{
+}
 
 
-	bool Configuration::hasKey(const Glib::ustring & key) const
-	{
+bool Configuration::hasKey(const Glib::ustring & key) const
+{
 		//
 		bool found = true;
 
-        GConfValue * v = gconf_client_get(m_gconf,
-                                          Glib::ustring(m_root + "/" + key).c_str(),
-                                          NULL);
-        found = (v != NULL);
-        if(v) {
-            gconf_value_free(v);
-        }
-        else {
-			DBG_OUT("key %s not found", key.c_str());
-        }
+    GConfValue * v = gconf_client_get(m_gconf,
+                                      Glib::ustring(m_root + "/" + key).c_str(),
+                                      NULL);
+    found = (v != NULL);
+    if(v) {
+        gconf_value_free(v);
+    }
+    else {
+        DBG_OUT("key %s not found", key.c_str());
+    }
 
 		return found;
-	}
+}
 
 
-	const Glib::ustring Configuration::getValue(const Glib::ustring & key,
-												const Glib::ustring & def) const
-	{
+const Glib::ustring Configuration::getValue(const Glib::ustring & key,
+                                            const Glib::ustring & def) const
+{
 		Glib::ustring value;
-        GError *err = NULL;
-        gchar* v = gconf_client_get_string(m_gconf,
-                                           Glib::ustring(m_root + "/" + key).c_str(),
-                                           &err);
-
-        if(!v) {
-            value = def;
-            if(err) {
-                DBG_OUT("Exception raised: %s", err->message);
-                g_error_free(err);
-            }
-		}
-        else {
-            value = v;
-            g_free(v);
+    GError *err = NULL;
+    gchar* v = gconf_client_get_string(m_gconf,
+                                       Glib::ustring(m_root + "/" + key).c_str(),
+                                       &err);
+
+    if(!v) {
+        value = def;
+        if(err) {
+            DBG_OUT("Exception raised: %s", err->message);
+            g_error_free(err);
         }
+		}
+    else {
+        value = v;
+        g_free(v);
+    }
 
 		return value;
-	}
-
-	void Configuration::setValue(const Glib::ustring & key, 
-								 const Glib::ustring & value)
-	{
-        GError *err = NULL;
-        gboolean ret = gconf_client_set_string(m_gconf, 
-                                               Glib::ustring(m_root + "/" + key).c_str(), 
-                                               value.c_str(), &err);
+}
+
+void Configuration::setValue(const Glib::ustring & key, 
+                             const Glib::ustring & value)
+{
+    GError *err = NULL;
+    gboolean ret = gconf_client_set_string(m_gconf, 
+                                           Glib::ustring(m_root + "/" + key).c_str(), 
+                                           value.c_str(), &err);
         
-        if(ret && err) {
-            DBG_OUT("Exception raised: %s", err->message);
-            g_error_free(err);
+    if(ret && err) {
+        DBG_OUT("Exception raised: %s", err->message);
+        g_error_free(err);
 		}
-	}
+}
 
 }
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0))
+  indent-tabs-mode:nil
+  fill-column:80
+  End:
+*/
diff --git a/src/fwk/toolkit/configuration.h b/src/fwk/toolkit/configuration.h
deleted file mode 100644
index 64fa8ca..0000000
--- a/src/fwk/toolkit/configuration.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * niepce - framework/configuration.h
- *
- * Copyright (C) 2007-2008 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _FRAMEWORK_CONFIGURATION_H_
-#define _FRAMEWORK_CONFIGURATION_H_
-
-#include <gconf/gconf-client.h>
-
-#include <glibmm/ustring.h>
-#include <glibmm/refptr.h>
-
-
-namespace framework {
-
-	class Configuration
-	{
-	public:
-		Configuration(const Glib::ustring & root);
-		~Configuration();
-
-		bool hasKey(const Glib::ustring & key) const;
-		const Glib::ustring getValue(const Glib::ustring & key,
-									 const Glib::ustring & def) const;
-
-		void setValue(const Glib::ustring & key, const Glib::ustring & value);
-	private:
-        GConfClient *                       m_gconf;
-		Glib::ustring                       m_root;
-	};
-
-}
-
-#endif
diff --git a/src/fwk/toolkit/configuration.hpp b/src/fwk/toolkit/configuration.hpp
new file mode 100644
index 0000000..d76f7b3
--- /dev/null
+++ b/src/fwk/toolkit/configuration.hpp
@@ -0,0 +1,59 @@
+/*
+ * niepce - fwk/toolkit/configuration.hpp
+ *
+ * Copyright (C) 2007-2009 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef _FRAMEWORK_CONFIGURATION_H_
+#define _FRAMEWORK_CONFIGURATION_H_
+
+#include <gconf/gconf-client.h>
+
+#include <glibmm/ustring.h>
+#include <glibmm/refptr.h>
+
+
+namespace fwk {
+
+class Configuration
+{
+public:
+		Configuration(const Glib::ustring & root);
+		~Configuration();
+
+		bool hasKey(const Glib::ustring & key) const;
+		const Glib::ustring getValue(const Glib::ustring & key,
+                                 const Glib::ustring & def) const;
+
+		void setValue(const Glib::ustring & key, const Glib::ustring & value);
+private:
+    GConfClient *                       m_gconf;
+		Glib::ustring                       m_root;
+};
+
+}
+
+#endif
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0))
+  indent-tabs-mode:nil
+  fill-column:80
+  End:
+*/
diff --git a/src/fwk/toolkit/controller.cpp b/src/fwk/toolkit/controller.cpp
index 89afb14..4e98b85 100644
--- a/src/fwk/toolkit/controller.cpp
+++ b/src/fwk/toolkit/controller.cpp
@@ -1,7 +1,7 @@
 /*
- * niepce - framework/controller.cpp
+ * niepce - fwk/toolkit/controller.cpp
  *
- * Copyright (C) 2007 Hubert Figuiere
+ * Copyright (C) 2007-2009 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,10 +22,10 @@
 #include <gtkmm/widget.h>
 
 #include "fwk/utils/debug.h"
-#include "controller.h"
+#include "controller.hpp"
 
 
-namespace framework {
+namespace fwk {
 
 Controller::Controller()
     : m_widget(NULL)
diff --git a/src/fwk/toolkit/controller.h b/src/fwk/toolkit/controller.h
deleted file mode 100644
index d275d32..0000000
--- a/src/fwk/toolkit/controller.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * niepce - framework/controller.h
- *
- * Copyright (C) 2007 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-
-#ifndef __FRAMEWORK_CONTROLLER_H__
-#define __FRAMEWORK_CONTROLLER_H__
-
-
-#include <list>
-#include <boost/shared_ptr.hpp>
-#include <boost/weak_ptr.hpp>
-#include <boost/enable_shared_from_this.hpp>
-
-#include "fwk/utils/databinder.h"
-
-namespace Gtk {
-	class Widget;
-}
-
-namespace framework {
-
-	/** Generic controller class
-	 */
-	class Controller
-		: public boost::enable_shared_from_this<Controller>
-	{
-	public:
-		typedef boost::shared_ptr<Controller> Ptr;
-		typedef boost::weak_ptr<Controller> WeakPtr;
-
-		Controller();
-		virtual ~Controller();
-
-		/** add a subcontroller to this one */
-		void add(const Ptr & sub);
-		/** clear the parent. Usually called by the parent when unparenting */
-		void clearParent()
-			{ m_parent.reset(); }
-		void remove(const Ptr & sub);
-		
-		virtual bool canTerminate();
-		/** signal that the controller needs to terminate */
-		virtual void terminate();
-
-		/** return the widget controlled (construct it if needed) */
-		virtual Gtk::Widget * buildWidget() = 0;
-		Gtk::Widget * widget();
-
-		/** called when everything is ready 
-		 * subclasses should reimplement if needed
-		 */
-		virtual void on_ready();
-	protected:
-		/** called when the controller has been added to a parent. */
-		virtual void _added();
-
-		void _ready();
-		Gtk::Widget* m_widget;
-
-		WeakPtr          m_parent;
-		std::list<Ptr> m_subs; /**< sub controllers */
-
-		utils::DataBinderPool m_databinders;
-	};
-
-}
-
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0))
-  indent-tabs-mode:nil
-  fill-column:99
-  End:
-*/
-
-#endif
diff --git a/src/fwk/toolkit/controller.hpp b/src/fwk/toolkit/controller.hpp
new file mode 100644
index 0000000..93e912d
--- /dev/null
+++ b/src/fwk/toolkit/controller.hpp
@@ -0,0 +1,95 @@
+/*
+ * niepce - framework/controller.h
+ *
+ * Copyright (C) 2007 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+
+#ifndef __FRAMEWORK_CONTROLLER_H__
+#define __FRAMEWORK_CONTROLLER_H__
+
+
+#include <list>
+#include <boost/shared_ptr.hpp>
+#include <boost/weak_ptr.hpp>
+#include <boost/enable_shared_from_this.hpp>
+
+#include "fwk/utils/databinder.h"
+
+namespace Gtk {
+	class Widget;
+}
+
+namespace fwk {
+
+	/** Generic controller class
+	 */
+	class Controller
+		: public boost::enable_shared_from_this<Controller>
+	{
+	public:
+		typedef boost::shared_ptr<Controller> Ptr;
+		typedef boost::weak_ptr<Controller> WeakPtr;
+
+		Controller();
+		virtual ~Controller();
+
+		/** add a subcontroller to this one */
+		void add(const Ptr & sub);
+		/** clear the parent. Usually called by the parent when unparenting */
+		void clearParent()
+			{ m_parent.reset(); }
+		void remove(const Ptr & sub);
+		
+		virtual bool canTerminate();
+		/** signal that the controller needs to terminate */
+		virtual void terminate();
+
+		/** return the widget controlled (construct it if needed) */
+		virtual Gtk::Widget * buildWidget() = 0;
+		Gtk::Widget * widget();
+
+		/** called when everything is ready 
+		 * subclasses should reimplement if needed
+		 */
+		virtual void on_ready();
+	protected:
+		/** called when the controller has been added to a parent. */
+		virtual void _added();
+
+		void _ready();
+		Gtk::Widget* m_widget;
+
+		WeakPtr          m_parent;
+		std::list<Ptr> m_subs; /**< sub controllers */
+
+		utils::DataBinderPool m_databinders;
+	};
+
+}
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+
+#endif
diff --git a/src/fwk/toolkit/dockable.cpp b/src/fwk/toolkit/dockable.cpp
index 36ce476..c30547e 100644
--- a/src/fwk/toolkit/dockable.cpp
+++ b/src/fwk/toolkit/dockable.cpp
@@ -1,7 +1,7 @@
 /*
- * niepce - ui/dockable.h
+ * niepce - fwk/toolkit/dockable.cpp
  *
- * Copyright (C) 2008 Hubert Figuiere
+ * Copyright (C) 2008-2009 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
@@ -18,11 +18,11 @@
  */
 
 
-#include "dockable.h"
+#include "dockable.hpp"
 
-namespace framework {
+namespace fwk {
 
-Dockable::Dockable(framework::Dock & dock, const Glib::ustring& name, 
+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)
diff --git a/src/fwk/toolkit/dockable.h b/src/fwk/toolkit/dockable.h
deleted file mode 100644
index 37bc4d4..0000000
--- a/src/fwk/toolkit/dockable.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * niepce - ui/dockable.h
- *
- * Copyright (C) 2008 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef __FRAMEWORK_DOCKABLE_H__
-#define __FRAMEWORK_DOCKABLE_H__
-
-#include "fwk/toolkit/controller.h"
-#include "fwk/toolkit/widgets/dock-item.h"
-
-namespace framework {
-
-
-/** A dockable item controller
- */
-class Dockable
-    : public Controller,
-      protected DockItem
-{
-public:
-    Dockable(framework::Dock & dock, const Glib::ustring& name, 
-             const Glib::ustring& long_name, 
-             const Glib::ustring& icon_name, DockItem::State state);
-
-};
-
-
-}
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0))
-  indent-tabs-mode:nil
-  fill-column:80
-  End:
-*/
-
-#endif
-
diff --git a/src/fwk/toolkit/dockable.hpp b/src/fwk/toolkit/dockable.hpp
new file mode 100644
index 0000000..2c7a63c
--- /dev/null
+++ b/src/fwk/toolkit/dockable.hpp
@@ -0,0 +1,56 @@
+/*
+ * niepce - fwk/toolkit/dockable.hpp
+ *
+ * Copyright (C) 2008 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef __FRAMEWORK_DOCKABLE_H__
+#define __FRAMEWORK_DOCKABLE_H__
+
+#include "fwk/toolkit/controller.hpp"
+#include "fwk/toolkit/widgets/dock-item.hpp"
+
+namespace fwk {
+
+
+/** A dockable item controller
+ */
+class Dockable
+    : public Controller,
+      protected DockItem
+{
+public:
+    Dockable(fwk::Dock & dock, const Glib::ustring& name, 
+             const Glib::ustring& long_name, 
+             const Glib::ustring& icon_name, DockItem::State state);
+
+};
+
+
+}
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0))
+  indent-tabs-mode:nil
+  fill-column:80
+  End:
+*/
+
+#endif
+
diff --git a/src/fwk/toolkit/frame.cpp b/src/fwk/toolkit/frame.cpp
index 6044480..e2ab2df 100644
--- a/src/fwk/toolkit/frame.cpp
+++ b/src/fwk/toolkit/frame.cpp
@@ -1,7 +1,7 @@
 /*
- * niepce - framework/application.cpp
+ * niepce - fwk/toolkit/application.cpp
  *
- * Copyright (C) 2007-2008 Hubert Figuiere
+ * Copyright (C) 2007-2009 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
@@ -31,7 +31,7 @@
 
 
 
-namespace framework {
+namespace fwk {
 
 Frame::Frame(const std::string & layout_cfg_key)
 		: m_window(new Gtk::Window()),
diff --git a/src/fwk/toolkit/frame.hpp b/src/fwk/toolkit/frame.hpp
index 6c5fd44..c722085 100644
--- a/src/fwk/toolkit/frame.hpp
+++ b/src/fwk/toolkit/frame.hpp
@@ -1,5 +1,5 @@
 /*
- * niepce - framework/frame.h
+ * niepce - fwk/toolkit/frame.hpp
  *
  * Copyright (C) 2007-2008 Hubert Figuiere
  *
@@ -28,13 +28,13 @@
 #include <gtkmm/toggleaction.h>
 #include <gtkmm/builder.h>
 
-#include "fwk/toolkit/controller.h"
+#include "fwk/toolkit/controller.hpp"
 
 namespace Gtk {
 	class Dialog;
 }
 
-namespace framework {
+namespace fwk {
 
 class Frame 
 		: public Controller
diff --git a/src/fwk/toolkit/gconf_proxy_header.h b/src/fwk/toolkit/gconf_proxy_header.h
deleted file mode 100644
index 8453b8c..0000000
--- a/src/fwk/toolkit/gconf_proxy_header.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * niepce - framework/gconf_proxy_header.h
- *
- * Copyright (C) 2007 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-/** @brief Wrap Gconfmm to be warning free. */
-
-#ifndef __GCONF_PROXY_HEADER_H__
-#define __GCONF_PROXY_HEADER_H__
-
-/*
- * Insert here the work around for the warning disabling to your taste.
- */
-#if __GNUC__
-#pragma GCC system_header
-#endif
-#include <gconfmm.h>
-
-
-#endif
diff --git a/src/fwk/toolkit/gdkutils.cpp b/src/fwk/toolkit/gdkutils.cpp
index fe42215..de78cc0 100644
--- a/src/fwk/toolkit/gdkutils.cpp
+++ b/src/fwk/toolkit/gdkutils.cpp
@@ -1,5 +1,5 @@
 /*
- * niepce - frawework/gdkutils.cpp
+ * niepce - fwk/toolkit/gdkutils.cpp
  *
  * Copyright (C) 2008 Hubert Figuiere
  *
@@ -17,11 +17,11 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "gdkutils.h"
+#include "gdkutils.hpp"
 
 
 
-namespace framework {
+namespace fwk {
 
 	Glib::RefPtr<Gdk::Pixbuf> gdkpixbuf_scale_to_fit(const Glib::RefPtr<Gdk::Pixbuf> & pix,
 													 int dim)
diff --git a/src/fwk/toolkit/gdkutils.h b/src/fwk/toolkit/gdkutils.h
deleted file mode 100644
index 10a4235..0000000
--- a/src/fwk/toolkit/gdkutils.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * niepce - frawework/gdkutils.h
- *
- * Copyright (C) 2008 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef __FRAMEWORK_GDKUTILS_H__
-#define __FRAMEWORK_GDKUTILS_H__
-
-#include <gdkmm/pixbuf.h>
-
-
-namespace framework {
-	
-	/** scale the pixbuf to fit in the square 
-	 * @param dim the dimension of the square
-	 */
-	Glib::RefPtr<Gdk::Pixbuf> gdkpixbuf_scale_to_fit(const Glib::RefPtr<Gdk::Pixbuf> & pix,
-													 int dim);
-	/** Rotate a pixbuf following the Exif rotation (may mirror too) */
-	Glib::RefPtr<Gdk::Pixbuf> gdkpixbuf_exif_rotate(const Glib::RefPtr<Gdk::Pixbuf> & pixbuf,
-													int exif_orientation);
-}
-
-#endif
diff --git a/src/fwk/toolkit/gdkutils.hpp b/src/fwk/toolkit/gdkutils.hpp
new file mode 100644
index 0000000..e9001be
--- /dev/null
+++ b/src/fwk/toolkit/gdkutils.hpp
@@ -0,0 +1,39 @@
+/*
+ * niepce - fwk/toolkit/gdkutils.h
+ *
+ * Copyright (C) 2008 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef __FWK_GDKUTILS_H__
+#define __FWK_GDKUTILS_H__
+
+#include <gdkmm/pixbuf.h>
+
+
+namespace fwk {
+	
+	/** scale the pixbuf to fit in the square 
+	 * @param dim the dimension of the square
+	 */
+	Glib::RefPtr<Gdk::Pixbuf> gdkpixbuf_scale_to_fit(const Glib::RefPtr<Gdk::Pixbuf> & pix,
+													 int dim);
+	/** Rotate a pixbuf following the Exif rotation (may mirror too) */
+	Glib::RefPtr<Gdk::Pixbuf> gdkpixbuf_exif_rotate(const Glib::RefPtr<Gdk::Pixbuf> & pixbuf,
+													int exif_orientation);
+}
+
+#endif
diff --git a/src/fwk/toolkit/goocanvas_proxy_header.h b/src/fwk/toolkit/goocanvas_proxy_header.h
deleted file mode 100644
index 8e58195..0000000
--- a/src/fwk/toolkit/goocanvas_proxy_header.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * niepce - framework/goocanvas_proxy_header.h
- *
- * Copyright (C) 2008 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-/** @brief Wrap goocanvas to be warning free. */
-
-#ifndef __GOOCANVAS_PROXY_HEADER_H__
-#define __GOOCANVAS_PROXY_HEADER_H__
-
-/*
- * Insert here the work around for the warning disabling to your taste.
- */
-#if __GNUC__
-#pragma GCC system_header
-#endif
-#include <goocanvasmm/canvas.h>
-#include <goocanvasmm/image.h>
-#include <goocanvasmm/rect.h>
-
-
-
-
-#endif
diff --git a/src/fwk/toolkit/goocanvas_proxy_header.hpp b/src/fwk/toolkit/goocanvas_proxy_header.hpp
new file mode 100644
index 0000000..b230c99
--- /dev/null
+++ b/src/fwk/toolkit/goocanvas_proxy_header.hpp
@@ -0,0 +1,38 @@
+/*
+ * niepce - fwk/toolkit/goocanvas_proxy_header.h
+ *
+ * Copyright (C) 2008 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @brief Wrap goocanvas to be warning free. */
+
+#ifndef __GOOCANVAS_PROXY_HEADER_H__
+#define __GOOCANVAS_PROXY_HEADER_H__
+
+/*
+ * Insert here the work around for the warning disabling to your taste.
+ */
+#if __GNUC__
+#pragma GCC system_header
+#endif
+#include <goocanvasmm/canvas.h>
+#include <goocanvasmm/image.h>
+#include <goocanvasmm/rect.h>
+
+
+
+
+#endif
diff --git a/src/fwk/toolkit/imageloader.cpp b/src/fwk/toolkit/imageloader.cpp
index cc2365f..81a2072 100644
--- a/src/fwk/toolkit/imageloader.cpp
+++ b/src/fwk/toolkit/imageloader.cpp
@@ -1,5 +1,5 @@
 /*
- * niepce - framework/imageloader.cpp
+ * niepce - fwk/imageloader.cpp
  *
  * Copyright (C) 2008 Hubert Figuiere
  *
@@ -21,10 +21,10 @@
 
 #include <gdkmm/pixbufloader.h>
 
-#include "imageloader.h"
-#include "fwk/toolkit/mimetype.h"
+#include "imageloader.hpp"
+#include "fwk/toolkit/mimetype.hpp"
 
-namespace framework {
+namespace fwk {
 
 ImageLoader::ImageLoader(const boost::filesystem::path & file)
 	: m_file(file)
@@ -34,7 +34,7 @@ ImageLoader::ImageLoader(const boost::filesystem::path & file)
 Glib::RefPtr<Gdk::Pixbuf> ImageLoader::get_pixbuf()
 {
 	// TODO split get_pixbuf and the real load.
-	framework::MimeType mime_type(m_file);
+	fwk::MimeType mime_type(m_file);
 	
 	Glib::RefPtr<Gdk::PixbufLoader> loader =  
 		Gdk::PixbufLoader::create(mime_type.string(), true);
diff --git a/src/fwk/toolkit/imageloader.h b/src/fwk/toolkit/imageloader.h
deleted file mode 100644
index 9b540bd..0000000
--- a/src/fwk/toolkit/imageloader.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * niepce - framework/imageloader.h
- *
- * Copyright (C) 2008 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef __FRAMEWORK_IMAGELOADER_H__
-#define __FRAMEWORK_IMAGELOADER_H__
-
-#include <boost/filesystem/path.hpp>
-
-#include <gdkmm/pixbuf.h>
-
-namespace framework {
-
-class ImageLoader
-{
-public:
-	ImageLoader(const boost::filesystem::path & file);
-	Glib::RefPtr<Gdk::Pixbuf> get_pixbuf();
-private:
-	boost::filesystem::path m_file;
-};
-
-}
-
-#endif
diff --git a/src/fwk/toolkit/imageloader.hpp b/src/fwk/toolkit/imageloader.hpp
new file mode 100644
index 0000000..644e484
--- /dev/null
+++ b/src/fwk/toolkit/imageloader.hpp
@@ -0,0 +1,41 @@
+/*
+ * niepce - fwk/imageloader.h
+ *
+ * Copyright (C) 2008 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef __FWK_IMAGELOADER_H__
+#define __FWK_IMAGELOADER_H__
+
+#include <boost/filesystem/path.hpp>
+
+#include <gdkmm/pixbuf.h>
+
+namespace fwk {
+
+class ImageLoader
+{
+public:
+	ImageLoader(const boost::filesystem::path & file);
+	Glib::RefPtr<Gdk::Pixbuf> get_pixbuf();
+private:
+	boost::filesystem::path m_file;
+};
+
+}
+
+#endif
diff --git a/src/fwk/toolkit/metadatawidget.cpp b/src/fwk/toolkit/metadatawidget.cpp
index f06b16c..f5b4a75 100644
--- a/src/fwk/toolkit/metadatawidget.cpp
+++ b/src/fwk/toolkit/metadatawidget.cpp
@@ -30,11 +30,11 @@
 #include "fwk/utils/stringutils.h"
 #include "fwk/utils/debug.h"
 
-#include "metadatawidget.h"
+#include "metadatawidget.hpp"
 
 
 
-namespace framework {
+namespace fwk {
 
 MetaDataWidget::MetaDataWidget(const Glib::ustring & title)
     : ToolboxItemWidget(title),
diff --git a/src/fwk/toolkit/metadatawidget.h b/src/fwk/toolkit/metadatawidget.h
deleted file mode 100644
index d29585e..0000000
--- a/src/fwk/toolkit/metadatawidget.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * niepce - framework/metadatawidget.h
- *
- * Copyright (C) 2008 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __NIEPCE_FRAMEWORK_META_DATA_WIDGET_H__
-#define __NIEPCE_FRAMEWORK_META_DATA_WIDGET_H__
-
-
-#include <map>
-#include <string>
-
-#include <gtkmm/table.h>
-
-#include "fwk/toolkit/widgets/toolboxitemwidget.h"
-
-namespace utils {
-	class XmpMeta;
-}
-namespace xmp {
-	struct MetaDataSectionFormat;
-}
-
-namespace framework {
-
-
-class MetaDataWidget 
-	: public framework::ToolboxItemWidget
-{
-public:
-	MetaDataWidget(const Glib::ustring & title);
-	
-	void add_data(const std::string & id, const std::string & label,
-				  const char * value, xmp::MetaDataType type);
-	void set_data_format(const xmp::MetaDataSectionFormat * fmt);
-	void set_data_source(const utils::XmpMeta * xmp);
-protected:
-private:
-	Gtk::Table    m_table;
-	std::map<std::string, Gtk::Widget *> m_data_map;
-	const xmp::MetaDataSectionFormat * m_fmt;
-};
-
-}
-
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0))
-  indent-tabs-mode:nil
-  fill-column:80
-  End:
-*/
-
-#endif
diff --git a/src/fwk/toolkit/metadatawidget.hpp b/src/fwk/toolkit/metadatawidget.hpp
new file mode 100644
index 0000000..1da5316
--- /dev/null
+++ b/src/fwk/toolkit/metadatawidget.hpp
@@ -0,0 +1,70 @@
+/*
+ * niepce - fwk/toolkit/metadatawidget.h
+ *
+ * Copyright (C) 2008 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __NIEPCE_FRAMEWORK_META_DATA_WIDGET_H__
+#define __NIEPCE_FRAMEWORK_META_DATA_WIDGET_H__
+
+
+#include <map>
+#include <string>
+
+#include <gtkmm/table.h>
+
+#include "fwk/toolkit/widgets/toolboxitemwidget.hpp"
+
+namespace utils {
+	class XmpMeta;
+}
+namespace xmp {
+	struct MetaDataSectionFormat;
+}
+
+namespace fwk {
+
+
+class MetaDataWidget 
+	: public fwk::ToolboxItemWidget
+{
+public:
+	MetaDataWidget(const Glib::ustring & title);
+	
+	void add_data(const std::string & id, const std::string & label,
+				  const char * value, xmp::MetaDataType type);
+	void set_data_format(const xmp::MetaDataSectionFormat * fmt);
+	void set_data_source(const utils::XmpMeta * xmp);
+protected:
+private:
+	Gtk::Table    m_table;
+	std::map<std::string, Gtk::Widget *> m_data_map;
+	const xmp::MetaDataSectionFormat * m_fmt;
+};
+
+}
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0))
+  indent-tabs-mode:nil
+  fill-column:80
+  End:
+*/
+
+#endif
diff --git a/src/fwk/toolkit/mimetype.cpp b/src/fwk/toolkit/mimetype.cpp
index c077974..5742de0 100644
--- a/src/fwk/toolkit/mimetype.cpp
+++ b/src/fwk/toolkit/mimetype.cpp
@@ -1,5 +1,5 @@
 /*
- * niepce - framework/mimetype.cpp
+ * niepce - fwk/mimetype.cpp
  *
  * Copyright (C) 2008-2009 Hubert Figuiere
  *
@@ -23,11 +23,11 @@
 
 #include "config.h"
 
-#include "mimetype.h"
+#include "mimetype.hpp"
 
 namespace bfs = boost::filesystem;
 
-namespace framework {
+namespace fwk {
 
 MimeType::MimeType(const char * filename)
     : m_path(filename)
diff --git a/src/fwk/toolkit/mimetype.h b/src/fwk/toolkit/mimetype.h
deleted file mode 100644
index 51c8025..0000000
--- a/src/fwk/toolkit/mimetype.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * niepce - framework/mimetype.h
- *
- * Copyright (C) 2008-2009 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _FRAMEWORK_MIMETYPE_H_
-#define _FRAMEWORK_MIMETYPE_H_
-
-#include <string>
-#include <boost/filesystem/path.hpp>
-
-namespace framework {
-
-	class MimeType
-	{
-	public:
-		MimeType(const char *filename);
-		MimeType(const boost::filesystem::path & filename);
-
-		bool isDigicamRaw() const;
-		bool isImage() const;
-		bool isUnknown() const;
-		bool isXmp() const;
-
-		const std::string & string() const
-			{ return m_type; }
-	private:
-		boost::filesystem::path m_path;
-		std::string m_type;
-	};
-
-}
-
-
-#endif
diff --git a/src/fwk/toolkit/mimetype.hpp b/src/fwk/toolkit/mimetype.hpp
new file mode 100644
index 0000000..3ac1aff
--- /dev/null
+++ b/src/fwk/toolkit/mimetype.hpp
@@ -0,0 +1,50 @@
+/*
+ * niepce - fwk/mimetype.h
+ *
+ * Copyright (C) 2008-2009 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef _FWK_MIMETYPE_H_
+#define _FWK_MIMETYPE_H_
+
+#include <string>
+#include <boost/filesystem/path.hpp>
+
+namespace fwk {
+
+	class MimeType
+	{
+	public:
+		MimeType(const char *filename);
+		MimeType(const boost::filesystem::path & filename);
+
+		bool isDigicamRaw() const;
+		bool isImage() const;
+		bool isUnknown() const;
+		bool isXmp() const;
+
+		const std::string & string() const
+			{ return m_type; }
+	private:
+		boost::filesystem::path m_path;
+		std::string m_type;
+	};
+
+}
+
+
+#endif
diff --git a/src/fwk/toolkit/notification.h b/src/fwk/toolkit/notification.h
deleted file mode 100644
index e65e342..0000000
--- a/src/fwk/toolkit/notification.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * niepce - framework/notification.h
- *
- * Copyright (C) 2007 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-
-
-
-#ifndef __FRAMEWORK_NOTIFICATION_H__
-#define __FRAMEWORK_NOTIFICATION_H__
-
-#include <boost/shared_ptr.hpp>
-#include <boost/any.hpp>
-#include <boost/thread/recursive_mutex.hpp>
-
-namespace framework {
-
-	/** A notification to post to the notification center */
-	class Notification
-	{
-	public:
-		typedef boost::shared_ptr<Notification> Ptr;
-		typedef boost::recursive_mutex mutex_t;
-
-		Notification(int _type)
-			: m_type(_type)
-			{}
-		~Notification()
-			{ mutex_t::scoped_lock lock(m_mutex); }
-		mutex_t & mutex() const
-			{ return m_mutex; }
-		int type() const
-			{ return m_type; }
-		const boost::any & data() const
-			{ return m_data; }
-		void setData(const boost::any & d)
-			{ m_data = d; }
-	private:
-		mutable mutex_t    m_mutex;
-		int        m_type;
-		boost::any m_data;
-	};
-
-}
-
-
-#endif
diff --git a/src/fwk/toolkit/notification.hpp b/src/fwk/toolkit/notification.hpp
new file mode 100644
index 0000000..f113be0
--- /dev/null
+++ b/src/fwk/toolkit/notification.hpp
@@ -0,0 +1,62 @@
+/*
+ * niepce - fwk/notification.h
+ *
+ * Copyright (C) 2007 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+
+
+
+#ifndef __FWK_NOTIFICATION_H__
+#define __FWK_NOTIFICATION_H__
+
+#include <boost/shared_ptr.hpp>
+#include <boost/any.hpp>
+#include <boost/thread/recursive_mutex.hpp>
+
+namespace fwk {
+
+	/** A notification to post to the notification center */
+	class Notification
+	{
+	public:
+		typedef boost::shared_ptr<Notification> Ptr;
+		typedef boost::recursive_mutex mutex_t;
+
+		Notification(int _type)
+			: m_type(_type)
+			{}
+		~Notification()
+			{ mutex_t::scoped_lock lock(m_mutex); }
+		mutex_t & mutex() const
+			{ return m_mutex; }
+		int type() const
+			{ return m_type; }
+		const boost::any & data() const
+			{ return m_data; }
+		void setData(const boost::any & d)
+			{ m_data = d; }
+	private:
+		mutable mutex_t    m_mutex;
+		int        m_type;
+		boost::any m_data;
+	};
+
+}
+
+
+#endif
diff --git a/src/fwk/toolkit/notificationcenter.cpp b/src/fwk/toolkit/notificationcenter.cpp
index 56a6dc7..95e91a2 100644
--- a/src/fwk/toolkit/notificationcenter.cpp
+++ b/src/fwk/toolkit/notificationcenter.cpp
@@ -1,5 +1,5 @@
 /*
- * niepce - framework/notification.h
+ * niepce - fwk/notification.h
  *
  * Copyright (C) 2007 Hubert Figuiere
  *
@@ -28,9 +28,9 @@
 #include <glibmm/dispatcher.h>
 
 #include "fwk/utils/mtqueue.h"
-#include "notificationcenter.h"
+#include "notificationcenter.hpp"
 
-namespace framework {
+namespace fwk {
 
 	class NotificationCenter::Priv
 	{
diff --git a/src/fwk/toolkit/notificationcenter.h b/src/fwk/toolkit/notificationcenter.h
deleted file mode 100644
index 6c0b720..0000000
--- a/src/fwk/toolkit/notificationcenter.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * niepce - framework/notification.h
- *
- * Copyright (C) 2007 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-
-
-#ifndef __FRAMEWORK_NOTIFICATIONCENTER_H__
-#define __FRAMEWORK_NOTIFICATIONCENTER_H__
-
-#include <boost/function.hpp>
-#include <boost/shared_ptr.hpp>
-
-#include "fwk/toolkit/notification.h"
-
-namespace framework {
-
-	class NotificationCenter
-	{
-	public:
-		typedef boost::shared_ptr< NotificationCenter > Ptr;
-		typedef boost::function< void (Notification::Ptr) > subscriber_t;
-
-		NotificationCenter();
-		~NotificationCenter();
-
-		
-		// called from out of thread
-		void post(const Notification::Ptr & n);
-
-		void subscribe(int type, const subscriber_t & );
-		void unsubscribe(int type, const subscriber_t & );
-		
-	private:
-		void _dispatch(void);
-
-		class Priv;
-		Priv *p;
-	};
-
-
-}
-
-#endif
diff --git a/src/fwk/toolkit/notificationcenter.hpp b/src/fwk/toolkit/notificationcenter.hpp
new file mode 100644
index 0000000..673cefa
--- /dev/null
+++ b/src/fwk/toolkit/notificationcenter.hpp
@@ -0,0 +1,59 @@
+/*
+ * niepce - fwk/toolkit/notification.hpp
+ *
+ * Copyright (C) 2007-2009 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+
+
+#ifndef __FWK_NOTIFICATIONCENTER_H__
+#define __FWK_NOTIFICATIONCENTER_H__
+
+#include <boost/function.hpp>
+#include <boost/shared_ptr.hpp>
+
+#include "fwk/toolkit/notification.hpp"
+
+namespace fwk {
+
+	class NotificationCenter
+	{
+	public:
+		typedef boost::shared_ptr< NotificationCenter > Ptr;
+		typedef boost::function< void (Notification::Ptr) > subscriber_t;
+
+		NotificationCenter();
+		~NotificationCenter();
+
+		
+		// called from out of thread
+		void post(const Notification::Ptr & n);
+
+		void subscribe(int type, const subscriber_t & );
+		void unsubscribe(int type, const subscriber_t & );
+		
+	private:
+		void _dispatch(void);
+
+		class Priv;
+		Priv *p;
+	};
+
+
+}
+
+#endif
diff --git a/src/fwk/toolkit/undo.cpp b/src/fwk/toolkit/undo.cpp
index 1cbc192..b24cec9 100644
--- a/src/fwk/toolkit/undo.cpp
+++ b/src/fwk/toolkit/undo.cpp
@@ -22,10 +22,10 @@
 #include <boost/checked_delete.hpp>
 
 #include "fwk/utils/debug.h"
-#include "command.h"
-#include "undo.h"
+#include "command.hpp"
+#include "undo.hpp"
 
-namespace framework {
+namespace fwk {
 
 UndoTransaction::UndoTransaction(const std::string & n)
     : m_name(n)
diff --git a/src/fwk/toolkit/undo.h b/src/fwk/toolkit/undo.h
deleted file mode 100644
index 79b14b4..0000000
--- a/src/fwk/toolkit/undo.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * niepce - framework/undo.h
- *
- * Copyright (C) 2008 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _FRAMEWORK_UNDO_H_
-#define _FRAMEWORK_UNDO_H_
-
-#include <list>
-#include <stack>
-#include <string>
-#include <boost/signal.hpp>
-#include <boost/noncopyable.hpp>
-
-namespace framework {
-
-class Command;
-
-class UndoTransaction
-{
-public:
-    UndoTransaction(const std::string & n);
-    ~UndoTransaction();
-    void add(Command *);
-    void undo();
-    void redo();
-    const std::string & name() const
-        { return m_name; }
-private:
-    std::list<Command *> m_operations;
-    std::string m_name;
-};
-
-class UndoHistory
-    : public boost::noncopyable
-{
-public:
-    ~UndoHistory();
-		
-    /** the history becomes owner */
-    void add(UndoTransaction*);
-    void undo();
-    void redo();
-    void clear();
-    bool has_undo() const
-        { return !m_undos.empty(); }
-    bool has_redo() const
-        { return !m_redos.empty(); }
-    std::string next_undo() const;
-    std::string next_redo() const;
-
-    // called when the undo history change.
-    boost::signal<void (void)> changed;
-private:
-    void clear(std::list<UndoTransaction*> & l);
-
-    std::list<UndoTransaction*> m_undos;
-    std::list<UndoTransaction*> m_redos;
-};
-
-	
-
-}
-
-#endif
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0))
-  indent-tabs-mode:nil
-  fill-column:99
-  End:
-*/
diff --git a/src/fwk/toolkit/undo.hpp b/src/fwk/toolkit/undo.hpp
new file mode 100644
index 0000000..45b5ae1
--- /dev/null
+++ b/src/fwk/toolkit/undo.hpp
@@ -0,0 +1,89 @@
+/*
+ * niepce - fwk/toolkit/undo.hpp
+ *
+ * Copyright (C) 2008-2009 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef _FRAMEWORK_UNDO_H_
+#define _FRAMEWORK_UNDO_H_
+
+#include <list>
+#include <stack>
+#include <string>
+#include <boost/signal.hpp>
+#include <boost/noncopyable.hpp>
+
+namespace fwk {
+
+class Command;
+
+class UndoTransaction
+{
+public:
+    UndoTransaction(const std::string & n);
+    ~UndoTransaction();
+    void add(Command *);
+    void undo();
+    void redo();
+    const std::string & name() const
+        { return m_name; }
+private:
+    std::list<Command *> m_operations;
+    std::string m_name;
+};
+
+class UndoHistory
+    : public boost::noncopyable
+{
+public:
+    ~UndoHistory();
+		
+    /** the history becomes owner */
+    void add(UndoTransaction*);
+    void undo();
+    void redo();
+    void clear();
+    bool has_undo() const
+        { return !m_undos.empty(); }
+    bool has_redo() const
+        { return !m_redos.empty(); }
+    std::string next_undo() const;
+    std::string next_redo() const;
+
+    // called when the undo history change.
+    boost::signal<void (void)> changed;
+private:
+    void clear(std::list<UndoTransaction*> & l);
+
+    std::list<UndoTransaction*> m_undos;
+    std::list<UndoTransaction*> m_redos;
+};
+
+	
+
+}
+
+#endif
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
diff --git a/src/fwk/toolkit/widgets/dock-item.cpp b/src/fwk/toolkit/widgets/dock-item.cpp
index 0023929..206d131 100644
--- a/src/fwk/toolkit/widgets/dock-item.cpp
+++ b/src/fwk/toolkit/widgets/dock-item.cpp
@@ -15,16 +15,16 @@
 #include <gtkmm/stock.h>
 #include <gtkmm/icontheme.h>
 
-#include "dock-item.h"
+#include "dock-item.hpp"
 //#include "desktop.h"
 //#include "inkscape.h"
 //#include "prefs-utils.h"
-#include "fwk/toolkit/widgets/dock.h"
+#include "fwk/toolkit/widgets/dock.hpp"
 #include "fwk/toolkit/application.hpp"
 //#include "widgets/icon.h"
 
 
-namespace framework {
+namespace fwk {
 
 DockItem::DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& long_name,
                    const Glib::ustring& icon_name, State state) :
@@ -68,13 +68,13 @@ DockItem::DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& l
     _frame.add(_dock_item_box);
     _dock_item_box.set_border_width(3);
 
-    signal_drag_begin().connect(sigc::mem_fun(*this, &framework::DockItem::_onDragBegin));
-    signal_drag_end().connect(sigc::mem_fun(*this, &framework::DockItem::_onDragEnd));
-    signal_hide().connect(sigc::mem_fun(*this, &framework::DockItem::_onHide), false);
-    signal_show().connect(sigc::mem_fun(*this, &framework::DockItem::_onShow), false);
-    signal_state_changed().connect(sigc::mem_fun(*this, &framework::DockItem::_onStateChanged));
-    signal_delete_event().connect(sigc::mem_fun(*this, &framework::DockItem::_onDeleteEvent));
-    signal_realize().connect(sigc::mem_fun(*this, &framework::DockItem::_onRealize));
+    signal_drag_begin().connect(sigc::mem_fun(*this, &DockItem::_onDragBegin));
+    signal_drag_end().connect(sigc::mem_fun(*this, &DockItem::_onDragEnd));
+    signal_hide().connect(sigc::mem_fun(*this, &DockItem::_onHide), false);
+    signal_show().connect(sigc::mem_fun(*this, &DockItem::_onShow), false);
+    signal_state_changed().connect(sigc::mem_fun(*this, &DockItem::_onStateChanged));
+    signal_delete_event().connect(sigc::mem_fun(*this, &DockItem::_onDeleteEvent));
+    signal_realize().connect(sigc::mem_fun(*this, &DockItem::_onRealize));
 
     _dock.addItem(*this, (_prev_state == FLOATING_STATE ? FLOATING : TOP));
 
@@ -391,9 +391,9 @@ DockItem::_onStateChanged(State /*prev_state*/, State new_state)
     _window = getWindow();
 
     if (new_state == FLOATING_STATE && _window) {
-        _window->signal_hide().connect(sigc::mem_fun(*this, &framework::DockItem::_onHideWindow));
+        _window->signal_hide().connect(sigc::mem_fun(*this, &fwk::DockItem::_onHideWindow));
         _signal_key_press_event_connection =
-            _window->signal_key_press_event().connect(sigc::mem_fun(*this, &framework::DockItem::_onKeyPress));
+            _window->signal_key_press_event().connect(sigc::mem_fun(*this, &fwk::DockItem::_onKeyPress));
     }
 }
 
diff --git a/src/fwk/toolkit/widgets/dock-item.h b/src/fwk/toolkit/widgets/dock-item.h
deleted file mode 100644
index 1e037c5..0000000
--- a/src/fwk/toolkit/widgets/dock-item.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- * \brief A custom wrapper around gdl-dock-item
- *
- * Author:
- *   Gustav Broberg <broberg kth se>
- *
- * Copyright (C) 2007 Authors
- *
- * Released under GNU GPL.  Read the file 'COPYING' for more information.
- */
-
-
-#ifndef INKSCAPE_UI_WIGET_DOCK_ITEM_H
-#define INKSCAPE_UI_WIGET_DOCK_ITEM_H
-
-#include <gtkmm/button.h>
-#include <gtkmm/buttonbox.h>
-#include <gtkmm/frame.h>
-#include <gtkmm/paned.h>
-#include <gtkmm/window.h>
-
-#include "libgdl/libgdl.h"
-
-namespace framework {
-
-class Dock;
-
-class DockItem {
-
-public:
-
-    enum State { UNATTACHED,     // item not bound to the dock (a temporary state)
-                 FLOATING_STATE, // item not in its dock (but can be docked in other,
-                                 // e.g. floating, docks)
-                 DOCKED_STATE }; // item in its assigned dock
-
-    enum Placement { 
-        NONE     = GDL_DOCK_NONE,
-        TOP      = GDL_DOCK_TOP,
-        BOTTOM   = GDL_DOCK_BOTTOM,
-        RIGHT    = GDL_DOCK_RIGHT,
-        LEFT     = GDL_DOCK_LEFT,
-        CENTER   = GDL_DOCK_CENTER,
-        FLOATING = GDL_DOCK_FLOATING
-    };
-
-    DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& long_name, 
-             const Glib::ustring& icon_name, State state);
-
-    virtual ~DockItem();
-
-    Gtk::Widget& getWidget();
-    GtkWidget *gobj();
-
-    Gtk::VBox *get_vbox();
-
-    void get_position(int& x, int& y);
-    void get_size(int& width, int& height);
-
-    void resize(int width, int height);
-    void move(int x, int y);
-    void set_position(Gtk::WindowPosition);
-    void set_size_request(int width, int height);
-    void size_request(Gtk::Requisition& requisition);
-    void set_title(Glib::ustring title);
-
-    bool isAttached() const;
-    bool isFloating() const;
-    bool isIconified() const;
-    State getState() const;
-    State getPrevState() const;
-    Placement getPlacement() const;
-
-    Gtk::Window *getWindow();   //< gives the parent window, if the dock item has one (i.e. it's floating)
-
-    void hide();
-    void show();
-    void show_all();
-
-    void present();
-
-    void grab_focus();
-
-    Glib::SignalProxy0<void> signal_show();
-    Glib::SignalProxy0<void> signal_hide();
-    Glib::SignalProxy1<bool, GdkEventAny *> signal_delete_event();
-    Glib::SignalProxy0<void> signal_drag_begin();
-    Glib::SignalProxy1<void, bool> signal_drag_end();
-    Glib::SignalProxy0<void> signal_realize();
-
-    sigc::signal<void, State, State> signal_state_changed();
-
-private:
-    Dock &_dock;              //< parent dock
-
-    State _prev_state;        //< last known state
-
-    int _prev_position;
-
-    Gtk::Window *_window;     //< reference to floating window, if any 
-    int _x, _y;               //< last known position of window, if floating
-
-    bool _grab_focus_on_realize;   //< if the dock item should grab focus on the next realize
-
-    GtkWidget *_gdl_dock_item;
-
-    /** Interface widgets, will be packed like 
-     * gdl_dock_item -> _frame -> _dock_item_box -> (_dock_item_action_area) 
-     */
-    Gtk::Frame _frame;
-    Gtk::VBox _dock_item_box;
-    Gtk::HButtonBox *_dock_item_action_area;
-
-    /** Internal signal handlers */
-    void _onHide();
-    void _onHideWindow();
-    void _onShow();
-    void _onDragBegin();
-    void _onDragEnd(bool cancelled);
-    void _onRealize();
-
-    bool _onKeyPress(GdkEventKey *event);
-    void _onStateChanged(State prev_state, State new_state);
-    bool _onDeleteEvent(GdkEventAny *event);
-
-    sigc::connection _signal_key_press_event_connection;
-
-    /** GdlDockItem signal proxy structures */
-    static const Glib::SignalProxyInfo _signal_show_proxy;
-    static const Glib::SignalProxyInfo _signal_hide_proxy;
-    static const Glib::SignalProxyInfo _signal_delete_event_proxy;
-
-    static const Glib::SignalProxyInfo _signal_drag_begin_proxy;
-    static const Glib::SignalProxyInfo _signal_drag_end_proxy;
-    static const Glib::SignalProxyInfo _signal_realize_proxy;
-
-    static gboolean _signal_delete_event_callback(GtkWidget *self, GdkEventAny *event, void *data);
-    static void _signal_drag_end_callback(GtkWidget* self, gboolean p0, void* data);
-
-    sigc::signal<void, State, State> _signal_state_changed;
-
-    DockItem();
-};
-
-} // namespace framework
-
-#endif // INKSCAPE_UI_WIGET_DOCK_ITEM_H
-
-/*
-  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-item.hpp b/src/fwk/toolkit/widgets/dock-item.hpp
new file mode 100644
index 0000000..4ae9884
--- /dev/null
+++ b/src/fwk/toolkit/widgets/dock-item.hpp
@@ -0,0 +1,158 @@
+/**
+ * \brief A custom wrapper around gdl-dock-item
+ *
+ * Author:
+ *   Gustav Broberg <broberg kth se>
+ *
+ * Copyright (C) 2007 Authors
+ *
+ * Released under GNU GPL.  Read the file 'COPYING' for more information.
+ */
+
+
+#ifndef INKSCAPE_UI_WIGET_DOCK_ITEM_H
+#define INKSCAPE_UI_WIGET_DOCK_ITEM_H
+
+#include <gtkmm/button.h>
+#include <gtkmm/buttonbox.h>
+#include <gtkmm/frame.h>
+#include <gtkmm/paned.h>
+#include <gtkmm/window.h>
+
+#include "libgdl/libgdl.h"
+
+namespace fwk {
+
+class Dock;
+
+class DockItem {
+
+public:
+
+    enum State { UNATTACHED,     // item not bound to the dock (a temporary state)
+                 FLOATING_STATE, // item not in its dock (but can be docked in other,
+                                 // e.g. floating, docks)
+                 DOCKED_STATE }; // item in its assigned dock
+
+    enum Placement { 
+        NONE     = GDL_DOCK_NONE,
+        TOP      = GDL_DOCK_TOP,
+        BOTTOM   = GDL_DOCK_BOTTOM,
+        RIGHT    = GDL_DOCK_RIGHT,
+        LEFT     = GDL_DOCK_LEFT,
+        CENTER   = GDL_DOCK_CENTER,
+        FLOATING = GDL_DOCK_FLOATING
+    };
+
+    DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& long_name, 
+             const Glib::ustring& icon_name, State state);
+
+    virtual ~DockItem();
+
+    Gtk::Widget& getWidget();
+    GtkWidget *gobj();
+
+    Gtk::VBox *get_vbox();
+
+    void get_position(int& x, int& y);
+    void get_size(int& width, int& height);
+
+    void resize(int width, int height);
+    void move(int x, int y);
+    void set_position(Gtk::WindowPosition);
+    void set_size_request(int width, int height);
+    void size_request(Gtk::Requisition& requisition);
+    void set_title(Glib::ustring title);
+
+    bool isAttached() const;
+    bool isFloating() const;
+    bool isIconified() const;
+    State getState() const;
+    State getPrevState() const;
+    Placement getPlacement() const;
+
+    Gtk::Window *getWindow();   //< gives the parent window, if the dock item has one (i.e. it's floating)
+
+    void hide();
+    void show();
+    void show_all();
+
+    void present();
+
+    void grab_focus();
+
+    Glib::SignalProxy0<void> signal_show();
+    Glib::SignalProxy0<void> signal_hide();
+    Glib::SignalProxy1<bool, GdkEventAny *> signal_delete_event();
+    Glib::SignalProxy0<void> signal_drag_begin();
+    Glib::SignalProxy1<void, bool> signal_drag_end();
+    Glib::SignalProxy0<void> signal_realize();
+
+    sigc::signal<void, State, State> signal_state_changed();
+
+private:
+    Dock &_dock;              //< parent dock
+
+    State _prev_state;        //< last known state
+
+    int _prev_position;
+
+    Gtk::Window *_window;     //< reference to floating window, if any 
+    int _x, _y;               //< last known position of window, if floating
+
+    bool _grab_focus_on_realize;   //< if the dock item should grab focus on the next realize
+
+    GtkWidget *_gdl_dock_item;
+
+    /** Interface widgets, will be packed like 
+     * gdl_dock_item -> _frame -> _dock_item_box -> (_dock_item_action_area) 
+     */
+    Gtk::Frame _frame;
+    Gtk::VBox _dock_item_box;
+    Gtk::HButtonBox *_dock_item_action_area;
+
+    /** Internal signal handlers */
+    void _onHide();
+    void _onHideWindow();
+    void _onShow();
+    void _onDragBegin();
+    void _onDragEnd(bool cancelled);
+    void _onRealize();
+
+    bool _onKeyPress(GdkEventKey *event);
+    void _onStateChanged(State prev_state, State new_state);
+    bool _onDeleteEvent(GdkEventAny *event);
+
+    sigc::connection _signal_key_press_event_connection;
+
+    /** GdlDockItem signal proxy structures */
+    static const Glib::SignalProxyInfo _signal_show_proxy;
+    static const Glib::SignalProxyInfo _signal_hide_proxy;
+    static const Glib::SignalProxyInfo _signal_delete_event_proxy;
+
+    static const Glib::SignalProxyInfo _signal_drag_begin_proxy;
+    static const Glib::SignalProxyInfo _signal_drag_end_proxy;
+    static const Glib::SignalProxyInfo _signal_realize_proxy;
+
+    static gboolean _signal_delete_event_callback(GtkWidget *self, GdkEventAny *event, void *data);
+    static void _signal_drag_end_callback(GtkWidget* self, gboolean p0, void* data);
+
+    sigc::signal<void, State, State> _signal_state_changed;
+
+    DockItem();
+};
+
+} // namespace framework
+
+#endif // INKSCAPE_UI_WIGET_DOCK_ITEM_H
+
+/*
+  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.cpp b/src/fwk/toolkit/widgets/dock.cpp
index fb28d29..843ae56 100644
--- a/src/fwk/toolkit/widgets/dock.cpp
+++ b/src/fwk/toolkit/widgets/dock.cpp
@@ -13,11 +13,11 @@
 //#include "prefs-utils.h"
 //#include "desktop.h"
 
-#include "dock.h"
+#include "dock.hpp"
 
 #include <gtkmm/adjustment.h>
 
-namespace framework {
+namespace fwk {
 
 namespace {
 
@@ -96,7 +96,7 @@ Dock::Dock(Gtk::Orientation orientation)
     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, &framework::Dock::_onLayoutChanged));
+    signal_layout_changed().connect(sigc::mem_fun(*this, &Dock::_onLayoutChanged));
 }
 
 Dock::~Dock()
diff --git a/src/fwk/toolkit/widgets/dock.h b/src/fwk/toolkit/widgets/dock.h
deleted file mode 100644
index 907946c..0000000
--- a/src/fwk/toolkit/widgets/dock.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * \brief A desktop dock pane to dock dialogs, a custom wrapper around gdl-dock.
- *
- * Author:
- *   Gustav Broberg <broberg kth se>
- *
- * Copyright (C) 2007 Authors
- *
- * Released under GNU GPL.  Read the file 'COPYING' for more information.
- */
-
-#ifndef INKSCAPE_UI_WIDGET_DOCK_H
-#define INKSCAPE_UI_WIDGET_DOCK_H
-
-#include <gtkmm/scrolledwindow.h>
-#include <gtkmm/box.h>
-#include <gtkmm/paned.h>
-
-#include <list>
-
-#include "fwk/toolkit/widgets/dock-item.h"
-
-#include "libgdl/libgdl.h"
-
-namespace framework {
-
-class Dock {
-
-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 . +))
-  indent-tabs-mode:nil
-  fill-column:80
-  End:
-*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 
-
diff --git a/src/fwk/toolkit/widgets/dock.hpp b/src/fwk/toolkit/widgets/dock.hpp
new file mode 100644
index 0000000..3169c54
--- /dev/null
+++ b/src/fwk/toolkit/widgets/dock.hpp
@@ -0,0 +1,99 @@
+/**
+ * \brief A desktop dock pane to dock dialogs, a custom wrapper around gdl-dock.
+ *
+ * Author:
+ *   Gustav Broberg <broberg kth se>
+ *
+ * Copyright (C) 2007 Authors
+ *
+ * Released under GNU GPL.  Read the file 'COPYING' for more information.
+ */
+
+#ifndef INKSCAPE_UI_WIDGET_DOCK_H
+#define INKSCAPE_UI_WIDGET_DOCK_H
+
+#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 {
+
+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 . +))
+  indent-tabs-mode:nil
+  fill-column:80
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 
+
diff --git a/src/fwk/toolkit/widgets/editablehscale.cpp b/src/fwk/toolkit/widgets/editablehscale.cpp
index b9d4b4b..cc97be0 100644
--- a/src/fwk/toolkit/widgets/editablehscale.cpp
+++ b/src/fwk/toolkit/widgets/editablehscale.cpp
@@ -1,5 +1,5 @@
 /*
- * niepce - framework/widgets/editablehscale.cpp
+ * niepce - fwk/widgets/editablehscale.cpp
  *
  * Copyright (C) 2008 Hubert Figuiere
  *
@@ -22,10 +22,10 @@
 #include <glibmm/property.h>
 
 #include "fwk/utils/debug.h"
-#include "editablehscale.h"
+#include "editablehscale.hpp"
 
 
-namespace framework {
+namespace fwk {
 
 EditableHScale::EditableHScale(double min, double max, double step)
     : m_adj(0, min, max, step),
diff --git a/src/fwk/toolkit/widgets/editablehscale.h b/src/fwk/toolkit/widgets/editablehscale.h
deleted file mode 100644
index 5e0b84a..0000000
--- a/src/fwk/toolkit/widgets/editablehscale.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * niepce - framework/widgets/editablehscale.h
- *
- * Copyright (C) 2008 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef _FRAMEWORK_EDITABLEHSCALE_H_
-#define _FRAMEWORK_EDITABLEHSCALE_H_
-
-
-#include <gtkmm/box.h>
-#include <gtkmm/spinbutton.h>
-#include <gtkmm/scale.h>
-
-
-namespace framework {
-
-/** A widget similar to a Gtk::HScale with a edit box */
-class EditableHScale
-    : public Gtk::HBox
-{
-public:
-    EditableHScale(double min, double max, double step);
-
-    Gtk::Adjustment  &       get_adjustment()
-        { return m_adj; }
-    const Gtk::Adjustment  & get_adjustment() const
-        { return m_adj; }
-
-    sigc::signal<void,double> & signal_value_changed();
-    sigc::signal<void,double> & signal_value_changing();
-
-    bool on_button_press_event(GdkEventButton *event);
-
-private:
-
-    void on_adj_value_changed();
-
-    Gtk::Adjustment  m_adj;
-    Gtk::HScale      m_scale;
-    Gtk::SpinButton  m_entry;
-    bool             m_dirty;
-    /** emitted once the value changed */
-    sigc::signal<void,double> m_sig_value_changed;
-    /** emitted when the value is changing (think live update) */
-    sigc::signal<void,double> m_sig_value_changing;
-};
-
-
-}
-
-#endif
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0))
-  indent-tabs-mode:nil
-  fill-column:80
-  End:
-*/
diff --git a/src/fwk/toolkit/widgets/editablehscale.hpp b/src/fwk/toolkit/widgets/editablehscale.hpp
new file mode 100644
index 0000000..f25ab2c
--- /dev/null
+++ b/src/fwk/toolkit/widgets/editablehscale.hpp
@@ -0,0 +1,75 @@
+/*
+ * niepce - fwk/widgets/editablehscale.h
+ *
+ * Copyright (C) 2008 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef _FWK_EDITABLEHSCALE_H_
+#define _FWK_EDITABLEHSCALE_H_
+
+
+#include <gtkmm/box.h>
+#include <gtkmm/spinbutton.h>
+#include <gtkmm/scale.h>
+
+
+namespace fwk {
+
+/** A widget similar to a Gtk::HScale with a edit box */
+class EditableHScale
+    : public Gtk::HBox
+{
+public:
+    EditableHScale(double min, double max, double step);
+
+    Gtk::Adjustment  &       get_adjustment()
+        { return m_adj; }
+    const Gtk::Adjustment  & get_adjustment() const
+        { return m_adj; }
+
+    sigc::signal<void,double> & signal_value_changed();
+    sigc::signal<void,double> & signal_value_changing();
+
+    bool on_button_press_event(GdkEventButton *event);
+
+private:
+
+    void on_adj_value_changed();
+
+    Gtk::Adjustment  m_adj;
+    Gtk::HScale      m_scale;
+    Gtk::SpinButton  m_entry;
+    bool             m_dirty;
+    /** emitted once the value changed */
+    sigc::signal<void,double> m_sig_value_changed;
+    /** emitted when the value is changing (think live update) */
+    sigc::signal<void,double> m_sig_value_changing;
+};
+
+
+}
+
+#endif
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0))
+  indent-tabs-mode:nil
+  fill-column:80
+  End:
+*/
diff --git a/src/fwk/toolkit/widgets/toolboxitemwidget.cpp b/src/fwk/toolkit/widgets/toolboxitemwidget.cpp
index 4227203..62a03f1 100644
--- a/src/fwk/toolkit/widgets/toolboxitemwidget.cpp
+++ b/src/fwk/toolkit/widgets/toolboxitemwidget.cpp
@@ -1,5 +1,5 @@
 /*
- * niepce - framework/toolboxitemwidget.cpp
+ * niepce - fwk/toolboxitemwidget.cpp
  *
  * Copyright (C) 2008 Hubert Figuiere
  *
@@ -18,9 +18,9 @@
  */
 
 
-#include "toolboxitemwidget.h"
+#include "toolboxitemwidget.hpp"
 
-namespace framework {
+namespace fwk {
 
 ToolboxItemWidget::ToolboxItemWidget(const Glib::ustring & title)
     : Gtk::Expander(Glib::ustring("<b>") + title + "</b>")
diff --git a/src/fwk/toolkit/widgets/toolboxitemwidget.h b/src/fwk/toolkit/widgets/toolboxitemwidget.h
deleted file mode 100644
index 6b3bdc5..0000000
--- a/src/fwk/toolkit/widgets/toolboxitemwidget.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * niepce - framework/toolboxitemwidget.h
- *
- * Copyright (C) 2008 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-
-#ifndef __FRAMEWORK_TOOLBOXITEMWIDGET_H_
-#define __FRAMEWORK_TOOLBOXITEMWIDGET_H_
-
-#include <gtkmm/expander.h>
-
-namespace framework {
-
-class ToolboxItemWidget
-	: public Gtk::Expander
-{
-public:
-    ToolboxItemWidget(const Glib::ustring & title);
-};
-
-}
-
-#endif
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0))
-  indent-tabs-mode:nil
-  fill-column:80
-  End:
-*/
-
diff --git a/src/fwk/toolkit/widgets/toolboxitemwidget.hpp b/src/fwk/toolkit/widgets/toolboxitemwidget.hpp
new file mode 100644
index 0000000..28a1a14
--- /dev/null
+++ b/src/fwk/toolkit/widgets/toolboxitemwidget.hpp
@@ -0,0 +1,48 @@
+/*
+ * niepce - fwk/toolboxitemwidget.h
+ *
+ * Copyright (C) 2008 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+
+#ifndef __FWK_TOOLBOXITEMWIDGET_H_
+#define __FWK_TOOLBOXITEMWIDGET_H_
+
+#include <gtkmm/expander.h>
+
+namespace fwk {
+
+class ToolboxItemWidget
+	: public Gtk::Expander
+{
+public:
+    ToolboxItemWidget(const Glib::ustring & title);
+};
+
+}
+
+#endif
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0))
+  indent-tabs-mode:nil
+  fill-column:80
+  End:
+*/
+
diff --git a/src/libraryclient/clientimpl.cpp b/src/libraryclient/clientimpl.cpp
index 3a5e9d5..039938f 100644
--- a/src/libraryclient/clientimpl.cpp
+++ b/src/libraryclient/clientimpl.cpp
@@ -34,12 +34,12 @@ using library::tid_t;
 namespace libraryclient {
 	
 ClientImpl *ClientImpl::makeClientImpl(const utils::Moniker & moniker, 
-                                       const framework::NotificationCenter::Ptr & nc)
+                                       const fwk::NotificationCenter::Ptr & nc)
 {
     return new ClientImpl(moniker, nc);
 }
 
-ClientImpl::ClientImpl(const utils::Moniker & moniker, const framework::NotificationCenter::Ptr & nc)
+ClientImpl::ClientImpl(const utils::Moniker & moniker, const fwk::NotificationCenter::Ptr & nc)
     : m_moniker(moniker),
       m_localLibrary(NULL)
 {
diff --git a/src/libraryclient/clientimpl.h b/src/libraryclient/clientimpl.h
index a3ac7b0..b1e0aec 100644
--- a/src/libraryclient/clientimpl.h
+++ b/src/libraryclient/clientimpl.h
@@ -35,9 +35,9 @@ namespace libraryclient {
 	{
 	public:
 		static ClientImpl *makeClientImpl(const utils::Moniker & moniker, 
-										  const framework::NotificationCenter::Ptr & nc);
+										  const fwk::NotificationCenter::Ptr & nc);
 		
-		ClientImpl(const utils::Moniker & moniker, const framework::NotificationCenter::Ptr & nc);
+		ClientImpl(const utils::Moniker & moniker, const fwk::NotificationCenter::Ptr & nc);
 		virtual ~ClientImpl();
 
 		library::tid_t getAllKeywords();
diff --git a/src/libraryclient/libraryclient.cpp b/src/libraryclient/libraryclient.cpp
index 8eae2ba..9815aab 100644
--- a/src/libraryclient/libraryclient.cpp
+++ b/src/libraryclient/libraryclient.cpp
@@ -33,7 +33,7 @@ namespace libraryclient {
 const char * s_thumbcacheDirname = "thumbcache";
 
 LibraryClient::LibraryClient(const utils::Moniker & moniker, 
-                             const framework::NotificationCenter::Ptr & nc)
+                             const fwk::NotificationCenter::Ptr & nc)
     : m_pImpl(ClientImpl::makeClientImpl(moniker, nc)),
       m_thumbnailCache(bfs::path(moniker.path()) / s_thumbcacheDirname, nc)
 {
diff --git a/src/libraryclient/libraryclient.h b/src/libraryclient/libraryclient.h
index f42e3f0..4cb0f4e 100644
--- a/src/libraryclient/libraryclient.h
+++ b/src/libraryclient/libraryclient.h
@@ -31,7 +31,7 @@ namespace utils {
 	class Moniker;
 }
 
-namespace framework {
+namespace fwk {
 	class NotificationCenter;
 }
 
@@ -45,7 +45,7 @@ namespace libraryclient {
 	public:
 		typedef boost::shared_ptr< LibraryClient > Ptr;
 
-		LibraryClient(const utils::Moniker & moniker, const framework::NotificationCenter::Ptr & nc);
+		LibraryClient(const utils::Moniker & moniker, const fwk::NotificationCenter::Ptr & nc);
 		virtual ~LibraryClient();
 
 		static library::tid_t newTid();
diff --git a/src/libraryclient/locallibraryserver.h b/src/libraryclient/locallibraryserver.h
index 794be5f..cd4b28d 100644
--- a/src/libraryclient/locallibraryserver.h
+++ b/src/libraryclient/locallibraryserver.h
@@ -36,7 +36,7 @@ namespace libraryclient {
 	public:
 		/** create the local server for the library whose dir is specified */
 		LocalLibraryServer(const std::string & dir, 
-						   const framework::NotificationCenter::Ptr & nc)
+						   const fwk::NotificationCenter::Ptr & nc)
 			: utils::Worker< library::Op::Ptr >()
 			, m_library(db::Library::Ptr(new db::Library(dir, nc)))
 			{
diff --git a/src/libraryclient/test_worker.cpp b/src/libraryclient/test_worker.cpp
index dff1c77..4184ba7 100644
--- a/src/libraryclient/test_worker.cpp
+++ b/src/libraryclient/test_worker.cpp
@@ -43,7 +43,7 @@ int test_main(int, char *[])
 	BOOST_CHECK(ptempl);
 	{
 		utils::DirectoryDisposer d(ptempl);
-		LocalLibraryServer w(std::string("") + ptempl, framework::NotificationCenter::Ptr());
+		LocalLibraryServer w(std::string("") + ptempl, fwk::NotificationCenter::Ptr());
 		
 		BOOST_CHECK(w._tasks().empty());
 		
diff --git a/src/niepce/main.cpp b/src/niepce/main.cpp
index 6947a13..003bab5 100644
--- a/src/niepce/main.cpp
+++ b/src/niepce/main.cpp
@@ -39,7 +39,7 @@ int main(int argc, char ** argv)
 
 	ExempiManager ex_manager(niepce::xmp_namespaces);
 	
-	return framework::Application::main(
+	return fwk::Application::main(
 		boost::bind(&ui::NiepceApplication::create),
 		argc, argv);
 }
diff --git a/src/niepce/modules/darkroom/darkroommodule.cpp b/src/niepce/modules/darkroom/darkroommodule.cpp
index b09081c..5e33cea 100644
--- a/src/niepce/modules/darkroom/darkroommodule.cpp
+++ b/src/niepce/modules/darkroom/darkroommodule.cpp
@@ -23,8 +23,8 @@
 
 #include "fwk/utils/debug.h"
 #include "fwk/toolkit/application.hpp"
-#include "fwk/toolkit/configdatabinder.h"
-#include "fwk/toolkit/widgets/dock.h"
+#include "fwk/toolkit/configdatabinder.hpp"
+#include "fwk/toolkit/widgets/dock.hpp"
 #include "ncr/ncr.h"
 #include "darkroommodule.h"
 
@@ -75,12 +75,12 @@ Gtk::Widget * DarkroomModule::buildWidget()
 
 	m_vbox.pack_start(*toolbar, Gtk::PACK_SHRINK);
 	m_dr_splitview.pack1(m_vbox, Gtk::EXPAND);
-    m_dock = new framework::Dock();
+    m_dock = new fwk::Dock();
     m_dr_splitview.pack2(m_dock->getWidget(), Gtk::SHRINK);
 
-    m_databinders.add_binder(new framework::ConfigDataBinder<int>(
+    m_databinders.add_binder(new fwk::ConfigDataBinder<int>(
                                  m_dr_splitview.property_position(),
-                                 framework::Application::app()->config(),
+                                 fwk::Application::app()->config(),
                                  "dr_toolbox_pane_splitter"));
 
     m_toolbox_ctrl = ToolboxController::Ptr(new ToolboxController(*m_dock));
diff --git a/src/niepce/modules/darkroom/darkroommodule.h b/src/niepce/modules/darkroom/darkroommodule.h
index 9fd9bb7..aba936f 100644
--- a/src/niepce/modules/darkroom/darkroommodule.h
+++ b/src/niepce/modules/darkroom/darkroommodule.h
@@ -29,21 +29,21 @@
 #include <gtkmm/actiongroup.h>
 #include <gtkmm/scrolledwindow.h>
 
-#include "fwk/toolkit/controller.h"
+#include "fwk/toolkit/controller.hpp"
 #include "engine/db/libfile.h"
 #include "libraryclient/libraryclient.h"
 #include "ncr/image.h"
 #include "modules/darkroom/imagecanvas.h"
 #include "modules/darkroom/toolboxcontroller.h"
 	
-namespace framework {
+namespace fwk {
 class Dock;
 }
 
 namespace darkroom {
 
 class DarkroomModule
-	: public framework::Controller
+	: public fwk::Controller
 {
 public:
 	typedef boost::shared_ptr<DarkroomModule> Ptr;
@@ -71,7 +71,7 @@ private:
     Glib::RefPtr<Gtk::ActionGroup> m_actionGroup;
     ncr::Image::Ptr              m_image;
     libraryclient::LibraryClient::Ptr m_libClient;
-    framework::Dock              *m_dock;
+    fwk::Dock                   *m_dock;
 };
 
 
diff --git a/src/niepce/modules/darkroom/dritemwidget.cpp b/src/niepce/modules/darkroom/dritemwidget.cpp
index de9e124..a27d07d 100644
--- a/src/niepce/modules/darkroom/dritemwidget.cpp
+++ b/src/niepce/modules/darkroom/dritemwidget.cpp
@@ -24,7 +24,7 @@
 namespace darkroom {
 
 DrItemWidget::DrItemWidget(const Glib::ustring & title)
-    : framework::ToolboxItemWidget(title)
+    : fwk::ToolboxItemWidget(title)
 {
     add(m_box);
     m_box.set_border_width(6);
diff --git a/src/niepce/modules/darkroom/dritemwidget.h b/src/niepce/modules/darkroom/dritemwidget.h
index f89421f..90e0b68 100644
--- a/src/niepce/modules/darkroom/dritemwidget.h
+++ b/src/niepce/modules/darkroom/dritemwidget.h
@@ -24,13 +24,13 @@
 
 #include <gtkmm/box.h>
 
-#include "fwk/toolkit/widgets/toolboxitemwidget.h"
+#include "fwk/toolkit/widgets/toolboxitemwidget.hpp"
 
 namespace darkroom {
 
 /** Generic Darkroom item for the toolbox. */
 class DrItemWidget
-    : public framework::ToolboxItemWidget
+    : public fwk::ToolboxItemWidget
 {
 public:
     DrItemWidget(const Glib::ustring & title);
diff --git a/src/niepce/modules/darkroom/imagecanvas.cpp b/src/niepce/modules/darkroom/imagecanvas.cpp
index bab67a1..2860b5e 100644
--- a/src/niepce/modules/darkroom/imagecanvas.cpp
+++ b/src/niepce/modules/darkroom/imagecanvas.cpp
@@ -18,7 +18,7 @@
  */
 
 /* remove this when we require a version that does not barf warnings */
-#include "fwk/toolkit/goocanvas_proxy_header.h"
+#include "fwk/toolkit/goocanvas_proxy_header.hpp"
 //#include <goocanvasmm/canvas.h>
 #include "fwk/utils/debug.h"
 #include "fwk/utils/geometry.h"
diff --git a/src/niepce/modules/darkroom/imagecanvas.h b/src/niepce/modules/darkroom/imagecanvas.h
index 244ac18..cc9d3ff 100644
--- a/src/niepce/modules/darkroom/imagecanvas.h
+++ b/src/niepce/modules/darkroom/imagecanvas.h
@@ -21,7 +21,7 @@
 #include <gdkmm/pixbuf.h>
 #include <gtkmm/bin.h>
 
-#include "fwk/toolkit/goocanvas_proxy_header.h"
+#include "fwk/toolkit/goocanvas_proxy_header.hpp"
 
 namespace darkroom {
 
diff --git a/src/niepce/modules/darkroom/toolboxcontroller.cpp b/src/niepce/modules/darkroom/toolboxcontroller.cpp
index 70a829b..70f5dcb 100644
--- a/src/niepce/modules/darkroom/toolboxcontroller.cpp
+++ b/src/niepce/modules/darkroom/toolboxcontroller.cpp
@@ -25,13 +25,13 @@
 #include <gtkmm/stock.h>
 
 #include "toolboxcontroller.h"
-#include "fwk/toolkit/widgets/editablehscale.h"
-#include "fwk/toolkit/widgets/dock-item.h"
+#include "fwk/toolkit/widgets/editablehscale.hpp"
+#include "fwk/toolkit/widgets/dock-item.hpp"
 #include "dritemwidget.h"
 
 namespace darkroom {
 
-ToolboxController::ToolboxController(framework::Dock &dock)
+ToolboxController::ToolboxController(fwk::Dock &dock)
     : Dockable(dock,"tools", _("Develop"), Gtk::Stock::APPLY.id, 
                DockItem::DOCKED_STATE)
 {
@@ -41,38 +41,38 @@ ToolboxController::ToolboxController(framework::Dock &dock)
 Gtk::Widget * ToolboxController::buildWidget()
 {
     DrItemWidget *item = NULL;
-    framework::EditableHScale *s = NULL;
+    fwk::EditableHScale *s = NULL;
     Gtk::VBox *toolbox = DockItem::get_vbox();
     m_widget = &DockItem::getWidget();
 
     item = manage(new DrItemWidget(_("Crop")));
     toolbox->pack_start(*item, Gtk::PACK_SHRINK);
-    s = Gtk::manage(new framework::EditableHScale(-45.0, 45.0, 0.5));    
+    s = Gtk::manage(new fwk::EditableHScale(-45.0, 45.0, 0.5));    
     item->add_widget(_("Tilt"), *s);
 
     item = manage(new DrItemWidget(_("White balance")));
     toolbox->pack_start(*item, Gtk::PACK_SHRINK);
-    s = Gtk::manage(new framework::EditableHScale(0.0, 100.0, 1.0));
+    s = Gtk::manage(new fwk::EditableHScale(0.0, 100.0, 1.0));
     item->add_widget(_("Color temperature"), *s);
 
     item = manage(new DrItemWidget(_("Tone and colour")));
     toolbox->pack_start(*item, Gtk::PACK_SHRINK);
-    s = Gtk::manage(new framework::EditableHScale(-5.0, 5.0, 0.1));
+    s = Gtk::manage(new fwk::EditableHScale(-5.0, 5.0, 0.1));
 //    s->signal_value_changed().connect();
     item->add_widget(_("Exposure"), *s);
-    s = Gtk::manage(new framework::EditableHScale(0, 100, 1));
+    s = Gtk::manage(new fwk::EditableHScale(0, 100, 1));
     item->add_widget(_("Recovery"), *s);
-    s = Gtk::manage(new framework::EditableHScale(0, 100, 1));
+    s = Gtk::manage(new fwk::EditableHScale(0, 100, 1));
     item->add_widget(_("Fill Light"), *s);
-    s = Gtk::manage(new framework::EditableHScale(0, 100, 1));
+    s = Gtk::manage(new fwk::EditableHScale(0, 100, 1));
     item->add_widget(_("Blacks"), *s);
-    s = Gtk::manage(new framework::EditableHScale(-100, 100, 1));
+    s = Gtk::manage(new fwk::EditableHScale(-100, 100, 1));
     item->add_widget(_("Brightness"), *s);
-    s = Gtk::manage(new framework::EditableHScale(-100, 100, 1));
+    s = Gtk::manage(new fwk::EditableHScale(-100, 100, 1));
     item->add_widget(_("Contrast"), *s);
-    s = Gtk::manage(new framework::EditableHScale(-100, 100, 1));
+    s = Gtk::manage(new fwk::EditableHScale(-100, 100, 1));
     item->add_widget(_("Saturation"), *s);
-    s = Gtk::manage(new framework::EditableHScale(-100, 100, 1));
+    s = Gtk::manage(new fwk::EditableHScale(-100, 100, 1));
     item->add_widget(_("Vibrance"), *s);
 
     return m_widget;
diff --git a/src/niepce/modules/darkroom/toolboxcontroller.h b/src/niepce/modules/darkroom/toolboxcontroller.h
index d79ea66..8a38494 100644
--- a/src/niepce/modules/darkroom/toolboxcontroller.h
+++ b/src/niepce/modules/darkroom/toolboxcontroller.h
@@ -1,5 +1,5 @@
 /*
- * niepce - darkroom/toolboxcontroller.h
+ * niepce - modules/darkroom/toolboxcontroller.h
  *
  * Copyright (C) 2008 Hubert Figuiere
  *
@@ -21,20 +21,20 @@
 #ifndef _DARKROOM_TOOLBOXCONTROLLER_H__
 #define _DARKROOM_TOOLBOXCONTROLLER_H__
 
-#include "fwk/toolkit/dockable.h"
+#include "fwk/toolkit/dockable.hpp"
 
-namespace framework {
+namespace fwk {
 class Dock;
 }
 
 namespace darkroom {
 
 class ToolboxController
-    : public framework::Dockable
+    : public fwk::Dockable
 {
 public:
     typedef boost::shared_ptr<ToolboxController> Ptr;
-    ToolboxController(framework::Dock &);
+    ToolboxController(fwk::Dock &);
     virtual Gtk::Widget * buildWidget();
 };
 
diff --git a/src/niepce/ui/Makefile.am b/src/niepce/ui/Makefile.am
index eebf7a9..a205904 100644
--- a/src/niepce/ui/Makefile.am
+++ b/src/niepce/ui/Makefile.am
@@ -1,9 +1,9 @@
 
 
-DIST_SUBDIRS = thumb-view
+DIST_SUBDIRS = thumb-view dialogs
 
 gladefiles = preferences.ui \
-	importdialog.ui
+	dialogs/importdialog.ui
 
 gladedir = @datarootdir@/niepce/glade/
 glade_DATA = $(gladefiles)
@@ -23,16 +23,17 @@ EXTRA_DIST = $(gladefiles)
 noinst_LIBRARIES = libniepceui.a
 
 libniepceui_a_CPPFLAGS = 
-libniepceui_a_SOURCES = niepcewindow.h niepcewindow.cpp \
+libniepceui_a_SOURCES = niepcewindow.hpp niepcewindow.cpp \
 	niepceapplication.hpp niepceapplication.cpp \
 	librarymainview.h librarymainview.cpp \
 	librarycellrenderer.h librarycellrenderer.cpp \
 	librarymainviewcontroller.h librarymainviewcontroller.cpp \
 	imageliststore.h imageliststore.cpp\
 	workspacecontroller.h workspacecontroller.cpp \
-	metadatapanecontroller.h metadatapanecontroller.cpp \
-	importdialog.h importdialog.cpp \
+	metadatapanecontroller.hpp metadatapanecontroller.cpp \
+	dialogs/importdialog.hpp dialogs/importdialog.cpp \
 	selectioncontroller.h selectioncontroller.cpp \
 	filmstripcontroller.h filmstripcontroller.cpp \
+	dialogs/importdialog.hpp dialogs/importdialog.cpp \
 	thumb-view/eog-thumb-nav.cpp thumb-view/eog-thumb-nav.h \
 	thumb-view/eog-thumb-view.cpp thumb-view/eog-thumb-view.h
diff --git a/src/niepce/ui/dialogs/Makefile.am b/src/niepce/ui/dialogs/Makefile.am
new file mode 100644
index 0000000..69acf4b
--- /dev/null
+++ b/src/niepce/ui/dialogs/Makefile.am
@@ -0,0 +1,2 @@
+
+EXTRA_DIST = importdialog.glade
diff --git a/src/niepce/ui/dialogs/importdialog.cpp b/src/niepce/ui/dialogs/importdialog.cpp
new file mode 100644
index 0000000..6ba7123
--- /dev/null
+++ b/src/niepce/ui/dialogs/importdialog.cpp
@@ -0,0 +1,121 @@
+/*
+ * niepce - niepce/ui/importdialog.cpp
+ *
+ * Copyright (C) 2008-2009 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#include <glibmm/i18n.h>
+#include <gtkmm/button.h>
+#include <gtkmm/checkbutton.h>
+#include <gtkmm/combobox.h>
+#include <gtkmm/filechooserdialog.h>
+#include <gtkmm/label.h>
+#include <gtkmm/liststore.h>
+#include <gtkmm/stock.h>
+#include <gtkmm/builder.h>
+
+#include "fwk/utils/debug.h"
+#include "fwk/toolkit/configuration.hpp"
+#include "fwk/toolkit/application.hpp"
+#include "importdialog.hpp"
+
+using fwk::Configuration;
+using fwk::Application;
+
+namespace ui {
+
+ImportDialog::ImportDialog()
+    : fwk::Frame(GLADEDIR"importdialog.ui", "importDialog"),
+    m_date_tz_combo(NULL),
+	  m_ufraw_import_check(NULL),
+	  m_rawstudio_import_check(NULL),
+	  m_directory_name(NULL),
+    m_folderList(NULL)
+{
+}
+
+
+Gtk::Widget * ImportDialog::buildWidget()
+{
+    Glib::RefPtr<Gtk::Builder> _builder = builder();
+    Gtk::Button *select_directories = NULL;
+    _builder->get_widget("select_directories", select_directories);
+    select_directories->signal_clicked().connect(
+        sigc::mem_fun(*this, &ImportDialog::do_select_directories));
+    _builder->get_widget("date_tz_combo", m_date_tz_combo);
+    _builder->get_widget("ufraw_import_check", m_ufraw_import_check);
+    _builder->get_widget("rawstudio_import_check", m_rawstudio_import_check);
+    _builder->get_widget("directory_name", m_directory_name);
+    _builder->get_widget("folderList", m_folderList);
+    m_folderListModel.inject(*m_folderList);
+    return &gtkWindow();
+}
+
+
+void ImportDialog::do_select_directories()
+{
+    Configuration & cfg = Application::app()->config();
+	
+    Gtk::FileChooserDialog dialog(gtkWindow(), _("Import picture folder"),
+                                  Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER);
+	
+    dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
+    dialog.add_button(_("Import"), Gtk::RESPONSE_OK);
+    dialog.set_select_multiple(true);
+    std::string last_import_location;
+    last_import_location = cfg.getValue("last_import_location", "");
+    if(!last_import_location.empty()) {
+        dialog.set_filename(last_import_location);
+    }
+	
+    int result = dialog.run();
+    switch(result)
+    {
+    case Gtk::RESPONSE_OK:
+        set_to_import(dialog.get_filenames());
+//        m_directory_name->set_label(m_to_import);
+        break;
+    default:
+        break;
+    }
+}
+
+void ImportDialog::set_to_import(const Glib::SListHandle<Glib::ustring> & l)
+{
+    m_list_to_import = l;
+    Glib::RefPtr<Gtk::ListStore> store 
+        = Glib::RefPtr<Gtk::ListStore>::cast_dynamic(m_folderList->get_model());
+    store->clear();
+    for(std::list<std::string>::const_iterator i = m_list_to_import.begin();
+        i != m_list_to_import.end(); ++i) {
+        DBG_OUT("selected %s", i->c_str());
+        Gtk::TreeIter iter = store->append();
+        iter->set_value(m_folderListModel.m_col1, *i);
+    }
+}
+
+}
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
diff --git a/src/niepce/ui/dialogs/importdialog.glade b/src/niepce/ui/dialogs/importdialog.glade
new file mode 100644
index 0000000..4212b43
--- /dev/null
+++ b/src/niepce/ui/dialogs/importdialog.glade
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--*- mode: xml -*-->
+<glade-interface>
+  <widget class="GtkDialog" id="importDialog">
+    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Import</property>
+    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="dialog-vbox2">
+        <property name="visible">True</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+        <property name="spacing">2</property>
+        <child>
+          <widget class="GtkVBox" id="vbox2">
+            <property name="visible">True</property>
+            <property name="spacing">8</property>
+            <child>
+              <widget class="GtkHBox" id="hbox1">
+                <property name="visible">True</property>
+                <property name="spacing">8</property>
+                <child>
+                  <widget class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Directory:</property>
+                    <property name="use_underline">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="directory_name">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="xalign">0</property>
+                  </widget>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="select_directories">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="label" translatable="yes">...</property>
+                    <property name="response_id">0</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">_Folders</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">folderList</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkScrolledWindow" id="scroller1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <child>
+                  <widget class="GtkTreeView" id="folderList">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkExpander" id="expander1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="expanded">True</property>
+                <child>
+                  <widget class="GtkVBox" id="vbox3">
+                    <property name="visible">True</property>
+                    <child>
+                      <widget class="GtkCheckButton" id="ufraw_import_check">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">True</property>
+                        <property name="label" translatable="yes">Import _UFRaw</property>
+                        <property name="use_underline">True</property>
+                        <property name="response_id">0</property>
+                        <property name="draw_indicator">True</property>
+                      </widget>
+                      <packing>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkCheckButton" id="rawstudio_import_check">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">True</property>
+                        <property name="label" translatable="yes">Import Raw_Studio</property>
+                        <property name="use_underline">True</property>
+                        <property name="response_id">0</property>
+                        <property name="draw_indicator">True</property>
+                      </widget>
+                      <packing>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkFrame" id="date_frame">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">GTK_SHADOW_IN</property>
+                        <child>
+                          <widget class="GtkVBox" id="vbox1">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="spacing">4</property>
+                            <child>
+                              <widget class="GtkComboBox" id="date_tz_combo">
+                                <property name="visible">True</property>
+                                <property name="sensitive">False</property>
+                                <property name="active">0</property>
+                                <property name="items" translatable="yes">Date is local
+Date is UTC</property>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label5">
+                                <property name="visible">True</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">You can still change this after importing the pictures.</property>
+                                <property name="wrap">True</property>
+                              </widget>
+                              <packing>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkLabel" id="label4">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="label" translatable="yes">&lt;b&gt;Date:&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </widget>
+                          <packing>
+                            <property name="type">label_item</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="padding">4</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="label3">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Options</property>
+                    <property name="use_underline">True</property>
+                  </widget>
+                  <packing>
+                    <property name="type">label_item</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <widget class="GtkHButtonBox" id="dialog-action_area2">
+            <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <widget class="GtkButton" id="button3">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label" translatable="yes">gtk-cancel</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">1</property>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkButton" id="button4">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label" translatable="yes">_Import</property>
+                <property name="use_underline">True</property>
+                <property name="response_id">0</property>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+</glade-interface>
diff --git a/src/niepce/ui/dialogs/importdialog.hpp b/src/niepce/ui/dialogs/importdialog.hpp
new file mode 100644
index 0000000..e1e624f
--- /dev/null
+++ b/src/niepce/ui/dialogs/importdialog.hpp
@@ -0,0 +1,77 @@
+/*
+ * niepce - niepce/ui/importdialog.h
+ *
+ * Copyright (C) 2008-2009 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+
+
+
+#ifndef __UI_IMPORTDIALOG_H__
+#define __UI_IMPORTDIALOG_H__
+
+#include <list>
+#include <string>
+
+#include <glibmm/refptr.h>
+
+#include "fwk/toolkit/gtkutils.hpp"
+#include "fwk/toolkit/frame.hpp"
+
+namespace Gtk {
+	class Dialog;
+	class ComboBox;
+	class CheckButton;
+	class TreeView;
+}
+
+namespace ui {
+
+class ImportDialog 
+	: public fwk::Frame
+{
+public:
+	typedef boost::shared_ptr<ImportDialog> Ptr;
+
+	ImportDialog();
+
+ 	Gtk::Widget * buildWidget();
+
+//	const Glib::ustring & to_import() const
+//		{ return m_to_import; }
+	const std::list<std::string> & to_import() const
+		{ return m_list_to_import; }
+	void set_to_import(const Glib::SListHandle<Glib::ustring> & l);
+
+private:
+	class ImportParam;
+
+	void do_select_directories();
+	
+//	Glib::ustring m_to_import;
+	std::list<std::string> m_list_to_import;
+	Gtk::ComboBox *m_date_tz_combo;
+	Gtk::CheckButton *m_ufraw_import_check;
+	Gtk::CheckButton *m_rawstudio_import_check;
+	Gtk::Label *m_directory_name;
+	Gtk::TreeView *m_folderList;
+	fwk::TextTreeviewModel m_folderListModel;
+};
+
+}
+
+#endif
+
diff --git a/src/niepce/ui/dialogs/importdialog.ui b/src/niepce/ui/dialogs/importdialog.ui
new file mode 100644
index 0000000..c8a099f
--- /dev/null
+++ b/src/niepce/ui/dialogs/importdialog.ui
@@ -0,0 +1,254 @@
+<?xml version="1.0"?>
+<interface>
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0">Date is local</col>
+      </row>
+      <row>
+        <col id="0">Date is UTC</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkDialog" id="importDialog">
+    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Import</property>
+    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox2">
+        <property name="visible">True</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+        <property name="spacing">2</property>
+        <child>
+          <object class="GtkVBox" id="vbox2">
+            <property name="visible">True</property>
+            <property name="spacing">8</property>
+            <child>
+              <object class="GtkHBox" id="hbox1">
+                <property name="visible">True</property>
+                <property name="spacing">8</property>
+                <child>
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Directory:</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="directory_name">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="xalign">0</property>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkButton" id="select_directories">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="label" translatable="yes">...</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">_Folders</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">folderList</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="scroller1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <child>
+                  <object class="GtkTreeView" id="folderList">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="headers_visible">False</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkExpander" id="expander1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="expanded">True</property>
+                <child>
+                  <object class="GtkVBox" id="vbox3">
+                    <property name="visible">True</property>
+                    <child>
+                      <object class="GtkCheckButton" id="ufraw_import_check">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">True</property>
+                        <property name="label" translatable="yes">Import _UFRaw</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="rawstudio_import_check">
+                        <property name="visible">True</property>
+                        <property name="sensitive">False</property>
+                        <property name="can_focus">True</property>
+                        <property name="label" translatable="yes">Import Raw_Studio</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkFrame" id="date_frame">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">GTK_SHADOW_IN</property>
+                        <child>
+                          <object class="GtkVBox" id="vbox1">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="spacing">4</property>
+                            <child>
+                              <object class="GtkComboBox" id="date_tz_combo">
+                                <property name="visible">True</property>
+                                <property name="sensitive">False</property>
+                                <property name="active">0</property>
+                                <property name="model">model1</property>
+                                <child>
+                                  <object class="GtkCellRendererText" id="renderer1"/>
+                                  <attributes>
+                                    <attribute name="text">0</attribute>
+                                  </attributes>
+                                </child>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="label5">
+                                <property name="visible">True</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">You can still change this after importing the pictures.</property>
+                                <property name="wrap">True</property>
+                              </object>
+                              <packing>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label4">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="label" translatable="yes">&lt;b&gt;Date:&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="padding">4</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label3">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Options</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area2">
+            <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <object class="GtkButton" id="button3">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label" translatable="yes">gtk-cancel</property>
+                <property name="use_stock">True</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkButton" id="button4">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label" translatable="yes">_Import</property>
+                <property name="use_underline">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="1">button3</action-widget>
+      <action-widget response="0">button4</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/src/niepce/ui/filmstripcontroller.h b/src/niepce/ui/filmstripcontroller.h
index 49773ea..a179670 100644
--- a/src/niepce/ui/filmstripcontroller.h
+++ b/src/niepce/ui/filmstripcontroller.h
@@ -22,8 +22,8 @@
 #ifndef __UI_FILMSTRIPCONTROLLER_H_
 #define __UI_FILMSTRIPCONTROLLER_H_
 
-#include "fwk/toolkit/controller.h"
-#include "fwk/toolkit/notificationcenter.h"
+#include "fwk/toolkit/controller.hpp"
+#include "fwk/toolkit/notificationcenter.hpp"
 #include "ui/selectioncontroller.h"
 
 namespace Gtk {
@@ -34,7 +34,7 @@ namespace ui {
 
 
 class FilmStripController
-	: public framework::Controller,
+	: public fwk::Controller,
 	  public IImageSelectable
 {
 public:
diff --git a/src/niepce/ui/imageliststore.cpp b/src/niepce/ui/imageliststore.cpp
index 1da880a..9d98150 100644
--- a/src/niepce/ui/imageliststore.cpp
+++ b/src/niepce/ui/imageliststore.cpp
@@ -22,7 +22,7 @@
 #include "imageliststore.h"
 #include "fwk/utils/debug.h"
 #include "fwk/toolkit/application.hpp"
-#include "fwk/toolkit/gdkutils.h"
+#include "fwk/toolkit/gdkutils.hpp"
 #include "niepce/notifications.h"
 #include "engine/db/library.h"
 #include "engine/library/thumbnailnotification.h"
@@ -64,7 +64,7 @@ Gtk::TreePath ImageListStore::get_path_from_id(int id)
 }
 
 
-void ImageListStore::on_lib_notification(const framework::Notification::Ptr &n)
+void ImageListStore::on_lib_notification(const fwk::Notification::Ptr &n)
 {
     DBG_ASSERT(n->type() == niepce::NOTIFICATION_LIB, 
                "wrong notification type");
@@ -77,7 +77,7 @@ void ImageListStore::on_lib_notification(const framework::Notification::Ptr &n)
             db::LibFile::ListPtr l 
                 = boost::any_cast<db::LibFile::ListPtr>(ln.param);
             DBG_OUT("received folder content file # %d", l->size());
-            Glib::RefPtr< Gtk::IconTheme > icon_theme(framework::Application::app()->getIconTheme());
+            Glib::RefPtr< Gtk::IconTheme > icon_theme(fwk::Application::app()->getIconTheme());
             clear();
             m_idmap.clear();
             db::LibFile::List::const_iterator iter = l->begin();
@@ -90,7 +90,7 @@ void ImageListStore::on_lib_notification(const framework::Notification::Ptr &n)
                     Glib::ustring("image-loading"), 32,
                     Gtk::ICON_LOOKUP_USE_BUILTIN);
                 row[m_columns.m_libfile] = *iter;
-                row[m_columns.m_strip_thumb] = framework::gdkpixbuf_scale_to_fit(row[m_columns.m_pix], 100);
+                row[m_columns.m_strip_thumb] = fwk::gdkpixbuf_scale_to_fit(row[m_columns.m_pix], 100);
                 m_idmap[(*iter)->id()] = riter;
             }
             // at that point clear the cache because the icon view is populated.
@@ -123,7 +123,7 @@ void ImageListStore::on_lib_notification(const framework::Notification::Ptr &n)
     }
 }
 
-void ImageListStore::on_tnail_notification(const framework::Notification::Ptr &n)
+void ImageListStore::on_tnail_notification(const fwk::Notification::Ptr &n)
 {
     DBG_ASSERT(n->type() == niepce::NOTIFICATION_THUMBNAIL, 
                "wrong notification type");
@@ -136,7 +136,7 @@ void ImageListStore::on_tnail_notification(const framework::Notification::Ptr &n
             // found the icon view item
             Gtk::TreeRow row = *(iter->second);
             row[m_columns.m_pix] = tn.pixmap;
-            row[m_columns.m_strip_thumb] = framework::gdkpixbuf_scale_to_fit(tn.pixmap, 100);
+            row[m_columns.m_strip_thumb] = fwk::gdkpixbuf_scale_to_fit(tn.pixmap, 100);
         }
         else {
             DBG_OUT("row %d not found", tn.id);
diff --git a/src/niepce/ui/imageliststore.h b/src/niepce/ui/imageliststore.h
index c4db9b1..9550789 100644
--- a/src/niepce/ui/imageliststore.h
+++ b/src/niepce/ui/imageliststore.h
@@ -26,8 +26,8 @@
 #include <gdkmm/pixbuf.h>
 #include <gtkmm/liststore.h>
 
-#include "fwk/toolkit/notification.h"
-#include "fwk/toolkit/controller.h"
+#include "fwk/toolkit/notification.hpp"
+#include "fwk/toolkit/controller.hpp"
 #include "engine/db/libfile.h"
 #include "libraryclient/libraryclient.h"
 
@@ -65,11 +65,11 @@ public:
 
     static Glib::RefPtr<ImageListStore> create();
 
-    void set_parent_controller(const framework::Controller::WeakPtr & ctrl)
+    void set_parent_controller(const fwk::Controller::WeakPtr & ctrl)
         { m_controller = ctrl; }
 
-    void on_lib_notification(const framework::Notification::Ptr &n);
-    void on_tnail_notification(const framework::Notification::Ptr &n);
+    void on_lib_notification(const fwk::Notification::Ptr &n);
+    void on_tnail_notification(const fwk::Notification::Ptr &n);
 protected:
     ImageListStore(const Columns& columns);
 private:
@@ -77,7 +77,7 @@ private:
 
     const Columns           & m_columns;
     std::map<int, Gtk::TreeIter> m_idmap;
-    framework::Controller::WeakPtr m_controller;
+    fwk::Controller::WeakPtr m_controller;
 };
 
 }
diff --git a/src/niepce/ui/importdialog.cpp b/src/niepce/ui/importdialog.cpp
deleted file mode 100644
index 1222ceb..0000000
--- a/src/niepce/ui/importdialog.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * niepce - niepce/ui/importdialog.cpp
- *
- * Copyright (C) 2008-2009 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include <glibmm/i18n.h>
-#include <gtkmm/button.h>
-#include <gtkmm/checkbutton.h>
-#include <gtkmm/combobox.h>
-#include <gtkmm/filechooserdialog.h>
-#include <gtkmm/label.h>
-#include <gtkmm/liststore.h>
-#include <gtkmm/stock.h>
-#include <gtkmm/builder.h>
-
-#include "fwk/utils/debug.h"
-#include "fwk/toolkit/configuration.h"
-#include "fwk/toolkit/application.hpp"
-#include "importdialog.hpp"
-
-using framework::Configuration;
-using framework::Application;
-
-namespace ui {
-
-ImportDialog::ImportDialog()
-    : framework::Frame(GLADEDIR"importdialog.ui", "importDialog"),
-    m_date_tz_combo(NULL),
-	  m_ufraw_import_check(NULL),
-	  m_rawstudio_import_check(NULL),
-	  m_directory_name(NULL),
-    m_folderList(NULL)
-{
-}
-
-
-Gtk::Widget * ImportDialog::buildWidget()
-{
-    Glib::RefPtr<Gtk::Builder> _builder = builder();
-    Gtk::Button *select_directories = NULL;
-    _builder->get_widget("select_directories", select_directories);
-    select_directories->signal_clicked().connect(
-        sigc::mem_fun(*this, &ImportDialog::do_select_directories));
-    _builder->get_widget("date_tz_combo", m_date_tz_combo);
-    _builder->get_widget("ufraw_import_check", m_ufraw_import_check);
-    _builder->get_widget("rawstudio_import_check", m_rawstudio_import_check);
-    _builder->get_widget("directory_name", m_directory_name);
-    _builder->get_widget("folderList", m_folderList);
-    m_folderListModel.inject(*m_folderList);
-    return &gtkWindow();
-}
-
-
-void ImportDialog::do_select_directories()
-{
-    Configuration & cfg = Application::app()->config();
-	
-    Gtk::FileChooserDialog dialog(gtkWindow(), _("Import picture folder"),
-                                  Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER);
-	
-    dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
-    dialog.add_button(_("Import"), Gtk::RESPONSE_OK);
-    dialog.set_select_multiple(true);
-    std::string last_import_location;
-    last_import_location = cfg.getValue("last_import_location", "");
-    if(!last_import_location.empty()) {
-        dialog.set_filename(last_import_location);
-    }
-	
-    int result = dialog.run();
-    switch(result)
-    {
-    case Gtk::RESPONSE_OK:
-        set_to_import(dialog.get_filenames());
-//        m_directory_name->set_label(m_to_import);
-        break;
-    default:
-        break;
-    }
-}
-
-void ImportDialog::set_to_import(const Glib::SListHandle<Glib::ustring> & l)
-{
-    m_list_to_import = l;
-    Glib::RefPtr<Gtk::ListStore> store 
-        = Glib::RefPtr<Gtk::ListStore>::cast_dynamic(m_folderList->get_model());
-    store->clear();
-    for(std::list<std::string>::const_iterator i = m_list_to_import.begin();
-        i != m_list_to_import.end(); ++i) {
-        DBG_OUT("selected %s", i->c_str());
-        Gtk::TreeIter iter = store->append();
-        iter->set_value(m_folderListModel.m_col1, *i);
-    }
-}
-
-}
-
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0))
-  indent-tabs-mode:nil
-  fill-column:99
-  End:
-*/
diff --git a/src/niepce/ui/importdialog.glade b/src/niepce/ui/importdialog.glade
deleted file mode 100644
index 4212b43..0000000
--- a/src/niepce/ui/importdialog.glade
+++ /dev/null
@@ -1,244 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
-<glade-interface>
-  <widget class="GtkDialog" id="importDialog">
-    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">Import</property>
-    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <property name="has_separator">False</property>
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox2">
-        <property name="visible">True</property>
-        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-        <property name="spacing">2</property>
-        <child>
-          <widget class="GtkVBox" id="vbox2">
-            <property name="visible">True</property>
-            <property name="spacing">8</property>
-            <child>
-              <widget class="GtkHBox" id="hbox1">
-                <property name="visible">True</property>
-                <property name="spacing">8</property>
-                <child>
-                  <widget class="GtkLabel" id="label2">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">_Directory:</property>
-                    <property name="use_underline">True</property>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="directory_name">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="xalign">0</property>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkButton" id="select_directories">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label" translatable="yes">...</property>
-                    <property name="response_id">0</property>
-                  </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="label1">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">_Folders</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">folderList</property>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkScrolledWindow" id="scroller1">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-                <property name="shadow_type">GTK_SHADOW_IN</property>
-                <child>
-                  <widget class="GtkTreeView" id="folderList">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="position">2</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkExpander" id="expander1">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="expanded">True</property>
-                <child>
-                  <widget class="GtkVBox" id="vbox3">
-                    <property name="visible">True</property>
-                    <child>
-                      <widget class="GtkCheckButton" id="ufraw_import_check">
-                        <property name="visible">True</property>
-                        <property name="sensitive">False</property>
-                        <property name="can_focus">True</property>
-                        <property name="label" translatable="yes">Import _UFRaw</property>
-                        <property name="use_underline">True</property>
-                        <property name="response_id">0</property>
-                        <property name="draw_indicator">True</property>
-                      </widget>
-                      <packing>
-                        <property name="fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkCheckButton" id="rawstudio_import_check">
-                        <property name="visible">True</property>
-                        <property name="sensitive">False</property>
-                        <property name="can_focus">True</property>
-                        <property name="label" translatable="yes">Import Raw_Studio</property>
-                        <property name="use_underline">True</property>
-                        <property name="response_id">0</property>
-                        <property name="draw_indicator">True</property>
-                      </widget>
-                      <packing>
-                        <property name="fill">False</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkFrame" id="date_frame">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label_xalign">0</property>
-                        <property name="shadow_type">GTK_SHADOW_IN</property>
-                        <child>
-                          <widget class="GtkVBox" id="vbox1">
-                            <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="spacing">4</property>
-                            <child>
-                              <widget class="GtkComboBox" id="date_tz_combo">
-                                <property name="visible">True</property>
-                                <property name="sensitive">False</property>
-                                <property name="active">0</property>
-                                <property name="items" translatable="yes">Date is local
-Date is UTC</property>
-                              </widget>
-                            </child>
-                            <child>
-                              <widget class="GtkLabel" id="label5">
-                                <property name="visible">True</property>
-                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                                <property name="xalign">0</property>
-                                <property name="label" translatable="yes">You can still change this after importing the pictures.</property>
-                                <property name="wrap">True</property>
-                              </widget>
-                              <packing>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </widget>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="label4">
-                            <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">&lt;b&gt;Date:&lt;/b&gt;</property>
-                            <property name="use_markup">True</property>
-                          </widget>
-                          <packing>
-                            <property name="type">label_item</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="padding">4</property>
-                        <property name="position">2</property>
-                      </packing>
-                    </child>
-                  </widget>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="label3">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">_Options</property>
-                    <property name="use_underline">True</property>
-                  </widget>
-                  <packing>
-                    <property name="type">label_item</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="position">3</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area2">
-            <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
-            <child>
-              <widget class="GtkButton" id="button3">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="label" translatable="yes">gtk-cancel</property>
-                <property name="use_stock">True</property>
-                <property name="response_id">1</property>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkButton" id="button4">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="label" translatable="yes">_Import</property>
-                <property name="use_underline">True</property>
-                <property name="response_id">0</property>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">GTK_PACK_END</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-</glade-interface>
diff --git a/src/niepce/ui/importdialog.hpp b/src/niepce/ui/importdialog.hpp
deleted file mode 100644
index 59c6523..0000000
--- a/src/niepce/ui/importdialog.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * niepce - niepce/ui/importdialog.h
- *
- * Copyright (C) 2008-2009 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-
-
-
-#ifndef __UI_IMPORTDIALOG_H__
-#define __UI_IMPORTDIALOG_H__
-
-#include <list>
-#include <string>
-
-#include <glibmm/refptr.h>
-
-#include "fwk/toolkit/gtkutils.hpp"
-#include "fwk/toolkit/frame.hpp"
-
-namespace Gtk {
-	class Dialog;
-	class ComboBox;
-	class CheckButton;
-	class TreeView;
-}
-
-namespace ui {
-
-class ImportDialog 
-	: public framework::Frame
-{
-public:
-	typedef boost::shared_ptr<ImportDialog> Ptr;
-
-	ImportDialog();
-
- 	Gtk::Widget * buildWidget();
-
-//	const Glib::ustring & to_import() const
-//		{ return m_to_import; }
-	const std::list<std::string> & to_import() const
-		{ return m_list_to_import; }
-	void set_to_import(const Glib::SListHandle<Glib::ustring> & l);
-
-private:
-	class ImportParam;
-
-	void do_select_directories();
-	
-//	Glib::ustring m_to_import;
-	std::list<std::string> m_list_to_import;
-	Gtk::ComboBox *m_date_tz_combo;
-	Gtk::CheckButton *m_ufraw_import_check;
-	Gtk::CheckButton *m_rawstudio_import_check;
-	Gtk::Label *m_directory_name;
-	Gtk::TreeView *m_folderList;
-	fwk::TextTreeviewModel m_folderListModel;
-};
-
-}
-
-#endif
-
diff --git a/src/niepce/ui/importdialog.ui b/src/niepce/ui/importdialog.ui
deleted file mode 100644
index c8a099f..0000000
--- a/src/niepce/ui/importdialog.ui
+++ /dev/null
@@ -1,254 +0,0 @@
-<?xml version="1.0"?>
-<interface>
-  <object class="GtkListStore" id="model1">
-    <columns>
-      <column type="gchararray"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0">Date is local</col>
-      </row>
-      <row>
-        <col id="0">Date is UTC</col>
-      </row>
-    </data>
-  </object>
-  <object class="GtkDialog" id="importDialog">
-    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">Import</property>
-    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <property name="has_separator">False</property>
-    <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox2">
-        <property name="visible">True</property>
-        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-        <property name="spacing">2</property>
-        <child>
-          <object class="GtkVBox" id="vbox2">
-            <property name="visible">True</property>
-            <property name="spacing">8</property>
-            <child>
-              <object class="GtkHBox" id="hbox1">
-                <property name="visible">True</property>
-                <property name="spacing">8</property>
-                <child>
-                  <object class="GtkLabel" id="label2">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">_Directory:</property>
-                    <property name="use_underline">True</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="directory_name">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="xalign">0</property>
-                  </object>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="select_directories">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label" translatable="yes">...</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="label1">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">_Folders</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">folderList</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkScrolledWindow" id="scroller1">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
-                <property name="shadow_type">GTK_SHADOW_IN</property>
-                <child>
-                  <object class="GtkTreeView" id="folderList">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="headers_visible">False</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="position">2</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkExpander" id="expander1">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="expanded">True</property>
-                <child>
-                  <object class="GtkVBox" id="vbox3">
-                    <property name="visible">True</property>
-                    <child>
-                      <object class="GtkCheckButton" id="ufraw_import_check">
-                        <property name="visible">True</property>
-                        <property name="sensitive">False</property>
-                        <property name="can_focus">True</property>
-                        <property name="label" translatable="yes">Import _UFRaw</property>
-                        <property name="use_underline">True</property>
-                        <property name="draw_indicator">True</property>
-                      </object>
-                      <packing>
-                        <property name="fill">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkCheckButton" id="rawstudio_import_check">
-                        <property name="visible">True</property>
-                        <property name="sensitive">False</property>
-                        <property name="can_focus">True</property>
-                        <property name="label" translatable="yes">Import Raw_Studio</property>
-                        <property name="use_underline">True</property>
-                        <property name="draw_indicator">True</property>
-                      </object>
-                      <packing>
-                        <property name="fill">False</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkFrame" id="date_frame">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label_xalign">0</property>
-                        <property name="shadow_type">GTK_SHADOW_IN</property>
-                        <child>
-                          <object class="GtkVBox" id="vbox1">
-                            <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="spacing">4</property>
-                            <child>
-                              <object class="GtkComboBox" id="date_tz_combo">
-                                <property name="visible">True</property>
-                                <property name="sensitive">False</property>
-                                <property name="active">0</property>
-                                <property name="model">model1</property>
-                                <child>
-                                  <object class="GtkCellRendererText" id="renderer1"/>
-                                  <attributes>
-                                    <attribute name="text">0</attribute>
-                                  </attributes>
-                                </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label5">
-                                <property name="visible">True</property>
-                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                                <property name="xalign">0</property>
-                                <property name="label" translatable="yes">You can still change this after importing the pictures.</property>
-                                <property name="wrap">True</property>
-                              </object>
-                              <packing>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
-                        <child type="label">
-                          <object class="GtkLabel" id="label4">
-                            <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="label" translatable="yes">&lt;b&gt;Date:&lt;/b&gt;</property>
-                            <property name="use_markup">True</property>
-                          </object>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="padding">4</property>
-                        <property name="position">2</property>
-                      </packing>
-                    </child>
-                  </object>
-                </child>
-                <child type="label">
-                  <object class="GtkLabel" id="label3">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">_Options</property>
-                    <property name="use_underline">True</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="position">3</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area2">
-            <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
-            <child>
-              <object class="GtkButton" id="button3">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="label" translatable="yes">gtk-cancel</property>
-                <property name="use_stock">True</property>
-              </object>
-            </child>
-            <child>
-              <object class="GtkButton" id="button4">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="label" translatable="yes">_Import</property>
-                <property name="use_underline">True</property>
-                <property name="receives_default">True</property>
-              </object>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">GTK_PACK_END</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-    <action-widgets>
-      <action-widget response="1">button3</action-widget>
-      <action-widget response="0">button4</action-widget>
-    </action-widgets>
-  </object>
-</interface>
diff --git a/src/niepce/ui/librarymainviewcontroller.cpp b/src/niepce/ui/librarymainviewcontroller.cpp
index dd2f3e3..7309ff7 100644
--- a/src/niepce/ui/librarymainviewcontroller.cpp
+++ b/src/niepce/ui/librarymainviewcontroller.cpp
@@ -30,15 +30,15 @@
 #include "niepce/notifications.h"
 #include "engine/db/library.h"
 #include "fwk/toolkit/application.hpp"
-#include "fwk/toolkit/widgets/dock.h"
+#include "fwk/toolkit/widgets/dock.hpp"
 #include "librarymainviewcontroller.h"
 #include "niepcewindow.hpp"
-#include "metadatapanecontroller.h"
+#include "metadatapanecontroller.hpp"
 #include "librarycellrenderer.h"
 
 namespace ui {
 
-void LibraryMainViewController::on_lib_notification(const framework::Notification::Ptr &n)
+void LibraryMainViewController::on_lib_notification(const fwk::Notification::Ptr &n)
 {
     DBG_ASSERT(n->type() == niepce::NOTIFICATION_LIB, 
                "wrong notification type");
@@ -96,15 +96,15 @@ Gtk::Widget * LibraryMainViewController::buildWidget()
     m_scrollview.add(m_librarylistview);
     m_scrollview.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
     m_lib_splitview.pack1(m_scrollview);
-    m_dock = new framework::Dock();
+    m_dock = new fwk::Dock();
     m_metapanecontroller = MetaDataPaneController::Ptr(new MetaDataPaneController(*m_dock));
     add(m_metapanecontroller);
     m_lib_splitview.pack2(m_dock->getWidget());
     (void)m_metapanecontroller->buildWidget();
 
-    m_databinders.add_binder(new framework::ConfigDataBinder<int>(
+    m_databinders.add_binder(new fwk::ConfigDataBinder<int>(
                                  m_lib_splitview.property_position(),
-                                 framework::Application::app()->config(),
+                                 fwk::Application::app()->config(),
                                  "meta_pane_splitter"));
 		
     m_mainview.append_page(m_lib_splitview, _("Library"));
diff --git a/src/niepce/ui/librarymainviewcontroller.h b/src/niepce/ui/librarymainviewcontroller.h
index 470dc41..3047335 100644
--- a/src/niepce/ui/librarymainviewcontroller.h
+++ b/src/niepce/ui/librarymainviewcontroller.h
@@ -31,9 +31,9 @@
 #include "librarymainview.h"
 #include "engine/db/libfile.h"
 #include "libraryclient/libraryclient.h"
-#include "fwk/toolkit/controller.h"
-#include "fwk/toolkit/notification.h"
-#include "metadatapanecontroller.h"
+#include "fwk/toolkit/controller.hpp"
+#include "fwk/toolkit/notification.hpp"
+#include "metadatapanecontroller.hpp"
 #include "selectioncontroller.h"
 #include "modules/darkroom/darkroommodule.h"
 #include "imageliststore.h"
@@ -41,28 +41,28 @@
 namespace Gtk {
 	class Widget;
 }
-namespace framework {
+namespace fwk {
 class Dock;
 }
 
 namespace ui {
 
-	class LibraryMainViewController
-		: public framework::Controller,
+class LibraryMainViewController
+		: public fwk::Controller,
 		  public IImageSelectable
-	{
-	public:
+{
+public:
 		typedef boost::shared_ptr<LibraryMainViewController> Ptr;
 		typedef boost::weak_ptr<LibraryMainViewController> WeakPtr;
 
 		LibraryMainViewController(const Glib::RefPtr<Gtk::ActionGroup> & actions,
-								  const Glib::RefPtr<ImageListStore> & store)
-			: m_actionGroup(actions),
-			  m_model(store)
-			{
-			}
+                              const Glib::RefPtr<ImageListStore> & store)
+        : m_actionGroup(actions),
+          m_model(store)
+        {
+        }
 
-		void on_lib_notification(const framework::Notification::Ptr &);
+		void on_lib_notification(const fwk::Notification::Ptr &);
 
 		/** called when somehing is selected by the shared selection */
 		void on_selected(int id);
@@ -71,10 +71,10 @@ namespace ui {
 		virtual Gtk::IconView * image_list();
 		virtual int get_selected();
 		virtual void select_image(int id);
-	protected:
+protected:
 		virtual Gtk::Widget * buildWidget();
 		virtual void on_ready();
-	private:
+private:
 		libraryclient::LibraryClient::Ptr getLibraryClient();
 		Glib::RefPtr<Gtk::ActionGroup> m_actionGroup;
 
@@ -84,13 +84,13 @@ namespace ui {
 		Gtk::ScrolledWindow          m_scrollview;
 		// library split view
 		Gtk::HPaned                  m_lib_splitview;
-        framework::Dock              *m_dock;
+    fwk::Dock                   *m_dock;
 		MetaDataPaneController::Ptr  m_metapanecontroller;
 
-        darkroom::DarkroomModule::Ptr m_darkroom;
+    darkroom::DarkroomModule::Ptr m_darkroom;
 
 		Glib::RefPtr<ImageListStore> m_model;
-	};
+};
 
 }
 
diff --git a/src/niepce/ui/metadatapanecontroller.cpp b/src/niepce/ui/metadatapanecontroller.cpp
index 9b35185..f5468cb 100644
--- a/src/niepce/ui/metadatapanecontroller.cpp
+++ b/src/niepce/ui/metadatapanecontroller.cpp
@@ -28,8 +28,8 @@
 
 #include "fwk/utils/debug.h"
 #include "fwk/utils/exempi.h"
-#include "fwk/toolkit/metadatawidget.h"
-#include "metadatapanecontroller.h"
+#include "fwk/toolkit/metadatawidget.hpp"
+#include "metadatapanecontroller.hpp"
 
 using namespace xmp;
 
@@ -84,7 +84,7 @@ namespace ui {
 		return s_format;
 	}
 
-	MetaDataPaneController::MetaDataPaneController(framework::Dock &dock)
+	MetaDataPaneController::MetaDataPaneController(fwk::Dock &dock)
 		: Dockable(dock, "Metadata", _("Image Properties"), 
                    Gtk::Stock::PROPERTIES.id, DockItem::DOCKED_STATE),
           m_fileid(0)
@@ -103,7 +103,7 @@ namespace ui {
 		
 		const MetaDataSectionFormat * current = formats;
 		while(current->section) {
-			framework::MetaDataWidget *w = Gtk::manage(new framework::MetaDataWidget(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);
@@ -119,7 +119,7 @@ namespace ui {
         m_fileid = file_id;
 		DBG_OUT("displaying metadata");
 		std::for_each(m_widgets.begin(), m_widgets.end(),
-					  boost::bind(&framework::MetaDataWidget::set_data_source,
+					  boost::bind(&fwk::MetaDataWidget::set_data_source,
 								  _1, meta));
 	}
 
diff --git a/src/niepce/ui/metadatapanecontroller.h b/src/niepce/ui/metadatapanecontroller.h
deleted file mode 100644
index 9908796..0000000
--- a/src/niepce/ui/metadatapanecontroller.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * niepce - ui/metadatapanecontroller.h
- *
- * Copyright (C) 2008 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
- * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __UI_METADATAPANECONTROLLER_H__
-#define __UI_METADATAPANECONTROLLER_H__
-
-#include <gtkmm/box.h>
-
-#include "fwk/utils/exempi.h"
-#include "fwk/toolkit/dockable.h"
-
-namespace xmp {
-	struct MetaDataSectionFormat;
-}
-namespace framework {
-	class MetaDataWidget;
-    class Dock;
-}
-
-namespace ui {
-	
-	class MetaDataPaneController
-		: public framework::Dockable
-	{
-	public:
-		typedef boost::shared_ptr<MetaDataPaneController> Ptr;
-		MetaDataPaneController(framework::Dock &);
-        ~MetaDataPaneController();
-		virtual Gtk::Widget * buildWidget();
-		void display(int file_id, const utils::XmpMeta * meta);
-        int displayed_file() const 
-            { return m_fileid; }
-	private:
-		std::vector<framework::MetaDataWidget *> m_widgets;
-
-		static const xmp::MetaDataSectionFormat * get_format();
-
-        int m_fileid;
-	};
-
-}
-
-
-
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0))
-  indent-tabs-mode:nil
-  fill-column:80
-  End:
-*/
-#endif
diff --git a/src/niepce/ui/metadatapanecontroller.hpp b/src/niepce/ui/metadatapanecontroller.hpp
new file mode 100644
index 0000000..1f000a3
--- /dev/null
+++ b/src/niepce/ui/metadatapanecontroller.hpp
@@ -0,0 +1,70 @@
+/*
+ * niepce - ui/metadatapanecontroller.h
+ *
+ * Copyright (C) 2008-2009 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
+ * the Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __UI_METADATAPANECONTROLLER_H__
+#define __UI_METADATAPANECONTROLLER_H__
+
+#include <gtkmm/box.h>
+
+#include "fwk/utils/exempi.h"
+#include "fwk/toolkit/dockable.hpp"
+
+namespace xmp {
+struct MetaDataSectionFormat;
+}
+namespace fwk {
+class MetaDataWidget;
+class Dock;
+}
+
+namespace ui {
+	
+class MetaDataPaneController
+		: public fwk::Dockable
+{
+public:
+		typedef boost::shared_ptr<MetaDataPaneController> Ptr;
+		MetaDataPaneController(fwk::Dock &);
+    ~MetaDataPaneController();
+		virtual Gtk::Widget * buildWidget();
+		void display(int file_id, const utils::XmpMeta * meta);
+    int displayed_file() const 
+        { return m_fileid; }
+private:
+		std::vector<fwk::MetaDataWidget *> m_widgets;
+
+		static const xmp::MetaDataSectionFormat * get_format();
+
+    int m_fileid;
+};
+
+}
+
+
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0))
+  indent-tabs-mode:nil
+  fill-column:80
+  End:
+*/
+#endif
diff --git a/src/niepce/ui/niepceapplication.cpp b/src/niepce/ui/niepceapplication.cpp
index 1488e94..1f1aff0 100644
--- a/src/niepce/ui/niepceapplication.cpp
+++ b/src/niepce/ui/niepceapplication.cpp
@@ -26,8 +26,8 @@
 #include "niepceapplication.hpp"
 #include "niepcewindow.hpp"
 
-using framework::Frame;
-using framework::Application;
+using fwk::Frame;
+using fwk::Application;
 
 namespace ui {
 
diff --git a/src/niepce/ui/niepceapplication.hpp b/src/niepce/ui/niepceapplication.hpp
index bcd6199..cc88a58 100644
--- a/src/niepce/ui/niepceapplication.hpp
+++ b/src/niepce/ui/niepceapplication.hpp
@@ -4,7 +4,7 @@
 /*
  * niepce - ui/niepceapplication.h
  *
- * Copyright (C) 2007-2008 Hubert Figuiere
+ * Copyright (C) 2007-2009 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
@@ -26,12 +26,12 @@
 namespace ui {
 
 	class NiepceApplication
-		: public framework::Application
+		: public fwk::Application
 	{
 	public:
-		static framework::Application::Ptr create();
+		static fwk::Application::Ptr create();
 
-		virtual framework::Frame::Ptr makeMainFrame();
+		virtual fwk::Frame::Ptr makeMainFrame();
 	protected:
 		NiepceApplication();
 		virtual void on_about();
diff --git a/src/niepce/ui/niepcewindow.cpp b/src/niepce/ui/niepcewindow.cpp
index 2da5d3b..0a7c775 100644
--- a/src/niepce/ui/niepcewindow.cpp
+++ b/src/niepce/ui/niepcewindow.cpp
@@ -38,28 +38,28 @@
 #include "engine/db/library.h"
 #include "libraryclient/libraryclient.h"
 #include "fwk/toolkit/application.hpp"
-#include "fwk/toolkit/configuration.h"
-#include "fwk/toolkit/notificationcenter.h"
-#include "fwk/toolkit/configdatabinder.h"
-#include "fwk/toolkit/undo.h"
+#include "fwk/toolkit/configuration.hpp"
+#include "fwk/toolkit/notificationcenter.hpp"
+#include "fwk/toolkit/configdatabinder.hpp"
+#include "fwk/toolkit/undo.hpp"
 
 #include "eog-thumb-view.h"
 #include "niepcewindow.hpp"
 #include "librarymainviewcontroller.h"
-#include "importdialog.hpp"
+#include "dialogs/importdialog.hpp"
 #include "selectioncontroller.h"
 
 using libraryclient::LibraryClient;
-using framework::Application;
-using framework::Configuration;
-using framework::NotificationCenter;
-using framework::UndoHistory;
+using fwk::Application;
+using fwk::Configuration;
+using fwk::NotificationCenter;
+using fwk::UndoHistory;
 
 namespace ui {
 
 
 NiepceWindow::NiepceWindow()
-    : framework::Frame("mainWindow-frame")
+    : fwk::Frame("mainWindow-frame")
 {
 }
 
@@ -117,7 +117,7 @@ NiepceWindow::buildWidget()
     m_hbox.set_border_width(4);
     m_hbox.pack1(*(m_workspacectrl->widget()), Gtk::EXPAND);
     m_hbox.pack2(*(m_mainviewctrl->widget()), Gtk::EXPAND);
-    m_databinders.add_binder(new framework::ConfigDataBinder<int>(m_hbox.property_position(),
+    m_databinders.add_binder(new fwk::ConfigDataBinder<int>(m_hbox.property_position(),
                                                                   Application::app()->config(),
                                                                   "workspace_splitter"));
 
@@ -204,6 +204,8 @@ void NiepceWindow::init_ui()
         "        <menuitem action='SetLabel7'/>"
         "        <menuitem action='SetLabel8'/>"
         "        <menuitem action='SetLabel9'/>"
+        "        <separator/>"
+        "        <menuitem action='EditLabels'/>"
         "      </menu>"
         "      <separator/>"
         "      <menuitem action='DeleteImage'/>"
@@ -322,6 +324,8 @@ void NiepceWindow::init_actions()
                           boost::bind(&SelectionController::set_label, 
                                       BIND_SHARED_PTR(SelectionController, m_selection_controller)
                                       , 4));
+    m_refActionGroup->add(Gtk::Action::create("EditLabels", _("Edit Labels...")),
+                          sigc::mem_fun(*this, &NiepceWindow::on_action_edit_labels));
     
     m_refActionGroup->add(Gtk::Action::create("SetRating", _("Set _Rating")));
     m_refActionGroup->add(Gtk::Action::create("SetRating0", _("_No Rating")),
@@ -371,7 +375,7 @@ void NiepceWindow::init_actions()
 
 void NiepceWindow::undo_state(const Glib::RefPtr<Gtk::Action> & action)
 {
-    framework::UndoHistory & history(Application::app()->undo_history());
+    fwk::UndoHistory & history(Application::app()->undo_history());
     action->set_sensitive(history.has_undo());
     std::string s = history.next_undo();
     action->property_label() = Glib::ustring(_("Undo ")) + s;
@@ -380,7 +384,7 @@ void NiepceWindow::undo_state(const Glib::RefPtr<Gtk::Action> & action)
 
 void NiepceWindow::redo_state(const Glib::RefPtr<Gtk::Action> & action)
 {
-    framework::UndoHistory & history(Application::app()->undo_history());
+    fwk::UndoHistory & history(Application::app()->undo_history());
     action->set_sensitive(history.has_redo());
     std::string s = history.next_redo();
     action->property_label() = Glib::ustring(_("Redo ")) + s;
@@ -502,24 +506,24 @@ void NiepceWindow::preference_dialog_setup(const Glib::RefPtr<Gtk::Builder> & xm
 //    Glib::RefPtr<Gtk::ListStore> model(Gtk::ListStore::create(columns));
 
 //    theme_combo->set_model(model);
-//    const std::vector<framework::Application::ThemeDesc> & themes = framework::Application::app()->get_available_themes();
-//    std::vector<framework::Application::ThemeDesc>::const_iterator i;
+//    const std::vector<fwk::Application::ThemeDesc> & themes = fwk::Application::app()->get_available_themes();
+//    std::vector<fwk::Application::ThemeDesc>::const_iterator i;
 //    for(i = themes.begin(); i != themes.end(); ++i) {
 //        DBG_OUT("adding %s", i->first.c_str());
 //        Gtk::TreeIter iter = model->append();
 //        (*iter).set_value(columns.label, i->first); 
 //    }
-    theme_combo->set_active(framework::Application::app()
+    theme_combo->set_active(fwk::Application::app()
                             ->get_use_custom_theme());
     theme_combo->signal_changed().connect(
-        boost::bind(&framework::Application::set_use_custom_theme,
-                    framework::Application::app(),
+        boost::bind(&fwk::Application::set_use_custom_theme,
+                    fwk::Application::app(),
                     theme_combo->property_active()));
 
     xml->get_widget("reopen_checkbutton", reopen_checkbutton);
-    binder_pool->add_binder(new framework::ConfigDataBinder<bool>(
+    binder_pool->add_binder(new fwk::ConfigDataBinder<bool>(
                                 reopen_checkbutton->property_active(),
-                                framework::Application::app()->config(),
+                                fwk::Application::app()->config(),
                                 "reopen_last_library"));
 }
 
@@ -541,6 +545,10 @@ void NiepceWindow::open_library(const std::string & libMoniker)
     set_title(libMoniker);
 }
 
+void NiepceWindow::on_action_edit_labels()
+{
+    DBG_OUT("edit labels");
+}
 
 void NiepceWindow::set_title(const std::string & title)
 {
diff --git a/src/niepce/ui/niepcewindow.hpp b/src/niepce/ui/niepcewindow.hpp
index bc77388..f93a2a6 100644
--- a/src/niepce/ui/niepcewindow.hpp
+++ b/src/niepce/ui/niepcewindow.hpp
@@ -31,22 +31,22 @@
 #include <gtkmm/paned.h>
 
 #include "fwk/toolkit/frame.hpp"
-#include "fwk/toolkit/notificationcenter.h"
-#include "fwk/toolkit/configdatabinder.h"
+#include "fwk/toolkit/notificationcenter.hpp"
+#include "fwk/toolkit/configdatabinder.hpp"
 #include "libraryclient/libraryclient.h"
 #include "ui/librarymainviewcontroller.h"
 #include "ui/workspacecontroller.h"
 #include "ui/selectioncontroller.h"
 #include "ui/filmstripcontroller.h"
 
-namespace framework {
+namespace fwk {
 	class NotificatioCenter;
 }
 
 namespace ui {
 
 class NiepceWindow
-    : public framework::Frame
+    : public fwk::Frame
 {
 public:
     NiepceWindow();
@@ -69,6 +69,7 @@ private:
     void on_action_file_quit();
     void on_action_file_open();
     void on_open_library();
+    void on_action_edit_labels();
 
     void preference_dialog_setup(const Glib::RefPtr<Gtk::Builder> &,
                                  Gtk::Dialog *);
@@ -79,7 +80,7 @@ private:
 
     void open_library(const std::string & libMoniker);
 		
-    framework::NotificationCenter::Ptr  m_lib_notifcenter;
+    fwk::NotificationCenter::Ptr  m_lib_notifcenter;
 
     Gtk::VBox                      m_vbox;
     Gtk::HPaned                    m_hbox;
diff --git a/src/niepce/ui/selectioncontroller.cpp b/src/niepce/ui/selectioncontroller.cpp
index 056a9a9..bb3b91c 100644
--- a/src/niepce/ui/selectioncontroller.cpp
+++ b/src/niepce/ui/selectioncontroller.cpp
@@ -24,8 +24,8 @@
 
 #include "fwk/utils/autoflag.h"
 #include "fwk/utils/debug.h"
-#include "fwk/toolkit/undo.h"
-#include "fwk/toolkit/command.h"
+#include "fwk/toolkit/undo.hpp"
+#include "fwk/toolkit/command.hpp"
 #include "fwk/toolkit/application.hpp"
 #include "engine/db/metadata.h"
 #include "libraryclient/libraryclient.h"
@@ -158,9 +158,9 @@ void SelectionController::rotate(int angle)
 bool SelectionController::_set_metadata(const std::string & undo_label, const db::LibFile::Ptr & file,
                                         int meta, int old_value, int new_value)
 {
-    framework::UndoTransaction *undo = new framework::UndoTransaction(undo_label);
-    framework::Application::app()->undo_history().add(undo);
-    framework::Command *cmd = new framework::Command;
+    fwk::UndoTransaction *undo = new fwk::UndoTransaction(undo_label);
+    fwk::Application::app()->undo_history().add(undo);
+    fwk::Command *cmd = new fwk::Command;
     cmd->redo = boost::bind(&libraryclient::LibraryClient::setMetadata,
                             getLibraryClient(), file->id(), 
                             meta, new_value);
diff --git a/src/niepce/ui/selectioncontroller.h b/src/niepce/ui/selectioncontroller.h
index 514870a..e80eb88 100644
--- a/src/niepce/ui/selectioncontroller.h
+++ b/src/niepce/ui/selectioncontroller.h
@@ -25,7 +25,7 @@
 
 #include <boost/signal.hpp>
 
-#include "fwk/toolkit/controller.h"
+#include "fwk/toolkit/controller.hpp"
 #include "ui/imageliststore.h"
 
 namespace Gtk {
@@ -53,7 +53,7 @@ public:
 
 
 class SelectionController
-	: public framework::Controller
+	: public fwk::Controller
 {
 public:
 	typedef boost::shared_ptr<SelectionController> Ptr;
diff --git a/src/niepce/ui/workspacecontroller.cpp b/src/niepce/ui/workspacecontroller.cpp
index 82a956c..ae423c6 100644
--- a/src/niepce/ui/workspacecontroller.cpp
+++ b/src/niepce/ui/workspacecontroller.cpp
@@ -34,12 +34,12 @@
 #include "workspacecontroller.h"
 
 
-using framework::Application;
+using fwk::Application;
 
 namespace ui {
 
 	WorkspaceController::WorkspaceController()
-		: framework::Controller()
+		: fwk::Controller()
 	{
 		Glib::RefPtr< Gtk::IconTheme > icon_theme(Application::app()->getIconTheme());
 		try {
@@ -68,7 +68,7 @@ namespace ui {
 	}
 
 
-	void WorkspaceController::on_lib_notification(const framework::Notification::Ptr &n)
+	void WorkspaceController::on_lib_notification(const fwk::Notification::Ptr &n)
 	{
 		DBG_OUT("notification for workspace");
 		if(n->type() == niepce::NOTIFICATION_LIB) {
@@ -121,7 +121,7 @@ namespace ui {
 		}
 	}
 
-	void WorkspaceController::on_count_notification(const framework::Notification::Ptr &n)
+	void WorkspaceController::on_count_notification(const fwk::Notification::Ptr &n)
 	{
 		if(n->type() == niepce::NOTIFICATION_COUNT) {
 			DBG_OUT("received NOTIFICATION_COUNT");
diff --git a/src/niepce/ui/workspacecontroller.h b/src/niepce/ui/workspacecontroller.h
index 17e891a..8dde8cb 100644
--- a/src/niepce/ui/workspacecontroller.h
+++ b/src/niepce/ui/workspacecontroller.h
@@ -32,8 +32,8 @@
 #include <gtkmm/treestore.h>
 
 #include "engine/db/libfolder.h"
-#include "fwk/toolkit/controller.h"
-#include "fwk/toolkit/notification.h"
+#include "fwk/toolkit/controller.hpp"
+#include "fwk/toolkit/notification.hpp"
 
 namespace Gtk {
 }
@@ -42,7 +42,7 @@ namespace Gtk {
 namespace ui {
 
 	class WorkspaceController
-		: public framework::Controller
+		: public fwk::Controller
 	{
 	public:
 		typedef boost::shared_ptr<WorkspaceController> Ptr;
@@ -79,8 +79,8 @@ namespace ui {
 
 		virtual void on_ready();
 
-		void on_lib_notification(const framework::Notification::Ptr &);
-		void on_count_notification(const framework::Notification::Ptr &);
+		void on_lib_notification(const fwk::Notification::Ptr &);
+		void on_count_notification(const fwk::Notification::Ptr &);
 		void on_libtree_selection();
 
 	protected:



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