Author: jannis
Date: 2006-08-01 22:21:26 +0000 (Tue, 01 Aug 2006)
New Revision: 22617

Added:
   libfrap/trunk/libfrap/appfinder/
   libfrap/trunk/libfrap/appfinder/ChangeLog
   libfrap/trunk/libfrap/appfinder/Makefile.am
   libfrap/trunk/libfrap/appfinder/README
   libfrap/trunk/libfrap/appfinder/appfinder.c
   libfrap/trunk/libfrap/menu/STATUS
Modified:
   libfrap/trunk/ChangeLog
   libfrap/trunk/configure.in.in
   libfrap/trunk/libfrap/Makefile.am
   libfrap/trunk/libfrap/menu/Makefile.am
   libfrap/trunk/libfrap/menu/README
   libfrap/trunk/libfrap/menu/frap-menu.c
Log:
        * configure.in.in: Added libxfcegui4 to the dependencies.
        * configure.in.in, libfrap/Makefile.am, libfrap/appfinder/: Import
          FrapAppfinder program (just an almost empty program at the moment)
          which is intended to be a replacement for the current appfinder one
          day. It depends on libfrap/menu/.
        * libfrap/menu/STATUS, libfrap/menu/Makefile.am: Implementation status
          file (STATUS) added to libfrap/menu/.

Modified: libfrap/trunk/ChangeLog
===================================================================
--- libfrap/trunk/ChangeLog     2006-08-01 21:36:48 UTC (rev 22616)
+++ libfrap/trunk/ChangeLog     2006-08-01 22:21:26 UTC (rev 22617)
@@ -1,3 +1,13 @@
+2006-08-02     Jannis Pohlmann <[EMAIL PROTECTED]>
+
+       * configure.in.in: Added libxfcegui4 to the dependencies.
+       * configure.in.in, libfrap/Makefile.am, libfrap/appfinder/: Import
+         FrapAppfinder program (just an almost empty program at the moment)
+         which is intended to be a replacement for the current appfinder one
+         day. It depends on libfrap/menu/.
+       * libfrap/menu/STATUS, libfrap/menu/Makefile.am: Implementation status
+         file (STATUS) added to libfrap/menu/.
+
 2006-08-01     Benedikt Meurer <[EMAIL PROTECTED]>
 
        * AUTHORS, COPYING, INSTALL, Makefile.am, autogen.sh, configure.in.in:

Modified: libfrap/trunk/configure.in.in
===================================================================
--- libfrap/trunk/configure.in.in       2006-08-01 21:36:48 UTC (rev 22616)
+++ libfrap/trunk/configure.in.in       2006-08-01 22:21:26 UTC (rev 22617)
@@ -72,6 +72,7 @@
 XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.6.0])
 XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.6.0])
 XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.3.90.2])
+XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [4.3.90.2])
 
 dnl ***********************************
 dnl *** Check for debugging support ***
@@ -119,4 +120,5 @@
 libfrap/Makefile
 libfrap/icon-entry/Makefile
 libfrap/menu/Makefile
+libfrap/appfinder/Makefile
 ])

Modified: libfrap/trunk/libfrap/Makefile.am
===================================================================
--- libfrap/trunk/libfrap/Makefile.am   2006-08-01 21:36:48 UTC (rev 22616)
+++ libfrap/trunk/libfrap/Makefile.am   2006-08-01 22:21:26 UTC (rev 22617)
@@ -2,6 +2,7 @@
 
 SUBDIRS =                                                              \
        icon-entry                                                      \
-       menu
+       menu                                                            \
+       appfinder                                                       
 
 # vi:set ts=8 sw=8 noet ai nocindent syntax=automake:

Added: libfrap/trunk/libfrap/appfinder/ChangeLog
===================================================================
--- libfrap/trunk/libfrap/appfinder/ChangeLog                           (rev 0)
+++ libfrap/trunk/libfrap/appfinder/ChangeLog   2006-08-01 22:21:26 UTC (rev 
22617)
@@ -0,0 +1,5 @@
+2006-08-02     Jannis Pohlmann <[EMAIL PROTECTED]>
+
+       * Initial import into libfrap.
+
+# vi:set ts=8 sw=8 noet ai nocindent:


