nemiver r680 - in trunk: . src/persp/dbgperspective src/uicommon



Author: jjongsma
Date: Sun Jan 13 21:13:29 2008
New Revision: 680
URL: http://svn.gnome.org/viewvc/nemiver?rev=680&view=rev

Log:
	* configure.ac: add --enable-sourceviewmm2
	* src/persp/dbgperspective/nmv-dbg-perspective.cc:
	* src/uicommon/nmv-source-editor.cc: update these to gtksourceviewmm-2.0
	API, with #ifdefs to allow using gtksourceviewmm-1.0 as well


Modified:
   trunk/ChangeLog
   trunk/config.h.in
   trunk/configure.ac
   trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc
   trunk/src/uicommon/nmv-source-editor.cc

Modified: trunk/config.h.in
==============================================================================
--- trunk/config.h.in	(original)
+++ trunk/config.h.in	Sun Jan 13 21:13:29 2008
@@ -93,9 +93,12 @@
 /* Version number of package */
 #undef VERSION
 
-/* compile the workbench */
+/* compile the the memory view widget */
 #undef WITH_MEMORYVIEW
 
+/* build with gtksourceviewmm 2.x instead of 1.x */
+#undef WITH_SOURCEVIEWMM2
+
 /* enable variables walker interface */
 #undef WITH_VARIABLE_WALKER
 

Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac	(original)
+++ trunk/configure.ac	Sun Jan 13 21:13:29 2008
@@ -36,7 +36,9 @@
 AC_SUBST([LIBXML2_VERSION])
 LIBGTKMM_VERSION=2.6.0
 LIBGLADEMM_VERSION=2.6.0
-LIBGTKSOURCEVIEWMM_VERSION=1.9.4
+dnl default to using gtksourceview-1.0
+LIBGTKSOURCEVIEWMM_PKG=libgtksourceviewmm-1.0
+LIBGTKSOURCEVIEWMM_VERSION=0.3.0
 SQLITE3_VERSION=3.0
 LIBGTOP_VERSION=2.14
 LIBVTE_VERSION=0.12.0
@@ -68,6 +70,7 @@
 ENABLE_DBGENGINE=yes
 ENABLE_WORKBENCH=yes
 ENABLE_MEMORYVIEW=yes
+ENABLE_SOURCEVIEWMM2=no
 
 dnl *************************************
 dnl Internationalization support
@@ -141,13 +144,30 @@
               ENABLE_MEMORYVIEW=$enableval,
               ENABLE_MEMORYVIEW=yes)
 if test x$ENABLE_MEMORYVIEW = xyes ; then
-    AC_DEFINE([WITH_MEMORYVIEW], 1, [compile the workbench])
+    AC_DEFINE([WITH_MEMORYVIEW], 1, [compile the the memory view widget])
 else
     ENABLE_MEMORYVIEW=no
 fi
 AM_CONDITIONAL(BUILD_MEMORYVIEW, test x$ENABLE_MEMORYVIEW = xyes)
 
 
