void tool_manager_exit (Gimp *gimp) { GimpToolManager *tool_manager; GimpContext *user_context; g_return_if_fail (GIMP_IS_GIMP (gimp)); tool_manager = tool_manager_get (gimp); tool_manager_set (gimp, NULL); user_context = gimp_get_user_context (gimp); g_signal_handlers_disconnect_by_func (user_context, tool_manager_tool_changed, tool_manager); g_signal_handlers_disconnect_by_func (user_context, tool_manager_preset_changed, tool_manager); gimp_container_remove_handler (gimp->images, tool_manager->image_clean_handler_id); gimp_container_remove_handler (gimp->images, tool_manager->image_dirty_handler_id); if (tool_manager->active_tool) g_object_unref (tool_manager->active_tool); g_slice_free (GimpToolManager, tool_manager); }
void tool_manager_init (Gimp *gimp) { GimpToolManager *tool_manager; GimpContext *user_context; g_return_if_fail (GIMP_IS_GIMP (gimp)); tool_manager = g_slice_new0 (GimpToolManager); tool_manager->active_tool = NULL; tool_manager->tool_stack = NULL; tool_manager->image_clean_handler_id = 0; tool_manager->image_dirty_handler_id = 0; tool_manager_set (gimp, tool_manager); tool_manager->image_clean_handler_id = gimp_container_add_handler (gimp->images, "clean", G_CALLBACK (tool_manager_image_clean_dirty), tool_manager); tool_manager->image_dirty_handler_id = gimp_container_add_handler (gimp->images, "dirty", G_CALLBACK (tool_manager_image_clean_dirty), tool_manager); user_context = gimp_get_user_context (gimp); tool_manager->shared_paint_options = g_object_new (GIMP_TYPE_PAINT_OPTIONS, "gimp", gimp, "name", "tmp", NULL); g_signal_connect (user_context, "tool-changed", G_CALLBACK (tool_manager_tool_changed), tool_manager); g_signal_connect (user_context, "tool-preset-changed", G_CALLBACK (tool_manager_preset_changed), tool_manager); }
void tool_manager_init (Gimp *gimp) { GimpToolManager *tool_manager; GimpContext *user_context; g_return_if_fail (GIMP_IS_GIMP (gimp)); tool_manager = g_slice_new0 (GimpToolManager); tool_manager->active_tool = NULL; tool_manager->tool_stack = NULL; tool_manager->image_clean_handler_id = 0; tool_manager->image_dirty_handler_id = 0; tool_manager_set (gimp, tool_manager); tool_manager->image_clean_handler_id = gimp_container_add_handler (gimp->images, "clean", G_CALLBACK (tool_manager_image_clean_dirty), tool_manager); tool_manager->image_dirty_handler_id = gimp_container_add_handler (gimp->images, "dirty", G_CALLBACK (tool_manager_image_clean_dirty), tool_manager); user_context = gimp_get_user_context (gimp); g_signal_connect (user_context, "tool-changed", G_CALLBACK (tool_manager_tool_changed), tool_manager); g_signal_connect (user_context, "tool-preset-changed", G_CALLBACK (tool_manager_preset_changed), tool_manager); }