SF.net SVN: geany:[4035] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Tue Jul 28 11:35:34 UTC 2009
Revision: 4035
http://geany.svn.sourceforge.net/geany/?rev=4035&view=rev
Author: ntrel
Date: 2009-07-28 11:35:33 +0000 (Tue, 28 Jul 2009)
Log Message:
-----------
Move plugin_* utility functions to pluginutils.c.
Add pluginprivate.h.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/Makefile.am
trunk/src/makefile.win32
trunk/src/plugindata.h
trunk/src/plugins.c
trunk/wscript
Added Paths:
-----------
trunk/src/pluginprivate.h
trunk/src/pluginutils.c
trunk/src/pluginutils.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-07-28 02:03:08 UTC (rev 4034)
+++ trunk/ChangeLog 2009-07-28 11:35:33 UTC (rev 4035)
@@ -1,3 +1,12 @@
+2009-07-28 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/pluginprivate.h, src/makefile.win32, src/plugindata.h,
+ src/pluginutils.c, src/plugins.c, src/pluginutils.h,
+ src/Makefile.am, ChangeLog, wscript:
+ Move plugin_* utility functions to pluginutils.c.
+ Add pluginprivate.h.
+
+
2009-07-25 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* doc/geany.txt, doc/geany.html:
@@ -7,7 +16,7 @@
2009-07-25 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
- * po/LINGUAS, po/sl_SI.po, THANKS, src/about.c:
+ * po/LINGUAS, po/sl_SI.po, THANKS, src/about.c:
Added a first Slovenian translation. Thanks to Joze Klepec.
Modified: trunk/src/Makefile.am
===================================================================
--- trunk/src/Makefile.am 2009-07-28 02:03:08 UTC (rev 4034)
+++ trunk/src/Makefile.am 2009-07-28 11:35:33 UTC (rev 4035)
@@ -29,7 +29,9 @@
msgwindow.c msgwindow.h \
navqueue.c navqueue.h \
notebook.c notebook.h \
+ pluginprivate.h \
plugins.c plugins.h \
+ pluginutils.c pluginutils.h \
prefix.c prefix.h \
prefs.c prefs.h \
printing.c printing.h \
Modified: trunk/src/makefile.win32
===================================================================
--- trunk/src/makefile.win32 2009-07-28 02:03:08 UTC (rev 4034)
+++ trunk/src/makefile.win32 2009-07-28 11:35:33 UTC (rev 4035)
@@ -62,7 +62,8 @@
OBJS = about.o build.o callbacks.o dialogs.o document.o editor.o encodings.o filetypes.o \
geanyentryaction.o geanymenubuttonaction.o geanyobject.o geanywraplabel.o highlighting.o \
interface.o keybindings.o keyfile.o \
- log.o main.o msgwindow.o navqueue.o notebook.o plugins.o prefs.o printing.o project.o \
+ log.o main.o msgwindow.o navqueue.o notebook.o plugins.o pluginutils.o \
+ prefs.o printing.o project.o \
queue.o sciwrappers.o search.o socket.o stash.o \
symbols.o templates.o toolbar.o tools.o treeviews.o \
ui_utils.o utils.o win32.o
Modified: trunk/src/plugindata.h
===================================================================
--- trunk/src/plugindata.h 2009-07-28 02:03:08 UTC (rev 4034)
+++ trunk/src/plugindata.h 2009-07-28 11:35:33 UTC (rev 4035)
@@ -90,7 +90,8 @@
PluginInfo;
-/** Basic information for the plugin and identification. */
+/** Basic information for the plugin and identification.
+ * @see geany_plugin. */
typedef struct GeanyPlugin
{
PluginInfo *info; /**< Fields set in plugin_set_info(). */
Added: trunk/src/pluginprivate.h
===================================================================
--- trunk/src/pluginprivate.h (rev 0)
+++ trunk/src/pluginprivate.h 2009-07-28 11:35:33 UTC (rev 4035)
@@ -0,0 +1,39 @@
+/*
+ * pluginprivate.h - this file is part of Geany, a fast and lightweight IDE
+ *
+ * Copyright 2009 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ * Copyright 2009 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * $Id$
+ */
+
+
+#ifndef PLUGINPRIVATE_H
+#define PLUGINPRIVATE_H
+
+#include "ui_utils.h"
+
+typedef struct GeanyPluginPrivate
+{
+ GeanyAutoSeparator toolbar_separator;
+ gboolean resident;
+}
+GeanyPluginPrivate;
+
+
+#endif /* PLUGINPRIVATE_H */
Property changes on: trunk/src/pluginprivate.h
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/src/plugins.c
===================================================================
--- trunk/src/plugins.c 2009-07-28 02:03:08 UTC (rev 4034)
+++ trunk/src/plugins.c 2009-07-28 11:35:33 UTC (rev 4035)
@@ -23,8 +23,6 @@
*/
/* Code to manage, load and unload plugins. */
-/** @file plugins.c
- * Plugin utility functions. */
#include "geany.h"
@@ -61,17 +59,10 @@
#include "stash.h"
#include "keyfile.h"
#include "win32.h"
+#include "pluginutils.h"
+#include "pluginprivate.h"
-
-typedef struct GeanyPluginPrivate
-{
- GeanyAutoSeparator toolbar_separator;
- gboolean resident;
-}
-GeanyPluginPrivate;
-
-
typedef struct Plugin
{
GModule *module;
@@ -79,7 +70,7 @@
PluginInfo info; /* plugin name, description, etc */
PluginFields fields;
GeanyPlugin public; /* fields the plugin can read */
- GeanyPluginPrivate priv; /* GeanyPlugin type private data */
+ GeanyPluginPrivate priv; /* GeanyPlugin type private data, same as (*public.priv) */
gulong *signal_ids; /* signal IDs to disconnect when unloading */
gsize signal_ids_len;
@@ -106,10 +97,7 @@
static void pm_show_dialog(GtkMenuItem *menuitem, gpointer user_data);
-void plugin_add_toolbar_item(GeanyPlugin *plugin, GtkToolItem *item);
-void plugin_module_make_resident(GeanyPlugin *plugin);
-
static PluginFuncs plugin_funcs = {
&plugin_add_toolbar_item,
&plugin_module_make_resident
@@ -1307,62 +1295,4 @@
}
-/** Insert a toolbar item before the Quit button, or after the previous plugin toolbar item.
- * A separator is added on the first call to this function, and will be shown when @a item is
- * shown; hidden when @a item is hidden.
- * @note You should still destroy @a item yourself, usually in @ref plugin_cleanup().
- * @param plugin Must be @ref geany_plugin.
- * @param item The item to add. */
-void plugin_add_toolbar_item(GeanyPlugin *plugin, GtkToolItem *item)
-{
- GtkToolbar *toolbar = GTK_TOOLBAR(main_widgets.toolbar);
- gint pos;
- GeanyAutoSeparator *autosep;
-
- g_return_if_fail(plugin);
- autosep = &plugin->priv->toolbar_separator;
-
- if (!autosep->widget)
- {
- GtkToolItem *sep;
-
- pos = toolbar_get_insert_position();
-
- sep = gtk_separator_tool_item_new();
- gtk_toolbar_insert(toolbar, sep, pos);
- autosep->widget = GTK_WIDGET(sep);
-
- gtk_toolbar_insert(toolbar, item, pos + 1);
-
- toolbar_item_ref(sep);
- toolbar_item_ref(item);
- }
- else
- {
- pos = gtk_toolbar_get_item_index(toolbar, GTK_TOOL_ITEM(autosep->widget));
- g_return_if_fail(pos >= 0);
- gtk_toolbar_insert(toolbar, item, pos);
- toolbar_item_ref(item);
- }
- /* hide the separator widget if there are no toolbar items showing for the plugin */
- ui_auto_separator_add_ref(autosep, GTK_WIDGET(item));
-}
-
-
-/** Ensures that a plugin's module (*.so) will never be unloaded.
- * This is necessary if you register new GTypes in your plugin, e.g. when using own classes
- * using the GObject system.
- *
- * @param plugin Must be @ref geany_plugin.
- *
- * @since 0.16
- */
-void plugin_module_make_resident(GeanyPlugin *plugin)
-{
- g_return_if_fail(plugin);
-
- plugin->priv->resident = TRUE;
-}
-
-
#endif
Added: trunk/src/pluginutils.c
===================================================================
--- trunk/src/pluginutils.c (rev 0)
+++ trunk/src/pluginutils.c 2009-07-28 11:35:33 UTC (rev 4035)
@@ -0,0 +1,94 @@
+/*
+ * pluginutils.c - this file is part of Geany, a fast and lightweight IDE
+ *
+ * Copyright 2009 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ * Copyright 2009 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * $Id$
+ */
+
+/** @file pluginutils.c
+ * Plugin utility functions.
+ * These functions all take the @ref geany_plugin symbol as their first argument. */
+
+#include "geany.h"
+#include "pluginutils.h"
+#include "pluginprivate.h"
+
+#include "ui_utils.h"
+#include "toolbar.h"
+
+
+/** Insert a toolbar item before the Quit button, or after the previous plugin toolbar item.
+ * A separator is added on the first call to this function, and will be shown when @a item is
+ * shown; hidden when @a item is hidden.
+ * @note You should still destroy @a item yourself, usually in @ref plugin_cleanup().
+ * @param plugin Must be @ref geany_plugin.
+ * @param item The item to add. */
+void plugin_add_toolbar_item(GeanyPlugin *plugin, GtkToolItem *item)
+{
+ GtkToolbar *toolbar = GTK_TOOLBAR(main_widgets.toolbar);
+ gint pos;
+ GeanyAutoSeparator *autosep;
+
+ g_return_if_fail(plugin);
+ autosep = &plugin->priv->toolbar_separator;
+
+ if (!autosep->widget)
+ {
+ GtkToolItem *sep;
+
+ pos = toolbar_get_insert_position();
+
+ sep = gtk_separator_tool_item_new();
+ gtk_toolbar_insert(toolbar, sep, pos);
+ autosep->widget = GTK_WIDGET(sep);
+
+ gtk_toolbar_insert(toolbar, item, pos + 1);
+
+ toolbar_item_ref(sep);
+ toolbar_item_ref(item);
+ }
+ else
+ {
+ pos = gtk_toolbar_get_item_index(toolbar, GTK_TOOL_ITEM(autosep->widget));
+ g_return_if_fail(pos >= 0);
+ gtk_toolbar_insert(toolbar, item, pos);
+ toolbar_item_ref(item);
+ }
+ /* hide the separator widget if there are no toolbar items showing for the plugin */
+ ui_auto_separator_add_ref(autosep, GTK_WIDGET(item));
+}
+
+
+/** Ensures that a plugin's module (*.so) will never be unloaded.
+ * This is necessary if you register new GTypes in your plugin, e.g. when using own classes
+ * using the GObject system.
+ *
+ * @param plugin Must be @ref geany_plugin.
+ *
+ * @since 0.16
+ */
+void plugin_module_make_resident(GeanyPlugin *plugin)
+{
+ g_return_if_fail(plugin);
+
+ plugin->priv->resident = TRUE;
+}
+
+
Property changes on: trunk/src/pluginutils.c
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/src/pluginutils.h
===================================================================
--- trunk/src/pluginutils.h (rev 0)
+++ trunk/src/pluginutils.h 2009-07-28 11:35:33 UTC (rev 4035)
@@ -0,0 +1,35 @@
+/*
+ * pluginutils.h - this file is part of Geany, a fast and lightweight IDE
+ *
+ * Copyright 2009 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ * Copyright 2009 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * $Id$
+ */
+
+
+#ifndef PLUGINUTILS_H
+#define PLUGINUTILS_H
+
+#include "plugindata.h"
+
+void plugin_add_toolbar_item(GeanyPlugin *plugin, GtkToolItem *item);
+
+void plugin_module_make_resident(GeanyPlugin *plugin);
+
+#endif /* PLUGINUTILS_H */
Property changes on: trunk/src/pluginutils.h
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/wscript
===================================================================
--- trunk/wscript 2009-07-28 02:03:08 UTC (rev 4034)
+++ trunk/wscript 2009-07-28 11:35:33 UTC (rev 4035)
@@ -95,7 +95,7 @@
'src/geanymenubuttonaction.c', 'src/geanyobject.c', 'src/geanywraplabel.c',
'src/highlighting.c', 'src/interface.c', 'src/keybindings.c',
'src/keyfile.c', 'src/log.c', 'src/main.c', 'src/msgwindow.c', 'src/navqueue.c', 'src/notebook.c',
- 'src/plugins.c', 'src/prefix.c', 'src/prefs.c', 'src/printing.c', 'src/project.c',
+ 'src/plugins.c', 'pluginutils.c', 'src/prefix.c', 'src/prefs.c', 'src/printing.c', 'src/project.c',
'src/queue.c', 'src/sciwrappers.c', 'src/search.c', 'src/socket.c', 'src/stash.c',
'src/symbols.c',
'src/templates.c', 'src/toolbar.c', 'src/tools.c', 'src/treeviews.c',
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list