mirror of https://github.com/GNOME/gimp.git
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:
parent
81f24083d4
commit
00f90747ed
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */,
|
||||
|
|
Loading…
Reference in New Issue