Implemented the "clear" button from the dialer and code entry as "backspace"
XXX update the icon too
This commit is contained in:
parent
173d3564a7
commit
4856648c16
@ -112,12 +112,12 @@ void on_phone_call_volume(GtkWidget * widget, gpointer data)
|
||||
|
||||
|
||||
/* code */
|
||||
/* on_phone_code_clear */
|
||||
void on_phone_code_clear(gpointer data)
|
||||
/* on_phone_code_backspace */
|
||||
void on_phone_code_backspace(gpointer data)
|
||||
{
|
||||
Phone * phone = data;
|
||||
|
||||
phone_code_clear(phone);
|
||||
phone_code_backspace(phone);
|
||||
}
|
||||
|
||||
|
||||
@ -209,6 +209,15 @@ void on_phone_contacts_write(gpointer data)
|
||||
|
||||
|
||||
/* dialer */
|
||||
/* on_phone_dialer_backspace */
|
||||
void on_phone_dialer_backspace(gpointer data)
|
||||
{
|
||||
Phone * phone = data;
|
||||
|
||||
phone_dialer_backspace(phone);
|
||||
}
|
||||
|
||||
|
||||
/* on_phone_dialer_call */
|
||||
void on_phone_dialer_call(gpointer data)
|
||||
{
|
||||
@ -240,15 +249,6 @@ void on_phone_dialer_changed(GtkWidget * widget, gpointer data)
|
||||
}
|
||||
|
||||
|
||||
/* on_phone_dialer_clear */
|
||||
void on_phone_dialer_clear(gpointer data)
|
||||
{
|
||||
Phone * phone = data;
|
||||
|
||||
phone_dialer_clear(phone);
|
||||
}
|
||||
|
||||
|
||||
/* on_phone_dialer_clicked */
|
||||
void on_phone_dialer_clicked(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
|
@ -35,7 +35,7 @@ void on_phone_call_speaker(GtkWidget * widget, gpointer data);
|
||||
void on_phone_call_volume(GtkWidget * widget, gpointer data);
|
||||
|
||||
/* code */
|
||||
void on_phone_code_clear(gpointer data);
|
||||
void on_phone_code_backspace(gpointer data);
|
||||
void on_phone_code_clicked(GtkWidget * widget, gpointer data);
|
||||
void on_phone_code_enter(gpointer data);
|
||||
void on_phone_code_leave(gpointer data);
|
||||
@ -49,9 +49,9 @@ void on_phone_contacts_show(gpointer data);
|
||||
void on_phone_contacts_write(gpointer data);
|
||||
|
||||
/* dialer */
|
||||
void on_phone_dialer_backspace(gpointer data);
|
||||
void on_phone_dialer_call(gpointer data);
|
||||
void on_phone_dialer_changed(GtkWidget * widget, gpointer data);
|
||||
void on_phone_dialer_clear(gpointer data);
|
||||
void on_phone_dialer_clicked(GtkWidget * widget, gpointer data);
|
||||
void on_phone_dialer_hangup(gpointer data);
|
||||
|
||||
|
42
src/phone.c
42
src/phone.c
@ -734,6 +734,18 @@ void phone_code_enter(Phone * phone)
|
||||
|
||||
|
||||
/* code */
|
||||
/* phone_code_backspace */
|
||||
void phone_code_backspace(Phone * phone)
|
||||
{
|
||||
int pos;
|
||||
|
||||
if((pos = gtk_editable_get_position(GTK_EDITABLE(phone->en_entry)))
|
||||
< 1)
|
||||
return;
|
||||
gtk_editable_delete_text(GTK_EDITABLE(phone->en_entry), pos - 1, pos);
|
||||
}
|
||||
|
||||
|
||||
/* phone_code_clear */
|
||||
void phone_code_clear(Phone * phone)
|
||||
{
|
||||
@ -918,6 +930,18 @@ int phone_dialer_append(Phone * phone, char character)
|
||||
}
|
||||
|
||||
|
||||
/* phone_dialer_backspace */
|
||||
void phone_dialer_backspace(Phone * phone)
|
||||
{
|
||||
int pos;
|
||||
|
||||
if((pos = gtk_editable_get_position(GTK_EDITABLE(phone->di_entry)))
|
||||
< 1)
|
||||
return;
|
||||
gtk_editable_delete_text(GTK_EDITABLE(phone->di_entry), pos - 1, pos);
|
||||
}
|
||||
|
||||
|
||||
/* phone_dialer_call */
|
||||
int phone_dialer_call(Phone * phone, char const * number)
|
||||
{
|
||||
@ -1886,22 +1910,22 @@ static void _show_code_window(Phone * phone)
|
||||
gtk_widget_modify_font(phone->en_entry, phone->bold);
|
||||
g_signal_connect_swapped(phone->en_entry, "activate", G_CALLBACK(
|
||||
on_phone_code_enter), phone);
|
||||
/* FIXME trigger a backspace instead (and use adequate icon) */
|
||||
#if GTK_CHECK_VERSION(2, 16, 0)
|
||||
gtk_entry_set_icon_from_stock(GTK_ENTRY(phone->en_entry),
|
||||
GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR);
|
||||
g_signal_connect_swapped(phone->en_entry, "icon-press", G_CALLBACK(
|
||||
on_phone_code_clear), phone);
|
||||
gtk_box_pack_start(GTK_BOX(hbox), phone->en_entry, TRUE, TRUE, 0);
|
||||
on_phone_code_backspace), phone);
|
||||
#else
|
||||
widget = gtk_button_new();
|
||||
gtk_button_set_image(GTK_BUTTON(widget), gtk_image_new_from_icon_name(
|
||||
"edit-undo", GTK_ICON_SIZE_BUTTON));
|
||||
gtk_button_set_relief(GTK_BUTTON(widget), GTK_RELIEF_NONE);
|
||||
g_signal_connect_swapped(widget, "clicked", G_CALLBACK(
|
||||
on_phone_code_clear), phone);
|
||||
on_phone_code_backspace), phone);
|
||||
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(hbox), phone->en_entry, TRUE, TRUE, 0);
|
||||
#endif
|
||||
gtk_box_pack_start(GTK_BOX(hbox), phone->en_entry, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
||||
widget = _phone_create_dialpad(phone, GTK_STOCK_OK, _("Enter"),
|
||||
G_CALLBACK(on_phone_code_enter),
|
||||
@ -2056,7 +2080,15 @@ static void _show_dialer_window(Phone * phone)
|
||||
gtk_entry_set_icon_from_stock(GTK_ENTRY(phone->di_entry),
|
||||
GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR);
|
||||
g_signal_connect_swapped(phone->di_entry, "icon-press", G_CALLBACK(
|
||||
on_phone_dialer_clear), phone);
|
||||
on_phone_dialer_backspace), phone);
|
||||
#else
|
||||
widget = gtk_button_new();
|
||||
gtk_button_set_image(GTK_BUTTON(widget), gtk_image_new_from_icon_name(
|
||||
"edit-undo", GTK_ICON_SIZE_BUTTON));
|
||||
gtk_button_set_relief(GTK_BUTTON(widget), GTK_RELIEF_NONE);
|
||||
g_signal_connect_swapped(widget, "clicked", G_CALLBACK(
|
||||
on_phone_dialer_backspace), phone);
|
||||
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
||||
#endif
|
||||
gtk_box_pack_start(GTK_BOX(hbox), phone->di_entry, TRUE, TRUE, 0);
|
||||
widget = gtk_button_new();
|
||||
|
@ -51,6 +51,7 @@ void phone_call_speaker(Phone * phone, gboolean speaker);
|
||||
|
||||
/* code */
|
||||
int phone_code_append(Phone * phone, char character);
|
||||
void phone_code_backspace(Phone * phone);
|
||||
void phone_code_clear(Phone * phone);
|
||||
void phone_code_enter(Phone * phone);
|
||||
|
||||
@ -66,6 +67,7 @@ void phone_contacts_write_selected(Phone * phone);
|
||||
|
||||
/* dialer */
|
||||
int phone_dialer_append(Phone * phone, char character);
|
||||
void phone_dialer_backspace(Phone * phone);
|
||||
int phone_dialer_call(Phone * phone, char const * number);
|
||||
void phone_dialer_clear(Phone * phone);
|
||||
void phone_dialer_hangup(Phone * phone);
|
||||
|
Loading…
Reference in New Issue
Block a user