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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
#include <gtk/gtk.h>
#include <stdlib.h>
gint label=0 ;
typedef struct _Data StructDat;
struct _Data
{
GtkLabel * LabelVar ;
GtkWidget * lblEntry ;
GdkPixbuf * led ;
GdkPixbuf * ledON;
GdkPixbuf * ledOFF;
gchar * stringLBL ;
};
static void cb_unit (GtkButton *Button3, StructDat *data) {
data->led = gdk_pixbuf_new_from_file ("./led_on.png", NULL);
if (label > 255) { label =0;
return; }
else label = label + 1;
data->stringLBL = g_strdup_printf( "%03d", label );
gtk_label_set_label( data->LabelVar, data->stringLBL );
gtk_entry_set_text(GTK_ENTRY(data->lblEntry), data->stringLBL );
g_free( data->stringLBL );
}
static void cb_diz (GtkButton *Button2, StructDat *data) {
data->led = gdk_pixbuf_new_from_file ("./led_off.png", NULL);
if (label > 255) { label =0;
return; }
else label = label + 10;
data->stringLBL = g_strdup_printf( "%03d", label );
gtk_label_set_label( data->LabelVar, data->stringLBL );
gtk_entry_set_text(GTK_ENTRY(data->lblEntry), data->stringLBL );
g_free( data->stringLBL );
}
int main(int argc, char **argv)
{
gtk_init(&argc, &argv);
GtkWidget *window, *table, *bunit, *bdiz, *etiquet, * ledAFF;
StructDat *data;
data = g_slice_new( StructDat);
data->ledOFF = gdk_pixbuf_new_from_file ("./led_off.png", NULL);
data->ledON = gdk_pixbuf_new_from_file ("./led_on.png", NULL);
/* if (label <= 2) { data->led = data->ledON ; }
else data->led = data->ledOFF ; */
window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
gtk_widget_set_size_request (window, 450, 250);
gtk_window_set_title (GTK_WINDOW (window), " EssaiVariable");
g_signal_connect( G_OBJECT( window ), "destroy", G_CALLBACK( gtk_main_quit ), NULL );
table = gtk_table_new( 7, 7, FALSE ); // la table de base colones et puis lignes
gtk_container_add( GTK_CONTAINER ( window ), table );
// gtk_image_set_from_pixbuf(GTK_IMAGE(ledAFF), data->led);
//ledAFF = gtk_image_new_from_pixbuf(data->led);
gtk_table_attach( GTK_TABLE( table ), ledAFF, 6, 7, 3, 4, GTK_SHRINK, GTK_SHRINK, 0, 0 );
etiquet = gtk_label_new("variable");
gtk_table_attach( GTK_TABLE( table ), etiquet, 4, 5, 0, 1, GTK_SHRINK, GTK_SHRINK, 0, 0 );
data->LabelVar = GTK_LABEL( etiquet );
data->lblEntry = gtk_entry_new(); //_with_max_length(15);
gtk_table_attach( GTK_TABLE( table ), data->lblEntry, 1, 4, 3, 4, GTK_SHRINK, GTK_SHRINK, 0, 0 );
bdiz = gtk_button_new_with_label( "Diz" );
g_signal_connect( G_OBJECT( bdiz ), "clicked", G_CALLBACK ( cb_diz ), data);
gtk_table_attach( GTK_TABLE( table ), bdiz, 3, 4, 4, 5, GTK_SHRINK, GTK_SHRINK, 0, 0 );
bunit = gtk_button_new_with_label( "Unit" );
g_signal_connect( G_OBJECT( bunit ), "clicked", G_CALLBACK ( cb_unit ), data);
gtk_table_attach( GTK_TABLE( table ), bunit, 4, 5, 4, 5, GTK_SHRINK, GTK_SHRINK, 0, 0 );
gtk_widget_show_all( window );
gtk_main();
g_slice_free( StructDat, data );
return EXIT_SUCCESS ;
} |