93
93
static void button_next_clicked(GtkToolButton *toolbutton, gpointer user_data);
94
94
static void button_prev_clicked(GtkToolButton *toolbutton, gpointer user_data);
95
95
static gboolean combo_query_scroll(GtkWidget *widget, GdkEventScroll *event, gpointer user_data);
96
static void setup_toolbar(GtkBuilder *gui_builder, GtkWidget *hotkey_editor_dialog);
96
static void setup_toolbar(GtkBuilder *gui_builder);
97
97
static GtkMenu *create_popup_menu(GtkBuilder *gui_builder);
98
98
static void create_text_view_tags(GtkBuilder *gui_builder);
99
99
static gboolean load_preferences(GtkWindow *parent);
106
106
#endif //X11_AVAILABLE
107
107
static gboolean register_unregister_hotkey(gboolean first_run, gboolean setup_hotkey);
108
108
gboolean grab_ungrab_with_ignorable_modifiers(GtkAccelKey *binding, gboolean grab);
109
static void setup_hotkey_editor(GtkBuilder *gui_builder, GtkWidget **hotkey_editor_dialog);
109
static void setup_hotkey_editor(GtkBuilder *gui_builder);
110
110
static void show_hotkey_editor(GtkToolButton *toolbutton, gpointer user_data);
111
111
static void destructor(GtkBuilder *gui_builder);
112
112
static void show_message_dlg(GtkWidget *parent_window, MessageResposeCode msg_code);
1701
1701
static void text_view_selection_made(GtkWidget *widget, GtkSelectionData *sel_data, guint time, gpointer user_data)
1703
1703
GtkBuilder *gui_builder = GTK_BUILDER(user_data);
1704
GtkComboBoxEntry *combo_query = NULL;
1704
GtkComboBox *combo_query = NULL;
1705
1705
GtkEntry *txtQuery = NULL;
1706
1706
GtkButton *button_search = NULL;
1707
1707
gchar *selection = (gchar*) gtk_selection_data_get_text(sel_data);
1711
combo_query = GTK_COMBO_BOX_ENTRY(gtk_builder_get_object(gui_builder, COMBO_QUERY));
1711
combo_query = GTK_COMBO_BOX(gtk_builder_get_object(gui_builder, COMBO_QUERY));
1712
1712
txtQuery = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(combo_query)));
1713
1713
button_search = GTK_BUTTON(gtk_builder_get_object(gui_builder, BUTTON_SEARCH));
2170
2170
list_store_query = gtk_list_store_new(1, G_TYPE_STRING);
2171
2171
g_signal_connect(GTK_TREE_MODEL(list_store_query), "row-inserted", G_CALLBACK(query_list_updated), gui_builder);
2172
2172
gtk_combo_box_set_model(combo_query, GTK_TREE_MODEL(list_store_query));
2173
gtk_combo_box_entry_set_text_column(GTK_COMBO_BOX_ENTRY(combo_query), 0);
2173
gtk_combo_box_set_entry_text_column(combo_query, 0);
2174
2174
g_object_unref(list_store_query);
2176
2176
for(i = 0; i < TOTAL_RELATIVES; i++)
2338
2338
gtk_toolbar_insert(toolbar, toolbar_item, -1);
2340
2340
toolbar_item = gtk_tool_button_new_from_stock(GTK_STOCK_PREFERENCES);
2341
gtk_tool_button_set_label(GTK_TOOL_BUTTON(toolbar_item), STR_TOOLITEM_HOTKEY);
2341
gtk_tool_button_set_label(GTK_TOOL_BUTTON(toolbar_item), STR_TOOLITEM_OPTIONS);
2342
2342
gtk_tool_button_set_use_underline(GTK_TOOL_BUTTON(toolbar_item), TRUE);
2343
gtk_tool_item_set_tooltip_text(toolbar_item, TOOLITEM_TOOLTIP_HOTKEY);
2344
g_signal_connect(toolbar_item, "clicked", G_CALLBACK(show_hotkey_editor), hotkey_editor_dialog);
2343
gtk_tool_item_set_tooltip_text(toolbar_item, TOOLITEM_TOOLTIP_OPTIONS);
2344
g_signal_connect(toolbar_item, "clicked", G_CALLBACK(show_hotkey_editor), gui_builder);
2345
2345
gtk_toolbar_insert(toolbar, toolbar_item, -1);
2347
2347
/* if mod notify is present */
2901
2901
return(grab_ungrab_with_ignorable_modifiers(&app_hotkey, setup_hotkey));
2904
static void setup_hotkey_editor(GtkBuilder *gui_builder, GtkWidget **hotkey_editor_dialog)
2906
GtkLabel *hotkey_label = NULL;
2907
GtkContainer *hbox = NULL;
2904
static void handle_polysemy_show_change(GtkToggleButton *polysemy_show_btn, gpointer user_data)
2906
show_polysemy = gtk_toggle_button_get_active(polysemy_show_btn);
2909
static void setup_hotkey_editor(GtkBuilder *gui_builder)
2911
GtkLabel *hotkey_label = GTK_LABEL(gtk_builder_get_object(gui_builder, DIALOG_HOTKEY_LABEL));
2912
GtkContainer *hbox = GTK_CONTAINER(gtk_builder_get_object(gui_builder, DIALOG_HOTKEY_HBOX));
2913
GtkToggleButton *polysemy_show_btn = GTK_TOGGLE_BUTTON(gtk_builder_get_object(gui_builder, DIALOG_POLYSEMY_CHKBTN));
2908
2914
GtkWidget *hotkey_accel_cell = NULL;
2910
*hotkey_editor_dialog = GTK_WIDGET(gtk_builder_get_object(gui_builder, DIALOG_HOTKEY));
2911
hotkey_label = GTK_LABEL(gtk_builder_get_object(gui_builder, DIALOG_HOTKEY_LABEL));
2912
hbox = GTK_CONTAINER(gtk_builder_get_object(gui_builder, DIALOG_HOTKEY_HBOX));
2915
GtkDialog *settings_dialog = GTK_DIALOG(gtk_builder_get_object(gui_builder, DIALOG_HOTKEY));
2914
2917
hotkey_accel_cell = create_hotkey_editor();
2915
2918
gtk_container_add(hbox, hotkey_accel_cell);
2917
2920
gtk_label_set_mnemonic_widget(hotkey_label, hotkey_accel_cell);
2921
gtk_toggle_button_set_active(polysemy_show_btn, show_polysemy);
2919
g_signal_connect(GTK_WIDGET(*hotkey_editor_dialog), "response", G_CALLBACK(gtk_widget_hide), NULL);
2923
g_signal_connect(GTK_WIDGET(settings_dialog), "response", G_CALLBACK(gtk_widget_hide), NULL);
2924
g_signal_connect(GTK_WIDGET(polysemy_show_btn), "toggled", G_CALLBACK(handle_polysemy_show_change), NULL);
2922
2927
static void show_hotkey_editor(GtkToolButton *toolbutton, gpointer user_data)
2924
2929
GtkAccelKey hotkey_backup = app_hotkey;
2925
gint hotkey_dialog_response = gtk_dialog_run(GTK_DIALOG(user_data));
2927
/* if prev. hotkey and app_hotkey are not the same and 'Apply' wasn't clicked
2928
then revert hotkey before saving the preferences */
2929
if(hotkey_backup.accel_key != app_hotkey.accel_key ||
2930
hotkey_backup.accel_mods != app_hotkey.accel_mods ||
2931
hotkey_backup.accel_flags != app_hotkey.accel_flags)
2930
gboolean show_polysemy_backup = show_polysemy;
2931
GtkBuilder *gui_builder = GTK_BUILDER(user_data);
2932
GtkDialog *settings_dialog = GTK_DIALOG(gtk_builder_get_object(gui_builder, DIALOG_HOTKEY));
2933
GtkButton *search_button = GTK_BUTTON(gtk_builder_get_object(gui_builder, BUTTON_SEARCH));
2935
gint hotkey_dialog_response = gtk_dialog_run(settings_dialog);
2937
if(GTK_RESPONSE_APPLY != hotkey_dialog_response)
2933
if(GTK_RESPONSE_APPLY != hotkey_dialog_response)
2939
// set the old polysemy setting
2940
show_polysemy = show_polysemy_backup;
2942
/* if prev. hotkey and app_hotkey are not the same and 'Apply' wasn't clicked
2943
then revert hotkey before saving the preferences */
2944
if(hotkey_backup.accel_key != app_hotkey.accel_key ||
2945
hotkey_backup.accel_mods != app_hotkey.accel_mods ||
2946
hotkey_backup.accel_flags != app_hotkey.accel_flags)
2935
2948
grab_ungrab_with_ignorable_modifiers(&app_hotkey, FALSE);
2936
2949
if (grab_ungrab_with_ignorable_modifiers(&hotkey_backup, TRUE))
3251
3271
combo_query = GTK_WIDGET(gtk_builder_get_object(gui_builder, COMBO_QUERY));
3252
3272
g_signal_connect(combo_query, "changed", G_CALLBACK(combo_query_changed), gui_builder);
3254
/* get the GtkEntry in GtkComboBoxEntry and set activates-default to TRUE; so that
3274
/* get the GtkEntry in GtkComboBox and set activates-default to TRUE; so that
3255
3275
it pass the ENTER key signal to query button */
3256
3276
combo_entry = gtk_bin_get_child(GTK_BIN(combo_query));
3257
3277
g_object_set(combo_entry, "activates-default", TRUE, NULL);