ws_dbus_notify(ws_gui_app->dbus_data, WS_DBUS_ERROR_UNKNOWN);
g_signal_connect (G_OBJECT (ws_gui_app->ws_gui_w_list->ws_gui_selection), "changed", G_CALLBACK (ws_gui_tree_selection_changed), ws_gui_app);
+ g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_hildon_window), "key-press-event", G_CALLBACK(hildon_key_press_listener), ws_gui_app);
- g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_html), "button-press-event", G_CALLBACK(ws_gui_button_press_event), ws_gui_app);
+ ws_gui_app->ws_gui_menu->ws_gui_popup_menu = ws_gui_create_popup_menu(ws_gui_app);
- g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_hildon_window), "key-press-event", G_CALLBACK(hildon_key_press_listener), ws_gui_app);
+ gtk_widget_tap_and_hold_setup(GTK_WIDGET(ws_gui_app->ws_gui_html), GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_popup_menu), NULL, FALSE);
g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_hildon_window), "delete-event", G_CALLBACK(ws_gui_on_exit), ws_gui_app);
gtk_widget_set_sensitive(GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_stop), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_stop), FALSE);
gtk_list_store_clear(ws_gui_app->ws_gui_w_list->ws_gui_store);
-
+
ws_gui_app->ws_gui_w_list->ws_gui_model = create_and_fill_model(tmp, ws_gui_app);
if (tmp->len == 0)
{
timer(TIMER_START, (gchar*)__FUNCTION__);
WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
- g_printf("\n\n .::GUI::. User data in dbus_return_translation: %p\n\n", ws_gui_app);
+ //g_printf("\n\n .::GUI::. User data in dbus_return_translation: %p\n\n", ws_gui_app);
osso_rpc_t data;
break;
case GDK_Return: /*start search*/
- g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, ".::GUI::. Return");
+ //g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, ".::GUI::. Return");
ws_gui_search(NULL, ws_gui_app);
break;
}
return TRUE;
}
-/** this function handles button press event; contex menu is created
- *
- * @param widget - the object which received the signal
- * @param event
- * @param user_data - user data set when the signal handler was connected
- * @return TRUE to stop other handlers from being invoked for the event. FALSE to propagate the event further.
- */
-gboolean ws_gui_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
-{
- WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- if (event->type == GDK_BUTTON_PRESS && event->button == 3)
- {
- ws_gui_create_popup_menu(widget, event, ws_gui_app);
- return TRUE;
- }
- return FALSE;
-}
/** this function allow to hide words list using menu item from application menu
*
WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
guint i = 0;
gchar *tmp = g_strdup(g_array_index(words_list, gchar*, i));
+ gchar *tmp2;
gboolean valid;
valid =gtk_tree_model_get_iter_first(GTK_TREE_MODEL(ws_gui_app->ws_gui_w_list->ws_gui_store), &ws_gui_app->ws_gui_w_list->ws_gui_iter);
/* Append a row and fill in some data */
while (tmp != NULL)
{
+ tmp2 = g_utf8_normalize(tmp, strlen(tmp), G_NORMALIZE_ALL);
gtk_list_store_append (ws_gui_app->ws_gui_w_list->ws_gui_store, &ws_gui_app->ws_gui_w_list->ws_gui_iter);
gtk_list_store_set (ws_gui_app->ws_gui_w_list->ws_gui_store, &ws_gui_app->ws_gui_w_list->ws_gui_iter, COL_WORD, tmp, -1);
i=i+1;
tmp = g_strdup(g_array_index(words_list, gchar*, i));
};
+
+ tmp = g_strdup(g_array_index(words_list, gchar*, 0));
+ if (tmp != NULL)
+ {
+ ws_dbus_client_find_translation(ws_gui_app->dbus_data, tmp);
+ }
return GTK_TREE_MODEL(ws_gui_app->ws_gui_w_list->ws_gui_store);
}
{
WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
ws_gui_app->ws_gui_w_list->ws_gui_view = gtk_tree_view_new ();
ws_gui_app->ws_gui_w_list->ws_gui_renderer = gtk_cell_renderer_text_new ();
{
WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
gchar *string;
-if (gtk_tree_selection_get_selected (selection, &ws_gui_app->ws_gui_w_list->ws_gui_model, &ws_gui_app->ws_gui_w_list->ws_gui_iter))
- {
- gtk_tree_model_get (ws_gui_app->ws_gui_w_list->ws_gui_model, &ws_gui_app->ws_gui_w_list->ws_gui_iter, COL_WORD, &string, -1);
- ws_dbus_client_find_translation(ws_gui_app->dbus_data, string);
+ if (gtk_tree_selection_get_selected (selection, &ws_gui_app->ws_gui_w_list->ws_gui_model, &ws_gui_app->ws_gui_w_list->ws_gui_iter))
+ {
+ gtk_tree_model_get (ws_gui_app->ws_gui_w_list->ws_gui_model, &ws_gui_app->ws_gui_w_list->ws_gui_iter, COL_WORD, &string, -1);
+
+ ws_dbus_client_find_translation(ws_gui_app->dbus_data, string);
- ws_gui_history_add(string, ws_gui_app);
+ ws_gui_history_add(string, ws_gui_app);
+
+ g_free (string);
+ }
- g_free (string);
- }
}
+
/** switch application between fun screen and normal mode
*
* @param menuitem - object which recived the signal
ws_gui_app->ws_gui_banner_flag = FALSE;
ws_gui_app->ws_gui_full_screen_flag = FALSE;
-
ws_gui_app->ws_gui_history = g_array_new(TRUE, TRUE, sizeof(gchar*));
ws_gui_app->ws_gui_history_cur_pos = -1;
ws_gui_app->ws_gui_hildon_program = HILDON_PROGRAM(hildon_program_get_instance());
g_set_application_name("WhiteStork");
- //hildon_program_set_can_hibernate (ws_gui_app->ws_gui_hildon_program, FALSE);
-
+
ws_gui_app->ws_gui_hildon_window = HILDON_WINDOW(hildon_window_new());
hildon_program_add_window(ws_gui_app->ws_gui_hildon_program, ws_gui_app->ws_gui_hildon_window);
- /*GdkPixbuf *pixbuf;
- pixbuf = gdk_pixbuf_new_from_file ("gui/src/ikona.png", NULL);
- gtk_window_set_icon (GTK_WINDOW(ws_gui_app->ws_gui_hildon_window), pixbuf);
- gdk_pixbuf_unref (pixbuf);*/
- /*hildon_icon_sizes_init();
- if (gtk_window_set_default_icon_from_file("gui/src/ikona.png", NULL) == TRUE)
- {
- g_printf("\n\n.::GUI::. Icon loaded");
- }
- else
- {
- g_printf("\n\n.::GUI::. Icon failed");
- }*/
-
ws_gui_create_main_menu(ws_gui_app);
ws_gui_create_find_toolbar(ws_gui_app);
ws_gui_app->ws_gui_scrolledwindow_right = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (ws_gui_app->ws_gui_scrolledwindow_right), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- //ws_gui_app->ws_gui_w_list->ws_gui_list = gtk_list_new();
ws_gui_app->ws_gui_w_list->ws_gui_store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING, G_TYPE_UINT);
ws_gui_app->ws_gui_w_list->ws_gui_view = create_view_and_model(array_tmp, ws_gui_app);
gtk_widget_show_all(GTK_WIDGET(ws_gui_app->ws_gui_w_list->ws_gui_view));
- //gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(ws_gui_app->ws_gui_scrolledwindow_left), ws_gui_app->ws_gui_w_list->ws_gui_list);
-
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(ws_gui_app->ws_gui_scrolledwindow_left), ws_gui_app->ws_gui_w_list->ws_gui_view);
ws_gui_app->ws_gui_html = gtk_html_new_from_string(ws_gui_app->ws_gui_w_list->ws_gui_list_item_data_string, strlen(ws_gui_app->ws_gui_w_list->ws_gui_list_item_data_string));
gtk_html_set_editable(GTK_HTML(ws_gui_app->ws_gui_html), TRUE); /* editable */
gtk_html_allow_selection(GTK_HTML(ws_gui_app->ws_gui_html), TRUE);
+ gtk_html_set_blocking(GTK_HTML(ws_gui_app->ws_gui_html), FALSE);
gtk_container_add(GTK_CONTAINER(ws_gui_app->ws_gui_hildon_window), ws_gui_app->ws_gui_hpane);
gtk_widget_show_all(GTK_WIDGET(ws_gui_app->ws_gui_hildon_window));
ws_gui_app->ws_gui_w_list->ws_gui_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (ws_gui_app->ws_gui_w_list->ws_gui_view));
- gtk_tree_selection_set_mode (ws_gui_app->ws_gui_w_list->ws_gui_selection, GTK_SELECTION_SINGLE);
+ gtk_tree_selection_set_mode (ws_gui_app->ws_gui_w_list->ws_gui_selection, GTK_SELECTION_BROWSE);
}
*
* @param user_data - set when the signal handler was connected
*/
-void ws_gui_create_find_toolbar(gpointer user_data)
+void ws_gui_create_find_toolbar(gpointer user_data)
{
WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
GtkToolItem *space;
ws_gui_app->ws_gui_hildon_find_toolbar = HILDON_FIND_TOOLBAR(hildon_find_toolbar_new("Find word: "));
-
+
ws_gui_app->ws_gui_toobar_button_hide = gtk_toggle_tool_button_new_from_stock(GTK_STOCK_GOTO_FIRST);
- ws_gui_app->ws_gui_toobar_button_back = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK);
+ ws_gui_app->ws_gui_toobar_button_back = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK);
ws_gui_app->ws_gui_toobar_button_forward = gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD);
ws_gui_app->ws_gui_toobar_button_stop = gtk_tool_button_new_from_stock(GTK_STOCK_STOP);
space = gtk_separator_tool_item_new();
-
+
ws_gui_app->ws_gui_toobar_button_close = gtk_toolbar_get_nth_item(GTK_TOOLBAR(ws_gui_app->ws_gui_hildon_find_toolbar), 4);
gtk_tool_item_set_visible_horizontal(ws_gui_app->ws_gui_toobar_button_close, FALSE);
*
* @param user_data - set when the signal handler was connected
*/
-void ws_gui_create_popup_menu (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
+GtkWidget * ws_gui_create_popup_menu (gpointer user_data)
{
WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
- int button, event_time;
-
ws_gui_app->ws_gui_menu->ws_gui_popup_menu = gtk_menu_new();
ws_gui_app->ws_gui_menu->ws_gui_popup_submenu = gtk_menu_new();
ws_gui_app->ws_gui_menu->ws_gui_separator = gtk_separator_menu_item_new();
gtk_widget_show_all(ws_gui_app->ws_gui_menu->ws_gui_popup_menu);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(ws_gui_app->ws_gui_menu->ws_gui_popup_edit), ws_gui_app->ws_gui_menu->ws_gui_popup_submenu);
- if (event)
- {
- button = event->button;
- event_time = event->time;
- }
- else
- {
- button = 0;
- event_time = gtk_get_current_event_time();
- }
-
- gtk_menu_popup (GTK_MENU(ws_gui_app->ws_gui_menu->ws_gui_popup_menu), NULL, NULL, NULL, NULL, button, event_time);
g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_menu->ws_gui_popup_copy), "activate", G_CALLBACK(ws_gui_html_copy), ws_gui_app);
g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_menu->ws_gui_popup_select_all), "activate", G_CALLBACK(ws_gui_html_select_all), ws_gui_app);
g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_menu->ws_gui_popup_zoom_in), "activate", G_CALLBACK(ws_gui_html_zoom_in), ws_gui_app);
g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_menu->ws_gui_popup_zoom_out), "activate", G_CALLBACK(ws_gui_html_zoom_out), ws_gui_app);
+
+ return (GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_popup_menu));
}
gboolean ws_gui_banner_flag; ///< flag; used for notifing if searching is in progress and banner has to be displaying
gboolean ws_gui_full_screen_flag; ///< flag; used for informing if fullscreen mode is active
-
+
WSDBusData *dbus_data; ///< DBUS declaration
GtkWidget* ws_message_dialog; ///< message dialogs; used for informing user about errors
*/
gboolean hildon_key_press_listener (GtkWidget * widget, GdkEventKey * keyevent, gpointer user_data);
-/** \brief handle button press signal.
-*
-*/
-gboolean ws_gui_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data);
-
/** \brief allow to hide words list from menu
*
*/
* \brief create popup menu
*
*/
-void ws_gui_create_popup_menu (GtkWidget *widget, GdkEventButton *event, gpointer user_data);
+GtkWidget* ws_gui_create_popup_menu (gpointer user_data);
#ifdef __cplusplus
}