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_menu.h

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= jed_menu.h                                              Octubre de 1998 =
00003 //=-------------------------------------------------------------------------=
00004 //= Definiciones de las clases de administracion de GUI_MENU's y COMANDO's      =
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_MENU__
00023 #define __JED_MENU__
00024 
00025 #include "jed_defs.h"
00026 #include "toolkits/util/parsero.h"
00027 
00028 #ifdef WXWINDOWS_ENABLED
00029 
00030 #if PLATAFORMA == SPARC64_LINUX_GCC
00031     // OJO: Esto es un machete para que no falle la compilacion en Linux
00032     //      Debian Woody con gcc 2.95.4 y libc5 (glibc 2.2.5), cuando se
00033     //      activa wxwindows en SPARC (pruebas sirio.sanmartin.edu.co,
00034     //      julio de 2003)
00035     extern "C" char *strdup(const char *s);
00036     extern "C" int strcasecmp(const char *s1, const char *s2);
00037 #endif
00038 
00039   #include <wx/wx.h>
00040   class _WXWINDOWS_WINDOW;
00041 #endif
00042 
00043 #ifdef MOTIF_ENABLED
00044     #include <Xm/Xm.h>
00045 #endif
00046 
00047 class GUI_MENU;
00048 class JED_INTERFACE;
00049 class JED_MOTIF_INTERFACE;
00050 class GUI_CONSTANTE_ENTERA;
00051 
00052 class GUI_COMANDO {
00053   private:
00054     int _id;
00055     char *_nombre;
00056     char *resumen;
00057     char *ayuda;
00058     char *_archivo_icono;
00059 
00060     BOOLEAN concatenar_ayuda(char *nueva);
00061 
00062   public:
00063     GUI_COMANDO();
00064     ~GUI_COMANDO();
00065 
00066     BOOLEAN leer(TOKENIZADOR *Sabiondo, LISTA<GUI_CONSTANTE_ENTERA *> *Tabla_idcs);
00067     void imprimir(void);
00068     int id(void);
00069     char *nombre(void);
00070     char *archivo_icono(void);
00071 };
00072 
00073 class GUI_ELEMENTO {
00074   public:
00075     virtual ~GUI_ELEMENTO();
00076     virtual void imprimir(void) = 0;
00077   #ifdef GLUT_ENABLED
00078     virtual void crear_glut(int padre) = 0;
00079   #endif
00080   #ifdef MOTIF_ENABLED
00081     virtual Widget crear_motif(Widget padre) = 0;
00082   #endif
00083   #if PLATAFORMA == i386_WIN32_VC
00084     virtual BOOLEAN crear_mswin32sdk(HMENU padre) = 0;
00085   #endif
00086   #ifdef WXWINDOWS_ENABLED
00087     virtual wxMenu * crear_wxw(wxMenu *Padre, int tipo_menu) = 0;
00088   #endif
00089 };
00090 
00091 enum ENUM_TIPOS_MENU {
00092     TM_MENUBAR = 1,
00093     TM_MENUCOLUMN,
00094     TM_POPUP,
00095     TM_PULLDOWN
00096 };
00097 
00098 class REFERENCIA_GUI : public GUI_ELEMENTO {
00099   private:
00100     char *nombre;
00101     GUI_MENU *Ref;
00102     JED_INTERFACE *Interface;
00103   public:
00104     REFERENCIA_GUI(char *n, JED_INTERFACE *i);
00105     virtual ~REFERENCIA_GUI();
00106     void imprimir(void);
00107   #ifdef GLUT_ENABLED
00108     void crear_glut(int padre);
00109   #endif
00110   #ifdef MOTIF_ENABLED
00111     Widget crear_motif(Widget padre);
00112     Widget crear_motif(Widget padre, int tipo_menu);
00113   #endif
00114   #if PLATAFORMA == i386_WIN32_VC
00115     BOOLEAN crear_mswin32sdk(HMENU padre);
00116   #endif
00117   #ifdef WXWINDOWS_ENABLED
00118     wxMenu *
00119     crear_wxw(wxMenu *Padre, int tipo_menu);
00120   #endif
00121 };
00122 
00123 class SEPARADOR : public GUI_ELEMENTO {
00124   public:
00125     virtual ~SEPARADOR();
00126     void imprimir(void);
00127   #ifdef GLUT_ENABLED
00128     void crear_glut(int padre);
00129   #endif
00130   #ifdef MOTIF_ENABLED
00131     Widget crear_motif(Widget padre);
00132   #endif
00133   #if PLATAFORMA == i386_WIN32_VC
00134     BOOLEAN crear_mswin32sdk(HMENU padre);
00135   #endif
00136   #ifdef WXWINDOWS_ENABLED
00137     wxMenu *
00138     crear_wxw(wxMenu *Padre, int tipo_menu);
00139   #endif
00140 };
00141 
00142 enum ENUM_OPTION_FLAGS {
00143     OF_CHECKED = 0x0001,
00144     OF_BINARY = 0x0002,
00145     OF_GRAYED = 0x0004    
00146 };
00147 
00148 class OPCION : public GUI_ELEMENTO {
00149   private:
00150     char *nombre;
00151     int idc;
00152     WORD flags;
00153   public:
00154     OPCION(char *name, int id);
00155     virtual ~OPCION();
00156 
00157     void check(void);
00158     void uncheck(void);
00159     void enable(void);
00160     void disable(void);
00161     void imprimir(void);
00162     int id(void);
00163   #ifdef GLUT_ENABLED
00164     void crear_glut(int padre);
00165   #endif
00166   #ifdef MOTIF_ENABLED
00167     Widget crear_motif(Widget padre);
00168   #endif
00169   #if PLATAFORMA == i386_WIN32_VC
00170     BOOLEAN crear_mswin32sdk(HMENU padre);
00171   #endif
00172   #ifdef WXWINDOWS_ENABLED
00173     wxMenu *
00174     crear_wxw(wxMenu *Padre, int tipo_menu);
00175   #endif
00176 };
00177 
00178 class GUI_MENU : public GUI_ELEMENTO {
00179   private:
00180     LISTA <GUI_ELEMENTO *> lista_hijos;
00181     LISTA <GUI_CONSTANTE_ENTERA *> *Tabla_idcs;
00182     char *_nombre;
00183   #if PLATAFORMA == i386_WIN32_VC
00184     HMENU popup_id;
00185   #endif
00186 
00187   public:
00188     GUI_MENU(LISTA<GUI_CONSTANTE_ENTERA *> *tabla_constantes);
00189     virtual ~GUI_MENU();
00190 
00191     char *nombre(void);
00192     BOOLEAN leer(TOKENIZADOR *Sabiondo, JED_INTERFACE *i);
00193     void imprimir(void);
00194 
00195   #ifdef GLUT_ENABLED
00196     int crear_glut( void (*menu_callback)(int param) );
00197     void crear_glut(int padre);
00198     void insertar_glut(int padre);
00199   #endif
00200 
00201   #ifdef MOTIF_ENABLED
00202     Widget crear_motif(Widget padre, int tipo_menu);
00203     Widget crear_motif(Widget padre);
00204     void insertar_motif(Widget padre);
00205   #endif
00206 
00207   #if PLATAFORMA == i386_WIN32_VC
00208     BOOLEAN crear_mswin32sdk(HMENU padre);
00209     BOOLEAN crear_mswin32sdk(HMENU padre, int tipo_menu);
00210     BOOLEAN insertar_mswin32sdk(HMENU padre);
00211   #endif
00212 
00213   #ifdef WXWINDOWS_ENABLED
00214     wxMenuBar * crear_wxw_barra(_WXWINDOWS_WINDOW *Ventana);
00215     wxMenu * crear_wxw(wxMenu *Padre, int tipo_menu);
00216   #endif
00217 };
00218 
00219 #ifndef VEL_ROSITA
00220 #include "framework/gui/jed_gui.h"
00221 #endif
00222 
00223 //#ifdef WXWINDOWS_ENABLED
00224 //  #include "framework/gui/_wxwindows.h"
00225 //#endif
00226 
00227 #endif // __JED_MENU__
00228 
00229 //===========================================================================
00230 //= EOF                                                                     =
00231 //===========================================================================
00232 

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.