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 99 100 101 102 103 104 105 106
|
/*********************** Main Window ********************************/
main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title( GTK_WINDOW( main_window ), "WEBCAM - FPGA");
g_signal_connect( G_OBJECT( main_window ), "destroy", G_CALLBACK (gtk_main_quit), NULL);
/********************************************************************/
/*********************** Label Widget *******************************/
ptr_struct_GtkWidget->output_text=gtk_label_new("Output: ");
ptr_struct_GtkWidget->output=gtk_label_new(output_current);
gtk_label_set_justify(GTK_LABEL(ptr_struct_GtkWidget->output), GTK_JUSTIFY_CENTER);
ptr_struct_GtkWidget->label_state=gtk_label_new("State :");
ptr_struct_GtkWidget->label_current_state=gtk_label_new(char_current_state);
gtk_widget_set_size_request(ptr_struct_GtkWidget->label_current_state,100,20);
gtk_label_set_justify(GTK_LABEL(ptr_struct_GtkWidget->label_current_state), GTK_JUSTIFY_CENTER);
ptr_struct_GtkWidget->clock=gtk_button_new_with_label("Clock");
ptr_struct_GtkWidget->reset=gtk_button_new_with_label("Reset");
ptr_struct_GtkWidget->light=gtk_toggle_button_new_with_label("Light");
ptr_struct_GtkWidget->noise=gtk_toggle_button_new_with_label("Noise");
/********************************************************************/
/* Create a Fixed Container */
fixed_output_text = gtk_fixed_new();
fixed_output = gtk_fixed_new();
fixed_state_text = gtk_fixed_new();
fixed_state = gtk_fixed_new();
fixed_clock = gtk_fixed_new();
fixed_light = gtk_fixed_new();
fixed_noise = gtk_fixed_new();
fixed_reset = gtk_fixed_new();
/*********************** Webcam Widget ******************************/
ptr_struct_GtkWidget->drawing_area = gtk_drawing_area_new();
gtk_widget_set_size_request( ptr_struct_GtkWidget->drawing_area, opencvImage->width, opencvImage->height );
/********************************************************************/
g_signal_connect( G_OBJECT( ptr_struct_GtkWidget->drawing_area), "expose_event", G_CALLBACK (expose_event_callback), NULL);
g_timeout_add( 100, ( GSourceFunc )time_handler, ( gpointer ) ptr_struct_GtkWidget->drawing_area );
// Add webcam window
vbox = gtk_vbox_new (FALSE, 5);
gtk_box_pack_start (GTK_BOX (vbox), ptr_struct_GtkWidget->drawing_area, expand, fill, padding);
// Add dialog window
dialog = gtk_hbox_new (FALSE, 5);
gtk_fixed_put(GTK_FIXED (fixed_output_text), ptr_struct_GtkWidget->output_text, 5,5);
gtk_fixed_put(GTK_FIXED (fixed_output), ptr_struct_GtkWidget->output, 6,5);
gtk_fixed_put (GTK_FIXED (fixed_state_text), ptr_struct_GtkWidget->label_state, 7,5);
gtk_fixed_put (GTK_FIXED (fixed_state), ptr_struct_GtkWidget->label_current_state, 8,5);
gtk_fixed_put (GTK_FIXED (fixed_clock), ptr_struct_GtkWidget->clock, 30,0);
gtk_fixed_put (GTK_FIXED (fixed_light), ptr_struct_GtkWidget->light, 31,0);
gtk_fixed_put (GTK_FIXED (fixed_noise), ptr_struct_GtkWidget->noise, 32,0);
gtk_fixed_put (GTK_FIXED (fixed_reset), ptr_struct_GtkWidget->reset, 33,0);
gtk_container_add(GTK_CONTAINER( dialog), fixed_output_text);
gtk_container_add(GTK_CONTAINER( dialog), fixed_output);
gtk_container_add(GTK_CONTAINER( dialog), fixed_state_text);
gtk_container_add(GTK_CONTAINER( dialog), fixed_state);
gtk_container_add(GTK_CONTAINER( dialog), fixed_clock);
gtk_container_add(GTK_CONTAINER( dialog), fixed_light);
gtk_container_add(GTK_CONTAINER( dialog), fixed_noise);
gtk_container_add(GTK_CONTAINER( dialog), fixed_reset);
gtk_box_pack_start (GTK_BOX (vbox), dialog, expand, fill, padding);
// create frame
frame_dialog = gtk_frame_new(NULL);
gtk_container_add( GTK_CONTAINER(frame_dialog), dialog);
gtk_container_add( GTK_CONTAINER(frame_dialog), vbox);
gtk_container_add( GTK_CONTAINER(main_window), frame_dialog);
g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->clock), "pressed", G_CALLBACK(input_signal),char_clock);
g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->clock), "released", G_CALLBACK(update_state),ptr_struct_GtkWidget);
g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->clock), "released", G_CALLBACK(toggle_input_off),ptr_struct_GtkWidget->light);
g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->clock), "released", G_CALLBACK(toggle_input_off),ptr_struct_GtkWidget->noise);
g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->reset), "pressed", G_CALLBACK(input_signal),char_reset);
g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->reset), "released", G_CALLBACK(update_state),ptr_struct_GtkWidget);
g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->reset), "released", G_CALLBACK(toggle_input_off),ptr_struct_GtkWidget->light);
g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->reset), "released", G_CALLBACK(toggle_input_off),ptr_struct_GtkWidget->noise);
g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->light), "toggled", G_CALLBACK(toggle_button_callback),char_light);
g_signal_connect(G_OBJECT(ptr_struct_GtkWidget->noise), "toggled", G_CALLBACK(toggle_button_callback),char_noise);
gtk_widget_show_all( main_window );
gtk_main();
cvReleaseCapture( &capture );
return 0;
} |
Partager