]> git.pld-linux.org Git - packages/anjuta.git/commitdiff
- support for devhelp 0.22 from trunk version of anjuta
authorhawk <hawk@pld-linux.org>
Sun, 7 Dec 2008 23:43:08 +0000 (23:43 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    anjuta-devhelp.patch -> 1.1

anjuta-devhelp.patch [new file with mode: 0644]

diff --git a/anjuta-devhelp.patch b/anjuta-devhelp.patch
new file mode 100644 (file)
index 0000000..2174ca1
--- /dev/null
@@ -0,0 +1,1006 @@
+diff -urN anjuta-2.24.2/configure.in trunk/configure.in
+--- anjuta-2.24.2/configure.in 2008-11-24 15:10:28.000000000 +0100
++++ trunk/configure.in 2008-12-07 23:31:30.579285390 +0100
+@@ -22,7 +22,7 @@
+ VTE_NEW_REQUIRED=0.13.1
+ LIBXML_REQUIRED=2.4.23
+ PANGO_REQUIRED=1.1.1
+-LIBDEVHELP_REQUIRED=0.13
++LIBDEVHELP_REQUIRED=0.22
+ GDL_REQUIRED=0.7.3
+ GNOMEBUILD_REQUIRED=0.3.0
+ GLADEUI_REQUIRED=3.2.0
+@@ -235,33 +195,15 @@
+       devhelp_enabled="no"
+ else
+       AC_MSG_RESULT(no)
+-      devhelp_old=yes
+       PKG_CHECK_MODULES(PLUGIN_DEVHELP, 
+-                              [libdevhelp-1.0 >= $LIBDEVHELP_REQUIRED],
+-                                       [
+-                                          devhelp_old=no
+-                                              devhelp_enabled=yes
+-                                       ], [
+-                                                 AC_MSG_RESULT([version >= 0.11 not found])
+-                                                 devhelp_old=yes
+-                                                 devhelp_enabled=no
+-                                       ])
+-      if test x$devhelp_old = xyes; then
+-        PKG_CHECK_MODULES(PLUGIN_DEVHELP, [libdevhelp-1.0 >= 0.9], [devhelp_enabled=yes], [devhelp_enabled=no])
+-              if test x$devhelp_enabled = xyes; then
+-            AC_DEFINE(HAVE_OLD_DEVHELP, 1, [If old devhelp (>= 0.9 < 0.11) is installed])
+-              fi
+-      fi
++                              [libdevhelp-1.0 >= $LIBDEVHELP_REQUIRED webkit-1.0],
++                              [
++                                  devhelp_enabled=yes
++                              ], [
++                                  devhelp_enabled=no
++                              ])
+ fi
+-if test x$devhelp_enabled = xyes; then
+-      GECKO_HOME=`$PKGCONFIG_CONFIG --variable=gecko_home libdevhelp-1.0`
+-      if test x$GECKO_HOME != x; then
+-              ANJUTA_LDFLAGS="$ANJUTA_LDFLAGS -R$GECKO_HOME"
+-      fi
+-fi
+-AC_SUBST(ANJUTA_LDFLAGS)
+-
+ AM_CONDITIONAL(HAVE_PLUGIN_DEVHELP, [test x$devhelp_enabled = xyes])
+ dnl Check for Gnome Build
+@@ -1133,7 +1075,7 @@
+        echo "Building devhelp plugin: ...............................YES"
+ else
+        echo "Building devhelp plugin: ...............................NO"
+-       echo "        Requires devhelp"
++       echo "        Requires devhelp >= 0.22"
+ fi
+ if [ test x$libgraphviz_found = xyes ]; then
+diff -urN anjuta-2.24.2/plugins/devhelp/anjuta-devhelp.plugin trunk/plugins/devhelp/anjuta-devhelp.plugin
+--- anjuta-2.24.2/plugins/devhelp/anjuta-devhelp.plugin        2008-11-24 14:49:19.000000000 +0100
++++ trunk/plugins/devhelp/anjuta-devhelp.plugin        1970-01-01 01:00:00.000000000 +0100
+@@ -1,77 +0,0 @@
+-[Anjuta Plugin]
+-Name=API Help
+-Name[ar]=مساعدة واجهة برمجة التطبيقات
+-Name[be@latin]=Daviednik API
+-Name[ca]=Ajuda de l'API
+-Name[cs]=Nápověda k API
+-Name[da]=API-hjælp
+-Name[de]=API-Hilfe
+-Name[dz]=ཨེ་པི་ཨའི་གྲོགས་རམ།
+-Name[el]=Βοήθεια API
+-Name[en_GB]=API Help
+-Name[es]=Ayuda
+-Name[fi]=API-ohje
+-Name[fr]=Aide API
+-Name[gl]=Axuda de API
+-Name[hi]=API मद
+-Name[hu]=API súgó
+-Name[it]=Aiuto API
+-Name[ja]=APIヘルプ
+-Name[kn]=API ಸಹಾಯ
+-Name[ko]=API 도움말
+-Name[mk]=API помош
+-Name[ml]=എപിഐ സഹായം
+-Name[mr]=API मदत
+-Name[nb]=API-hjelp
+-Name[ne]=API मद्दत
+-Name[nl]=API-hulp
+-Name[pl]=Pomoc API
+-Name[pt]=Ajuda de API
+-Name[pt_BR]=Ajuda da API
+-Name[ru]=Справка по API
+-Name[sl]=API Pomoč
+-Name[sv]=API-hjälp
+-Name[th]=วิธีใช้ API
+-Name[tr]=API Yardımı
+-Name[vi]=Trợ giúp API
+-Name[zh_HK]=API求助
+-Name[zh_TW]=API求助
+-Description=Devhelp Plugin for Anjuta.
+-Description[ar]=ملحق Devhelp لأنجوتا.
+-Description[be@latin]=Plugin Devhelp dla Anjuty.
+-Description[ca]=Connector del DevHelp per a l'Anjuta.
+-Description[cs]=Zásuvný modul Devhelp pro Anjutu.
+-Description[da]=Devhelp-modul til Anjuta.
+-Description[de]=Devhelp-Komponente für Anjuta
+-Description[dz]=ཨན་ཇུ་ཊ་གི་དོན་ལུ་ཌེབ་གྲོགས་རམ་པ་ལག་ཨིན།
+-Description[el]=Πρόσθετη λειτουργία του devhelp για το Anjuta.
+-Description[en_GB]=Devhelp Plugin for Anjuta.
+-Description[es]=Complemento Devhelp para Anjuta.
+-Description[fi]=Anjutan devhelp-liitännäinen.
+-Description[fr]=Greffon Devhelp pour Anjuta
+-Description[gl]=Complemento Devhelp para Anjuta.
+-Description[he]=תוסף Devhelp ל-Anjuta
+-Description[hi]=अंजुटा के लिए डेव वहेल्प प्लगिन
+-Description[hu]=Devhelp bővítmény az Anjuta-hoz
+-Description[it]=Plugin Devhelp per Anjuta.
+-Description[ja]=Devhelp を利用するためのプラグインです
+-Description[kn]=Anjuta ಗಾಗಿನ ಪ್ಲಗ್ಇನ್ Devhelp.
+-Description[ko]=Anjuta 개발자 도움말(Devhelp) 플러그인.
+-Description[mk]=Devhelp приклучок за Anjuta.
+-Description[ml]=അഞ്ചുതയ്ക്കുള്ള Devhelp പ്ലഗ്ഗിന്‍
+-Description[mr]=Anjuta करीता डेव्हमदत प्लगइन.
+-Description[ne]=अन्जुताका लागि Devhelp प्लगइन ।
+-Description[pl]=Wtyczka Devhelp dla Anjuty.
+-Description[pt]=Plugin Devhelp para o Anjuta.
+-Description[pt_BR]=Plug-in Devhelp para Anjuta.
+-Description[ru]=Справка разработчика для Anjuta.
+-Description[sl]=Vstavek Anjute za Devhelp
+-Description[sv]=Devhelp-instick för Anjuta.
+-Description[th]=ปลั๊กอิน Devhelp สำหรับแอนจูตา
+-Description[tr]=Anjuta için Devhelp Eklentisi.
+-Description[vi]=Phần bổ sung Trợ giúp Phát triển cho Anjuta
+-Description[zh_HK]=給 Anjuta 的 Devhelp 外掛程式。
+-Description[zh_TW]=給 Anjuta 的 Devhelp 外掛程式。
+-Location=anjuta-devhelp:AnjutaDevhelp
+-Icon=anjuta-devhelp-plugin-48.png
+-Interfaces=IAnjutaHelp
+diff -urN anjuta-2.24.2/plugins/devhelp/anjuta-devhelp.ui trunk/plugins/devhelp/anjuta-devhelp.ui
+--- anjuta-2.24.2/plugins/devhelp/anjuta-devhelp.ui    2008-10-19 17:35:29.000000000 +0200
++++ trunk/plugins/devhelp/anjuta-devhelp.ui    2008-12-07 23:31:25.922619748 +0100
+@@ -1,14 +1,6 @@
+ <!--*- xml -*-->
+ <ui>
+       <menubar name="MenuMain">
+-              <menu name="MenuView" action="ActionMenuView">
+-                      <menu name="Goto" action="ActionMenuGoto">
+-                              <placeholder name="PlaceholderGotoMenus">
+-                                      <menuitem name="BackHelp" action="ActionDevhelpBack" />
+-                                      <menuitem name="ForwardHelp" action="ActionDevhelpForward" />
+-                              </placeholder>
+-                      </menu>
+-              </menu>
+               <placeholder name="PlaceHolderHelpMenus" >
+                       <menu name="MenuHelp" action="ActionMenuHelp" >
+                               <placeholder name="PlaceHolderHelpDevel" >
+@@ -24,7 +16,5 @@
+       </toolbar>
+       <toolbar name="ToolbarBrowser">         
+               <toolitem name="Context" action="ActionHelpContext" />
+-              <toolitem name="BackHelp" action="ActionDevhelpBack" />
+-              <toolitem name="ForwardHelp" action="ActionDevhelpForward" />
+       </toolbar>
+ </ui>
+diff -urN anjuta-2.24.2/plugins/devhelp/htmlview.c trunk/plugins/devhelp/htmlview.c
+--- anjuta-2.24.2/plugins/devhelp/htmlview.c   2008-10-19 17:35:29.000000000 +0200
++++ trunk/plugins/devhelp/htmlview.c   1970-01-01 01:00:00.000000000 +0100
+@@ -1,182 +0,0 @@
+-/*
+- *  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 2 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 Library General Public License for more details.
+- *
+- *  You should have received a copy of the GNU General Public License
+- *  along with this program; if not, write to the Free Software
+- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+- */
+-
+-#include "htmlview.h"
+-
+-#include <devhelp/dh-book-tree.h>
+-#include <devhelp/dh-html.h>
+-#include <devhelp/dh-preferences.h>
+-#include <devhelp/dh-search.h>
+-#include <devhelp/dh-base.h>
+-
+-static void html_view_class_init(HtmlViewClass *klass);
+-static void html_view_init(HtmlView *sp);
+-static void html_view_finalize(GObject *object);
+-
+-struct _HtmlViewPrivate {
+-      DhHtml* html;
+-      AnjutaDevhelp* devhelp;
+-      gchar* uri;
+-      guint idle_realize;
+-};
+-
+-G_DEFINE_TYPE(HtmlView, html_view, GTK_TYPE_HBOX)
+-
+-static gboolean
+-devhelp_html_open_uri_cb (DhHtml      *html,
+-                       const gchar *uri,
+-                       AnjutaDevhelp    *widget)
+-{
+-#ifdef HAVE_OLD_DEVHELP
+-      dh_book_tree_show_uri (DH_BOOK_TREE (widget->book_tree), uri);
+-#else
+-      dh_book_tree_select_uri (DH_BOOK_TREE (widget->book_tree), uri);
+-#endif
+-      return FALSE;
+-}
+-
+-static void
+-devhelp_html_location_changed_cb (DhHtml      *html,
+-                               const gchar *location,
+-                               AnjutaDevhelp    *widget)
+-{     
+-      anjuta_devhelp_check_history (widget);
+-}
+-
+-static gboolean
+-html_view_create_html(HtmlView* html_view)
+-{
+-      GtkWidget* view;
+-      HtmlViewPrivate* priv = html_view->priv;
+-
+-      priv->html = dh_html_new();
+-      
+-      if (!priv->html || !DH_IS_HTML(priv->html))     
+-              return TRUE; /* I think the idea is to wait until we get a widget? */
+-      
+-      view = dh_html_get_widget(priv->html);
+-      gtk_box_pack_start(GTK_BOX(html_view), dh_html_get_widget(priv->html), TRUE, TRUE, 1);
+-      
+-      g_signal_connect (priv->html, "open-uri",
+-                        G_CALLBACK (devhelp_html_open_uri_cb),
+-                        priv->devhelp);
+-      g_signal_connect (priv->html, "location-changed",
+-                        G_CALLBACK (devhelp_html_location_changed_cb),
+-                        priv->devhelp);
+-      
+-      /* Hack to get GtkMozEmbed to work properly. */
+-      gtk_widget_realize (view);
+-
+-      if (priv->uri)
+-              dh_html_open_uri(priv->html, priv->uri);
+-      else
+-              dh_html_clear(priv->html);
+-      
+-      gtk_widget_show (view);
+-      
+-      return FALSE;
+-}
+-
+-static void
+-html_view_realize(GtkWidget* widget)
+-{
+-      HtmlView* html_view = HTML_VIEW(widget);
+-      
+-      if (html_view->priv->idle_realize == 0)
+-      {
+-              html_view->priv->idle_realize =
+-                      g_idle_add((GSourceFunc) html_view_create_html, html_view);
+-      }       
+-      (* GTK_WIDGET_CLASS (html_view_parent_class)->realize)(widget);
+-}
+-
+-static void
+-html_view_unrealize(GtkWidget* widget)
+-{
+-      HtmlView* html_view = HTML_VIEW(widget);
+-      
+-      if (html_view->priv->idle_realize > 0)
+-      {
+-              g_source_remove (html_view->priv->idle_realize);
+-              html_view->priv->idle_realize = 0;
+-      }
+-      
+-      if (html_view->priv->html != NULL)
+-      {
+-              g_free(html_view->priv->uri);
+-              html_view->priv->uri = dh_html_get_location(html_view->priv->html);
+-      }
+-      else
+-              html_view->priv->uri = NULL;
+-      
+-      if (gtk_container_get_children(GTK_CONTAINER(html_view)))
+-      {
+-              gtk_container_remove(GTK_CONTAINER(widget), dh_html_get_widget(html_view->priv->html));
+-              html_view->priv->html = NULL;
+-      }
+-
+-      (* GTK_WIDGET_CLASS (html_view_parent_class)->unrealize)(widget);
+-}
+-
+-static void
+-html_view_class_init(HtmlViewClass *klass)
+-{
+-      GObjectClass *object_class = G_OBJECT_CLASS(klass);
+-      GtkWidgetClass* widget_class = GTK_WIDGET_CLASS(klass);
+-
+-      object_class->finalize = html_view_finalize;
+-      
+-      widget_class->realize = html_view_realize;
+-      widget_class->unrealize = html_view_unrealize;
+-}
+-
+-static void
+-html_view_init(HtmlView *obj)
+-{
+-      obj->priv = g_new0(HtmlViewPrivate, 1);
+-      gtk_widget_show(GTK_WIDGET(obj));
+-}
+-
+-static void
+-html_view_finalize(GObject *object)
+-{
+-      HtmlView *cobj;
+-      cobj = HTML_VIEW(object);
+-      
+-      /* Free private members, etc. */
+-      if (cobj->priv->html)
+-              gtk_widget_destroy(dh_html_get_widget(cobj->priv->html));
+-      g_free (cobj->priv->uri);       
+-      g_free(cobj->priv);
+-      G_OBJECT_CLASS(html_view_parent_class)->finalize(object);
+-}
+-
+-GtkWidget*
+-html_view_new(AnjutaDevhelp* devhelp)
+-{
+-      HtmlView *obj;
+-      
+-      obj = HTML_VIEW(g_object_new(HTML_TYPE_VIEW, NULL));
+-      
+-      obj->priv->devhelp = devhelp;
+-      
+-      return GTK_WIDGET(obj);
+-}
+-
+-DhHtml* html_view_get_dh_html(HtmlView* view)
+-{
+-      return view->priv->html;
+-}
+diff -urN anjuta-2.24.2/plugins/devhelp/htmlview.h trunk/plugins/devhelp/htmlview.h
+--- anjuta-2.24.2/plugins/devhelp/htmlview.h   2008-10-19 17:35:29.000000000 +0200
++++ trunk/plugins/devhelp/htmlview.h   1970-01-01 01:00:00.000000000 +0100
+@@ -1,57 +0,0 @@
+-/*
+- *  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 2 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 Library General Public License for more details.
+- *
+- *  You should have received a copy of the GNU General Public License
+- *  along with this program; if not, write to the Free Software
+- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+- */
+-
+-#ifndef HTMLVIEW_H
+-#define HTMLVIEW_H
+-
+-#include <glib.h>
+-#include <glib-object.h>
+-#include <gtk/gtk.h>
+-
+-#include <devhelp/dh-html.h>
+-
+-#include "plugin.h"
+-
+-G_BEGIN_DECLS
+-
+-#define HTML_TYPE_VIEW         (html_view_get_type ())
+-#define HTML_VIEW(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), HTML_TYPE_VIEW, HtmlView))
+-#define HTML_VIEW_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), HTML_TYPE_VIEW, HtmlViewClass))
+-#define HTML_IS_VIEW(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), HTML_TYPE_VIEW))
+-#define HTML_IS_VIEW_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), HTML_TYPE_VIEW))
+-#define HTML_VIEW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), HTML_TYPE_VIEW, HtmlViewClass))
+-
+-typedef struct _HtmlView HtmlView;
+-typedef struct _HtmlViewPrivate HtmlViewPrivate;
+-typedef struct _HtmlViewClass HtmlViewClass;
+-
+-struct _HtmlView {
+-      GtkHBox parent;
+-      HtmlViewPrivate *priv;
+-};
+-
+-struct _HtmlViewClass {
+-      GtkHBoxClass parent_class;
+-};
+-
+-GType html_view_get_type(void);
+-GtkWidget *html_view_new(AnjutaDevhelp* devhelp);
+-
+-DhHtml* html_view_get_dh_html(HtmlView* html_view);
+-
+-G_END_DECLS
+-
+-#endif /* HTMLVIEW_H */
+diff -urN anjuta-2.24.2/plugins/devhelp/Makefile.am trunk/plugins/devhelp/Makefile.am
+--- anjuta-2.24.2/plugins/devhelp/Makefile.am  2008-10-19 17:35:29.000000000 +0200
++++ trunk/plugins/devhelp/Makefile.am  2008-12-07 23:31:25.935952354 +0100
+@@ -8,11 +8,7 @@
+ devhelp_pixmapsdir = $(anjuta_image_dir)
+ devhelp_pixmaps_DATA = \
+       anjuta-devhelp-plugin.svg \
+-      anjuta-devhelp-plugin-48.png \
+-      anjuta-go-help-next-24.png \
+-      anjuta-go-help-next-16.png \
+-      anjuta-go-help-prev-24.png \
+-      anjuta-go-help-prev-16.png
++      anjuta-devhelp-plugin-48.png
+ # Plugin description file
+ plugin_in_files = anjuta-devhelp.plugin.in
+@@ -46,20 +42,11 @@
+       plugin.c \
+       plugin.h
+-if HAVE_PLUGIN_DEVHELP
+-libanjuta_devhelp_la_SOURCES += \
+-      htmlview.c \
+-      htmlview.h
+-endif
+-
+ # Plugin dependencies
+ libanjuta_devhelp_la_LIBADD = \
+       $(GTK_LIBS) \
+-      $(LIBANJUTA_LIBS)
+-
+-if HAVE_PLUGIN_DEVHELP
+-libanjuta_devhelp_la_LIBADD += $(PLUGIN_DEVHELP_LIBS)
+-endif
++      $(LIBANJUTA_LIBS) \
++      $(PLUGIN_DEVHELP_LIBS)
+ EXTRA_DIST = \
+       $(plugin_in_files) \
+diff -urN anjuta-2.24.2/plugins/devhelp/plugin.c trunk/plugins/devhelp/plugin.c
+--- anjuta-2.24.2/plugins/devhelp/plugin.c     2008-10-19 17:35:29.000000000 +0200
++++ trunk/plugins/devhelp/plugin.c     2008-12-07 23:31:25.922619748 +0100
+@@ -34,11 +34,12 @@
+ #ifndef DISABLE_EMBEDDED_DEVHELP
+ #include <devhelp/dh-book-tree.h>
+-#include <devhelp/dh-html.h>
+-#include <devhelp/dh-preferences.h>
+ #include <devhelp/dh-search.h>
+ #include <devhelp/dh-base.h>
+-#include "htmlview.h"
++#include <webkit/webkit.h>
++
++#define ONLINE_API_DOCS "http://library.gnome.org/devel"
++
+ #define UI_FILE PACKAGE_DATA_DIR"/ui/anjuta-devhelp.ui"
+ #else /* DISABLE_EMBEDDED_DEVHELP */
+@@ -51,12 +52,8 @@
+ #ifndef DISABLE_EMBEDDED_DEVHELP
+-#define ANJUTA_PIXMAP_HELP_NEXT "anjuta-go-help-next-24.png"
+-#define ANJUTA_PIXMAP_HELP_PREV "anjuta-go-help-prev-24.png"
+ #define ANJUTA_PIXMAP_DEVHELP "anjuta-devhelp-plugin-48.png"
+-#define ANJUTA_STOCK_HELP_NEXT "anjuta-help-next"
+-#define ANJUTA_STOCK_HELP_PREV "anjuta-help-prev"
+ #define ANJUTA_STOCK_DEVHELP "anjuta-devhelp"
+ static void
+@@ -74,76 +71,71 @@
+       /* Register stock icons */
+       ui = anjuta_shell_get_ui (plugin->shell, NULL);
+       icon_factory = anjuta_ui_get_icon_factory (ui);
+-      REGISTER_ICON (ANJUTA_PIXMAP_HELP_NEXT, ANJUTA_STOCK_HELP_NEXT);
+-      REGISTER_ICON (ANJUTA_PIXMAP_HELP_PREV, ANJUTA_STOCK_HELP_PREV);
+       REGISTER_ICON (ANJUTA_PIXMAP_DEVHELP, ANJUTA_STOCK_DEVHELP);
+ }
+ static void
+-devhelp_tree_link_selected_cb (GObject       *ignored,
+-                            DhLink        *link,
+-                            AnjutaDevhelp *widget)
++devhelp_tree_link_selected_cb (GObject       *ignored, DhLink *link,
++                                                         AnjutaDevhelp *widget)
+ {
++      gchar *uri;
+       
+-      DhHtml       *html;
+-
+       anjuta_shell_present_widget (ANJUTA_PLUGIN (widget)->shell,
+-                                                               widget->htmlview, NULL);
++                                                               widget->view_sw, NULL);
+-      html = html_view_get_dh_html(HTML_VIEW(widget->htmlview));
+-      
+-      if (!DH_IS_HTML(html))
+-              return;
++      uri = dh_link_get_uri (link);
++      webkit_web_view_open (WEBKIT_WEB_VIEW (widget->view), uri);
++      g_free (uri);
+       
+-      dh_html_open_uri (html, link->uri);
+-
+       anjuta_devhelp_check_history (widget);
+ }
+ static void
+-devhelp_search_link_selected_cb (GObject  *ignored,
+-                              DhLink   *link,
+-                               AnjutaDevhelp *widget)
++devhelp_search_link_selected_cb (GObject  *ignored, DhLink *link,
++                                                               AnjutaDevhelp *widget)
+ {
+-      DhHtml       *html;
+-
++      gchar *uri;
++      
+       anjuta_shell_present_widget (ANJUTA_PLUGIN (widget)->shell,
+-                                                               widget->htmlview, NULL);
+-
+-      html = html_view_get_dh_html(HTML_VIEW(widget->htmlview));
+-
+-      if (!DH_IS_HTML(html))
+-              return;
+-
+-      dh_html_open_uri (html, link->uri);
++                                                               widget->view_sw, NULL);
++      uri = dh_link_get_uri (link);
++      webkit_web_view_open (WEBKIT_WEB_VIEW (widget->view), uri);
++      g_free (uri);
++      
+       anjuta_devhelp_check_history (widget);
+ }
+ static void
+-on_go_back_activate (GtkAction *action, AnjutaDevhelp *plugin)
++on_go_back_clicked (GtkWidget *widget, AnjutaDevhelp *plugin)
+ {
+-      DhHtml* html;
++      anjuta_shell_present_widget (ANJUTA_PLUGIN (plugin)->shell,
++                                                               plugin->view_sw, NULL);
+-      html = html_view_get_dh_html(HTML_VIEW(plugin->htmlview));
++      webkit_web_view_go_back (WEBKIT_WEB_VIEW (plugin->view));
+       
+-      if (!DH_IS_HTML(html))
+-              return;
+-              
+-      dh_html_go_back(html);
++      anjuta_devhelp_check_history (plugin);
+ }
+ static void
+-on_go_forward_activate (GtkAction *action, AnjutaDevhelp *plugin)
++on_go_forward_clicked (GtkWidget *widget, AnjutaDevhelp *plugin)
+ {
+-      DhHtml* html;
++      anjuta_shell_present_widget (ANJUTA_PLUGIN (plugin)->shell,
++                                                               plugin->view_sw, NULL);
+-      html = html_view_get_dh_html(HTML_VIEW(plugin->htmlview));
+-      
+-      if (!DH_IS_HTML(html))
+-              return;
++      webkit_web_view_go_forward (WEBKIT_WEB_VIEW (plugin->view));
+       
+-      dh_html_go_forward(html);
++      anjuta_devhelp_check_history (plugin);
++}
++
++static void
++on_online_clicked (GtkWidget* widget, AnjutaDevhelp* plugin)
++{
++      anjuta_shell_present_widget (ANJUTA_PLUGIN (plugin)->shell,
++                                                               plugin->view_sw, NULL);
++      webkit_web_view_open (WEBKIT_WEB_VIEW(plugin->view),
++                                                ONLINE_API_DOCS);
++      anjuta_devhelp_check_history (plugin);
+ }
+ static gboolean
+@@ -151,7 +143,7 @@
+ {     
+       gtk_notebook_set_current_page (GTK_NOTEBOOK (plugin->control_notebook), 0);
+       anjuta_shell_present_widget (ANJUTA_PLUGIN (plugin)->shell,
+-                                                               plugin->control_notebook, NULL);
++                                                               plugin->main_vbox, NULL);
+       return FALSE;
+ }
+@@ -173,7 +165,7 @@
+ }
+ static gboolean
+-context_idle(AnjutaDevhelp* plugin)
++context_idle (AnjutaDevhelp* plugin)
+ {
+       IAnjutaEditor *editor;
+       gchar *current_word;
+@@ -232,22 +224,6 @@
+               NULL,
+               NULL
+       },
+-      {
+-              "ActionDevhelpBack",
+-              ANJUTA_STOCK_HELP_PREV,
+-              N_("Previous Help"),
+-              NULL,
+-              N_("Go to previous help page"),
+-              G_CALLBACK (on_go_back_activate)
+-      },
+-      {
+-              "ActionDevhelpForward",
+-              ANJUTA_STOCK_HELP_NEXT,
+-              N_("Next Help"),
+-              NULL,
+-              N_("Go to next help page"),
+-              G_CALLBACK (on_go_forward_activate)
+-      },
+ #endif /* DISABLE_EMBEDDED_DEVHELP */
+       {
+               "ActionHelpApi",
+@@ -282,7 +258,7 @@
+ /* Watches callbacks */
+ static void
+-value_added_current_editor (AnjutaPlugin *plugin, const char *name,
++value_added_current_editor (AnjutaPlugin *plugin, const gchar *name,
+                                                       const GValue *value, gpointer data)
+ {
+       GtkAction *action;
+@@ -300,7 +276,7 @@
+ static void
+ value_removed_current_editor (AnjutaPlugin *plugin,
+-                                                        const char *name, gpointer data)
++                                                        const gchar *name, gpointer data)
+ {
+       GtkAction *action;
+       AnjutaDevhelp* devhelp = ANJUTA_PLUGIN_DEVHELP (data);  
+@@ -311,10 +287,17 @@
+       g_object_set (action, "sensitive", FALSE, NULL);
+ }
++#ifndef DISABLE_EMBEDDED_DEVHELP
++static void on_load_finished (GObject* view, GObject* frame, gpointer user_data)
++{
++      AnjutaDevhelp* devhelp = ANJUTA_PLUGIN_DEVHELP(user_data);
++      anjuta_devhelp_check_history(devhelp);
++}
++#endif
++
+ static gboolean
+ devhelp_activate (AnjutaPlugin *plugin)
+ {
+-
+       AnjutaUI *ui;
+       AnjutaDevhelp *devhelp;
+@@ -323,15 +306,16 @@
+       GNode *books;
+       GList *keywords;
+       GtkWidget* books_sw;
++      GtkWidget *button_hbox;
+       
+       if (!init)
+       {
+               register_stock_icons (plugin);
+               init = TRUE;
+-      }       
++      }
+ #endif
+-      DEBUG_PRINT ("AnjutaDevhelp: Activating AnjutaDevhelp plugin ...");
++      DEBUG_PRINT ("%s", "AnjutaDevhelp: Activating AnjutaDevhelp plugin ...");
+       devhelp = ANJUTA_PLUGIN_DEVHELP (plugin);
+       /* Add all UI actions and merge UI */
+@@ -346,47 +330,100 @@
+       devhelp->uiid = anjuta_ui_merge (ui, UI_FILE);
+ #ifndef DISABLE_EMBEDDED_DEVHELP
+-
++      /*
++       * Forward/back buttons
++       */
++      devhelp->main_vbox = gtk_vbox_new (FALSE, 6);
++      gtk_widget_show (devhelp->main_vbox);
++      button_hbox = gtk_hbox_new (FALSE, 0);
++      gtk_widget_show (button_hbox);
++      
++      devhelp->go_back = gtk_button_new_from_stock (GTK_STOCK_GO_BACK);
++      gtk_widget_show (devhelp->go_back);
++      gtk_box_pack_start (GTK_BOX (button_hbox), devhelp->go_back, FALSE, FALSE, 0);
++      gtk_widget_set_sensitive (devhelp->go_back, FALSE);
++      g_signal_connect (devhelp->go_back, "clicked",
++                        G_CALLBACK (on_go_back_clicked), devhelp);
++      
++      devhelp->go_forward = gtk_button_new_from_stock (GTK_STOCK_GO_FORWARD);
++      gtk_widget_show (devhelp->go_forward);
++      gtk_box_pack_start (GTK_BOX (button_hbox), devhelp->go_forward, FALSE, FALSE, 0);
++      gtk_widget_set_sensitive (devhelp->go_forward, FALSE);
++      g_signal_connect (devhelp->go_forward, "clicked",
++                        G_CALLBACK (on_go_forward_clicked), devhelp);
++
++      devhelp->online = gtk_button_new_from_stock (_("Online"));
++      gtk_widget_show (devhelp->online);
++      gtk_box_pack_start (GTK_BOX (button_hbox), devhelp->online, FALSE, FALSE, 0);
++      g_signal_connect (devhelp->online, "clicked",
++                        G_CALLBACK (on_online_clicked), devhelp);
++      
++      gtk_box_pack_start (GTK_BOX (devhelp->main_vbox), button_hbox, FALSE, FALSE, 0);
++      
++      /*
++       * Notebook
++       */
+       books = dh_base_get_book_tree (devhelp->base);
+       keywords = dh_base_get_keywords (devhelp->base);
+       
+-      books_sw = gtk_scrolled_window_new(NULL, NULL);
++      books_sw = gtk_scrolled_window_new (NULL, NULL);
+       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (books_sw),
+-                                      GTK_POLICY_NEVER,
+-                                      GTK_POLICY_AUTOMATIC);
++                                                                      GTK_POLICY_NEVER,
++                                                                      GTK_POLICY_AUTOMATIC);
+       gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (books_sw),
+-                                           GTK_SHADOW_IN);
++                                                                           GTK_SHADOW_IN);
+       gtk_container_set_border_width (GTK_CONTAINER (books_sw), 2);
+       
+-      devhelp->control_notebook = gtk_notebook_new();
+-      devhelp->book_tree = dh_book_tree_new(books);
+-      devhelp->search = dh_search_new(keywords);
++      devhelp->control_notebook = gtk_notebook_new ();
++      gtk_box_pack_start (GTK_BOX (devhelp->main_vbox), devhelp->control_notebook,
++                                              TRUE, TRUE, 0);
++      devhelp->book_tree = dh_book_tree_new (books);
++      
++      devhelp->search = dh_search_new (keywords);
++      gtk_widget_set_size_request (devhelp->search, 0, 0);
+       
+       g_signal_connect (devhelp->book_tree,
+-                        "link-selected",
+-                        G_CALLBACK (devhelp_tree_link_selected_cb),
+-                        devhelp);
++                                        "link-selected",
++                                        G_CALLBACK (devhelp_tree_link_selected_cb),
++                                        devhelp);
+       g_signal_connect (devhelp->search,
+-                        "link-selected",
+-                        G_CALLBACK (devhelp_search_link_selected_cb),
+-                        devhelp);
+-      
+-      gtk_container_add(GTK_CONTAINER(books_sw), devhelp->book_tree);
+-      gtk_notebook_append_page(GTK_NOTEBOOK(devhelp->control_notebook), books_sw,
+-              gtk_label_new(_("Books")));
+-      gtk_notebook_append_page(GTK_NOTEBOOK(devhelp->control_notebook), devhelp->search,
+-              gtk_label_new(_("Search")));
+-      
+-      devhelp->htmlview = html_view_new(devhelp);     
+-
+-      anjuta_shell_add_widget (plugin->shell, devhelp->control_notebook,
+-                                                               "AnjutaDevhelpIndex", _("Help"), ANJUTA_STOCK_DEVHELP,
+-                                                               ANJUTA_SHELL_PLACEMENT_LEFT, NULL);
++                                        "link-selected",
++                                        G_CALLBACK (devhelp_search_link_selected_cb),
++                                        devhelp);
++      
++      gtk_container_add (GTK_CONTAINER (books_sw), devhelp->book_tree);
++      gtk_notebook_append_page (GTK_NOTEBOOK (devhelp->control_notebook), books_sw,
++                                                       gtk_label_new (_("Contents")));
++      gtk_notebook_append_page (GTK_NOTEBOOK (devhelp->control_notebook), devhelp->search,
++                                                        gtk_label_new (_("Search")));
++      
++      gtk_widget_show_all (devhelp->control_notebook);
++      
++      /* View */
++      devhelp->view = webkit_web_view_new ();
++      gtk_widget_show (devhelp->view);
++      
++      // TODO: Show some good start page
++      webkit_web_view_open (WEBKIT_WEB_VIEW (devhelp->view), "about:blank");
++      g_signal_connect(G_OBJECT (devhelp->view), "load-finished", 
++                                       G_CALLBACK (on_load_finished), devhelp);
++      
++      devhelp->view_sw = gtk_scrolled_window_new (NULL, NULL);
++      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (devhelp->view_sw),
++                                                                      GTK_POLICY_AUTOMATIC,
++                                                                      GTK_POLICY_AUTOMATIC);
++      gtk_container_set_border_width (GTK_CONTAINER (devhelp->view_sw), 5);
++      gtk_widget_show (devhelp->view_sw);
++      gtk_container_add (GTK_CONTAINER (devhelp->view_sw), devhelp->view);
++
++      anjuta_shell_add_widget (plugin->shell, devhelp->main_vbox,
++                                                       "AnjutaDevhelpIndex", _("Help"), ANJUTA_STOCK_DEVHELP,
++                                                       ANJUTA_SHELL_PLACEMENT_LEFT, NULL);
+       /* This is the window that show the html help text */
+-      anjuta_shell_add_widget (plugin->shell, devhelp->htmlview,
+-                                                               "AnjutaDevhelpDisplay", _("Help display"),
+-                                                               ANJUTA_STOCK_DEVHELP,
+-                                                               ANJUTA_SHELL_PLACEMENT_CENTER, NULL);
++      anjuta_shell_add_widget (plugin->shell, devhelp->view_sw,
++                                                       "AnjutaDevhelpDisplay", _("Help display"),
++                                                       ANJUTA_STOCK_DEVHELP,
++                                                       ANJUTA_SHELL_PLACEMENT_CENTER, NULL);
+                                                                
+ #endif /* DISABLE_EMBEDDED_DEVHELP */
+@@ -406,7 +443,7 @@
+       AnjutaUI *ui;
+       AnjutaDevhelp* devhelp = ANJUTA_PLUGIN_DEVHELP (plugin);
+-      DEBUG_PRINT ("AnjutaDevhelp: Dectivating AnjutaDevhelp plugin ...");
++      DEBUG_PRINT ("%s", "AnjutaDevhelp: Dectivating AnjutaDevhelp plugin ...");
+       ui = anjuta_shell_get_ui (plugin->shell, NULL);
+@@ -415,8 +452,8 @@
+ #ifndef DISABLE_EMBEDDED_DEVHELP
+       /* Remove widgets */
+-      anjuta_shell_remove_widget(plugin->shell, devhelp->htmlview, NULL);
+-      anjuta_shell_remove_widget(plugin->shell, devhelp->control_notebook, NULL);     
++      anjuta_shell_remove_widget(plugin->shell, devhelp->view_sw, NULL);
++      anjuta_shell_remove_widget(plugin->shell, devhelp->main_vbox, NULL);    
+ #endif /* DISABLE_EMBEDDED_DEVHELP */
+       
+@@ -431,47 +468,43 @@
+ #ifndef DISABLE_EMBEDDED_DEVHELP
+-void anjuta_devhelp_check_history(AnjutaDevhelp* devhelp)
++void
++anjuta_devhelp_check_history (AnjutaDevhelp* devhelp)
+ {
+-      GtkAction* action_forward;
+-      GtkAction* action_back;
+-      DhHtml* html = html_view_get_dh_html(HTML_VIEW(devhelp->htmlview));
+-      
+-      action_forward = gtk_action_group_get_action (devhelp->action_group,
+-                                                                                "ActionDevhelpForward");
+-      action_back = gtk_action_group_get_action (devhelp->action_group,
+-                                                                                "ActionDevhelpBack");
+-      if (html != NULL)
+-      {
+-              g_object_set (action_forward, "sensitive", dh_html_can_go_forward (html) , NULL);
+-              g_object_set (action_back, "sensitive", dh_html_can_go_back (html) , NULL);
+-      }
++      gtk_widget_set_sensitive (devhelp->go_forward, webkit_web_view_can_go_forward (WEBKIT_WEB_VIEW (devhelp->view)));
++
++      gtk_widget_set_sensitive (devhelp->go_back, webkit_web_view_can_go_back (WEBKIT_WEB_VIEW (devhelp->view)));
+ }
+ #endif /* DISABLE_EMBEDDED_DEVHELP */
+-#if 0
+ static void
+ devhelp_finalize (GObject *obj)
+ {
++      DEBUG_PRINT ("%s", "Finalising Devhelp plugin");
++
+       /* Finalization codes here */
+-      AnjutaDevhelp *plugin = ANJUTA_PLUGIN_DEVHELP (obj);
+-      
+       G_OBJECT_CLASS (parent_class)->finalize (obj);
+ }
+ static void
+ devhelp_dispose (GObject *obj)
+ {
++      DEBUG_PRINT ("%s", "Disposing Devhelp plugin");
++      
++#ifndef DISABLE_EMBEDDED_DEVHELP
+       AnjutaDevhelp* devhelp = ANJUTA_PLUGIN_DEVHELP (obj);
+       
+-      /* Destroy devhelp - seems not to work... */
+-      // g_object_unref(G_OBJECT(devhelp->base));
++      if (devhelp->base)
++      {
++              g_object_unref(G_OBJECT(devhelp->base));
++              devhelp->base = NULL;
++      }
++#endif /* DISABLE_EMBEDDED_DEVHELP */
+       /* Disposition codes */
+       G_OBJECT_CLASS (parent_class)->dispose (obj);
+ }
+-#endif
+ static void
+ devhelp_instance_init (GObject *obj)
+@@ -497,10 +530,9 @@
+       plugin_class->activate = devhelp_activate;
+       plugin_class->deactivate = devhelp_deactivate;
+-#if 0
++      
+       klass->finalize = devhelp_finalize;
+       klass->dispose = devhelp_dispose;
+-#endif
+ }
+ #ifndef DISABLE_EMBEDDED_DEVHELP
+@@ -513,9 +545,9 @@
+       plugin = ANJUTA_PLUGIN_DEVHELP (help);
+       
+       anjuta_shell_present_widget (ANJUTA_PLUGIN (plugin)->shell,
+-                                                               plugin->control_notebook, NULL);
++                                                               plugin->main_vbox, NULL);
+       
+-      dh_search_set_search_string (DH_SEARCH (plugin->search), query);
++      dh_search_set_search_string (DH_SEARCH (plugin->search), query, NULL);
+       gtk_notebook_set_current_page (GTK_NOTEBOOK (plugin->control_notebook), 1);
+ }
+@@ -524,34 +556,33 @@
+ static void
+ ihelp_search (IAnjutaHelp *help, const gchar *query, GError **err)
+ {
+-      AnjutaDevhelp *plugin;
+-      
+-      plugin = ANJUTA_PLUGIN_DEVHELP (help);
++      gchar *cmd[4];
+       
+       if (!anjuta_util_prog_is_installed ("devhelp", TRUE))
+       {
+               return;
+       }
+       
+-      if(query && strlen (query) > 0)
++      cmd[0] = "devhelp";
++      
++      if (query && strlen (query) > 0)
+       {
+-              fprintf(stderr, "Word is %s\n", query);
+-              if(fork()==0)
+-              {
+-                      execlp("devhelp", "devhelp", "-s", query, NULL);
+-                      g_warning (_("Cannot execute command: \"%s\""), "devhelp");
+-                      _exit(1);
+-              }
++              cmd[1] = "-s";
++              cmd[2] = (gchar *)query;
++              cmd[3] = NULL;  
+       }
+       else
+       {
+-              if(fork()==0)
+-              {
+-                      execlp("devhelp", "devhelp", NULL);
+-                      g_warning (_("Cannot execute command: \"%s\""), "devhelp");
+-                      _exit(1);
+-              }
++              cmd[1] = NULL;
+       }
++      
++      gdk_spawn_on_screen (gdk_screen_get_default (),
++                                           NULL,
++                                           cmd,
++                                           NULL,
++                                           G_SPAWN_SEARCH_PATH,
++                                           NULL,
++                                           NULL, NULL, NULL);
+ }
+ #endif /* DISABLE_EMBEDDED_DEVHELP */
+diff -urN anjuta-2.24.2/plugins/devhelp/plugin.h trunk/plugins/devhelp/plugin.h
+--- anjuta-2.24.2/plugins/devhelp/plugin.h     2008-10-19 17:35:29.000000000 +0200
++++ trunk/plugins/devhelp/plugin.h     2008-12-07 23:31:25.927410883 +0100
+@@ -49,10 +49,15 @@
+ #ifndef DISABLE_EMBEDDED_DEVHELP
+       DhBase         *base;
+ #endif /* DISABLE_EMBEDDED_DEVHELP */
+-      GtkWidget     *htmlview;    
++      GtkWidget      *view;
++      GtkWidget      *view_sw;
+       GtkWidget      *control_notebook; 
++      GtkWidget      *main_vbox;
+       GtkWidget      *book_tree;
+       GtkWidget      *search;
++      GtkWidget      *go_back;
++      GtkWidget      *go_forward;
++      GtkWidget      *online;
+       
+       IAnjutaEditor   *editor;
+       guint editor_watch_id;
This page took 0.146805 seconds and 4 git commands to generate.