+AC_ARG_ENABLE(sourceviewmm2,
+              AC_HELP_STRING([--enable-sourceviewmm2=yes|no],
+                            [enable the memory view hex editor (default is no)]),
+              ENABLE_SOURCEVIEWMM2=$enableval,
+              ENABLE_SOURCEVIEWMM2=yes)
+if test x$ENABLE_SOURCEVIEWMM2 = xyes ; then
+    AC_DEFINE([WITH_SOURCEVIEWMM2], 1, [build with gtksourceviewmm 2.x instead of 1.x])
+    LIBGTKSOURCEVIEWMM_VERSION=1.9.4
+    LIBGTKSOURCEVIEWMM_PKG=gtksourceviewmm-2.0
+else
+    ENABLE_SOURCEVIEWMM2=no
+    LIBGTKSOURCEVIEWMM_VERSION=0.3.0
+    LIBGTKSOURCEVIEWMM_PKG=libgtksourceviewmm-1.0
+fi
+AM_CONDITIONAL(BUILD_MEMORYVIEW, test x$ENABLE_MEMORYVIEW = xyes)
+
+
 ENABLE_DEBUG=yes
 AC_ARG_ENABLE(debug,
               AC_HELP_STRING([--enable-debug=yes|no],
@@ -220,7 +240,7 @@
 if test x$ENABLE_WORKBENCH = xyes ; then
     PKG_CHECK_MODULES(LIBGTKMM, [gtkmm-2.4 >= $LIBGTKMM_VERSION])
     PKG_CHECK_MODULES(LIBGLADEMM, [libglademm-2.4 >= $LIBGLADEMM_VERSION])
-    PKG_CHECK_MODULES(LIBGTKSOURCEVIEWMM, [gtksourceviewmm-2.0 >= $LIBGTKSOURCEVIEWMM_VERSION])
+    PKG_CHECK_MODULES(LIBGTKSOURCEVIEWMM, [$LIBGTKSOURCEVIEWMM_PKG >= $LIBGTKSOURCEVIEWMM_VERSION])
 fi
 
 if test x$ENABLE_MEMORYVIEW = xyes ; then

Modified: trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc
==============================================================================
--- trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc	(original)
+++ trunk/src/persp/dbgperspective/nmv-dbg-perspective.cc	Sun Jan 13 21:13:29 2008
@@ -24,6 +24,7 @@
  *See COPYRIGHT file copyright information.
  */
 
+#include "config.h"
 #include <algorithm>
 #include <iostream>
 #include <fstream>
@@ -33,7 +34,11 @@
 #include <libgnomevfs/gnome-vfs-ops.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <gtksourceviewmm/init.h>
+#ifdef WITH_SOURCEVIEWMM2
 #include <gtksourceviewmm/sourcelanguagemanager.h>
+#else
+#include <gtksourceviewmm/sourcelanguagesmanager.h>
+#endif  // WITH_SOURCEVIEWMM2
 #include <pangomm/fontdescription.h>
 #include <gtkmm/clipboard.h>
 #include <gtkmm/separatortoolitem.h>
@@ -1643,7 +1648,11 @@
              it != m_priv->pagenum_2_source_editor_map.end ();
              ++it) {
             if (it->second && it->second->source_view ().get_buffer ()) {
+#ifdef WITH_SOURCEVIEWMM2
                 it->second->source_view ().get_source_buffer ()->set_highlight_syntax
+#else
+                it->second->source_view ().get_source_buffer ()->set_highlight
+#endif  // WITH_SOURCEVIEWMM2
                                                 (boost::get<bool> (a_value)) ;
             }
         }
@@ -3771,10 +3780,37 @@
     }
     LOG_DD ("file has mime type: " << mime_type) ;
 
+#ifdef WITH_SOURCEVIEWMM2
     Glib::RefPtr<SourceLanguageManager> lang_manager =
-                                    SourceLanguageManager::create () ;
-    Glib::RefPtr<SourceLanguage> lang =
-        lang_manager->get_language (mime_type) ;
+                                    SourceLanguageManager::get_default () ;
+#else
+    Glib::RefPtr<SourceLanguagesManager> lang_manager =
+                                    SourceLanguagesManager::create () ;
+#endif  // WITH_SOURCEVIEWMM2
+    Glib::RefPtr<SourceLanguage> lang;
+#ifdef WITH_SOURCEVIEWMM2
+    std::list<Glib::ustring> lang_ids = lang_manager->get_language_ids () ;
+    for (std::list<Glib::ustring>::const_iterator it = lang_ids.begin ();
+            it != lang_ids.end (); ++it) {
+        Glib::RefPtr<gtksourceview::SourceLanguage> candidate = 
+            lang_manager->get_language (*it);
+        std::list<Glib::ustring> mime_types = candidate->get_mime_types ();
+        for (std::list<Glib::ustring>::const_iterator mime_it = mime_types.begin ();
+                mime_it != mime_types.end (); ++mime_it) {
+            if (*mime_it == mime_type)
+            {
+                // one of the mime types associated with this language matches
+                // the mime type of our file, so use this language
+                lang = candidate;
+                break;  // no need to look at further mime types
+            }
+        }
+        // we found a matching language, so stop looking for other languages
+        if (lang) break;
+    }
+#else
+    lang = lang_manager->get_language_from_mime_type (mime_type) ;
+#endif  // WITH_SOURCEVIEWMM2
 
     Glib::RefPtr<SourceBuffer> source_buffer ;
     if (a_source_buffer) {
@@ -3801,7 +3837,11 @@
     }
     file.close () ;
 
+#ifdef WITH_SOURCEVIEWMM2
     source_buffer->set_highlight_syntax (m_priv->enable_syntax_highlight) ;
+#else
+    source_buffer->set_highlight (m_priv->enable_syntax_highlight) ;
+#endif  // WITH_SOURCEVIEWMM2
 
     a_source_buffer = source_buffer ;
     NEMIVER_CATCH_AND_RETURN (false) ;
