#include #include #include // Example GTK program to create and modify a text entry box. // BSD license. // Compile: g++ -g -o gtkTextEntryBox gtkTextEntryBox.c `pkg-config --cflags --libs gtk+-2.0` `gnome-config --cflags --libs gnome gnomeui` static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { return FALSE; } static void destroy( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } int main( int argc, char *argv[] ) { GtkWidget *window_Widget; GtkWidget *vBox_Widget; GtkWidget *boxLabel_Widget; GtkWidget *text_entry_Widget; GtkWidget *textLabel_Widget; char textLabel[64]; GdkColor colorBlack; GdkColor colorGreen; // black colorBlack.red=0; colorBlack.green=0; colorBlack.blue=0; // Green colorGreen.red=0; colorGreen.green=65535; colorGreen.blue=0; gtk_init (&argc, &argv); window_Widget = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window_Widget), "Text Entry Box Example"); g_signal_connect (G_OBJECT (window_Widget), "delete_event", G_CALLBACK (delete_event), NULL); g_signal_connect (G_OBJECT (window_Widget), "destroy", G_CALLBACK (destroy), NULL); gtk_container_set_border_width (GTK_CONTAINER (window_Widget), 10); vBox_Widget = gtk_vbox_new (FALSE, 0); char *textLabel0="Display Label"; sprintf(textLabel, "%s",textLabel0); textLabel_Widget = gtk_label_new (textLabel); gtk_label_set_markup(GTK_LABEL (textLabel_Widget),textLabel); gtk_label_set_justify(GTK_LABEL (textLabel_Widget),GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (textLabel_Widget), 0, 0.5); gtk_widget_show (textLabel_Widget); gtk_box_pack_start( GTK_BOX (vBox_Widget), textLabel_Widget, TRUE, TRUE, 0); // -------------------------------------------------------------------- // Create text entry widget and modify. // -------------------------------------------------------------------- text_entry_Widget = gtk_entry_new(); gtk_widget_modify_text(text_entry_Widget, GTK_STATE_NORMAL, &colorGreen); gtk_widget_modify_base(text_entry_Widget, GTK_STATE_NORMAL, &colorBlack); GtkStyle *style = gtk_widget_get_style(text_entry_Widget); pango_font_description_set_weight(style->font_desc, PANGO_WEIGHT_BOLD); gtk_widget_modify_font(text_entry_Widget, style->font_desc); int text_width = 20; // Width of field in characters gtk_entry_set_width_chars(GTK_ENTRY(text_entry_Widget), text_width); gtk_editable_set_editable(GTK_EDITABLE(text_entry_Widget), FALSE); GTK_WIDGET_UNSET_FLAGS(text_entry_Widget, GTK_CAN_FOCUS); char *txtBuffer = "Display Text"; gtk_entry_set_text(GTK_ENTRY(text_entry_Widget), txtBuffer); // -------------------------------------------------------------------- gtk_box_pack_start (GTK_BOX (vBox_Widget), text_entry_Widget, TRUE, TRUE, 0); gtk_widget_show (text_entry_Widget); gtk_container_add (GTK_CONTAINER (window_Widget), vBox_Widget); gtk_widget_show (vBox_Widget); gtk_widget_show (window_Widget); gtk_main (); return 0; }