Página principal | Jerarquía de la clase | Lista alfabética | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

jed_gui.h

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= jed_gui.h                                               Octubre de 1998 =
00003 //=-------------------------------------------------------------------------=
00004 //= Definiciones de la interface JED_INTERFACE                              =
00005 //=-------------------------------------------------------------------------=
00006 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO   =
00007 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN   =
00008 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES,     = 
00009 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO,        =
00010 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO,  =
00011 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA   =
00012 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES       =
00013 //= ("ACTIVIDADES DE ALGO RIESGO").                                         =
00014 //=-------------------------------------------------------------------------=
00015 //= Autor original: Oscar J. Chavarro G.  A.K.A. JEDILINK. Copyright (c),   =
00016 //= 1997 - 2003, oscarchavarro@hotmail.com                                  =
00017 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia   =
00018 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la  =
00019 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. =
00020 //===========================================================================
00021 
00022 #ifndef __JED_GUI__
00023 #define __JED_GUI__
00024 
00025 #include "jed_defs.h"  // Incluir antes que nada, en ese modulo se definen 
00026                        // aspectos importantes para la portabilidad del sistema
00027 
00028 #include "entidad.h"
00029 #include "toolkits/entorno/jed_evnt.h"
00030 #include "framework/gui/jed_menu.h"
00031 #include "framework/gui/jed_btn.h"
00032 #include "framework/gui/logo.h"
00033 #include "framework/gui/control_gui.h"
00034 
00035 //===========================================================================
00036 
00037 #define JED_GUI_CLASE_NULA(M_CLASE, M_NCLASE, M_GUI, M_LIB, M_CONST)          \
00038   M_CLASE::M_CLASE(){;}                                                       \
00039   M_CLASE::~M_CLASE(){;}                                                      \
00040   void M_CLASE::finalizar(void){;}                                            \
00041   void M_CLASE::ejecutar(void){;}                                             \
00042   void M_CLASE::solicitar_repintado(void){;}                                  \
00043   void M_CLASE::set_draw_callback( void (*)(int) ){}                          \
00044   void M_CLASE::set_tick_callback( int (*)(int) ){}                           \
00045   void M_CLASE::set_resize_callback(void (*)(int, int, int) ){}               \
00046   void M_CLASE::set_mouse_callback(int (*)(EVENTO_GUI *, int) ){}             \
00047   void M_CLASE::set_ejecutor(int (*)(int, int) ){}                            \
00048   void M_CLASE::set_keyboard_callback(int (*)(EVENTO_GUI *, int) ){}          \
00049   void M_CLASE::set_multiview_callback(                                       \
00050       void (*)(int, int, char *, char *, char *) ){}                          \
00051   BOOLEAN                                                                     \
00052   M_CLASE::crear(int *, char *[], int, int, char *)                           \
00053   {                                                                           \
00054       fprintf(stderr,                                                         \
00055       "<%s> - ERROR: El modo de ejecucion de interfase %s\n"                  \
00056       "  no esta disponible. Esto se debe a que la constante \"%s\" no ha\n"  \
00057       "  sido definida.  Es posible que haya sido desactivada en tiempo de\n" \
00058       "  compilacion debido a que la libreria \"%s\" no esta instalada\n"     \
00059       "  en su sistema.  Consulte con el administrador del sistema la \n"     \
00060       "  disponibilidad de la libreria e intente recompilar AQUYNZA, con\n"   \
00061       "  la opcion \"%s\" activa.\n", M_NCLASE,M_GUI,M_CONST,M_LIB,M_CONST    \
00062       );                                                                      \
00063       fflush(stderr);                                                         \
00064       return FALSE;                                                           \
00065   }                                                                           \
00066   BOOLEAN                                                                     \
00067   M_CLASE::anexar_controles(LISTA <CONTROL_GUI *> *,                          \
00068   REPOSITORIO_DE_ENTIDADES * ) {                                              \
00069     fprintf(stderr, "<%s> ERROR: Los controles GUI no estan\n"                \
00070         "    implemetados en la interface actual.  Intente Motif.\n",         \
00071         M_NCLASE); fflush(stderr); return FALSE;  } 
00072 
00073 
00074 //===========================================================================
00075 
00076 enum ENUM_OPERACIONES_VISTA {
00077     GUI_UNKNOWN = 0,
00078     GUI_CREAR_VISTA,
00079     GUI_BORRAR_VISTA
00080 };
00081 
00082 class GUI_CONSTANTE_ENTERA {
00083   private:
00084     char *nombre;
00085     int valor;
00086   public:
00087     void leer(TOKENIZADOR *Sabiondo);
00088     void imprimir(void);
00089     friend class GUI_MENU;
00090     friend class GUI_SUB_BOTONERA;
00091     friend class GUI_COMANDO;
00092 };
00093 
00094 class JED_INTERFACE {
00095   protected:
00096     BOOLEAN leer_gui(char *archivo);
00097     LISTA <GUI_CONSTANTE_ENTERA *> lista_idcs;
00098     LISTA <GUI_COMANDO *> lista_comandos;
00099     LISTA <GUI_MENU *> lista_menus;
00100     LISTA <GUI_BOTONERA *> lista_botoneras;
00101 
00102   public:
00103     virtual ~JED_INTERFACE();
00104     virtual BOOLEAN crear(int *Argc, char *argv[],
00105         int x_tam = 320, int y_tam = 200, char *nombre = "AQUYNZA") = 0;
00106     virtual void finalizar(void);
00107     virtual void ejecutar(void) = 0;
00108     virtual void desktop_size(int *x_tam, int *y_tam);
00109     virtual void solicitar_nueva_ventana(void);
00110     virtual void solicitar_repintado(void) = 0;
00111     virtual void set_draw_callback( void (*p)(int context_id) ) = 0;
00112     virtual void set_tick_callback( int (*p)(int context_id) ) = 0;
00113     virtual void set_ejecutor( int (*p)(int idc, int context_id) ) = 0;
00114     virtual void
00115     set_keyboard_callback( int (*p)(EVENTO_GUI *e, int context_id) ) = 0;
00116     virtual void
00117     set_mouse_callback( int (*p)(EVENTO_GUI *e, int context_id) ) = 0;
00118     virtual void
00119     set_resize_callback( void (*p)(int x_tam, int y_tam, int context_id) ) = 0;
00120     virtual void set_multiview_callback
00121     ( void (*p)(int operacion, int id_vista, char *detalles,
00122                 char *menu, char *botonera) ) = 0;
00123 
00124     GUI_MENU *resolver_menu(char *llave);
00125     GUI_BOTONERA *resolver_botonera(char *llave);
00126     BOOLEAN leer(TOKENIZADOR *Sabiondo);
00127     virtual BOOLEAN
00128     anexar_controles(LISTA <CONTROL_GUI *> *Controles, 
00129                      REPOSITORIO_DE_ENTIDADES *Repositorio) = 0;
00130 };
00131 
00132 #ifndef VEL_ROSITA
00133 
00134 #include "framework/gui/_tk.h"
00135 #include "framework/gui/_glut.h"
00136 #include "framework/gui/_wxwindows.h"
00137 #include "framework/gui/_windows.h"
00138 #include "framework/gui/_motif.h"
00139 #include "framework/gui/_owl.h"
00140 
00141 #endif
00142 
00143 #endif // __JED_GUI__
00144 
00145 //===========================================================================
00146 //= EOF                                                                     =
00147 //===========================================================================
00148 

Este archivo HTML ha sido generado automáticamente a partir del código fuente AQUYNZA. NO LO EDITE. Para mayor información contacte al autor.