added construct properties to make it possible to derive from

2004-05-05  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpviewabledialog.c: added construct properties to
	make it possible to derive from GimpViewableDialog.

	* app/widgets/gimptooldialog.[ch]: make GimpToolDialog a real
	object, not just a convenience constructor.

	* themes/Default/gtkrc
	* themes/Small/gtkrc: set a smaller border_width of 6 pixels for
	the action area of tool dialogs.

	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpimagemaptool.c: set a smaller border_width of 6
	pixels on tool dialogs to make them more compact.
This commit is contained in:
Sven Neumann 2004-05-05 00:01:19 +00:00 committed by Sven Neumann
parent 144e5999d2
commit 58bcea08cc
8 changed files with 197 additions and 57 deletions

View File

@ -1,3 +1,19 @@
2004-05-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewabledialog.c: added construct properties to
make it possible to derive from GimpViewableDialog.
* app/widgets/gimptooldialog.[ch]: make GimpToolDialog a real
object, not just a convenience constructor.
* themes/Default/gtkrc
* themes/Small/gtkrc: set a smaller border_width of 6 pixels for
the action area of tool dialogs.
* app/tools/gimpcolorpickertool.c
* app/tools/gimpimagemaptool.c: set a smaller border_width of 6
pixels on tool dialogs to make them more compact.
2004-05-05 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpoffsetarea.[ch]: added new function

View File

@ -326,7 +326,7 @@ gimp_color_picker_tool_info_create (GimpColorPickerTool *picker_tool)
G_CALLBACK (gimp_color_picker_tool_info_response),
picker_tool);
hbox = gtk_hbox_new (FALSE, 4);
hbox = gtk_hbox_new (FALSE, 6);
gtk_container_set_border_width (GTK_CONTAINER (hbox), 6);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (picker_tool->dialog)->vbox), hbox,
FALSE, FALSE, 0);

View File

@ -233,8 +233,8 @@ gimp_image_map_tool_initialize (GimpTool *tool,
G_CALLBACK (gimp_image_map_tool_response),
G_OBJECT (image_map_tool), 0);
image_map_tool->main_vbox = vbox = gtk_vbox_new (FALSE, 12);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
image_map_tool->main_vbox = vbox = gtk_vbox_new (FALSE, 6);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (shell)->vbox), vbox);
/* The preview toggle */

View File

