Updating branch refs/heads/master
         to ec4cae752aa01e235b870df476b0c3008cb24f4d (commit)
       from 673f739167aa23710a7b570eb7e863871fd09e4d (commit)

commit ec4cae752aa01e235b870df476b0c3008cb24f4d
Author: Nick Schermer <n...@xfce.org>
Date:   Fri Oct 26 08:43:19 2007 +0000

        * MousepadHelp.in, mousepad/mousepad-{dialogs,window}.{c,h}:
          Add support for the help file.
        * Mousepad.spec.in: Add spec file.
    
    (Old svn revision: 26199)

 ChangeLog                   |    6 +++++
 Makefile.am                 |   14 +++++++++++
 Mousepad.spec.in            |   51 +++++++++++++++++++++++++++++++++++++++++++
 MousepadHelp.in             |   51 +++++++++++++++++++++++++++++++++++++++++++
 mousepad/mousepad-dialogs.c |   51 +++++++++++++++++++++++++++++++++++++++++++
 mousepad/mousepad-dialogs.h |    4 +++
 mousepad/mousepad-window.c  |    2 +-
 7 files changed, 178 insertions(+), 1 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 718f5ec..e64012a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-26     Nick Schermer <n...@xfce.org>
+       * MousepadHelp.in, mousepad/mousepad-{dialogs,window}.{c,h}:
+         Add support for the help file.
+       * Mousepad.spec.in: Add spec file.
+
+
 2007-10-25     Nick Schermer <n...@xfce.org>
        * mousepad/mousepad-view.c: Redraw selection on theme change.
 
diff --git a/Makefile.am b/Makefile.am
index cc32972..aafee93 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -13,6 +13,16 @@ rpm: dist
        rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz
        @rm -f $(PACKAGE)-$(VERSION).tar.gz
 
+libexec_SCRIPTS =                                                              
\
+       MousepadHelp
+
+MousepadHelp: MousepadHelp.in Makefile
+       rm -f MousepadHelp.gen MousepadHelp
+       sed -e "s,\@datadir\@,$(datadir),g"                                     
\
+               < $(srcdir)/MousepadHelp.in                                     
\
+               > MousepadHelp.gen
+       mv MousepadHelp.gen MousepadHelp
+
 desktopdir = $(datadir)/applications
 desktop_in_in_files =                                                          
\
        Mousepad.desktop.in.in
@@ -23,12 +33,16 @@ desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
 @INTLTOOL_DESKTOP_RULE@
 
 EXTRA_DIST =                                                                   
\
+       MousepadHelp.in                                                         
\
+       Mousepad.spec.in                                                        
\
        intltool-extract.in                                                     
\
        intltool-merge.in                                                       
\
        intltool-update.in                                                      
\
        $(desktop_in_in_files)
 
 DISTCLEANFILES =                                                               
\
+       MousepadHelp                                                            
\
+       Mousepad.spec                                                           
\
        intltool-extract                                                        
\
        intltool-merge                                                          
\
        intltool-update                                                         
