int x_create_input (Dlg_head *h, widget_data parent, WInput *in) { GtkWidget *gnome_entry; GtkEntry *entry; /* The widget might have been initialized manually. * Look in gscreen.c for an example */ if (in->widget.wdata) return 1; #ifdef USE_GNOME_ENTRY gnome_entry = gnome_entry_new (in->widget.tkname); #else entry = GTK_ENTRY (gnome_entry = gtk_entry_new ()); gtk_entry_set_visibility (entry, !in->is_password); #endif gtk_widget_show (gnome_entry); in->widget.wdata = (widget_data) gnome_entry; #ifdef USE_GNOME_ENTRY entry = GTK_ENTRY (gnome_entry_gtk_entry (GNOME_ENTRY (gnome_entry))); #endif gtk_entry_set_text (entry, in->buffer); gtk_editable_select_region (GTK_EDITABLE (entry), 0, -1); gtk_entry_set_position (entry, in->point); gtk_signal_connect (GTK_OBJECT (entry), "button_press_event", GTK_SIGNAL_FUNC (entry_click), in); gtk_signal_connect (GTK_OBJECT (entry), "button_release_event", GTK_SIGNAL_FUNC (entry_release), in); return 1; }
static void GDict_exec (const char * search) { if (!gdict_dlg) { // create the dialog GDict_dlg_create (search); } else { // raise to the front gdk_window_raise (gdict_dlg->window); } GtkWidget * entry = gnome_entry_gtk_entry (GNOME_ENTRY(gdict_entry)); gtk_entry_set_text (GTK_ENTRY(entry), search); gnome_entry_prepend_history(GNOME_ENTRY(gdict_entry), false, search); gdict_defbox_lookup (GDICT_DEFBOX (gdict_defbox), (char*)search); }
static void lookup_button_cb (GtkButton *button, GtkWidget * defbox) { gchar *text; GtkWidget * entry = gnome_entry_gtk_entry(GNOME_ENTRY(gdict_entry)); text = gtk_editable_get_chars (GTK_EDITABLE (entry), 0, -1); if (text) { gdict_defbox_lookup (GDICT_DEFBOX (defbox), text); g_free (text); } }
void x_update_input (WInput *in) { GnomeEntry *gnome_entry; GtkEntry *entry; char *text; int draw = 0; /* If the widget has not been initialized yet (done by WIDGET_INIT) */ if (!in->widget.wdata) return; #ifdef USE_GNOME_ENTRY gnome_entry = GNOME_ENTRY (in->widget.wdata); entry = GTK_ENTRY (gnome_entry_gtk_entry (gnome_entry)); #else entry = GTK_ENTRY (in->widget.wdata); #endif if (in->first == -1){ gtk_editable_select_region (GTK_EDITABLE (entry), 0, 0); in->first = 0; } text = gtk_entry_get_text (GTK_ENTRY (entry)); if (text && strcmp (text, in->buffer)){ gtk_entry_set_text (entry, in->buffer); draw = 1; } if (GTK_EDITABLE (entry)->current_pos != in->point){ gtk_entry_set_position (entry, in->point); draw = 1; } if (draw){ #ifdef USE_GNOME_ENTRY gtk_widget_draw (GTK_WIDGET (gnome_entry), NULL); #else gtk_widget_draw (GTK_WIDGET (entry), NULL); #endif gtk_editable_changed (GTK_EDITABLE (entry)); gtk_widget_queue_draw (GTK_WIDGET (entry)); } }
static void GDict_dlg_create (const char * search) { GtkWidget * vbox; GtkWidget * hbox; GtkWidget * button; GtkWidget * scrolled; GtkWidget * close; GtkWidget * gtk_entry; // create the toplevel dialog gdict_dlg = gnome_dialog_new ("AbiWord Dictionary", GNOME_STOCK_BUTTON_CLOSE, NULL); gtk_window_set_modal (GTK_WINDOW(gdict_dlg), false); gtk_widget_set_usize (gdict_dlg, 450, 300); // center the dialog and connect focus XAP_App * pApp = XAP_App::getApp (); XAP_UnixFrame * pFrame = static_cast<XAP_UnixFrame*>(pApp->getLastFocussedFrame ()); GtkWidget * parent = pFrame->getTopLevelWindow(); centerDialog(parent, gdict_dlg); close = GTK_WIDGET (g_list_last (GNOME_DIALOG (gdict_dlg)->buttons)->data); vbox = GNOME_DIALOG(gdict_dlg)->vbox; hbox = gtk_hbox_new (FALSE, GNOME_PAD_SMALL); gtk_container_set_border_width (GTK_CONTAINER (hbox), GNOME_PAD_SMALL); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Look Up"); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); gdict_entry = gnome_entry_new(NULL); gtk_entry = gnome_entry_gtk_entry(GNOME_ENTRY(gdict_entry)); gtk_box_pack_start (GTK_BOX (hbox), gdict_entry, TRUE, TRUE, 0); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_container_set_border_width (GTK_CONTAINER (scrolled), GNOME_PAD_SMALL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), scrolled, TRUE, TRUE, 0); gdict_defbox = gdict_defbox_new (); gtk_widget_show (gdict_defbox); gtk_container_add (GTK_CONTAINER (scrolled), gdict_defbox); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (lookup_button_cb), gdict_defbox); g_signal_connect (G_OBJECT (gtk_entry), "activate", G_CALLBACK (entry_activate_cb), gdict_defbox); #if 0 g_signal_connect (G_OBJECT (gtk_entry), "changed", G_CALLBACK (entry_activate_cb), gdict_defbox); #endif g_signal_connect (G_OBJECT (gdict_dlg), "close", G_CALLBACK(close_cb), (gpointer)0); g_signal_connect (G_OBJECT (close), "clicked", G_CALLBACK(close_cb), (gpointer)0); g_signal_connect_after(G_OBJECT(gdict_dlg), "destroy", NULL, NULL); gtk_widget_show_all (gdict_dlg); }