1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#include <gtk/gtk.h>
void cb_swap( GtkWidget *p_widget, gpointer data );
int main( int argc, char *argv[] )
{
gtk_init( &argc, &argv );
GtkWidget *mainWindow = gtk_window_new( GTK_WINDOW_TOPLEVEL );
GtkWidget *lbl_title_A = gtk_label_new("Titre A :");
GtkWidget *lbl_title_B = gtk_label_new("Titre B :");
GtkWidget *txt_entry_A = gtk_entry_new();
GtkWidget *txt_entry_B = gtk_entry_new();
GtkWidget *cmd_swap = gtk_button_new_with_label("SWAP");
GtkWidget *mainBox = gtk_vbox_new(FALSE,10);
/* Mise en place des Widgets sur la fenetre ... */
gtk_container_add(GTK_CONTAINER(mainWindow),mainBox);
gtk_box_pack_start(GTK_BOX(mainBox),lbl_title_A,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(mainBox),txt_entry_A,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(mainBox),lbl_title_B,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(mainBox),txt_entry_B,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(mainBox),cmd_swap,FALSE,FALSE,5);
g_signal_connect(G_OBJECT(cmd_swap),"clicked",G_CALLBACK(cb_swap),mainBox);
g_signal_connect(G_OBJECT(mainWindow),"delete-event",G_CALLBACK(gtk_main_quit),NULL);
gtk_widget_show_all( mainWindow );
gtk_main();
return 0;
}
void cb_swap( GtkWidget *p_widget, gpointer data )
{
GList *p_list=gtk_container_get_children(GTK_CONTAINER((GtkWidget*)data));
GtkWidget *txt_entry_A,*txt_entry_B;
gchar *buff_A,*buff_B;
/* Sauter le 'lbl_title_A' */
p_list=g_list_next( p_list );
/* Recuperer le 'txt_entry_A' */
txt_entry_A=GTK_WIDGET( p_list->data );
/* Sauter le 'lbl_title_B' */
p_list=g_list_next( p_list );
/* Recuperer le 'txt_entry_B' */
txt_entry_B=GTK_WIDGET( p_list->data );
/* Permutation ...*/
buff_A=gtk_entry_get_text(GTK_ENTRY( txt_entry_A ));
buff_B=gtk_entry_get_text(GTK_ENTRY( txt_entry_B ));
gtk_entry_set_text(GTK_ENTRY( txt_entry_A ),buff_B);
gtk_entry_set_text(GTK_ENTRY( txt_entry_B ),buff_A);
(void)p_widget;
} |