mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-19 06:14:03 +00:00
added virtual functions set_toggles_visible() and set_toggles_sensitive().
2002-11-05 Michael Natterer <mitch@gimp.org> * libgimpwidgets/gimpcolorselector.[ch]: added virtual functions set_toggles_visible() and set_toggles_sensitive(). Added a stock_id. Emit "color_changed" and "channel_changed" on set_color() and set_channel() resp. * libgimpwidgets/gimpcolornotebook.[ch]: implement the new methods. Added gimp_color_notebook_set_has_page() to control which selectors a notebook contains. * libgimpwidgets/gimpcolorscales.[ch]: removed the toggle API and implement the new methods. * libgimpwidgets/gimpcolorselect.c: added toggle buttons for the channels so the widget doesn't need external ones. * app/gui/color-notebook.c: changed accordingly. * libgimpwidgets/gimpstock.[ch] * themes/Default/images/Makefile.am * themes/Default/images/stock-color-triangle-16.png: added a (bad) icon for the triangle color selector. * modules/colorsel_triangle.c: use the new icon. * modules/colorsel_water.c: use the "Paintbrush" icon for now. * app/widgets/gimpcoloreditor.[ch]: new widget for editing the FG/BG color featuring a color notebook, stock buttons for selecting the pages and a GimpPickButton. * app/widgets/Makefile.am * app/widgets/widgets-types.h: changed accordingly. * app/gui/dialogs-constructors.[ch] * app/gui/dialogs.c: added a dockable wrapper for GimpColorEditor. * app/gui/menus.c: added it to the menus. Also added separate Layers, Channels and Paths entries. Bind <ctrl>L to the new callback so it doesn't always create a new layers dialog.
This commit is contained in:
parent
3e3b5ef3c5
commit
2743f9fae1
41
ChangeLog
41
ChangeLog
|
@ -1,3 +1,44 @@
|
|||
2002-11-05 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* libgimpwidgets/gimpcolorselector.[ch]: added virtual functions
|
||||
set_toggles_visible() and set_toggles_sensitive(). Added a
|
||||
stock_id. Emit "color_changed" and "channel_changed" on
|
||||
set_color() and set_channel() resp.
|
||||
|
||||
* libgimpwidgets/gimpcolornotebook.[ch]: implement the new
|
||||
methods. Added gimp_color_notebook_set_has_page() to control
|
||||
which selectors a notebook contains.
|
||||
|
||||
* libgimpwidgets/gimpcolorscales.[ch]: removed the toggle
|
||||
API and implement the new methods.
|
||||
|
||||
* libgimpwidgets/gimpcolorselect.c: added toggle buttons for the
|
||||
channels so the widget doesn't need external ones.
|
||||
|
||||
* app/gui/color-notebook.c: changed accordingly.
|
||||
|
||||
* libgimpwidgets/gimpstock.[ch]
|
||||
* themes/Default/images/Makefile.am
|
||||
* themes/Default/images/stock-color-triangle-16.png: added a
|
||||
(bad) icon for the triangle color selector.
|
||||
|
||||
* modules/colorsel_triangle.c: use the new icon.
|
||||
* modules/colorsel_water.c: use the "Paintbrush" icon for now.
|
||||
|
||||
* app/widgets/gimpcoloreditor.[ch]: new widget for editing the
|
||||
FG/BG color featuring a color notebook, stock buttons for
|
||||
selecting the pages and a GimpPickButton.
|
||||
|
||||
* app/widgets/Makefile.am
|
||||
* app/widgets/widgets-types.h: changed accordingly.
|
||||
|
||||
* app/gui/dialogs-constructors.[ch]
|
||||
* app/gui/dialogs.c: added a dockable wrapper for GimpColorEditor.
|
||||
|
||||
* app/gui/menus.c: added it to the menus. Also added separate
|
||||
Layers, Channels and Paths entries. Bind <ctrl>L to the new
|
||||
callback so it doesn't always create a new layers dialog.
|
||||
|
||||
2002-11-05 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* libgimpmodule/gimpmodule.c: on error, always close the module
|
||||
|
|
|
@ -369,6 +369,8 @@ color_notebook_new_internal (GimpViewable *viewable,
|
|||
&cnp->rgb,
|
||||
&cnp->hsv,
|
||||
cnp->active_channel);
|
||||
gimp_color_selector_set_toggles_visible (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
FALSE);
|
||||
gtk_box_pack_start (GTK_BOX (left_vbox), cnp->notebook, TRUE, TRUE, 0);
|
||||
gtk_widget_show (cnp->notebook);
|
||||
|
||||
|
@ -447,6 +449,8 @@ color_notebook_new_internal (GimpViewable *viewable,
|
|||
&cnp->rgb,
|
||||
&cnp->hsv,
|
||||
cnp->active_channel);
|
||||
gimp_color_selector_set_toggles_visible (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
TRUE);
|
||||
gimp_color_selector_set_show_alpha (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
cnp->show_alpha);
|
||||
gtk_box_pack_start (GTK_BOX (right_vbox), cnp->scales, TRUE, TRUE, 0);
|
||||
|
@ -570,18 +574,38 @@ color_notebook_update (ColorNotebook *cnp,
|
|||
return;
|
||||
|
||||
if (update & UPDATE_NOTEBOOK)
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
{
|
||||
g_signal_handlers_block_by_func (G_OBJECT (cnp->notebook),
|
||||
G_CALLBACK (color_notebook_notebook_changed),
|
||||
cnp);
|
||||
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (cnp->notebook),
|
||||
G_CALLBACK (color_notebook_notebook_changed),
|
||||
cnp);
|
||||
}
|
||||
|
||||
if (update & UPDATE_CHANNEL)
|
||||
gimp_color_selector_set_channel (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
cnp->active_channel);
|
||||
|
||||
if (update & UPDATE_SCALES)
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
{
|
||||
g_signal_handlers_block_by_func (G_OBJECT (cnp->scales),
|
||||
G_CALLBACK (color_notebook_scales_changed),
|
||||
cnp);
|
||||
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (cnp->scales),
|
||||
G_CALLBACK (color_notebook_scales_changed),
|
||||
cnp);
|
||||
}
|
||||
|
||||
if (update & UPDATE_ORIG_COLOR)
|
||||
gimp_color_area_set_color (GIMP_COLOR_AREA (cnp->orig_color),
|
||||
|
@ -670,8 +694,8 @@ color_notebook_switch_page (GtkWidget *widget,
|
|||
set_channel =
|
||||
(GIMP_COLOR_SELECTOR_GET_CLASS (notebook->cur_page)->set_channel != NULL);
|
||||
|
||||
gimp_color_scales_set_toggles_sensitive (GIMP_COLOR_SCALES (cnp->scales),
|
||||
set_channel);
|
||||
gimp_color_selector_set_toggles_sensitive (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
set_channel);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "widgets/gimpbrusheditor.h"
|
||||
#include "widgets/gimpbrushfactoryview.h"
|
||||
#include "widgets/gimpbufferview.h"
|
||||
#include "widgets/gimpcoloreditor.h"
|
||||
#include "widgets/gimpcolormapeditor.h"
|
||||
#include "widgets/gimpcontainerlistview.h"
|
||||
#include "widgets/gimpcontainergridview.h"
|
||||
|
@ -126,6 +127,8 @@ static void dialogs_set_view_context_func (GimpDockable *dockable,
|
|||
GimpContext *context);
|
||||
static void dialogs_set_editor_context_func (GimpDockable *dockable,
|
||||
GimpContext *context);
|
||||
static void dialogs_set_color_editor_context_func (GimpDockable *dockable,
|
||||
GimpContext *context);
|
||||
static void dialogs_set_image_item_context_func (GimpDockable *dockable,
|
||||
GimpContext *context);
|
||||
static void dialogs_set_path_context_func (GimpDockable *dockable,
|
||||
|
@ -844,6 +847,22 @@ dialogs_selection_editor_new (GimpDialogFactory *factory,
|
|||
|
||||
/***** misc dockables *****/
|
||||
|
||||
GtkWidget *
|
||||
dialogs_color_editor_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size)
|
||||
{
|
||||
GtkWidget *view;
|
||||
|
||||
view = gimp_color_editor_new (context);
|
||||
|
||||
return dialogs_dockable_new (view,
|
||||
_("Color Editor"), _("Color"),
|
||||
GTK_STOCK_SELECT_COLOR,
|
||||
dialogs_stock_text_tab_func,
|
||||
dialogs_set_color_editor_context_func);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
dialogs_document_history_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
|
@ -1254,6 +1273,19 @@ dialogs_set_editor_context_func (GimpDockable *dockable,
|
|||
gimp_container_view_set_context (editor->view, context);
|
||||
}
|
||||
|
||||
static void
|
||||
dialogs_set_color_editor_context_func (GimpDockable *dockable,
|
||||
GimpContext *context)
|
||||
{
|
||||
GimpColorEditor *editor;
|
||||
|
||||
editor = (GimpColorEditor *) g_object_get_data (G_OBJECT (dockable),
|
||||
"gimp-dialogs-view");
|
||||
|
||||
if (editor)
|
||||
gimp_color_editor_set_context (editor, context);
|
||||
}
|
||||
|
||||
static void
|
||||
dialogs_set_image_item_context_func (GimpDockable *dockable,
|
||||
GimpContext *context)
|
||||
|
|
|
@ -127,6 +127,10 @@ GtkWidget * dialogs_selection_editor_new (GimpDialogFactory *factory,
|
|||
GimpContext *context,
|
||||
gint preview_size);
|
||||
|
||||
GtkWidget * dialogs_color_editor_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size);
|
||||
|
||||
GtkWidget * dialogs_document_history_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size);
|
||||
|
|
|
@ -76,6 +76,8 @@ static const GimpDialogFactoryEntry dock_entries[] =
|
|||
{ "gimp-indexed-palette", dialogs_indexed_palette_new, 32, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-selection-editor", dialogs_selection_editor_new, 0, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-color-editor", dialogs_color_editor_new, 0, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-document-history", dialogs_document_history_new, 48, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-brush-editor", dialogs_brush_editor_get, 0, TRUE, FALSE, FALSE, TRUE },
|
||||
|
|
|
@ -369,6 +369,8 @@ color_notebook_new_internal (GimpViewable *viewable,
|
|||
&cnp->rgb,
|
||||
&cnp->hsv,
|
||||
cnp->active_channel);
|
||||
gimp_color_selector_set_toggles_visible (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
FALSE);
|
||||
gtk_box_pack_start (GTK_BOX (left_vbox), cnp->notebook, TRUE, TRUE, 0);
|
||||
gtk_widget_show (cnp->notebook);
|
||||
|
||||
|
@ -447,6 +449,8 @@ color_notebook_new_internal (GimpViewable *viewable,
|
|||
&cnp->rgb,
|
||||
&cnp->hsv,
|
||||
cnp->active_channel);
|
||||
gimp_color_selector_set_toggles_visible (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
TRUE);
|
||||
gimp_color_selector_set_show_alpha (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
cnp->show_alpha);
|
||||
gtk_box_pack_start (GTK_BOX (right_vbox), cnp->scales, TRUE, TRUE, 0);
|
||||
|
@ -570,18 +574,38 @@ color_notebook_update (ColorNotebook *cnp,
|
|||
return;
|
||||
|
||||
if (update & UPDATE_NOTEBOOK)
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
{
|
||||
g_signal_handlers_block_by_func (G_OBJECT (cnp->notebook),
|
||||
G_CALLBACK (color_notebook_notebook_changed),
|
||||
cnp);
|
||||
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (cnp->notebook),
|
||||
G_CALLBACK (color_notebook_notebook_changed),
|
||||
cnp);
|
||||
}
|
||||
|
||||
if (update & UPDATE_CHANNEL)
|
||||
gimp_color_selector_set_channel (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
cnp->active_channel);
|
||||
|
||||
if (update & UPDATE_SCALES)
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
{
|
||||
g_signal_handlers_block_by_func (G_OBJECT (cnp->scales),
|
||||
G_CALLBACK (color_notebook_scales_changed),
|
||||
cnp);
|
||||
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (cnp->scales),
|
||||
G_CALLBACK (color_notebook_scales_changed),
|
||||
cnp);
|
||||
}
|
||||
|
||||
if (update & UPDATE_ORIG_COLOR)
|
||||
gimp_color_area_set_color (GIMP_COLOR_AREA (cnp->orig_color),
|
||||
|
@ -670,8 +694,8 @@ color_notebook_switch_page (GtkWidget *widget,
|
|||
set_channel =
|
||||
(GIMP_COLOR_SELECTOR_GET_CLASS (notebook->cur_page)->set_channel != NULL);
|
||||
|
||||
gimp_color_scales_set_toggles_sensitive (GIMP_COLOR_SCALES (cnp->scales),
|
||||
set_channel);
|
||||
gimp_color_selector_set_toggles_sensitive (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
set_channel);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "widgets/gimpbrusheditor.h"
|
||||
#include "widgets/gimpbrushfactoryview.h"
|
||||
#include "widgets/gimpbufferview.h"
|
||||
#include "widgets/gimpcoloreditor.h"
|
||||
#include "widgets/gimpcolormapeditor.h"
|
||||
#include "widgets/gimpcontainerlistview.h"
|
||||
#include "widgets/gimpcontainergridview.h"
|
||||
|
@ -126,6 +127,8 @@ static void dialogs_set_view_context_func (GimpDockable *dockable,
|
|||
GimpContext *context);
|
||||
static void dialogs_set_editor_context_func (GimpDockable *dockable,
|
||||
GimpContext *context);
|
||||
static void dialogs_set_color_editor_context_func (GimpDockable *dockable,
|
||||
GimpContext *context);
|
||||
static void dialogs_set_image_item_context_func (GimpDockable *dockable,
|
||||
GimpContext *context);
|
||||
static void dialogs_set_path_context_func (GimpDockable *dockable,
|
||||
|
@ -844,6 +847,22 @@ dialogs_selection_editor_new (GimpDialogFactory *factory,
|
|||
|
||||
/***** misc dockables *****/
|
||||
|
||||
GtkWidget *
|
||||
dialogs_color_editor_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size)
|
||||
{
|
||||
GtkWidget *view;
|
||||
|
||||
view = gimp_color_editor_new (context);
|
||||
|
||||
return dialogs_dockable_new (view,
|
||||
_("Color Editor"), _("Color"),
|
||||
GTK_STOCK_SELECT_COLOR,
|
||||
dialogs_stock_text_tab_func,
|
||||
dialogs_set_color_editor_context_func);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
dialogs_document_history_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
|
@ -1254,6 +1273,19 @@ dialogs_set_editor_context_func (GimpDockable *dockable,
|
|||
gimp_container_view_set_context (editor->view, context);
|
||||
}
|
||||
|
||||
static void
|
||||
dialogs_set_color_editor_context_func (GimpDockable *dockable,
|
||||
GimpContext *context)
|
||||
{
|
||||
GimpColorEditor *editor;
|
||||
|
||||
editor = (GimpColorEditor *) g_object_get_data (G_OBJECT (dockable),
|
||||
"gimp-dialogs-view");
|
||||
|
||||
if (editor)
|
||||
gimp_color_editor_set_context (editor, context);
|
||||
}
|
||||
|
||||
static void
|
||||
dialogs_set_image_item_context_func (GimpDockable *dockable,
|
||||
GimpContext *context)
|
||||
|
|
|
@ -127,6 +127,10 @@ GtkWidget * dialogs_selection_editor_new (GimpDialogFactory *factory,
|
|||
GimpContext *context,
|
||||
gint preview_size);
|
||||
|
||||
GtkWidget * dialogs_color_editor_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size);
|
||||
|
||||
GtkWidget * dialogs_document_history_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size);
|
||||
|
|
|
@ -76,6 +76,8 @@ static const GimpDialogFactoryEntry dock_entries[] =
|
|||
{ "gimp-indexed-palette", dialogs_indexed_palette_new, 32, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-selection-editor", dialogs_selection_editor_new, 0, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-color-editor", dialogs_color_editor_new, 0, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-document-history", dialogs_document_history_new, 48, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-brush-editor", dialogs_brush_editor_get, 0, TRUE, FALSE, FALSE, TRUE },
|
||||
|
|
127
app/gui/menus.c
127
app/gui/menus.c
|
@ -147,7 +147,7 @@ static GimpItemFactoryEntry toolbox_entries[] =
|
|||
|
||||
/* <Toolbox>/File/Dialogs */
|
||||
|
||||
{ { N_("/File/Dialogs/Layers, Channels & Paths..."), "<control>L",
|
||||
{ { N_("/File/Dialogs/Layers, Channels & Paths..."), NULL,
|
||||
dialogs_create_lc_cmd_callback, 0 },
|
||||
NULL,
|
||||
"file/dialogs/layers_and_channels.html", NULL },
|
||||
|
@ -167,6 +167,41 @@ static GimpItemFactoryEntry toolbox_entries[] =
|
|||
|
||||
SEPARATOR ("/File/Dialogs/---"),
|
||||
|
||||
{ { N_("/File/Dialogs/Layers..."), "<control>L",
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-layer-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Channels..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-channel-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Paths..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-vectors-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Indexed Palette..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-indexed-palette",
|
||||
"file/dialogs/indexed_palette.html", NULL },
|
||||
{ { N_("/File/Dialogs/Selection Editor..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT },
|
||||
"gimp-selection-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Navigation..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION },
|
||||
"gimp-navigation-view",
|
||||
NULL, NULL },
|
||||
|
||||
SEPARATOR ("/File/Dialogs/---"),
|
||||
|
||||
{ { N_("/File/Dialogs/Colors..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-color-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Brushes..."), "<control><shift>B",
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_PAINTBRUSH },
|
||||
|
@ -187,11 +222,6 @@ static GimpItemFactoryEntry toolbox_entries[] =
|
|||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-palette-list",
|
||||
"file/dialogs/palette_selection.html", NULL },
|
||||
{ { N_("/File/Dialogs/Indexed Palette..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-indexed-palette",
|
||||
"file/dialogs/indexed_palette.html", NULL },
|
||||
{ { N_("/File/Dialogs/Buffers..."), "foo",
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_PASTE },
|
||||
|
@ -200,16 +230,6 @@ static GimpItemFactoryEntry toolbox_entries[] =
|
|||
|
||||
SEPARATOR ("/File/Dialogs/---"),
|
||||
|
||||
{ { N_("/File/Dialogs/Selection Editor..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT },
|
||||
"gimp-selection-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Navigation..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION },
|
||||
"gimp-navigation-view",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Images..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-image-list",
|
||||
|
@ -883,7 +903,7 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
|
||||
/* <Image>/Dialogs */
|
||||
|
||||
{ { N_("/Dialogs/Layers, Channels & Paths..."), "<control>L",
|
||||
{ { N_("/Dialogs/Layers, Channels & Paths..."), NULL,
|
||||
dialogs_create_lc_cmd_callback, 0 },
|
||||
NULL,
|
||||
"dialogs/layers_and_channels.html", NULL },
|
||||
|
@ -903,6 +923,41 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
|
||||
SEPARATOR ("/Dialogs/---"),
|
||||
|
||||
{ { N_("/Dialogs/Layers..."), "<control>L",
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-layer-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Channels..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-channel-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Paths..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-vectors-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Indexed Palette..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-indexed-palette",
|
||||
"file/dialogs/indexed_palette.html", NULL },
|
||||
{ { N_("/Dialogs/Selection Editor..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT },
|
||||
"gimp-selection-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Navigation..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION },
|
||||
"gimp-navigation-view",
|
||||
NULL, NULL },
|
||||
|
||||
SEPARATOR ("/Dialogs/---"),
|
||||
|
||||
{ { N_("/Dialogs/Colors..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-color-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Brushes..."), "<control><shift>B",
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_PAINTBRUSH },
|
||||
|
@ -923,11 +978,6 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-palette-list",
|
||||
"dialogs/palette_selection.html", NULL },
|
||||
{ { N_("/Dialogs/Indexed Palette..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-indexed-palette",
|
||||
"dialogs/indexed_palette.html", NULL },
|
||||
{ { N_("/Dialogs/Buffers..."), "foo",
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_PASTE },
|
||||
|
@ -936,16 +986,6 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
|
||||
SEPARATOR ("/Dialogs/---"),
|
||||
|
||||
{ { N_("/Dialogs/Selection Editor..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT },
|
||||
"gimp-selection-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Navigation..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION },
|
||||
"gimp-navigation-view",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Images..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-image-list",
|
||||
|
@ -1399,14 +1439,25 @@ static GimpItemFactoryEntry dialogs_entries[] =
|
|||
{ { N_("/Select Tab"), NULL, NULL, 0 },
|
||||
NULL, NULL, NULL },
|
||||
|
||||
ADD_TAB (N_("/Add Tab/Layers..."), "gimp-layer-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Channels..."), "gimp-channel-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Paths..."), "gimp-vectors-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Tool Options..."), "gimp-tool-options",
|
||||
"<StockItem>", GIMP_STOCK_TOOL_OPTIONS),
|
||||
|
||||
SEPARATOR ("/Add Tab/---"),
|
||||
|
||||
ADD_TAB (N_("/Add Tab/Layers..."), "gimp-layer-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Channels..."), "gimp-channel-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Paths..."), "gimp-vectors-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Indexed Palette..."), "gimp-indexed-palette",
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR),
|
||||
ADD_TAB (N_("/Add Tab/Selection Editor..."), "gimp-selection-editor",
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT),
|
||||
ADD_TAB (N_("/Add Tab/Navigation..."), "gimp-navigation-view",
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION),
|
||||
|
||||
SEPARATOR ("/Add Tab/---"),
|
||||
|
||||
ADD_TAB (N_("/Add Tab/Colors..."), "gimp-color-editor",
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR),
|
||||
ADD_TAB (N_("/Add Tab/Brushes..."), "gimp-brush-grid",
|
||||
"<StockItem>", GIMP_STOCK_TOOL_PAINTBRUSH),
|
||||
ADD_TAB (N_("/Add Tab/Patterns..."), "gimp-pattern-grid",
|
||||
|
@ -1415,17 +1466,11 @@ static GimpItemFactoryEntry dialogs_entries[] =
|
|||
"<StockItem>", GIMP_STOCK_TOOL_BLEND),
|
||||
ADD_TAB (N_("/Add Tab/Palettes..."), "gimp-palette-list",
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR),
|
||||
ADD_TAB (N_("/Add Tab/Indexed Palette..."), "gimp-indexed-palette",
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR),
|
||||
ADD_TAB (N_("/Add Tab/Buffers..."), "gimp-buffer-list",
|
||||
"<StockItem>", GTK_STOCK_PASTE),
|
||||
|
||||
SEPARATOR ("/Add Tab/---"),
|
||||
|
||||
ADD_TAB (N_("/Add Tab/Selection Editor..."), "gimp-selection-editor",
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT),
|
||||
ADD_TAB (N_("/Add Tab/Navigation..."), "gimp-navigation-view",
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION),
|
||||
ADD_TAB (N_("/Add Tab/Images..."), "gimp-image-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Document History..."), "gimp-document-history",
|
||||
"<StockItem>", GTK_STOCK_OPEN),
|
||||
|
|
|
@ -147,7 +147,7 @@ static GimpItemFactoryEntry toolbox_entries[] =
|
|||
|
||||
/* <Toolbox>/File/Dialogs */
|
||||
|
||||
{ { N_("/File/Dialogs/Layers, Channels & Paths..."), "<control>L",
|
||||
{ { N_("/File/Dialogs/Layers, Channels & Paths..."), NULL,
|
||||
dialogs_create_lc_cmd_callback, 0 },
|
||||
NULL,
|
||||
"file/dialogs/layers_and_channels.html", NULL },
|
||||
|
@ -167,6 +167,41 @@ static GimpItemFactoryEntry toolbox_entries[] =
|
|||
|
||||
SEPARATOR ("/File/Dialogs/---"),
|
||||
|
||||
{ { N_("/File/Dialogs/Layers..."), "<control>L",
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-layer-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Channels..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-channel-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Paths..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-vectors-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Indexed Palette..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-indexed-palette",
|
||||
"file/dialogs/indexed_palette.html", NULL },
|
||||
{ { N_("/File/Dialogs/Selection Editor..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT },
|
||||
"gimp-selection-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Navigation..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION },
|
||||
"gimp-navigation-view",
|
||||
NULL, NULL },
|
||||
|
||||
SEPARATOR ("/File/Dialogs/---"),
|
||||
|
||||
{ { N_("/File/Dialogs/Colors..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-color-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Brushes..."), "<control><shift>B",
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_PAINTBRUSH },
|
||||
|
@ -187,11 +222,6 @@ static GimpItemFactoryEntry toolbox_entries[] =
|
|||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-palette-list",
|
||||
"file/dialogs/palette_selection.html", NULL },
|
||||
{ { N_("/File/Dialogs/Indexed Palette..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-indexed-palette",
|
||||
"file/dialogs/indexed_palette.html", NULL },
|
||||
{ { N_("/File/Dialogs/Buffers..."), "foo",
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_PASTE },
|
||||
|
@ -200,16 +230,6 @@ static GimpItemFactoryEntry toolbox_entries[] =
|
|||
|
||||
SEPARATOR ("/File/Dialogs/---"),
|
||||
|
||||
{ { N_("/File/Dialogs/Selection Editor..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT },
|
||||
"gimp-selection-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Navigation..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION },
|
||||
"gimp-navigation-view",
|
||||
NULL, NULL },
|
||||
{ { N_("/File/Dialogs/Images..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-image-list",
|
||||
|
@ -883,7 +903,7 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
|
||||
/* <Image>/Dialogs */
|
||||
|
||||
{ { N_("/Dialogs/Layers, Channels & Paths..."), "<control>L",
|
||||
{ { N_("/Dialogs/Layers, Channels & Paths..."), NULL,
|
||||
dialogs_create_lc_cmd_callback, 0 },
|
||||
NULL,
|
||||
"dialogs/layers_and_channels.html", NULL },
|
||||
|
@ -903,6 +923,41 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
|
||||
SEPARATOR ("/Dialogs/---"),
|
||||
|
||||
{ { N_("/Dialogs/Layers..."), "<control>L",
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-layer-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Channels..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-channel-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Paths..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-vectors-list",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Indexed Palette..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-indexed-palette",
|
||||
"file/dialogs/indexed_palette.html", NULL },
|
||||
{ { N_("/Dialogs/Selection Editor..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT },
|
||||
"gimp-selection-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Navigation..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION },
|
||||
"gimp-navigation-view",
|
||||
NULL, NULL },
|
||||
|
||||
SEPARATOR ("/Dialogs/---"),
|
||||
|
||||
{ { N_("/Dialogs/Colors..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-color-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Brushes..."), "<control><shift>B",
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_PAINTBRUSH },
|
||||
|
@ -923,11 +978,6 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-palette-list",
|
||||
"dialogs/palette_selection.html", NULL },
|
||||
{ { N_("/Dialogs/Indexed Palette..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR },
|
||||
"gimp-indexed-palette",
|
||||
"dialogs/indexed_palette.html", NULL },
|
||||
{ { N_("/Dialogs/Buffers..."), "foo",
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GTK_STOCK_PASTE },
|
||||
|
@ -936,16 +986,6 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
|
||||
SEPARATOR ("/Dialogs/---"),
|
||||
|
||||
{ { N_("/Dialogs/Selection Editor..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT },
|
||||
"gimp-selection-editor",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Navigation..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION },
|
||||
"gimp-navigation-view",
|
||||
NULL, NULL },
|
||||
{ { N_("/Dialogs/Images..."), NULL,
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp-image-list",
|
||||
|
@ -1399,14 +1439,25 @@ static GimpItemFactoryEntry dialogs_entries[] =
|
|||
{ { N_("/Select Tab"), NULL, NULL, 0 },
|
||||
NULL, NULL, NULL },
|
||||
|
||||
ADD_TAB (N_("/Add Tab/Layers..."), "gimp-layer-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Channels..."), "gimp-channel-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Paths..."), "gimp-vectors-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Tool Options..."), "gimp-tool-options",
|
||||
"<StockItem>", GIMP_STOCK_TOOL_OPTIONS),
|
||||
|
||||
SEPARATOR ("/Add Tab/---"),
|
||||
|
||||
ADD_TAB (N_("/Add Tab/Layers..."), "gimp-layer-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Channels..."), "gimp-channel-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Paths..."), "gimp-vectors-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Indexed Palette..."), "gimp-indexed-palette",
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR),
|
||||
ADD_TAB (N_("/Add Tab/Selection Editor..."), "gimp-selection-editor",
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT),
|
||||
ADD_TAB (N_("/Add Tab/Navigation..."), "gimp-navigation-view",
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION),
|
||||
|
||||
SEPARATOR ("/Add Tab/---"),
|
||||
|
||||
ADD_TAB (N_("/Add Tab/Colors..."), "gimp-color-editor",
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR),
|
||||
ADD_TAB (N_("/Add Tab/Brushes..."), "gimp-brush-grid",
|
||||
"<StockItem>", GIMP_STOCK_TOOL_PAINTBRUSH),
|
||||
ADD_TAB (N_("/Add Tab/Patterns..."), "gimp-pattern-grid",
|
||||
|
@ -1415,17 +1466,11 @@ static GimpItemFactoryEntry dialogs_entries[] =
|
|||
"<StockItem>", GIMP_STOCK_TOOL_BLEND),
|
||||
ADD_TAB (N_("/Add Tab/Palettes..."), "gimp-palette-list",
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR),
|
||||
ADD_TAB (N_("/Add Tab/Indexed Palette..."), "gimp-indexed-palette",
|
||||
"<StockItem>", GTK_STOCK_SELECT_COLOR),
|
||||
ADD_TAB (N_("/Add Tab/Buffers..."), "gimp-buffer-list",
|
||||
"<StockItem>", GTK_STOCK_PASTE),
|
||||
|
||||
SEPARATOR ("/Add Tab/---"),
|
||||
|
||||
ADD_TAB (N_("/Add Tab/Selection Editor..."), "gimp-selection-editor",
|
||||
"<StockItem>", GIMP_STOCK_TOOL_RECT_SELECT),
|
||||
ADD_TAB (N_("/Add Tab/Navigation..."), "gimp-navigation-view",
|
||||
"<StockItem>", GIMP_STOCK_NAVIGATION),
|
||||
ADD_TAB (N_("/Add Tab/Images..."), "gimp-image-list", NULL, NULL),
|
||||
ADD_TAB (N_("/Add Tab/Document History..."), "gimp-document-history",
|
||||
"<StockItem>", GTK_STOCK_OPEN),
|
||||
|
|
|
@ -33,6 +33,8 @@ libappwidgets_a_sources = \
|
|||
gimpchannellistitem.h \
|
||||
gimpchannellistview.c \
|
||||
gimpchannellistview.h \
|
||||
gimpcoloreditor.c \
|
||||
gimpcoloreditor.h \
|
||||
gimpcolormapeditor.c \
|
||||
gimpcolormapeditor.h \
|
||||
gimpcolorpanel.c \
|
||||
|
|
|
@ -369,6 +369,8 @@ color_notebook_new_internal (GimpViewable *viewable,
|
|||
&cnp->rgb,
|
||||
&cnp->hsv,
|
||||
cnp->active_channel);
|
||||
gimp_color_selector_set_toggles_visible (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
FALSE);
|
||||
gtk_box_pack_start (GTK_BOX (left_vbox), cnp->notebook, TRUE, TRUE, 0);
|
||||
gtk_widget_show (cnp->notebook);
|
||||
|
||||
|
@ -447,6 +449,8 @@ color_notebook_new_internal (GimpViewable *viewable,
|
|||
&cnp->rgb,
|
||||
&cnp->hsv,
|
||||
cnp->active_channel);
|
||||
gimp_color_selector_set_toggles_visible (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
TRUE);
|
||||
gimp_color_selector_set_show_alpha (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
cnp->show_alpha);
|
||||
gtk_box_pack_start (GTK_BOX (right_vbox), cnp->scales, TRUE, TRUE, 0);
|
||||
|
@ -570,18 +574,38 @@ color_notebook_update (ColorNotebook *cnp,
|
|||
return;
|
||||
|
||||
if (update & UPDATE_NOTEBOOK)
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
{
|
||||
g_signal_handlers_block_by_func (G_OBJECT (cnp->notebook),
|
||||
G_CALLBACK (color_notebook_notebook_changed),
|
||||
cnp);
|
||||
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (cnp->notebook),
|
||||
G_CALLBACK (color_notebook_notebook_changed),
|
||||
cnp);
|
||||
}
|
||||
|
||||
if (update & UPDATE_CHANNEL)
|
||||
gimp_color_selector_set_channel (GIMP_COLOR_SELECTOR (cnp->notebook),
|
||||
cnp->active_channel);
|
||||
|
||||
if (update & UPDATE_SCALES)
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
{
|
||||
g_signal_handlers_block_by_func (G_OBJECT (cnp->scales),
|
||||
G_CALLBACK (color_notebook_scales_changed),
|
||||
cnp);
|
||||
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
&cnp->rgb,
|
||||
&cnp->hsv);
|
||||
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (cnp->scales),
|
||||
G_CALLBACK (color_notebook_scales_changed),
|
||||
cnp);
|
||||
}
|
||||
|
||||
if (update & UPDATE_ORIG_COLOR)
|
||||
gimp_color_area_set_color (GIMP_COLOR_AREA (cnp->orig_color),
|
||||
|
@ -670,8 +694,8 @@ color_notebook_switch_page (GtkWidget *widget,
|
|||
set_channel =
|
||||
(GIMP_COLOR_SELECTOR_GET_CLASS (notebook->cur_page)->set_channel != NULL);
|
||||
|
||||
gimp_color_scales_set_toggles_sensitive (GIMP_COLOR_SCALES (cnp->scales),
|
||||
set_channel);
|
||||
gimp_color_selector_set_toggles_sensitive (GIMP_COLOR_SELECTOR (cnp->scales),
|
||||
set_channel);
|
||||
}
|
||||
|
||||
|
||||
|
|
563
app/widgets/gimpcoloreditor.c
Normal file
563
app/widgets/gimpcoloreditor.c
Normal file
|
@ -0,0 +1,563 @@
|
|||
/* The GIMP -- an image manipulation program
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* gimpcoloreditor.c
|
||||
* Copyright (C) 2002 Michael Natterer <mitch@gimp.org>
|
||||
*
|
||||
* 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 <gdk/gdkkeysyms.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "libgimpcolor/gimpcolor.h"
|
||||
#include "libgimpwidgets/gimpwidgets.h"
|
||||
|
||||
#include "widgets-types.h"
|
||||
|
||||
#include "core/gimpcontext.h"
|
||||
|
||||
#include "gimpcoloreditor.h"
|
||||
|
||||
#include "libgimp/gimpintl.h"
|
||||
|
||||
|
||||
static void gimp_color_editor_class_init (GimpColorEditorClass *klass);
|
||||
static void gimp_color_editor_init (GimpColorEditor *editor);
|
||||
|
||||
static void gimp_color_editor_destroy (GtkObject *object);
|
||||
|
||||
static void gimp_color_editor_fg_changed (GimpContext *context,
|
||||
const GimpRGB *rgb,
|
||||
GimpColorEditor *editor);
|
||||
static void gimp_color_editor_bg_changed (GimpContext *context,
|
||||
const GimpRGB *rgb,
|
||||
GimpColorEditor *editor);
|
||||
static void gimp_color_editor_color_changed (GimpColorSelector *selector,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv,
|
||||
GimpColorEditor *editor);
|
||||
static void gimp_color_editor_area_changed (GimpColorArea *color_area,
|
||||
GimpColorEditor *editor);
|
||||
static void gimp_color_editor_tab_toggled (GtkWidget *widget,
|
||||
GimpColorEditor *editor);
|
||||
static void gimp_color_editor_fg_bg_toggled (GtkWidget *widget,
|
||||
GimpColorEditor *editor);
|
||||
static void gimp_color_editor_color_picked (GtkWidget *widget,
|
||||
const GimpRGB *rgb,
|
||||
GimpColorEditor *editor);
|
||||
|
||||
|
||||
static GimpEditorClass *parent_class = NULL;
|
||||
|
||||
|
||||
GType
|
||||
gimp_color_editor_get_type (void)
|
||||
{
|
||||
static GType editor_type = 0;
|
||||
|
||||
if (! editor_type)
|
||||
{
|
||||
static const GTypeInfo editor_info =
|
||||
{
|
||||
sizeof (GimpColorEditorClass),
|
||||
(GBaseInitFunc) NULL,
|
||||
(GBaseFinalizeFunc) NULL,
|
||||
(GClassInitFunc) gimp_color_editor_class_init,
|
||||
NULL, /* class_finalize */
|
||||
NULL, /* class_data */
|
||||
sizeof (GimpColorEditor),
|
||||
0, /* n_preallocs */
|
||||
(GInstanceInitFunc) gimp_color_editor_init,
|
||||
};
|
||||
|
||||
editor_type = g_type_register_static (GIMP_TYPE_EDITOR,
|
||||
"GimpColorEditor",
|
||||
&editor_info, 0);
|
||||
}
|
||||
|
||||
return editor_type;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_editor_class_init (GimpColorEditorClass* klass)
|
||||
{
|
||||
GtkObjectClass *object_class;
|
||||
|
||||
object_class = GTK_OBJECT_CLASS (klass);
|
||||
|
||||
parent_class = g_type_class_peek_parent (klass);
|
||||
|
||||
object_class->destroy = gimp_color_editor_destroy;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_editor_init (GimpColorEditor *editor)
|
||||
{
|
||||
GtkWidget *notebook;
|
||||
gint content_spacing;
|
||||
gint button_spacing;
|
||||
GtkIconSize button_icon_size;
|
||||
GimpRGB rgb;
|
||||
GimpHSV hsv;
|
||||
GList *list;
|
||||
GSList *group;
|
||||
|
||||
editor->context = NULL;
|
||||
editor->edit_bg = FALSE;
|
||||
|
||||
gimp_rgba_set (&rgb, 0.0, 0.0, 0.0, 1.0);
|
||||
gimp_rgb_to_hsv (&rgb, &hsv);
|
||||
|
||||
gtk_widget_style_get (GTK_WIDGET (editor),
|
||||
"content_spacing", &content_spacing,
|
||||
"button_spacing", &button_spacing,
|
||||
"button_icon_size", &button_icon_size,
|
||||
NULL);
|
||||
|
||||
editor->hbox = gtk_hbox_new (TRUE, button_spacing);
|
||||
gtk_box_pack_start (GTK_BOX (editor), editor->hbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (editor->hbox);
|
||||
|
||||
editor->notebook = gimp_color_selector_new (GIMP_TYPE_COLOR_NOTEBOOK,
|
||||
&rgb, &hsv,
|
||||
GIMP_COLOR_SELECTOR_HUE);
|
||||
gimp_color_selector_set_show_alpha (GIMP_COLOR_SELECTOR (editor->notebook),
|
||||
FALSE);
|
||||
gtk_box_pack_start (GTK_BOX (editor), editor->notebook,
|
||||
TRUE, TRUE, content_spacing);
|
||||
gtk_widget_show (editor->notebook);
|
||||
|
||||
g_signal_connect (G_OBJECT (editor->notebook), "color_changed",
|
||||
G_CALLBACK (gimp_color_editor_color_changed),
|
||||
editor);
|
||||
|
||||
notebook = GIMP_COLOR_NOTEBOOK (editor->notebook)->notebook;
|
||||
|
||||
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE);
|
||||
gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE);
|
||||
|
||||
gimp_color_notebook_set_has_page (GIMP_COLOR_NOTEBOOK (editor->notebook),
|
||||
GIMP_TYPE_COLOR_SCALES, TRUE);
|
||||
|
||||
group = NULL;
|
||||
|
||||
for (list = GIMP_COLOR_NOTEBOOK (editor->notebook)->selectors;
|
||||
list;
|
||||
list = g_list_next (list))
|
||||
{
|
||||
GimpColorSelector *selector;
|
||||
GimpColorSelectorClass *selector_class;
|
||||
GtkWidget *button;
|
||||
GtkWidget *image;
|
||||
|
||||
selector = GIMP_COLOR_SELECTOR (list->data);
|
||||
selector_class = GIMP_COLOR_SELECTOR_GET_CLASS (selector);
|
||||
|
||||
button = gtk_radio_button_new (group);
|
||||
group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (button));
|
||||
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);
|
||||
gtk_box_pack_start (GTK_BOX (editor->hbox), button, TRUE, TRUE, 0);
|
||||
gtk_widget_show (button);
|
||||
|
||||
image = gtk_image_new_from_stock (selector_class->stock_id,
|
||||
GTK_ICON_SIZE_BUTTON);
|
||||
gtk_container_add (GTK_CONTAINER (button), image);
|
||||
gtk_widget_show (image);
|
||||
|
||||
if (selector_class->name)
|
||||
{
|
||||
gchar *stripped_name;
|
||||
gchar *p, *q;
|
||||
|
||||
stripped_name = g_strdup (selector_class->name);
|
||||
|
||||
p = q = stripped_name;
|
||||
|
||||
while (*q)
|
||||
{
|
||||
if (*q == '_')
|
||||
q++;
|
||||
else
|
||||
*p++ = *q++;
|
||||
}
|
||||
|
||||
*p = '\0';
|
||||
|
||||
gimp_help_set_help_data (button, stripped_name,
|
||||
selector_class->help_page);
|
||||
|
||||
g_free (stripped_name);
|
||||
}
|
||||
|
||||
g_object_set_data (G_OBJECT (button), "selector", selector);
|
||||
|
||||
g_signal_connect (G_OBJECT (button), "toggled",
|
||||
G_CALLBACK (gimp_color_editor_tab_toggled),
|
||||
editor);
|
||||
}
|
||||
|
||||
/* The color picker */
|
||||
{
|
||||
GtkWidget *button;
|
||||
|
||||
button = gimp_pick_button_new ();
|
||||
gtk_box_pack_start (GTK_BOX (editor->hbox), button, TRUE, TRUE, 0);
|
||||
gtk_widget_show (button);
|
||||
|
||||
g_signal_connect (G_OBJECT (button), "color_picked",
|
||||
G_CALLBACK (gimp_color_editor_color_picked),
|
||||
editor);
|
||||
}
|
||||
|
||||
/* FG/BG toggles */
|
||||
{
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *frame;
|
||||
gint i;
|
||||
|
||||
static const gchar *labels[] =
|
||||
{
|
||||
N_("FG"), N_("BG")
|
||||
};
|
||||
static const gchar *tips[] =
|
||||
{
|
||||
N_("Edit Foreground Color"), N_("Edit Background Color")
|
||||
};
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, button_spacing);
|
||||
gtk_box_pack_start (GTK_BOX (editor), hbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, button_spacing);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (vbox);
|
||||
|
||||
group = NULL;
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (labels); i++)
|
||||
{
|
||||
GtkWidget *button;
|
||||
|
||||
button = gtk_radio_button_new_with_mnemonic (group,
|
||||
gettext (labels[i]));
|
||||
group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (button));
|
||||
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
||||
gtk_widget_show (button);
|
||||
|
||||
gimp_help_set_help_data (button, gettext (tips[i]), NULL);
|
||||
|
||||
g_object_set_data (G_OBJECT (button), "edit_bg",
|
||||
GINT_TO_POINTER (i == 1));
|
||||
|
||||
if ((i == 1) == editor->edit_bg)
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
|
||||
|
||||
g_signal_connect (G_OBJECT (button), "toggled",
|
||||
G_CALLBACK (gimp_color_editor_fg_bg_toggled),
|
||||
editor);
|
||||
}
|
||||
|
||||
frame = gtk_frame_new (NULL);
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
|
||||
gtk_box_pack_end (GTK_BOX (hbox), frame, TRUE, TRUE, 0);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
editor->color_area = gimp_color_area_new (&rgb, GIMP_COLOR_AREA_FLAT,
|
||||
GDK_BUTTON1_MASK |
|
||||
GDK_BUTTON2_MASK);
|
||||
gtk_container_add (GTK_CONTAINER (frame), editor->color_area);
|
||||
gtk_widget_show (editor->color_area);
|
||||
|
||||
g_signal_connect (G_OBJECT (editor->color_area), "color_changed",
|
||||
G_CALLBACK (gimp_color_editor_area_changed),
|
||||
editor);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_editor_destroy (GtkObject *object)
|
||||
{
|
||||
GimpColorEditor *editor;
|
||||
|
||||
editor = GIMP_COLOR_EDITOR (object);
|
||||
|
||||
if (editor->context)
|
||||
gimp_color_editor_set_context (editor, NULL);
|
||||
|
||||
GTK_OBJECT_CLASS (parent_class)->destroy (object);
|
||||
}
|
||||
|
||||
|
||||
/* public functions */
|
||||
|
||||
GtkWidget *
|
||||
gimp_color_editor_new (GimpContext *context)
|
||||
{
|
||||
GimpColorEditor *editor;
|
||||
|
||||
g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL);
|
||||
|
||||
editor = g_object_new (GIMP_TYPE_COLOR_EDITOR, NULL);
|
||||
|
||||
if (context)
|
||||
gimp_color_editor_set_context (editor, context);
|
||||
|
||||
return GTK_WIDGET (editor);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_color_editor_set_context (GimpColorEditor *editor,
|
||||
GimpContext *context)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_COLOR_EDITOR (editor));
|
||||
g_return_if_fail (context == NULL || GIMP_IS_CONTEXT (context));
|
||||
|
||||
if (context == editor->context)
|
||||
return;
|
||||
|
||||
if (editor->context)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (G_OBJECT (editor->context),
|
||||
gimp_color_editor_fg_changed,
|
||||
editor);
|
||||
g_signal_handlers_disconnect_by_func (G_OBJECT (editor->context),
|
||||
gimp_color_editor_bg_changed,
|
||||
editor);
|
||||
|
||||
g_object_unref (editor->context);
|
||||
editor->context = NULL;
|
||||
}
|
||||
|
||||
if (context)
|
||||
{
|
||||
GimpRGB rgb;
|
||||
|
||||
editor->context = g_object_ref (context);
|
||||
|
||||
g_signal_connect (G_OBJECT (editor->context), "foreground_changed",
|
||||
G_CALLBACK (gimp_color_editor_fg_changed),
|
||||
editor);
|
||||
g_signal_connect (G_OBJECT (editor->context), "background_changed",
|
||||
G_CALLBACK (gimp_color_editor_bg_changed),
|
||||
editor);
|
||||
|
||||
if (editor->edit_bg)
|
||||
{
|
||||
gimp_context_get_background (editor->context, &rgb);
|
||||
gimp_color_editor_bg_changed (editor->context, &rgb, editor);
|
||||
}
|
||||
else
|
||||
{
|
||||
gimp_context_get_foreground (editor->context, &rgb);
|
||||
gimp_color_editor_fg_changed (editor->context, &rgb, editor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* public functions */
|
||||
|
||||
static void
|
||||
gimp_color_editor_fg_changed (GimpContext *context,
|
||||
const GimpRGB *rgb,
|
||||
GimpColorEditor *editor)
|
||||
{
|
||||
if (! editor->edit_bg)
|
||||
{
|
||||
GimpHSV hsv;
|
||||
|
||||
gimp_rgb_to_hsv (rgb, &hsv);
|
||||
|
||||
g_signal_handlers_block_by_func (G_OBJECT (editor->notebook),
|
||||
gimp_color_editor_color_changed,
|
||||
editor);
|
||||
g_signal_handlers_block_by_func (G_OBJECT (editor->color_area),
|
||||
gimp_color_editor_area_changed,
|
||||
editor);
|
||||
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (editor->notebook),
|
||||
rgb, &hsv);
|
||||
gimp_color_area_set_color (GIMP_COLOR_AREA (editor->color_area), rgb);
|
||||
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (editor->notebook),
|
||||
gimp_color_editor_color_changed,
|
||||
editor);
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (editor->color_area),
|
||||
gimp_color_editor_area_changed,
|
||||
editor);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_editor_bg_changed (GimpContext *context,
|
||||
const GimpRGB *rgb,
|
||||
GimpColorEditor *editor)
|
||||
{
|
||||
if (editor->edit_bg)
|
||||
{
|
||||
GimpHSV hsv;
|
||||
|
||||
gimp_rgb_to_hsv (rgb, &hsv);
|
||||
|
||||
g_signal_handlers_block_by_func (G_OBJECT (editor->notebook),
|
||||
gimp_color_editor_color_changed,
|
||||
editor);
|
||||
g_signal_handlers_block_by_func (G_OBJECT (editor->color_area),
|
||||
gimp_color_editor_area_changed,
|
||||
editor);
|
||||
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (editor->notebook),
|
||||
rgb, &hsv);
|
||||
gimp_color_area_set_color (GIMP_COLOR_AREA (editor->color_area), rgb);
|
||||
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (editor->notebook),
|
||||
gimp_color_editor_color_changed,
|
||||
editor);
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (editor->color_area),
|
||||
gimp_color_editor_area_changed,
|
||||
editor);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_editor_color_changed (GimpColorSelector *selector,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv,
|
||||
GimpColorEditor *editor)
|
||||
{
|
||||
if (editor->context)
|
||||
{
|
||||
if (editor->edit_bg)
|
||||
{
|
||||
g_signal_handlers_block_by_func (G_OBJECT (editor->context),
|
||||
gimp_color_editor_bg_changed,
|
||||
editor);
|
||||
|
||||
gimp_context_set_background (editor->context, rgb);
|
||||
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (editor->context),
|
||||
gimp_color_editor_bg_changed,
|
||||
editor);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_signal_handlers_block_by_func (G_OBJECT (editor->context),
|
||||
gimp_color_editor_fg_changed,
|
||||
editor);
|
||||
|
||||
gimp_context_set_foreground (editor->context, rgb);
|
||||
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (editor->context),
|
||||
gimp_color_editor_fg_changed,
|
||||
editor);
|
||||
}
|
||||
}
|
||||
|
||||
g_signal_handlers_block_by_func (G_OBJECT (editor->color_area),
|
||||
gimp_color_editor_area_changed,
|
||||
editor);
|
||||
|
||||
gimp_color_area_set_color (GIMP_COLOR_AREA (editor->color_area), rgb);
|
||||
|
||||
g_signal_handlers_unblock_by_func (G_OBJECT (editor->color_area),
|
||||
gimp_color_editor_area_changed,
|
||||
editor);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_editor_area_changed (GimpColorArea *color_area,
|
||||
GimpColorEditor *editor)
|
||||
{
|
||||
GimpRGB rgb;
|
||||
GimpHSV hsv;
|
||||
|
||||
gimp_color_area_get_color (color_area, &rgb);
|
||||
gimp_rgb_to_hsv (&rgb, &hsv);
|
||||
|
||||
gimp_color_selector_set_color (GIMP_COLOR_SELECTOR (editor->notebook),
|
||||
&rgb, &hsv);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_editor_tab_toggled (GtkWidget *widget,
|
||||
GimpColorEditor *editor)
|
||||
{
|
||||
if (GTK_TOGGLE_BUTTON (widget)->active)
|
||||
{
|
||||
GtkWidget *selector;
|
||||
|
||||
selector = g_object_get_data (G_OBJECT (widget), "selector");
|
||||
|
||||
if (selector)
|
||||
{
|
||||
GtkWidget *notebook;
|
||||
gint page_num;
|
||||
|
||||
notebook = GIMP_COLOR_NOTEBOOK (editor->notebook)->notebook;
|
||||
|
||||
page_num = gtk_notebook_page_num (GTK_NOTEBOOK (notebook), selector);
|
||||
|
||||
if (page_num >= 0)
|
||||
gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), page_num);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_editor_fg_bg_toggled (GtkWidget *widget,
|
||||
GimpColorEditor *editor)
|
||||
{
|
||||
if (GTK_TOGGLE_BUTTON (widget)->active)
|
||||
{
|
||||
gboolean edit_bg;
|
||||
|
||||
edit_bg = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
|
||||
"edit_bg"));
|
||||
|
||||
if (edit_bg != editor->edit_bg)
|
||||
{
|
||||
editor->edit_bg = edit_bg;
|
||||
|
||||
if (editor->context)
|
||||
{
|
||||
GimpRGB rgb;
|
||||
|
||||
if (edit_bg)
|
||||
{
|
||||
gimp_context_get_background (editor->context, &rgb);
|
||||
gimp_color_editor_bg_changed (editor->context, &rgb, editor);
|
||||
}
|
||||
else
|
||||
{
|
||||
gimp_context_get_foreground (editor->context, &rgb);
|
||||
gimp_color_editor_fg_changed (editor->context, &rgb, editor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_editor_color_picked (GtkWidget *widget,
|
||||
const GimpRGB *rgb,
|
||||
GimpColorEditor *editor)
|
||||
{
|
||||
gimp_color_area_set_color (GIMP_COLOR_AREA (editor->color_area), rgb);
|
||||
}
|
64
app/widgets/gimpcoloreditor.h
Normal file
64
app/widgets/gimpcoloreditor.h
Normal file
|
@ -0,0 +1,64 @@
|
|||
/* The GIMP -- an image manipulation program
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* gimpcoloreditor.h
|
||||
* Copyright (C) 2002 Michael Natterer <mitch@gimp.org>
|
||||
*
|
||||
* 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 __GIMP_COLOR_EDITOR_H__
|
||||
#define __GIMP_COLOR_EDITOR_H__
|
||||
|
||||
|
||||
#include "gimpeditor.h"
|
||||
|
||||
|
||||
#define GIMP_TYPE_COLOR_EDITOR (gimp_color_editor_get_type ())
|
||||
#define GIMP_COLOR_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_COLOR_EDITOR, GimpColorEditor))
|
||||
#define GIMP_COLOR_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_COLOR_EDITOR, GimpColorEditorClass))
|
||||
#define GIMP_IS_COLOR_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_COLOR_EDITOR))
|
||||
#define GIMP_IS_COLOR_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_COLOR_EDITOR))
|
||||
#define GIMP_COLOR_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_COLOR_EDITOR, GimpColorEditorClass))
|
||||
|
||||
|
||||
typedef struct _GimpColorEditorClass GimpColorEditorClass;
|
||||
|
||||
struct _GimpColorEditor
|
||||
{
|
||||
GimpEditor parent_instance;
|
||||
|
||||
GimpContext *context;
|
||||
gboolean edit_bg;
|
||||
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *notebook;
|
||||
GtkWidget *color_area;
|
||||
};
|
||||
|
||||
struct _GimpColorEditorClass
|
||||
{
|
||||
GimpEditorClass parent_class;
|
||||
};
|
||||
|
||||
|
||||
GType gimp_color_editor_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GtkWidget * gimp_color_editor_new (GimpContext *context);
|
||||
void gimp_color_editor_set_context (GimpColorEditor *editor,
|
||||
GimpContext *context);
|
||||
|
||||
|
||||
#endif /* __GIMP_COLOR_EDITOR_H__ */
|
|
@ -55,6 +55,7 @@ typedef struct _GimpMenuItem GimpMenuItem;
|
|||
typedef struct _GimpEnumMenu GimpEnumMenu;
|
||||
|
||||
typedef struct _GimpEditor GimpEditor;
|
||||
typedef struct _GimpColorEditor GimpColorEditor;
|
||||
typedef struct _GimpColormapEditor GimpColormapEditor;
|
||||
typedef struct _GimpDataEditor GimpDataEditor;
|
||||
typedef struct _GimpBrushEditor GimpBrushEditor;
|
||||
|
|
|
@ -41,6 +41,10 @@ static void gimp_color_notebook_init (GimpColorNotebook *notebook);
|
|||
|
||||
static void gimp_color_notebook_finalize (GObject *object);
|
||||
|
||||
static void gimp_color_notebook_togg_visible (GimpColorSelector *selector,
|
||||
gboolean visible);
|
||||
static void gimp_color_notebook_togg_sensitive (GimpColorSelector *selector,
|
||||
gboolean sensitive);
|
||||
static void gimp_color_notebook_set_show_alpha (GimpColorSelector *selector,
|
||||
gboolean show_alpha);
|
||||
static void gimp_color_notebook_set_color (GimpColorSelector *selector,
|
||||
|
@ -105,13 +109,15 @@ gimp_color_notebook_class_init (GimpColorNotebookClass *klass)
|
|||
|
||||
parent_class = g_type_class_peek_parent (klass);
|
||||
|
||||
object_class->finalize = gimp_color_notebook_finalize;
|
||||
object_class->finalize = gimp_color_notebook_finalize;
|
||||
|
||||
selector_class->name = "Notebook";
|
||||
selector_class->help_page = "notebook.html";
|
||||
selector_class->set_show_alpha = gimp_color_notebook_set_show_alpha;
|
||||
selector_class->set_color = gimp_color_notebook_set_color;
|
||||
selector_class->set_channel = gimp_color_notebook_set_channel;
|
||||
selector_class->name = "Notebook";
|
||||
selector_class->help_page = "notebook.html";
|
||||
selector_class->set_toggles_visible = gimp_color_notebook_togg_visible;
|
||||
selector_class->set_toggles_sensitive = gimp_color_notebook_togg_sensitive;
|
||||
selector_class->set_show_alpha = gimp_color_notebook_set_show_alpha;
|
||||
selector_class->set_color = gimp_color_notebook_set_color;
|
||||
selector_class->set_channel = gimp_color_notebook_set_channel;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -200,6 +206,42 @@ gimp_color_notebook_finalize (GObject *object)
|
|||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_notebook_togg_visible (GimpColorSelector *selector,
|
||||
gboolean visible)
|
||||
{
|
||||
GimpColorNotebook *notebook;
|
||||
GimpColorSelector *child;
|
||||
GList *list;
|
||||
|
||||
notebook = GIMP_COLOR_NOTEBOOK (selector);
|
||||
|
||||
for (list = notebook->selectors; list; list = g_list_next (list))
|
||||
{
|
||||
child = (GimpColorSelector *) list->data;
|
||||
|
||||
gimp_color_selector_set_toggles_visible (child, visible);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_notebook_togg_sensitive (GimpColorSelector *selector,
|
||||
gboolean sensitive)
|
||||
{
|
||||
GimpColorNotebook *notebook;
|
||||
GimpColorSelector *child;
|
||||
GList *list;
|
||||
|
||||
notebook = GIMP_COLOR_NOTEBOOK (selector);
|
||||
|
||||
for (list = notebook->selectors; list; list = g_list_next (list))
|
||||
{
|
||||
child = (GimpColorSelector *) list->data;
|
||||
|
||||
gimp_color_selector_set_toggles_sensitive (child, sensitive);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_notebook_set_show_alpha (GimpColorSelector *selector,
|
||||
gboolean show_alpha)
|
||||
|
@ -322,3 +364,79 @@ gimp_color_notebook_channel_changed (GimpColorSelector *page,
|
|||
|
||||
gimp_color_selector_channel_changed (selector);
|
||||
}
|
||||
|
||||
|
||||
/* public function */
|
||||
|
||||
GtkWidget *
|
||||
gimp_color_notebook_set_has_page (GimpColorNotebook *notebook,
|
||||
GType page_type,
|
||||
gboolean has_page)
|
||||
{
|
||||
GimpColorSelector *selector;
|
||||
GimpColorSelector *page;
|
||||
GtkWidget *label;
|
||||
GList *list;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_COLOR_NOTEBOOK (notebook), NULL);
|
||||
g_return_val_if_fail (g_type_is_a (page_type, GIMP_TYPE_COLOR_SELECTOR),
|
||||
NULL);
|
||||
g_return_val_if_fail (! g_type_is_a (page_type, GIMP_TYPE_COLOR_NOTEBOOK),
|
||||
NULL);
|
||||
|
||||
selector = GIMP_COLOR_SELECTOR (notebook);
|
||||
|
||||
for (list = notebook->selectors; list; list = g_list_next (list))
|
||||
{
|
||||
page = GIMP_COLOR_SELECTOR (list->data);
|
||||
|
||||
if (G_TYPE_FROM_INSTANCE (page) == page_type)
|
||||
{
|
||||
if (has_page)
|
||||
return GTK_WIDGET (page);
|
||||
|
||||
gtk_container_remove (GTK_CONTAINER (notebook->notebook),
|
||||
GTK_WIDGET (page));
|
||||
notebook->selectors = g_list_remove (notebook->selectors, page);
|
||||
|
||||
if (! notebook->selectors)
|
||||
notebook->cur_page = NULL;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (! has_page)
|
||||
return NULL;
|
||||
|
||||
page = GIMP_COLOR_SELECTOR (gimp_color_selector_new (page_type,
|
||||
&selector->rgb,
|
||||
&selector->hsv,
|
||||
selector->channel));
|
||||
|
||||
if (! page)
|
||||
return NULL;
|
||||
|
||||
gimp_color_selector_set_show_alpha (page, selector->show_alpha);
|
||||
|
||||
label = gtk_label_new_with_mnemonic (GIMP_COLOR_SELECTOR_GET_CLASS (page)->name);
|
||||
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (notebook->notebook),
|
||||
GTK_WIDGET (page), label);
|
||||
|
||||
if (! notebook->cur_page)
|
||||
notebook->cur_page = page;
|
||||
|
||||
notebook->selectors = g_list_append (notebook->selectors, page);
|
||||
|
||||
gtk_widget_show (GTK_WIDGET (page));
|
||||
|
||||
g_signal_connect (G_OBJECT (page), "color_changed",
|
||||
G_CALLBACK (gimp_color_notebook_color_changed),
|
||||
notebook);
|
||||
g_signal_connect (G_OBJECT (page), "channel_changed",
|
||||
G_CALLBACK (gimp_color_notebook_channel_changed),
|
||||
notebook);
|
||||
|
||||
return GTK_WIDGET (page);
|
||||
}
|
||||
|
|
|
@ -57,7 +57,11 @@ struct _GimpColorNotebookClass
|
|||
};
|
||||
|
||||
|
||||
GType gimp_color_notebook_get_type (void) G_GNUC_CONST;
|
||||
GType gimp_color_notebook_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GtkWidget * gimp_color_notebook_set_has_page (GimpColorNotebook *notebook,
|
||||
GType page_type,
|
||||
gboolean has_page);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
|
|
@ -69,6 +69,11 @@ static void gimp_color_scales_init (GimpColorScales *scales);
|
|||
|
||||
static void gimp_color_scales_finalize (GObject *object);
|
||||
|
||||
static void gimp_color_scales_togg_sensitive (GimpColorSelector *selector,
|
||||
gboolean sensitive);
|
||||
static void gimp_color_scales_togg_visible (GimpColorSelector *selector,
|
||||
gboolean visible);
|
||||
|
||||
static void gimp_color_scales_set_show_alpha (GimpColorSelector *selector,
|
||||
gboolean show_alpha);
|
||||
static void gimp_color_scales_set_color (GimpColorSelector *selector,
|
||||
|
@ -132,40 +137,37 @@ gimp_color_scales_class_init (GimpColorScalesClass *klass)
|
|||
|
||||
object_class->finalize = gimp_color_scales_finalize;
|
||||
|
||||
selector_class->name = "Scales";
|
||||
selector_class->help_page = "scales.html";
|
||||
selector_class->set_show_alpha = gimp_color_scales_set_show_alpha;
|
||||
selector_class->set_color = gimp_color_scales_set_color;
|
||||
selector_class->set_channel = gimp_color_scales_set_channel;
|
||||
selector_class->name = "Scales";
|
||||
selector_class->help_page = "scales.html";
|
||||
selector_class->stock_id = GIMP_STOCK_TOOL_OPTIONS;
|
||||
selector_class->set_toggles_visible = gimp_color_scales_togg_visible;
|
||||
selector_class->set_toggles_sensitive = gimp_color_scales_togg_sensitive;
|
||||
selector_class->set_show_alpha = gimp_color_scales_set_show_alpha;
|
||||
selector_class->set_color = gimp_color_scales_set_color;
|
||||
selector_class->set_channel = gimp_color_scales_set_channel;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_scales_init (GimpColorScales *scales)
|
||||
{
|
||||
GtkWidget *table;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *label;
|
||||
GSList *group;
|
||||
gint i;
|
||||
GimpColorSelector *selector;
|
||||
GtkWidget *table;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *label;
|
||||
GSList *group;
|
||||
gint i;
|
||||
|
||||
static gchar *toggle_titles[] =
|
||||
static const gchar *toggle_titles[] =
|
||||
{
|
||||
/* Hue */
|
||||
N_("_H"),
|
||||
/* Saturation */
|
||||
N_("_S"),
|
||||
/* Value */
|
||||
N_("_V"),
|
||||
/* Red */
|
||||
N_("_R"),
|
||||
/* Green */
|
||||
N_("_G"),
|
||||
/* Blue */
|
||||
N_("_B"),
|
||||
/* Alpha */
|
||||
N_("_A")
|
||||
};
|
||||
static gchar *slider_tips[7] =
|
||||
static const gchar *slider_tips[7] =
|
||||
{
|
||||
N_("Hue"),
|
||||
N_("Saturation"),
|
||||
|
@ -179,14 +181,22 @@ gimp_color_scales_init (GimpColorScales *scales)
|
|||
static gdouble slider_max_vals[] = { 360, 100, 100, 255, 255, 255, 100 };
|
||||
static gdouble slider_incs[] = { 30, 10, 10, 16, 16, 16, 10 };
|
||||
|
||||
selector = GIMP_COLOR_SELECTOR (scales);
|
||||
|
||||
/* don't needs the toggles for our own operation */
|
||||
selector->toggles_visible = FALSE;
|
||||
|
||||
table = gtk_table_new (7, 4, FALSE);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), 1);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (table), 2, 3); /* hsv <-> rgb */
|
||||
gtk_table_set_row_spacing (GTK_TABLE (table), 5, 3); /* rgb <-> alpha */
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), 2);
|
||||
gtk_table_set_col_spacing (GTK_TABLE (table), 0, 0);
|
||||
gtk_box_pack_start (GTK_BOX (scales), table, FALSE, FALSE, 0);
|
||||
gtk_widget_show (table);
|
||||
|
||||
group = NULL;
|
||||
|
||||
for (i = 0; i < 7; i++)
|
||||
{
|
||||
if (i == 6)
|
||||
|
@ -196,14 +206,16 @@ gimp_color_scales_init (GimpColorScales *scales)
|
|||
else
|
||||
{
|
||||
scales->toggles[i] = gtk_radio_button_new (group);
|
||||
|
||||
gimp_help_set_help_data (scales->toggles[i],
|
||||
gettext (slider_tips[i]), NULL);
|
||||
group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (scales->toggles[i]));
|
||||
gtk_table_attach (GTK_TABLE (table), scales->toggles[i],
|
||||
0, 1, i, i + 1,
|
||||
GTK_SHRINK, GTK_EXPAND, 0, 0);
|
||||
gtk_widget_show (scales->toggles[i]);
|
||||
|
||||
if (selector->toggles_visible)
|
||||
gtk_widget_show (scales->toggles[i]);
|
||||
|
||||
gimp_help_set_help_data (scales->toggles[i],
|
||||
gettext (slider_tips[i]), NULL);
|
||||
|
||||
g_signal_connect (G_OBJECT (scales->toggles[i]), "toggled",
|
||||
G_CALLBACK (gimp_color_scales_toggle_update),
|
||||
|
@ -267,6 +279,37 @@ gimp_color_scales_finalize (GObject *object)
|
|||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_scales_togg_sensitive (GimpColorSelector *selector,
|
||||
gboolean sensitive)
|
||||
{
|
||||
GimpColorScales *scales;
|
||||
gint i;
|
||||
|
||||
scales = GIMP_COLOR_SCALES (selector);
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
gtk_widget_set_sensitive (scales->toggles[i], sensitive);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_scales_togg_visible (GimpColorSelector *selector,
|
||||
gboolean visible)
|
||||
{
|
||||
GimpColorScales *scales;
|
||||
gint i;
|
||||
|
||||
scales = GIMP_COLOR_SCALES (selector);
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
if (visible)
|
||||
gtk_widget_show (scales->toggles[i]);
|
||||
else
|
||||
gtk_widget_hide (scales->toggles[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_scales_set_show_alpha (GimpColorSelector *selector,
|
||||
gboolean show_alpha)
|
||||
|
@ -331,24 +374,6 @@ gimp_color_scales_set_channel (GimpColorSelector *selector,
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* public functions */
|
||||
|
||||
void
|
||||
gimp_color_scales_set_toggles_sensitive (GimpColorScales *scales,
|
||||
gboolean sensitive)
|
||||
{
|
||||
gint i;
|
||||
|
||||
g_return_if_fail (GIMP_IS_COLOR_SCALES (scales));
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
gtk_widget_set_sensitive (scales->toggles[i], sensitive);
|
||||
}
|
||||
|
||||
|
||||
/* private functions */
|
||||
|
||||
static void
|
||||
gimp_color_scales_update_scales (GimpColorScales *scales,
|
||||
gint skip)
|
||||
|
|
|
@ -34,10 +34,7 @@ G_BEGIN_DECLS
|
|||
#define GIMP_IS_COLOR_SCALES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_COLOR_SCALES))
|
||||
|
||||
|
||||
GType gimp_color_scales_get_type (void) G_GNUC_CONST;
|
||||
|
||||
void gimp_color_scales_set_toggles_sensitive (GimpColorScales *scales,
|
||||
gboolean sensitive);
|
||||
GType gimp_color_scales_get_type (void) G_GNUC_CONST;
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
|
|
@ -39,6 +39,8 @@
|
|||
|
||||
#include "gimpcolorselector.h"
|
||||
#include "gimpcolorselect.h"
|
||||
#include "gimphelpui.h"
|
||||
#include "gimpstock.h"
|
||||
|
||||
#include "libgimp/libgimp-intl.h"
|
||||
|
||||
|
@ -93,6 +95,8 @@ struct _GimpColorSelect
|
|||
{
|
||||
GimpColorSelector parent_instance;
|
||||
|
||||
GtkWidget *toggle_box;
|
||||
|
||||
GtkWidget *xy_color;
|
||||
GtkWidget *z_color;
|
||||
|
||||
|
@ -126,50 +130,57 @@ struct _ColorSelectFill
|
|||
};
|
||||
|
||||
|
||||
static void gimp_color_select_class_init (GimpColorSelectClass *klass);
|
||||
static void gimp_color_select_init (GimpColorSelect *select);
|
||||
static void gimp_color_select_class_init (GimpColorSelectClass *klass);
|
||||
static void gimp_color_select_init (GimpColorSelect *select);
|
||||
|
||||
static void gimp_color_select_finalize (GObject *object);
|
||||
static void gimp_color_select_finalize (GObject *object);
|
||||
|
||||
static void gimp_color_select_set_color (GimpColorSelector *selector,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv);
|
||||
static void gimp_color_select_set_channel (GimpColorSelector *selector,
|
||||
GimpColorSelectorChannel channel);
|
||||
static void gimp_color_select_togg_visible (GimpColorSelector *selector,
|
||||
gboolean visible);
|
||||
static void gimp_color_select_togg_sensitive (GimpColorSelector *selector,
|
||||
gboolean sensitive);
|
||||
static void gimp_color_select_set_color (GimpColorSelector *selector,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv);
|
||||
static void gimp_color_select_set_channel (GimpColorSelector *selector,
|
||||
GimpColorSelectorChannel channel);
|
||||
|
||||
static void gimp_color_select_update (GimpColorSelect *select,
|
||||
ColorSelectUpdateType type);
|
||||
static void gimp_color_select_update_values (GimpColorSelect *select);
|
||||
static void gimp_color_select_update_pos (GimpColorSelect *select);
|
||||
static void gimp_color_select_channel_toggled (GtkWidget *widget,
|
||||
GimpColorSelect *select);
|
||||
|
||||
static void gimp_color_select_update (GimpColorSelect *select,
|
||||
ColorSelectUpdateType type);
|
||||
static void gimp_color_select_update_values (GimpColorSelect *select);
|
||||
static void gimp_color_select_update_pos (GimpColorSelect *select);
|
||||
|
||||
#if 0
|
||||
static void gimp_color_select_drop_color (GtkWidget *widget,
|
||||
const GimpRGB *color,
|
||||
gpointer data);
|
||||
static void gimp_color_select_drop_color (GtkWidget *widget,
|
||||
const GimpRGB *color,
|
||||
gpointer data);
|
||||
#endif
|
||||
|
||||
static gboolean gimp_color_select_xy_expose (GtkWidget *widget,
|
||||
GdkEventExpose *eevent,
|
||||
GimpColorSelect *select);
|
||||
static gboolean gimp_color_select_xy_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
GimpColorSelect *select);
|
||||
static gboolean gimp_color_select_z_expose (GtkWidget *widget,
|
||||
GdkEventExpose *eevent,
|
||||
GimpColorSelect *select);
|
||||
static gboolean gimp_color_select_z_events (GtkWidget *widet,
|
||||
GdkEvent *event,
|
||||
GimpColorSelect *select);
|
||||
static gboolean gimp_color_select_xy_expose (GtkWidget *widget,
|
||||
GdkEventExpose *eevent,
|
||||
GimpColorSelect *select);
|
||||
static gboolean gimp_color_select_xy_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
GimpColorSelect *select);
|
||||
static gboolean gimp_color_select_z_expose (GtkWidget *widget,
|
||||
GdkEventExpose *eevent,
|
||||
GimpColorSelect *select);
|
||||
static gboolean gimp_color_select_z_events (GtkWidget *widet,
|
||||
GdkEvent *event,
|
||||
GimpColorSelect *select);
|
||||
|
||||
static void gimp_color_select_image_fill (GtkWidget *widget,
|
||||
ColorSelectFillType fill_type,
|
||||
const GimpHSV *hsv,
|
||||
const GimpRGB *rgb);
|
||||
static void gimp_color_select_image_fill (GtkWidget *widget,
|
||||
ColorSelectFillType fill_type,
|
||||
const GimpHSV *hsv,
|
||||
const GimpRGB *rgb);
|
||||
|
||||
static void gimp_color_select_draw_z_marker (GimpColorSelect *select,
|
||||
GdkRectangle *clip);
|
||||
static void gimp_color_select_draw_xy_marker (GimpColorSelect *select,
|
||||
GdkRectangle *clip);
|
||||
static void gimp_color_select_draw_z_marker (GimpColorSelect *select,
|
||||
GdkRectangle *clip);
|
||||
static void gimp_color_select_draw_xy_marker (GimpColorSelect *select,
|
||||
GdkRectangle *clip);
|
||||
|
||||
static void color_select_update_red (ColorSelectFill *csf);
|
||||
static void color_select_update_green (ColorSelectFill *csf);
|
||||
|
@ -248,10 +259,13 @@ gimp_color_select_class_init (GimpColorSelectClass *klass)
|
|||
|
||||
object_class->finalize = gimp_color_select_finalize;
|
||||
|
||||
selector_class->name = "GI_MP";
|
||||
selector_class->help_page = "built_in.html";
|
||||
selector_class->set_color = gimp_color_select_set_color;
|
||||
selector_class->set_channel = gimp_color_select_set_channel;
|
||||
selector_class->name = "GI_MP";
|
||||
selector_class->help_page = "built_in.html";
|
||||
selector_class->stock_id = GIMP_STOCK_WILBER;
|
||||
selector_class->set_toggles_visible = gimp_color_select_togg_visible;
|
||||
selector_class->set_toggles_sensitive = gimp_color_select_togg_sensitive;
|
||||
selector_class->set_color = gimp_color_select_set_color;
|
||||
selector_class->set_channel = gimp_color_select_set_channel;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -259,6 +273,7 @@ gimp_color_select_init (GimpColorSelect *select)
|
|||
{
|
||||
GtkWidget *main_hbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *hbox2;
|
||||
GtkWidget *xy_frame;
|
||||
GtkWidget *z_frame;
|
||||
|
||||
|
@ -300,10 +315,14 @@ gimp_color_select_init (GimpColorSelect *select)
|
|||
select);
|
||||
#endif
|
||||
|
||||
hbox2 = gtk_hbox_new (FALSE, 2);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), hbox2, TRUE, FALSE, 0);
|
||||
gtk_widget_show (hbox2);
|
||||
|
||||
/* The z component preview */
|
||||
z_frame = gtk_frame_new (NULL);
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (z_frame), GTK_SHADOW_IN);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), z_frame, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox2), z_frame, FALSE, FALSE, 0);
|
||||
gtk_widget_show (z_frame);
|
||||
|
||||
select->z_color = gtk_preview_new (GTK_PREVIEW_COLOR);
|
||||
|
@ -319,6 +338,58 @@ gimp_color_select_init (GimpColorSelect *select)
|
|||
g_signal_connect (G_OBJECT (select->z_color), "event",
|
||||
G_CALLBACK (gimp_color_select_z_events),
|
||||
select);
|
||||
|
||||
select->toggle_box = gtk_vbox_new (FALSE, 2);
|
||||
gtk_box_pack_start (GTK_BOX (hbox2), select->toggle_box, FALSE, FALSE, 0);
|
||||
gtk_widget_show (select->toggle_box);
|
||||
|
||||
/* channel toggles */
|
||||
{
|
||||
GimpColorSelectorChannel channel;
|
||||
GSList *group = NULL;
|
||||
|
||||
static const gchar *labels[] =
|
||||
{
|
||||
N_("_H"), N_("_S"), N_("_V"), N_("_R"), N_("_G"), N_("_B")
|
||||
};
|
||||
static const gchar *tips[7] =
|
||||
{
|
||||
N_("Hue"),
|
||||
N_("Saturation"),
|
||||
N_("Value"),
|
||||
N_("Red"),
|
||||
N_("Green"),
|
||||
N_("Blue"),
|
||||
N_("Alpha")
|
||||
};
|
||||
|
||||
for (channel = GIMP_COLOR_SELECTOR_HUE;
|
||||
channel < GIMP_COLOR_SELECTOR_ALPHA;
|
||||
channel++)
|
||||
{
|
||||
GtkWidget *button;
|
||||
|
||||
button = gtk_radio_button_new_with_mnemonic (group,
|
||||
gettext (labels[channel]));
|
||||
group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (button));
|
||||
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);
|
||||
gtk_box_pack_start (GTK_BOX (select->toggle_box), button,
|
||||
TRUE, TRUE, 0);
|
||||
gtk_widget_show (button);
|
||||
|
||||
g_object_set_data (G_OBJECT (button), "channel",
|
||||
GINT_TO_POINTER (channel));
|
||||
|
||||
if (channel == GIMP_COLOR_SELECTOR_HUE)
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
|
||||
|
||||
gimp_help_set_help_data (button, gettext (tips[channel]), NULL);
|
||||
|
||||
g_signal_connect (G_OBJECT (button), "toggled",
|
||||
G_CALLBACK (gimp_color_select_channel_toggled),
|
||||
select);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -337,6 +408,31 @@ gimp_color_select_finalize (GObject *object)
|
|||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_select_togg_visible (GimpColorSelector *selector,
|
||||
gboolean visible)
|
||||
{
|
||||
GimpColorSelect *select;
|
||||
|
||||
select = GIMP_COLOR_SELECT (selector);
|
||||
|
||||
if (visible)
|
||||
gtk_widget_show (select->toggle_box);
|
||||
else
|
||||
gtk_widget_hide (select->toggle_box);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_select_togg_sensitive (GimpColorSelector *selector,
|
||||
gboolean sensitive)
|
||||
{
|
||||
GimpColorSelect *select;
|
||||
|
||||
select = GIMP_COLOR_SELECT (selector);
|
||||
|
||||
gtk_widget_set_sensitive (select->toggle_box, sensitive);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_select_set_color (GimpColorSelector *selector,
|
||||
const GimpRGB *rgb,
|
||||
|
@ -346,10 +442,8 @@ gimp_color_select_set_color (GimpColorSelector *selector,
|
|||
|
||||
select = GIMP_COLOR_SELECT (selector);
|
||||
|
||||
gimp_color_select_update_pos (select);
|
||||
|
||||
gimp_color_select_update (select, UPDATE_Z_COLOR);
|
||||
gimp_color_select_update (select, UPDATE_XY_COLOR);
|
||||
gimp_color_select_update (select,
|
||||
UPDATE_POS | UPDATE_XY_COLOR | UPDATE_Z_COLOR);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -396,8 +490,29 @@ gimp_color_select_set_channel (GimpColorSelector *selector,
|
|||
break;
|
||||
}
|
||||
|
||||
gimp_color_select_update (select, UPDATE_POS);
|
||||
gimp_color_select_update (select, UPDATE_Z_COLOR | UPDATE_XY_COLOR);
|
||||
gimp_color_select_update (select,
|
||||
UPDATE_POS | UPDATE_Z_COLOR | UPDATE_XY_COLOR);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_select_channel_toggled (GtkWidget *widget,
|
||||
GimpColorSelect *select)
|
||||
{
|
||||
if (GTK_TOGGLE_BUTTON (widget)->active)
|
||||
{
|
||||
GimpColorSelector *selector;
|
||||
GimpColorSelectorChannel channel;
|
||||
|
||||
selector = GIMP_COLOR_SELECTOR (select);
|
||||
|
||||
channel = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget),
|
||||
"channel"));
|
||||
|
||||
selector->channel = channel;
|
||||
gimp_color_select_set_channel (selector, channel);
|
||||
|
||||
gimp_color_selector_channel_changed (selector);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -555,12 +670,10 @@ gimp_color_select_drop_color (GtkWidget *widget,
|
|||
select->rgb = *color;
|
||||
|
||||
gimp_color_select_update_hsv_values (select);
|
||||
gimp_color_select_update_pos (select);
|
||||
|
||||
gimp_color_select_update (select, UPDATE_Z_COLOR);
|
||||
gimp_color_select_update (select, UPDATE_XY_COLOR);
|
||||
|
||||
gimp_color_select_update (select, UPDATE_CALLER);
|
||||
gimp_color_select_update (select,
|
||||
UPDATE_POS | UPDATE_XY_COLOR | UPDATE_Z_COLOR |
|
||||
UPDATE_CALLER);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -106,17 +106,25 @@ gimp_color_selector_class_init (GimpColorSelectorClass *klass)
|
|||
G_TYPE_NONE, 1,
|
||||
G_TYPE_INT);
|
||||
|
||||
klass->set_show_alpha = NULL;
|
||||
klass->set_color = NULL;
|
||||
klass->set_channel = NULL;
|
||||
klass->color_changed = NULL;
|
||||
klass->channel_changed = NULL;
|
||||
klass->name = "EEK";
|
||||
klass->help_page = "help_yourself.html";
|
||||
klass->stock_id = GTK_STOCK_SELECT_COLOR;
|
||||
|
||||
klass->set_toggles_visible = NULL;
|
||||
klass->set_toggles_sensitive = NULL;
|
||||
klass->set_show_alpha = NULL;
|
||||
klass->set_color = NULL;
|
||||
klass->set_channel = NULL;
|
||||
klass->color_changed = NULL;
|
||||
klass->channel_changed = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_selector_init (GimpColorSelector *selector)
|
||||
{
|
||||
selector->show_alpha = TRUE;
|
||||
selector->toggles_visible = TRUE;
|
||||
selector->toggles_sensitive = TRUE;
|
||||
selector->show_alpha = TRUE;
|
||||
|
||||
gimp_rgba_set (&selector->rgb, 0.0, 0.0, 0.0, 1.0);
|
||||
gimp_rgb_to_hsv (&selector->rgb, &selector->hsv);
|
||||
|
@ -145,6 +153,44 @@ gimp_color_selector_new (GType selector_type,
|
|||
return GTK_WIDGET (selector);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_color_selector_set_toggles_visible (GimpColorSelector *selector,
|
||||
gboolean visible)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_COLOR_SELECTOR (selector));
|
||||
|
||||
if (selector->toggles_visible != visible)
|
||||
{
|
||||
GimpColorSelectorClass *selector_class;
|
||||
|
||||
selector->toggles_visible = visible ? TRUE : FALSE;
|
||||
|
||||
selector_class = GIMP_COLOR_SELECTOR_GET_CLASS (selector);
|
||||
|
||||
if (selector_class->set_toggles_visible)
|
||||
selector_class->set_toggles_visible (selector, visible);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gimp_color_selector_set_toggles_sensitive (GimpColorSelector *selector,
|
||||
gboolean sensitive)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_COLOR_SELECTOR (selector));
|
||||
|
||||
if (selector->toggles_sensitive != sensitive)
|
||||
{
|
||||
GimpColorSelectorClass *selector_class;
|
||||
|
||||
selector->toggles_sensitive = sensitive ? TRUE : FALSE;
|
||||
|
||||
selector_class = GIMP_COLOR_SELECTOR_GET_CLASS (selector);
|
||||
|
||||
if (selector_class->set_toggles_sensitive)
|
||||
selector_class->set_toggles_sensitive (selector, sensitive);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gimp_color_selector_set_show_alpha (GimpColorSelector *selector,
|
||||
gboolean show_alpha)
|
||||
|
@ -153,11 +199,14 @@ gimp_color_selector_set_show_alpha (GimpColorSelector *selector,
|
|||
|
||||
if (show_alpha != selector->show_alpha)
|
||||
{
|
||||
GimpColorSelectorClass *selector_class;
|
||||
|
||||
selector->show_alpha = show_alpha ? TRUE : FALSE;
|
||||
|
||||
if (GIMP_COLOR_SELECTOR_GET_CLASS (selector)->set_show_alpha)
|
||||
GIMP_COLOR_SELECTOR_GET_CLASS (selector)->set_show_alpha (selector,
|
||||
show_alpha);
|
||||
selector_class = GIMP_COLOR_SELECTOR_GET_CLASS (selector);
|
||||
|
||||
if (selector_class->set_show_alpha)
|
||||
selector_class->set_show_alpha (selector, show_alpha);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -166,6 +215,8 @@ gimp_color_selector_set_color (GimpColorSelector *selector,
|
|||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv)
|
||||
{
|
||||
GimpColorSelectorClass *selector_class;
|
||||
|
||||
g_return_if_fail (GIMP_IS_COLOR_SELECTOR (selector));
|
||||
g_return_if_fail (rgb != NULL);
|
||||
g_return_if_fail (hsv != NULL);
|
||||
|
@ -173,8 +224,12 @@ gimp_color_selector_set_color (GimpColorSelector *selector,
|
|||
selector->rgb = *rgb;
|
||||
selector->hsv = *hsv;
|
||||
|
||||
if (GIMP_COLOR_SELECTOR_GET_CLASS (selector)->set_color)
|
||||
GIMP_COLOR_SELECTOR_GET_CLASS (selector)->set_color (selector, rgb, hsv);
|
||||
selector_class = GIMP_COLOR_SELECTOR_GET_CLASS (selector);
|
||||
|
||||
if (selector_class->set_color)
|
||||
selector_class->set_color (selector, rgb, hsv);
|
||||
|
||||
gimp_color_selector_color_changed (selector);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -185,11 +240,16 @@ gimp_color_selector_set_channel (GimpColorSelector *selector,
|
|||
|
||||
if (channel != selector->channel)
|
||||
{
|
||||
GimpColorSelectorClass *selector_class;
|
||||
|
||||
selector->channel = channel;
|
||||
|
||||
if (GIMP_COLOR_SELECTOR_GET_CLASS (selector)->set_channel)
|
||||
GIMP_COLOR_SELECTOR_GET_CLASS (selector)->set_channel (selector,
|
||||
channel);
|
||||
selector_class = GIMP_COLOR_SELECTOR_GET_CLASS (selector);
|
||||
|
||||
if (selector_class->set_channel)
|
||||
selector_class->set_channel (selector, channel);
|
||||
|
||||
gimp_color_selector_channel_changed (selector);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -49,6 +49,8 @@ struct _GimpColorSelector
|
|||
{
|
||||
GtkVBox parent_instance;
|
||||
|
||||
gboolean toggles_visible;
|
||||
gboolean toggles_sensitive;
|
||||
gboolean show_alpha;
|
||||
|
||||
GimpRGB rgb;
|
||||
|
@ -63,41 +65,50 @@ struct _GimpColorSelectorClass
|
|||
|
||||
const gchar *name;
|
||||
const gchar *help_page;
|
||||
const gchar *stock_id;
|
||||
|
||||
/* virtual functions */
|
||||
void (* set_show_alpha) (GimpColorSelector *selector,
|
||||
gboolean show_alpha);
|
||||
void (* set_color) (GimpColorSelector *selector,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv);
|
||||
void (* set_channel) (GimpColorSelector *selector,
|
||||
GimpColorSelectorChannel channel);
|
||||
void (* set_toggles_visible) (GimpColorSelector *selector,
|
||||
gboolean visible);
|
||||
void (* set_toggles_sensitive) (GimpColorSelector *selector,
|
||||
gboolean sensitive);
|
||||
void (* set_show_alpha) (GimpColorSelector *selector,
|
||||
gboolean show_alpha);
|
||||
void (* set_color) (GimpColorSelector *selector,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv);
|
||||
void (* set_channel) (GimpColorSelector *selector,
|
||||
GimpColorSelectorChannel channel);
|
||||
|
||||
/* signals */
|
||||
void (* color_changed) (GimpColorSelector *selector,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv);
|
||||
void (* channel_changed) (GimpColorSelector *selector,
|
||||
GimpColorSelectorChannel channel);
|
||||
void (* color_changed) (GimpColorSelector *selector,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv);
|
||||
void (* channel_changed) (GimpColorSelector *selector,
|
||||
GimpColorSelectorChannel channel);
|
||||
};
|
||||
|
||||
|
||||
GType gimp_color_selector_get_type (void) G_GNUC_CONST;
|
||||
GtkWidget * gimp_color_selector_new (GType selector_type,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv,
|
||||
GimpColorSelectorChannel channel);
|
||||
GType gimp_color_selector_get_type (void) G_GNUC_CONST;
|
||||
GtkWidget * gimp_color_selector_new (GType selector_type,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv,
|
||||
GimpColorSelectorChannel channel);
|
||||
|
||||
void gimp_color_selector_set_show_alpha (GimpColorSelector *selector,
|
||||
gboolean show_alpha);
|
||||
void gimp_color_selector_set_color (GimpColorSelector *selector,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv);
|
||||
void gimp_color_selector_set_channel (GimpColorSelector *selector,
|
||||
GimpColorSelectorChannel channel);
|
||||
void gimp_color_selector_set_toggles_visible (GimpColorSelector *selector,
|
||||
gboolean visible);
|
||||
void gimp_color_selector_set_toggles_sensitive (GimpColorSelector *selector,
|
||||
gboolean sensitive);
|
||||
void gimp_color_selector_set_show_alpha (GimpColorSelector *selector,
|
||||
gboolean show_alpha);
|
||||
void gimp_color_selector_set_color (GimpColorSelector *selector,
|
||||
const GimpRGB *rgb,
|
||||
const GimpHSV *hsv);
|
||||
void gimp_color_selector_set_channel (GimpColorSelector *selector,
|
||||
GimpColorSelectorChannel channel);
|
||||
|
||||
void gimp_color_selector_color_changed (GimpColorSelector *selector);
|
||||
void gimp_color_selector_channel_changed (GimpColorSelector *selector);
|
||||
void gimp_color_selector_color_changed (GimpColorSelector *selector);
|
||||
void gimp_color_selector_channel_changed (GimpColorSelector *selector);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
|
|
@ -130,6 +130,7 @@ static GtkStockItem gimp_stock_items[] =
|
|||
{ GIMP_STOCK_COLOR_PICKER_BLACK, NULL, 0, 0, "gimp14-libgimp" },
|
||||
{ GIMP_STOCK_COLOR_PICKER_GRAY, NULL, 0, 0, "gimp14-libgimp" },
|
||||
{ GIMP_STOCK_COLOR_PICKER_WHITE, NULL, 0, 0, "gimp14-libgimp" },
|
||||
{ GIMP_STOCK_COLOR_TRIANGLE, NULL, 0, 0, "gimp14-libgimp" },
|
||||
|
||||
{ GIMP_STOCK_CHAR_PICKER, NULL, 0, 0, "gimp14-libgimp" },
|
||||
{ GIMP_STOCK_LETTER_SPACING, N_("L_etter Spacing"), 0, 0, "gimp14-libgimp" },
|
||||
|
@ -208,6 +209,7 @@ gimp_stock_button_pixbufs[] =
|
|||
{ GIMP_STOCK_COLOR_PICKER_BLACK, stock_color_picker_black_18 },
|
||||
{ GIMP_STOCK_COLOR_PICKER_GRAY, stock_color_picker_gray_18 },
|
||||
{ GIMP_STOCK_COLOR_PICKER_WHITE, stock_color_picker_white_18 },
|
||||
{ GIMP_STOCK_COLOR_TRIANGLE, stock_color_triangle_16 },
|
||||
|
||||
{ GIMP_STOCK_CHAR_PICKER, stock_char_picker_22 },
|
||||
{ GIMP_STOCK_LETTER_SPACING, stock_letter_spacing_22 },
|
||||
|
|
|
@ -56,6 +56,7 @@ G_BEGIN_DECLS
|
|||
#define GIMP_STOCK_COLOR_PICKER_BLACK "gimp-color-picker-black"
|
||||
#define GIMP_STOCK_COLOR_PICKER_GRAY "gimp-color-picker-gray"
|
||||
#define GIMP_STOCK_COLOR_PICKER_WHITE "gimp-color-picker-white"
|
||||
#define GIMP_STOCK_COLOR_TRIANGLE "gimp-color-triangle"
|
||||
|
||||
#define GIMP_STOCK_CHAR_PICKER "gimp-char-picker"
|
||||
#define GIMP_STOCK_LETTER_SPACING "gimp-letter-spacing"
|
||||
|
|
|
@ -178,6 +178,7 @@ colorsel_triangle_class_init (ColorselTriangleClass *klass)
|
|||
|
||||
selector_class->name = _("_Triangle");
|
||||
selector_class->help_page = "triangle.html";
|
||||
selector_class->stock_id = GIMP_STOCK_COLOR_TRIANGLE;
|
||||
selector_class->set_color = colorsel_triangle_set_color;
|
||||
}
|
||||
|
||||
|
|
|
@ -174,6 +174,7 @@ colorsel_water_class_init (ColorselWaterClass *klass)
|
|||
|
||||
selector_class->name = _("_Watercolor");
|
||||
selector_class->help_page = "watercolor.html";
|
||||
selector_class->stock_id = GIMP_STOCK_TOOL_PAINTBRUSH;
|
||||
selector_class->set_color = colorsel_water_set_color;
|
||||
}
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ STOCK_BUTTON_IMAGES = \
|
|||
stock-color-picker-black-18.png \
|
||||
stock-color-picker-gray-18.png \
|
||||
stock-color-picker-white-18.png \
|
||||
stock-color-triangle-16.png \
|
||||
stock-duplicate-16.png \
|
||||
stock-edit-16.png \
|
||||
stock-eye-20.png \
|
||||
|
|
BIN
themes/Default/images/stock-color-triangle-16.png
Normal file
BIN
themes/Default/images/stock-color-triangle-16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 844 B |
Loading…
Reference in a new issue