From 8d24f123abeb73cb2c1255d7b306e11ad7ba1c42 Mon Sep 17 00:00:00 2001 From: David Härdeman Date: Wed, 19 Aug 2015 23:02:19 +0200 Subject: Properly init advanced UI with all known protocols/keycodes --- rcm-client-advanced.c | 6 +++++- rcm-client-main.c | 29 +++++++++++++++++++++++++++++ rcm-client-main.h | 4 ++++ rcm-client.ui | 6 +++--- 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/rcm-client-advanced.c b/rcm-client-advanced.c index 31ac86b..ca10331 100644 --- a/rcm-client-advanced.c +++ b/rcm-client-advanced.c @@ -69,7 +69,7 @@ advanced_transmit_cb(GtkButton *button, gpointer user_data) g_free(protocol); if (!strcmp(protocol, "NEC")) { - printf("Invalid protocol: %s\n", protocol); + printf("Unsupported protocol: %s\n", protocol); return; } @@ -318,6 +318,10 @@ advanced_init_ui(RCDevice *object) render_cell_as_hexadecimal, NULL, NULL); + cbox_add_all_protocols(GTK_COMBO_BOX_TEXT(get_object("advanced_transmit_protocol"))); + cbox_add_all_protocols(GTK_COMBO_BOX_TEXT(get_object("advanced_add_protocol"))); + cbox_add_all_keycodes(GTK_COMBO_BOX_TEXT(get_object("advanced_add_keycode"))); + dialog = GTK_WIDGET(get_object("advanced")); g_signal_replace_swapped(dialog, "delete-event", G_CALLBACK(gtk_widget_hide_on_delete), dialog); advanced_show_main_cb(NULL, NULL); diff --git a/rcm-client-main.c b/rcm-client-main.c index 3595722..e3dcd04 100644 --- a/rcm-client-main.c +++ b/rcm-client-main.c @@ -6,6 +6,7 @@ #include #include "generated.h" +#include "shared.h" #include "rcm-client-main.h" #include "rcm-client-hardware-list.h" #include "rcm-client-receive.h" @@ -165,6 +166,34 @@ create_header_button(GtkHeaderBar *header, const gchar *tooltip, return button; } +void +cbox_add_all_protocols(GtkComboBoxText *cbox) +{ + unsigned i; + + if (!cbox) + return; + + gtk_combo_box_text_remove_all(cbox); + for (i = 0; rc_protocols[i]; i++) + gtk_combo_box_text_append(cbox, NULL, rc_protocols[i]); + gtk_combo_box_set_active(GTK_COMBO_BOX(cbox), 0); +} + +void +cbox_add_all_keycodes(GtkComboBoxText *cbox) +{ + unsigned i; + + if (!cbox) + return; + + gtk_combo_box_text_remove_all(cbox); + for (i = 0; linux_input_keycodes[i].name; i++) + gtk_combo_box_text_append(cbox, NULL, linux_input_keycodes[i].name); + gtk_combo_box_set_active(GTK_COMBO_BOX(cbox), 0); +} + gulong _g_signal_replace(gpointer instance, const gchar *detailed_signal, GCallback c_handler, gpointer data, GConnectFlags flags) { diff --git a/rcm-client-main.h b/rcm-client-main.h index 49c96b4..5592554 100644 --- a/rcm-client-main.h +++ b/rcm-client-main.h @@ -11,6 +11,10 @@ create_header_button(GtkHeaderBar *header, const gchar *tooltip, const gchar *icon_name, gboolean end, GCallback callback, gpointer user_data); +void cbox_add_all_protocols(GtkComboBoxText *cbox); + +void cbox_add_all_keycodes(GtkComboBoxText *cbox); + gulong _g_signal_replace(gpointer instance, const gchar *detailed_signal, GCallback c_handler, gpointer data, GConnectFlags flags); static inline gulong diff --git a/rcm-client.ui b/rcm-client.ui index 4edd537..5619159 100644 --- a/rcm-client.ui +++ b/rcm-client.ui @@ -213,7 +213,7 @@ a keytable True False <b><big>Edit Kernel Keymap</big></b> -Edit the in-kernel protocol/scancode +Edit/view the in-kernel protocol/scancode to keycode mappings True @@ -318,8 +318,8 @@ Based on protocol and scancode True True - 10 - 0x1FE0FF0 + 18 + e.g. 0x1FE003CE GTK_INPUT_HINT_UPPERCASE_CHARS | GTK_INPUT_HINT_NONE -- cgit v1.2.3