\
diff --git a/Mousepad.spec.in b/Mousepad.spec.in
new file mode 100644
index 0000000..eaf1459
--- /dev/null
+++ b/Mousepad.spec.in
@@ -0,0 +1,51 @@
+Summary:       Mousepad Text Editor
+Name:          @PACKAGE_TARNAME@
+Version:       @PACKAGE_VERSION@
+Release:       1
+License:       GPL
+URL:           http://www.xfce.org/
+Source0:       %{name}-%{version}.tar.gz
+Group:         Applications/X11
+BuildRoot:     %{_tmppath}/%{name}-root
+Requires:      gtk2 >= @GTK_REQUIRED_VERSION@
+Requires:      libxfce4util >= @LIBXFCE4UTIL_REQUIRED_VERSION@
+BuildRequires: gtk2-devel >= @GTK_REQUIRED_VERSION@
+BuildRequires: libxfce4util-devel >= @LIBXFCE4UTIL_REQUIRED_VERSION@
+
+%description
+Mousepad is a simple text editor for the Xfce Desktop Environment.
+
+%prep
+%setup -q
+
+%build
+%configure --enable-dbus --enable-final --enable-xsltproc
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT mandir=%{_mandir}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post
+update-desktop-database &> /dev/null ||:
+touch --no-create %{_datadir}/icons/hicolor || :
+if [ -x %{_bindir}/gtk-update-icon-cache ]; then
+   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+fi
+
+%postun
+update-desktop-database &> /dev/null ||:
+touch --no-create %{_datadir}/icons/hicolor || :
+if [ -x %{_bindir}/gtk-update-icon-cache ]; then
+   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+fi
+
+%files
+%defattr(-,root,root)
+%doc AUTHORS ChangeLog COPYING INSTALL NEWS README THANKS TODO
+%{_bindir}/
+%{_datadir}/
+%{_libexecdir}/
diff --git a/MousepadHelp.in b/MousepadHelp.in
new file mode 100644
index 0000000..773b8a0
--- /dev/null
+++ b/MousepadHelp.in
@@ -0,0 +1,51 @@
+#!/bin/sh
+#
+# $Id$
+#
+# Copyright (c) 2004-2006 Benedikt Meurer <be...@xfce.org>
+# Copyright (c) 2007      Nick Schermer <n...@xfce.org>
+#
+# 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 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+HELPDIR="@datadir@/doc/Mousepad/html"
+
+if test -n "$LC_ALL"; then
+  LC=$LC_ALL
+elif test -n "$LANG"; then
+  LC=$LANG
+else
+  LC="C"
+fi
+
+if test -n "$1"; then
+  HELPFILE="$1.html"
+else
+  HELPFILE="index.html"
+fi
+
+if test -r "$HELPDIR/$LC/$HELPFILE"; then
+  URL="$HELPDIR/$LC/$HELPFILE"
+elif test -r "$HELPDIR/`echo $LC | sed 's/\(..\)_.*/\1/'`/$HELPFILE"; then
+  URL="$HELPDIR/`echo $LC | sed 's/\(..\)_.*/\1/'`/$HELPFILE"
+else
+  URL="$HELPDIR/C/index.html"
+fi
+
+[ -n "$2" ] && URL="$URL#$2"
+
+exec exo-open --launch WebBrowser "file://$URL"
+
+# vim:set ts=2 sw=2 et ai:
diff --git a/mousepad/mousepad-dialogs.c b/mousepad/mousepad-dialogs.c
index e404cba..b1c9ab2 100644
--- a/mousepad/mousepad-dialogs.c
+++ b/mousepad/mousepad-dialogs.c
@@ -78,6 +78,57 @@ mousepad_dialogs_show_error (GtkWindow    *parent,
 
 
 
+void
+mousepad_dialogs_show_help (GtkWindow   *parent,
+                            const gchar *page,
+                            const gchar *offset)
+{
+  GdkScreen *screen;
+  GError    *error = NULL;
+  gchar     *command;
+  gchar     *tmp;
+
+  /* get screen */
+  if (G_LIKELY (parent))
+    screen = gtk_widget_get_screen (GTK_WIDGET (parent));
+  else
+    screen = gdk_screen_get_default ();
+
+  /* generate the command for the documentation browser */
+  command = g_strdup (LIBEXECDIR "/MousepadHelp");
+
+  /* check if a page is given */
+  if (G_UNLIKELY (page != NULL))
+    {
+      /* append page as second parameter */
+      tmp = g_strconcat (command, " ", page, NULL);
+      g_free (command);
+      command = tmp;
+
+      /* check if an offset is given */
+      if (G_UNLIKELY (offset != NULL))
+        {
+          /* append offset as third parameter */
+          tmp = g_strconcat (command, " ", offset, NULL);
+          g_free (command);
+          command = tmp;
+        }
+    }
+
+  /* try to run the documentation browser */
+  if (!gdk_spawn_command_line_on_screen (screen, command, &error))
+    {
+      /* display an error message to the user */
+      mousepad_dialogs_show_error (parent, error, _("Failed to open the 
documentation browser"));
+      g_error_free (error);
+    }
+
+  /* cleanup */
+  g_free (command);
+}
+
+
+
 gint
 mousepad_dialogs_other_tab_size (GtkWindow *parent,
                                  gint      active_size)
diff --git a/mousepad/mousepad-dialogs.h b/mousepad/mousepad-dialogs.h
index 128488c..af47175 100644
--- a/mousepad/mousepad-dialogs.h
+++ b/mousepad/mousepad-dialogs.h
@@ -46,6 +46,10 @@ void       mousepad_dialogs_show_error     (GtkWindow    
*parent,
                                             const GError *error,
                                             const gchar  *message);
 
+void       mousepad_dialogs_show_help      (GtkWindow    *parent,
+                                            const gchar  *page,
+                                            const gchar  *offset);
+
 gint       mousepad_dialogs_other_tab_size (GtkWindow    *parent,
                                             gint          active_size);
 
diff --git a/mousepad/mousepad-window.c b/mousepad/mousepad-window.c
index 3bab8a5..f46cc83 100644
--- a/mousepad/mousepad-window.c
+++ b/mousepad/mousepad-window.c
@@ -3320,7 +3320,7 @@ static void
 mousepad_window_action_contents (GtkAction      *action,
                                  MousepadWindow *window)
 {
-
+  mousepad_dialogs_show_help (GTK_WINDOW (window), NULL, NULL);
 }
 
 
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to