diff options
author | John Sullivan <sullivan@src.gnome.org> | 2000-10-16 22:53:20 +0000 |
---|---|---|
committer | John Sullivan <sullivan@src.gnome.org> | 2000-10-16 22:53:20 +0000 |
commit | 3cd7777ce35c2111e9d7035e45fee9b9bce3c3c9 (patch) | |
tree | a4d7a704d10e013f1680d00605691821f9741fb3 | |
parent | c0226b5618d4c4532fd6fbbca8589704487a9c41 (diff) | |
download | nautilus-3cd7777ce35c2111e9d7035e45fee9b9bce3c3c9.tar.gz |
Finished up Matt Bissiri's earlier checkin for him. Removed the
* libnautilus-extensions/nautilus-list.c:
(nautilus_list_keyboard_navigation_key_press),
(nautilus_list_get_first_selected_row),
(nautilus_list_get_last_selected_row):
* libnautilus-extensions/nautilus-list.h:
Finished up Matt Bissiri's earlier checkin for him.
Removed the confusingly almost-redundant
nautilus_clist_get_first/last_selected_row; made
nautilus_list_get_last_selected_row public to match
get_first_selected_row. Thanks to Matt for the patch.
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | libnautilus-extensions/nautilus-list.c | 47 | ||||
-rw-r--r-- | libnautilus-extensions/nautilus-list.h | 1 | ||||
-rw-r--r-- | libnautilus-private/nautilus-list.c | 47 | ||||
-rw-r--r-- | libnautilus-private/nautilus-list.h | 1 |
5 files changed, 82 insertions, 28 deletions
@@ -1,3 +1,17 @@ +2000-10-16 John Sullivan <sullivan@eazel.com> + + * libnautilus-extensions/nautilus-list.c: + (nautilus_list_keyboard_navigation_key_press), + (nautilus_list_get_first_selected_row), + (nautilus_list_get_last_selected_row): + * libnautilus-extensions/nautilus-list.h: + + Finished up Matt Bissiri's earlier checkin for him. + Removed the confusingly almost-redundant + nautilus_clist_get_first/last_selected_row; made + nautilus_list_get_last_selected_row public to match + get_first_selected_row. Thanks to Matt for the patch. + 2000-10-16 Darin Adler <darin@eazel.com> * libnautilus-extensions/nautilus-global-preferences.c: Changed diff --git a/libnautilus-extensions/nautilus-list.c b/libnautilus-extensions/nautilus-list.c index 86d35dfdf..d5e29c609 100644 --- a/libnautilus-extensions/nautilus-list.c +++ b/libnautilus-extensions/nautilus-list.c @@ -1194,18 +1194,6 @@ nautilus_list_reveal_row (NautilusList *list, int row_index) } } -static int -nautilus_clist_get_first_selected_row (NautilusCList *list) -{ - return nautilus_gtk_clist_get_first_selected_row ((GtkCList *)list); -} - -static int -nautilus_clist_get_last_selected_row (NautilusCList *list) -{ - return nautilus_gtk_clist_get_last_selected_row ((GtkCList *)list); -} - static void nautilus_list_keyboard_navigation_key_press (NautilusList *list, GdkEventKey *event, GtkScrollType scroll_type, gboolean jump_to_end) @@ -1234,8 +1222,8 @@ nautilus_list_keyboard_navigation_key_press (NautilusList *list, GdkEventKey *ev } else { start_row = (scroll_type == GTK_SCROLL_STEP_FORWARD || scroll_type == GTK_SCROLL_PAGE_FORWARD ? - nautilus_clist_get_last_selected_row (clist) : - nautilus_clist_get_first_selected_row (clist)); + nautilus_list_get_last_selected_row (list) : + nautilus_list_get_first_selected_row (list)); } /* If there's no row to start with, select the row farthest toward the end. @@ -3326,6 +3314,12 @@ nautilus_list_each_selected_row (NautilusList *list, NautilusEachRowFunction fun } } +/** + * nautilus_list_get_first_selected_row: + * + * Get the index of the first selected row, or -1 if no rows are selected. + * @list: Any NautilusList + **/ int nautilus_list_get_first_selected_row (NautilusList *list) { @@ -3346,6 +3340,31 @@ nautilus_list_get_first_selected_row (NautilusList *list) return -1; } +/** + * nautilus_list_get_last_selected_row: + * + * Get the index of the last selected row, or -1 if no rows are selected. + * @list: Any GtkCList + **/ +int +nautilus_list_get_last_selected_row (NautilusList *list) +{ + NautilusCListRow *row; + GList *p; + int row_index; + + g_return_val_if_fail (NAUTILUS_IS_LIST (list), -1); + + for (p = NAUTILUS_CLIST (list)->row_list_end, row_index = NAUTILUS_CLIST (list)->rows - 1; p != NULL; p = p->prev, --row_index) { + row = p->data; + if (row->state == GTK_STATE_SELECTED) { + return row_index; + } + } + + return -1; +} + /* Workaround for a bug in GtkCList's insert_row. * It sets the focus row to 0 if there is exactly one row, * even if there was no focus on entry. diff --git a/libnautilus-extensions/nautilus-list.h b/libnautilus-extensions/nautilus-list.h index e8d0568bd..7091eee7a 100644 --- a/libnautilus-extensions/nautilus-list.h +++ b/libnautilus-extensions/nautilus-list.h @@ -150,6 +150,7 @@ void nautilus_list_select_row (NautilusList *list, NautilusCListRow *nautilus_list_row_at (NautilusList *list, int y); int nautilus_list_get_first_selected_row (NautilusList *list); +int nautilus_list_get_last_selected_row (NautilusList *list); void nautilus_list_each_selected_row (NautilusList *list, NautilusEachRowFunction function, gpointer data); diff --git a/libnautilus-private/nautilus-list.c b/libnautilus-private/nautilus-list.c index 86d35dfdf..d5e29c609 100644 --- a/libnautilus-private/nautilus-list.c +++ b/libnautilus-private/nautilus-list.c @@ -1194,18 +1194,6 @@ nautilus_list_reveal_row (NautilusList *list, int row_index) } } -static int -nautilus_clist_get_first_selected_row (NautilusCList *list) -{ - return nautilus_gtk_clist_get_first_selected_row ((GtkCList *)list); -} - -static int -nautilus_clist_get_last_selected_row (NautilusCList *list) -{ - return nautilus_gtk_clist_get_last_selected_row ((GtkCList *)list); -} - static void nautilus_list_keyboard_navigation_key_press (NautilusList *list, GdkEventKey *event, GtkScrollType scroll_type, gboolean jump_to_end) @@ -1234,8 +1222,8 @@ nautilus_list_keyboard_navigation_key_press (NautilusList *list, GdkEventKey *ev } else { start_row = (scroll_type == GTK_SCROLL_STEP_FORWARD || scroll_type == GTK_SCROLL_PAGE_FORWARD ? - nautilus_clist_get_last_selected_row (clist) : - nautilus_clist_get_first_selected_row (clist)); + nautilus_list_get_last_selected_row (list) : + nautilus_list_get_first_selected_row (list)); } /* If there's no row to start with, select the row farthest toward the end. @@ -3326,6 +3314,12 @@ nautilus_list_each_selected_row (NautilusList *list, NautilusEachRowFunction fun } } +/** + * nautilus_list_get_first_selected_row: + * + * Get the index of the first selected row, or -1 if no rows are selected. + * @list: Any NautilusList + **/ int nautilus_list_get_first_selected_row (NautilusList *list) { @@ -3346,6 +3340,31 @@ nautilus_list_get_first_selected_row (NautilusList *list) return -1; } +/** + * nautilus_list_get_last_selected_row: + * + * Get the index of the last selected row, or -1 if no rows are selected. + * @list: Any GtkCList + **/ +int +nautilus_list_get_last_selected_row (NautilusList *list) +{ + NautilusCListRow *row; + GList *p; + int row_index; + + g_return_val_if_fail (NAUTILUS_IS_LIST (list), -1); + + for (p = NAUTILUS_CLIST (list)->row_list_end, row_index = NAUTILUS_CLIST (list)->rows - 1; p != NULL; p = p->prev, --row_index) { + row = p->data; + if (row->state == GTK_STATE_SELECTED) { + return row_index; + } + } + + return -1; +} + /* Workaround for a bug in GtkCList's insert_row. * It sets the focus row to 0 if there is exactly one row, * even if there was no focus on entry. diff --git a/libnautilus-private/nautilus-list.h b/libnautilus-private/nautilus-list.h index e8d0568bd..7091eee7a 100644 --- a/libnautilus-private/nautilus-list.h +++ b/libnautilus-private/nautilus-list.h @@ -150,6 +150,7 @@ void nautilus_list_select_row (NautilusList *list, NautilusCListRow *nautilus_list_row_at (NautilusList *list, int y); int nautilus_list_get_first_selected_row (NautilusList *list); +int nautilus_list_get_last_selected_row (NautilusList *list); void nautilus_list_each_selected_row (NautilusList *list, NautilusEachRowFunction function, gpointer data); |