Property changes on: libfrap/trunk/libfrap/appfinder/ChangeLog
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Added: libfrap/trunk/libfrap/appfinder/Makefile.am
===================================================================
--- libfrap/trunk/libfrap/appfinder/Makefile.am                         (rev 0)
+++ libfrap/trunk/libfrap/appfinder/Makefile.am 2006-08-01 22:21:26 UTC (rev 
22617)
@@ -0,0 +1,30 @@
+# $Id$
+
+INCLUDES =                                                             \
+       -DG_LOG_DOMAIN=\"FrapAppfinder\"                                \
+       -I$(top_builddir)/libfrap/menu/                                 
+
+
+noinst_PROGRAMS =                                                      \
+       appfinder
+
+appfinder_CFLAGS =                                                     \
+       $(GTK_CFLAGS)                                                   \
+       $(LIBXFCEGUI4_CFLAGS)
+
+appfinder_SOURCES =                                                    \
+       appfinder.c                                                     
+
+appfinder_LDFLAGS =                                                    \
+       $(top_builddir)/libfrap/menu/libfrapmenu.la                     \
+       $(GTK_LIBS)                                                     \
+       $(LIBXFCEGUI4_LIBS)
+
+appfinder_DEPENDENCIES =                                               \
+       $(top_builddir)/libfrap/menu/libfrapmenu.la
+
+
+EXTRA_DIST =                                                           \
+       README
+
+# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:


Property changes on: libfrap/trunk/libfrap/appfinder/Makefile.am
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Added: libfrap/trunk/libfrap/appfinder/README
===================================================================
--- libfrap/trunk/libfrap/appfinder/README                              (rev 0)
+++ libfrap/trunk/libfrap/appfinder/README      2006-08-01 22:21:26 UTC (rev 
22617)
@@ -0,0 +1,50 @@
+appfinder
+========================================================================
+
+   I. Module information
+  II. How to use this module
+
+
+
+I. Module information
+=====================
+
+  appfinder is a replacement for the current xfce4-appfinder. It makes 
+  use of libfrapmenu, which currently is in development. 
+
+  Besides providing the same features as the current appfinder does 
+  (displaying applications in categories, dragging applications into 
+  panel starter dialogs) it will probably act as a kind of simplified 
+  menu editor in that it will allow:
+
+    - to hide/show applications (in a XDG menu spec compliant way)
+    - to add new categories and applications (also XDG menu compliant)
+  
+  Other possible features include:
+ 
+    - to edit/unedit application entries (and thus, create copies in the 
+      home directory)
+
+  Until these features are implemented, it should only be considered a 
+  simple test program for the application entry database of libfrapmenu.
+
+
+
+II. How to use this module
+==========================
+
+  This module only contains one program marked with "noinst". If you 
+  really want to install this program into your system, you'll have to 
+  check out libfrap completely and do
+ 
+    sed -i -e 's/noinst_//g' libfrap/appfinder/Makefile.am
+
+  before running ./autogen.sh and building it. This will hard-link 
+  appfinder to the libfrapmenu library and will also install it into 
+  your system.
+
+
+
+Written by Jannis Pohlmann <[EMAIL PROTECTED]>.
+
+$Id$


