sync to CVS.

Sun Mar 17 23:26:02 2002  Jonathan Blandford  <jrb@gnome.org>

	* capplets/keybindings/eggcellrendererkeys.[ch]: sync to CVS.
This commit is contained in:
Jonathan Blandford 2002-03-18 04:28:47 +00:00 committed by Jonathan Blandford
parent b4924a9033
commit 8b4d8026b9
3 changed files with 52 additions and 12 deletions

View file

@ -1,3 +1,7 @@
Sun Mar 17 23:26:02 2002 Jonathan Blandford <jrb@gnome.org>
* capplets/keybindings/eggcellrendererkeys.[ch]: sync to CVS.
2002-03-17 jacob berkman <jacob@ximian.com>
* capplets/keybindings/Makefile.am

View file

@ -33,6 +33,14 @@ static void egg_cell_renderer_keys_set_property (GObject *obje
guint param_id,
const GValue *value,
GParamSpec *pspec);
static void egg_cell_renderer_keys_get_size (GtkCellRenderer *cell,
GtkWidget *widget,
GdkRectangle *cell_area,
gint *x_offset,
gint *y_offset,
gint *width,
gint *height);
enum {
PROP_0,
@ -120,15 +128,17 @@ static void
egg_cell_renderer_keys_class_init (EggCellRendererKeysClass *cell_keys_class)
{
GObjectClass *object_class;
GtkCellRendererClass *cell_renderer_class;
object_class = G_OBJECT_CLASS (cell_keys_class);
cell_renderer_class = GTK_CELL_RENDERER_CLASS (cell_keys_class);
parent_class = g_type_class_peek_parent (object_class);
GTK_CELL_RENDERER_CLASS (cell_keys_class)->start_editing = egg_cell_renderer_keys_start_editing;
object_class->set_property = egg_cell_renderer_keys_set_property;
object_class->get_property = egg_cell_renderer_keys_get_property;
cell_renderer_class->get_size = egg_cell_renderer_keys_get_size;
object_class->finalize = egg_cell_renderer_keys_finalize;
@ -276,6 +286,31 @@ is_modifier (guint keycode)
return retval;
}
void
egg_cell_renderer_keys_get_size (GtkCellRenderer *cell,
GtkWidget *widget,
GdkRectangle *cell_area,
gint *x_offset,
gint *y_offset,
gint *width,
gint *height)
{
EggCellRendererKeys *keys = (EggCellRendererKeys *) cell;
GtkRequisition requisition;
if (keys->sizing_label == NULL)
keys->sizing_label = gtk_label_new (_("Type a new accelerator, or press Backspace to clear"));
gtk_widget_size_request (keys->sizing_label, &requisition);
(* GTK_CELL_RENDERER_CLASS (parent_class)->get_size) (cell, widget, cell_area, x_offset, y_offset, width, height);
/* FIXME: need to take the cell_area et al. into account */
if (width)
*width = MAX (*width, requisition.width);
if (height)
*height = MAX (*height, requisition.height);
}
static GdkFilterReturn
grab_key_filter (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
{
@ -450,7 +485,7 @@ egg_cell_renderer_keys_start_editing (GtkCellRenderer *cell,
&widget->style->fg[GTK_STATE_SELECTED]);
if (keys->accel_key != 0)
gtk_label_set_markup (GTK_LABEL (label),
gtk_label_set_text (GTK_LABEL (label),
_("Type a new accelerator, or press Backspace to clear"));
else
gtk_label_set_text (GTK_LABEL (label),

View file

@ -43,6 +43,7 @@ struct _EggCellRendererKeys
GdkWindow *filter_window;
guint edit_key;
GdkModifierType edit_mask;
GtkWidget *sizing_label;
};
struct _EggCellRendererKeysClass