00001 //=========================================================================== 00002 //= vista.h Julio de 1998 = 00003 //=-------------------------------------------------------------------------= 00004 //= Definicion de clase VISTA. Esta clase juega el rol de "Abstraction" en = 00005 //= un patron "BRIDGE" (ver [GAMMA95] - "Design patterns, elements of = 00006 //= reusable object-oriented software"), en donde el "Implementor" es la = 00007 //= clase VISOR. = 00008 //=-------------------------------------------------------------------------= 00009 //= APLICACIONES DE LA CLASE: = 00010 //= Para una aplicacion basada en OpenGL, y dado un contexto OpenGL, esta = 00011 //= clase permite que en dicho contexto evolucione un VISOR, el cual puede = 00012 //= ser cambiado por otro dinamicamente en cualquier momento. Esto se = 00013 //= traduce en poder usar un mismo contexto OpenGL para mostrar distintas = 00014 //= vistas de la informacion de una aplicacion. = 00015 //= Por otro lado, al proveer un identificador, la VISTA facilita la = 00016 //= creacion de aplicaciones que tienen varios contextos OpenGL. = 00017 //=-------------------------------------------------------------------------= 00018 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO = 00019 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN = 00020 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES, = 00021 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO, = 00022 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO, = 00023 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA = 00024 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES = 00025 //= ("ACTIVIDADES DE ALGO RIESGO"). = 00026 //=-------------------------------------------------------------------------= 00027 //= Autor original: Oscar J. Chavarro G. A.K.A. JEDILINK. Copyright (c), = 00028 //= 1997 - 2003, oscarchavarro@hotmail.com = 00029 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia = 00030 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la = 00031 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. = 00032 //=========================================================================== 00033 00034 #ifndef __VISTA__ 00035 #define __VISTA__ 00036 00037 #include "jed_defs.h" // Incluir antes que nada, en ese modulo se definen 00038 // aspectos importantes para la portabilidad del sistema 00039 #include "framework/visual/visor.h" 00040 00041 class VISTA { 00042 private: 00043 BOOLEAN modo_offline; 00044 IMAGEN *Imagen; 00045 VISOR *mi_visor; 00046 int _id; 00047 int _metodo_de_visualizacion; // Uno de los METODOS_DE_VISUALIZACION 00048 00049 int _x; 00050 int _y; 00051 int _x_tam; 00052 int _y_tam; 00053 00054 void pintar_nucleo(void); 00055 00056 public: 00057 VISTA(VISOR *v, int el_id); 00058 ~VISTA(void); 00059 00060 int id(void); 00061 int x(void); 00062 int y(void); 00063 int xtam(void); 00064 int ytam(void); 00065 void set_x(int x); 00066 void set_y(int y); 00067 void set_xtam(int x_tam); 00068 void set_ytam(int y_tam); 00069 void set_id(int i); 00070 int metodo_de_visualizacion(void); 00071 void set_metodo_de_visualizacion(int metodo); 00072 void pintar_online(void); 00073 void pintar_offline(char *archivo); 00074 void procesar_resize(int x, int y, int x_tam, int y_tam); 00075 int procesar_teclado(EVENTO_GUI *e); 00076 int procesar_mouse(EVENTO_GUI *e); 00077 int procesar_comando(int idc); 00078 char *reportar_menu(void); 00079 char *reportar_botonera(void); 00080 VISOR *visor(void); 00081 void grabar(FILE *fd); 00082 }; 00083 00084 #endif // __VISTA__ 00085 00086 //=========================================================================== 00087 //= EOF = 00088 //=========================================================================== 00089