GimpPaintOptions * gimp_paint_options_new (GimpPaintInfo *paint_info) { GimpPaintOptions *options; g_return_val_if_fail (GIMP_IS_PAINT_INFO (paint_info), NULL); options = g_object_new (paint_info->paint_options_type, "gimp", paint_info->gimp, "name", gimp_object_get_name (paint_info), "paint-info", paint_info, NULL); return options; }
void gimp_paint_info_set_standard (Gimp *gimp, GimpPaintInfo *paint_info) { g_return_if_fail (GIMP_IS_GIMP (gimp)); g_return_if_fail (! paint_info || GIMP_IS_PAINT_INFO (paint_info)); if (paint_info != gimp->standard_paint_info) { if (gimp->standard_paint_info) g_object_unref (gimp->standard_paint_info); gimp->standard_paint_info = paint_info; if (gimp->standard_paint_info) g_object_ref (gimp->standard_paint_info); } }
static void gimp_paint_tool_constructed (GObject *object) { GimpTool *tool = GIMP_TOOL (object); GimpPaintTool *paint_tool = GIMP_PAINT_TOOL (object); GimpPaintOptions *options = GIMP_PAINT_TOOL_GET_OPTIONS (tool); GimpDisplayConfig *display_config; GimpPaintInfo *paint_info; G_OBJECT_CLASS (parent_class)->constructed (object); g_assert (GIMP_IS_TOOL_INFO (tool->tool_info)); g_assert (GIMP_IS_PAINT_INFO (tool->tool_info->paint_info)); display_config = GIMP_DISPLAY_CONFIG (tool->tool_info->gimp->config); paint_info = tool->tool_info->paint_info; g_assert (g_type_is_a (paint_info->paint_type, GIMP_TYPE_PAINT_CORE)); paint_tool->core = g_object_new (paint_info->paint_type, "undo-desc", paint_info->blurb, NULL); g_signal_connect_object (options, "notify::hard", G_CALLBACK (gimp_paint_tool_hard_notify), tool, 0); gimp_paint_tool_hard_notify (options, NULL, tool); paint_tool->show_cursor = display_config->show_paint_tool_cursor; paint_tool->draw_brush = display_config->show_brush_outline; g_signal_connect_object (display_config, "notify::show-paint-tool-cursor", G_CALLBACK (gimp_paint_tool_cursor_notify), paint_tool, 0); g_signal_connect_object (display_config, "notify::show-brush-outline", G_CALLBACK (gimp_paint_tool_cursor_notify), paint_tool, 0); }
GimpToolInfo * gimp_tool_info_new (Gimp *gimp, GType tool_type, GType tool_options_type, GimpContextPropMask context_props, const gchar *identifier, const gchar *blurb, const gchar *help, const gchar *menu_label, const gchar *menu_accel, const gchar *help_domain, const gchar *help_id, const gchar *paint_core_name, const gchar *icon_name) { GimpPaintInfo *paint_info; GimpToolInfo *tool_info; g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL); g_return_val_if_fail (identifier != NULL, NULL); g_return_val_if_fail (blurb != NULL, NULL); g_return_val_if_fail (help != NULL, NULL); g_return_val_if_fail (menu_label != NULL, NULL); g_return_val_if_fail (help_id != NULL, NULL); g_return_val_if_fail (paint_core_name != NULL, NULL); g_return_val_if_fail (icon_name != NULL, NULL); paint_info = (GimpPaintInfo *) gimp_container_get_child_by_name (gimp->paint_info_list, paint_core_name); g_return_val_if_fail (GIMP_IS_PAINT_INFO (paint_info), NULL); tool_info = g_object_new (GIMP_TYPE_TOOL_INFO, "name", identifier, "icon-name", icon_name, NULL); tool_info->gimp = gimp; tool_info->tool_type = tool_type; tool_info->tool_options_type = tool_options_type; tool_info->context_props = context_props; tool_info->blurb = g_strdup (blurb); tool_info->help = g_strdup (help); tool_info->menu_label = g_strdup (menu_label); tool_info->menu_accel = g_strdup (menu_accel); tool_info->help_domain = g_strdup (help_domain); tool_info->help_id = g_strdup (help_id); tool_info->paint_info = paint_info; if (tool_info->tool_options_type == paint_info->paint_options_type) { tool_info->tool_options = g_object_ref (paint_info->paint_options); } else { tool_info->tool_options = g_object_new (tool_info->tool_options_type, "gimp", gimp, "name", identifier, NULL); } g_object_set (tool_info->tool_options, "tool", tool_info, "tool-info", tool_info, NULL); if (tool_info->tool_options_type != GIMP_TYPE_TOOL_OPTIONS) { GimpContainer *presets; presets = gimp_data_factory_get_container (gimp->tool_preset_factory); tool_info->presets = gimp_filtered_container_new (presets, gimp_tool_info_filter_preset, tool_info); } return tool_info; }