[PATCH 4/4] Port to gtkmm 3.0 and gtksourceviewmm 3.0



	* configure.ac: Require gtkmm-3.0, gtksourceviewmm-3.0,
	gtk+-3.0, and vte-2.90.
	* src/persp/dbgperspective/nmv-breakpoints-view.cc:
	* src/persp/dbgperspective/nmv-call-function-dialog.cc:
	* src/persp/dbgperspective/nmv-call-stack.cc:
	* src/persp/dbgperspective/nmv-file-list.[cc,h]:
	* src/persp/dbgperspective/nmv-local-vars-inspector.cc:
	* src/persp/dbgperspective/nmv-open-file-dialog.[cc,h]:
	* src/persp/dbgperspective/nmv-registers-view.cc:
	* src/persp/dbgperspective/nmv-thread-list.cc:
	* src/persp/dbgperspective/nmv-var-inspector-dialog.cc:
	* src/persp/dbgperspective/nmv-variables-utils.cc:
	* src/persp/dbgperspective/nmv-vars-treeview.cc:
	* src/persp/dbgperspective/ui/callfunctiondialog.ui:
	* src/persp/dbgperspective/ui/findtextdialog.ui:
	* src/persp/dbgperspective/ui/varinspectordialog.ui:
	* src/uicommon/nmv-dialog.cc:
	* src/uicommon/nmv-popup-tip.cc:
	* src/uicommon/nmv-terminal.[cc,h]:
	* src/workbench/nmv-workbench.cc: Port to gtkmm-3.0.
	* src/persp/dbgperspective/nmv-dbg-perspective.cc:
	* src/persp/dbgperspective/nmv-find-text-dialog.cc:
	* src/persp/dbgperspective/nmv-preferences-dialog.cc:
	* src/uicommon/nmv-source-editor.cc:
	* src/uicommon/nmv-source-editor.h: Port to gtksourceviewmm-3.0.
---
 configure.ac                                       |   22 ++--
 src/persp/dbgperspective/nmv-breakpoints-view.cc   |    6 +-
 .../dbgperspective/nmv-call-function-dialog.cc     |    6 +-
 src/persp/dbgperspective/nmv-call-stack.cc         |   10 +-
 src/persp/dbgperspective/nmv-dbg-perspective.cc    |  107 +++++++------
 src/persp/dbgperspective/nmv-file-list.cc          |   38 +++--
 src/persp/dbgperspective/nmv-file-list.h           |    2 +-
 src/persp/dbgperspective/nmv-find-text-dialog.cc   |   12 +-
 .../dbgperspective/nmv-local-vars-inspector.cc     |    6 +-
 src/persp/dbgperspective/nmv-open-file-dialog.cc   |   16 +-
 src/persp/dbgperspective/nmv-open-file-dialog.h    |    2 +-
 src/persp/dbgperspective/nmv-preferences-dialog.cc |   12 +-
 src/persp/dbgperspective/nmv-registers-view.cc     |   20 ++-
 src/persp/dbgperspective/nmv-thread-list.cc        |    6 +-
 .../dbgperspective/nmv-var-inspector-dialog.cc     |    6 +-
 src/persp/dbgperspective/nmv-variables-utils.cc    |   10 +-
 src/persp/dbgperspective/nmv-vars-treeview.cc      |    6 +-
 src/persp/dbgperspective/ui/callfunctiondialog.ui  |    9 +-
 src/persp/dbgperspective/ui/findtextdialog.ui      |    9 +-
 src/persp/dbgperspective/ui/varinspectordialog.ui  |    9 +-
 src/uicommon/nmv-dialog.cc                         |    1 -
 src/uicommon/nmv-popup-tip.cc                      |    2 -
 src/uicommon/nmv-source-editor.cc                  |  169 ++++++++++----------
 src/uicommon/nmv-source-editor.h                   |   30 ++--
 src/uicommon/nmv-terminal.cc                       |   10 +-
 src/uicommon/nmv-terminal.h                        |    2 +-
 src/workbench/nmv-workbench.cc                     |    6 +-
 27 files changed, 292 insertions(+), 242 deletions(-)

diff --git a/configure.ac b/configure.ac
index fe0e7c3..67aa4cf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,9 +46,9 @@ LIBXML2_VERSION=2.6.22
 AC_SUBST([LIBXML2_VERSION])
 LIBGTK_VERSION=2.22
 AC_SUBST([LIBGTK_VERSION])
-LIBGTKMM_VERSION=2.20
+LIBGTKMM_VERSION=3.0
 AC_SUBST([LIBGTKMM_VERSION])
-LIBGTKSOURCEVIEWMM_VERSION=2.10
+LIBGTKSOURCEVIEWMM_VERSION=3.0
 AC_SUBST([LIBGTKSOURCEVIEWMM_VERSION])
 LIBGIOMM_VERSION=2.15.2
 AC_SUBST([LIBGIOMM_VERSION])
@@ -56,7 +56,7 @@ SQLITE3_VERSION=3.0
 AC_SUBST([SQLITE3_VERSION])
 LIBGTOP_VERSION=2.14
 AC_SUBST([LIBGTOP_VERSION])
-LIBVTE_VERSION=0.12.0
+LIBVTE_VERSION=0.28
 AC_SUBST([LIBVTE_VERSION])
 GCONF_VERSION=2.14.0
 AC_SUBST([GCONF_VERSION])
@@ -258,8 +258,8 @@ if test x$ENABLE_AUTOTESTS = xyes ; then
 fi
 
 if test x$ENABLE_WORKBENCH = xyes ; then
-    DEP_WORKBENCH=" gtkmm-2.4 >= $LIBGTKMM_VERSION \
-                   gtksourceviewmm-2.0 >= $LIBGTKSOURCEVIEWMM_VERSION"
+    DEP_WORKBENCH=" gtkmm-3.0 >= $LIBGTKMM_VERSION \
+                   gtksourceviewmm-3.0 >= $LIBGTKSOURCEVIEWMM_VERSION"
 fi
 
 if test x$ENABLE_MEMORYVIEW = xyes ; then
@@ -309,10 +309,10 @@ AC_SUBST(NEMIVERCOMMON_LIBS)
 AC_SUBST(NEMIVERCOMMON_CFLAGS)
 
 dnl library dependencies for the nemiver common UI module
-DEP_UICOMMON=" gtkmm-2.4 >= $LIBGTKMM_VERSION \
-               gtk+-2.0 >= $LIBGTK_VERSION \
-               gtksourceviewmm-2.0 >= $LIBGTKSOURCEVIEWMM_VERSION \
-               vte >= $LIBVTE_VERSION"
+DEP_UICOMMON=" gtkmm-3.0 >= $LIBGTKMM_VERSION \
+               gtk+-3.0 >= $LIBGTK_VERSION \
+               gtksourceviewmm-3.0 >= $LIBGTKSOURCEVIEWMM_VERSION \
+               vte-2.90 >= $LIBVTE_VERSION"
 
 PKG_CHECK_MODULES(NEMIVERUICOMMON, $DEP_UICOMMON $DEP_COMMON $DEP_MEMORYVIEW)
 NEMIVERUICOMMON_CFLAGS="$NEMIVERUICOMMON_CFLAGS $CPPUNIT_CFLAGS"
@@ -334,8 +334,8 @@ AC_SUBST(NEMIVERWORKBENCH_LIBS)
 AC_SUBST(NEMIVERWORKBENCH_CFLAGS)
 
 dnl library dependencies for the nemiver debug perspective plugin
-DEP_PERSP="gtksourceviewmm-2.0 >= $LIBGTKSOURCEVIEWMM_VERSION \
-           vte >= $LIBVTE_VERSION"
+DEP_PERSP="gtksourceviewmm-3.0 >= $LIBGTKSOURCEVIEWMM_VERSION \
+           vte-2.90 >= $LIBVTE_VERSION"
 
 PKG_CHECK_MODULES(NEMIVERDBGPERSP, $DEP_UICOMMON $DEP_VFS $DEP_PERSP $DEP_MEMORYVIEW)
 NEMIVERDBGPERSP_LIBS="$NEMIVERDBGPERSP_LIBS $CPPUNIT_LIBS"
diff --git a/src/persp/dbgperspective/nmv-breakpoints-view.cc b/src/persp/dbgperspective/nmv-breakpoints-view.cc
index 9a954b5..178277c 100644
--- a/src/persp/dbgperspective/nmv-breakpoints-view.cc
+++ b/src/persp/dbgperspective/nmv-breakpoints-view.cc
@@ -215,9 +215,9 @@ public:
         tree_view->signal_key_press_event ().connect
             (sigc::mem_fun
              (*this, &Priv::on_key_press_event));
-        tree_view->signal_expose_event ().connect_notify
+        tree_view->signal_draw ().connect_notify
             (sigc::mem_fun
-             (*this, &Priv::on_expose_event));
+             (*this, &Priv::on_draw_signal));
     }
 
     bool 
@@ -657,7 +657,7 @@ public:
     }
 
     void