Property changes on: libfrap/trunk/libfrap/appfinder/README
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Added: libfrap/trunk/libfrap/appfinder/appfinder.c
===================================================================
--- libfrap/trunk/libfrap/appfinder/appfinder.c                         (rev 0)
+++ libfrap/trunk/libfrap/appfinder/appfinder.c 2006-08-01 22:21:26 UTC (rev 
22617)
@@ -0,0 +1,58 @@
+/* $Id$ */
+/* vi:set expandtab sw=2 sts=2: */
+/*-
+ * Copyright (c) 2006 Jannis Pohlmann <[EMAIL PROTECTED]>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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 Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include <gtk/gtk.h>
+
+#include <libxfcegui4/libxfcegui4.h>
+
+#include <libfrapmenu.h>
+
+
+int main (int     argc,
+          gchar **argv)
+{
+  FrapMenu *root;
+
+  /* Initialize the frap menu library */
+  frap_menu_init ();
+
+  /* Get a pointer to the root menu */
+  root = frap_menu_get_root ();
+
+  /* Print root menu name (just temporarily here for testing) */
+  g_debug ("Root menu name: %s", frap_menu_get_name (root));
+
+  /* Drop reference on the root menu */
+  g_object_unref (root);
+
+  /* Shutdown the frap menu library */
+  frap_menu_shutdown ();
+
+  return EXIT_SUCCESS;
+}


Property changes on: libfrap/trunk/libfrap/appfinder/appfinder.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: libfrap/trunk/libfrap/menu/Makefile.am
===================================================================
--- libfrap/trunk/libfrap/menu/Makefile.am      2006-08-01 21:36:48 UTC (rev 
22616)
+++ libfrap/trunk/libfrap/menu/Makefile.am      2006-08-01 22:21:26 UTC (rev 
22617)
@@ -15,14 +15,17 @@
        $(GLIB_CFLAGS)                                                  \
        $(GTHREAD_CFLAGS)                                               \
        $(LIBXFCE4UTIL_CFLAGS)                                          \
-       -DLIBFRAPMENU_COMPILATION
+       -DLIBFRAPMENU_COMPILATION                                       \
+       -DG_LOG_DOMAIN=\"FrapMenu\"
        
 LIBS =                                                                         
\
        $(GLIB_LIBS)                                                    \
        $(GTHREAD_LIBS)                                                 \
        $(LIBXFCE4UTIL_LIBS)
 
+
 EXTRA_DIST =                                                           \
-       README
+       README                                                          \
+       STATUS
 
 # vi:set ts=8 sw=8 noet ai nocindent syntax=automake:

Modified: libfrap/trunk/libfrap/menu/README
===================================================================
--- libfrap/trunk/libfrap/menu/README   2006-08-01 21:36:48 UTC (rev 22616)
+++ libfrap/trunk/libfrap/menu/README   2006-08-01 22:21:26 UTC (rev 22617)
@@ -1,8 +1,46 @@
 FrapMenu
 ========
 
-TODO Add documentation here.
+   I. Module information
+  II. How to use this module
 
+
+
+I. Module information
+=====================
+
+  libfrapmenu is an implementation of the XDG menu specification which
+  can be found on
+
+    http://standards.freedesktop.org/menu-spec/latest/
+
+  This specification contains rules for searching, parsing, merging and 
+  displaying menu files. As a side-effect it implies an application
+  desktop entry database which can be used by other programs such as
+  file managers to determine applications for certain MIME types.
+
+  libfrapmenu consists (or better: will consist) of a GObject class 
+  structure providing all necessary features for displaying menus and 
+  querying the MIME database.
+
+
+  i. Dependencies
+  ===============
+  
+    libfrapmenu depends on the following libraries and tools:
+      
+      GLib/GObject >= 2.x
+      libxfce4util >= 4.3.90.2
+
+
+
+II. How to use this module
+==========================
+
+  TODO: Add update-from-frap.sh code snippet and linking information 
+  here.
+
+
 Written by Jannis Pohlmann <[EMAIL PROTECTED]>.
 
 $Id$


Property changes on: libfrap/trunk/libfrap/menu/README
___________________________________________________________________
Name: svn:keywords
   - Author Date Id Rev
   + Id Author Date Revision

