#include "gtk_cb.h" #include "gtk_app_p.h" #include "gtk_app.h" void gtk_cb_file_new( GtkWidget *menu_item, gpointer callback_data ) { gtk_app_h h_gtk_app = (gtk_app_h)callback_data; const gchar *label = gtk_menu_item_get_label(GTK_MENU_ITEM (menu_item)); g_print ("%s - %s\n",__FUNCTION__,label); //gtk_app_new(); } void gtk_cb_file_open( GtkWidget *menu_item, gpointer callback_data ) { gtk_app_h h_gtk_app = (gtk_app_h)callback_data; const gchar *label = gtk_menu_item_get_label(GTK_MENU_ITEM (menu_item)); g_print ("%s - %s\n",__FUNCTION__,label); //gtk_app_open(); } void gtk_cb_file_save( GtkWidget *menu_item, gpointer callback_data ) { gtk_app_h h_gtk_app = (gtk_app_h)callback_data; const gchar *label = gtk_menu_item_get_label(GTK_MENU_ITEM (menu_item)); g_print ("%s - %s\n",__FUNCTION__,label); //gtk_doc_save(h_doc); } void gtk_cb_file_saveas( GtkWidget *menu_item, gpointer callback_data ) { gtk_app_h h_gtk_app = (gtk_app_h)callback_data; const gchar *label = gtk_menu_item_get_label(GTK_MENU_ITEM (menu_item)); g_print ("%s - %s\n",__FUNCTION__,label); //gtk_doc_saveas(h_doc); } void gtk_cb_file_quit( GtkWidget *menu_item, gpointer callback_data ) { gtk_app_h h_gtk_app = (gtk_app_h)callback_data; const gchar *label = gtk_menu_item_get_label(GTK_MENU_ITEM (menu_item)); g_print ("%s - %s\n",__FUNCTION__,label); gtk_app_quit(); } void gtk_cb_edit_cut( GtkWidget *menu_item, gpointer callback_data) { gtk_app_h h_gtk_app = (gtk_app_h)callback_data; const gchar *label = gtk_menu_item_get_label(GTK_MENU_ITEM (menu_item)); g_print ("%s - %s\n",__FUNCTION__,label); } void gtk_cb_edit_copy( GtkWidget *menu_item, gpointer callback_data) { gtk_app_h h_gtk_app = (gtk_app_h)callback_data; const gchar *label = gtk_menu_item_get_label(GTK_MENU_ITEM (menu_item)); g_print ("%s - %s\n",__FUNCTION__,label); } void gtk_cb_edit_paste( GtkWidget *menu_item, gpointer callback_data) { gtk_app_h h_gtk_app = (gtk_app_h)callback_data; const gchar *label = gtk_menu_item_get_label(GTK_MENU_ITEM (menu_item)); g_print ("%s - %s\n",__FUNCTION__,label); } void gtk_cb_edit_delete( GtkWidget *menu_item, gpointer callback_data) { gtk_app_h h_gtk_app = (gtk_app_h)callback_data; const gchar *label = gtk_menu_item_get_label(GTK_MENU_ITEM (menu_item)); g_print ("%s - %s\n",__FUNCTION__,label); } void gtk_cb_about_menu( GtkWidget *menu_item, gpointer callback_data) { gtk_app_h h_gtk_app = (gtk_app_h)callback_data; gtk_dialog_run(h_gtk_app->about_dlg); gtk_widget_hide( GTK_WIDGET(h_gtk_app->about_dlg) ); } extern void gtk_remote_clicked(GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean gtk_cb_remote_clicked (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { gtk_app_h h_gtk_app = (gtk_app_h)user_data; g_print ("gtk_cb_remote_clicked - %3.2f,%3.2f\n",event->x,event->y); gtk_remote_clicked(widget,event,user_data); } void gtk_cb_item_init( gtk_app_h h_gtk_app,GtkBuilder *builder) { #if 0 GtkWidget *widget; widget = GTK_WIDGET( gtk_builder_get_object( builder, "toolbar_images_add" ) ); NTV_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gtk_cb_option_add_image), h_doc); widget = GTK_WIDGET( gtk_builder_get_object( builder, "toolbar_images_delete" ) ); NTV_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gtk_cb_option_delete_image), h_doc); #endif } void gtk_cb_menu_init( gtk_app_h h_gtk_app,GtkBuilder *builder) { GtkWidget *widget; gtk_cb_item_init(h_gtk_app,builder); widget = GTK_WIDGET( gtk_builder_get_object( builder, "file.new" ) ); APP_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "activate", G_CALLBACK (gtk_cb_file_new), h_gtk_app); widget = GTK_WIDGET( gtk_builder_get_object( builder, "file.open" ) ); APP_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "activate", G_CALLBACK (gtk_cb_file_open), h_gtk_app); widget = GTK_WIDGET( gtk_builder_get_object( builder, "file.save" ) ); APP_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "activate", G_CALLBACK (gtk_cb_file_save), h_gtk_app); widget = GTK_WIDGET( gtk_builder_get_object( builder, "file.saveas" ) ); APP_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "activate", G_CALLBACK (gtk_cb_file_saveas), h_gtk_app); widget = GTK_WIDGET( gtk_builder_get_object( builder, "file.quit" ) ); APP_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "activate", G_CALLBACK (gtk_cb_file_quit), h_gtk_app); widget = GTK_WIDGET( gtk_builder_get_object( builder, "edit.cut" ) ); APP_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "activate", G_CALLBACK (gtk_cb_edit_cut), h_gtk_app); widget = GTK_WIDGET( gtk_builder_get_object( builder, "edit.copy" ) ); APP_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "activate", G_CALLBACK (gtk_cb_edit_copy), h_gtk_app); widget = GTK_WIDGET( gtk_builder_get_object( builder, "edit.paste" ) ); APP_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "activate", G_CALLBACK (gtk_cb_edit_paste), h_gtk_app); widget = GTK_WIDGET( gtk_builder_get_object( builder, "edit.delete" ) ); APP_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "activate", G_CALLBACK (gtk_cb_edit_delete), h_gtk_app); widget = GTK_WIDGET( gtk_builder_get_object( builder, "help.about" ) ); APP_ASSERT(widget); g_signal_connect (G_OBJECT (widget), "activate", G_CALLBACK (gtk_cb_about_menu), h_gtk_app); } void gtk_cb_screen_select(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer userdata) { gtk_app_h h_gtk_app = (gtk_app_h)userdata; int *i; GtkTreeSelection *tvs = gtk_tree_view_get_selection(h_gtk_app->screen_list); i = gtk_tree_path_get_indices ( path ) ; if (!i) return; sim_screen_set_screen(h_gtk_app->h_sim,i[0]); //gtk_tree_selection_unselect_all(tvs); } #if 0 void insert_text_handler (GtkEntry *entry, const gchar *text, gint length, gint *position, gpointer data) { GtkEditable *editable = GTK_EDITABLE(entry); int i, count=0; gchar *result = g_new (gchar, length); for (i=0; i < length; i++) { if (!isalpha(text[i])) continue; result[count++] = islower(text[i]) ? toupper(text[i]) : text[i]; } if (count > 0) { g_signal_handlers_block_by_func (G_OBJECT (editable), G_CALLBACK (insert_text_handler), data); gtk_editable_insert_text (editable, result, count, position); g_signal_handlers_unblock_by_func (G_OBJECT (editable), G_CALLBACK (insert_text_handler), data); } g_signal_stop_emission_by_name (G_OBJECT (editable), "insert_text"); g_free (result); } g_signal_connect(G_OBJECT(entry), "insert_text", G_CALLBACK(insert_text_handler), NULL); #endif