本文整理汇总了C++中GIMP_VIEWABLE函数的典型用法代码示例。如果您正苦于以下问题:C++ GIMP_VIEWABLE函数的具体用法?C++ GIMP_VIEWABLE怎么用?C++ GIMP_VIEWABLE使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GIMP_VIEWABLE函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: action_message
void
action_message (GimpDisplay *display,
GObject *object,
const gchar *format,
...)
{
GimpDisplayShell *shell = gimp_display_get_shell (display);
GimpStatusbar *statusbar = gimp_display_shell_get_statusbar (shell);
const gchar *icon_name = NULL;
va_list args;
if (GIMP_IS_TOOL_OPTIONS (object))
{
GimpToolInfo *tool_info = GIMP_TOOL_OPTIONS (object)->tool_info;
icon_name = gimp_viewable_get_icon_name (GIMP_VIEWABLE (tool_info));
}
else if (GIMP_IS_VIEWABLE (object))
{
icon_name = gimp_viewable_get_icon_name (GIMP_VIEWABLE (object));
}
va_start (args, format);
gimp_statusbar_push_temp_valist (statusbar, GIMP_MESSAGE_INFO,
icon_name, format, args);
va_end (args);
}
开发者ID:jiapei100,项目名称:gimp,代码行数:27,代码来源:actions.c
示例2: colormap_edit_color_cmd_callback
void
colormap_edit_color_cmd_callback (GtkAction *action,
gpointer data)
{
GimpColormapEditor *editor;
GimpImage *image;
const guchar *colormap;
GimpRGB color;
gchar *desc;
return_if_no_image (image, data);
editor = GIMP_COLORMAP_EDITOR (data);
colormap = gimp_image_get_colormap (image);
gimp_rgba_set_uchar (&color,
colormap[editor->col_index * 3],
colormap[editor->col_index * 3 + 1],
colormap[editor->col_index * 3 + 2],
OPAQUE_OPACITY);
desc = g_strdup_printf (_("Edit colormap entry #%d"), editor->col_index);
if (! editor->color_dialog)
{
editor->color_dialog =
gimp_color_dialog_new (GIMP_VIEWABLE (image),
action_data_get_context (data),
_("Edit Colormap Entry"),
GIMP_STOCK_COLORMAP,
desc,
GTK_WIDGET (editor),
gimp_dialog_factory_from_name ("toplevel"),
"gimp-colormap-editor-color-dialog",
(const GimpRGB *) &color,
FALSE, FALSE);
g_signal_connect (editor->color_dialog, "destroy",
G_CALLBACK (gtk_widget_destroyed),
&editor->color_dialog);
g_signal_connect (editor->color_dialog, "update",
G_CALLBACK (colormap_edit_color_update),
editor);
}
else
{
gimp_viewable_dialog_set_viewable (GIMP_VIEWABLE_DIALOG (editor->color_dialog),
GIMP_VIEWABLE (image),
action_data_get_context (data));
g_object_set (editor->color_dialog, "description", desc, NULL);
gimp_color_dialog_set_color (GIMP_COLOR_DIALOG (editor->color_dialog),
&color);
}
g_free (desc);
gtk_window_present (GTK_WINDOW (editor->color_dialog));
}
开发者ID:jdburton,项目名称:gimp-osx,代码行数:59,代码来源:colormap-commands.c
示例3: gimp_paint_core_finish
void
gimp_paint_core_finish (GimpPaintCore *core,
GimpDrawable *drawable,
gboolean push_undo)
{
GimpImage *image;
g_return_if_fail (GIMP_IS_PAINT_CORE (core));
g_return_if_fail (GIMP_IS_DRAWABLE (drawable));
g_return_if_fail (gimp_item_is_attached (GIMP_ITEM (drawable)));
if (core->stroke_buffer)
{
g_array_free (core->stroke_buffer, TRUE);
core->stroke_buffer = NULL;
}
image = gimp_item_get_image (GIMP_ITEM (drawable));
/* Determine if any part of the image has been altered--
* if nothing has, then just return...
*/
if ((core->x2 == core->x1) || (core->y2 == core->y1))
{
gimp_viewable_preview_thaw (GIMP_VIEWABLE (drawable));
return;
}
if (push_undo)
{
gimp_image_undo_group_start (image, GIMP_UNDO_GROUP_PAINT,
core->undo_desc);
GIMP_PAINT_CORE_GET_CLASS (core)->push_undo (core, image, NULL);
gimp_drawable_push_undo (drawable, NULL,
core->x1, core->y1,
core->x2 - core->x1, core->y2 - core->y1,
core->undo_tiles,
TRUE);
gimp_image_undo_group_end (image);
}
tile_manager_unref (core->undo_tiles);
core->undo_tiles = NULL;
if (core->saved_proj_tiles)
{
tile_manager_unref (core->saved_proj_tiles);
core->saved_proj_tiles = NULL;
}
gimp_viewable_preview_thaw (GIMP_VIEWABLE (drawable));
}
开发者ID:MichaelMure,项目名称:Gimp-Cage-Tool,代码行数:55,代码来源:gimppaintcore.c
示例4: gimp_undo_create_preview_private
static void
gimp_undo_create_preview_private (GimpUndo *undo,
GimpContext *context)
{
GimpImage *image = undo->image;
GimpViewable *preview_viewable;
GimpViewSize preview_size;
gint width;
gint height;
switch (undo->undo_type)
{
case GIMP_UNDO_GROUP_IMAGE_QUICK_MASK:
case GIMP_UNDO_GROUP_MASK:
case GIMP_UNDO_MASK:
preview_viewable = GIMP_VIEWABLE (gimp_image_get_mask (image));
break;
default:
preview_viewable = GIMP_VIEWABLE (image);
break;
}
preview_size = image->gimp->config->undo_preview_size;
if (gimp_image_get_width (image) <= preview_size &&
gimp_image_get_height (image) <= preview_size)
{
width = gimp_image_get_width (image);
height = gimp_image_get_height (image);
}
else
{
if (gimp_image_get_width (image) > gimp_image_get_height (image))
{
width = preview_size;
height = MAX (1, (gimp_image_get_height (image) * preview_size /
gimp_image_get_width (image)));
}
else
{
height = preview_size;
width = MAX (1, (gimp_image_get_width (image) * preview_size /
gimp_image_get_height (image)));
}
}
undo->preview = gimp_viewable_get_new_preview (preview_viewable, context,
width, height);
gimp_viewable_invalidate_preview (GIMP_VIEWABLE (undo));
}
开发者ID:DevMaggio,项目名称:gimp,代码行数:52,代码来源:gimpundo.c
示例5: gimp_tool_replace_status
void
gimp_tool_replace_status (GimpTool *tool,
GimpDisplay *display,
const gchar *format,
...)
{
GimpDisplayShell *shell;
const gchar *stock_id;
va_list args;
g_return_if_fail (GIMP_IS_TOOL (tool));
g_return_if_fail (GIMP_IS_DISPLAY (display));
g_return_if_fail (format != NULL);
shell = GIMP_DISPLAY_SHELL (display->shell);
stock_id = gimp_viewable_get_stock_id (GIMP_VIEWABLE (tool->tool_info));
va_start (args, format);
gimp_statusbar_replace_valist (GIMP_STATUSBAR (shell->statusbar),
G_OBJECT_TYPE_NAME (tool), stock_id,
format, args);
va_end (args);
tool->status_displays = g_list_remove (tool->status_displays, display);
tool->status_displays = g_list_prepend (tool->status_displays, display);
}
开发者ID:jdburton,项目名称:gimp-osx,代码行数:29,代码来源:gimptool.c
示例6: gimp_tool_push_status_length
void
gimp_tool_push_status_length (GimpTool *tool,
GimpDisplay *display,
const gchar *title,
GimpOrientationType axis,
gdouble value,
const gchar *help)
{
GimpDisplayShell *shell;
const gchar *stock_id;
g_return_if_fail (GIMP_IS_TOOL (tool));
g_return_if_fail (GIMP_IS_DISPLAY (display));
shell = GIMP_DISPLAY_SHELL (display->shell);
stock_id = gimp_viewable_get_stock_id (GIMP_VIEWABLE (tool->tool_info));
gimp_statusbar_push_length (GIMP_STATUSBAR (shell->statusbar),
G_OBJECT_TYPE_NAME (tool), stock_id,
title, axis, value, help);
tool->status_displays = g_list_remove (tool->status_displays, display);
tool->status_displays = g_list_prepend (tool->status_displays, display);
}
开发者ID:jdburton,项目名称:gimp-osx,代码行数:25,代码来源:gimptool.c
示例7: gimp_tool_push_status_coords
void
gimp_tool_push_status_coords (GimpTool *tool,
GimpDisplay *display,
GimpCursorPrecision precision,
const gchar *title,
gdouble x,
const gchar *separator,
gdouble y,
const gchar *help)
{
GimpDisplayShell *shell;
const gchar *stock_id;
g_return_if_fail (GIMP_IS_TOOL (tool));
g_return_if_fail (GIMP_IS_DISPLAY (display));
shell = GIMP_DISPLAY_SHELL (display->shell);
stock_id = gimp_viewable_get_stock_id (GIMP_VIEWABLE (tool->tool_info));
gimp_statusbar_push_coords (GIMP_STATUSBAR (shell->statusbar),
G_OBJECT_TYPE_NAME (tool), stock_id,
precision, title, x, separator, y,
help);
tool->status_displays = g_list_remove (tool->status_displays, display);
tool->status_displays = g_list_prepend (tool->status_displays, display);
}
开发者ID:jdburton,项目名称:gimp-osx,代码行数:28,代码来源:gimptool.c
示例8: gimp_container_entry_changed
static void
gimp_container_entry_changed (GtkEntry *entry,
GimpContainerView *view)
{
GimpContainer *container = gimp_container_view_get_container (view);
GimpObject *object;
const gchar *text;
if (! container)
return;
text = gtk_entry_get_text (entry);
object = gimp_container_get_child_by_name (container, text);
if (object)
{
gtk_widget_modify_text (GTK_WIDGET (entry), GTK_STATE_NORMAL, NULL);
gimp_container_view_item_selected (view, GIMP_VIEWABLE (object));
}
else
{
/* While editing the entry, contents shows in red for non-existent item. */
GdkColor gdk_red;
gdk_red.red = 65535;
gdk_red.green = 0;
gdk_red.blue = 0;
gtk_widget_modify_text (GTK_WIDGET (entry), GTK_STATE_NORMAL, &gdk_red);
}
}
开发者ID:AdamGrzonkowski,项目名称:gimp-1,代码行数:32,代码来源:gimpcontainerentry.c
示例9: gimp_image_scale_check
/**
* gimp_image_scale_check:
* @image: A #GimpImage.
* @new_width: The new width.
* @new_height: The new height.
* @max_memsize: The maximum new memory size.
* @new_memsize: The new memory size.
*
* Inventory the layer list in image and check that it may be
* scaled to @new_height and @new_width without problems.
*
* Return value: #GIMP_IMAGE_SCALE_OK if scaling the image will shrink none
* of its layers completely away, and the new image size
* is smaller than @max_memsize.
* #GIMP_IMAGE_SCALE_TOO_SMALL if scaling would remove some
* existing layers.
* #GIMP_IMAGE_SCALE_TOO_BIG if the new image size would
* exceed the maximum specified in the preferences.
**/
GimpImageScaleCheckType
gimp_image_scale_check (GimpImage *image,
gint new_width,
gint new_height,
gint64 max_memsize,
gint64 *new_memsize)
{
GList *all_layers;
GList *list;
gint64 current_size;
gint64 undo_size;
gint64 redo_size;
gint64 new_size;
g_return_val_if_fail (GIMP_IS_IMAGE (image), GIMP_IMAGE_SCALE_TOO_SMALL);
g_return_val_if_fail (new_memsize != NULL, GIMP_IMAGE_SCALE_TOO_SMALL);
current_size = gimp_object_get_memsize (GIMP_OBJECT (image), NULL);
new_size = gimp_image_estimate_memsize (image,
gimp_image_get_component_type (image),
new_width, new_height);
undo_size = gimp_object_get_memsize (GIMP_OBJECT (gimp_image_get_undo_stack (image)), NULL);
redo_size = gimp_object_get_memsize (GIMP_OBJECT (gimp_image_get_redo_stack (image)), NULL);
current_size -= undo_size + redo_size;
new_size -= undo_size + redo_size;
GIMP_LOG (IMAGE_SCALE,
"old_size = %"G_GINT64_FORMAT" new_size = %"G_GINT64_FORMAT,
current_size, new_size);
*new_memsize = new_size;
if (new_size > current_size && new_size > max_memsize)
return GIMP_IMAGE_SCALE_TOO_BIG;
all_layers = gimp_image_get_layer_list (image);
for (list = all_layers; list; list = g_list_next (list))
{
GimpItem *item = list->data;
/* group layers are updated automatically */
if (gimp_viewable_get_children (GIMP_VIEWABLE (item)))
continue;
if (! gimp_item_check_scaling (item, new_width, new_height))
{
g_list_free (all_layers);
return GIMP_IMAGE_SCALE_TOO_SMALL;
}
}
g_list_free (all_layers);
return GIMP_IMAGE_SCALE_OK;
}
开发者ID:Anstep,项目名称:gimp,代码行数:79,代码来源:gimpimage-scale.c
示例10: gimp_histogram_editor_frozen_update
static void
gimp_histogram_editor_frozen_update (GimpHistogramEditor *editor,
const GParamSpec *pspec)
{
GimpHistogramView *view = GIMP_HISTOGRAM_BOX (editor->box)->view;
if (gimp_viewable_preview_is_frozen (GIMP_VIEWABLE (editor->drawable)))
{
/* Only do the background histogram if the histogram is visible.
* This is a workaround for the fact that recalculating the
* histogram is expensive and that it is only validated when it
* is shown. So don't slow down painting by doing something that
* is not even seen by the user.
*/
if (! editor->bg_histogram && GTK_WIDGET_DRAWABLE (editor))
{
if (gimp_histogram_editor_validate (editor))
editor->bg_histogram = gimp_histogram_duplicate (editor->histogram);
gimp_histogram_view_set_background (view, editor->bg_histogram);
}
}
else if (editor->bg_histogram)
{
gimp_histogram_unref (editor->bg_histogram);
editor->bg_histogram = NULL;
gimp_histogram_view_set_background (view, NULL);
}
}
开发者ID:jdburton,项目名称:gimp-osx,代码行数:30,代码来源:gimphistogrameditor.c
示例11: floating_sel_remove
void
floating_sel_remove (GimpLayer *layer)
{
GimpImage *image;
g_return_if_fail (GIMP_IS_LAYER (layer));
g_return_if_fail (gimp_layer_is_floating_sel (layer));
image = gimp_item_get_image (GIMP_ITEM (layer->fs.drawable));
gimp_image_undo_group_start (image, GIMP_UNDO_GROUP_FS_REMOVE,
_("Remove Floating Selection"));
/* store the affected area from the drawable in the backing store */
floating_sel_relax (layer, TRUE);
/* Invalidate the preview of the obscured drawable. We do this here
* because it will not be done until the floating selection is removed,
* at which point the obscured drawable's preview will not be declared
* invalid.
*/
gimp_viewable_invalidate_preview (GIMP_VIEWABLE (layer));
/* remove the layer from the image */
gimp_image_remove_layer (image, layer);
gimp_image_undo_group_end (image);
}
开发者ID:Amerekanets,项目名称:gimp,代码行数:28,代码来源:gimplayer-floating-sel.c
示例12: gimp_vectors_get_parent
GimpVectors *
gimp_vectors_get_parent (GimpVectors *vectors)
{
g_return_val_if_fail (GIMP_IS_VECTORS (vectors), NULL);
return GIMP_VECTORS (gimp_viewable_get_parent (GIMP_VIEWABLE (vectors)));
}
开发者ID:ni1son,项目名称:gimp,代码行数:7,代码来源:gimpvectors.c
示例13: image_scale_confirm_response
static void
image_scale_confirm_response (GtkWidget *widget,
gint response_id,
ImageScaleDialog *dialog)
{
gtk_widget_destroy (widget);
if (response_id == GTK_RESPONSE_OK)
{
gtk_widget_hide (dialog->dialog);
dialog->callback (dialog->dialog,
GIMP_VIEWABLE (dialog->image),
dialog->width,
dialog->height,
dialog->unit,
dialog->interpolation,
dialog->xresolution,
dialog->yresolution,
dialog->resolution_unit,
dialog->user_data);
gtk_widget_destroy (dialog->dialog);
}
else
{
gtk_widget_set_sensitive (dialog->dialog, TRUE);
}
}
开发者ID:jdburton,项目名称:gimp-osx,代码行数:27,代码来源:image-scale-dialog.c
示例14: gimp_text_layer_set_text
void
gimp_text_layer_set_text (GimpTextLayer *layer,
GimpText *text)
{
g_return_if_fail (GIMP_IS_TEXT_LAYER (layer));
g_return_if_fail (text == NULL || GIMP_IS_TEXT (text));
if (layer->text == text)
return;
if (layer->text)
{
g_signal_handlers_disconnect_by_func (layer->text,
G_CALLBACK (gimp_text_layer_text_changed),
layer);
g_object_unref (layer->text);
layer->text = NULL;
}
if (text)
{
layer->text = g_object_ref (text);
g_signal_connect_object (text, "changed",
G_CALLBACK (gimp_text_layer_text_changed),
layer, G_CONNECT_SWAPPED);
}
g_object_notify (G_OBJECT (layer), "text");
gimp_viewable_invalidate_preview (GIMP_VIEWABLE (layer));
}
开发者ID:vidyashree,项目名称:gimp-tito,代码行数:32,代码来源:gimptextlayer.c
示例15: gimp_selection_editor_set_image
static void
gimp_selection_editor_set_image (GimpImageEditor *image_editor,
GimpImage *image)
{
GimpSelectionEditor *editor = GIMP_SELECTION_EDITOR (image_editor);
if (image_editor->image)
{
g_signal_handlers_disconnect_by_func (image_editor->image,
gimp_selection_editor_mask_changed,
editor);
}
GIMP_IMAGE_EDITOR_CLASS (parent_class)->set_image (image_editor, image);
if (image)
{
g_signal_connect (image, "mask-changed",
G_CALLBACK (gimp_selection_editor_mask_changed),
editor);
gimp_view_set_viewable (GIMP_VIEW (editor->view),
GIMP_VIEWABLE (gimp_image_get_mask (image)));
}
else
{
gimp_view_set_viewable (GIMP_VIEW (editor->view), NULL);
}
}
开发者ID:Amerekanets,项目名称:gimp,代码行数:29,代码来源:gimpselectioneditor.c
示例16: gimp_display_shell_drop_buffer
static void
gimp_display_shell_drop_buffer (GtkWidget *widget,
gint drop_x,
gint drop_y,
GimpViewable *viewable,
gpointer data)
{
GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (data);
GimpImage *image = gimp_display_get_image (shell->display);
GimpDrawable *drawable;
GimpBuffer *buffer;
gint x, y, width, height;
GIMP_LOG (DND, NULL);
if (shell->display->gimp->busy)
return;
if (! image)
{
image = gimp_image_new_from_buffer (shell->display->gimp, NULL,
GIMP_BUFFER (viewable));
gimp_create_display (image->gimp, image, GIMP_UNIT_PIXEL, 1.0);
g_object_unref (image);
return;
}
drawable = gimp_image_get_active_drawable (image);
if (drawable)
{
if (gimp_viewable_get_children (GIMP_VIEWABLE (drawable)))
{
gimp_message_literal (shell->display->gimp, G_OBJECT (shell->display),
GIMP_MESSAGE_ERROR,
_("Cannot modify the pixels of layer groups."));
return;
}
if (gimp_item_is_content_locked (GIMP_ITEM (drawable)))
{
gimp_message_literal (shell->display->gimp, G_OBJECT (shell->display),
GIMP_MESSAGE_ERROR,
_("The active layer's pixels are locked."));
return;
}
}
buffer = GIMP_BUFFER (viewable);
gimp_display_shell_untransform_viewport (shell, &x, &y, &width, &height);
/* FIXME: popup a menu for selecting "Paste Into" */
gimp_edit_paste (image, drawable, buffer, FALSE,
x, y, width, height);
gimp_display_shell_dnd_flush (shell, image);
}
开发者ID:DevMaggio,项目名称:gimp,代码行数:60,代码来源:gimpdisplayshell-dnd.c
示例17: gimp_bucket_fill_tool_initialize
static gboolean
gimp_bucket_fill_tool_initialize (GimpTool *tool,
GimpDisplay *display,
GError **error)
{
GimpImage *image = gimp_display_get_image (display);
GimpDrawable *drawable = gimp_image_get_active_drawable (image);
if (! GIMP_TOOL_CLASS (parent_class)->initialize (tool, display, error))
{
return FALSE;
}
if (gimp_viewable_get_children (GIMP_VIEWABLE (drawable)))
{
g_set_error_literal (error, GIMP_ERROR, GIMP_FAILED,
_("Cannot modify the pixels of layer groups."));
return FALSE;
}
if (gimp_item_is_content_locked (GIMP_ITEM (drawable)))
{
g_set_error_literal (error, GIMP_ERROR, GIMP_FAILED,
_("The active layer's pixels are locked."));
return FALSE;
}
return TRUE;
}
开发者ID:Amerekanets,项目名称:gimp-1,代码行数:29,代码来源:gimpbucketfilltool.c
示例18: gimp_clipboard_send_buffer
static void
gimp_clipboard_send_buffer (GtkClipboard *clipboard,
GtkSelectionData *selection_data,
guint info,
Gimp *gimp)
{
GimpClipboard *gimp_clip = gimp_clipboard_get (gimp);
GdkPixbuf *pixbuf;
gimp_set_busy (gimp);
pixbuf = gimp_viewable_get_pixbuf (GIMP_VIEWABLE (gimp_clip->buffer),
gimp_get_user_context (gimp),
gimp_buffer_get_width (gimp_clip->buffer),
gimp_buffer_get_height (gimp_clip->buffer));
if (pixbuf)
{
if (gimp->be_verbose)
g_printerr ("clipboard: sending pixbuf data as '%s'\n",
gimp_clip->target_entries[info].target);
gtk_selection_data_set_pixbuf (selection_data, pixbuf);
}
else
{
g_warning ("%s: gimp_viewable_get_pixbuf() failed", G_STRFUNC);
}
gimp_unset_busy (gimp);
}
开发者ID:Amerekanets,项目名称:gimp,代码行数:31,代码来源:gimpclipboard.c
示例19: gimp_color_selector_palette_palette_changed
static void
gimp_color_selector_palette_palette_changed (GimpContext *context,
GimpPalette *palette,
GimpColorSelectorPalette *select)
{
gimp_view_set_viewable (GIMP_VIEW (select->view), GIMP_VIEWABLE (palette));
}
开发者ID:Amerekanets,项目名称:gimp,代码行数:7,代码来源:gimpcolorselectorpalette.c
示例20: gimp_image_map_tool_create_map
static void
gimp_image_map_tool_create_map (GimpImageMapTool *tool)
{
GimpImageMapOptions *options = GIMP_IMAGE_MAP_TOOL_GET_OPTIONS (tool);
GimpToolInfo *tool_info = GIMP_TOOL (tool)->tool_info;
if (tool->image_map)
{
gimp_image_map_abort (tool->image_map);
g_object_unref (tool->image_map);
}
g_assert (tool->operation);
tool->image_map = gimp_image_map_new (tool->drawable,
tool->undo_desc,
tool->operation,
gimp_viewable_get_icon_name (GIMP_VIEWABLE (tool_info)));
gimp_image_map_set_region (tool->image_map, options->region);
g_signal_connect (tool->image_map, "flush",
G_CALLBACK (gimp_image_map_tool_flush),
tool);
}
开发者ID:K-Sonoda,项目名称:gimp,代码行数:25,代码来源:gimpimagemaptool.c
注:本文中的GIMP_VIEWABLE函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论