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