app/tools/gimptoolmodule.[ch] app/tools/tools-types.h code cleanup, no

2002-02-09  Sven Neumann  <sven@gimp.org>

	* app/tools/gimptoolmodule.[ch]
	* app/tools/tools-types.h
	* app/tools/tools.c: code cleanup, no real changes.
This commit is contained in:
Sven Neumann 2002-02-09 18:51:17 +00:00 committed by Sven Neumann
parent 81f24083d4
commit 00f90747ed
5 changed files with 96 additions and 66 deletions

View File

@ -1,3 +1,9 @@
2002-02-09 Sven Neumann <sven@gimp.org>
* app/tools/gimptoolmodule.[ch]
* app/tools/tools-types.h
* app/tools/tools.c: code cleanup, no real changes.
2002-02-09 Sven Neumann <sven@gimp.org>
* plug-ins/common/gradmap.c: merged fix for bug #70964 from stable

View File

@ -16,53 +16,25 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "config.h"
#include <gtk/gtk.h>
#include "tools-types.h"
#include "core/gimp.h"
#include "gimptoolmodule.h"
static void gimp_tool_module_class_init (GimpToolModuleClass *klass);
static void gimp_tool_module_init (GimpToolModule *tool);
static void gimp_tool_module_class_init (GimpToolModuleClass *klass);
static void gimp_tool_module_init (GimpToolModule *tool);
static gboolean gimp_tool_module_load (GTypeModule *gmodule);
static void gimp_tool_module_unload (GTypeModule *gmodule);
static GTypeModuleClass *parent_class = NULL;
static gboolean
gimp_tool_module_load (GTypeModule *gmodule) {
GimpToolModule *module = GIMP_TOOL_MODULE(gmodule);
g_return_val_if_fail(module, FALSE);
g_return_val_if_fail(module->filename, FALSE);
g_return_val_if_fail(g_module_supported(), FALSE);
module->module = g_module_open(module->filename, G_MODULE_BIND_LAZY);
if (!module)
return FALSE;
if (!g_module_symbol (module->module, "gimp_tool_module_register_tool", (gpointer *) &module->register_tool) ||
!g_module_symbol (module->module, "gimp_tool_module_register_type", (gpointer *) &module->register_type))
{
g_warning (g_module_error());
g_module_close (module->module);
return FALSE;
}
return module->register_type(module);
}
static void
gimp_tool_module_unload (GTypeModule *gmodule) {
GimpToolModule *module = GIMP_TOOL_MODULE(gmodule);
g_return_if_fail(module);
g_return_if_fail(module->module);
g_return_if_fail(g_module_supported());
g_module_close(module->module); /* FIXME: error handling */
module->module=NULL;
}
GType
gimp_tool_module_get_type (void)
{
@ -94,11 +66,12 @@ gimp_tool_module_get_type (void)
static void
gimp_tool_module_class_init (GimpToolModuleClass *klass)
{
GTypeModuleClass *g_type_module_class = G_TYPE_MODULE_CLASS(klass);
GTypeModuleClass *module_class = G_TYPE_MODULE_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
g_type_module_class->load = gimp_tool_module_load;
g_type_module_class->unload = gimp_tool_module_unload;
module_class->load = gimp_tool_module_load;
module_class->unload = gimp_tool_module_unload;
}
static void
@ -109,20 +82,72 @@ gimp_tool_module_init (GimpToolModule *module)
module->register_tool = NULL;
}
static gboolean
gimp_tool_module_load (GTypeModule *gmodule)
{
GimpToolModule *module;
g_return_val_if_fail (G_IS_TYPE_MODULE (gmodule), FALSE);
g_return_val_if_fail (g_module_supported (), FALSE);
module = GIMP_TOOL_MODULE (gmodule);
g_return_val_if_fail (module->filename != NULL, FALSE);
module->module = g_module_open (module->filename, G_MODULE_BIND_LAZY);
if (!module)
return FALSE;
if (!g_module_symbol (module->module, "gimp_tool_module_register_tool",
(gpointer *) &module->register_tool) ||
!g_module_symbol (module->module, "gimp_tool_module_register_type",
(gpointer *) &module->register_type))
{
g_warning (g_module_error());
g_module_close (module->module);
return FALSE;
}
return module->register_type (module);
}
static void
gimp_tool_module_unload (GTypeModule *gmodule)
{
GimpToolModule *module;
g_return_if_fail (G_IS_TYPE_MODULE (gmodule));
g_return_if_fail (g_module_supported ());
module = GIMP_TOOL_MODULE (gmodule);
g_return_if_fail (module->module != NULL);
g_module_close (module->module); /* FIXME: error handling */
module->module = NULL;
}
GimpToolModule *
gimp_tool_module_new (gchar *filename, Gimp *gimp, GimpToolRegisterCallback callback)
gimp_tool_module_new (const gchar *filename,
Gimp *gimp,
GimpToolRegisterCallback callback)
{
GimpToolModule *module = GIMP_TOOL_MODULE(g_object_new(GIMP_TYPE_TOOL_MODULE, NULL));
GimpToolModule *module;
g_return_val_if_fail (filename, NULL);
g_return_val_if_fail (gimp, NULL);
g_return_val_if_fail (callback, NULL);
g_return_val_if_fail (filename != NULL, NULL);
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
g_return_val_if_fail (callback != NULL, NULL);
module->filename = g_strdup(filename);
gimp_tool_module_load(G_TYPE_MODULE(module)); /* FIXME: check for errors! */
module = GIMP_TOOL_MODULE (g_object_new (GIMP_TYPE_TOOL_MODULE, NULL));
module->filename = g_strdup (filename);
/* FIXME: check for errors! */
gimp_tool_module_load (G_TYPE_MODULE (module));
module->register_tool (gimp, callback);
gimp_tool_module_unload(G_TYPE_MODULE(module));
gimp_tool_module_unload (G_TYPE_MODULE (module));
return module;
}