-    on_expose_event (GdkEventExpose *)
+    on_draw_signal (const Cairo::RefPtr<Cairo::Context> &)
     {
         LOG_FUNCTION_SCOPE_NORMAL_DD;
         NEMIVER_TRY
diff --git a/src/persp/dbgperspective/nmv-call-function-dialog.cc b/src/persp/dbgperspective/nmv-call-function-dialog.cc
index d48e5de..6cf0937 100644
--- a/src/persp/dbgperspective/nmv-call-function-dialog.cc
+++ b/src/persp/dbgperspective/nmv-call-function-dialog.cc
@@ -44,7 +44,7 @@ get_call_expr_history_cols ()
 }
 
 struct CallFunctionDialog::Priv {
-    Gtk::ComboBoxEntry *call_expr_entry;
+    Gtk::ComboBox *call_expr_entry;
     Glib::RefPtr<Gtk::ListStore> call_expr_history;
     Gtk::Button *ok_button;
     Priv (Gtk::Dialog &a_dialog,
@@ -63,13 +63,13 @@ struct CallFunctionDialog::Priv {
             (sigc::mem_fun (*this, &Priv::on_ok_button_clicked_signal));
 
         call_expr_entry =
-            ui_utils::get_widget_from_gtkbuilder<Gtk::ComboBoxEntry>
+            ui_utils::get_widget_from_gtkbuilder<Gtk::ComboBox>
                                             (a_gtkbuilder, "callexpressionentry");
         THROW_IF_FAIL (call_expr_entry);
         call_expr_history=
             Gtk::ListStore::create (get_call_expr_history_cols ());
         call_expr_entry->set_model (call_expr_history);
-        call_expr_entry->set_text_column (get_call_expr_history_cols ().expr);
+        call_expr_entry->set_entry_text_column (get_call_expr_history_cols ().expr);
 
         call_expr_entry->signal_changed ().connect
             (sigc::mem_fun (*this, &Priv::on_call_expr_entry_changed_signal));
diff --git a/src/persp/dbgperspective/nmv-call-stack.cc b/src/persp/dbgperspective/nmv-call-stack.cc
index d2729df..e4b15e8 100644
--- a/src/persp/dbgperspective/nmv-call-stack.cc
+++ b/src/persp/dbgperspective/nmv-call-stack.cc
@@ -400,7 +400,7 @@ struct CallStack::Priv {
         THROW_IF_FAIL (tree_view);
         Glib::RefPtr<Gtk::TreeSelection> selection = tree_view->get_selection ();
         THROW_IF_FAIL (selection);
-        list<Gtk::TreePath> selected_rows = selection->get_selected_rows ();
+        vector<Gtk::TreePath> selected_rows = selection->get_selected_rows ();
         if (selected_rows.empty ()) {return;}
 
         Gtk::TreeModel::iterator row_iter =
@@ -425,7 +425,7 @@ struct CallStack::Priv {
         NEMIVER_CATCH
     }
 
-    void on_expose_event_signal (GdkEventExpose *)
+    void on_draw_signal (const Cairo::RefPtr<Cairo::Context> &)
     {
         LOG_FUNCTION_SCOPE_NORMAL_DD;
 
@@ -578,7 +578,7 @@ struct CallStack::Priv {
 	}
 
         THROW_IF_FAIL (col = tree_view->get_column (CallStackCols::BINARY_INDEX));
-        col->get_first_cell_renderer ()->set_sensitive ();
+        col->get_first_cell ()->set_sensitive ();
 
         tree_view->set_headers_visible (true);
 	tree_view->columns_autosize ();
@@ -594,8 +594,8 @@ struct CallStack::Priv {
                          (sigc::mem_fun (*this,
                                          &CallStack::Priv::on_row_activated_signal))));
 
-        tree_view->signal_expose_event ().connect_notify
-            (sigc::mem_fun (this, &Priv::on_expose_event_signal));
+        tree_view->signal_draw ().connect_notify
+            (sigc::mem_fun (this, &Priv::on_draw_signal));
 
         tree_view->add_events (Gdk::EXPOSURE_MASK);
 
diff --git a/src/persp/dbgperspective/nmv-dbg-perspective.cc b/src/persp/dbgperspective/nmv-dbg-perspective.cc
index 609ab56..568dc64 100644
--- a/src/persp/dbgperspective/nmv-dbg-perspective.cc
+++ b/src/persp/dbgperspective/nmv-dbg-perspective.cc
@@ -39,13 +39,14 @@
 #include <giomm/contenttype.h>
 
 #include <gtksourceviewmm/init.h>
-#include <gtksourceviewmm/sourcelanguagemanager.h>
-#include <gtksourceviewmm/sourcestyleschememanager.h>
+#include <gtksourceviewmm/languagemanager.h>
+#include <gtksourceviewmm/styleschememanager.h>
 
 #include <pangomm/fontdescription.h>
 #include <gtkmm/clipboard.h>
 #include <gtkmm/separatortoolitem.h>
 #include <gdkmm/cursor.h>
+#include <gdkmm/devicemanager.h>
 #include <gtk/gtk.h>
 #include "common/nmv-safe-ptr-utils.h"
 #include "common/nmv-env.h"
@@ -94,7 +95,7 @@ using namespace std;
 using namespace nemiver::common;
 using namespace nemiver::debugger_utils;
 using namespace nemiver::ui_utils;
-using namespace gtksourceview;
+using namespace Gsv;
 
 NEMIVER_BEGIN_NAMESPACE (nemiver)
 
@@ -191,14 +192,14 @@ private:
         // limit though. When we reach the screen border, we don't want the
         // container to grow past the border. At that point, the user will have
         // to scroll.
-        virtual void on_size_request (Gtk::Requisition *req)
+        virtual void get_preferred_height_vfunc (int &minimum_height,
+                                                 int &natural_height) const
         {
             LOG_FUNCTION_SCOPE_NORMAL_DD
             NEMIVER_TRY
 
-            Gtk::ScrolledWindow::on_size_request (req);
-
             if (!get_realized ()) {
+                Gtk::ScrolledWindow::get_preferred_width_vfunc (minimum_height, natural_height);
                 return;
             }
 
@@ -214,17 +215,20 @@ private:
 
             const Gtk::Widget *child = get_child ();
             THROW_IF_FAIL (child);
-            Gtk::Requisition child_req = child->size_request ();
+            int child_minimum_height, child_natural_height;
+            child->get_preferred_height (child_minimum_height, child_natural_height);
 
             // If the height of the container is too big so that
             // it overflows the max usable height, clip it.
-            if (child_req.height > max_height) {
-                req->height = max_height;
+            if (child_minimum_height > max_height) {
+                minimum_height = max_height;
+                natural_height = max_height;
             } else {
-                req->height = child_req.height;
+                minimum_height = child_minimum_height;
+                natural_height = child_natural_height;
             }
 
-            LOG_DD ("setting scrolled window height: " << req->height);
+            LOG_DD ("setting scrolled window height: " << minimum_height);
 
             NEMIVER_CATCH
         }
@@ -281,7 +285,7 @@ private:
                                 (const IDebugger::Breakpoint& a_breakpoint);
     void on_thread_list_thread_selected_signal (int a_tid);
 
-    void on_switch_page_signal (GtkNotebookPage *a_page, guint a_page_num);
+    void on_switch_page_signal (Gtk::Widget *a_page, guint a_page_num);
 
     void on_attached_to_target_signal (bool a_is_attached);
 
@@ -504,7 +508,7 @@ public:
 
     void edit_workbench_menu ();
 
-    SourceEditor* create_source_editor (Glib::RefPtr<SourceBuffer> &a_source_buf,
+    SourceEditor* create_source_editor (Glib::RefPtr<Gsv::Buffer> &a_source_buf,
                                         bool a_asm_view,
                                         const UString &a_path,
                                         int a_current_line,
@@ -533,7 +537,7 @@ public:
 
     bool load_asm (const common::DisassembleInfo &a_info,
                    const std::list<common::Asm> &a_asm,
-                   Glib::RefPtr<SourceBuffer> &a_buf);
+                   Glib::RefPtr<Gsv::Buffer> &a_buf);
 
     SourceEditor* open_asm (const common::DisassembleInfo &a_info,
                             const std::list<common::Asm> &a_asm,
@@ -995,7 +999,7 @@ struct DBGPerspective::Priv {
     bool use_launch_terminal;
     int num_instr_to_disassemble;
     bool asm_style_pure;
-    Glib::RefPtr<gtksourceview::SourceStyleScheme> editor_style;
+    Glib::RefPtr<Gsv::StyleScheme> editor_style;
     sigc::connection timeout_source_connection;
     //**************************************
     //<detect mouse immobility > N seconds
@@ -1069,7 +1073,7 @@ struct DBGPerspective::Priv {
 
 
     void
-    modify_source_editor_style (Glib::RefPtr<gtksourceview::SourceStyleScheme> a_style_scheme)
+    modify_source_editor_style (Glib::RefPtr<Gsv::StyleScheme> a_style_scheme)
     {
         if (!a_style_scheme) {
             LOG_ERROR ("Trying to set a style with null pointer");
@@ -1098,7 +1102,7 @@ struct DBGPerspective::Priv {
                 it != pagenum_2_source_editor_map.end ();
                 ++it) {
             if (it->second) {
-                it->second->source_view ().modify_font (font_desc);
+                it->second->source_view ().override_font (font_desc);
             }
         }
        THROW_IF_FAIL (terminal);
@@ -1109,7 +1113,7 @@ struct DBGPerspective::Priv {
 #endif // WITH_MEMORYVIEW
     }
 
-    Glib::RefPtr<gtksourceview::SourceStyleScheme>
+    Glib::RefPtr<Gsv::StyleScheme>
     get_editor_style ()
     {
         return editor_style;
@@ -1148,7 +1152,7 @@ struct DBGPerspective::Priv {
 
     bool
     load_file (const UString &a_path,
-               Glib::RefPtr<SourceBuffer> &a_buffer)
+               Glib::RefPtr<Gsv::Buffer> &a_buffer)
     {
         list<string> supported_encodings;
         get_supported_encodings (supported_encodings);
@@ -1890,7 +1894,7 @@ DBGPerspective::on_thread_list_thread_selected_signal (int a_tid)
 
 
 void
-DBGPerspective::on_switch_page_signal (GtkNotebookPage *a_page,
+DBGPerspective::on_switch_page_signal (Gtk::Widget *a_page,
                                        guint a_page_num)
 {
     LOG_FUNCTION_SCOPE_NORMAL_DD;
@@ -2131,8 +2135,7 @@ DBGPerspective::on_motion_notify_event_signal (GdkEventMotion *a_event)
         && m_priv->popup_tip->get_display ()) {
             // Mouse pointer coordinates relative to the root window
             int x = 0, y = 0;
-            Gdk::ModifierType modifier;
-            m_priv->popup_tip->get_display ()->get_pointer (x, y, modifier);
+            m_priv->popup_tip->get_display ()->get_device_manager ()->get_client_pointer ()->get_position (x, y);
             hide_popup_tip_if_mouse_is_outside (x, y);
     }
 
@@ -2453,7 +2456,7 @@ DBGPerspective::on_conf_key_changed_signal (const UString &a_key,
         conf_mgr.get_key_value (a_key, style_id, a_namespace);
         if (!style_id.empty ()) {
             m_priv->editor_style =
-                gtksourceview::SourceStyleSchemeManager::get_default
+                Gsv::StyleSchemeManager::get_default
                 ()->get_scheme (style_id);
             m_priv->modify_source_editor_style (m_priv->editor_style);
         }
@@ -2779,7 +2782,7 @@ DBGPerspective::on_debugger_running_signal ()
     THROW_IF_FAIL (m_priv->throbber);
     THROW_IF_FAIL (m_priv->sourceviews_notebook);
     workbench ().get_root_window ().get_window ()->set_cursor
-                                                (Gdk::Cursor (Gdk::WATCH));
+                                                (Gdk::Cursor::create (Gdk::WATCH));
     m_priv->throbber->start ();
     NEMIVER_CATCH
 }
@@ -3201,8 +3204,7 @@ DBGPerspective::add_stock_icon (const UString &a_stock_id,
     string icon_path = build_resource_path (a_icon_dir, a_icon_name);
     Glib::RefPtr<Gdk::Pixbuf> pixbuf =
                             Gdk::Pixbuf::create_from_file (icon_path);
-    Gtk::IconSet icon_set (pixbuf);
-    m_priv->icon_factory->add (stock_id, icon_set);
+    m_priv->icon_factory->add (stock_id, Gtk::IconSet::create (pixbuf));
 }
 
 void
@@ -4213,8 +4215,21 @@ DBGPerspective::append_source_editor (SourceEditor &a_sv,
 
     SafePtr<SlotedButton> close_button (Gtk::manage (new SlotedButton ()));
     //okay, make the button as small as possible.
-    close_button->get_modifier_style ()->set_xthickness (0);
-    close_button->get_modifier_style ()->set_ythickness (0);
+    static const std::string button_style =
+        "* {\n"
+          "-GtkButton-default-border : 0;\n"
+          "-GtkButton-default-outside-border : 0;\n"
+          "-GtkButton-inner-border: 0;\n"
+          "-GtkWidget-focus-line-width : 0;\n"
+          "-GtkWidget-focus-padding : 0;\n"
+          "padding: 0;\n"
+        "}";
+    Glib::RefPtr<Gtk::CssProvider> css = Gtk::CssProvider::create ();
+    css->load_from_data (button_style);
+
+    Glib::RefPtr<Gtk::StyleContext> context = close_button->get_style_context ();
+    context->add_provider (css, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
     int w=0, h=0;
     Gtk::IconSize::lookup (Gtk::ICON_SIZE_MENU, w, h);
     close_button->set_size_request (w+2, h+2);
@@ -4517,7 +4532,7 @@ DBGPerspective::get_or_append_asm_source_editor ()
     SourceEditor *source_editor =
         get_source_editor_from_path (get_asm_title (), path);
     if (source_editor == 0) {
-        Glib::RefPtr<SourceBuffer> source_buffer =
+        Glib::RefPtr<Gsv::Buffer> source_buffer =
             SourceEditor::create_source_buffer ();
         source_editor =
             create_source_editor (source_buffer,
@@ -5007,7 +5022,7 @@ DBGPerspective::read_default_config ()
     conf_mgr.get_key_value (CONF_KEY_EDITOR_STYLE_SCHEME, style_id);
     NEMIVER_CATCH_NOX
 
-    m_priv->editor_style = gtksourceview::SourceStyleSchemeManager::get_default
+    m_priv->editor_style = Gsv::StyleSchemeManager::get_default
         ()->get_scheme (style_id);
 
     default_config_read_signal ().emit ();
@@ -5043,7 +5058,7 @@ DBGPerspective::popup_source_view_contextual_menu (GdkEventButton *a_event)
     THROW_IF_FAIL (menu);
 
     Gtk::TextIter start, end;
-    Glib::RefPtr<gtksourceview::SourceBuffer> buffer =
+    Glib::RefPtr<Gsv::Buffer> buffer =
                             editor->source_view ().get_source_buffer ();
     THROW_IF_FAIL (buffer);
     bool has_selected_text=false;
@@ -5450,7 +5465,7 @@ DBGPerspective::edit_workbench_menu ()
 }
 
 SourceEditor*
-DBGPerspective::create_source_editor (Glib::RefPtr<SourceBuffer> &a_source_buf,
+DBGPerspective::create_source_editor (Glib::RefPtr<Gsv::Buffer> &a_source_buf,
                                       bool a_asm_view,
                                       const UString &a_path,
                                       int a_current_line,
@@ -5485,7 +5500,7 @@ DBGPerspective::create_source_editor (Glib::RefPtr<SourceBuffer> &a_source_buf,
         Gtk::TextIter cur_line_iter =
                 a_source_buf->get_iter_at_line (current_line);
         if (cur_line_iter) {
-            Glib::RefPtr<SourceMark> where_marker =
+            Glib::RefPtr<Mark> where_marker =
                 a_source_buf->create_source_mark (WHERE_MARK,
                                                   WHERE_CATEGORY,
                                                   cur_line_iter);
@@ -5505,7 +5520,7 @@ DBGPerspective::create_source_editor (Glib::RefPtr<SourceBuffer> &a_source_buf,
 
     if (!m_priv->get_source_font_name ().empty ()) {
         Pango::FontDescription font_desc (m_priv->get_source_font_name ());
-        source_editor->source_view ().modify_font (font_desc);
+        source_editor->source_view ().override_font (font_desc);
     }
     if (m_priv->get_editor_style ()) {
         source_editor->source_view ().get_source_buffer ()->set_style_scheme
@@ -5538,9 +5553,9 @@ DBGPerspective::open_file ()
 
     if (result != Gtk::RESPONSE_OK) {return;}
 
-    list<UString> paths;
+    vector<string> paths;
     dialog.get_filenames (paths);
-    list<UString>::const_iterator iter;
+    vector<string>::const_iterator iter;
     for (iter = paths.begin (); iter != paths.end (); ++iter) {
         open_file_real (*iter, -1, true);
     }
@@ -5567,7 +5582,7 @@ DBGPerspective::open_file_real (const UString &a_path,
 
     NEMIVER_TRY
 
-    Glib::RefPtr<SourceBuffer> source_buffer;
+    Glib::RefPtr<Gsv::Buffer> source_buffer;
     if (!m_priv->load_file (a_path, source_buffer))
         return 0;
 
@@ -5662,7 +5677,7 @@ DBGPerspective::get_asm_title ()
 bool
 DBGPerspective::load_asm (const common::DisassembleInfo &a_info,
                           const std::list<common::Asm> &a_asm,
-                          Glib::RefPtr<SourceBuffer> &a_source_buffer)
+                          Glib::RefPtr<Gsv::Buffer> &a_source_buffer)
 {
     list<UString> where_to_look_for_src;
     m_priv->build_find_file_search_path (where_to_look_for_src);
@@ -5688,7 +5703,7 @@ DBGPerspective::open_asm (const common::DisassembleInfo &a_info,
     SourceEditor *source_editor = 0;
     NEMIVER_TRY
 
-    Glib::RefPtr<SourceBuffer> source_buffer;
+    Glib::RefPtr<Gsv::Buffer> source_buffer;
 
     source_editor = get_source_editor_from_path (get_asm_title ());
 
@@ -5752,7 +5767,7 @@ DBGPerspective::switch_to_asm (const common::DisassembleInfo &a_info,
 
     a_source_editor->clear_decorations ();
 
-    Glib::RefPtr<SourceBuffer> asm_buf;
+    Glib::RefPtr<Gsv::Buffer> asm_buf;
     if ((asm_buf = a_source_editor->get_assembly_source_buffer ()) == 0) {
         SourceEditor::setup_buffer_mime_and_lang (asm_buf, "test/x-asm");
         a_source_editor->register_assembly_source_buffer (asm_buf);
@@ -5799,7 +5814,7 @@ DBGPerspective::switch_to_source_code ()
 
     source_editor->clear_decorations ();
 
-    Glib::RefPtr<SourceBuffer> source_buf;
+    Glib::RefPtr<Gsv::Buffer> source_buf;
     UString source_path;
     if ((source_buf = source_editor->get_non_assembly_source_buffer ()) == 0) {
         // Woops!
@@ -5920,7 +5935,7 @@ DBGPerspective::reload_file (const UString &a_path)
     if (!editor)
         return open_file (a_path);
 
-    Glib::RefPtr<SourceBuffer> buffer =
+    Glib::RefPtr<Gsv::Buffer> buffer =
         editor->source_view ().get_source_buffer ();
     int current_line = editor->current_line ();
     int current_column = editor->current_column ();
@@ -6997,7 +7012,7 @@ DBGPerspective::append_breakpoint (const IDebugger::Breakpoint &a_breakpoint)
         // We not could find an editor for the file of the breakpoint.
         // Ask the backend for asm instructions and set the visual breakpoint
         // at the breakpoint address.
-        Glib::RefPtr<SourceBuffer> buf;
+        Glib::RefPtr<Gsv::Buffer> buf;
         editor = get_source_editor_from_path (get_asm_title ());
         if (editor == 0) {
             editor = create_source_editor (buf,
@@ -7758,7 +7773,7 @@ DBGPerspective::set_breakpoint_using_dialog ()
     SourceEditor *source_editor = get_current_source_editor ();
 
     if (source_editor) {
-        Glib::RefPtr<gtksourceview::SourceBuffer> buffer =
+        Glib::RefPtr<Gsv::Buffer> buffer =
             source_editor->source_view ().get_source_buffer ();
         THROW_IF_FAIL (buffer);
 
@@ -8066,7 +8081,7 @@ DBGPerspective::inspect_variable ()
     Gtk::TextIter start, end;
     SourceEditor *source_editor = get_current_source_editor ();
     if (source_editor) {
-        Glib::RefPtr<gtksourceview::SourceBuffer> buffer =
+        Glib::RefPtr<Gsv::Buffer> buffer =
             source_editor->source_view ().get_source_buffer ();
         THROW_IF_FAIL (buffer);
         if (buffer->get_selection_bounds (start, end)) {
@@ -8827,7 +8842,7 @@ extern "C" {
 bool
 NEMIVER_API nemiver_common_create_dynamic_module_instance (void **a_new_instance)
 {
-    gtksourceview::init ();
+    Gsv::init ();
     *a_new_instance = new nemiver::DBGPerspectiveModule ();
     return (*a_new_instance != 0);
 }
diff --git a/src/persp/dbgperspective/nmv-file-list.cc b/src/persp/dbgperspective/nmv-file-list.cc
index 01e97cd..e3974c7 100644
--- a/src/persp/dbgperspective/nmv-file-list.cc
+++ b/src/persp/dbgperspective/nmv-file-list.cc
@@ -53,7 +53,7 @@ public:
     virtual ~FileListView ();
 
     void set_files (const std::vector<UString> &a_files);
-    void get_selected_filenames (list<UString> &a_filenames) const;
+    void get_selected_filenames (vector<string> &a_filenames) const;
     void expand_to_filename (const UString &a_filename);
 
     sigc::signal<void,
@@ -122,18 +122,26 @@ FileListView::FileListView ()
         sigc::mem_fun (*this, &FileListView::on_file_list_selection_changed));
 
     // fill popup menu:
-    Gtk::Menu::MenuList& menu_list = m_menu_popup.items ();
+    Gtk::MenuItem *menu_item;
 
-    menu_list.push_back (Gtk::Menu_Helpers::MenuElem(_("Expand _Selected"),
-      sigc::mem_fun (*this, &FileListView::on_menu_popup_expand_clicked)));
+    menu_item = Gtk::manage (new Gtk::MenuItem(_("Expand _Selected"), true));
+    menu_item->signal_activate ().connect (sigc::mem_fun (*this, &FileListView::on_menu_popup_expand_clicked));
+    m_menu_popup.append(*menu_item);
+    menu_item->show();
 
-    menu_list.push_back (Gtk::Menu_Helpers::MenuElem(_("Expand _All"),
-      sigc::mem_fun (*this, &FileListView::on_menu_popup_expand_all_clicked)));
+    menu_item = Gtk::manage (new Gtk::MenuItem(_("Expand _All"), true));
+    menu_item->signal_activate ().connect (sigc::mem_fun (*this, &FileListView::on_menu_popup_expand_all_clicked));
+    m_menu_popup.append(*menu_item);
+    menu_item->show();
 
-    menu_list.push_back (Gtk::Menu_Helpers::SeparatorElem());
+    menu_item = Gtk::manage (new Gtk::SeparatorMenuItem ());
+    m_menu_popup.append(*menu_item);
+    menu_item->show();
 
-    menu_list.push_back (Gtk::Menu_Helpers::MenuElem(_("_Collapse"),
-      sigc::mem_fun (*this, &FileListView::on_menu_popup_collapse_clicked)));
+    menu_item = Gtk::manage (new Gtk::MenuItem(_("_Collapse"), true));
+    menu_item->signal_activate ().connect (sigc::mem_fun (*this, &FileListView::on_menu_popup_collapse_clicked));
+    m_menu_popup.append(*menu_item);
+    menu_item->show();
 
     m_menu_popup.accelerate (*this);
 }
@@ -228,13 +236,13 @@ FileListView::set_files (const std::vector<UString> &a_files)
 }
 
 void
-FileListView::get_selected_filenames (list<UString> &a_filenames) const
+FileListView::get_selected_filenames (vector<string> &a_filenames) const
 {
     Glib::RefPtr<const Gtk::TreeSelection> selection = get_selection ();
     THROW_IF_FAIL (selection);
-    list<Gtk::TreeModel::Path> paths = selection->get_selected_rows ();
+    vector<Gtk::TreeModel::Path> paths = selection->get_selected_rows ();
 
-    for (list<Gtk::TreeModel::Path>::iterator path_iter = paths.begin ();
+    for (vector<Gtk::TreeModel::Path>::iterator path_iter = paths.begin ();
          path_iter != paths.end ();
          ++path_iter) {
         Gtk::TreeModel::iterator tree_iter =
@@ -332,9 +340,9 @@ FileListView::expand_selected (bool recursive, bool collapse_if_expanded)
     Glib::RefPtr<Gtk::TreeView::Selection> selection = get_selection ();
 
     if (selection) {
-        list<Gtk::TreeModel::Path> paths = selection->get_selected_rows ();
+        vector<Gtk::TreeModel::Path> paths = selection->get_selected_rows ();
 
-        for (list<Gtk::TreeModel::Path>::iterator path_iter = paths.begin ();
+        for (vector<Gtk::TreeModel::Path>::iterator path_iter = paths.begin ();
              path_iter != paths.end ();
              ++path_iter) {
             Gtk::TreeModel::iterator tree_iter =
@@ -515,7 +523,7 @@ FileList::files_selected_signal () const
 }
 
 void
-FileList::get_filenames (list<UString> &a_filenames) const
+FileList::get_filenames (vector<string> &a_filenames) const
 {
     THROW_IF_FAIL (m_priv);
     m_priv->tree_view->get_selected_filenames (a_filenames);
diff --git a/src/persp/dbgperspective/nmv-file-list.h b/src/persp/dbgperspective/nmv-file-list.h
index 0d5c480..0f0f124 100644
--- a/src/persp/dbgperspective/nmv-file-list.h
+++ b/src/persp/dbgperspective/nmv-file-list.h
@@ -57,7 +57,7 @@ public:
     Gtk::Widget& widget () const;
     sigc::signal<void, const UString&>& file_activated_signal () const;
     sigc::signal<void>& files_selected_signal () const;
-    void get_filenames (list<UString> &a_filenames) const;
+    void get_filenames (std::vector<std::string> &a_filenames) const;
     void update_content ();
     void expand_to_filename (const UString &a_filename);
 
diff --git a/src/persp/dbgperspective/nmv-find-text-dialog.cc b/src/persp/dbgperspective/nmv-find-text-dialog.cc
index eaecd98..26a3cd5 100644
--- a/src/persp/dbgperspective/nmv-find-text-dialog.cc
+++ b/src/persp/dbgperspective/nmv-find-text-dialog.cc
@@ -22,7 +22,7 @@
  *
  *See COPYRIGHT file copyright information.
  */
-#include <gtksourceviewmm/sourceiter.h>
+#include <gtksourceviewmm.h>
 #include <gtkmm/liststore.h>
 #include "common/nmv-exception.h"
 #include "nmv-find-text-dialog.h"
@@ -47,7 +47,7 @@ columns ()
     return s_columns;
 }
 
-using namespace gtksourceview;
+using namespace Gsv;
 
 class FindTextDialog::Priv {
     friend class FindTextDialog;
@@ -72,7 +72,7 @@ public:
         connect_dialog_signals ();
         searchterm_store = Gtk::ListStore::create (columns ());
         get_search_text_combo ()->set_model (searchterm_store);
-        get_search_text_combo ()->set_text_column (columns ().term);
+        get_search_text_combo ()->set_entry_text_column (columns ().term);
     }
 
     void on_search_entry_activated_signal ()
@@ -113,10 +113,10 @@ public:
         return button;
     }
 
-    Gtk::ComboBoxEntry* get_search_text_combo () const
+    Gtk::ComboBox* get_search_text_combo () const
     {
-        Gtk::ComboBoxEntry *combo =
-            ui_utils::get_widget_from_gtkbuilder<Gtk::ComboBoxEntry>
+        Gtk::ComboBox *combo =
+            ui_utils::get_widget_from_gtkbuilder<Gtk::ComboBox>
                                                 (gtkbuilder, "searchtextcombo");
         return combo;
     }
diff --git a/src/persp/dbgperspective/nmv-local-vars-inspector.cc b/src/persp/dbgperspective/nmv-local-vars-inspector.cc
index 7a0bb2e..7e7359e 100644
--- a/src/persp/dbgperspective/nmv-local-vars-inspector.cc
+++ b/src/persp/dbgperspective/nmv-local-vars-inspector.cc
@@ -216,8 +216,8 @@ public:
                             &Priv::on_tree_view_row_activated_signal));
         tree_view->signal_button_press_event ().connect_notify
             (sigc::mem_fun (this, &Priv::on_button_press_signal));
-        tree_view->signal_expose_event ().connect_notify
-            (sigc::mem_fun (this, &Priv::on_expose_event_signal));
+        tree_view->signal_draw ().connect_notify
+            (sigc::mem_fun (this, &Priv::on_draw_signal));
 
         Gtk::CellRenderer *r = tree_view->get_column_cell_renderer
             (VarsTreeView::VARIABLE_VALUE_COLUMN_INDEX);
@@ -994,7 +994,7 @@ public:
     }
 
     void
-    on_expose_event_signal (GdkEventExpose *)
+    on_draw_signal (const Cairo::RefPtr<Cairo::Context> &)
     {
         LOG_FUNCTION_SCOPE_NORMAL_DD;
         NEMIVER_TRY
diff --git a/src/persp/dbgperspective/nmv-open-file-dialog.cc b/src/persp/dbgperspective/nmv-open-file-dialog.cc
index b71cc0d..7a332bb 100644
--- a/src/persp/dbgperspective/nmv-open-file-dialog.cc
+++ b/src/persp/dbgperspective/nmv-open-file-dialog.cc
@@ -107,13 +107,15 @@ public:
         if (radio_button_file_list->get_active ()) {
             LOG_DD("Target file list is active");
             // remove existing children of vbox_file_list
-            vbox_file_list->children ().clear();
+            vbox_file_list->foreach (sigc::mem_fun (vbox_file_list,
+                                                    &Gtk::VBox::remove));
             vbox_file_list->pack_start (file_list.widget ());
             file_list.widget ().show ();
         } else if (radio_button_chooser->get_active ()) {
             LOG_DD("file chooser is active");
             // remove existing children of vbox_file_list
-            vbox_file_list->children ().clear();
+            vbox_file_list->foreach (sigc::mem_fun (vbox_file_list,
+                                                    &Gtk::VBox::remove));
             vbox_file_list->pack_start (file_chooser);
             file_chooser.show ();
         }
@@ -143,13 +145,13 @@ public:
         on_radio_button_toggled ();
     }
 
-    bool validate_source_files(const list<UString> &files)
+    bool validate_source_files(const vector<string> &files)
     {
         if (files.empty()) {
             return false;
         }
 
-        for (list<UString>::const_iterator iter = files.begin ();
+        for (vector<string>::const_iterator iter = files.begin ();
              iter != files.end ();
              ++iter) {
             if (!validate_source_file (*iter)) {
@@ -187,7 +189,7 @@ public:
 
         THROW_IF_FAIL (okbutton);
 
-        list<UString> filenames;
+        vector<string> filenames;
         file_list.get_filenames (filenames);
         if (validate_source_files (filenames)){
             okbutton->set_sensitive (true);
@@ -212,7 +214,7 @@ public:
         NEMIVER_CATCH
     }
 
-    void get_filenames (list<UString> &a_files)
+    void get_filenames (vector<string> &a_files)
     {
         THROW_IF_FAIL(radio_button_file_list);
         THROW_IF_FAIL(radio_button_chooser);
@@ -239,7 +241,7 @@ OpenFileDialog::~OpenFileDialog ()
 }
 
 void
-OpenFileDialog::get_filenames (list<UString> &a_files) const
+OpenFileDialog::get_filenames (vector<string> &a_files) const
 {
     NEMIVER_TRY
 
diff --git a/src/persp/dbgperspective/nmv-open-file-dialog.h b/src/persp/dbgperspective/nmv-open-file-dialog.h
index 41cb3b2..67812ea 100644
--- a/src/persp/dbgperspective/nmv-open-file-dialog.h
+++ b/src/persp/dbgperspective/nmv-open-file-dialog.h
@@ -48,7 +48,7 @@ public:
                     const UString &a_working_dir);
     virtual ~OpenFileDialog ();
 
-    void get_filenames (list<UString> &a_filenames) const;
+    void get_filenames (vector<string> &a_filenames) const;
 
 };//end class nemiver
 
diff --git a/src/persp/dbgperspective/nmv-preferences-dialog.cc b/src/persp/dbgperspective/nmv-preferences-dialog.cc
index 8b70ef3..f715c85 100644
--- a/src/persp/dbgperspective/nmv-preferences-dialog.cc
+++ b/src/persp/dbgperspective/nmv-preferences-dialog.cc
@@ -31,7 +31,7 @@
 #include "nmv-i-conf-mgr.h"
 #include "nmv-i-workbench.h"
 #include "nmv-conf-keys.h"
-#include <gtksourceviewmm/sourcestyleschememanager.h>
+#include <gtksourceviewmm/styleschememanager.h>
 
 using nemiver::common::DynamicModuleManager;
 static const std::string DEFAULT_GDB_BINARY = "default-gdb-binary";
@@ -323,14 +323,14 @@ public:
         THROW_IF_FAIL (editor_style_combo);
         m_editor_style_model = Gtk::ListStore::create (m_style_columns);
 
-        Glib::RefPtr<gtksourceview::SourceStyleSchemeManager> mgr =
-            gtksourceview::SourceStyleSchemeManager::get_default ();
-        std::list<Glib::ustring> schemes = mgr->get_scheme_ids ();
-        for (std::list<Glib::ustring>::const_iterator it = schemes.begin ();
+        Glib::RefPtr<Gsv::StyleSchemeManager> mgr =
+            Gsv::StyleSchemeManager::get_default ();
+        std::vector<std::string> schemes = mgr->get_scheme_ids ();
+        for (std::vector<std::string>::const_iterator it = schemes.begin ();
              it != schemes.end(); ++it) {
             Gtk::TreeModel::iterator treeiter = m_editor_style_model->append ();
             (*treeiter)[m_style_columns.scheme_id] = *it;
-            Glib::RefPtr<gtksourceview::SourceStyleScheme> scheme =
+            Glib::RefPtr<Gsv::StyleScheme> scheme =
                 mgr->get_scheme (*it);
             (*treeiter)[m_style_columns.name] =
                 Glib::ustring::compose ("%1 - <span size=\"smaller\" "
diff --git a/src/persp/dbgperspective/nmv-registers-view.cc b/src/persp/dbgperspective/nmv-registers-view.cc
index 35876c2..eb0bb8f 100644
--- a/src/persp/dbgperspective/nmv-registers-view.cc
+++ b/src/persp/dbgperspective/nmv-registers-view.cc
@@ -100,17 +100,17 @@ public:
         tree_view->append_column (_("Name"), get_columns ().name);
         tree_view->append_column_editable (_("Value"), get_columns ().value);
         Gtk::TreeViewColumn * col = tree_view->get_column (2);
-        col->add_attribute (*col->get_first_cell_renderer (),
+        col->add_attribute (*col->get_first_cell (),
                             "foreground-gdk",
                             get_columns ().fg_color);
         Gtk::CellRendererText* renderer =
                 dynamic_cast<Gtk::CellRendererText*>
-                                        (col->get_first_cell_renderer ());
+                                        (col->get_first_cell ());
         THROW_IF_FAIL (renderer);
         renderer->signal_edited ().connect (sigc::mem_fun
                     (*this, &Priv::on_register_value_edited));
-        tree_view->signal_expose_event ().connect_notify (sigc::mem_fun
-                    (*this, &Priv::on_expose_event_signal));
+        tree_view->signal_draw ().connect_notify (sigc::mem_fun
+                    (*this, &Priv::on_draw_signal));
     }
 
     bool should_process_now ()
@@ -262,7 +262,7 @@ public:
         }
     }
 
-    void on_expose_event_signal (GdkEventExpose *)
+    void on_draw_signal (const Cairo::RefPtr<Cairo::Context> &)
     {
         LOG_FUNCTION_SCOPE_NORMAL_DD;
 
@@ -281,8 +281,14 @@ public:
         if (changed) {
             (*iter)[get_columns ().fg_color]  = Gdk::Color ("red");
         } else {
-            (*iter)[get_columns ().fg_color] =
-                tree_view->get_style ()->get_text (Gtk::STATE_NORMAL);
+            Gdk::RGBA rgba =
+                tree_view->get_style_context ()->get_color
+                                                    (Gtk::STATE_FLAG_NORMAL);
+            Gdk::Color color;
+            color.set_rgb (rgba.get_red (),
+                           rgba.get_green (),
+                           rgba.get_blue ());
+            (*iter)[get_columns ().fg_color] = color;
         }
     }
 
diff --git a/src/persp/dbgperspective/nmv-thread-list.cc b/src/persp/dbgperspective/nmv-thread-list.cc
index 62a9182..d8fe242 100644
--- a/src/persp/dbgperspective/nmv-thread-list.cc
+++ b/src/persp/dbgperspective/nmv-thread-list.cc
@@ -140,7 +140,7 @@ struct ThreadList::Priv {
         NEMIVER_CATCH
     }
 
-    void on_expose_event_signal (GdkEventExpose *)
+    void on_draw_signal (const Cairo::RefPtr<Cairo::Context> &)
     {
         LOG_FUNCTION_SCOPE_NORMAL_DD;
 
@@ -211,8 +211,8 @@ struct ThreadList::Priv {
             tree_view->get_selection ()->signal_changed ().connect
                 (sigc::mem_fun
                     (*this, &Priv::on_tree_view_selection_changed_signal));
-        tree_view->signal_expose_event ().connect_notify
-                    (sigc::mem_fun (*this, &Priv::on_expose_event_signal));
+        tree_view->signal_draw ().connect_notify
+                    (sigc::mem_fun (*this, &Priv::on_draw_signal));
     }
 
     void set_a_thread_id (int a_id)
diff --git a/src/persp/dbgperspective/nmv-var-inspector-dialog.cc b/src/persp/dbgperspective/nmv-var-inspector-dialog.cc
index 88fc1ec..4b1ec38 100644
--- a/src/persp/dbgperspective/nmv-var-inspector-dialog.cc
+++ b/src/persp/dbgperspective/nmv-var-inspector-dialog.cc
@@ -48,7 +48,7 @@ get_cols ()
 
 class VarInspectorDialog::Priv {
     friend class VarInspectorDialog;
-    Gtk::ComboBoxEntry *var_name_entry;
+    Gtk::ComboBox *var_name_entry;
     Glib::RefPtr<Gtk::ListStore> m_variable_history;
     Gtk::Button *inspect_button;
     SafePtr<VarInspector> var_inspector;
@@ -81,12 +81,12 @@ public:
         LOG_FUNCTION_SCOPE_NORMAL_DD;
 
         var_name_entry =
-            ui_utils::get_widget_from_gtkbuilder<Gtk::ComboBoxEntry>
+            ui_utils::get_widget_from_gtkbuilder<Gtk::ComboBox>
                 (gtkbuilder, "variablenameentry");
         m_variable_history =
             Gtk::ListStore::create (get_cols ());
         var_name_entry->set_model (m_variable_history);
-        var_name_entry->set_text_column (get_cols ().varname);
+        var_name_entry->set_entry_text_column (get_cols ().varname);
 
         inspect_button =
             ui_utils::get_widget_from_gtkbuilder<Gtk::Button> (gtkbuilder,
diff --git a/src/persp/dbgperspective/nmv-variables-utils.cc b/src/persp/dbgperspective/nmv-variables-utils.cc
index 4a078b5..58ad201 100644
--- a/src/persp/dbgperspective/nmv-variables-utils.cc
+++ b/src/persp/dbgperspective/nmv-variables-utils.cc
@@ -176,8 +176,14 @@ update_a_variable_node (const IDebugger::VariableSafePtr a_var,
     } else {
         LOG_DD ("remove highlight from variable");
         (*a_iter)[get_variable_columns ().is_highlighted]=false;
-        (*a_iter)[get_variable_columns ().fg_color]  =
-            a_tree_view.get_style ()->get_text (Gtk::STATE_NORMAL);
+        Gdk::RGBA rgba =
+            a_tree_view.get_style_context ()->get_color
+                                                  (Gtk::STATE_FLAG_NORMAL);
+        Gdk::Color color;
+        color.set_rgb (rgba.get_red (),
+                       rgba.get_green (),
+                       rgba.get_blue ());
+        (*a_iter)[get_variable_columns ().fg_color] = color;
     }
 
     (*a_iter)[get_variable_columns ().value] = a_var->value ();
diff --git a/src/persp/dbgperspective/nmv-vars-treeview.cc b/src/persp/dbgperspective/nmv-vars-treeview.cc
index 3d0b133..04f0c50 100644
--- a/src/persp/dbgperspective/nmv-vars-treeview.cc
+++ b/src/persp/dbgperspective/nmv-vars-treeview.cc
@@ -52,7 +52,7 @@ VarsTreeView::VarsTreeView (Glib::RefPtr<Gtk::TreeStore>& model) :
     Gtk::TreeViewColumn * col = get_column (VARIABLE_NAME_COLUMN_INDEX);
     THROW_IF_FAIL (col);
     col->set_resizable (true);
-    col->add_attribute (*col->get_first_cell_renderer (),
+    col->add_attribute (*col->get_first_cell (),
                         "foreground-gdk",
                         vutil::VariableColumns::FG_COLOR_OFFSET);
 
@@ -60,10 +60,10 @@ VarsTreeView::VarsTreeView (Glib::RefPtr<Gtk::TreeStore>& model) :
     col = get_column (VARIABLE_VALUE_COLUMN_INDEX);
     THROW_IF_FAIL (col);
     col->set_resizable (true);
-    col->add_attribute (*col->get_first_cell_renderer (),
+    col->add_attribute (*col->get_first_cell (),
                         "foreground-gdk",
                         vutil::VariableColumns::FG_COLOR_OFFSET);
-    col->add_attribute (*col->get_first_cell_renderer (),
+    col->add_attribute (*col->get_first_cell (),
                         "editable",
                         vutil::VariableColumns::VARIABLE_VALUE_EDITABLE_OFFSET);
 
diff --git a/src/persp/dbgperspective/ui/callfunctiondialog.ui b/src/persp/dbgperspective/ui/callfunctiondialog.ui
index 4bd8c7c..d9f86cb 100644
--- a/src/persp/dbgperspective/ui/callfunctiondialog.ui
+++ b/src/persp/dbgperspective/ui/callfunctiondialog.ui
@@ -34,8 +34,15 @@
               </packing>
             </child>
             <child>
-              <object class="GtkComboBoxEntry" id="callexpressionentry">
+              <object class="GtkComboBox" id="callexpressionentry">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="has_entry">True</property>
+                <child internal-child="entry">
+                  <object class="GtkEntry" id="comboboxentry-entry">
+                    <property name="can_focus">True</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="position">1</property>
diff --git a/src/persp/dbgperspective/ui/findtextdialog.ui b/src/persp/dbgperspective/ui/findtextdialog.ui
index 1962f8d..6baabb9 100644
--- a/src/persp/dbgperspective/ui/findtextdialog.ui
+++ b/src/persp/dbgperspective/ui/findtextdialog.ui
@@ -39,8 +39,15 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkComboBoxEntry" id="searchtextcombo">
+                  <object class="GtkComboBox" id="searchtextcombo">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="has_entry">True</property>
+                    <child internal-child="entry">
+                      <object class="GtkEntry" id="comboboxentry-entry">
+                        <property name="can_focus">True</property>
+                      </object>
+                    </child>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
diff --git a/src/persp/dbgperspective/ui/varinspectordialog.ui b/src/persp/dbgperspective/ui/varinspectordialog.ui
index a95235a..cc1ba10 100644
--- a/src/persp/dbgperspective/ui/varinspectordialog.ui
+++ b/src/persp/dbgperspective/ui/varinspectordialog.ui
@@ -25,8 +25,15 @@
                 <property name="column_spacing">6</property>
                 <property name="row_spacing">6</property>
                 <child>
-                  <object class="GtkComboBoxEntry" id="variablenameentry">
+                  <object class="GtkComboBox" id="variablenameentry">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="has_entry">True</property>
+                    <child internal-child="entry">
+                      <object class="GtkEntry" id="comboboxentry-entry">
+                        <property name="can_focus">True</property>
+                      </object>
+                    </child>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
diff --git a/src/uicommon/nmv-dialog.cc b/src/uicommon/nmv-dialog.cc
index 8c29f26..3fe1841 100644
--- a/src/uicommon/nmv-dialog.cc
+++ b/src/uicommon/nmv-dialog.cc
@@ -72,7 +72,6 @@ public:
             (ui_utils::get_widget_from_gtkbuilder<Gtk::Dialog> (gtkbuilder,
                                                            a_widget_name));
         THROW_IF_FAIL (dialog);
-        dialog->hide ();
     }
 };//end struct Dialog::Priv
 
diff --git a/src/uicommon/nmv-popup-tip.cc b/src/uicommon/nmv-popup-tip.cc
index ea567fb..e8d4d72 100644
--- a/src/uicommon/nmv-popup-tip.cc
+++ b/src/uicommon/nmv-popup-tip.cc
@@ -72,8 +72,6 @@ public:
             (sigc::mem_fun (*this, &Priv::on_leave_notify_event));
         window.signal_focus_out_event ().connect
             (sigc::mem_fun (*this, &Priv::on_signal_focus_out_event));
-
-        window.ensure_style ();
     }
 
     bool
diff --git a/src/uicommon/nmv-source-editor.cc b/src/uicommon/nmv-source-editor.cc
index bf0be28..2108d6d 100644
--- a/src/uicommon/nmv-source-editor.cc
+++ b/src/uicommon/nmv-source-editor.cc
@@ -28,10 +28,9 @@
 #include <gtkmm/table.h>
 #include <gtkmm/label.h>
 #include <gtkmm/scrolledwindow.h>
-#include <gtksourceviewmm/sourcemark.h>
-#include <gtksourceviewmm/sourceiter.h>
-#include <gtksourceviewmm/sourcelanguagemanager.h>
-#include <gtksourceviewmm/sourcestyleschememanager.h>
+#include <gtksourceviewmm/mark.h>
+#include <gtksourceviewmm/markattributes.h>
+#include <gtksourceviewmm.h>
 #include <giomm/file.h>
 #include <giomm/contenttype.h>
 #include "common/nmv-exception.h"
@@ -43,11 +42,9 @@
 
 using namespace std;
 using namespace nemiver::common;
-using gtksourceview::SourceMark;
-using gtksourceview::SourceIter;
-using gtksourceview::SearchFlags;
-using gtksourceview::SourceLanguage;
-using gtksourceview::SourceLanguageManager;
+using Gsv::Mark;
+using Gsv::Language;
+using Gsv::LanguageManager;
 
 NEMIVER_BEGIN_NAMESPACE (nemiver)
 
@@ -64,7 +61,7 @@ on_line_mark_activated_signal (GtkSourceView *a_view,
                                GdkEvent *a_event,
                                gpointer a_pointer);
 
-class SourceView : public gtksourceview::SourceView
+class View : public Gsv::View
 {
 
     sigc::signal<void, int, bool> m_marker_region_got_clicked_signal;
@@ -74,8 +71,8 @@ class SourceView : public gtksourceview::SourceView
                                                gpointer a_pointer);
 
 public:
-    SourceView (Glib::RefPtr<SourceBuffer> &a_buf) :
-        gtksourceview::SourceView (a_buf)
+    View (Glib::RefPtr<Buffer> &a_buf) :
+        Gsv::View (a_buf)
     {
         init_font ();
         enable_events ();
@@ -85,8 +82,8 @@ public:
                           this);
     }
 
-    SourceView () :
-        gtksourceview::SourceView ()
+    View () :
+        Gsv::View ()
     {
         init_font ();
     }
@@ -94,7 +91,7 @@ public:
     void init_font ()
     {
         Pango::FontDescription font("monospace");
-        modify_font(font);
+        override_font(font);
     }
 
     void enable_events ()
@@ -130,7 +127,7 @@ on_line_mark_activated_signal (GtkSourceView *a_view,
 {
     RETURN_IF_FAIL (a_view && a_iter && a_event && a_pointer);
 
-    SourceView *sv = static_cast<SourceView*> (a_pointer);
+    View *sv = static_cast<View*> (a_pointer);
 
     if (a_event->type == GDK_BUTTON_PRESS
         && ((GdkEventButton*)a_event)->button == 1)
@@ -142,21 +139,21 @@ on_line_mark_activated_signal (GtkSourceView *a_view,
 struct SourceEditor::Priv {
     Sequence sequence;
     UString root_dir;
-    nemiver::SourceView *source_view;
+    nemiver::View *source_view;
     Gtk::Label *line_col_label;
     Gtk::HBox *status_box;
     enum SourceEditor::BufferType buffer_type;
     UString path;
 
     struct NonAssemblyBufContext {
-        Glib::RefPtr<SourceBuffer> buffer;
-        std::map<int, Glib::RefPtr<gtksourceview::SourceMark> > markers;
+        Glib::RefPtr<Buffer> buffer;
+        std::map<int, Glib::RefPtr<Gsv::Mark> > markers;
         int current_column;
         int current_line;
         sigc::signal<void, int, int> signal_insertion_moved;
         sigc::signal<void, int, bool> marker_region_got_clicked_signal;
 
-        NonAssemblyBufContext (Glib::RefPtr<SourceBuffer> a_buf,
+        NonAssemblyBufContext (Glib::RefPtr<Buffer> a_buf,
                                 int a_cur_col, int a_cur_line) :
             buffer (a_buf),
             current_column (a_cur_col),
@@ -178,8 +175,8 @@ struct SourceEditor::Priv {
     } non_asm_ctxt;
 
     struct AssemblyBufContext {
-        Glib::RefPtr<SourceBuffer> buffer;
-        std::map<int, Glib::RefPtr<gtksourceview::SourceMark> > markers;
+        Glib::RefPtr<Buffer> buffer;
+        std::map<int, Glib::RefPtr<Gsv::Mark> > markers;
         int current_line;
         int current_column;
         Address current_address;
@@ -191,7 +188,7 @@ struct SourceEditor::Priv {
         }
 
         AssemblyBufContext
-                    (Glib::RefPtr<SourceBuffer> a_buf) :
+                    (Glib::RefPtr<Buffer> a_buf) :
             buffer (a_buf),
             current_line (-1),
             current_column (-1)
@@ -204,7 +201,7 @@ struct SourceEditor::Priv {
 
 
     void
-    register_assembly_source_buffer (Glib::RefPtr<SourceBuffer> &a_buf)
+    register_assembly_source_buffer (Glib::RefPtr<Buffer> &a_buf)
     {
         asm_ctxt.buffer = a_buf;
         source_view->set_source_buffer (a_buf);
@@ -212,7 +209,7 @@ struct SourceEditor::Priv {
     }
 
     void
-    register_non_assembly_source_buffer (Glib::RefPtr<SourceBuffer> &a_buf)
+    register_non_assembly_source_buffer (Glib::RefPtr<Buffer> &a_buf)
     {
         non_asm_ctxt.buffer = a_buf;
         source_view->set_source_buffer (a_buf);
@@ -253,7 +250,7 @@ struct SourceEditor::Priv {
     SourceEditor::BufferType
     get_buffer_type () const
     {
-        Glib::RefPtr<SourceBuffer> buf = source_view->get_source_buffer ();
+        Glib::RefPtr<Buffer> buf = source_view->get_source_buffer ();
         if (buf == non_asm_ctxt.buffer)
             return BUFFER_TYPE_SOURCE;
         else if (buf == asm_ctxt.buffer)
@@ -262,7 +259,7 @@ struct SourceEditor::Priv {
             return BUFFER_TYPE_UNDEFINED;
     }
 
-    std::map<int, Glib::RefPtr<gtksourceview::SourceMark> >*
+    std::map<int, Glib::RefPtr<Gsv::Mark> >*
     get_markers ()
     {
         SourceEditor::BufferType t = get_buffer_type ();
@@ -299,7 +296,7 @@ struct SourceEditor::Priv {
     /// Range::VALUE_SEARCH_RESULT_NONE when no address has been found
     /// in the buffer.
     common::Range::ValueSearchResult
-    get_smallest_range_containing_address (Glib::RefPtr<SourceBuffer> a_buf,
+    get_smallest_range_containing_address (Glib::RefPtr<Buffer> a_buf,
                                            const Address &an_addr,
                                            AddrLineRange &a_range) const
                                     
@@ -390,7 +387,7 @@ struct SourceEditor::Priv {
     /// the function returns true. Otherwise this parameter is not touched.
     /// \return true upon successful completion, false otherwise.
     bool
-    address_2_line (Glib::RefPtr<SourceBuffer> a_buf,
+    address_2_line (Glib::RefPtr<Buffer> a_buf,
 		    const Address an_addr,
                     bool a_approximate,
 		    int &a_line) const
@@ -417,7 +414,7 @@ struct SourceEditor::Priv {
     }
 
     bool
-    line_2_address (Glib::RefPtr<SourceBuffer> a_buf,
+    line_2_address (Glib::RefPtr<Buffer> a_buf,
                     int a_line,
                     Address &an_address) const
     {
@@ -545,7 +542,7 @@ struct SourceEditor::Priv {
     }
 
     void
-    init_common_buffer_signals (Glib::RefPtr<SourceBuffer> a_buf)
+    init_common_buffer_signals (Glib::RefPtr<Buffer> a_buf)
     {
         if (!a_buf)
             return;
@@ -560,7 +557,7 @@ struct SourceEditor::Priv {
     void
     init_assembly_buffer_signals ()
     {
-        Glib::RefPtr<SourceBuffer> buf = asm_ctxt.buffer;
+        Glib::RefPtr<Buffer> buf = asm_ctxt.buffer;
         if (!buf)
             return;
         init_common_buffer_signals (buf);        
@@ -574,7 +571,7 @@ struct SourceEditor::Priv {
 
     void init_non_assembly_buffer_signals ()
     {
-        Glib::RefPtr<SourceBuffer> buf = non_asm_ctxt.buffer;
+        Glib::RefPtr<Buffer> buf = non_asm_ctxt.buffer;
         init_common_buffer_signals (buf);
     }
 
@@ -652,10 +649,9 @@ struct SourceEditor::Priv {
             THROW ("could not get path to " + a_image);
         }
 
-        Glib::RefPtr<Gdk::Pixbuf> bm_pixbuf =
-                                Gdk::Pixbuf::create_from_file (path);
-        source_view->set_mark_category_pixbuf (a_name, bm_pixbuf);
-        source_view->set_mark_category_priority (a_name, 0);
+        Glib::RefPtr<Gsv::MarkAttributes> attributes = Gsv::MarkAttributes::create ();
+        attributes->set_icon (Gio::Icon::create (path));
+        source_view->set_mark_attributes (a_name, attributes, 0);
     }
 
     void
@@ -681,7 +677,7 @@ struct SourceEditor::Priv {
     }
 
     Priv () :
-        source_view (Gtk::manage (new SourceView)),
+        source_view (Gtk::manage (new View)),
         line_col_label (Gtk::manage (new Gtk::Label)),
         status_box (Gtk::manage (new Gtk::HBox)),
         non_asm_ctxt (-1, -1)
@@ -691,15 +687,15 @@ struct SourceEditor::Priv {
     }
 
     explicit Priv (const UString &a_root_dir,
-                   Glib::RefPtr<SourceBuffer> &a_buf,
+                   Glib::RefPtr<Buffer> &a_buf,
                    bool a_assembly) :
         root_dir (a_root_dir),
-        source_view (Gtk::manage (new SourceView (a_buf))),
+        source_view (Gtk::manage (new View (a_buf))),
         line_col_label (Gtk::manage (new Gtk::Label)),
         status_box (Gtk::manage (new Gtk::HBox)),
         non_asm_ctxt (-1, -1)
     {
-        Glib::RefPtr<SourceBuffer> b;
+        Glib::RefPtr<Buffer> b;
         b = (a_buf) ? a_buf : source_view->get_source_buffer ();
         if (a_assembly) {
             asm_ctxt.buffer = b;
@@ -710,13 +706,13 @@ struct SourceEditor::Priv {
     }
 
     explicit Priv (const UString &a_root_dir,
-                   Glib::RefPtr<SourceBuffer> &a_buf) :
+                   Glib::RefPtr<Buffer> &a_buf) :
         root_dir (a_root_dir),
-        source_view (Gtk::manage (new SourceView (a_buf))),
+        source_view (Gtk::manage (new View (a_buf))),
         status_box (Gtk::manage (new Gtk::HBox)),
         non_asm_ctxt (-1, -1)
     {
-        Glib::RefPtr<SourceBuffer> b;
+        Glib::RefPtr<Buffer> b;
         b = (a_buf) ? a_buf : source_view->get_source_buffer ();
         non_asm_ctxt.buffer = b;
         init ();
@@ -741,10 +737,10 @@ SourceEditor::init ()
     if (!m_priv->get_absolute_resource_path ("icons/line-pointer.png", path)) {
         THROW ("could not get path to line-pointer.png");
     }
-    Glib::RefPtr<Gdk::Pixbuf> lp_pixbuf = Gdk::Pixbuf::create_from_file (path);
-    source_view ().set_mark_category_pixbuf (WHERE_CATEGORY, lp_pixbuf);
+    Glib::RefPtr<Gsv::MarkAttributes> attributes = Gsv::MarkAttributes::create ();
+    attributes->set_icon (Gio::Icon::create (path));
     // show this on top
-    source_view ().set_mark_category_priority (WHERE_CATEGORY, 100);
+    source_view ().set_mark_attributes (WHERE_CATEGORY, attributes, 100);
     source_view ().set_show_line_marks (true);
 }
 
@@ -755,7 +751,7 @@ SourceEditor::SourceEditor ()
 }
 
 SourceEditor::SourceEditor (const UString &a_root_dir,
-                            Glib::RefPtr<SourceBuffer> &a_buf,
+                            Glib::RefPtr<Buffer> &a_buf,
                             bool a_assembly)
 {
     m_priv.reset (new Priv (a_root_dir, a_buf, a_assembly));
@@ -767,7 +763,7 @@ SourceEditor::~SourceEditor ()
     LOG_D ("deleted", "destructor-domain");
 }
 
-gtksourceview::SourceView&
+Gsv::View&
 SourceEditor::source_view () const
 {
     THROW_IF_FAIL (m_priv && m_priv->source_view);
@@ -913,13 +909,13 @@ SourceEditor::set_visual_breakpoint_at_line (int a_line,
     }
 
     std::map<int,
-            Glib::RefPtr<gtksourceview::SourceMark> > *markers;
+            Glib::RefPtr<Gsv::Mark> > *markers;
     if ((markers = m_priv->get_markers ()) == 0)
         return false;
 
 
-    Glib::RefPtr<SourceBuffer> buf = source_view ().get_source_buffer ();
-    std::map<int, Glib::RefPtr<gtksourceview::SourceMark> >::iterator mark_iter;
+    Glib::RefPtr<Buffer> buf = source_view ().get_source_buffer ();
+    std::map<int, Glib::RefPtr<Gsv::Mark> >::iterator mark_iter;
     mark_iter = markers->find (a_line);
     if (mark_iter !=  markers->end ()) {
         if (!mark_iter->second->get_deleted ()) {
@@ -939,7 +935,7 @@ SourceEditor::set_visual_breakpoint_at_line (int a_line,
     UString marker_name = UString::from_int (a_line);
 
     LOG_DD ("creating marker of type: " << marker_type);
-    Glib::RefPtr<gtksourceview::SourceMark> marker;
+    Glib::RefPtr<Gsv::Mark> marker;
     marker = buf->create_source_mark (marker_name, marker_type, iter);
     (*markers)[a_line] = marker;
     return true;
@@ -954,13 +950,13 @@ SourceEditor::set_visual_breakpoint_at_line (int a_line,
 bool
 SourceEditor::remove_visual_breakpoint_from_line (int a_line)
 {
-    std::map<int, Glib::RefPtr<gtksourceview::SourceMark> > *markers;
+    std::map<int, Glib::RefPtr<Gsv::Mark> > *markers;
 
     if ((markers = m_priv->get_markers ()) == 0 || a_line < 1)
         return false;
 
     --a_line;
-    std::map<int, Glib::RefPtr<gtksourceview::SourceMark> >::iterator iter;
+    std::map<int, Glib::RefPtr<Gsv::Mark> >::iterator iter;
     iter = markers->find (a_line);
     if (iter == markers->end ()) {
         return false;
@@ -976,10 +972,10 @@ SourceEditor::remove_visual_breakpoint_from_line (int a_line)
 void
 SourceEditor::clear_decorations ()
 {
-    std::map<int, Glib::RefPtr<gtksourceview::SourceMark> > *markers;
+    std::map<int, Glib::RefPtr<Gsv::Mark> > *markers;
     if ((markers = m_priv->get_markers ()) == 0)
         return;
-    typedef std::map<int, Glib::RefPtr<gtksourceview::SourceMark> >::iterator
+    typedef std::map<int, Glib::RefPtr<Gsv::Mark> >::iterator
       SourceMarkMapIter;
 
     SourceMarkMapIter it;
@@ -1012,8 +1008,8 @@ SourceEditor::clear_decorations ()
 bool
 SourceEditor::is_visual_breakpoint_set_at_line (int a_line) const
 {
-    std::map<int, Glib::RefPtr<gtksourceview::SourceMark> > *markers;
-    std::map<int, Glib::RefPtr<gtksourceview::SourceMark> >::iterator iter;
+    std::map<int, Glib::RefPtr<Gsv::Mark> > *markers;
+    std::map<int, Glib::RefPtr<Gsv::Mark> >::iterator iter;
     if ((markers = m_priv->get_markers ()) == 0)
         return false;
     iter = markers->find (a_line);
@@ -1025,14 +1021,14 @@ SourceEditor::is_visual_breakpoint_set_at_line (int a_line) const
 
 struct ScrollToLine {
     int m_line;
-    SourceView *m_source_view;
+    View *m_source_view;
 
     ScrollToLine () :
         m_line (0),
         m_source_view (0)
     {}
 
-    ScrollToLine (SourceView *a_source_view, int a_line) :
+    ScrollToLine (View *a_source_view, int a_line) :
         m_line (a_line),
         m_source_view (a_source_view)
     {
@@ -1179,7 +1175,7 @@ SourceEditor::do_search (const UString &a_str,
                          bool a_search_backwards,
                          bool a_clear_selection)
 {
-    Glib::RefPtr<SourceBuffer> source_buffer = source_view ().get_source_buffer ();
+    Glib::RefPtr<Buffer> source_buffer = source_view ().get_source_buffer ();
     THROW_IF_FAIL (source_buffer);
 
     if (a_clear_selection) {
@@ -1187,7 +1183,7 @@ SourceEditor::do_search (const UString &a_str,
                                      source_buffer->end ());
     }
 
-    SourceIter search_iter, limit;
+    Gtk::TextIter search_iter, limit;
     if (source_view ().get_source_buffer ())
         search_iter =
             source_view ().get_source_buffer ()->get_insert ()->get_iter ();
@@ -1216,10 +1212,9 @@ SourceEditor::do_search (const UString &a_str,
     //*********************
     //build search flags
     //**********************
-    namespace gsv=gtksourceview;
-    gsv::SearchFlags search_flags = gsv::SEARCH_TEXT_ONLY;
+    Gtk::TextSearchFlags search_flags = Gtk::TEXT_SEARCH_TEXT_ONLY;
     if (!a_match_case) {
-        search_flags |= gsv::SEARCH_CASE_INSENSITIVE;
+        search_flags |= Gtk::TEXT_SEARCH_CASE_INSENSITIVE;
     }
 
     bool found=false;
@@ -1292,22 +1287,22 @@ SourceEditor::get_file_mime_type (const UString &a_path,
 /// mime type a_mime_type. If a_buf is null, a new one is created.
 /// Returns true upon successful completion, false otherwise.
 bool
-SourceEditor::setup_buffer_mime_and_lang (Glib::RefPtr<SourceBuffer> &a_buf,
+SourceEditor::setup_buffer_mime_and_lang (Glib::RefPtr<Buffer> &a_buf,
 					  const std::string &a_mime_type)
 {
     NEMIVER_TRY
 
-    Glib::RefPtr<SourceLanguageManager> lang_manager =
-        SourceLanguageManager::get_default ();
-    Glib::RefPtr<SourceLanguage> lang;
-    std::list<Glib::ustring> lang_ids = lang_manager->get_language_ids ();
-    for (std::list<Glib::ustring>::const_iterator it = lang_ids.begin ();
+    Glib::RefPtr<LanguageManager> lang_manager =
+        LanguageManager::get_default ();
+    Glib::RefPtr<Language> lang;
+    std::vector<std::string> lang_ids = lang_manager->get_language_ids ();
+    for (std::vector<std::string>::const_iterator it = lang_ids.begin ();
          it != lang_ids.end ();
          ++it) {
-        Glib::RefPtr<gtksourceview::SourceLanguage> candidate = 
+        Glib::RefPtr<Gsv::Language> candidate =
             lang_manager->get_language (*it);
-        std::list<Glib::ustring> mime_types = candidate->get_mime_types ();
-        std::list<Glib::ustring>::const_iterator mime_it;
+        std::vector<Glib::ustring> mime_types = candidate->get_mime_types ();
+        std::vector<Glib::ustring>::const_iterator mime_it;
         for (mime_it = mime_types.begin ();
              mime_it != mime_types.end ();
              ++mime_it) {
@@ -1323,7 +1318,7 @@ SourceEditor::setup_buffer_mime_and_lang (Glib::RefPtr<SourceBuffer> &a_buf,
     }
 
     if (!a_buf)
-        a_buf = SourceBuffer::create (lang);
+        a_buf = Buffer::create (lang);
     else {
         a_buf->set_language (lang);
         a_buf->erase (a_buf->begin (), a_buf->end ());
@@ -1337,10 +1332,10 @@ SourceEditor::setup_buffer_mime_and_lang (Glib::RefPtr<SourceBuffer> &a_buf,
 /// Create a source buffer properly set up to contain/highlight c++
 /// code.
 /// \return the created buffer or nil if something bad happened.
-Glib::RefPtr<SourceBuffer>
+Glib::RefPtr<Buffer>
 SourceEditor::create_source_buffer ()
 {
-    Glib::RefPtr<SourceBuffer> result;
+    Glib::RefPtr<Buffer> result;
     setup_buffer_mime_and_lang (result);
     return result;
 }
@@ -1349,7 +1344,7 @@ bool
 SourceEditor::load_file (const UString &a_path,
                          const std::list<std::string> &a_supported_encodings,
                          bool a_enable_syntax_highlight,
-                         Glib::RefPtr<SourceBuffer> &a_source_buffer)
+                         Glib::RefPtr<Buffer> &a_source_buffer)
 {
     NEMIVER_TRY;
 
@@ -1424,7 +1419,7 @@ SourceEditor::add_asm (const common::DisassembleInfo &/*a_info*/,
 		       const list<UString> &a_src_search_dirs,
                        list<UString> &a_session_dirs,
                        std::map<UString, bool> &a_ignore_paths,
-                       Glib::RefPtr<SourceBuffer> &a_buf)
+                       Glib::RefPtr<Buffer> &a_buf)
 {
     LOG_FUNCTION_SCOPE_NORMAL_DD;
 
@@ -1485,7 +1480,7 @@ SourceEditor::load_asm (const common::DisassembleInfo &a_info,
 			const list<UString> &a_src_search_dirs,
                         list<UString> &a_session_dirs,
                         std::map<UString, bool> &a_ignore_paths,
-                        Glib::RefPtr<SourceBuffer> &a_buf)
+                        Glib::RefPtr<Buffer> &a_buf)
 {
     LOG_FUNCTION_SCOPE_NORMAL_DD;
 
@@ -1509,7 +1504,7 @@ SourceEditor::load_asm (const common::DisassembleInfo &a_info,
 /// \param a_buf the assembly source buffer
 void
 SourceEditor::register_assembly_source_buffer
-                    (Glib::RefPtr<SourceBuffer> &a_buf)
+                    (Glib::RefPtr<Buffer> &a_buf)
 {
     m_priv->register_assembly_source_buffer (a_buf);
 }
@@ -1534,7 +1529,7 @@ SourceEditor::current_address (Address &a_address) const
 /// \param a_buf the source buffer to register.
 void
 SourceEditor::register_non_assembly_source_buffer
-                                    (Glib::RefPtr<SourceBuffer> &a_buf)
+                                    (Glib::RefPtr<Buffer> &a_buf)
 {
     m_priv->register_non_assembly_source_buffer (a_buf);
 }
@@ -1542,7 +1537,7 @@ SourceEditor::register_non_assembly_source_buffer
 /// Get the assembly source buffer that was registered, or a NULL
 /// pointer if no one was registered before.
 /// \return a smart pointer to the source buffer.
-Glib::RefPtr<SourceBuffer>
+Glib::RefPtr<Buffer>
 SourceEditor::get_assembly_source_buffer () const
 {
     return m_priv->asm_ctxt.buffer;
@@ -1592,7 +1587,7 @@ SourceEditor::scroll_to_address (const Address &a_address,
 /// Get the non-assembly source buffer that was registered, or a NULL
 /// pointer if no one was registered before.
 /// \return a smart pointer to the source buffer.
-Glib::RefPtr<SourceBuffer>
+Glib::RefPtr<Buffer>
 SourceEditor::get_non_assembly_source_buffer () const
 {
     return m_priv->non_asm_ctxt.buffer;
@@ -1637,14 +1632,14 @@ SourceEditor::assembly_buf_addr_to_line (const Address &a_addr,
                                          bool a_approximate,
                                          int &a_line) const
 {
-    Glib::RefPtr<SourceBuffer> buf = get_assembly_source_buffer ();
+    Glib::RefPtr<Buffer> buf = get_assembly_source_buffer ();
     return m_priv->address_2_line (buf, a_addr, a_approximate, a_line);
 }
 
 bool
 SourceEditor::assembly_buf_line_to_addr (int a_line, Address &a_address) const
 {
-    Glib::RefPtr<SourceBuffer> buf = get_assembly_source_buffer ();
+    Glib::RefPtr<Buffer> buf = get_assembly_source_buffer ();
     return m_priv->line_2_address (buf, a_line, a_address);
 }
 
diff --git a/src/uicommon/nmv-source-editor.h b/src/uicommon/nmv-source-editor.h
index 13132e6..320f36e 100644
--- a/src/uicommon/nmv-source-editor.h
+++ b/src/uicommon/nmv-source-editor.h
@@ -29,7 +29,7 @@
 #include <functional>
 #include <map>
 #include <gtkmm/box.h>
-#include <gtksourceviewmm/sourceview.h>
+#include <gtksourceviewmm/view.h>
 #include "common/nmv-safe-ptr-utils.h"
 #include "common/nmv-ustring.h"
 #include "common/nmv-address.h"
@@ -37,8 +37,8 @@
 #include "common/nmv-asm-instr.h"
 #include "common/nmv-loc.h"
 
-using gtksourceview::SourceView;
-using gtksourceview::SourceBuffer;
+using Gsv::View;
+using Gsv::Buffer;
 using Gtk::VBox;
 using nemiver::common::SafePtr;
 using nemiver::common::UString;
@@ -77,10 +77,10 @@ public:
 
 
     explicit SourceEditor (const UString &a_root_dir,
-                           Glib::RefPtr<SourceBuffer> &a_buf,
+                           Glib::RefPtr<Buffer> &a_buf,
                            bool a_composite = false);
     virtual ~SourceEditor ();
-    SourceView& source_view () const;
+    View& source_view () const;
     int current_line () const;
     void current_line (int a_line);
     int current_column () const;
@@ -117,16 +117,16 @@ public:
     static bool get_file_mime_type (const UString &a_path,
 				    UString &a_mime_type);
 
-    static bool setup_buffer_mime_and_lang (Glib::RefPtr<SourceBuffer> &a_buf,
+    static bool setup_buffer_mime_and_lang (Glib::RefPtr<Buffer> &a_buf,
 					    const std::string &a_mime_type =
 					    "text/x-c++");
 
-    static Glib::RefPtr<SourceBuffer> create_source_buffer ();
+    static Glib::RefPtr<Buffer> create_source_buffer ();
 
     static bool load_file (const UString &a_path,
 			   const std::list<std::string> &a_supported_encodings,
 			   bool a_enable_syntaxt_highlight,
-			   Glib::RefPtr<SourceBuffer> &a_source_buffer);
+			   Glib::RefPtr<Buffer> &a_source_buffer);
 
     /// \name Assembly source buffer handling.
     /// @{
@@ -140,7 +140,7 @@ public:
     /// In an assembly view, a meaningful location is the address
     /// of a machine instruction. So there somehow must be a kind of mapping
     /// between the location used for the assembly buffer and the actual
-    /// line number, because the underlying SourceBuffer implementation
+    /// line number, because the underlying Buffer implementation
     /// relies on line numbers anyhow.
 
     BufferType get_buffer_type () const;
@@ -148,14 +148,14 @@ public:
     bool current_address (Address&) const;
 
     void register_assembly_source_buffer
-                        (Glib::RefPtr<SourceBuffer> &a_buf);
+                        (Glib::RefPtr<Buffer> &a_buf);
 
     void register_non_assembly_source_buffer
-                                    (Glib::RefPtr<SourceBuffer> &a_buf);
+                                    (Glib::RefPtr<Buffer> &a_buf);
 
-    Glib::RefPtr<SourceBuffer> get_assembly_source_buffer () const;
+    Glib::RefPtr<Buffer> get_assembly_source_buffer () const;
 
-    Glib::RefPtr<SourceBuffer> get_non_assembly_source_buffer () const;
+    Glib::RefPtr<Buffer> get_non_assembly_source_buffer () const;
 
     bool switch_to_assembly_source_buffer ();
 
@@ -182,7 +182,7 @@ public:
 			 const list<UString> &a_src_search_dirs,
 			 list<UString> &a_session_dirs,
 			 std::map<UString, bool> &a_ignore_paths,
-			 Glib::RefPtr<SourceBuffer> &a_buf);
+			 Glib::RefPtr<Buffer> &a_buf);
 
     static bool load_asm (const common::DisassembleInfo &/*a_info*/,
 			  const std::list<common::Asm> &a_asm,
@@ -190,7 +190,7 @@ public:
 			  const list<UString> &a_src_search_dirs,
 			  list<UString> &a_session_dirs,
 			  std::map<UString, bool> &a_ignore_paths,
-			  Glib::RefPtr<SourceBuffer> &a_buf);
+			  Glib::RefPtr<Buffer> &a_buf);
 
 
     /// @}
diff --git a/src/uicommon/nmv-terminal.cc b/src/uicommon/nmv-terminal.cc
index e704ee3..935c2de 100644
--- a/src/uicommon/nmv-terminal.cc
+++ b/src/uicommon/nmv-terminal.cc
@@ -56,7 +56,7 @@ struct Terminal::Priv {
     //the same object as
     //m_vte, but wrapped as a Gtk::Widget
     Gtk::Widget *widget;
-    Gtk::Adjustment *adjustment;
+    Glib::RefPtr<Gtk::Adjustment> adjustment;
 
     Priv () :
         master_pty (0),
@@ -79,12 +79,12 @@ struct Terminal::Priv {
         widget = Glib::wrap (w);
         THROW_IF_FAIL (widget);
         widget->set_manage ();
+        widget->reference ();
 
         adjustment = Glib::wrap (vte_terminal_get_adjustment (vte));
         THROW_IF_FAIL (adjustment);
-        adjustment->set_manage ();
+        adjustment->reference ();
 
-        widget->reference ();
         THROW_IF_FAIL (init_pty ());
     }
 
@@ -149,12 +149,12 @@ Terminal::widget () const
     return *m_priv->widget;
 }
 
-Gtk::Adjustment&
+Glib::RefPtr<Gtk::Adjustment>
 Terminal::adjustment () const
 {
     THROW_IF_FAIL (m_priv);
     THROW_IF_FAIL (m_priv->adjustment);
-    return *m_priv->adjustment;
+    return m_priv->adjustment;
 }
 
 UString
diff --git a/src/uicommon/nmv-terminal.h b/src/uicommon/nmv-terminal.h
index 137c19a..5521443 100644
--- a/src/uicommon/nmv-terminal.h
+++ b/src/uicommon/nmv-terminal.h
@@ -59,7 +59,7 @@ public:
     Terminal ();
     ~Terminal ();
     Gtk::Widget& widget () const;
-    Gtk::Adjustment& adjustment () const;
+    Glib::RefPtr<Gtk::Adjustment> adjustment () const;
     UString slave_pts_name () const;
     void modify_font (const Pango::FontDescription &font_desc);
     void feed (const UString &a_text);
diff --git a/src/workbench/nmv-workbench.cc b/src/workbench/nmv-workbench.cc
index 94c9db7..0715ed8 100644
--- a/src/workbench/nmv-workbench.cc
+++ b/src/workbench/nmv-workbench.cc
@@ -260,12 +260,12 @@ Workbench::on_about_menu_item_action ()
     dialog.set_version (PACKAGE_VERSION);
     dialog.set_comments(_("A C/C++ debugger for GNOME"));
 
-    list<Glib::ustring> authors;
+    vector<Glib::ustring> authors;
     authors.push_back ("Dodji Seketeli <dodji gnome org>");
     authors.push_back ("Jonathon Jongsma <jjongsma gnome org>");
     dialog.set_authors (authors);
 
-    list<Glib::ustring> documenters;
+    vector<Glib::ustring> documenters;
     documenters.push_back ("Jonathon Jongsma <jjongsma gnome org>");
     dialog.set_documenters (documenters);
 
@@ -375,7 +375,7 @@ Workbench::do_init (Gtk::Main &a_main)
         Glib::RefPtr<Gdk::Pixbuf> icon48 = theme->load_icon("nemiver", 48,
                 Gtk::ICON_LOOKUP_USE_BUILTIN);
 
-        std::list<Glib::RefPtr<Gdk::Pixbuf> > icon_list;
+        std::vector<Glib::RefPtr<Gdk::Pixbuf> > icon_list;
         icon_list.push_back(icon16);
         icon_list.push_back(icon32);
         icon_list.push_back(icon48);
-- 
1.7.5.1



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