mirror of https://github.com/GNOME/gimp.git
added boolean "sample-merged" property, API and GUI. Pick from the active
2005-07-09 Michael Natterer <mitch@gimp.org> * app/widgets/gimpcursorview.[ch]: added boolean "sample-merged" property, API and GUI. Pick from the active drawable if it's FALSE. * app/actions/Makefile.am * app/actions/actions.c * app/actions/cursor-info-actions.[ch] * app/actions/cursor-info-commands.[ch]: new files with actions and callbacks for the cursor info dialog's menu. * app/widgets/gimphelp-ids.h: help IDs for above actions. * app/dialogs/dialogs.c: follow help ID change. * app/menus/menus.c * menus/Makefile.am * menus/cursor-info-menu.xml: add the cursor-info menu. * app/dialogs/dialogs-constructors.c: pass the menu factory to gimp_cursor_view_new().
This commit is contained in:
parent
6248b954db
commit
2f7388db6f
23
ChangeLog
23
ChangeLog
|
@ -1,3 +1,26 @@
|
||||||
|
2005-07-09 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
|
* app/widgets/gimpcursorview.[ch]: added boolean "sample-merged"
|
||||||
|
property, API and GUI. Pick from the active drawable if it's
|
||||||
|
FALSE.
|
||||||
|
|
||||||
|
* app/actions/Makefile.am
|
||||||
|
* app/actions/actions.c
|
||||||
|
* app/actions/cursor-info-actions.[ch]
|
||||||
|
* app/actions/cursor-info-commands.[ch]: new files with actions
|
||||||
|
and callbacks for the cursor info dialog's menu.
|
||||||
|
|
||||||
|
* app/widgets/gimphelp-ids.h: help IDs for above actions.
|
||||||
|
|
||||||
|
* app/dialogs/dialogs.c: follow help ID change.
|
||||||
|
|
||||||
|
* app/menus/menus.c
|
||||||
|
* menus/Makefile.am
|
||||||
|
* menus/cursor-info-menu.xml: add the cursor-info menu.
|
||||||
|
|
||||||
|
* app/dialogs/dialogs-constructors.c: pass the menu factory to
|
||||||
|
gimp_cursor_view_new().
|
||||||
|
|
||||||
2005-07-09 Sven Neumann <sven@gimp.org>
|
2005-07-09 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
* app/base/segmentator.c: plugged memory leaks.
|
* app/base/segmentator.c: plugged memory leaks.
|
||||||
|
|
|
@ -25,6 +25,10 @@ libappactions_a_SOURCES = \
|
||||||
context-actions.h \
|
context-actions.h \
|
||||||
context-commands.c \
|
context-commands.c \
|
||||||
context-commands.h \
|
context-commands.h \
|
||||||
|
cursor-info-actions.c \
|
||||||
|
cursor-info-actions.h \
|
||||||
|
cursor-info-commands.c \
|
||||||
|
cursor-info-commands.h \
|
||||||
data-commands.c \
|
data-commands.c \
|
||||||
data-commands.h \
|
data-commands.h \
|
||||||
debug-actions.c \
|
debug-actions.c \
|
||||||
|
|
|
@ -51,6 +51,7 @@
|
||||||
#include "channels-actions.h"
|
#include "channels-actions.h"
|
||||||
#include "colormap-editor-actions.h"
|
#include "colormap-editor-actions.h"
|
||||||
#include "context-actions.h"
|
#include "context-actions.h"
|
||||||
|
#include "cursor-info-actions.h"
|
||||||
#include "debug-actions.h"
|
#include "debug-actions.h"
|
||||||
#include "dialogs-actions.h"
|
#include "dialogs-actions.h"
|
||||||
#include "dock-actions.h"
|
#include "dock-actions.h"
|
||||||
|
@ -107,6 +108,9 @@ static GimpActionFactoryEntry action_groups[] =
|
||||||
{ "context", N_("Context"), NULL,
|
{ "context", N_("Context"), NULL,
|
||||||
context_actions_setup,
|
context_actions_setup,
|
||||||
context_actions_update },
|
context_actions_update },
|
||||||
|
{ "cursor-info", N_("Cursor Info"), NULL,
|
||||||
|
cursor_info_actions_setup,
|
||||||
|
cursor_info_actions_update },
|
||||||
{ "debug", N_("Debug"), NULL,
|
{ "debug", N_("Debug"), NULL,
|
||||||
debug_actions_setup,
|
debug_actions_setup,
|
||||||
debug_actions_update },
|
debug_actions_update },
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
/* The GIMP -- an image manipulation program
|
||||||
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
#include "libgimpwidgets/gimpwidgets.h"
|
||||||
|
|
||||||
|
#include "actions-types.h"
|
||||||
|
|
||||||
|
#include "widgets/gimpactiongroup.h"
|
||||||
|
#include "widgets/gimpcursorview.h"
|
||||||
|
#include "widgets/gimphelp-ids.h"
|
||||||
|
|
||||||
|
#include "cursor-info-actions.h"
|
||||||
|
#include "cursor-info-commands.h"
|
||||||
|
|
||||||
|
#include "gimp-intl.h"
|
||||||
|
|
||||||
|
|
||||||
|
static GimpActionEntry cursor_info_actions[] =
|
||||||
|
{
|
||||||
|
{ "cursor-info-popup", GIMP_STOCK_CURSOR,
|
||||||
|
N_("Cursor Info Menu"), NULL, NULL, NULL,
|
||||||
|
GIMP_HELP_CURSOR_INFO_DIALOG }
|
||||||
|
};
|
||||||
|
|
||||||
|
static GimpToggleActionEntry cursor_info_toggle_actions[] =
|
||||||
|
{
|
||||||
|
{ "cursor-info-sample-merged", NULL,
|
||||||
|
N_("_Sample Merged"), "",
|
||||||
|
N_("Sample Merged"),
|
||||||
|
G_CALLBACK (cursor_info_sample_merged_cmd_callback),
|
||||||
|
TRUE,
|
||||||
|
GIMP_HELP_CURSOR_INFO_SAMPLE_MERGED }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
cursor_info_actions_setup (GimpActionGroup *group)
|
||||||
|
{
|
||||||
|
gimp_action_group_add_actions (group,
|
||||||
|
cursor_info_actions,
|
||||||
|
G_N_ELEMENTS (cursor_info_actions));
|
||||||
|
|
||||||
|
gimp_action_group_add_toggle_actions (group,
|
||||||
|
cursor_info_toggle_actions,
|
||||||
|
G_N_ELEMENTS (cursor_info_toggle_actions));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
cursor_info_actions_update (GimpActionGroup *group,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GimpCursorView *view = GIMP_CURSOR_VIEW (data);
|
||||||
|
|
||||||
|
#define SET_ACTIVE(action,condition) \
|
||||||
|
gimp_action_group_set_action_active (group, action, (condition) != 0)
|
||||||
|
|
||||||
|
SET_ACTIVE ("cursor-info-sample-merged",
|
||||||
|
gimp_cursor_view_get_sample_merged (view));
|
||||||
|
|
||||||
|
#undef SET_ACTIVE
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
/* The GIMP -- an image manipulation program
|
||||||
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __CURSOR_INFO_ACIONS_H__
|
||||||
|
#define __CURSOR_INFO_ACIONS_H__
|
||||||
|
|
||||||
|
|
||||||
|
void cursor_info_actions_setup (GimpActionGroup *group);
|
||||||
|
void cursor_info_actions_update (GimpActionGroup *group,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __CURSOR_INFO_ACTIONS_H__ */
|
|
@ -0,0 +1,49 @@
|
||||||
|
/* The GIMP -- an image manipulation program
|
||||||
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
#include "libgimpbase/gimpbase.h"
|
||||||
|
#include "libgimpwidgets/gimpwidgets.h"
|
||||||
|
|
||||||
|
#include "actions-types.h"
|
||||||
|
|
||||||
|
#include "widgets/gimpcursorview.h"
|
||||||
|
#include "widgets/gimphelp-ids.h"
|
||||||
|
#include "widgets/gimpwidgets-utils.h"
|
||||||
|
|
||||||
|
#include "cursor-info-commands.h"
|
||||||
|
|
||||||
|
#include "gimp-intl.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* public functions */
|
||||||
|
|
||||||
|
void
|
||||||
|
cursor_info_sample_merged_cmd_callback (GtkAction *action,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GimpCursorView *view = GIMP_CURSOR_VIEW (data);
|
||||||
|
gboolean active;
|
||||||
|
|
||||||
|
active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
|
||||||
|
|
||||||
|
gimp_cursor_view_set_sample_merged (view, active);
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
/* The GIMP -- an image manipulation program
|
||||||
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __CURSOR_INFO_COMMANDS_H__
|
||||||
|
#define __CURSOR_INFO_COMMANDS_H__
|
||||||
|
|
||||||
|
|
||||||
|
void cursor_info_sample_merged_cmd_callback (GtkAction *action,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __CURSOR_INFO_COMMANDS_H__ */
|
|
@ -264,7 +264,7 @@ dialogs_cursor_view_new (GimpDialogFactory *factory,
|
||||||
GimpContext *context,
|
GimpContext *context,
|
||||||
gint preview_size)
|
gint preview_size)
|
||||||
{
|
{
|
||||||
return gimp_cursor_view_new ();
|
return gimp_cursor_view_new (factory->menu_factory);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -136,7 +136,7 @@ static const GimpDialogFactoryEntry dock_entries[] =
|
||||||
dialogs_error_console_new, 0, TRUE),
|
dialogs_error_console_new, 0, TRUE),
|
||||||
DOCKABLE ("gimp-cursor-view",
|
DOCKABLE ("gimp-cursor-view",
|
||||||
N_("Cursor"), N_("Cursor Info"), GIMP_STOCK_CURSOR,
|
N_("Cursor"), N_("Cursor Info"), GIMP_STOCK_CURSOR,
|
||||||
GIMP_HELP_CURSOR_DIALOG,
|
GIMP_HELP_CURSOR_INFO_DIALOG,
|
||||||
dialogs_cursor_view_new, 0, TRUE),
|
dialogs_cursor_view_new, 0, TRUE),
|
||||||
|
|
||||||
/* list & grid views */
|
/* list & grid views */
|
||||||
|
|
|
@ -309,6 +309,14 @@ menus_init (Gimp *gimp,
|
||||||
"text-editor-toolbar.xml",
|
"text-editor-toolbar.xml",
|
||||||
NULL,
|
NULL,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
gimp_menu_factory_manager_register (global_menu_factory, "<CursorInfo>",
|
||||||
|
"cursor-info",
|
||||||
|
NULL,
|
||||||
|
"/cursor-info-popup",
|
||||||
|
"cursor-info-menu.xml",
|
||||||
|
NULL,
|
||||||
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -32,21 +32,38 @@
|
||||||
#include "widgets-types.h"
|
#include "widgets-types.h"
|
||||||
|
|
||||||
#include "core/gimpimage.h"
|
#include "core/gimpimage.h"
|
||||||
|
#include "core/gimpitem.h"
|
||||||
#include "core/gimppickable.h"
|
#include "core/gimppickable.h"
|
||||||
#include "core/gimpunit.h"
|
#include "core/gimpunit.h"
|
||||||
|
|
||||||
#include "gimpcolorframe.h"
|
#include "gimpcolorframe.h"
|
||||||
#include "gimpcursorview.h"
|
#include "gimpcursorview.h"
|
||||||
#include "gimpdocked.h"
|
#include "gimpdocked.h"
|
||||||
|
#include "gimpmenufactory.h"
|
||||||
#include "gimpsessioninfo.h"
|
#include "gimpsessioninfo.h"
|
||||||
|
|
||||||
#include "gimp-intl.h"
|
#include "gimp-intl.h"
|
||||||
|
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
PROP_0,
|
||||||
|
PROP_SAMPLE_MERGED
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
static void gimp_cursor_view_class_init (GimpCursorViewClass *klass);
|
static void gimp_cursor_view_class_init (GimpCursorViewClass *klass);
|
||||||
static void gimp_cursor_view_init (GimpCursorView *view);
|
static void gimp_cursor_view_init (GimpCursorView *view);
|
||||||
static void gimp_cursor_view_docked_iface_init (GimpDockedInterface *docked_iface);
|
static void gimp_cursor_view_docked_iface_init (GimpDockedInterface *docked_iface);
|
||||||
|
|
||||||
|
static void gimp_cursor_view_set_property (GObject *object,
|
||||||
|
guint property_id,
|
||||||
|
const GValue *value,
|
||||||
|
GParamSpec *pspec);
|
||||||
|
static void gimp_cursor_view_get_property (GObject *object,
|
||||||
|
guint property_id,
|
||||||
|
GValue *value,
|
||||||
|
GParamSpec *pspec);
|
||||||
static void gimp_cursor_view_set_aux_info (GimpDocked *docked,
|
static void gimp_cursor_view_set_aux_info (GimpDocked *docked,
|
||||||
GList *aux_info);
|
GList *aux_info);
|
||||||
static GList *gimp_cursor_view_get_aux_info (GimpDocked *docked);
|
static GList *gimp_cursor_view_get_aux_info (GimpDocked *docked);
|
||||||
|
@ -98,11 +115,22 @@ gimp_cursor_view_get_type (void)
|
||||||
static void
|
static void
|
||||||
gimp_cursor_view_class_init (GimpCursorViewClass* klass)
|
gimp_cursor_view_class_init (GimpCursorViewClass* klass)
|
||||||
{
|
{
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||||||
|
|
||||||
parent_class = g_type_class_peek_parent (klass);
|
parent_class = g_type_class_peek_parent (klass);
|
||||||
|
|
||||||
|
object_class->get_property = gimp_cursor_view_get_property;
|
||||||
|
object_class->set_property = gimp_cursor_view_set_property;
|
||||||
|
|
||||||
widget_class->style_set = gimp_cursor_view_style_set;
|
widget_class->style_set = gimp_cursor_view_style_set;
|
||||||
|
|
||||||
|
g_object_class_install_property (object_class, PROP_SAMPLE_MERGED,
|
||||||
|
g_param_spec_boolean ("sample-merged",
|
||||||
|
NULL, NULL,
|
||||||
|
TRUE,
|
||||||
|
G_PARAM_READWRITE |
|
||||||
|
G_PARAM_CONSTRUCT));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -110,8 +138,11 @@ gimp_cursor_view_init (GimpCursorView *view)
|
||||||
{
|
{
|
||||||
GtkWidget *frame;
|
GtkWidget *frame;
|
||||||
GtkWidget *table;
|
GtkWidget *table;
|
||||||
|
GtkWidget *toggle;
|
||||||
gint content_spacing;
|
gint content_spacing;
|
||||||
|
|
||||||
|
view->sample_merged = TRUE;
|
||||||
|
|
||||||
gtk_widget_style_get (GTK_WIDGET (view),
|
gtk_widget_style_get (GTK_WIDGET (view),
|
||||||
"content_spacing", &content_spacing,
|
"content_spacing", &content_spacing,
|
||||||
NULL);
|
NULL);
|
||||||
|
@ -187,6 +218,13 @@ gimp_cursor_view_init (GimpCursorView *view)
|
||||||
gtk_box_pack_start (GTK_BOX (view->color_hbox), view->color_frame_2,
|
gtk_box_pack_start (GTK_BOX (view->color_hbox), view->color_frame_2,
|
||||||
TRUE, TRUE, 0);
|
TRUE, TRUE, 0);
|
||||||
gtk_widget_show (view->color_frame_2);
|
gtk_widget_show (view->color_frame_2);
|
||||||
|
|
||||||
|
/* sample merged toggle */
|
||||||
|
|
||||||
|
toggle = gimp_prop_check_button_new (G_OBJECT (view), "sample-merged",
|
||||||
|
_("_Sample Merged"));
|
||||||
|
gtk_box_pack_start (GTK_BOX (view), toggle, FALSE, FALSE, 0);
|
||||||
|
gtk_widget_show (toggle);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -201,6 +239,44 @@ gimp_cursor_view_docked_iface_init (GimpDockedInterface *docked_iface)
|
||||||
docked_iface->get_aux_info = gimp_cursor_view_get_aux_info;
|
docked_iface->get_aux_info = gimp_cursor_view_get_aux_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gimp_cursor_view_set_property (GObject *object,
|
||||||
|
guint property_id,
|
||||||
|
const GValue *value,
|
||||||
|
GParamSpec *pspec)
|
||||||
|
{
|
||||||
|
GimpCursorView *view = GIMP_CURSOR_VIEW (object);
|
||||||
|
|
||||||
|
switch (property_id)
|
||||||
|
{
|
||||||
|
case PROP_SAMPLE_MERGED:
|
||||||
|
view->sample_merged = g_value_get_boolean (value);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gimp_cursor_view_get_property (GObject *object,
|
||||||
|
guint property_id,
|
||||||
|
GValue *value,
|
||||||
|
GParamSpec *pspec)
|
||||||
|
{
|
||||||
|
GimpCursorView *view = GIMP_CURSOR_VIEW (object);
|
||||||
|
|
||||||
|
switch (property_id)
|
||||||
|
{
|
||||||
|
case PROP_SAMPLE_MERGED:
|
||||||
|
g_value_set_boolean (value, view->sample_merged);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#define AUX_INFO_FRAME_1_MODE "frame-1-mode"
|
#define AUX_INFO_FRAME_1_MODE "frame-1-mode"
|
||||||
#define AUX_INFO_FRAME_2_MODE "frame-2-mode"
|
#define AUX_INFO_FRAME_2_MODE "frame-2-mode"
|
||||||
|
|
||||||
|
@ -289,11 +365,42 @@ gimp_cursor_view_style_set (GtkWidget *widget,
|
||||||
/* public functions */
|
/* public functions */
|
||||||
|
|
||||||
GtkWidget *
|
GtkWidget *
|
||||||
gimp_cursor_view_new (void)
|
gimp_cursor_view_new (GimpMenuFactory *menu_factory)
|
||||||
{
|
{
|
||||||
return g_object_new (GIMP_TYPE_CURSOR_VIEW, NULL);
|
g_return_val_if_fail (GIMP_IS_MENU_FACTORY (menu_factory), NULL);
|
||||||
|
|
||||||
|
return g_object_new (GIMP_TYPE_CURSOR_VIEW,
|
||||||
|
"menu-factory", menu_factory,
|
||||||
|
"menu-identifier", "<CursorInfo>",
|
||||||
|
"ui-path", "/cursor-info-popup",
|
||||||
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gimp_cursor_view_set_sample_merged (GimpCursorView *view,
|
||||||
|
gboolean sample_merged)
|
||||||
|
{
|
||||||
|
g_return_if_fail (GIMP_IS_CURSOR_VIEW (view));
|
||||||
|
|
||||||
|
sample_merged = sample_merged ? TRUE : FALSE;
|
||||||
|
|
||||||
|
if (view->sample_merged != sample_merged)
|
||||||
|
{
|
||||||
|
view->sample_merged = sample_merged;
|
||||||
|
|
||||||
|
g_object_notify (G_OBJECT (view), "sample-merged");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gimp_cursor_view_get_sample_merged (GimpCursorView *view)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (GIMP_IS_CURSOR_VIEW (view), FALSE);
|
||||||
|
|
||||||
|
return view->sample_merged;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
gimp_cursor_view_update_cursor (GimpCursorView *view,
|
gimp_cursor_view_update_cursor (GimpCursorView *view,
|
||||||
GimpImage *image,
|
GimpImage *image,
|
||||||
|
@ -354,11 +461,34 @@ gimp_cursor_view_update_cursor (GimpCursorView *view,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (image)
|
if (image)
|
||||||
|
{
|
||||||
|
if (view->sample_merged)
|
||||||
{
|
{
|
||||||
pickable = GIMP_PICKABLE (image->projection);
|
pickable = GIMP_PICKABLE (image->projection);
|
||||||
|
|
||||||
color = gimp_pickable_get_color_at (pickable,
|
color = gimp_pickable_get_color_at (pickable,
|
||||||
(gint) floor (x), (gint) floor (y));
|
(gint) floor (x),
|
||||||
|
(gint) floor (y));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GimpDrawable *drawable;
|
||||||
|
|
||||||
|
drawable = gimp_image_active_drawable (image);
|
||||||
|
|
||||||
|
if (drawable)
|
||||||
|
{
|
||||||
|
gint off_x, off_y;
|
||||||
|
|
||||||
|
pickable = GIMP_PICKABLE (drawable);
|
||||||
|
|
||||||
|
gimp_item_offsets (GIMP_ITEM (drawable), &off_x, &off_y);
|
||||||
|
|
||||||
|
color = gimp_pickable_get_color_at (pickable,
|
||||||
|
((gint) floor (x)) - off_x,
|
||||||
|
((gint) floor (y)) - off_y);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (color)
|
if (color)
|
||||||
|
|
|
@ -49,6 +49,8 @@ struct _GimpCursorView
|
||||||
GtkWidget *unit_y_label;
|
GtkWidget *unit_y_label;
|
||||||
GtkWidget *color_frame_1;
|
GtkWidget *color_frame_1;
|
||||||
GtkWidget *color_frame_2;
|
GtkWidget *color_frame_2;
|
||||||
|
|
||||||
|
gboolean sample_merged;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GimpCursorViewClass
|
struct _GimpCursorViewClass
|
||||||
|
@ -59,7 +61,11 @@ struct _GimpCursorViewClass
|
||||||
|
|
||||||
GType gimp_cursor_view_get_type (void) G_GNUC_CONST;
|
GType gimp_cursor_view_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
GtkWidget * gimp_cursor_view_new (void);
|
GtkWidget * gimp_cursor_view_new (GimpMenuFactory *menu_factory);
|
||||||
|
|
||||||
|
void gimp_cursor_view_set_sample_merged (GimpCursorView *view,
|
||||||
|
gboolean sample_merged);
|
||||||
|
gboolean gimp_cursor_view_get_sample_merged (GimpCursorView *view);
|
||||||
|
|
||||||
void gimp_cursor_view_update_cursor (GimpCursorView *view,
|
void gimp_cursor_view_update_cursor (GimpCursorView *view,
|
||||||
GimpImage *image,
|
GimpImage *image,
|
||||||
|
|
|
@ -411,6 +411,9 @@
|
||||||
#define GIMP_HELP_INDEXED_PALETTE_EDIT "gimp-indexed-palette-edit"
|
#define GIMP_HELP_INDEXED_PALETTE_EDIT "gimp-indexed-palette-edit"
|
||||||
#define GIMP_HELP_INDEXED_PALETTE_ADD "gimp-indexed-palette-add"
|
#define GIMP_HELP_INDEXED_PALETTE_ADD "gimp-indexed-palette-add"
|
||||||
|
|
||||||
|
#define GIMP_HELP_CURSOR_INFO_DIALOG "gimp-cursor-info-dialog"
|
||||||
|
#define GIMP_HELP_CURSOR_INFO_SAMPLE_MERGED "gimp-cursor-info-sample-merged"
|
||||||
|
|
||||||
#define GIMP_HELP_DOCK "gimp-dock"
|
#define GIMP_HELP_DOCK "gimp-dock"
|
||||||
#define GIMP_HELP_DOCK_CLOSE "gimp-dock-close"
|
#define GIMP_HELP_DOCK_CLOSE "gimp-dock-close"
|
||||||
#define GIMP_HELP_DOCK_IMAGE_MENU "gimp-dock-image-menu"
|
#define GIMP_HELP_DOCK_IMAGE_MENU "gimp-dock-image-menu"
|
||||||
|
@ -434,7 +437,6 @@
|
||||||
#define GIMP_HELP_DISPLAY_FILTER_DIALOG "gimp-display-filter-dialog"
|
#define GIMP_HELP_DISPLAY_FILTER_DIALOG "gimp-display-filter-dialog"
|
||||||
#define GIMP_HELP_HISTOGRAM_DIALOG "gimp-histogram-dialog"
|
#define GIMP_HELP_HISTOGRAM_DIALOG "gimp-histogram-dialog"
|
||||||
#define GIMP_HELP_INFO_DIALOG "gimp-info-dialog"
|
#define GIMP_HELP_INFO_DIALOG "gimp-info-dialog"
|
||||||
#define GIMP_HELP_CURSOR_DIALOG "gimp-cursor-dialog"
|
|
||||||
#define GIMP_HELP_SAMPLE_POINT_DIALOG "gimp-sample-point-dialog"
|
#define GIMP_HELP_SAMPLE_POINT_DIALOG "gimp-sample-point-dialog"
|
||||||
#define GIMP_HELP_MODULE_DIALOG "gimp-module-dialog"
|
#define GIMP_HELP_MODULE_DIALOG "gimp-module-dialog"
|
||||||
#define GIMP_HELP_NAVIGATION_DIALOG "gimp-navigation-dialog"
|
#define GIMP_HELP_NAVIGATION_DIALOG "gimp-navigation-dialog"
|
||||||
|
|
|
@ -15,6 +15,7 @@ menudata_DATA = \
|
||||||
buffers-menu.xml \
|
buffers-menu.xml \
|
||||||
channels-menu.xml \
|
channels-menu.xml \
|
||||||
colormap-editor-menu.xml \
|
colormap-editor-menu.xml \
|
||||||
|
cursor-info-menu.xml \
|
||||||
documents-menu.xml \
|
documents-menu.xml \
|
||||||
error-console-menu.xml \
|
error-console-menu.xml \
|
||||||
fonts-menu.xml \
|
fonts-menu.xml \
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
|
||||||
|
|
||||||
|
<ui>
|
||||||
|
<popup action="cursor-info-popup">
|
||||||
|
<menuitem action="cursor-info-sample-merged" />
|
||||||
|
</popup>
|
||||||
|
</ui>
|
Loading…
Reference in New Issue