diff options
author | Havoc Pennington <hp@src.gnome.org> | 2001-04-28 20:18:29 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2001-04-28 20:18:29 +0000 |
commit | 7ad364135340a4f685c1a286589d2c90ce4f757d (patch) | |
tree | 0e0fde569fefd6e012ae6ab01c21e1d2e7b8db58 /gtk/gtkhscale.c | |
parent | f06a725358e0997eaf3d02bc8257f2c3cf0043ca (diff) | |
download | gdk-pixbuf-7ad364135340a4f685c1a286589d2c90ce4f757d.tar.gz |
voc Pennington <hp@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_previous_line):
(gtk_text_layout_move_iter_to_next_line): fix these two for
invisible text, lots of other stuff still hosed.
* gtk/gtkcolorsel.c (gtk_color_selection_set_change_palette_hook):
new function, replaces the get/set palette stuff. This function
is intended for use by libgnomeui which should set the hook to a
thing which sets the palette in GConf, and we need the
GConf-to-xsettings proxy which will result in the change being
propagated back to the GTK app.
* gtk/gtkaccelgroup.c (gtk_accel_group_add): add note to warning
about unusable signals that it may be because the signal has
parameters.
* gtk/gtkwidget.c (gtk_widget_modify_style): always copy the
style, otherwise gtkrc.c won't know to create a new GtkStyle for
it.
(gtk_widget_modify_color_component): call
gtk_widget_modify_style() so the rc style will get copied.
(gtk_widget_modify_font): ditto
* gtk/gtkrc.c: make a couple variables static
* gtk/gtkcolorseldialog.c (gtk_color_selection_dialog_init): hide
help button by default, since it does nothing
* gtk/gtkcolorsel.c: add tooltips, work on key navigation, fool
around with UI
* gtk/gtkentry.c (gtk_entry_realize): request enter/leave notify
so we can have tooltips
* gtk/gtkhsv.c (gtk_hsv_realize): request enter/leave notify so we
can have tooltips
* gdk/gdkimage.h: mark gdk_image_new_bitmap with
GDK_ENABLE_BROKEN, because its memory behavior is completely
hosed.
* gtk/gtknotebook.c: remove key press handler, replace with
binding set, add numeric keypad support
* gtk/gtktextview.c (gtk_text_view_class_init): accept KP_Delete
* gtk/gtktext.c (gtk_text_key_press): add a bunch of KP keysyms
* gtk/gtkentry.c (gtk_entry_class_init): accept GDK_KP_Delete in
addition to plain Delete
* gtk/gtktextview.c (gtk_text_view_key_press_event): accept
GDK_KP_Enter in addition to GDK_Return
* gtk/gtkfontsel.c (gtk_font_selection_size_key_press): connect to
activate on entry instead of key press
(gtk_font_selection_on_clist_key_press): get
rid of this signal handler, not needed with new font sel.
* gtk/gtkfilesel.c (gtk_file_selection_key_press): remove a
no-longer-needed emit_stop_by_name(), just return TRUE
* gtk/gtkhscrollbar.c, gtk/gtkvscrollbar.c: remove keybindings
cruft, this widget is no longer focusable.
* gtk/gtkrange.h, gtk/gtkrange.c, gtk/gtkvscale.c,
gtk/gtkhscale.c: Get rid of trough_keys virtual function, add
move_slider action signal, add binding set for vscale/hscale, in
the process support numeric keypad
* gtk/gtkentry.c (gtk_entry_class_init): Add keypad bindings;
make GDK_Return and GDK_KP_Enter activate the entry via
binding set, instead of hardcoded.
Diffstat (limited to 'gtk/gtkhscale.c')
-rw-r--r-- | gtk/gtkhscale.c | 89 |
1 files changed, 48 insertions, 41 deletions
diff --git a/gtk/gtkhscale.c b/gtk/gtkhscale.c index 1f654518e..43739548b 100644 --- a/gtk/gtkhscale.c +++ b/gtk/gtkhscale.c @@ -29,6 +29,7 @@ #include "gtksignal.h" #include "gdk/gdkkeysyms.h" #include "gtkintl.h" +#include "gtkbindings.h" #define SCALE_CLASS(w) GTK_SCALE_GET_CLASS (w) #define RANGE_CLASS(w) GTK_RANGE_GET_CLASS (w) @@ -65,10 +66,7 @@ static void gtk_hscale_pos_background (GtkHScale *hscale, gint *h); static void gtk_hscale_draw_slider (GtkRange *range); static void gtk_hscale_draw_value (GtkScale *scale); -static gboolean gtk_hscale_trough_keys (GtkRange *range, - GdkEventKey *key, - GtkScrollType *scroll, - GtkTroughType *pos); + static void gtk_hscale_clear_background (GtkRange *range); @@ -97,6 +95,12 @@ gtk_hscale_get_type (void) return hscale_type; } +#define add_slider_binding(binding_set, keyval, mask, scroll, trough) \ + gtk_binding_entry_add_signal (binding_set, keyval, mask, \ + "move_slider", 2, \ + GTK_TYPE_SCROLL_TYPE, scroll, \ + GTK_TYPE_TROUGH_TYPE, trough) + static void gtk_hscale_class_init (GtkHScaleClass *class) { @@ -105,7 +109,8 @@ gtk_hscale_class_init (GtkHScaleClass *class) GtkWidgetClass *widget_class; GtkRangeClass *range_class; GtkScaleClass *scale_class; - + GtkBindingSet *binding_set; + gobject_class = (GObjectClass*) class; object_class = (GtkObjectClass*) class; widget_class = (GtkWidgetClass*) class; @@ -123,7 +128,6 @@ gtk_hscale_class_init (GtkHScaleClass *class) range_class->trough_click = _gtk_range_default_htrough_click; range_class->motion = _gtk_range_default_hmotion; range_class->draw_slider = gtk_hscale_draw_slider; - range_class->trough_keys = gtk_hscale_trough_keys; range_class->clear_background = gtk_hscale_clear_background; scale_class->draw_value = gtk_hscale_draw_value; @@ -135,7 +139,45 @@ gtk_hscale_class_init (GtkHScaleClass *class) _("The GtkAdjustment that determines the values to use for this HScale."), GTK_TYPE_ADJUSTMENT, G_PARAM_READWRITE)); + binding_set = gtk_binding_set_by_class (object_class); + + add_slider_binding (binding_set, GDK_Left, 0, + GTK_SCROLL_STEP_LEFT, GTK_TROUGH_NONE); + + add_slider_binding (binding_set, GDK_Left, GDK_CONTROL_MASK, + GTK_SCROLL_PAGE_LEFT, GTK_TROUGH_NONE); + + add_slider_binding (binding_set, GDK_KP_Left, 0, + GTK_SCROLL_STEP_LEFT, GTK_TROUGH_NONE); + + add_slider_binding (binding_set, GDK_KP_Left, GDK_CONTROL_MASK, + GTK_SCROLL_PAGE_LEFT, GTK_TROUGH_NONE); + + + add_slider_binding (binding_set, GDK_Right, 0, + GTK_SCROLL_STEP_RIGHT, GTK_TROUGH_NONE); + + add_slider_binding (binding_set, GDK_Right, GDK_CONTROL_MASK, + GTK_SCROLL_PAGE_RIGHT, GTK_TROUGH_NONE); + + add_slider_binding (binding_set, GDK_KP_Right, 0, + GTK_SCROLL_STEP_RIGHT, GTK_TROUGH_NONE); + + add_slider_binding (binding_set, GDK_KP_Right, GDK_CONTROL_MASK, + GTK_SCROLL_PAGE_RIGHT, GTK_TROUGH_NONE); + + add_slider_binding (binding_set, GDK_Home, 0, + GTK_SCROLL_NONE, GTK_TROUGH_START); + add_slider_binding (binding_set, GDK_KP_Home, 0, + GTK_SCROLL_NONE, GTK_TROUGH_START); + + + add_slider_binding (binding_set, GDK_End, 0, + GTK_SCROLL_NONE, GTK_TROUGH_END); + + add_slider_binding (binding_set, GDK_KP_End, 0, + GTK_SCROLL_NONE, GTK_TROUGH_END); } static void @@ -555,38 +597,3 @@ gtk_hscale_draw_value (GtkScale *scale) g_object_unref (G_OBJECT (layout)); } } - -static gboolean -gtk_hscale_trough_keys (GtkRange *range, - GdkEventKey *key, - GtkScrollType *scroll, - GtkTroughType *pos) -{ - gint return_val = FALSE; - switch (key->keyval) - { - case GDK_Left: - return_val = TRUE; - if (key->state & GDK_CONTROL_MASK) - *scroll = GTK_SCROLL_PAGE_LEFT; - else - *scroll = GTK_SCROLL_STEP_LEFT; - break; - case GDK_Right: - return_val = TRUE; - if (key->state & GDK_CONTROL_MASK) - *scroll = GTK_SCROLL_PAGE_RIGHT; - else - *scroll = GTK_SCROLL_STEP_RIGHT; - break; - case GDK_Home: - return_val = TRUE; - *pos = GTK_TROUGH_START; - break; - case GDK_End: - return_val = TRUE; - *pos = GTK_TROUGH_END; - break; - } - return return_val; -} |