@ -32,7 +32,35 @@
#include "gimpdialogfactory.h"
#include "gimptooldialog.h"
#include "gimpviewabledialog.h"
GType
gimp_tool_dialog_get_type (void)
{
static GType dialog_type = 0;
if (! dialog_type)
{
static const GTypeInfo dialog_info =
{
sizeof (GimpToolDialogClass),
(GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL,
(GClassInitFunc) NULL,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (GimpToolDialog),
0, /* n_preallocs */
(GInstanceInitFunc) NULL
};
dialog_type = g_type_register_static (GIMP_TYPE_VIEWABLE_DIALOG,
"GimpToolDialog",
&dialog_info, 0);
}
return dialog_type;
}
/**
@ -66,15 +94,16 @@ gimp_tool_dialog_new (GimpToolInfo *tool_info,
stock_id = gimp_viewable_get_stock_id (GIMP_VIEWABLE (tool_info));
dialog = gimp_viewable_dialog_new (NULL,
tool_info->blurb,
GIMP_OBJECT (tool_info)->name,
stock_id,
desc ? desc : tool_info->help,
parent,
gimp_standard_help_func,
tool_info->help_id,
NULL);
dialog = g_object_new (GIMP_TYPE_TOOL_DIALOG,
"title", tool_info->blurb,
"role", GIMP_OBJECT (tool_info)->name,
"stock_id", stock_id,
"description", desc ? desc : tool_info->help,
"parent", parent,
NULL);
gimp_help_connect (GTK_WIDGET (dialog),
gimp_standard_help_func, tool_info->help_id, dialog);
va_start (args, desc);
gimp_dialog_add_buttons_valist (GIMP_DIALOG (dialog), args);

View File

@ -22,11 +22,27 @@
#ifndef __GIMP_TOOL_DIALOG_H__
#define __GIMP_TOOL_DIALOG_H__
#include "widgets/gimpviewabledialog.h"
GtkWidget * gimp_tool_dialog_new (GimpToolInfo *tool_info,
GtkWidget *parent,
const gchar *desc,
...);
#define GIMP_TYPE_TOOL_DIALOG (gimp_tool_dialog_get_type ())
#define GIMP_TOOL_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_TOOL_DIALOG, GimpToolDialog))
#define GIMP_TOOL_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_TOOL_DIALOG, GimpToolDialogClass))
#define GIMP_IS_TOOL_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_TOOL_DIALOG))
#define GIMP_IS_TOOL_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_TOOL_DIALOG))
#define GIMP_TOOL_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_TOOL_DIALOG, GimpToolDialogClass))
typedef struct _GimpViewableDialogClass GimpToolDialogClass;
typedef struct _GimpViewableDialog GimpToolDialog;
GType gimp_tool_dialog_get_type (void) G_GNUC_CONST;
GtkWidget * gimp_tool_dialog_new (GimpToolInfo *tool_info,
GtkWidget *parent,
const gchar *desc,
...);
#endif /* __GIMP_TOOL_DIALOG_H__ */

View File

@ -36,9 +36,23 @@
#include "gimpviewabledialog.h"
enum
{
PROP_0,
PROP_STOCK_ID,
PROP_DESC,
PROP_PARENT
};
static void gimp_viewable_dialog_class_init (GimpViewableDialogClass *klass);
static void gimp_viewable_dialog_init (GimpViewableDialog *dialog);
static void gimp_viewable_dialog_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec);
static void gimp_viewable_dialog_destroy (GtkObject *object);
static void gimp_viewable_dialog_name_changed (GimpObject *object,
@ -80,13 +94,33 @@ gimp_viewable_dialog_get_type (void)
static void
gimp_viewable_dialog_class_init (GimpViewableDialogClass *klass)
{
GtkObjectClass *object_class;
GtkObjectClass *gtk_object_class;
GObjectClass *object_class;
object_class = GTK_OBJECT_CLASS (klass);
gtk_object_class = GTK_OBJECT_CLASS (klass);
object_class = G_OBJECT_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
object_class->destroy = gimp_viewable_dialog_destroy;
gtk_object_class->destroy = gimp_viewable_dialog_destroy;
object_class->set_property = gimp_viewable_dialog_set_property;
g_object_class_install_property (object_class, PROP_STOCK_ID,
g_param_spec_string ("stock-id", NULL, NULL,
NULL,
G_PARAM_WRITABLE |
G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (object_class, PROP_DESC,
g_param_spec_string ("description", NULL, NULL,
NULL,
G_PARAM_WRITABLE |
G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (object_class, PROP_PARENT,
g_param_spec_object ("parent", NULL, NULL,
GTK_TYPE_WIDGET,
G_PARAM_WRITABLE |
G_PARAM_CONSTRUCT_ONLY));
}
static void
@ -132,18 +166,76 @@ gimp_viewable_dialog_init (GimpViewableDialog *dialog)
gtk_box_pack_start (GTK_BOX (vbox), dialog->desc_label, FALSE, FALSE, 0);
gtk_widget_show (dialog->desc_label);
{
PangoAttrList *attrs;
PangoAttribute *attr;
attrs = pango_attr_list_new ();
attr = pango_attr_scale_new (PANGO_SCALE_LARGE);
attr->start_index = 0;
attr->end_index = -1;
pango_attr_list_insert (attrs, attr);
attr = pango_attr_weight_new (PANGO_WEIGHT_BOLD);
attr->start_index = 0;
attr->end_index = -1;
pango_attr_list_insert (attrs, attr);
gtk_label_set_attributes (GTK_LABEL (dialog->desc_label), attrs);
pango_attr_list_unref (attrs);
}
dialog->viewable_label = gtk_label_new (NULL);
gtk_misc_set_alignment (GTK_MISC (dialog->viewable_label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (vbox), dialog->viewable_label, FALSE, FALSE, 0);
gtk_widget_show (dialog->viewable_label);
}
static void
gimp_viewable_dialog_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec)
{
GimpViewableDialog *dialog = GIMP_VIEWABLE_DIALOG (object);
switch (property_id)
{
case PROP_STOCK_ID:
gtk_image_set_from_stock (GTK_IMAGE (dialog->icon),
g_value_get_string (value),
GTK_ICON_SIZE_LARGE_TOOLBAR);
break;
case PROP_DESC:
gtk_label_set_text (GTK_LABEL (dialog->desc_label),
g_value_get_string (value));
break;
case PROP_PARENT:
{
GtkWidget *parent = g_value_get_object (value);
if (parent)
{
if (GTK_IS_WINDOW (parent))
gtk_window_set_transient_for (GTK_WINDOW (dialog),
GTK_WINDOW (parent));
else
gtk_window_set_screen (GTK_WINDOW (dialog),
gtk_widget_get_screen (parent));
}
}
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void
gimp_viewable_dialog_destroy (GtkObject *object)
{
GimpViewableDialog *dialog;
dialog = GIMP_VIEWABLE_DIALOG (object);
GimpViewableDialog *dialog = GIMP_VIEWABLE_DIALOG (object);
if (dialog->preview)
gimp_viewable_dialog_set_viewable (dialog, NULL);
@ -164,8 +256,6 @@ gimp_viewable_dialog_new (GimpViewable *viewable,
{
GimpViewableDialog *dialog;
va_list args;
PangoAttrList *attrs;
PangoAttribute *attr;
g_return_val_if_fail (! viewable || GIMP_IS_VIEWABLE (viewable), NULL);
g_return_val_if_fail (title != NULL, NULL);
@ -173,19 +263,13 @@ gimp_viewable_dialog_new (GimpViewable *viewable,
g_return_val_if_fail (parent == NULL || GTK_IS_WIDGET (parent), NULL);
dialog = g_object_new (GIMP_TYPE_VIEWABLE_DIALOG,
"title", title,
"role", role,
"title", title,
"role", role,
"stock_id", stock_id,
"description", desc,
"parent", parent,
NULL);
if (parent)
{
if (GTK_IS_WINDOW (parent))
gtk_window_set_transient_for (GTK_WINDOW (dialog),
GTK_WINDOW (parent));
else
gtk_window_set_screen (GTK_WINDOW (dialog),
gtk_widget_get_screen (parent));
}
if (help_func)
gimp_help_connect (GTK_WIDGET (dialog), help_func, help_id, dialog);
@ -194,26 +278,6 @@ gimp_viewable_dialog_new (GimpViewable *viewable,
gimp_dialog_add_buttons_valist (GIMP_DIALOG (dialog), args);
va_end (args);
gtk_image_set_from_stock (GTK_IMAGE (dialog->icon), stock_id,
GTK_ICON_SIZE_LARGE_TOOLBAR);
attrs = pango_attr_list_new ();
attr = pango_attr_scale_new (PANGO_SCALE_LARGE);
attr->start_index = 0;
attr->end_index = -1;
pango_attr_list_insert (attrs, attr);
attr = pango_attr_weight_new (PANGO_WEIGHT_BOLD);
attr->start_index = 0;
attr->end_index = -1;
pango_attr_list_insert (attrs, attr);
gtk_label_set_attributes (GTK_LABEL (dialog->desc_label), attrs);
pango_attr_list_unref (attrs);
gtk_label_set_text (GTK_LABEL (dialog->desc_label), desc);
if (viewable)
gimp_viewable_dialog_set_viewable (dialog, viewable);

View File

@ -67,6 +67,14 @@ style "gimp-tiny-font-style"
class "*Ruler*" style "gimp-tiny-font-style"
style "gimp-tool-dialog-style" = "gimp-default-style"
{
GtkDialog::action_area_border = 6
}
class "GimpToolDialog" style "gimp-tool-dialog-style"
style "gimp-grid-view-style" = "gimp-default-style"
{
bg[NORMAL] = { 1.0, 1.0, 1.0 }

View File

@ -65,6 +65,14 @@ style "gimp-default-style"
class "GtkWidget" style "gimp-default-style"
style "gimp-tool-dialog-style" = "gimp-default-style"
{
GtkDialog::action_area_border = 6
}
class "GimpToolDialog" style "gimp-tool-dialog-style"
style "gimp-grid-view-style" = "gimp-default-style"
{
bg[NORMAL] = { 1.0, 1.0, 1.0 }
@ -76,7 +84,6 @@ widget "*GimpContainerGridView*GtkViewport*" style "gimp-grid-view-style"
style "gimp-dockable-style" = "gimp-default-style"
{
GimpFrame::label_bold = 0
GimpFrame::label_spacing = 1
GtkButton::focus_line_width = 0
GtkButton::focus_line_padding = 0
}