1 #include <gtk/gtk.h>
2 #include "button_box.h"
3 #include "kmap_struct.h"
4 #include "cell_array_table.h"
5 #include "g_library.h"
6 #include "key_table_entry.h"
7 #include "window.h"
8
9 int connection=-1; /*globle variable*/
get_button_box(void)10 GtkWidget *get_button_box(void)
11 {
12 GtkWidget *hbox;
13 hbox=gtk_hbox_new(FALSE,2);
14 GtkWidget *show, *reset;
15 show=gtk_button_new_with_label(" Show ");
16 gtk_tooltips_set_tip(tooltips,show,"Display the output key",NULL);
17 reset=gtk_button_new_with_label(" Reset ");
18 gtk_tooltips_set_tip(tooltips,reset,"Reset all kmap cells",NULL);
19 gtk_box_pack_start(GTK_BOX(hbox),show,FALSE,FALSE,0);
20 gtk_box_pack_end(GTK_BOX(hbox),reset,FALSE,FALSE,0);
21 g_signal_connect(G_OBJECT(show),"clicked",G_CALLBACK(on_show_clicked),NULL);
22 g_signal_connect(G_OBJECT(reset),"clicked",G_CALLBACK(on_reset_clicked),NULL);
23 return hbox;
24 }
25
26 /*#################### Callback of reset button ######################*/
on_reset_clicked(GtkWidget * button,gpointer user_data)27 void on_reset_clicked(GtkWidget *button,gpointer user_data)
28 {
29 int i,j;
30 for(i=0;i<=3;i++)
31 {
32 for(j=0;j<=3;j++)
33 {
34 gtk_button_set_label(GTK_BUTTON(button_array[i][j]),"0");
35 cell_array[i][j].value='0';
36 cell_array[i][j].real_value='0';
37 }
38 }
39 gtk_entry_set_text(GTK_ENTRY(key_entry1),"");
40 gtk_widget_hide(key_entry2);
41
42 connection=-1;
43 final_out[0]='\0';
44 return;
45 }
46
47 /*##################### Call back for show button #########################*/
on_show_clicked(GtkWidget * button,gpointer user_data)48 void on_show_clicked(GtkWidget *button,gpointer user_data)
49 {
50 init_kmap();
51 int i,j;
52 gchar *label;
53 for(i=0;i<=3;i++)
54 {
55 for(j=0;j<=3;j++)
56 {
57 label=g_strdup(gtk_button_get_label(GTK_BUTTON(button_array[i][j])));
58 cell_array[i][j].value=*label;
59 cell_array[i][j].real_value=*label;
60 }
61 }
62 if(!chk_no_1())
63 return;
64 if(!chk_all_1s())
65 return;
66 chk_mk_octet();
67 chk_mk_quad();
68 chk_mk_pair();
69 chk_mk_single();
70 set_status_of_connection();
71 set_output();
72 g_free(label);
73 return;
74 }
75