/* F410 - FRACCIONES */ #include #include "cabecera.h" #include #define _(String) gettext (String) GtkWidget *ventana1; GtkWidget *notebook; GtkWidget *vbox, *vbox0, *vbox1, *vbox2, *vbox3; GtkWidget *hbox1; GtkWidget *label_pag_0, *label_pag_1, *label_pag_2, *label_pag_3; GtkWidget *label1, *label2, *label3; GtkWidget *spinbutton1; GdkColor colorfondo={0,0xf600,0xf600,0xfb00}; gint nivel=-1; /************** ficha 0 ***************************************************/ GtkWidget *label0; GtkWidget *img_fondo; /************** ficha 1 ***************************************************/ GtkWidget *canvas10, *canvas11; GnomeCanvasGroup *root10, *root11; GnomeCanvasPoints *points10; GtkWidget *entry11, *entry12; GtkWidget *hbox11; GtkWidget *boton11, *boton12, *boton13, *boton14, *boton15; GtkWidget *labelb14, *labelb15; PangoFontDescription *font_desc; GtkWidget *imagen_dado; GtkWidget *scrolled_window11; GtkTextBuffer *bufer10; GtkTextTag *fuente_12, *negrita10; GtkTooltips *globo_b11; GtkTextView *view10; GtkTextIter start10, end10; GtkWidget *canvas12; GnomeCanvasGroup *root12; GnomeCanvasPoints *points10; /************** ficha 2 ***************************************************/ GtkWidget *tabla; GtkWidget *boton1, *boton2, *boton3, *boton4, *boton5, *boton6, *boton7, *boton8, *boton9, *boton10; GtkWidget *labelb1, *labelb2, *labelb3, *labelb4, *labelb5, *labelb6, *labelb8, *labelb10; GtkWidget *scrolled_window21, *scrolled_window22; GtkWidget *entry1, *entry2, *entry3, *entry4; GtkWidget *canvas20, *canvas21; GnomeCanvasGroup *root20, *root21; GnomeCanvasPoints *points; GtkWidget *dado48; GtkTooltips *globo_b5, *globo_b6, *globo_b9; GtkTextBuffer *bufer21; GtkTextTagTable *tags; GtkTextTag *negrita, *fuente_12, *color_azul; GtkTextView *view21; GtkTextIter start21, end21; /************** ficha 3 ***************************************************/ GtkWidget *hbox0, *hbox1, *tabla30; GtkWidget *labelc1; GtkWidget *hseparator33; GtkWidget *scrolled_window32, *scrolled_window33; GtkWidget *boton31, *boton32, *boton33; GtkWidget *entry31; GtkWidget *canvas30, *canvas32; GnomeCanvasGroup *root30, *root32; GnomeCanvasPoints *points30; GtkTextBuffer *bufer30; GtkTextTagTable *tags; GtkTextTag *negrita30, *color_rojo, *color_azul, *fuente_11, *fuente_12, *fuente_13, *superindice, *subrayado, *monospace1431,*monospace1433, *mono1430, *subindice; GtkTextView *view30; GtkTextIter start30, end30; void crea_ventana_principal () { ventana1 = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request (GTK_WIDGET (ventana1), 700, 540); gtk_window_set_title (GTK_WINDOW (ventana1), _("gMatESO - Fracciones")); gtk_window_set_resizable (GTK_WINDOW (ventana1), FALSE); g_signal_connect (G_OBJECT (ventana1), "delete_event", G_CALLBACK (exit), NULL); gtk_widget_modify_bg (GTK_WIDGET (ventana1), GTK_STATE_NORMAL, &colorfondo); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (ventana1), vbox); gtk_container_set_border_width(GTK_CONTAINER (vbox), 3); hbox1 = gtk_hbox_new (FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER (hbox1), 0); gtk_box_pack_start (GTK_BOX (vbox), hbox1, FALSE, FALSE, 1); gtk_widget_set_size_request(GTK_WIDGET (hbox1), -1, 30); label1 = gtk_label_new (NULL); gtk_box_pack_start (GTK_BOX (hbox1), label1, FALSE, FALSE, 1); gtk_widget_set_size_request(GTK_WIDGET (label1), 200, 28); gtk_label_set_markup (GTK_LABEL(label1), _(" Fracciones ")); label2 = gtk_label_new (NULL); gtk_box_pack_start (GTK_BOX (hbox1), label2, FALSE, FALSE, 1); gtk_widget_set_size_request(GTK_WIDGET (label2), 350, 25); gtk_label_set_markup (GTK_LABEL(label2), _(" Selecciona un nivel ")); label3 = gtk_label_new (NULL); gtk_box_pack_start (GTK_BOX (hbox1), label3, FALSE, FALSE, 1); gtk_widget_set_size_request(GTK_WIDGET (label3), 90, 25); gtk_label_set_markup (GTK_LABEL(label3), _(" Nivel:")); spinbutton1 = gtk_spin_button_new_with_range (0,3,1); gtk_widget_show (spinbutton1); gtk_box_pack_start (GTK_BOX (hbox1), spinbutton1, FALSE, FALSE, 1); gtk_widget_set_size_request (spinbutton1, 40, 25); gtk_spin_button_set_value (GTK_SPIN_BUTTON(spinbutton1),0); notebook=gtk_notebook_new(); gtk_box_pack_start (GTK_BOX (vbox), notebook, TRUE, TRUE, 1); gtk_notebook_set_tab_pos (GTK_NOTEBOOK(notebook), GTK_POS_TOP); gtk_widget_set_size_request(GTK_WIDGET (notebook), -1, 510); vbox0 = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER (vbox0), 3); vbox1 = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER (vbox1), 3); vbox2 = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER (vbox2), 3); vbox3 = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER (vbox3), 3); label_pag_0 = gtk_label_new (_("pagina 0")); label_pag_1 = gtk_label_new (_("pagina 1")); label_pag_2 = gtk_label_new (_("pagina 2")); label_pag_3 = gtk_label_new (_("pagina 3")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox0, label_pag_0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox1, label_pag_1); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox2, label_pag_2); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox3, label_pag_3); gtk_notebook_set_show_tabs(GTK_NOTEBOOK (notebook), FALSE); gtk_widget_show_all (ventana1); GString *carpeta3; gchar *texto3; carpeta3=g_string_new(NULL); g_string_append (carpeta3, g_get_home_dir ()); g_string_append (carpeta3, "/gmateso/images/fondo4.png"); texto3 = g_string_free (carpeta3, FALSE); img_fondo = gtk_image_new_from_file (texto3); gtk_container_add (GTK_CONTAINER (vbox0), img_fondo); gtk_widget_show_all (vbox0); /************* página 1 *************************************************************************************/ canvas10 = gnome_canvas_new_aa(); root10 = gnome_canvas_root(GNOME_CANVAS(canvas10)); gnome_canvas_set_center_scroll_region (GNOME_CANVAS(canvas10), FALSE); gtk_widget_set_size_request(GTK_WIDGET (canvas10), 700, 110); gtk_box_pack_start (GTK_BOX (vbox1), canvas10, FALSE, FALSE, 1); gnome_canvas_item_new(root10, gnome_canvas_rect_get_type(), "x1", 1.0, /*cordenas de la */ "y1", 2.0, /*esquina sup-izq */ "x2", 682.0, /*ancho */ /*coord de la esquina inf-der*/ "y2", 107.0, /*alto */ "fill_color_rgba", 0xfff9f3ff, /*color de relleno*/ "outline_color_rgba", 0x00aa00ff, /*color del borde */ "width_units", 2.0, /*tamaño del borde*/ NULL); gnome_canvas_item_new(root10, gnome_canvas_text_get_type(), "font", "monospace 11", "markup", " numerador ", "fill_color", "black", "x", 10.0, "y", 10.0, "anchor", GTK_ANCHOR_WEST, NULL); gnome_canvas_item_new(root10, gnome_canvas_text_get_type(), "font", "monospace 11", "markup", "denominador", "fill_color", "black", "x", 10.0, "y",90.0, "anchor", GTK_ANCHOR_WEST, NULL); entry11 = gtk_entry_new_with_max_length (3); gtk_entry_set_width_chars(GTK_ENTRY(entry11), 4); gtk_widget_grab_focus (entry11); entry12 = gtk_entry_new_with_max_length (3); gtk_entry_set_width_chars(GTK_ENTRY(entry12), 4); font_desc = pango_font_description_from_string("Monospace 14"); gtk_widget_modify_font(entry11, font_desc); gtk_widget_modify_font(entry12, font_desc); gnome_canvas_item_new(root10, gnome_canvas_widget_get_type(), "widget", entry11, "x", 27.0, "y",20.0, "width", 40.0, "height",28.0, NULL); gnome_canvas_item_new(root10, gnome_canvas_widget_get_type(), "widget", entry12, "x", 27.0, "y",55.0, "width", 40.0, "height",28.0, NULL); points10 = gnome_canvas_points_new(2); /* 2 puntos */ points10->coords[0] = 23; points10->coords[1] = 51; points10->coords[2] = 72; points10->coords[3] = 51; gnome_canvas_item_new(root10, gnome_canvas_line_get_type(), "points", points10, "fill_color", "black", "width_units", 3.0, NULL); gnome_canvas_points_unref(points10); gnome_canvas_item_new(root10, gnome_canvas_text_get_type(), "font", "monospace 12", "markup", _(" Introduce numerador y denominador y pulsa 'Aceptar', \n ó bien pulsa sobre el 'dado' si quieres \n una fracción al azar"), "fill_color", "black", "x", 240.0, "y", 40.0, "anchor", GTK_ANCHOR_WEST, NULL); hbox11 = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox1), hbox11, FALSE, FALSE, 1); gtk_widget_set_size_request(GTK_WIDGET (hbox11), -1, 32); boton11= gtk_button_new(); /*_with_label ("Al azar");*/ gtk_box_pack_start (GTK_BOX (hbox11), boton11, FALSE, FALSE, 1); GString *carpeta; gchar *texto1; carpeta=g_string_new(NULL); g_string_append (carpeta, g_get_home_dir ()); g_string_append (carpeta, "/gmateso/images/dado32.png"); texto1 = g_string_free (carpeta, FALSE); imagen_dado = gtk_image_new_from_file (texto1); gtk_container_add (GTK_CONTAINER (boton11), imagen_dado); gtk_widget_set_size_request(GTK_WIDGET (boton11), -1, 22); globo_b11 = gtk_tooltips_new (); gtk_tooltips_set_tip (globo_b11, boton11, _("Fracción al azar"), NULL); boton13 = gtk_button_new_from_stock("gtk-clear"); gtk_box_pack_start (GTK_BOX (hbox11), boton13, FALSE, FALSE, 5); boton12 = gtk_button_new_from_stock ("gtk-ok"); /*gtk_button_new_with_label ("OK");*/ gtk_box_pack_start (GTK_BOX (hbox11), boton12, FALSE, FALSE, 5); boton14= gtk_button_new (); gtk_box_pack_start (GTK_BOX (hbox11), boton14, FALSE, FALSE, 5); gtk_widget_set_sensitive(boton14, FALSE); labelb14=gtk_label_new(""); gtk_container_add (GTK_CONTAINER (boton14), labelb14); gtk_label_set_markup (GTK_LABEL(labelb14), _("Obtener fracciones equivalentes")); boton15= gtk_button_new (); gtk_box_pack_start (GTK_BOX (hbox11), boton15, FALSE, FALSE, 5); gtk_widget_set_sensitive(boton15, FALSE); labelb15=gtk_label_new(""); gtk_container_add (GTK_CONTAINER (boton15), labelb15); gtk_label_set_markup (GTK_LABEL(labelb15), _("Simplificar")); scrolled_window11 = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (vbox1), scrolled_window11, TRUE, TRUE, 1); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window11), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); tags = gtk_text_tag_table_new(); bufer10 = gtk_text_buffer_new(tags); view10 = GTK_TEXT_VIEW(gtk_text_view_new_with_buffer(bufer10)); gtk_text_view_set_left_margin (view10, 5); gtk_container_add (GTK_CONTAINER (scrolled_window11), GTK_WIDGET(view10)); g_object_set(view10, "wrap-mode", GTK_WRAP_WORD, NULL); fuente_12 = gtk_text_buffer_create_tag(bufer10, "fuente_12", "size", 12 * PANGO_SCALE, NULL); negrita10 = gtk_text_buffer_create_tag(bufer10, "negrita", "weight", 500, NULL); gtk_text_buffer_set_text(bufer10, "", -1); gtk_text_buffer_get_selection_bounds (bufer10, &start10, &end10); gtk_text_buffer_insert_with_tags_by_name (bufer10, &start10, " \n", -1, "fuente_12", NULL); scrolled_window11 = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (vbox1), scrolled_window11, TRUE, TRUE, 1); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window11), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); canvas12 = gnome_canvas_new_aa(); gtk_container_add(GTK_CONTAINER(scrolled_window11), canvas12); root12 = gnome_canvas_root(GNOME_CANVAS(canvas12)); gnome_canvas_set_center_scroll_region (GNOME_CANVAS(canvas12), FALSE); gnome_canvas_set_scroll_region (GNOME_CANVAS(canvas12),0.0,0.0,650.0,800.0); gtk_widget_set_size_request(GTK_WIDGET (scrolled_window11), -1, 250); gnome_canvas_item_new(root12, gnome_canvas_rect_get_type(), "x1", 0.0, /*cordenas de la */ "y1", 0.0, /*esquina sup-izq */ "x2", 700.0, /*ancho */ /*coord de la esquina inf-der*/ "y2", 380.0, /*alto */ "fill_color_rgba", 0xf3f9f3ff, /*color de relleno*/ "outline_color_rgba", 0x000000ff, /*color del borde */ "width_units", 1.0, /*tamaño del borde*/ NULL); gtk_widget_show_all (vbox1); /************* página 2 *************************************************************************************/ tabla = gtk_table_new (2,7,FALSE); gtk_box_pack_start (GTK_BOX (vbox2), tabla, FALSE, FALSE, 1); boton1 = gtk_button_new(); labelb1 = gtk_label_new (NULL); gtk_container_add (GTK_CONTAINER (boton1), labelb1); gtk_label_set_markup (GTK_LABEL(labelb1), _("+")); gtk_widget_set_size_request(GTK_WIDGET (boton1), -1, 30); boton2 = gtk_button_new(); labelb2 = gtk_label_new (NULL); gtk_container_add (GTK_CONTAINER (boton2), labelb2); gtk_label_set_markup (GTK_LABEL(labelb2), _("")); gtk_widget_set_size_request(GTK_WIDGET (boton2), -1, 30); boton3 = gtk_button_new(); labelb3 = gtk_label_new (NULL); gtk_container_add (GTK_CONTAINER (boton3), labelb3); gtk_label_set_markup (GTK_LABEL(labelb3), _("")); gtk_widget_set_size_request(GTK_WIDGET (boton3), -1, 30); boton4 = gtk_button_new(); labelb4 = gtk_label_new (NULL); gtk_container_add (GTK_CONTAINER (boton4), labelb4); gtk_label_set_markup (GTK_LABEL(labelb4), _("")); gtk_widget_set_size_request(GTK_WIDGET (boton4), -1, 30); boton5 = gtk_button_new(); labelb5 = gtk_label_new (NULL); gtk_container_add (GTK_CONTAINER (boton5), labelb5); gtk_label_set_markup (GTK_LABEL(labelb5), _("")); gtk_widget_set_size_request(GTK_WIDGET (boton5), -1, 30); globo_b5 = gtk_tooltips_new (); gtk_tooltips_set_tip (globo_b5, boton5, _("Comprueba si las fracciones son equivalentes"), NULL); boton6 = gtk_button_new (); labelb6 = gtk_label_new (NULL); gtk_container_add (GTK_CONTAINER (boton6), labelb6); gtk_label_set_markup (GTK_LABEL(labelb6), _("")); gtk_widget_set_size_request(GTK_WIDGET (boton6), -1, 30); globo_b6 = gtk_tooltips_new (); gtk_tooltips_set_tip (globo_b6, boton6, _("Compara las fracciones"), NULL); boton7 = gtk_button_new_from_stock ("gtk-clear"); gtk_widget_set_size_request(GTK_WIDGET (boton7), -1, 20); boton9 = gtk_button_new(); GString *carpeta2; gchar *texto2; carpeta2=g_string_new(NULL); g_string_append (carpeta2, g_get_home_dir ()); g_string_append (carpeta2, "/gmateso/images/dado48.png"); texto2 = g_string_free (carpeta2, FALSE); dado48 = gtk_image_new_from_file (texto2); gtk_container_add (GTK_CONTAINER (boton9), dado48); gtk_widget_set_size_request(GTK_WIDGET (boton9), -1, 40); globo_b9 = gtk_tooltips_new (); gtk_tooltips_set_tip (globo_b9, boton9, _("Fracciones al azar"), NULL); boton8 = gtk_button_new(); labelb8 = gtk_label_new (NULL); gtk_container_add (GTK_CONTAINER (boton8), labelb8); gtk_label_set_markup (GTK_LABEL(labelb8), _(" = ")); gtk_widget_set_size_request(GTK_WIDGET (boton8), -1, 30); boton10 = gtk_button_new(); labelb10 = gtk_label_new (NULL); gtk_label_set_justify (GTK_LABEL(labelb10), GTK_JUSTIFY_CENTER); gtk_container_add (GTK_CONTAINER (boton10), labelb10); gtk_label_set_markup (GTK_LABEL(labelb10), _(" Reducir \n a común \ndenominador")); canvas20 = gnome_canvas_new_aa(); root20 = gnome_canvas_root(GNOME_CANVAS(canvas20)); gnome_canvas_set_center_scroll_region (GNOME_CANVAS(canvas20), FALSE); gtk_widget_set_size_request(GTK_WIDGET (canvas20), 250, 92); gnome_canvas_item_new(root20, gnome_canvas_rect_get_type(), "x1", 5.0, /*cordenas de la */ "y1", 3.0, /*esquina sup-izq */ "x2", 245.0, /*ancho */ /*coord de la esquina inf-der*/ "y2", 89.0, /*alto */ "fill_color_rgba", 0xf3f9f3ff, /*color de relleno*/ "outline_color_rgba", 0x000000ff, /*color del borde */ "width_units", 2.0, /*tamaño del borde*/ NULL); entry1 = gtk_entry_new_with_max_length (4); gtk_entry_set_width_chars(GTK_ENTRY(entry1), 5); entry2 = gtk_entry_new_with_max_length (4); gtk_entry_set_width_chars(GTK_ENTRY(entry2), 5); entry3 = gtk_entry_new_with_max_length (4); gtk_entry_set_width_chars(GTK_ENTRY(entry3), 5); entry4 = gtk_entry_new_with_max_length (4); gtk_entry_set_width_chars(GTK_ENTRY(entry4), 5); /* gtk_entry_set_alignment no es aceptado en guadalinex-edu NECESITA gnome 2.6 o superior */ gtk_entry_set_alignment (GTK_ENTRY(entry1),0.5); gtk_entry_set_alignment (GTK_ENTRY(entry2),0.5); gtk_entry_set_alignment (GTK_ENTRY(entry3),0.5); gtk_entry_set_alignment (GTK_ENTRY(entry4),0.5); gnome_canvas_item_new(root20, gnome_canvas_widget_get_type(), "widget", entry1, "x", 25.0, "y",10.0, "width", 60.0, "height",25.0, NULL); gnome_canvas_item_new(root20, gnome_canvas_widget_get_type(), "widget", entry2, "x", 160.0, "y",10.0, "width", 60.0, "height",25.0, NULL); gnome_canvas_item_new(root20, gnome_canvas_widget_get_type(), "widget", entry3, "x", 25.0, "y",50.0, "width", 60.0, "height",25.0, NULL); gnome_canvas_item_new(root20, gnome_canvas_widget_get_type(), "widget", entry4, "x", 160.0, "y",50.0, "width", 60.0, "height",25.0, NULL); points = gnome_canvas_points_new(2); /* 2 puntos */ points->coords[0] = 15; points->coords[1] = 43; points->coords[2] = 95; points->coords[3] = 43; gnome_canvas_item_new(root20, gnome_canvas_line_get_type(), "points", points, "fill_color", "black", "width_units", 4.0, NULL); gnome_canvas_points_unref(points); points = gnome_canvas_points_new(2); /* 2 puntos */ points->coords[0] = 150; points->coords[1] = 43; points->coords[2] = 230; points->coords[3] = 43; gnome_canvas_item_new(root20, gnome_canvas_line_get_type(), "points", points, "fill_color", "black", "width_units", 4.0, NULL); gnome_canvas_points_unref(points); gtk_table_attach (GTK_TABLE(tabla), boton1, 2,3,0,1,GTK_FILL,GTK_FILL,2,2); gtk_table_attach (GTK_TABLE(tabla), boton2, 3,4,0,1,GTK_FILL,GTK_FILL,2,2); gtk_table_attach (GTK_TABLE(tabla), boton3, 4,5,0,1,GTK_FILL,GTK_FILL,2,2); gtk_table_attach (GTK_TABLE(tabla), boton4, 5,6,0,1,GTK_FILL,GTK_FILL,2,2); gtk_table_attach (GTK_TABLE(tabla), boton5, 2,3,1,2,GTK_FILL,GTK_FILL,2,2); gtk_table_attach (GTK_TABLE(tabla), boton6, 3,4,1,2,GTK_FILL,GTK_FILL,2,2); gtk_table_attach (GTK_TABLE(tabla), boton7, 0,1,1,2,GTK_FILL,GTK_FILL,2,2); gtk_table_attach (GTK_TABLE(tabla), boton8, 4,6,1,2,GTK_FILL,GTK_FILL,5,2); gtk_table_attach (GTK_TABLE(tabla), boton9, 0,1,0,1,GTK_FILL,GTK_FILL,2,2); gtk_table_attach (GTK_TABLE(tabla), boton10, 6,7,0,2,GTK_FILL,GTK_FILL,2,2); gtk_table_attach (GTK_TABLE(tabla), canvas20, 1,2,0,2,GTK_FILL,GTK_FILL,10,2); scrolled_window21 = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (vbox2), scrolled_window21, TRUE, TRUE, 1); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window21), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); tags = gtk_text_tag_table_new(); bufer21 = gtk_text_buffer_new(tags); negrita = gtk_text_buffer_create_tag(bufer21, "negrita", "weight", 500, NULL); fuente_12 = gtk_text_buffer_create_tag(bufer21, "fuente_12", "size", 12 * PANGO_SCALE, NULL); color_azul = gtk_text_buffer_create_tag(bufer21, "azul", "foreground", "#0000ff", NULL); view21 = GTK_TEXT_VIEW(gtk_text_view_new_with_buffer(bufer21)); gtk_container_add (GTK_CONTAINER (scrolled_window21), GTK_WIDGET(view21)); gtk_widget_set_size_request(GTK_WIDGET (scrolled_window21), -1, 150); gtk_text_view_set_left_margin (view21, 5); texto_inicio(); scrolled_window22 = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (vbox2), scrolled_window22, TRUE, TRUE, 1); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window22), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); canvas21 = gnome_canvas_new_aa(); gtk_container_add(GTK_CONTAINER(scrolled_window22), canvas21); root21 = gnome_canvas_root(GNOME_CANVAS(canvas21)); gnome_canvas_set_center_scroll_region (GNOME_CANVAS(canvas21), FALSE); gnome_canvas_set_scroll_region (GNOME_CANVAS(canvas21),0.0,0.0,1100.0,400.0); gtk_widget_set_size_request(GTK_WIDGET (scrolled_window22), -1, 220); borra_canvas(root21); gtk_widget_show_all (vbox2); /************* página 3 *************************************************************************************/ hbox0 = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox3), hbox0, FALSE, FALSE, 1); labelc1 = gtk_label_new (NULL); gtk_box_pack_start (GTK_BOX (hbox0), labelc1, FALSE, FALSE, 1); gtk_widget_set_size_request(GTK_WIDGET (labelc1), 170, 30); gtk_label_set_markup (GTK_LABEL(labelc1), _(" Introducir expresión:")); entry31 = gtk_entry_new_with_max_length (30); gtk_box_pack_start (GTK_BOX (hbox0), entry31, FALSE, FALSE, 1); gtk_widget_set_size_request(GTK_WIDGET (entry31), 210, -1); gtk_widget_grab_focus (entry31); boton33 = gtk_button_new_from_stock ("gtk-ok"); /*gtk_button_new_with_label ("OK");*/ gtk_box_pack_start (GTK_BOX (hbox0), boton33, FALSE, FALSE, 5); boton31 = gtk_button_new_from_stock("gtk-clear"); gtk_box_pack_start (GTK_BOX (hbox0), boton31, FALSE, FALSE, 5); hbox1 = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox3), hbox1, FALSE, FALSE, 1); canvas30 = gnome_canvas_new_aa(); gtk_container_add(GTK_CONTAINER(hbox1), canvas30); root30 = gnome_canvas_root(GNOME_CANVAS(canvas30)); gnome_canvas_set_center_scroll_region (GNOME_CANVAS(canvas30), FALSE); gnome_canvas_item_new(root30, gnome_canvas_rect_get_type(), "x1", 0.0, /*cordenas de la */ "y1", 0.0, /*esquina sup-izq */ "x2", 600.0, /*ancho */ /*coord de la esquina inf-der*/ "y2", 57.0, /*alto */ "fill_color_rgba", 0xfff9f3ff, /*color de relleno*/ "outline_color_rgba", 0x000000ff, /*color del borde */ "width_units", 1.0, /*tamaño del borde*/ NULL); tabla30 = gtk_table_new (2,1,TRUE); gtk_box_pack_start (GTK_BOX (hbox1), tabla30, FALSE, FALSE, 6); boton32 = gtk_button_new_with_label ("Calcular"); gtk_widget_set_sensitive (boton32, FALSE); gtk_table_attach (GTK_TABLE(tabla30), boton32, 0,1,1,2,GTK_FILL,GTK_FILL,2,2); scrolled_window32 = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (vbox3), scrolled_window32, TRUE, TRUE, 1); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window32), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); tags = gtk_text_tag_table_new(); bufer30 = gtk_text_buffer_new(tags); view30 = GTK_TEXT_VIEW(gtk_text_view_new_with_buffer(bufer30)); gtk_text_view_set_left_margin (view30, 5); gtk_container_add (GTK_CONTAINER (scrolled_window32), GTK_WIDGET(view30)); g_object_set(view30, "wrap-mode", GTK_WRAP_WORD, NULL); negrita30 = gtk_text_buffer_create_tag(bufer30, "negrita", "weight", 500, NULL); color_rojo = gtk_text_buffer_create_tag(bufer30, "color_rojo", "foreground", "#ff0000", NULL); color_azul = gtk_text_buffer_create_tag(bufer30, "color_azul", "foreground", "#0000ff", NULL); fuente_11 = gtk_text_buffer_create_tag(bufer30, "fuente_11", "size", 11 * PANGO_SCALE, NULL); fuente_12 = gtk_text_buffer_create_tag(bufer30, "fuente_12", "size", 12 * PANGO_SCALE, NULL); fuente_13 = gtk_text_buffer_create_tag(bufer30, "fuente_13", "size", 13 * PANGO_SCALE, NULL); superindice = gtk_text_buffer_create_tag(bufer30,"superindice", "rise", 4*PANGO_SCALE, NULL); subrayado = gtk_text_buffer_create_tag(bufer30,"subrayado", "underline", PANGO_UNDERLINE_SINGLE, NULL); mono1430 = gtk_text_buffer_create_tag(bufer30, "mono1430", "font", "monospace 14", NULL); gtk_text_buffer_set_text(bufer30, "", -1); gtk_text_buffer_get_selection_bounds (bufer30, &start30, &end30); gtk_text_buffer_insert_with_tags_by_name (bufer30, &start30, _(" Para introducir una expresión (operación combinada con fracciones) "), -1, "fuente_12", NULL); gtk_text_buffer_insert_with_tags_by_name (bufer30, &start30, _(" \n sólo se pueden teclear"), -1, "negrita","color_rojo", "fuente_13", NULL); gtk_text_buffer_insert_with_tags_by_name (bufer30, &start30, _(" los siguientes caracteres:\n"), -1, "fuente_12", NULL); gtk_text_buffer_insert_with_tags_by_name (bufer30, &start30, _(" dígitos: "), -1, "fuente_12","color_azul", NULL); gtk_text_buffer_insert_with_tags_by_name (bufer30, &start30, _("0 1 2 3 4 5 6 7 8 9 "),-1,"fuente_13","mono1430",NULL); gtk_text_buffer_insert_with_tags_by_name (bufer30, &start30, _("\n sígnos de operación: "),-1,"fuente_12","color_azul", NULL); gtk_text_buffer_insert_with_tags_by_name (bufer30, &start30, _("+ , - , * y :"), -1, "fuente_13", "mono1430", NULL); gtk_text_buffer_insert_with_tags_by_name (bufer30, &start30, _("\n barra de fracción: "),-1,"fuente_12","color_azul", NULL); gtk_text_buffer_insert_with_tags_by_name (bufer30, &start30, _(" / "),-1,"fuente_13","mono1430",NULL); gtk_text_buffer_insert_with_tags_by_name (bufer30, &start30, _(" y paréntesis: "),-1,"fuente_12","color_azul", NULL); gtk_text_buffer_insert_with_tags_by_name (bufer30, &start30, _(" ( y )"),-1,"fuente_13","mono1430",NULL); hseparator33 = gtk_hseparator_new (); gtk_box_pack_start (GTK_BOX (vbox3), hseparator33, FALSE, FALSE, 1); scrolled_window33 = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (vbox3), scrolled_window33, TRUE, TRUE, 1); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window33), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); canvas32 = gnome_canvas_new_aa(); gtk_container_add(GTK_CONTAINER(scrolled_window33), canvas32); root32 = gnome_canvas_root(GNOME_CANVAS(canvas32)); gnome_canvas_set_center_scroll_region (GNOME_CANVAS(canvas32), FALSE); gnome_canvas_set_scroll_region (GNOME_CANVAS(canvas32),0.0,0.0,650.0,800.0); gtk_widget_set_size_request(GTK_WIDGET (scrolled_window33), -1, 250); gnome_canvas_item_new(root32, gnome_canvas_rect_get_type(), "x1", 0.0, /*cordenas de la */ "y1", 0.0, /*esquina sup-izq */ "x2", 700.0, /*ancho */ /*coord de la esquina inf-der*/ "y2", 380.0, /*alto */ "fill_color_rgba", 0xf3f9f3ff, /*color de relleno*/ "outline_color_rgba", 0x000000ff, /*color del borde */ "width_units", 1.0, /*tamaño del borde*/ NULL); gtk_widget_show_all (vbox3); /************* FIN de página 3 ******************************************************************************/ return; } void conecta_senales () { g_signal_connect ((gpointer) spinbutton1, "value-changed", G_CALLBACK (callback0), NULL); /* señales de ficha1 ***************************************/ gtk_signal_connect (GTK_OBJECT (boton13), "clicked", GTK_SIGNAL_FUNC (callback13), NULL); gtk_signal_connect (GTK_OBJECT (boton12), "clicked", GTK_SIGNAL_FUNC (callback12), NULL); gtk_signal_connect (GTK_OBJECT (boton11), "clicked", GTK_SIGNAL_FUNC (callback11), NULL); gtk_signal_connect (GTK_OBJECT (boton14), "clicked", GTK_SIGNAL_FUNC (callback14), NULL); gtk_signal_connect (GTK_OBJECT (boton15), "clicked", GTK_SIGNAL_FUNC (callback15), NULL); gtk_signal_connect (GTK_OBJECT (entry11), "insert_text", GTK_SIGNAL_FUNC (insert_text_handler1), NULL); gtk_signal_connect (GTK_OBJECT (entry12), "insert_text", GTK_SIGNAL_FUNC (insert_text_handler1), NULL); g_signal_connect ((gpointer) entry11, "key_press_event", G_CALLBACK (on_entry11_key_press_event), NULL); g_signal_connect ((gpointer) entry12, "key_press_event", G_CALLBACK (on_entry12_key_press_event), NULL); /* señales de ficha2 ***************************************/ gtk_signal_connect (GTK_OBJECT (boton1), "clicked", GTK_SIGNAL_FUNC (callback1), NULL); gtk_signal_connect (GTK_OBJECT (boton2), "clicked", GTK_SIGNAL_FUNC (callback2), NULL); gtk_signal_connect (GTK_OBJECT (boton3), "clicked", GTK_SIGNAL_FUNC (callback3), NULL); gtk_signal_connect (GTK_OBJECT (boton4), "clicked", GTK_SIGNAL_FUNC (callback4), NULL); gtk_signal_connect (GTK_OBJECT (boton5), "clicked", GTK_SIGNAL_FUNC (callback5), NULL); gtk_signal_connect (GTK_OBJECT (boton6), "clicked", GTK_SIGNAL_FUNC (callback6), NULL); gtk_signal_connect (GTK_OBJECT (boton7), "clicked", GTK_SIGNAL_FUNC (callback7), NULL); gtk_signal_connect (GTK_OBJECT (boton8), "clicked", GTK_SIGNAL_FUNC (callback8), NULL); gtk_signal_connect (GTK_OBJECT (boton9), "clicked", GTK_SIGNAL_FUNC (callback9), NULL); gtk_signal_connect (GTK_OBJECT (boton10), "clicked", GTK_SIGNAL_FUNC (callback10), NULL); gtk_signal_connect (GTK_OBJECT (entry1), "insert_text", GTK_SIGNAL_FUNC (insert_text_handler2), NULL); gtk_signal_connect (GTK_OBJECT (entry2), "insert_text", GTK_SIGNAL_FUNC (insert_text_handler2), NULL); gtk_signal_connect (GTK_OBJECT (entry3), "insert_text", GTK_SIGNAL_FUNC (insert_text_handler2), NULL); gtk_signal_connect (GTK_OBJECT (entry4), "insert_text", GTK_SIGNAL_FUNC (insert_text_handler2), NULL); g_signal_connect ((gpointer) entry1, "key_press_event", G_CALLBACK (on_entry1_key_press_event), NULL); g_signal_connect ((gpointer) entry2, "key_press_event", G_CALLBACK (on_entry2_key_press_event), NULL); g_signal_connect ((gpointer) entry3, "key_press_event", G_CALLBACK (on_entry3_key_press_event), NULL); /* señales de ficha3 ***************************************/ gtk_signal_connect (GTK_OBJECT (boton31), "clicked", GTK_SIGNAL_FUNC (callback31), NULL); gtk_signal_connect (GTK_OBJECT (boton32), "clicked", GTK_SIGNAL_FUNC (callback32), NULL); gtk_signal_connect (GTK_OBJECT (boton33), "clicked", GTK_SIGNAL_FUNC (callback33), NULL); gtk_signal_connect (GTK_OBJECT (entry31), "changed", GTK_SIGNAL_FUNC (callback_31), NULL); gtk_signal_connect (GTK_OBJECT (entry31), "insert_text", GTK_SIGNAL_FUNC (insert_text_handler), NULL); g_signal_connect ((gpointer) entry31, "key_press_event", G_CALLBACK (on_entry31_key_press_event), NULL); } void callback0 (GtkWidget *widget, gchar data)/*GtkSpinButton *spinbutton, gpointer user_data*/ { nivel=gtk_spin_button_get_value (GTK_SPIN_BUTTON(spinbutton1)); gtk_widget_show(notebook); switch (nivel) { case 0: gtk_notebook_set_page (GTK_NOTEBOOK(notebook), 0); gtk_label_set_markup (GTK_LABEL(label2), _(" Selecciona un nivel ")); break; case 1: gtk_notebook_set_page (GTK_NOTEBOOK(notebook), 1); gtk_label_set_markup (GTK_LABEL(label2), _(" Introducción ")); gtk_widget_grab_focus (entry11); break; case 2: gtk_notebook_set_page (GTK_NOTEBOOK(notebook), 2); gtk_label_set_markup (GTK_LABEL(label2), _(" Operaciones sencillas ")); gtk_widget_grab_focus (entry1); break; case 3: gtk_notebook_set_page (GTK_NOTEBOOK(notebook), 3); gtk_label_set_markup (GTK_LABEL(label2), _(" Operaciones combinadas ")); gtk_widget_grab_focus (entry31); break; } }