Redesign keyboard shortcuts window
- Convert GtkCLists to GtkTreeViews - Save keybindings in GtkAccelerator format - Store keybindings in a GSList
This commit is contained in:
parent
655b524ee6
commit
725aed43ff
1075
src/fe-gtk/fkeys.c
1075
src/fe-gtk/fkeys.c
File diff suppressed because it is too large
Load Diff
@ -530,76 +530,6 @@ gtkutil_entry_new (int max, GtkWidget * box, void *callback,
|
|||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkWidget *
|
|
||||||
gtkutil_clist_new (int columns, char *titles[],
|
|
||||||
GtkWidget * box, int policy,
|
|
||||||
void *select_callback, gpointer select_userdata,
|
|
||||||
void *unselect_callback,
|
|
||||||
gpointer unselect_userdata, int selection_mode)
|
|
||||||
{
|
|
||||||
GtkWidget *clist, *win;
|
|
||||||
|
|
||||||
win = gtk_scrolled_window_new (0, 0);
|
|
||||||
gtk_container_add (GTK_CONTAINER (box), win);
|
|
||||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (win),
|
|
||||||
GTK_POLICY_AUTOMATIC, policy);
|
|
||||||
gtk_widget_show (win);
|
|
||||||
|
|
||||||
if (titles)
|
|
||||||
clist = gtk_clist_new_with_titles (columns, titles);
|
|
||||||
else
|
|
||||||
clist = gtk_clist_new (columns);
|
|
||||||
|
|
||||||
gtk_clist_set_selection_mode (GTK_CLIST (clist), selection_mode);
|
|
||||||
gtk_clist_column_titles_passive (GTK_CLIST (clist));
|
|
||||||
gtk_container_add (GTK_CONTAINER (win), clist);
|
|
||||||
if (select_callback)
|
|
||||||
{
|
|
||||||
g_signal_connect (G_OBJECT (clist), "select_row",
|
|
||||||
G_CALLBACK (select_callback), select_userdata);
|
|
||||||
}
|
|
||||||
if (unselect_callback)
|
|
||||||
{
|
|
||||||
g_signal_connect (G_OBJECT (clist), "unselect_row",
|
|
||||||
G_CALLBACK (unselect_callback), unselect_userdata);
|
|
||||||
}
|
|
||||||
gtk_widget_show (clist);
|
|
||||||
|
|
||||||
return clist;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
gtkutil_clist_selection (GtkWidget * clist)
|
|
||||||
{
|
|
||||||
if (GTK_CLIST (clist)->selection)
|
|
||||||
return GPOINTER_TO_INT(GTK_CLIST (clist)->selection->data);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
int_compare (const int * elem1, const int * elem2)
|
|
||||||
{
|
|
||||||
return (*elem1) - (*elem2);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
gtkutil_clist_multiple_selection (GtkWidget * clist, int ** rows, const int max_rows)
|
|
||||||
{
|
|
||||||
int i = 0;
|
|
||||||
GList *tmp_clist;
|
|
||||||
*rows = malloc (sizeof (int) * max_rows );
|
|
||||||
memset( *rows, -1, max_rows * sizeof(int) );
|
|
||||||
|
|
||||||
for( tmp_clist = GTK_CLIST(clist)->selection;
|
|
||||||
tmp_clist && i < max_rows; tmp_clist = tmp_clist->next, i++)
|
|
||||||
{
|
|
||||||
(*rows)[i] = GPOINTER_TO_INT( tmp_clist->data );
|
|
||||||
}
|
|
||||||
qsort(*rows, i, sizeof(int), (void *)int_compare);
|
|
||||||
return i;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
show_and_unfocus (GtkWidget * wid)
|
show_and_unfocus (GtkWidget * wid)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user