2005-01-03 Matthias Clasen <mclasen@redhat.com> * examples/*: Re-extract. * docs/tutorial/gtk-tut.sgml: Small corrections.
		
			
				
	
	
		
			101 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
#include <stdio.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <gtk/gtk.h>
 | 
						|
 | 
						|
static void enter_callback( GtkWidget *widget,
 | 
						|
                            GtkWidget *entry )
 | 
						|
{
 | 
						|
  const gchar *entry_text;
 | 
						|
  entry_text = gtk_entry_get_text (GTK_ENTRY (entry));
 | 
						|
  printf ("Entry contents: %s\n", entry_text);
 | 
						|
}
 | 
						|
 | 
						|
static void entry_toggle_editable( GtkWidget *checkbutton,
 | 
						|
                                   GtkWidget *entry )
 | 
						|
{
 | 
						|
  gtk_editable_set_editable (GTK_EDITABLE (entry),
 | 
						|
                             GTK_TOGGLE_BUTTON (checkbutton)->active);
 | 
						|
}
 | 
						|
 | 
						|
static void entry_toggle_visibility( GtkWidget *checkbutton,
 | 
						|
                                     GtkWidget *entry )
 | 
						|
{
 | 
						|
  gtk_entry_set_visibility (GTK_ENTRY (entry),
 | 
						|
			    GTK_TOGGLE_BUTTON (checkbutton)->active);
 | 
						|
}
 | 
						|
 | 
						|
int main( int   argc,
 | 
						|
          char *argv[] )
 | 
						|
{
 | 
						|
 | 
						|
    GtkWidget *window;
 | 
						|
    GtkWidget *vbox, *hbox;
 | 
						|
    GtkWidget *entry;
 | 
						|
    GtkWidget *button;
 | 
						|
    GtkWidget *check;
 | 
						|
    gint tmp_pos;
 | 
						|
 | 
						|
    gtk_init (&argc, &argv);
 | 
						|
 | 
						|
    /* create a new window */
 | 
						|
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 | 
						|
    gtk_widget_set_size_request (GTK_WIDGET (window), 200, 100);
 | 
						|
    gtk_window_set_title (GTK_WINDOW (window), "GTK Entry");
 | 
						|
    g_signal_connect (G_OBJECT (window), "destroy",
 | 
						|
                      G_CALLBACK (gtk_main_quit), NULL);
 | 
						|
    g_signal_connect_swapped (G_OBJECT (window), "delete_event",
 | 
						|
                              G_CALLBACK (gtk_widget_destroy), 
 | 
						|
                              G_OBJECT (window));
 | 
						|
 | 
						|
    vbox = gtk_vbox_new (FALSE, 0);
 | 
						|
    gtk_container_add (GTK_CONTAINER (window), vbox);
 | 
						|
    gtk_widget_show (vbox);
 | 
						|
 | 
						|
    entry = gtk_entry_new ();
 | 
						|
    gtk_entry_set_max_length (GTK_ENTRY (entry), 50);
 | 
						|
    g_signal_connect (G_OBJECT (entry), "activate",
 | 
						|
		      G_CALLBACK (enter_callback),
 | 
						|
		      (gpointer) entry);
 | 
						|
    gtk_entry_set_text (GTK_ENTRY (entry), "hello");
 | 
						|
    tmp_pos = GTK_ENTRY (entry)->text_length;
 | 
						|
    gtk_editable_insert_text (GTK_EDITABLE (entry), " world", -1, &tmp_pos);
 | 
						|
    gtk_editable_select_region (GTK_EDITABLE (entry),
 | 
						|
			        0, GTK_ENTRY (entry)->text_length);
 | 
						|
    gtk_box_pack_start (GTK_BOX (vbox), entry, TRUE, TRUE, 0);
 | 
						|
    gtk_widget_show (entry);
 | 
						|
 | 
						|
    hbox = gtk_hbox_new (FALSE, 0);
 | 
						|
    gtk_container_add (GTK_CONTAINER (vbox), hbox);
 | 
						|
    gtk_widget_show (hbox);
 | 
						|
                                  
 | 
						|
    check = gtk_check_button_new_with_label ("Editable");
 | 
						|
    gtk_box_pack_start (GTK_BOX (hbox), check, TRUE, TRUE, 0);
 | 
						|
    g_signal_connect (G_OBJECT (check), "toggled",
 | 
						|
	              G_CALLBACK (entry_toggle_editable), (gpointer) entry);
 | 
						|
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE);
 | 
						|
    gtk_widget_show (check);
 | 
						|
    
 | 
						|
    check = gtk_check_button_new_with_label ("Visible");
 | 
						|
    gtk_box_pack_start (GTK_BOX (hbox), check, TRUE, TRUE, 0);
 | 
						|
    g_signal_connect (G_OBJECT (check), "toggled",
 | 
						|
	              G_CALLBACK (entry_toggle_visibility), (gpointer) entry);
 | 
						|
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE);
 | 
						|
    gtk_widget_show (check);
 | 
						|
                                   
 | 
						|
    button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
 | 
						|
    g_signal_connect_swapped (G_OBJECT (button), "clicked",
 | 
						|
			      G_CALLBACK (gtk_widget_destroy),
 | 
						|
			      G_OBJECT (window));
 | 
						|
    gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
 | 
						|
    GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
 | 
						|
    gtk_widget_grab_default (button);
 | 
						|
    gtk_widget_show (button);
 | 
						|
    
 | 
						|
    gtk_widget_show (window);
 | 
						|
 | 
						|
    gtk_main();
 | 
						|
 | 
						|
    return 0;
 | 
						|
}
 |