// Este es el archivo VentanaPrincipal.h #ifndef VENTANAPRINCIPAL_H #define VENTANAPRINCIPAL_H // Includes... #include "General.h" #include "../FORMS/forms.h" #include "FORMS/form_V_principal.h" #include "Ventana.h" // De esta hereda #include "Aplicacion.h" // Agregada (?) #include "AreaGrafica.h" // Agregada #include "StackConfig.h" // Necesaria para guardar configs. // Declaracion... class C_VentanaPrincipal:public C_Ventana { protected: // *** Enums locales. *** // // Los Identificadores de Callbacks enum { CB_MENU_ARCHIVO=1,CB_MENU_PROCESAR,CB_MENU_DESPLIEGUE,CB_MENU_AYUDA, CB_MENU_RECONSTRUIR,CB_BOTON_ARRIBA,CB_BOTON_ABAJO,CB_BOTON_IZQ, CB_BOTON_DER,CB_BOTON_ZOOM}; // Las selecciones del menu enum { SEL_MENU_CARGAR=1,SEL_MENU_GUARDAR}; // Menu de Archivo enum { SEL_MENU_SELEC_PROCESO=1}; // Menu de Proceso enum { SEL_MENU_CONFIG_DESPLIEGUE=1}; // Menu de Despliegue enum { SEL_MENU_AYUDA=1,SEL_MENU_ACERCA_DE}; // Menu de Ayuda // Colores del cursor enum { COLOR_MARCO,COLOR_CURSOR }; // *** Atributos. *** // C_Aplicacion *Cliente; // Esta ventana corresponde a la clase C_Aplicacion. C_AreaGrafica Pantalla; // El area grafica -> Agregacion. Status ApStatus; // Identifica el status de la aplicacion. Bool Redibuja; // SI-> Redibuja el stack. Bool EsPrimeraVez; // TRUE-> Muestra introduccion. int CursorPos; // Posicion del cursor. int ImagenInicial; // La imagen inicial en el despliegue. C_Color ColorCursor; C_Color ColorMarco; C_Color ColorFondo; // *** Metodos *** // // Heredada void Inicializa(); // Inicializaciones diversas. // x-forms x-clusively ! FD_ventana_Principal *forma; // Imprescindible! void CanvasHandler(); // Manejador del area grafica. // Callbacks... static void Despacha_Callback(FL_OBJECT *ob,long data); // Despachador... void OnMenuDespliegue(); void OnMenuProcesar(); void OnMenuArchivo(); void OnMenuAyuda(); void OnBotonZoom(); // Las funciones siguientes no son parte del modelo especificamente sino de // x-forms! static int RecibeEvento(FL_OBJECT *ob, Window win,int w,int h, XEvent *xev, void *ud); FD_ventana_Principal *create_form_ventana(void); // Otras... void PonCursor(int col); // Cambia recuadro de imagen actual void MueveCursor(int dir); // Mueve el cursor. void MuestraPosicionCursor(); // Muestra la posicion del cursor en texto. void RefrescaAreaGrafica(); // Refresca el area grafica. void DesactivaForma(); // Desactiva la forma void ActivaForma(); // Activa la forma. bool ActivaStack(int); // Activa el stack void DesactivaBotonZoom(); // Desactiva el boton de zoom void ActivaBotonZoom(); // Lo contrario al anterior... int LeeMenuDespliegue(); // Regresa el valor del menu despliegue int LeeMenuProcesar(); int LeeMenuArchivo(); int LeeMenuAyuda(); void MuestraMensajeError(char *); // Muestra un dialogo con un error. void ActualizaMenuDespliegue(); void BorraIntro(); public: void LimpiaAreaGrafica(); // Peticion de limpiado. void MuestraMensaje(char *); // Muestra un mensaje en el area inferior void CambiaStatus(STATUS st); // Cambia el 'LED' de status public: // Constructor. C_VentanaPrincipal(Referencia_I CliRef) {Cliente=(C_Aplicacion *)CliRef;} // Funciones Heredadas bool AbreVentana(); bool ActivaVentana(); bool CierraVentana(); }; #endif