mirror of https://github.com/GNOME/gimp.git
added style properties "tab_border" and "tab_icon_size" just as they exist
2003-07-19 Michael Natterer <mitch@gimp.org> * libgimpwidgets/gimpcolornotebook.c: added style properties "tab_border" and "tab_icon_size" just as they exist for GimpDockbook. Factored page creation out to the new gimp_color_notebook_add_page() utility function. Added fancy menu items for the popup menu and translate them. * etc/gtkrc_user * themes/Default/gtkrc: use the same tab style for GimpDockbooks and GimpColorNotebooks.
This commit is contained in:
parent
cfbde0f301
commit
5acf3f0cd3
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
|||
2003-07-19 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* libgimpwidgets/gimpcolornotebook.c: added style properties
|
||||
"tab_border" and "tab_icon_size" just as they exist for
|
||||
GimpDockbook. Factored page creation out to the new
|
||||
gimp_color_notebook_add_page() utility function. Added fancy menu
|
||||
items for the popup menu and translate them.
|
||||
|
||||
* etc/gtkrc_user
|
||||
* themes/Default/gtkrc: use the same tab style for GimpDockbooks
|
||||
and GimpColorNotebooks.
|
||||
|
||||
2003-07-19 Dave Neary <bolsh@gimp.org>
|
||||
|
||||
* app/paint/gimpclone.c: Fixed a mistake in the code which does
|
||||
|
|
|
@ -28,6 +28,8 @@ style "gimp-small-style"
|
|||
GimpToolbox::tool_icon_size = menu
|
||||
GimpDockbook::tab_border = 0
|
||||
GimpDockbook::tab_icon_size = menu
|
||||
GimpColorNotebook::tab_border = 0
|
||||
GimpColorNotebook::tab_icon_size = menu
|
||||
GimpDockable::content_border = 1
|
||||
GimpEditor::content_spacing = 1
|
||||
GimpEditor::button_spacing = 1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimpcolornotebook.c
|
||||
* Copyright (C) 2002 Michael Natterer <mitch@gimp.org>
|
||||
|
@ -11,10 +11,10 @@
|
|||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
|
@ -35,12 +35,20 @@
|
|||
#include "gimpcolorscales.h"
|
||||
#include "gimpwidgetsmarshal.h"
|
||||
|
||||
#include "libgimp/libgimp-intl.h"
|
||||
|
||||
|
||||
#define DEFAULT_TAB_BORDER 0
|
||||
#define DEFAULT_TAB_ICON_SIZE GTK_ICON_SIZE_BUTTON
|
||||
|
||||
|
||||
static void gimp_color_notebook_class_init (GimpColorNotebookClass *klass);
|
||||
static void gimp_color_notebook_init (GimpColorNotebook *notebook);
|
||||
|
||||
static void gimp_color_notebook_finalize (GObject *object);
|
||||
|
||||
static void gimp_color_notebook_style_set (GtkWidget *widget,
|
||||
GtkStyle *prev_style);
|
||||
static void gimp_color_notebook_togg_visible (GimpColorSelector *selector,
|
||||
gboolean visible);
|
||||
static void gimp_color_notebook_togg_sensitive (GimpColorSelector *selector,
|
||||
|
@ -66,6 +74,9 @@ static void gimp_color_notebook_channel_changed (GimpColorSelector *page,
|
|||
GimpColorSelectorChannel channel,
|
||||
GimpColorNotebook *notebook);
|
||||
|
||||
static GtkWidget * gimp_color_notebook_add_page (GimpColorNotebook *notebook,
|
||||
GType page_type);
|
||||
|
||||
|
||||
static GimpColorSelectorClass *parent_class = NULL;
|
||||
|
||||
|
@ -91,7 +102,7 @@ gimp_color_notebook_get_type (void)
|
|||
};
|
||||
|
||||
notebook_type = g_type_register_static (GIMP_TYPE_COLOR_SELECTOR,
|
||||
"GimpColorNotebook",
|
||||
"GimpColorNotebook",
|
||||
¬ebook_info, 0);
|
||||
}
|
||||
|
||||
|
@ -102,15 +113,19 @@ static void
|
|||
gimp_color_notebook_class_init (GimpColorNotebookClass *klass)
|
||||
{
|
||||
GObjectClass *object_class;
|
||||
GtkWidgetClass *widget_class;
|
||||
GimpColorSelectorClass *selector_class;
|
||||
|
||||
object_class = G_OBJECT_CLASS (klass);
|
||||
widget_class = GTK_WIDGET_CLASS (klass);
|
||||
selector_class = GIMP_COLOR_SELECTOR_CLASS (klass);
|
||||
|
||||
parent_class = g_type_class_peek_parent (klass);
|
||||
|
||||
object_class->finalize = gimp_color_notebook_finalize;
|
||||
|
||||
widget_class->style_set = gimp_color_notebook_style_set;
|
||||
|
||||
selector_class->name = "Notebook";
|
||||
selector_class->help_page = "notebook.html";
|
||||
selector_class->set_toggles_visible = gimp_color_notebook_togg_visible;
|
||||
|
@ -118,13 +133,25 @@ gimp_color_notebook_class_init (GimpColorNotebookClass *klass)
|
|||
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;
|
||||
|
||||
gtk_widget_class_install_style_property (widget_class,
|
||||
g_param_spec_int ("tab_border",
|
||||
NULL, NULL,
|
||||
0, G_MAXINT,
|
||||
DEFAULT_TAB_BORDER,
|
||||
G_PARAM_READABLE));
|
||||
gtk_widget_class_install_style_property (widget_class,
|
||||
g_param_spec_enum ("tab_icon_size",
|
||||
NULL, NULL,
|
||||
GTK_TYPE_ICON_SIZE,
|
||||
DEFAULT_TAB_ICON_SIZE,
|
||||
G_PARAM_READABLE));
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_notebook_init (GimpColorNotebook *notebook)
|
||||
{
|
||||
GimpColorSelector *selector;
|
||||
GimpColorSelectorClass *selector_class;
|
||||
GType *selector_types;
|
||||
gint n_selector_types;
|
||||
gint i;
|
||||
|
@ -152,9 +179,6 @@ gimp_color_notebook_init (GimpColorNotebook *notebook)
|
|||
|
||||
for (i = 0; i < n_selector_types; i++)
|
||||
{
|
||||
GtkWidget *page;
|
||||
GtkWidget *image;
|
||||
|
||||
/* skip ourselves */
|
||||
if (g_type_is_a (selector_types[i], GIMP_TYPE_COLOR_NOTEBOOK))
|
||||
continue;
|
||||
|
@ -163,40 +187,7 @@ gimp_color_notebook_init (GimpColorNotebook *notebook)
|
|||
if (g_type_is_a (selector_types[i], GIMP_TYPE_COLOR_SCALES))
|
||||
continue;
|
||||
|
||||
page = gimp_color_selector_new (selector_types[i],
|
||||
&selector->rgb,
|
||||
&selector->hsv,
|
||||
selector->channel);
|
||||
|
||||
if (! page)
|
||||
continue;
|
||||
|
||||
selector_class = GIMP_COLOR_SELECTOR_GET_CLASS (page);
|
||||
|
||||
gimp_color_selector_set_show_alpha (GIMP_COLOR_SELECTOR (page), FALSE);
|
||||
|
||||
image = gtk_image_new_from_stock (selector_class->stock_id,
|
||||
GTK_ICON_SIZE_BUTTON);
|
||||
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (notebook->notebook),
|
||||
page, image);
|
||||
|
||||
gtk_notebook_set_menu_label_text (GTK_NOTEBOOK (notebook->notebook),
|
||||
page, selector_class->name);
|
||||
|
||||
if (! notebook->cur_page)
|
||||
notebook->cur_page = GIMP_COLOR_SELECTOR (page);
|
||||
|
||||
notebook->selectors = g_list_append (notebook->selectors, page);
|
||||
|
||||
gtk_widget_show (page);
|
||||
|
||||
g_signal_connect (page, "color_changed",
|
||||
G_CALLBACK (gimp_color_notebook_color_changed),
|
||||
notebook);
|
||||
g_signal_connect (page, "channel_changed",
|
||||
G_CALLBACK (gimp_color_notebook_channel_changed),
|
||||
notebook);
|
||||
gimp_color_notebook_add_page (notebook, selector_types[i]);
|
||||
}
|
||||
|
||||
g_free (selector_types);
|
||||
|
@ -218,6 +209,44 @@ gimp_color_notebook_finalize (GObject *object)
|
|||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_notebook_style_set (GtkWidget *widget,
|
||||
GtkStyle *prev_style)
|
||||
{
|
||||
GimpColorNotebook *notebook;
|
||||
GList *list;
|
||||
gint tab_border;
|
||||
GtkIconSize icon_size;
|
||||
|
||||
notebook = GIMP_COLOR_NOTEBOOK (widget);
|
||||
|
||||
if (GTK_WIDGET_CLASS (parent_class)->style_set)
|
||||
GTK_WIDGET_CLASS (parent_class)->style_set (widget, prev_style);
|
||||
|
||||
gtk_widget_style_get (widget,
|
||||
"tab_border", &tab_border,
|
||||
"tab_icon_size", &icon_size,
|
||||
NULL);
|
||||
|
||||
g_object_set (notebook->notebook,
|
||||
"tab_border", tab_border,
|
||||
NULL);
|
||||
|
||||
for (list = notebook->selectors; list; list = g_list_next (list))
|
||||
{
|
||||
GimpColorSelectorClass *selector_class;
|
||||
GtkWidget *image;
|
||||
|
||||
selector_class = GIMP_COLOR_SELECTOR_GET_CLASS (list->data);
|
||||
|
||||
image = gtk_image_new_from_stock (selector_class->stock_id, icon_size);
|
||||
|
||||
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook->notebook),
|
||||
GTK_WIDGET (list->data),
|
||||
image);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_notebook_togg_visible (GimpColorSelector *selector,
|
||||
gboolean visible)
|
||||
|
@ -377,6 +406,65 @@ gimp_color_notebook_channel_changed (GimpColorSelector *page,
|
|||
gimp_color_selector_channel_changed (selector);
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
gimp_color_notebook_add_page (GimpColorNotebook *notebook,
|
||||
GType page_type)
|
||||
{
|
||||
GimpColorSelector *selector;
|
||||
GimpColorSelectorClass *selector_class;
|
||||
GtkWidget *page;
|
||||
GtkWidget *menu_widget;
|
||||
GtkWidget *image;
|
||||
GtkWidget *label;
|
||||
|
||||
selector = GIMP_COLOR_SELECTOR (notebook);
|
||||
|
||||
page = gimp_color_selector_new (page_type,
|
||||
&selector->rgb,
|
||||
&selector->hsv,
|
||||
selector->channel);
|
||||
|
||||
if (! page)
|
||||
return NULL;
|
||||
|
||||
selector_class = GIMP_COLOR_SELECTOR_GET_CLASS (page);
|
||||
|
||||
gimp_color_selector_set_show_alpha (GIMP_COLOR_SELECTOR (page), FALSE);
|
||||
|
||||
menu_widget = gtk_hbox_new (FALSE, 4);
|
||||
|
||||
image = gtk_image_new_from_stock (selector_class->stock_id,
|
||||
GTK_ICON_SIZE_MENU);
|
||||
gtk_box_pack_start (GTK_BOX (menu_widget), image, FALSE, FALSE, 0);
|
||||
gtk_widget_show (image);
|
||||
|
||||
label = gtk_label_new (gettext (selector_class->name));
|
||||
gtk_box_pack_start (GTK_BOX (menu_widget), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
image = gtk_image_new_from_stock (selector_class->stock_id,
|
||||
DEFAULT_TAB_ICON_SIZE);
|
||||
|
||||
gtk_notebook_append_page_menu (GTK_NOTEBOOK (notebook->notebook),
|
||||
page, image, menu_widget);
|
||||
|
||||
if (! notebook->cur_page)
|
||||
notebook->cur_page = GIMP_COLOR_SELECTOR (page);
|
||||
|
||||
notebook->selectors = g_list_append (notebook->selectors, page);
|
||||
|
||||
gtk_widget_show (page);
|
||||
|
||||
g_signal_connect (page, "color_changed",
|
||||
G_CALLBACK (gimp_color_notebook_color_changed),
|
||||
notebook);
|
||||
g_signal_connect (page, "channel_changed",
|
||||
G_CALLBACK (gimp_color_notebook_channel_changed),
|
||||
notebook);
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
/* public function */
|
||||
|
||||
|
@ -387,7 +475,6 @@ gimp_color_notebook_set_has_page (GimpColorNotebook *notebook,
|
|||
{
|
||||
GimpColorSelector *selector;
|
||||
GimpColorSelector *page;
|
||||
GtkWidget *label;
|
||||
GList *list;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_COLOR_NOTEBOOK (notebook), NULL);
|
||||
|
@ -421,34 +508,5 @@ gimp_color_notebook_set_has_page (GimpColorNotebook *notebook,
|
|||
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 (page, "color_changed",
|
||||
G_CALLBACK (gimp_color_notebook_color_changed),
|
||||
notebook);
|
||||
g_signal_connect (page, "channel_changed",
|
||||
G_CALLBACK (gimp_color_notebook_channel_changed),
|
||||
notebook);
|
||||
|
||||
return GTK_WIDGET (page);
|
||||
return gimp_color_notebook_add_page (notebook, page_type);
|
||||
}
|
||||
|
|
|
@ -43,7 +43,9 @@ style "gimp-default-style"
|
|||
GimpToolbox::tool_icon_size = button
|
||||
GimpToolbox::button_relief = none
|
||||
GimpDockbook::tab_border = 0
|
||||
GimpDockbook::tab_size = button
|
||||
GimpDockbook::tab_icon_size = button
|
||||
GimpColorNotebook::tab_border = 0
|
||||
GimpColorNotebook::tab_icon_size = button
|
||||
GimpDockable::content_border = 2
|
||||
GimpEditor::content_spacing = 2
|
||||
GimpEditor::button_spacing = 2
|
||||
|
|
Loading…
Reference in New Issue