Implemented the "clear" button from the dialer and code entry as "backspace"

XXX update the icon too
This commit is contained in:
Pierre Pronchery 2014-10-27 18:55:50 +01:00
parent 173d3564a7
commit 4856648c16
4 changed files with 53 additions and 19 deletions

View File

@ -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)
{

View File

@ -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);

View File

@ -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();

View File

@ -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);