@@ -3873,10 +3913,17 @@
         Gtk::TextIter cur_line_iter =
                 source_buffer->get_iter_at_line (a_current_line) ;
         if (cur_line_iter) {
+#ifdef WITH_SOURCEVIEWMM2
             Glib::RefPtr<SourceMark> where_marker =
                 source_buffer->create_mark (WHERE_MARK,
                                             WHERE_CATEGORY,
                                             cur_line_iter) ;
+#else
+            Glib::RefPtr<SourceMarker> where_marker =
+                source_buffer->create_marker (WHERE_MARK,
+                                            WHERE_CATEGORY,
+                                            cur_line_iter) ;
+#endif // WITH_SOURCEVIEWMM2
             THROW_IF_FAIL (where_marker) ;
         }
     }

Modified: trunk/src/uicommon/nmv-source-editor.cc
==============================================================================
--- trunk/src/uicommon/nmv-source-editor.cc	(original)
+++ trunk/src/uicommon/nmv-source-editor.cc	Sun Jan 13 21:13:29 2008
@@ -22,12 +22,17 @@
  *
  *See COPYRIGHT file copyright information.
  */
+#include "config.h"
 #include <map>
 #include <glib/gi18n.h>
 #include <gtkmm/table.h>
 #include <gtkmm/label.h>
 #include <gtkmm/scrolledwindow.h>
+#ifdef WITH_SOURCEVIEWMM2
 #include <gtksourceviewmm/sourcemark.h>
+#else
+#include <gtksourceviewmm/sourcemarker.h>
+#endif // WITH_SOURCEVIEWMM2
 #include <gtksourceviewmm/sourceiter.h>
 #include "common/nmv-exception.h"
 #include "common/nmv-sequence.h"
@@ -36,7 +41,11 @@
 
 using namespace std ;
 using namespace nemiver::common;
+#ifdef WITH_SOURCEVIEWMM2
 using gtksourceview::SourceMark;
+#else
+using gtksourceview::SourceMarker;
+#endif // WITH_SOURCEVIEWMM2
 using gtksourceview::SourceIter;
 using gtksourceview::SearchFlags;
 
@@ -135,7 +144,11 @@
 
 struct SourceEditor::Priv {
     Sequence sequence ;
+#ifdef WITH_SOURCEVIEWMM2
     std::map<int, Glib::RefPtr<gtksourceview::SourceMark> > markers ;
+#else
+    std::map<int, Glib::RefPtr<gtksourceview::SourceMarker> > markers ;
+#endif  // WITH_SOURCEVIEWMM2
     UString root_dir ;
     gint current_column ;
     gint current_line ;
@@ -269,8 +282,12 @@
 
         Glib::RefPtr<Gdk::Pixbuf> bm_pixbuf =
                                 Gdk::Pixbuf::create_from_file (path) ;
+#ifdef WITH_SOURCEVIEWMM2
         source_view->set_mark_category_pixbuf (a_name, bm_pixbuf) ;
         source_view->set_mark_category_priority (a_name, 0);
+#else
+        source_view->set_marker_pixbuf (a_name, bm_pixbuf) ;
+#endif  // WITH_SOURCEVIEWMM2
     }
 
     void init ()
@@ -329,11 +346,15 @@
         THROW ("could not get path to line-pointer.png") ;
     }
     Glib::RefPtr<Gdk::Pixbuf> lp_pixbuf = Gdk::Pixbuf::create_from_file (path) ;
+#ifdef WITH_SOURCEVIEWMM2
     source_view ().set_mark_category_pixbuf (WHERE_CATEGORY, lp_pixbuf) ;
     // show this on top
     source_view ().set_mark_category_priority (WHERE_CATEGORY, 100);
-
     source_view ().set_show_line_marks (true) ;
+#else
+    source_view ().set_marker_pixbuf (WHERE_CATEGORY, lp_pixbuf) ;
+    source_view ().set_show_line_markers (true) ;
+#endif  // WITH_SOURCEVIEWMM2
 }
 
 SourceEditor::SourceEditor ()
@@ -395,18 +416,33 @@
             source_view ().get_source_buffer ()->get_iter_at_line (a_line - 1) ;
     THROW_IF_FAIL (line_iter) ;
 
+#ifdef WITH_SOURCEVIEWMM2
     Glib::RefPtr<Gtk::TextMark> where_marker =
         source_view ().get_source_buffer ()->get_mark (WHERE_MARK) ;
