fixed size calculation, removed padding and the spacing between the icon
2003-03-13 Michael Natterer <mitch@gimp.org> * app/widgets/gimpcellrenderertoggle.c: fixed size calculation, removed padding and the spacing between the icon and the frame around it. * app/widgets/gimpwidgets-utils.[ch]: added gimp_get_icon_size() which returns the best matching icon size for a given allocation. * app/widgets/gimpcomponenteditor.[ch]: adjust the eye icon's size according to the preview_size. * app/widgets/gimppreviewrenderer.c (gimp_preview_renderer_default_render_stock): use gimp_get_icon_size() * app/widgets/gimpcomponenteditor.c * app/widgets/gimpcontainertreeview.c: iterate the tree model using a for() loop instead of nested if() { do { } while() } stuff.
This commit is contained in:

committed by
Michael Natterer

parent
01745138f9
commit
5f6830341d
20
ChangeLog
20
ChangeLog
@ -1,3 +1,23 @@
|
||||
2003-03-13 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/widgets/gimpcellrenderertoggle.c: fixed size calculation,
|
||||
removed padding and the spacing between the icon and the frame
|
||||
around it.
|
||||
|
||||
* app/widgets/gimpwidgets-utils.[ch]: added gimp_get_icon_size()
|
||||
which returns the best matching icon size for a given allocation.
|
||||
|
||||
* app/widgets/gimpcomponenteditor.[ch]: adjust the eye icon's
|
||||
size according to the preview_size.
|
||||
|
||||
* app/widgets/gimppreviewrenderer.c
|
||||
(gimp_preview_renderer_default_render_stock): use gimp_get_icon_size()
|
||||
|
||||
* app/widgets/gimpcomponenteditor.c
|
||||
* app/widgets/gimpcontainertreeview.c: iterate the tree model
|
||||
using a for() loop instead of nested if() { do { } while() }
|
||||
stuff.
|
||||
|
||||
2003-03-13 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/core/core-enums.h: made the GimpPreviewSize enum values a
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* The GIMP -- an image manipulation program
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* gimpcellrenderertoggle.h
|
||||
* gimpcellrenderertoggle.c
|
||||
* Copyright (C) 2003 Sven Neumann <sven@gimp.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -135,6 +135,9 @@ gimp_cell_renderer_toggle_class_init (GimpCellRendererToggleClass *klass)
|
||||
static void
|
||||
gimp_cell_renderer_toggle_init (GimpCellRendererToggle *cell)
|
||||
{
|
||||
GTK_CELL_RENDERER (cell)->xpad = 0;
|
||||
GTK_CELL_RENDERER (cell)->ypad = 0;
|
||||
|
||||
cell->stock_id = NULL;
|
||||
cell->stock_size = DEFAULT_ICON_SIZE;
|
||||
}
|
||||
@ -252,9 +255,9 @@ gimp_cell_renderer_toggle_get_size (GtkCellRenderer *cell,
|
||||
pixbuf_height = gdk_pixbuf_get_height (toggle->pixbuf);
|
||||
|
||||
calc_width = (pixbuf_width +
|
||||
(gint) cell->xpad * 2 + widget->style->xthickness * 4);
|
||||
(gint) cell->xpad * 2 + widget->style->xthickness * 2);
|
||||
calc_height = (pixbuf_height +
|
||||
(gint) cell->ypad * 2 + widget->style->ythickness * 4);
|
||||
(gint) cell->ypad * 2 + widget->style->ythickness * 2);
|
||||
|
||||
if (x_offset) *x_offset = 0;
|
||||
if (y_offset) *y_offset = 0;
|
||||
@ -263,15 +266,13 @@ gimp_cell_renderer_toggle_get_size (GtkCellRenderer *cell,
|
||||
{
|
||||
if (x_offset)
|
||||
{
|
||||
*x_offset = (cell->xalign *
|
||||
(cell_area->width - calc_width - 2 * cell->xpad));
|
||||
*x_offset = (MAX (*x_offset, 0) + cell->xpad);
|
||||
*x_offset = cell->xalign * (cell_area->width - calc_width);
|
||||
*x_offset = MAX (*x_offset, 0);
|
||||
}
|
||||
if (y_offset)
|
||||
{
|
||||
*y_offset = (cell->yalign *
|
||||
(cell_area->height - calc_height - 2 * cell->ypad));
|
||||
*y_offset = (MAX (*y_offset, 0) + cell->ypad);
|
||||
*y_offset = cell->yalign * (cell_area->height - calc_height);
|
||||
*y_offset = MAX (*y_offset, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -349,10 +350,10 @@ gimp_cell_renderer_toggle_render (GtkCellRenderer *cell,
|
||||
{
|
||||
GdkRectangle draw_rect;
|
||||
|
||||
toggle_rect.x += widget->style->xthickness * 2;
|
||||
toggle_rect.y += widget->style->ythickness * 2;
|
||||
toggle_rect.width -= widget->style->xthickness * 4;
|
||||
toggle_rect.height -= widget->style->ythickness * 4;
|
||||
toggle_rect.x += widget->style->xthickness;
|
||||
toggle_rect.y += widget->style->ythickness;
|
||||
toggle_rect.width -= widget->style->xthickness * 2;
|
||||
toggle_rect.height -= widget->style->ythickness * 2;
|
||||
|
||||
if (gdk_rectangle_intersect (cell_area, &toggle_rect, &draw_rect) &&
|
||||
gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect))
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "gimpitemfactory.h"
|
||||
#include "gimpmenufactory.h"
|
||||
#include "gimppreviewrendererimage.h"
|
||||
#include "gimpwidgets-utils.h"
|
||||
|
||||
#include "libgimp/gimpintl.h"
|
||||
|
||||
@ -157,15 +158,18 @@ gimp_component_editor_init (GimpComponentEditor *editor)
|
||||
gtk_tree_view_set_headers_visible (editor->view, FALSE);
|
||||
|
||||
editor->eye_column = gtk_tree_view_column_new ();
|
||||
gtk_tree_view_column_set_sizing (editor->eye_column,
|
||||
GTK_TREE_VIEW_COLUMN_AUTOSIZE);
|
||||
gtk_tree_view_append_column (editor->view, editor->eye_column);
|
||||
|
||||
cell = gimp_cell_renderer_toggle_new (GIMP_STOCK_VISIBLE);
|
||||
gtk_tree_view_column_pack_start (editor->eye_column, cell, FALSE);
|
||||
gtk_tree_view_column_set_attributes (editor->eye_column, cell,
|
||||
editor->eye_cell = gimp_cell_renderer_toggle_new (GIMP_STOCK_VISIBLE);
|
||||
gtk_tree_view_column_pack_start (editor->eye_column, editor->eye_cell,
|
||||
FALSE);
|
||||
gtk_tree_view_column_set_attributes (editor->eye_column, editor->eye_cell,
|
||||
"active", COLUMN_VISIBLE,
|
||||
NULL);
|
||||
|
||||
g_signal_connect (cell, "toggled",
|
||||
g_signal_connect (editor->eye_cell, "toggled",
|
||||
G_CALLBACK (gimp_component_editor_toggled),
|
||||
editor);
|
||||
|
||||
@ -275,7 +279,8 @@ gimp_component_editor_new (gint preview_size,
|
||||
|
||||
editor = g_object_new (GIMP_TYPE_COMPONENT_EDITOR, NULL);
|
||||
|
||||
editor->preview_size = preview_size;
|
||||
gimp_component_editor_set_preview_size (editor, preview_size);
|
||||
|
||||
editor->item_factory = gimp_menu_factory_menu_new (menu_factory,
|
||||
"<Channels>",
|
||||
GTK_TYPE_MENU,
|
||||
@ -289,30 +294,47 @@ void
|
||||
gimp_component_editor_set_preview_size (GimpComponentEditor *editor,
|
||||
gint preview_size)
|
||||
{
|
||||
GtkTreeIter iter;
|
||||
GtkWidget *tree_widget;
|
||||
GtkIconSize icon_size;
|
||||
GtkTreeIter iter;
|
||||
gboolean iter_valid;
|
||||
|
||||
g_return_if_fail (GIMP_IS_COMPONENT_EDITOR (editor));
|
||||
g_return_if_fail (preview_size > 0 && preview_size <= GIMP_PREVIEW_MAX_SIZE);
|
||||
|
||||
if (gtk_tree_model_get_iter_first (editor->model, &iter))
|
||||
tree_widget = GTK_WIDGET (editor->view);
|
||||
|
||||
icon_size = gimp_get_icon_size (tree_widget,
|
||||
GIMP_STOCK_VISIBLE,
|
||||
GTK_ICON_SIZE_BUTTON,
|
||||
preview_size -
|
||||
2 * tree_widget->style->xthickness,
|
||||
preview_size -
|
||||
2 * tree_widget->style->ythickness);
|
||||
|
||||
g_print ("icon_size = %d\n", icon_size);
|
||||
|
||||
g_object_set (editor->eye_cell,
|
||||
"stock-size", icon_size,
|
||||
NULL);
|
||||
|
||||
for (iter_valid = gtk_tree_model_get_iter_first (editor->model, &iter);
|
||||
iter_valid;
|
||||
iter_valid = gtk_tree_model_iter_next (editor->model, &iter))
|
||||
{
|
||||
do
|
||||
{
|
||||
GimpPreviewRenderer *renderer;
|
||||
GimpPreviewRenderer *renderer;
|
||||
|
||||
gtk_tree_model_get (editor->model, &iter,
|
||||
COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
gtk_tree_model_get (editor->model, &iter,
|
||||
COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
|
||||
gimp_preview_renderer_set_size (renderer, preview_size, 1);
|
||||
gimp_preview_renderer_set_size (renderer, preview_size, 1);
|
||||
|
||||
gtk_list_store_set (GTK_LIST_STORE (editor->model), &iter,
|
||||
COLUMN_RENDERER, renderer,
|
||||
-1);
|
||||
gtk_list_store_set (GTK_LIST_STORE (editor->model), &iter,
|
||||
COLUMN_RENDERER, renderer,
|
||||
-1);
|
||||
|
||||
g_object_unref (renderer);
|
||||
}
|
||||
while (gtk_tree_model_iter_next (editor->model, &iter));
|
||||
g_object_unref (renderer);
|
||||
}
|
||||
|
||||
editor->preview_size = preview_size;
|
||||
|
@ -48,6 +48,7 @@ struct _GimpComponentEditor
|
||||
GtkTreeSelection *selection;
|
||||
|
||||
GtkTreeViewColumn *eye_column;
|
||||
GtkCellRenderer *eye_cell;
|
||||
|
||||
GimpChannelType clicked_component;
|
||||
};
|
||||
|
@ -533,29 +533,28 @@ gimp_container_tree_view_set_preview_size (GimpContainerView *view)
|
||||
GimpContainerTreeView *tree_view;
|
||||
GtkTreeModel *tree_model;
|
||||
GtkTreeIter iter;
|
||||
gboolean iter_valid;
|
||||
|
||||
tree_view = GIMP_CONTAINER_TREE_VIEW (view);
|
||||
tree_model = GTK_TREE_MODEL (tree_view->list);
|
||||
|
||||
if (gtk_tree_model_get_iter_first (tree_model, &iter))
|
||||
for (iter_valid = gtk_tree_model_get_iter_first (tree_model, &iter);
|
||||
iter_valid;
|
||||
iter_valid = gtk_tree_model_iter_next (tree_model, &iter))
|
||||
{
|
||||
do
|
||||
{
|
||||
GimpPreviewRenderer *renderer;
|
||||
GimpPreviewRenderer *renderer;
|
||||
|
||||
gtk_tree_model_get (GTK_TREE_MODEL (tree_view->list), &iter,
|
||||
COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
gtk_tree_model_get (GTK_TREE_MODEL (tree_view->list), &iter,
|
||||
COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
|
||||
gimp_preview_renderer_set_size (renderer, view->preview_size, 1);
|
||||
gimp_preview_renderer_set_size (renderer, view->preview_size, 1);
|
||||
|
||||
gtk_list_store_set (tree_view->list, &iter,
|
||||
COLUMN_RENDERER, renderer,
|
||||
-1);
|
||||
gtk_list_store_set (tree_view->list, &iter,
|
||||
COLUMN_RENDERER, renderer,
|
||||
-1);
|
||||
|
||||
g_object_unref (renderer);
|
||||
}
|
||||
while (gtk_tree_model_iter_next (tree_model, &iter));
|
||||
g_object_unref (renderer);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -46,6 +46,7 @@
|
||||
|
||||
#include "gimppreviewrenderer.h"
|
||||
#include "gimppreviewrenderer-utils.h"
|
||||
#include "gimpwidgets-utils.h"
|
||||
|
||||
|
||||
enum
|
||||
@ -659,14 +660,8 @@ gimp_preview_renderer_default_render_stock (GimpPreviewRenderer *renderer,
|
||||
GtkWidget *widget,
|
||||
const gchar *stock_id)
|
||||
{
|
||||
GdkPixbuf *pixbuf;
|
||||
GtkIconSet *icon_set;
|
||||
GtkIconSize *sizes;
|
||||
gint n_sizes;
|
||||
gint i;
|
||||
gint width_diff = 1024;
|
||||
gint height_diff = 1024;
|
||||
GtkIconSize icon_size = GTK_ICON_SIZE_MENU;
|
||||
GdkPixbuf *pixbuf;
|
||||
GtkIconSize icon_size;
|
||||
|
||||
g_return_if_fail (GIMP_IS_PREVIEW_RENDERER (renderer));
|
||||
g_return_if_fail (GTK_IS_WIDGET (widget));
|
||||
@ -684,31 +679,8 @@ gimp_preview_renderer_default_render_stock (GimpPreviewRenderer *renderer,
|
||||
renderer->buffer = NULL;
|
||||
}
|
||||
|
||||
icon_set = gtk_style_lookup_icon_set (widget->style, stock_id);
|
||||
|
||||
gtk_icon_set_get_sizes (icon_set, &sizes, &n_sizes);
|
||||
|
||||
for (i = 0; i < n_sizes; i++)
|
||||
{
|
||||
gint icon_width;
|
||||
gint icon_height;
|
||||
|
||||
if (gtk_icon_size_lookup (sizes[i], &icon_width, &icon_height))
|
||||
{
|
||||
if (icon_width <= renderer->width &&
|
||||
icon_height <= renderer->height &&
|
||||
(ABS (icon_width - renderer->width) < width_diff ||
|
||||
ABS (icon_height - renderer->height) < height_diff))
|
||||
{
|
||||
width_diff = ABS (icon_width - renderer->width);
|
||||
height_diff = ABS (icon_height - renderer->height);
|
||||
|
||||
icon_size = sizes[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_free (sizes);
|
||||
icon_size = gimp_get_icon_size (widget, stock_id, GTK_ICON_SIZE_INVALID,
|
||||
renderer->width, renderer->height);
|
||||
|
||||
pixbuf = gtk_widget_render_icon (widget, stock_id, icon_size, NULL);
|
||||
|
||||
|
@ -46,6 +46,7 @@
|
||||
|
||||
#include "gimppreviewrenderer.h"
|
||||
#include "gimppreviewrenderer-utils.h"
|
||||
#include "gimpwidgets-utils.h"
|
||||
|
||||
|
||||
enum
|
||||
@ -659,14 +660,8 @@ gimp_preview_renderer_default_render_stock (GimpPreviewRenderer *renderer,
|
||||
GtkWidget *widget,
|
||||
const gchar *stock_id)
|
||||
{
|
||||
GdkPixbuf *pixbuf;
|
||||
GtkIconSet *icon_set;
|
||||
GtkIconSize *sizes;
|
||||
gint n_sizes;
|
||||
gint i;
|
||||
gint width_diff = 1024;
|
||||
gint height_diff = 1024;
|
||||
GtkIconSize icon_size = GTK_ICON_SIZE_MENU;
|
||||
GdkPixbuf *pixbuf;
|
||||
GtkIconSize icon_size;
|
||||
|
||||
g_return_if_fail (GIMP_IS_PREVIEW_RENDERER (renderer));
|
||||
g_return_if_fail (GTK_IS_WIDGET (widget));
|
||||
@ -684,31 +679,8 @@ gimp_preview_renderer_default_render_stock (GimpPreviewRenderer *renderer,
|
||||
renderer->buffer = NULL;
|
||||
}
|
||||
|
||||
icon_set = gtk_style_lookup_icon_set (widget->style, stock_id);
|
||||
|
||||
gtk_icon_set_get_sizes (icon_set, &sizes, &n_sizes);
|
||||
|
||||
for (i = 0; i < n_sizes; i++)
|
||||
{
|
||||
gint icon_width;
|
||||
gint icon_height;
|
||||
|
||||
if (gtk_icon_size_lookup (sizes[i], &icon_width, &icon_height))
|
||||
{
|
||||
if (icon_width <= renderer->width &&
|
||||
icon_height <= renderer->height &&
|
||||
(ABS (icon_width - renderer->width) < width_diff ||
|
||||
ABS (icon_height - renderer->height) < height_diff))
|
||||
{
|
||||
width_diff = ABS (icon_width - renderer->width);
|
||||
height_diff = ABS (icon_height - renderer->height);
|
||||
|
||||
icon_size = sizes[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_free (sizes);
|
||||
icon_size = gimp_get_icon_size (widget, stock_id, GTK_ICON_SIZE_INVALID,
|
||||
renderer->width, renderer->height);
|
||||
|
||||
pixbuf = gtk_widget_render_icon (widget, stock_id, icon_size, NULL);
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
/* The GIMP -- an image manipulation program
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* gimpui.c
|
||||
* Copyright (C) 1999 Michael Natterer <mitch@gimp.org>
|
||||
* gimpwidgets-utils.c
|
||||
* Copyright (C) 1999-2003 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
|
||||
@ -285,6 +285,65 @@ gimp_table_attach_stock (GtkTable *table,
|
||||
}
|
||||
}
|
||||
|
||||
GtkIconSize
|
||||
gimp_get_icon_size (GtkWidget *widget,
|
||||
const gchar *stock_id,
|
||||
GtkIconSize max_size,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
GtkIconSet *icon_set;
|
||||
GtkIconSize *sizes;
|
||||
gint n_sizes;
|
||||
gint i;
|
||||
gint width_diff = 1024;
|
||||
gint height_diff = 1024;
|
||||
gint max_width;
|
||||
gint max_height;
|
||||
GtkIconSize icon_size = GTK_ICON_SIZE_MENU;
|
||||
|
||||
g_return_val_if_fail (GTK_IS_WIDGET (widget), icon_size);
|
||||
g_return_val_if_fail (stock_id != NULL, icon_size);
|
||||
g_return_val_if_fail (width > 0, icon_size);
|
||||
g_return_val_if_fail (height > 0, icon_size);
|
||||
|
||||
if (! gtk_icon_size_lookup (max_size, &max_width, &max_height))
|
||||
{
|
||||
max_width = 1024;
|
||||
max_height = 1024;
|
||||
}
|
||||
|
||||
icon_set = gtk_style_lookup_icon_set (widget->style, stock_id);
|
||||
|
||||
gtk_icon_set_get_sizes (icon_set, &sizes, &n_sizes);
|
||||
|
||||
for (i = 0; i < n_sizes; i++)
|
||||
{
|
||||
gint icon_width;
|
||||
gint icon_height;
|
||||
|
||||
if (gtk_icon_size_lookup (sizes[i], &icon_width, &icon_height))
|
||||
{
|
||||
if (icon_width <= width &&
|
||||
icon_height <= height &&
|
||||
icon_width <= max_width &&
|
||||
icon_height <= max_height &&
|
||||
((width - icon_width) < width_diff ||
|
||||
(height - icon_height) < height_diff))
|
||||
{
|
||||
width_diff = width - icon_width;
|
||||
height_diff = height - icon_height;
|
||||
|
||||
icon_size = sizes[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_free (sizes);
|
||||
|
||||
return icon_size;
|
||||
}
|
||||
|
||||
|
||||
/* The format string which is used to display modifier names
|
||||
* <Shift>, <Ctrl> and <Alt>
|
||||
|
@ -1,8 +1,8 @@
|
||||
/* The GIMP -- an image manipulation program
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* gimpui.h
|
||||
* Copyright (C) 1999 Michael Natterer <mitch@gimp.org>
|
||||
* gimpwidgets-utils.h
|
||||
* Copyright (C) 1999-2003 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
|
||||
@ -23,9 +23,6 @@
|
||||
#define __GIMP_WIDGETS_UTILS_H__
|
||||
|
||||
|
||||
typedef gpointer (* GimpGetAccelContextFunc) (gpointer data);
|
||||
|
||||
|
||||
void gimp_message_box (const gchar *message,
|
||||
GtkCallback callback,
|
||||
gpointer data);
|
||||
@ -44,6 +41,12 @@ void gimp_table_attach_stock (GtkTable *table,
|
||||
gint colspan,
|
||||
const gchar *stock_id);
|
||||
|
||||
GtkIconSize gimp_get_icon_size (GtkWidget *widget,
|
||||
const gchar *stock_id,
|
||||
GtkIconSize max_size,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
const gchar * gimp_get_mod_name_shift (void);
|
||||
const gchar * gimp_get_mod_name_control (void);
|
||||
const gchar * gimp_get_mod_name_alt (void);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* The GIMP -- an image manipulation program
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* gimpcellrenderertoggle.h
|
||||
* gimpcellrenderertoggle.c
|
||||
* Copyright (C) 2003 Sven Neumann <sven@gimp.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -135,6 +135,9 @@ gimp_cell_renderer_toggle_class_init (GimpCellRendererToggleClass *klass)
|
||||
static void
|
||||
gimp_cell_renderer_toggle_init (GimpCellRendererToggle *cell)
|
||||
{
|
||||
GTK_CELL_RENDERER (cell)->xpad = 0;
|
||||
GTK_CELL_RENDERER (cell)->ypad = 0;
|
||||
|
||||
cell->stock_id = NULL;
|
||||
cell->stock_size = DEFAULT_ICON_SIZE;
|
||||
}
|
||||
@ -252,9 +255,9 @@ gimp_cell_renderer_toggle_get_size (GtkCellRenderer *cell,
|
||||
pixbuf_height = gdk_pixbuf_get_height (toggle->pixbuf);
|
||||
|
||||
calc_width = (pixbuf_width +
|
||||
(gint) cell->xpad * 2 + widget->style->xthickness * 4);
|
||||
(gint) cell->xpad * 2 + widget->style->xthickness * 2);
|
||||
calc_height = (pixbuf_height +
|
||||
(gint) cell->ypad * 2 + widget->style->ythickness * 4);
|
||||
(gint) cell->ypad * 2 + widget->style->ythickness * 2);
|
||||
|
||||
if (x_offset) *x_offset = 0;
|
||||
if (y_offset) *y_offset = 0;
|
||||
@ -263,15 +266,13 @@ gimp_cell_renderer_toggle_get_size (GtkCellRenderer *cell,
|
||||
{
|
||||
if (x_offset)
|
||||
{
|
||||
*x_offset = (cell->xalign *
|
||||
(cell_area->width - calc_width - 2 * cell->xpad));
|
||||
*x_offset = (MAX (*x_offset, 0) + cell->xpad);
|
||||
*x_offset = cell->xalign * (cell_area->width - calc_width);
|
||||
*x_offset = MAX (*x_offset, 0);
|
||||
}
|
||||
if (y_offset)
|
||||
{
|
||||
*y_offset = (cell->yalign *
|
||||
(cell_area->height - calc_height - 2 * cell->ypad));
|
||||
*y_offset = (MAX (*y_offset, 0) + cell->ypad);
|
||||
*y_offset = cell->yalign * (cell_area->height - calc_height);
|
||||
*y_offset = MAX (*y_offset, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -349,10 +350,10 @@ gimp_cell_renderer_toggle_render (GtkCellRenderer *cell,
|
||||
{
|
||||
GdkRectangle draw_rect;
|
||||
|
||||
toggle_rect.x += widget->style->xthickness * 2;
|
||||
toggle_rect.y += widget->style->ythickness * 2;
|
||||
toggle_rect.width -= widget->style->xthickness * 4;
|
||||
toggle_rect.height -= widget->style->ythickness * 4;
|
||||
toggle_rect.x += widget->style->xthickness;
|
||||
toggle_rect.y += widget->style->ythickness;
|
||||
toggle_rect.width -= widget->style->xthickness * 2;
|
||||
toggle_rect.height -= widget->style->ythickness * 2;
|
||||
|
||||
if (gdk_rectangle_intersect (cell_area, &toggle_rect, &draw_rect) &&
|
||||
gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect))
|
||||
|
Reference in New Issue
Block a user