static void gimp_dispose (GObject *object) { Gimp *gimp = GIMP (object); if (gimp->be_verbose) g_print ("EXIT: %s\n", G_STRFUNC); if (gimp->brush_factory) gimp_data_factory_data_free (gimp->brush_factory); if (gimp->dynamics_factory) gimp_data_factory_data_free (gimp->dynamics_factory); if (gimp->mybrush_factory) gimp_data_factory_data_free (gimp->mybrush_factory); if (gimp->pattern_factory) gimp_data_factory_data_free (gimp->pattern_factory); if (gimp->gradient_factory) gimp_data_factory_data_free (gimp->gradient_factory); if (gimp->palette_factory) gimp_data_factory_data_free (gimp->palette_factory); if (gimp->tool_preset_factory) gimp_data_factory_data_free (gimp->tool_preset_factory); gimp_filter_history_clear (gimp); G_OBJECT_CLASS (parent_class)->dispose (object); }
static void gimp_constructed (GObject *object) { Gimp *gimp = GIMP (object); G_OBJECT_CLASS (parent_class)->constructed (object); gimp_units_init (gimp); gimp_modules_init (gimp); gimp->plug_in_manager = gimp_plug_in_manager_new (gimp); gimp->pdb = gimp_pdb_new (gimp); xcf_init (gimp); gimp->documents = gimp_document_list_new (gimp); }
static void gimp_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { Gimp *gimp = GIMP (object); switch (property_id) { case PROP_VERBOSE: g_value_set_boolean (value, gimp->be_verbose); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
void gimp_seamless_clone_tool_register (GimpToolRegisterCallback callback, gpointer data) { /* we should not know that "data" is a Gimp*, but what the heck this * is experimental playground stuff */ if (GIMP_GUI_CONFIG (GIMP (data)->config)->playground_seamless_clone_tool) (* callback) (GIMP_TYPE_SEAMLESS_CLONE_TOOL, GIMP_TYPE_SEAMLESS_CLONE_OPTIONS, gimp_seamless_clone_options_gui, 0, "gimp-seamless-clone-tool", _("Seamless Clone"), _("Seamless Clone: Seamlessly paste one image into another"), N_("_Seamless Clone"), NULL, NULL, GIMP_HELP_TOOL_SEAMLESS_CLONE, GIMP_ICON_TOOL_SEAMLESS_CLONE, data); }
void gimp_n_point_deformation_tool_register (GimpToolRegisterCallback callback, gpointer data) { /* we should not know that "data" is a Gimp*, but what the heck this * is experimental playground stuff */ if (GIMP_GUI_CONFIG (GIMP (data)->config)->playground_npd_tool) (* callback) (GIMP_TYPE_N_POINT_DEFORMATION_TOOL, GIMP_TYPE_N_POINT_DEFORMATION_OPTIONS, gimp_n_point_deformation_options_gui, 0, "gimp-n-point-deformation-tool", _("N-Point Deformation"), _("N-Point Deformation Tool: Rubber-like deformation of " "image using points"), N_("_N-Point Deformation"), "<shift>N", NULL, GIMP_HELP_TOOL_N_POINT_DEFORMATION, GIMP_STOCK_TOOL_N_POINT_DEFORMATION, data); }
void gimp_mybrush_tool_register (GimpToolRegisterCallback callback, gpointer data) { /* we should not know that "data" is a Gimp*, but what the heck this * is experimental playground stuff */ if (GIMP_GUI_CONFIG (GIMP (data)->config)->playground_mybrush_tool) (* callback) (GIMP_TYPE_MYBRUSH_TOOL, GIMP_TYPE_MYBRUSH_OPTIONS, gimp_mybrush_options_gui, GIMP_CONTEXT_FOREGROUND_MASK | GIMP_CONTEXT_BACKGROUND_MASK | GIMP_CONTEXT_OPACITY_MASK | GIMP_CONTEXT_PAINT_MODE_MASK, "gimp-mybrush-tool", _("MyPaint Brush"), _("MyPaint Brush Tool: Use MyPaint brushes in GIMP"), N_("M_yPaint Brush"), "Y", NULL, GIMP_HELP_TOOL_MYBRUSH, GIMP_STOCK_TOOL_MYBRUSH, data); }
static gint64 gimp_get_memsize (GimpObject *object, gint64 *gui_size) { Gimp *gimp = GIMP (object); gint64 memsize = 0; memsize += gimp_g_list_get_memsize (gimp->user_units, 0 /* FIXME */); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->parasites), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->paint_info_list), gui_size); memsize += gimp_g_object_get_memsize (G_OBJECT (gimp->module_db)); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->plug_in_manager), gui_size); memsize += gimp_g_list_get_memsize_foreach (gimp->filter_history, (GimpMemsizeFunc) gimp_object_get_memsize, gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->image_table), 0); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->item_table), 0); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->displays), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->global_buffer), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->named_buffers), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->fonts), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->brush_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->dynamics_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->mybrush_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->pattern_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->gradient_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->palette_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->tool_preset_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->tag_cache), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->pdb), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->tool_info_list), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->standard_tool_info), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->documents), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->templates), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->image_new_last_template), gui_size); memsize += gimp_g_list_get_memsize (gimp->context_list, 0); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->default_context), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->user_context), gui_size); return memsize + GIMP_OBJECT_CLASS (parent_class)->get_memsize (object, gui_size); }
static void gimp_finalize (GObject *object) { Gimp *gimp = GIMP (object); GList *standards = NULL; if (gimp->be_verbose) g_print ("EXIT: %s\n", G_STRFUNC); standards = g_list_prepend (standards, gimp_brush_get_standard (gimp->user_context)); standards = g_list_prepend (standards, gimp_dynamics_get_standard (gimp->user_context)); standards = g_list_prepend (standards, gimp_mybrush_get_standard (gimp->user_context)); standards = g_list_prepend (standards, gimp_pattern_get_standard (gimp->user_context)); standards = g_list_prepend (standards, gimp_gradient_get_standard (gimp->user_context)); standards = g_list_prepend (standards, gimp_palette_get_standard (gimp->user_context)); gimp_contexts_exit (gimp); if (gimp->image_new_last_template) { g_object_unref (gimp->image_new_last_template); gimp->image_new_last_template = NULL; } if (gimp->templates) { g_object_unref (gimp->templates); gimp->templates = NULL; } if (gimp->documents) { g_object_unref (gimp->documents); gimp->documents = NULL; } gimp_tool_info_set_standard (gimp, NULL); if (gimp->tool_info_list) { gimp_container_foreach (gimp->tool_info_list, (GFunc) g_object_run_dispose, NULL); g_object_unref (gimp->tool_info_list); gimp->tool_info_list = NULL; } xcf_exit (gimp); if (gimp->pdb) { g_object_unref (gimp->pdb); gimp->pdb = NULL; } if (gimp->brush_factory) { g_object_unref (gimp->brush_factory); gimp->brush_factory = NULL; } if (gimp->dynamics_factory) { g_object_unref (gimp->dynamics_factory); gimp->dynamics_factory = NULL; } if (gimp->mybrush_factory) { g_object_unref (gimp->mybrush_factory); gimp->mybrush_factory = NULL; } if (gimp->pattern_factory) { g_object_unref (gimp->pattern_factory); gimp->pattern_factory = NULL; } if (gimp->gradient_factory) { g_object_unref (gimp->gradient_factory); gimp->gradient_factory = NULL; } if (gimp->palette_factory) { g_object_unref (gimp->palette_factory); gimp->palette_factory = NULL; } if (gimp->tool_preset_factory) { g_object_unref (gimp->tool_preset_factory); gimp->tool_preset_factory = NULL; } if (gimp->tag_cache) { g_object_unref (gimp->tag_cache); gimp->tag_cache = NULL; } if (gimp->fonts) { g_object_unref (gimp->fonts); gimp->fonts = NULL; } if (gimp->named_buffers) { g_object_unref (gimp->named_buffers); gimp->named_buffers = NULL; } if (gimp->global_buffer) { g_object_unref (gimp->global_buffer); gimp->global_buffer = NULL; } if (gimp->displays) { g_object_unref (gimp->displays); gimp->displays = NULL; } if (gimp->item_table) { g_object_unref (gimp->item_table); gimp->item_table = NULL; } if (gimp->image_table) { g_object_unref (gimp->image_table); gimp->image_table = NULL; } if (gimp->images) { g_object_unref (gimp->images); gimp->images = NULL; } if (gimp->plug_in_manager) { g_object_unref (gimp->plug_in_manager); gimp->plug_in_manager = NULL; } if (gimp->module_db) gimp_modules_exit (gimp); gimp_paint_exit (gimp); if (gimp->parasites) { g_object_unref (gimp->parasites); gimp->parasites = NULL; } if (gimp->edit_config) { g_object_unref (gimp->edit_config); gimp->edit_config = NULL; } if (gimp->default_folder) { g_object_unref (gimp->default_folder); gimp->default_folder = NULL; } if (gimp->session_name) { g_free (gimp->session_name); gimp->session_name = NULL; } if (gimp->context_list) { GList *list; g_warning ("%s: list of contexts not empty upon exit (%d contexts left)\n", G_STRFUNC, g_list_length (gimp->context_list)); for (list = gimp->context_list; list; list = g_list_next (list)) g_printerr ("stale context: %s\n", gimp_object_get_name (list->data)); g_list_free (gimp->context_list); gimp->context_list = NULL; } g_list_foreach (standards, (GFunc) g_object_unref, NULL); g_list_free (standards); gimp_units_exit (gimp); G_OBJECT_CLASS (parent_class)->finalize (object); }