Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<gtk/gtk.h>
- #include<ctype.h>
- #include<string.h>
- #define DOT 10
- #define ADD 11
- #define SUB 12
- #define MUL 13
- #define DIV 14
- #define EQL 15
- void handle(GtkWidget *source, gpointer data)
- {
- char *x;
- x =gtk_button_get_label(GTK_BUTTON(source));
- // g_printf("%s",x);
- // gtk_widget_hide(source);
- GtkEntry *entry = GTK_ENTRY(data);
- char str[50];
- if(isdigit(x) != 0)
- {
- strcpy(str,gtk_entry_get_text(entry));
- strcat(str,x);
- gtk_entry_set_text(entry,str);
- }
- }
- int main(int argc,char **argv)
- {
- gtk_init(&argc,&argv);
- GtkWidget *window;
- GtkWidget *resultbox;
- GtkWidget *table;
- GtkWidget *button[16];
- window =gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_geometry(GTK_WINDOW(window),350,200);
- gtk_window_set_title(GTK_WINDOW(window), "Simple Calculator Application");
- table = gtk_table_new(4,4,TRUE);
- /*--------------------------------------------------------------*/
- resultbox = gtk_entry_new();
- gtk_table_attach_defaults(GTK_TABLE(table),resultbox,0,4,0,1);
- button[7] = gtk_button_new_with_label("7");
- gtk_table_attach_defaults(GTK_TABLE(table),button[7],0,1,1,2);
- button[8] = gtk_button_new_with_label("8");
- gtk_table_attach_defaults(GTK_TABLE(table),button[8],1,2,1,2);
- button[9] = gtk_button_new_with_label("9");
- gtk_table_attach_defaults(GTK_TABLE(table),button[9],2,3,1,2);
- button[DIV] = gtk_button_new_with_label("/");
- gtk_table_attach_defaults(GTK_TABLE(table),button[DIV],3,4,1,2);
- /*-------------------------------------------------------------*/
- button[4] = gtk_button_new_with_label("4");
- gtk_table_attach_defaults(GTK_TABLE(table),button[4],0,1,2,3);
- button[5] = gtk_button_new_with_label("5");
- gtk_table_attach_defaults(GTK_TABLE(table),button[5],1,2,2,3);
- button[6] = gtk_button_new_with_label("6");
- gtk_table_attach_defaults(GTK_TABLE(table),button[6],2,3,2,3);
- button[MUL] = gtk_button_new_with_label("X");
- gtk_table_attach_defaults(GTK_TABLE(table),button[MUL],3,4,2,3);
- /*-----------------------------------------------------------*/
- button[1] = gtk_button_new_with_label("1");
- gtk_table_attach_defaults(GTK_TABLE(table),button[1],0,1,3,4);
- button[2] = gtk_button_new_with_label("2");
- gtk_table_attach_defaults(GTK_TABLE(table),button[2],1,2,3,4);
- button[3] = gtk_button_new_with_label("3");
- gtk_table_attach_defaults(GTK_TABLE(table),button[3],2,3,3,4);
- button[SUB] = gtk_button_new_with_label("-");
- gtk_table_attach_defaults(GTK_TABLE(table),button[SUB],3,4,3,4);
- /*----------------------------------------------------------*/
- button[0] = gtk_button_new_with_label("0");
- gtk_table_attach_defaults(GTK_TABLE(table),button[0],0,1,4,5);
- button[DOT] = gtk_button_new_with_label(".");
- gtk_table_attach_defaults(GTK_TABLE(table),button[DOT],1,2,4,5);
- button[EQL] = gtk_button_new_with_label("=");
- gtk_table_attach_defaults(GTK_TABLE(table),button[EQL],2,3,4,5);
- button[ADD] = gtk_button_new_with_label("+");
- gtk_table_attach_defaults(GTK_TABLE(table),button[ADD],3,4,4,5);
- gtk_container_add(GTK_CONTAINER(window),table);
- /*-----------------------------------------------------------*/
- g_signal_connect(window,"delete-event",G_CALLBACK(gtk_main_quit),NULL);
- int i;
- for(i =0; i<16;i++)
- g_signal_connect(button[i],"clicked",G_CALLBACK(handle),resultbox);
- gtk_widget_show_all(window);
- gtk_main();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment