#include #include #include #include #include #include #include #include using namespace std; void affiche (GtkWidget *dialog) { gtk_widget_show_all(dialog); } const gchar* calc_solu1(const char *a,const char *b,const char *c,float a1,float b1,float c1,float solu,char *affiche) { a1=strtof(a,NULL); b1=strtof(b,NULL); c1=strtof(c,NULL); solu=(((c1)-(b1))/(a1)); sprintf(affiche,"X=%f",solu); return affiche; } struct fenetre1 { GtkWidget *window1; GtkWidget *hbox1,*hbox2,*hbox3,*hbox4; GtkWidget *vbox1; GtkWidget *button1; GtkWidget *button2; GtkWidget *label1; GtkWidget *label2; GtkWidget *label3; GtkWidget *label4; GtkWidget *label5; GtkWidget *label6; GtkWidget *label7; GtkWidget *entry1; GtkWidget *entry2; GtkWidget *entry3; GtkWidget *entry4; GtkWidget *image1; GtkWidget *image2; }; /*struct condition { bool second; bool tue; GtkWidget *dialog; };*/ gboolean quitter (GtkWidget *button2,gpointer donne) { GtkWidget *popup=(GtkWidget*)donne; gtk_widget_destroy(popup); gtk_main_quit(); return FALSE; } gboolean on_click_button1 (GtkWidget *button1,gpointer data) { fenetre1 *i2_fenetre1=(fenetre1*) data; const char *a; const char *b; const char *c; const char *d; char *affiche1=(char*)malloc(sizeof(char)); char *affiche2=(char*)malloc(sizeof(char)); float a1; float b1; float c1; float d1; float cd1; float delta; float x1; float x2; a=gtk_entry_get_text(GTK_ENTRY(i2_fenetre1->entry1)); b=gtk_entry_get_text(GTK_ENTRY(i2_fenetre1->entry2)); c=gtk_entry_get_text(GTK_ENTRY(i2_fenetre1->entry3)); d=gtk_entry_get_text(GTK_ENTRY(i2_fenetre1->entry4)); a1=strtof(a,NULL); b1=strtof(b,NULL); c1=strtof(c,NULL); d1=strtof(d,NULL); cd1=(c1-d1); delta=((b1*b1)-(4*a1*cd1)); if (delta==0) { x2=((-b1)/(2*a1)); x1=x2; sprintf(affiche1,"X1=X2=%f",x1); //sprintf(affiche2,"%f",x2); const gchar *labs1=affiche1; //const gchar *labs2=affiche2; gtk_label_set_label(GTK_LABEL(i2_fenetre1->label6),labs1); gtk_label_set_label(GTK_LABEL(i2_fenetre1->label5),"Ses racines doubles sont"); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry1),""); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry2),""); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry3),""); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry4),""); } else if (delta>0) { x1=(((-b1)-(sqrt(delta)))/(2*a1)); x2=(((-b1)-(sqrt(delta)))/(2*a1));; sprintf(affiche1,"X1=%f",x1); sprintf(affiche2,"X2=%f",x2); const gchar *labs1=affiche1; const gchar *labs2=affiche2; gtk_label_set_label(GTK_LABEL(i2_fenetre1->label7),labs2); gtk_label_set_label(GTK_LABEL(i2_fenetre1->label6),labs1); gtk_label_set_label(GTK_LABEL(i2_fenetre1->label5),"Les deux racines reels sont"); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry1),""); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry2),""); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry3),""); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry4),""); } else { gtk_label_set_label(GTK_LABEL(i2_fenetre1->label5),"Cette eqation ne possede pas de racines reels, mais deux racines complexes conjugues"); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry1),""); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry2),""); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry3),""); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry4),""); } return FALSE; } gboolean on_click_button (GtkWidget *button1,gpointer data) { fenetre1 *i2_fenetre1=(fenetre1*) data; const char *a,*b,*c; float a1=0,b1=0,c1=0,solu=0; char *affiche=(char*)malloc(sizeof(char)); a=gtk_entry_get_text(GTK_ENTRY(i2_fenetre1->entry1)); b=gtk_entry_get_text(GTK_ENTRY(i2_fenetre1->entry2)); c=gtk_entry_get_text(GTK_ENTRY(i2_fenetre1->entry3)); const gchar *labs=calc_solu1(a,b,c,a1,b1,c1,solu,affiche); gtk_label_set_label(GTK_LABEL(i2_fenetre1->label5),labs); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry1),""); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry2),""); gtk_entry_set_text(GTK_ENTRY(i2_fenetre1->entry3),""); return FALSE; } /*gboolean on_click_button2(GtkWidget*button2,GdkEventButton *event,gpointer codi) { GtkWidget *dialog1=(GtkWidget*)codi; affiche(dialog1); return FALSE; } gboolean on_click_button0(GtkWidget*button2,GdkEventButton *event,gpointer codi) { GtkWidget *dialog1=(GtkWidget*)codi; affiche(dialog1); return FALSE; }*/ void premier_degree(fenetre1*i1_fenetre1,const gchar *sorato) { //fenetre1 *i1_fenetre1=(fenetre1*)malloc(sizeof(fenetre1)); //const gchar *sorato="Inserer votre equation et cliquer sur RESOUDRE"; i1_fenetre1->vbox1=gtk_vbox_new(FALSE,2); i1_fenetre1->window1=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(i1_fenetre1->window1),"Famahana Equation"); gtk_window_set_position(GTK_WINDOW(i1_fenetre1->window1),GTK_WIN_POS_CENTER); gtk_window_set_resizable(GTK_WINDOW(i1_fenetre1->window1),FALSE); //gtk_window_resize(GTK_WINDOW(i1_fenetre1->window1),50,200); gtk_window_set_default_size(GTK_WINDOW(i1_fenetre1->window1),50,200); i1_fenetre1->hbox1=gtk_hbox_new(FALSE,1); i1_fenetre1->hbox2=gtk_hbox_new(TRUE,0); i1_fenetre1->hbox3=gtk_hbox_new(FALSE,1); i1_fenetre1->hbox4=gtk_hbox_new(TRUE,1); i1_fenetre1->button1=gtk_button_new_with_label("RESOUDRE"); i1_fenetre1->label1=gtk_label_new(sorato); i1_fenetre1->label2=gtk_label_new("X+"); i1_fenetre1->label3=gtk_label_new("="); i1_fenetre1->label4=gtk_label_new("La solution est:"); i1_fenetre1->label5=gtk_label_new(""); gtk_label_set_markup(GTK_LABEL(i1_fenetre1->label1),sorato); i1_fenetre1->entry1=gtk_entry_new_with_max_length(5); i1_fenetre1->entry2=gtk_entry_new_with_max_length(5); i1_fenetre1->entry3=gtk_entry_new_with_max_length(5); i1_fenetre1->image1=gtk_image_new_from_file("image/bakuprod.png"); i1_fenetre1->image2=gtk_image_new_from_file("image/equamath.png"); i1_fenetre1->button1=gtk_button_new_with_label("RESOUDRE"); i1_fenetre1->button2=gtk_button_new_with_label("MENU"); gtk_check_button_new_with_label("cochez ceci"); gtk_container_add(GTK_CONTAINER(i1_fenetre1->window1),i1_fenetre1->vbox1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->vbox1),i1_fenetre1->hbox1,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->vbox1),i1_fenetre1->hbox2,FALSE,FALSE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->vbox1),i1_fenetre1->hbox3,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->vbox1),i1_fenetre1->hbox4,FALSE,FALSE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox1),i1_fenetre1->image1,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox1),i1_fenetre1->label1,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox1),i1_fenetre1->image2,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->entry1,FALSE,TRUE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->label2,FALSE,TRUE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->entry2,FALSE,TRUE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->label3,FALSE,TRUE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->entry3,FALSE,TRUE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox3),i1_fenetre1->label4,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox3),i1_fenetre1->label5,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox4),i1_fenetre1->button1,FALSE,FALSE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox4),i1_fenetre1->button2,FALSE,FALSE,1); gtk_entry_set_width_chars(GTK_ENTRY(i1_fenetre1->entry1),5); gtk_entry_set_width_chars(GTK_ENTRY(i1_fenetre1->entry2),5); gtk_entry_set_width_chars(GTK_ENTRY(i1_fenetre1->entry3),5); g_signal_connect(i1_fenetre1->button1,"clicked",GCallback(on_click_button),i1_fenetre1); //g_signal_connect(i1_fenetre1->button2,"clicked",GCallback(on_click_button0),dialog); g_signal_connect(i1_fenetre1->window1,"destroy",GCallback(gtk_main_quit),NULL); gtk_widget_show_all(i1_fenetre1->window1); gtk_main(); } void second_degree(fenetre1*i1_fenetre1,const gchar *sorato) { //fenetre1 *i1_fenetre1=(fenetre1*)malloc(sizeof(fenetre1)); //const gchar *sorato="Inserer votre equation et cliquer sur RESOUDRE"; //gtk_init(&argc,&argv); i1_fenetre1->vbox1=gtk_vbox_new(FALSE,2); i1_fenetre1->window1=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(i1_fenetre1->window1),"Famahana Equation"); gtk_window_set_position(GTK_WINDOW(i1_fenetre1->window1),GTK_WIN_POS_CENTER); // bool fer=TRUE; /*if (fer==TRUE) { gtk_window_resize(GTK_WINDOW(i1_fenetre1->window1),50,100); }*/ gtk_window_set_resizable(GTK_WINDOW(i1_fenetre1->window1),FALSE); //gtk_window_resize(GTK_WINDOW(i1_fenetre1->window1),50,200); i1_fenetre1->hbox1=gtk_hbox_new(FALSE,1); i1_fenetre1->hbox2=gtk_hbox_new(FALSE,0); i1_fenetre1->hbox3=gtk_hbox_new(FALSE,1); i1_fenetre1->hbox4=gtk_hbox_new(TRUE,1); i1_fenetre1->button1=gtk_button_new_with_label("RESOUDRE"); i1_fenetre1->button2=gtk_button_new_with_label("MENU"); //DECLARATION DES LABELS i1_fenetre1->label1=gtk_label_new(sorato); i1_fenetre1->label2=gtk_label_new("X^2+"); i1_fenetre1->label3=gtk_label_new("X+"); i1_fenetre1->label4=gtk_label_new("="); i1_fenetre1->label5=gtk_label_new(""); i1_fenetre1->label6=gtk_label_new(""); i1_fenetre1->label7=gtk_label_new(""); gtk_label_set_markup(GTK_LABEL(i1_fenetre1->label1),sorato); i1_fenetre1->entry1=gtk_entry_new_with_max_length(5); i1_fenetre1->entry2=gtk_entry_new_with_max_length(5); i1_fenetre1->entry3=gtk_entry_new_with_max_length(5); i1_fenetre1->entry4=gtk_entry_new_with_max_length(5); i1_fenetre1->image1=gtk_image_new_from_file("image/bakuprod.png"); i1_fenetre1->image2=gtk_image_new_from_file("image/equamath.png"); i1_fenetre1->button1=gtk_button_new_with_label("RESOUDRE"); gtk_check_button_new_with_label("cochez ceci"); gtk_container_add(GTK_CONTAINER(i1_fenetre1->window1),i1_fenetre1->vbox1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->vbox1),i1_fenetre1->hbox1,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->vbox1),i1_fenetre1->hbox2,FALSE,FALSE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->vbox1),i1_fenetre1->hbox3,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->vbox1),i1_fenetre1->hbox4,FALSE,FALSE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox1),i1_fenetre1->image1,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox1),i1_fenetre1->label1,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox1),i1_fenetre1->image2,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->entry1,TRUE,FALSE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->label2,TRUE,FALSE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->entry2,TRUE,FALSE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->label3,TRUE,FALSE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->entry3,TRUE,FALSE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->label4,TRUE,FALSE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox2),i1_fenetre1->entry4,TRUE,FALSE,0); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox3),i1_fenetre1->label5,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox3),i1_fenetre1->label6,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox3),i1_fenetre1->label7,TRUE,TRUE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox4),i1_fenetre1->button1,FALSE,FALSE,1); gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox4),i1_fenetre1->button2,FALSE,FALSE,1); //gtk_box_pack_start(GTK_BOX(i1_fenetre1->hbox4),i1_fenetre1->check,FALSE,FALSE,1); g_signal_connect(i1_fenetre1->button1,"clicked",GCallback(on_click_button1),(fenetre1*) i1_fenetre1); //g_signal_connect(i1_fenetre1->button2,"clicked",GCallback(on_click_button2),(GtkWidget*) dialog); gtk_entry_set_width_chars(GTK_ENTRY(i1_fenetre1->entry1),5); gtk_entry_set_width_chars(GTK_ENTRY(i1_fenetre1->entry2),5); gtk_entry_set_width_chars(GTK_ENTRY(i1_fenetre1->entry3),5); g_signal_connect(i1_fenetre1->window1,"destroy",GCallback(gtk_main_quit),NULL); gtk_widget_show_all(i1_fenetre1->window1); gtk_main(); } gboolean fenetre1_affiche(GtkWidget *buttonn1,gpointer codi) { GtkWidget *dialog=(GtkWidget*) codi; fenetre1 *i1_fenetre1=(fenetre1*)malloc(sizeof(fenetre1)); const gchar *sorato="Inserer votre equation et cliquer sur RESOUDRE";; gtk_widget_destroy(dialog); premier_degree(i1_fenetre1,sorato); return FALSE; } gboolean fenetre2_affiche(GtkWidget *buttonn1,gpointer codi) { GtkWidget *dialog=(GtkWidget*) codi; fenetre1 *i1_fenetre1=(fenetre1*)malloc(sizeof(fenetre1)); const gchar *sorato="Inserer votre equation et cliquer sur RESOUDRE"; gtk_widget_destroy(dialog); second_degree(i1_fenetre1,sorato); return FALSE; } int main (int argc,char **argv) { GtkWidget *dialog=NULL; GtkWidget *vboxn=NULL; GtkWidget *buttonn1=NULL; GtkWidget *buttonn2=NULL; gtk_init(&argc,&argv); dialog=gtk_window_new(GTK_WINDOW_TOPLEVEL); vboxn=gtk_vbox_new(TRUE,2); buttonn1=gtk_button_new_with_label("Equation du premier degree"); buttonn2=gtk_button_new_with_label("Equation du second degree"); gtk_window_resize(GTK_WINDOW(dialog),100,30); gtk_window_set_resizable(GTK_WINDOW(dialog),FALSE); gtk_window_set_position(GTK_WINDOW(dialog),GTK_WIN_POS_CENTER); gtk_container_add(GTK_CONTAINER(dialog),vboxn); gtk_box_pack_start(GTK_BOX(vboxn),buttonn1,FALSE,TRUE,0); gtk_box_pack_start(GTK_BOX(vboxn),buttonn2,FALSE,TRUE,0); gtk_widget_show_all(dialog); g_signal_connect(dialog,"destroy",GCallback(gtk_main_quit),NULL); g_signal_connect(buttonn1,"clicked",GCallback(fenetre1_affiche),dialog); g_signal_connect(buttonn2,"clicked",GCallback(fenetre2_affiche),dialog); gtk_main(); return EXIT_SUCCESS; }