View File

@ -20,11 +20,6 @@
#define __GIMP_TOOL_MODULE_H__
#include <gmodule.h>
#include <glib-object.h>
#include <gtk/gtk.h> /* for tools-types.h. This is truly sick */
#include "config.h"
#include "tools-types.h"
#include "core/gimp.h"
#define GIMP_TYPE_TOOL_MODULE (gimp_tool_module_get_type ())
#define GIMP_TOOL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_TOOL_MODULE, GimpToolModule))
@ -35,7 +30,6 @@
typedef struct _GimpToolModuleClass GimpToolModuleClass;
typedef struct _GimpToolModule GimpToolModule;
struct _GimpToolModule
@ -48,7 +42,7 @@ struct _GimpToolModule
void (* register_tool) (Gimp *gimp,
GimpToolRegisterCallback callback);
gboolean (* register_type) (GTypeModule *module);
gboolean (* register_type) (GimpToolModule *module);
};
@ -59,9 +53,10 @@ struct _GimpToolModuleClass
};
GType gimp_tool_module_get_type (void) G_GNUC_CONST;
GimpToolModule *gimp_tool_module_new (gchar *filename,
Gimp *gimp,
GimpToolRegisterCallback callback);
GType gimp_tool_module_get_type (void) G_GNUC_CONST;
GimpToolModule *gimp_tool_module_new (const gchar *filename,
Gimp *gimp,
GimpToolRegisterCallback callback);
#endif /* __GIMP_TOOL_MODULE_H__ */

View File

@ -26,6 +26,7 @@
/* tools */
typedef struct _GimpTool GimpTool;
typedef struct _GimpToolModule GimpToolModule;
typedef struct _GimpPaintTool GimpPaintTool;
typedef struct _GimpDrawTool GimpDrawTool;
typedef struct _GimpPathTool GimpPathTool;

View File

@ -71,10 +71,15 @@
#include "gimptexttool.h"
#include "gimptoolmodule.h"
Gimp *thatgimp;
void
cheesey_module_loading_hack (const gchar *filename,
gpointer loader_data)
{
Gimp *gimp = GIMP (loader_data);
void cheesey_module_loading_hack(gchar *filename) {
GimpToolModule *m = gimp_tool_module_new(filename, thatgimp, tool_manager_register_tool);
gimp_tool_module_new (filename,
gimp,
tool_manager_register_tool);
}
void
@ -144,8 +149,6 @@ tools_init (Gimp *gimp)
register_funcs[i] (gimp, tool_manager_register_tool);
}
thatgimp=gimp;
if (g_module_supported ())
gimp_datafiles_read_directories (gimp->config->tool_plug_in_path,
0 /* no flags */,