diff options
author | Havoc Pennington <hp@pobox.com> | 2000-12-17 23:50:00 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2000-12-17 23:50:00 +0000 |
commit | fde4fecfd2064bdf4f52a02e90e76b6e67d3e3c8 (patch) | |
tree | 0e665ed29938114bd9e88e1c97b354dc04d16385 /gdk | |
parent | e405f75c2b904698f71280348687254b91d8ff47 (diff) | |
download | gtk+-fde4fecfd2064bdf4f52a02e90e76b6e67d3e3c8.tar.gz |
Port to GObject, can go back in gdk-pixbuf after setting up a
2000-12-16 Havoc Pennington <hp@pobox.com>
* gtk/gdk-pixbuf-loader.h, gtk/gdk-pixbuf-loader.c:
Port to GObject, can go back in gdk-pixbuf after setting up
a gdk-pixbuf-marshal.h header over there.
* gtk/gtktreeview.c: s/SEPERATOR/SEPARATOR/g;
(gtk_tree_view_class_init): specify GTK_TYPE_ADJUSTMENT for signal
args
(gtk_tree_view_init): don't unset GTK_NO_WINDOW, it shouldn't be
set
(gtk_tree_view_realize_buttons): don't gtk_widget_show() buttons
here, do it when we create the buttons later
(gtk_tree_view_realize_buttons): add some g_return_if_fail
(gtk_tree_view_map): paranoia checks that column->button is shown
and unmapped
(gtk_tree_view_size_request): only request visible children.
Move header size calculation in here, for cleanliness, and
to maintain invariants for child widgets if we eventually
let users set different children inside the buttons
(gtk_tree_view_map_buttons): factor out code to map buttons,
since it was being called several times
(gtk_tree_view_size_allocate_buttons): move_resize the drag
windows instead of just moving them; their height may change
if we allow random widgets in there, or the theme changes.
(gtk_tree_view_size_allocate): move button size allocation
above emitting the scroll signals, to ensure a sane state when we
hit user code
(gtk_tree_view_button_release): remove queue_resize after
tree_view_set_size(), set_size() will handle any resize queuing
that's needed
(gtk_tree_view_focus_in): just queue a draw, don't fool with
draw_focus goo
(gtk_tree_view_focus): use gtk_get_current_event() and
gdk_event_get_state()
(gtk_tree_view_deleted): don't queue_resize() after calling set_size()
(gtk_tree_view_build_tree): fix a "if (foo); {}" bug - i.e. remove
semicolon
(gtk_tree_view_create_button): show the button here
(gtk_tree_view_button_clicked): actually emit the clicked signal
on the column
(_gtk_tree_view_set_size): return right away if the size is
unchanged, as a cheesy optimization
(gtk_tree_view_setup_model): rename set_model_realized to
setup_model to match the flag that indicates whether we've
called it
(gtk_tree_view_get_hadjustment): create adjustment if it doesn't
exist, because set_scroll_adjustment does that and it shouldn't
matter what order you call these in
(gtk_tree_view_get_vadjustment): ditto
(gtk_tree_view_set_headers_visible): canonicalize the bool,
for paranoia
(gtk_tree_view_set_headers_visible): call
gtk_tree_view_map_buttons() instead of using cut-and-paste code
(gtk_tree_view_append_column): clarify whether the return value
is the count of columns before or after, and do the increment
separately from the return statement so you can tell from the code.
(gtk_tree_view_remove_column): ditto
(gtk_tree_view_insert_column): ditto
(gtk_tree_view_get_column): remove g_return_if_fail for columns
outside the existing range, the docs say that outside-range
columns are allowed, so we handle them as documented. (Presumably
this allows a nice loop with column != NULL as test.)
(gtk_tree_view_move_to): document what 0.0, 0.5, 1.0 alignments
mean (left/right/center etc.).
(gtk_tree_view_collapse_all): only queue a draw if we're mapped
(gtk_tree_view_expand_row): add docs
(gtk_tree_view_collapse_row): add docs
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_clicked): new
function to emit the clicked signal on a column
* gdk/gdkevents.c (gdk_event_get_state): new function, to get the
state of an event
(gdk_event_get_time): don't treat GDK_SCROLL
as a button event, remove default case from switch so gcc
will whine if we don't explicitly handle all event types
* gtk/gtktreeselection.h: added some FIXME
* gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): rename
"columns" to "n_columns" and "column" to "columns" for clarity
Diffstat (limited to 'gdk')
-rw-r--r-- | gdk/gdkevents.c | 83 | ||||
-rw-r--r-- | gdk/gdkevents.h | 11 |
2 files changed, 87 insertions, 7 deletions
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c index 544e3dd1cb..7823dbee35 100644 --- a/gdk/gdkevents.c +++ b/gdk/gdkevents.c @@ -421,8 +421,9 @@ gdk_event_get_time (GdkEvent *event) case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: case GDK_BUTTON_RELEASE: - case GDK_SCROLL: return event->button.time; + case GDK_SCROLL: + return event->scroll.time; case GDK_KEY_PRESS: case GDK_KEY_RELEASE: return event->key.time; @@ -445,14 +446,90 @@ gdk_event_get_time (GdkEvent *event) case GDK_DROP_START: case GDK_DROP_FINISHED: return event->dnd.time; - default: /* use current time */ - break; + case GDK_CLIENT_EVENT: + case GDK_VISIBILITY_NOTIFY: + case GDK_NO_EXPOSE: + case GDK_CONFIGURE: + case GDK_FOCUS_CHANGE: + case GDK_NOTHING: + case GDK_DELETE: + case GDK_DESTROY: + case GDK_EXPOSE: + case GDK_MAP: + case GDK_UNMAP: + /* return current time */ + break; } return GDK_CURRENT_TIME; } /** + * gdk_event_get_state: + * @event: a #GdkEvent or NULL + * @state: return location for state + * + * If the event contains a "state" field, puts that field in @state. Otherwise + * stores an empty state (0). Returns %TRUE if there was a state field + * in the event. + * + * Return value: %TRUE if there was a state field in the event + **/ +gboolean +gdk_event_get_state (GdkEvent *event, + GdkModifierType *state) +{ + if (event) + switch (event->type) + { + case GDK_MOTION_NOTIFY: + return event->motion.state; + case GDK_BUTTON_PRESS: + case GDK_2BUTTON_PRESS: + case GDK_3BUTTON_PRESS: + case GDK_BUTTON_RELEASE: + return event->button.state; + case GDK_SCROLL: + return event->scroll.state; + case GDK_KEY_PRESS: + case GDK_KEY_RELEASE: + return event->key.state; + case GDK_ENTER_NOTIFY: + case GDK_LEAVE_NOTIFY: + return event->crossing.state; + case GDK_PROPERTY_NOTIFY: + return event->property.state; + case GDK_VISIBILITY_NOTIFY: + return event->visibility.state; + case GDK_CLIENT_EVENT: + case GDK_NO_EXPOSE: + case GDK_CONFIGURE: + case GDK_FOCUS_CHANGE: + case GDK_SELECTION_CLEAR: + case GDK_SELECTION_REQUEST: + case GDK_SELECTION_NOTIFY: + case GDK_PROXIMITY_IN: + case GDK_PROXIMITY_OUT: + case GDK_DRAG_ENTER: + case GDK_DRAG_LEAVE: + case GDK_DRAG_MOTION: + case GDK_DRAG_STATUS: + case GDK_DROP_START: + case GDK_DROP_FINISHED: + case GDK_NOTHING: + case GDK_DELETE: + case GDK_DESTROY: + case GDK_EXPOSE: + case GDK_MAP: + case GDK_UNMAP: + /* no state field */ + break; + } + + return 0; +} + +/** * gdk_event_get_axis: * @event: a #GdkEvent * @axis_use: the axis use to look for diff --git a/gdk/gdkevents.h b/gdk/gdkevents.h index 04f1d78710..f49b156ecd 100644 --- a/gdk/gdkevents.h +++ b/gdk/gdkevents.h @@ -408,10 +408,13 @@ void gdk_event_put (GdkEvent *event); GdkEvent* gdk_event_copy (GdkEvent *event); void gdk_event_free (GdkEvent *event); -guint32 gdk_event_get_time (GdkEvent *event); -gboolean gdk_event_get_axis (GdkEvent *event, - GdkAxisUse axis_use, - gdouble *value); + +guint32 gdk_event_get_time (GdkEvent *event); +gboolean gdk_event_get_state (GdkEvent *event, + GdkModifierType *state); +gboolean gdk_event_get_axis (GdkEvent *event, + GdkAxisUse axis_use, + gdouble *value); void gdk_event_handler_set (GdkEventFunc func, gpointer data, |