+#else
+    Glib::RefPtr<gtksourceview::SourceMarker> where_marker =
+        source_view ().get_source_buffer ()->get_marker (WHERE_MARK) ;
+#endif  // WITH_SOURCEVIEWMM2
     if (!where_marker) {
+#ifdef WITH_SOURCEVIEWMM2
         Glib::RefPtr<Gtk::TextMark> where_marker =
             source_view ().get_source_buffer ()->create_mark
+#else
+        Glib::RefPtr<gtksourceview::SourceMarker> where_marker =
+            source_view ().get_source_buffer ()->create_marker
+#endif  // WITH_SOURCEVIEWMM2
                                                         (WHERE_MARK,
                                                          WHERE_CATEGORY,
                                                          line_iter) ;
         THROW_IF_FAIL (where_marker) ;
     } else {
+#ifdef WITH_SOURCEVIEWMM2
         source_view ().get_source_buffer ()->move_mark (where_marker,
                                                         line_iter) ;
+#else
+        source_view ().get_source_buffer ()->move_marker (where_marker,
+                                                          line_iter) ;
+#endif  // WITH_SOURCEVIEWMM2
     }
     if (a_do_scroll) {
         scroll_to_line (a_line) ;
@@ -417,10 +453,19 @@
 void
 SourceEditor::unset_where_marker ()
 {
+#ifdef WITH_SOURCEVIEWMM2
     Glib::RefPtr<Gtk::TextMark> where_marker =
         source_view ().get_source_buffer ()->get_mark (WHERE_MARK) ;
+#else
+    Glib::RefPtr<gtksourceview::SourceMarker> where_marker =
+        source_view ().get_source_buffer ()->get_marker (WHERE_MARK) ;
+#endif  // WITH_SOURCEVIEWMM2
     if (where_marker && !where_marker->get_deleted ()) {
+#ifdef WITH_SOURCEVIEWMM2
         source_view ().get_source_buffer ()->delete_mark (where_marker) ;
+#else
+        source_view ().get_source_buffer ()->delete_marker (where_marker) ;
+#endif  // WITH_SOURCEVIEWMM2
     }
 }
 
@@ -437,12 +482,20 @@
     }
 
     std::map<int,
+#ifdef WITH_SOURCEVIEWMM2
             Glib::RefPtr<gtksourceview::SourceMark> >::iterator mark_iter =
+#else
+            Glib::RefPtr<gtksourceview::SourceMarker> >::iterator mark_iter =
+#endif  // WITH_SOURCEVIEWMM2
                                             m_priv->markers.find (a_line);
     if (mark_iter !=  m_priv->markers.end ()) {
         if (!mark_iter->second->get_deleted ()) {
             LOG_DD ("deleting marker") ;
+#ifdef WITH_SOURCEVIEWMM2
             source_view ().get_source_buffer ()->delete_mark
+#else
+            source_view ().get_source_buffer ()->delete_marker
+#endif  // WITH_SOURCEVIEWMM2
                                                     (mark_iter->second);
         }
         m_priv->markers.erase (a_line);
@@ -454,8 +507,13 @@
     UString marker_name = UString::from_int (a_line);
 
     LOG_DD ("creating marker of type: " << marker_type) ;
+#ifdef WITH_SOURCEVIEWMM2
     Glib::RefPtr<gtksourceview::SourceMark> marker =
         source_view ().get_source_buffer ()->create_mark
+#else
+    Glib::RefPtr<gtksourceview::SourceMarker> marker =
+        source_view ().get_source_buffer ()->create_marker
+#endif  // WITH_SOURCEVIEWMM2
                                         (marker_name, marker_type, iter) ;
     m_priv->markers[a_line] = marker ;
 }
@@ -463,20 +521,32 @@
 void
 SourceEditor::remove_visual_breakpoint_from_line (int a_line)
 {
+#ifdef WITH_SOURCEVIEWMM2
     std::map<int, Glib::RefPtr<gtksourceview::SourceMark> >::iterator iter ;
+#else
+    std::map<int, Glib::RefPtr<gtksourceview::SourceMarker> >::iterator iter ;
+#endif  // WITH_SOURCEVIEWMM2
     iter = m_priv->markers.find (a_line) ;
     if (iter == m_priv->markers.end ()) {
         return ;
     }
     if (!iter->second->get_deleted ())
+#ifdef WITH_SOURCEVIEWMM2
         source_view ().get_source_buffer ()->delete_mark (iter->second) ;
+#else
+        source_view ().get_source_buffer ()->delete_marker (iter->second) ;
+#endif  // WITH_SOURCEVIEWMM2
     m_priv->markers.erase (iter) ;
 }
 
 bool
 SourceEditor::is_visual_breakpoint_set_at_line (int a_line) const
 {
+#ifdef WITH_SOURCEVIEWMM2
     std::map<int, Glib::RefPtr<gtksourceview::SourceMark> >::iterator iter ;
+#else
+    std::map<int, Glib::RefPtr<gtksourceview::SourceMarker> >::iterator iter ;
+#endif  // WITH_SOURCEVIEWMM2
     iter = m_priv->markers.find (a_line) ;
     if (iter == m_priv->markers.end ()) {
         return false ;



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