From ce35126c907f5ef33b80346d2ab5d6550b3abfaa Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Sun, 5 Oct 2003 03:04:59 +0000 Subject: [PATCH] Se agrega documentacion. --- callbacks.cpp | 83 ++++++++++++++++++++++++++++----------------------- callbacks.h | 70 +++++++++++++++++++++++++++++++++++++++++++ tp5.cpp | 8 ++--- 3 files changed, 118 insertions(+), 43 deletions(-) diff --git a/callbacks.cpp b/callbacks.cpp index b0524ca..e07c572 100644 --- a/callbacks.cpp +++ b/callbacks.cpp @@ -70,56 +70,65 @@ void on_button_agregar_clicked(GtkButton* button, gpointer user_data) { #ifdef DEBUG std::cerr << "Color: " << win->get_color() << std::endl; #endif - Figura* figura = new Circulo(1, 1, Punto(50, 50), "Lala", 50); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->radiobutton_linea))) { + Figura* figura; + // Si se agrega una línea. + if (gtk_toggle_button_get_active( + GTK_TOGGLE_BUTTON(win->radiobutton_linea))) { + // Creo la nueva línea con los parámetros ingresados por el usuario. figura = new Linea( - win->get_color(), + win->get_color(), // Color gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON(win->spinbutton_grosor)), - Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x), - GTK_SPIN_BUTTON(win->spinbutton_centro_y)), - gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), - Punto(GTK_SPIN_BUTTON(win->spinbutton_inicio_x), - GTK_SPIN_BUTTON(win->spinbutton_inicio_y)), - Punto(GTK_SPIN_BUTTON(win->spinbutton_fin_x), - GTK_SPIN_BUTTON(win->spinbutton_fin_y)) + GTK_SPIN_BUTTON(win->spinbutton_grosor)), // Grosor + Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x), // Centro X + GTK_SPIN_BUTTON(win->spinbutton_centro_y)), // Centro Y + gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), // Nombre + Punto(GTK_SPIN_BUTTON(win->spinbutton_inicio_x), // Inicio X + GTK_SPIN_BUTTON(win->spinbutton_inicio_y)), // Inicio Y + Punto(GTK_SPIN_BUTTON(win->spinbutton_fin_x), // Fin X + GTK_SPIN_BUTTON(win->spinbutton_fin_y)) // Fin Y ); + // Si se agrega un cuadrado. } else if (gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(win->radiobutton_cuadrado))) { + // Creo la figura con los párametros ingresados por el usuario. figura = new Cuadrado( - win->get_color(), + win->get_color(), // Color + gtk_spin_button_get_value_as_int( + GTK_SPIN_BUTTON(win->spinbutton_grosor)), // Grosor + Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x), // Centro X + GTK_SPIN_BUTTON(win->spinbutton_centro_y)), // Centro Y + gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), // Nombre gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON(win->spinbutton_grosor)), - Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x), - GTK_SPIN_BUTTON(win->spinbutton_centro_y)), - gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), - gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON(win->spinbutton_alto)) + GTK_SPIN_BUTTON(win->spinbutton_alto)) // Lado. ); + // Si se agrega un rectángulo. } else if (gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(win->radiobutton_rectangulo))) { + // Creo la figura con los párametros ingresados por el usuario. figura = new Rectangulo( - win->get_color(), - gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON(win->spinbutton_grosor)), - Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x), - GTK_SPIN_BUTTON(win->spinbutton_centro_y)), - gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), + win->get_color(), // Color + gtk_spin_button_get_value_as_int( + GTK_SPIN_BUTTON(win->spinbutton_grosor)), // Grosor + Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x), // Centro X + GTK_SPIN_BUTTON(win->spinbutton_centro_y)), // Centro Y + gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), // Nombre gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON(win->spinbutton_alto)), + GTK_SPIN_BUTTON(win->spinbutton_alto)), // Alto. gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON(win->spinbutton_ancho)) + GTK_SPIN_BUTTON(win->spinbutton_ancho)) // Ancho. ); + // Si no, se agrega un círculo. } else { + // Creo la figura con los párametros ingresados por el usuario. figura = new Circulo( - win->get_color(), - gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON(win->spinbutton_grosor)), - Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x), - GTK_SPIN_BUTTON(win->spinbutton_centro_y)), - gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), + win->get_color(), // Color + gtk_spin_button_get_value_as_int( + GTK_SPIN_BUTTON(win->spinbutton_grosor)), // Grosor + Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x), // Centro X + GTK_SPIN_BUTTON(win->spinbutton_centro_y)), // Centro Y + gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), // Nombre gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON(win->spinbutton_radio)) + GTK_SPIN_BUTTON(win->spinbutton_radio)) // Radio ); } // Agrego la figura nueva al dibujo. @@ -144,7 +153,7 @@ void on_radiobutton_linea_toggled(GtkToggleButton* togglebutton, #ifdef DEBUG std::cerr << "En linea event." << std::endl; #endif - // TODO + // Activo y desactivos los campos necesarios. TP5Window* win = static_cast(user_data); gtk_widget_set_sensitive(win->spinbutton_inicio_x, true); gtk_widget_set_sensitive(win->spinbutton_inicio_y, true); @@ -160,7 +169,7 @@ void on_radiobutton_cuadrado_toggled(GtkToggleButton* togglebutton, #ifdef DEBUG std::cerr << "En cuadrado event." << std::endl; #endif - // TODO + // Activo y desactivos los campos necesarios. TP5Window* win = static_cast(user_data); gtk_widget_set_sensitive(win->spinbutton_inicio_x, false); gtk_widget_set_sensitive(win->spinbutton_inicio_y, false); @@ -176,7 +185,7 @@ void on_radiobutton_rectangulo_toggled(GtkToggleButton* togglebutton, #ifdef DEBUG std::cerr << "En rectangulo event." << std::endl; #endif - // TODO + // Activo y desactivos los campos necesarios. TP5Window* win = static_cast(user_data); gtk_widget_set_sensitive(win->spinbutton_inicio_x, false); gtk_widget_set_sensitive(win->spinbutton_inicio_y, false); @@ -192,7 +201,7 @@ void on_radiobutton_circulo_toggled(GtkToggleButton* togglebutton, #ifdef DEBUG std::cerr << "En circulo event." << std::endl; #endif - // TODO + // Activo y desactivos los campos necesarios. TP5Window* win = static_cast(user_data); gtk_widget_set_sensitive(win->spinbutton_inicio_x, false); gtk_widget_set_sensitive(win->spinbutton_inicio_y, false); diff --git a/callbacks.h b/callbacks.h index e7cb716..e2d27c9 100644 --- a/callbacks.h +++ b/callbacks.h @@ -16,28 +16,98 @@ #include +/** + * Función llamada cuando hay que redibujar una porción del área de dibujo. + * + * \param widget Área de dibujo que recibió el evento. + * \param event Evento (tiene información del área que necesita ser repintada). + * \param user_data Dibujo con las figuras a redibujar. + */ gboolean on_drawingarea_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer user_data); +/** + * Función llamada cuando se presiona el botón de Limpiar. + * + * \param button Botón presionado. + * \param user_data Dibujo con las figuras a borrar. + */ void on_button_borrar_clicked(GtkButton *button, gpointer user_data); +/** + * Función llamada cuando se presiona el botón de Actualizar. + * + * \param button Botón presionado. + * \param user_data Área de dibujo a actualizar. + */ void on_button_graficar_clicked(GtkButton *button, gpointer user_data); +/** + * Función llamada cuando se presiona el botón de Salir. + * + * \param button Botón presionado. + * \param user_data No utilizado. + */ void on_button_salir_clicked(GtkButton *button, gpointer user_data); +/** + * Función llamada cuando se presiona el botón de Agregar. + * + * \param button Botón presionado. + * \param user_data TP5Window con todos los widget necesarios para tomar la + * entrada del usuario y crear la nueva figura. + */ void on_button_agregar_clicked(GtkButton *button, gpointer user_data); +/** + * Función llamada cuando el manejador de ventanas manda el evento Delete. + * Típicamente esto sucede cuando se presiona la X en la decoración de la + * ventana). + * + * \param widget Ventana que recibió el evento. + * \param event Evento. + * \param user_data No utilizado. + */ gboolean on_window_delete_event(GtkWidget *widget, GdkEvent *event, gpointer user_data); +/** + * Función llamada cuando se presiona el botón de selección Línea. + * + * \param button Botón presionado. + * \param user_data TP5Window con los widgets que hay que activar y desactivar + * para que el usuario sólo pueda ingresar los datos que tengan sentido. + */ void on_radiobutton_linea_toggled(GtkToggleButton *togglebutton, gpointer user_data); +/** + * Función llamada cuando se presiona el botón de selección Cuadrado. + * + * \param button Botón presionado. + * \param user_data TP5Window con los widgets que hay que activar y desactivar + * para que el usuario sólo pueda ingresar los datos que tengan sentido. + */ void on_radiobutton_cuadrado_toggled(GtkToggleButton *togglebutton, gpointer user_data); +/** + * Función llamada cuando se presiona el botón de selección Rectángulo. + * + * \param button Botón presionado. + * \param user_data TP5Window con los widgets que hay que activar y desactivar + * para que el usuario sólo pueda ingresar los datos que tengan sentido. + */ void on_radiobutton_rectangulo_toggled(GtkToggleButton *togglebutton, gpointer user_data); +/** + * Función llamada cuando se presiona el botón de selección Círculo. + * + * \param button Botón presionado. + * \param user_data TP5Window con los widgets que hay que activar y desactivar + * para que el usuario sólo pueda ingresar los datos que tengan sentido. + */ void on_radiobutton_circulo_toggled(GtkToggleButton *togglebutton, gpointer user_data); + diff --git a/tp5.cpp b/tp5.cpp index 43f959e..5b7846e 100644 --- a/tp5.cpp +++ b/tp5.cpp @@ -21,6 +21,7 @@ #include "circulo.h" #include "tp5window.h" #include +#include /** * Programa principal del \ref main "Trabajo Práctico". @@ -28,21 +29,16 @@ * \return EXIT_SUCCESS si terminó correctamente. */ int main(int argc, char* argv[]) { - // Seteo opciones de idioma (para que se traduzcan los mensajes al idioma // usuado por el usuario) a través de las variables de entorno LC_xxx. gtk_set_locale(); - // Pasa los parámetros de línea de comandos a GTK para poder modificar // opciones específicas de esta librería. gtk_init(&argc, &argv); - // Creo mi ventana (con todos sus componentes, incluido el dibujo). TP5Window window; - // Entro en el loop de eventos. - gtk_main (); - + gtk_main(); // Sale con código de éxito. return EXIT_SUCCESS; } -- 2.43.0