Added: libfrap/trunk/libfrap/menu/STATUS
===================================================================
--- libfrap/trunk/libfrap/menu/STATUS                           (rev 0)
+++ libfrap/trunk/libfrap/menu/STATUS   2006-08-01 22:21:26 UTC (rev 22617)
@@ -0,0 +1,124 @@
+XDG menu specificatiom implementation status
+=======================================================================
+
+   I. Menu file elements
+  II. Filesystem monitoring
+ III. UI interaction
+
+
+
+I. Menu file elements
+=====================
+
+  [x] <Menu>                    
+
+  [x] <AppDir>                 
+
+  [x] <DefaultAppDirs>
+
+  [x] <DirectoryDir>
+
+  [x] <DefaultDirectoryDirs>
+
+  [-] <Name>
+        The <Name> is parsed and implemented as a property of XfceMenu
+        but there are no functions yet to parse menu paths, such as
+        "/Applications/Graphics".
+
+  [x] <Directory>
+
+  [x] <OnlyUnallocated> and <NotOnlyUnallocated>
+  
+  [x] <Deleted> and <NotDeleted>
+
+  [ ] <Include> 
+
+        TODO: Recursively load elements (using a stack).
+
+        Recursion scheme (only recurse on and/or/not elements):
+
+           and|or|not
+             and|or|not
+               and|or|not
+                 ...
+             category|filename
+           category|filename
+
+  [ ] <Exclude>
+
+  [ ] <Filename>
+
+  [ ] <Category>
+
+  [ ] <All>
+
+  [ ] <And>
+
+  [ ] <Or>
+
+  [ ] <Not>
+
+  [ ] <MergeFile>
+
+  [ ] <MergeDir>
+
+  [ ] <DefaultMergeDirs>
+
+  [-] <LegacyDir>
+      
+        <LegacyDir> elements are parsed into a string list, but there is
+        no further parsing or merging performed afterwards - not yet.
+
+  [-] <DefaultLegacyDirs>
+    
+        See <LegacyDir>
+
+  [-] <KDELegacyDirs>
+
+        See <LegacyDir>
+
+  [ ] <Move>
+
+  [ ] <Old>
+
+  [ ] <New>
+
+  [ ] <Layout>
+
+  [ ] <DefaultLayout>
+
+  [ ] <Menuname>
+
+  [ ] <Separator>
+
+  [ ] <Merge>
+
+
+
+II. Filesystem monitoring
+=========================
+
+  With a proper GObject structure for all classes (XfceMenu, 
+  XfceMenuDirectory, XfceMenuItem etc.) reloading objects independently
+  of each other should be no problem.
+
+  The only question is how monitoring should be done. Perhaps we can 
+  copy parts of ThunarVFS for this (as using ThunarVFS would only be 
+  possible if Thunar wouldn't use libxfce4menu).
+
+  So, unless there is a better method, FAM/Gamin would be used for 
+  monitoring files and directories.
+
+
+
+III. UI interaction
+===================
+
+  Using GObject signals it should be easy to connect to menus and
+  menu items in order to update the related widgets.
+
+
+
+Written by Jannis Pohlmann <[EMAIL PROTECTED]>.
+
+$Id$


Property changes on: libfrap/trunk/libfrap/menu/STATUS
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: libfrap/trunk/libfrap/menu/frap-menu.c
===================================================================
--- libfrap/trunk/libfrap/menu/frap-menu.c      2006-08-01 21:36:48 UTC (rev 
22616)
+++ libfrap/trunk/libfrap/menu/frap-menu.c      2006-08-01 22:21:26 UTC (rev 
22617)
@@ -488,11 +488,22 @@
 }
 
 
-
+/**
+ * frap_menu_get_root:
+ *
+ * Returns a pointer to the system root menu. If the root menu is not in memory
+ * already, it is loaded from disk, which may take some time as it involves
+ * parsing and merging a lot of files. So if you call this function from a GUI
+ * program it should be done in a way that won't block the user interface (e.g.
+ * by using a worker thread).
+ * The returned pointer needs to be unref'd when it is not used anymore.
+ *
+ * Return value: Pointer to the system root menu. This pointer needs to be
+ *               unref'd later.
+ **/
 FrapMenu*
 frap_menu_get_root (void)
 {
-  /* TODO how would this need to be free'd later? */
   static FrapMenu *root_menu = NULL;
 
   if (G_UNLIKELY (root_menu == NULL))

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to