Construcción de Interfaces a Usuario - ©1999 Construcción de Interfaces a Usuario: Toolkits.

Slides:



Advertisements
Presentaciones similares
UNIX COMP 240.
Advertisements

COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Arquitectura CLARO-TECNOTREE
Java Applets Ing. Martín Jiménez.
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
Introducción al software
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Aplicación del paradigma orientado a objetos
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
Ingeniería del Software
Teoría de lenguajes y compiladores
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
Principios de diseño de Interfaces Prof. Adelaide Bianchini
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
Tema 6: Clases Antonio J. Sierra.
Semana 5 Subprogramas..
SQL SERVER Reporting Services
ENTORNO GRÁFICO DE VISUAL BASIC 2013
* FRAUSTO JIMENEZ GABRIELA * * HERNANDEZ TORRES ANA LAURA * * MANDUJANO JUAN CARLOS * * NOVA MARIN YARELI PAULINA * * ZAVALA CORTE JOCELYN ARELI *
Introducción a la Programación. Lenguaje de Máquina.
Construcción de Interfaces a Usuario: Control del Diálogo
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
5.3 APROXIMACIONES AL DISEÑO
SISTEMAS OPERATIVOS EQUIPO 9: GRUPO: Luna Rodríguez Diana Alejandra
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) PROGRAMACION DE INTERFASES.
Construcción de Interfaces a Usuario - ©1999 Construcción de Interfaces a Usuario: Sistemas de Ventanas.
Construcción de Interfaces a Usuario - ©1999 Construcción de Interfaces a Usuario: Control del Diálogo.
LENGUAJES DE PROGRAMACIÓN
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
APLICACIÓN EN VISUAL BASIC
Construcción de Interfaces a Usuario: Toolkits
QUÈ ES VISUAL BASIC ES UN LENGUAJE DE PROGRAMACIÒN QUE SE HA DISEÑADO PARA FACILITAR EL DESARROLLO DE APLICACIONES EN EL ENTORNO GRÀFICO (GUI GRAPHICAL.
Hermilia Molina Acevedo
NOMBRES:OLIVARES ALFARO JOSE L. BONETTI ARON GRUPO:308.
GUTIÉRREZ GRANADOS HÉCTOR DANIEL
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Arquitecturas de Sistemas Interactivos: Introducción
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Facultad de Ingeniería
Estructura de los Sistemas Operativos
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
C OLEGIO DE B ACHILLERES N O.13 X OCHIMILCO, T EPEPAN C ARRASCO G ARCÍA L ORENA T ORRES H EREDIA C ARLA P ALMIRA G RUPO : 308 M ATUTINO E QUIPO : 12.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Ingeniería de Requisitos
Proceso de Diseño de Interfaces
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
Un requerimiento es una condición o capacidad a la que el sistema (siendo construido) debe conformar [ Rational ]. Un requerimiento de software puede.
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
INTEGRANTE: FLORES GODOY JUAN E. Grupo:308. Una tabla es una colección de datos sobre un tema específico, como productos o proveedores. Al usar una tabla.
Sistemas Operativos Universidad Politécnica Territorial de Mérida
Programación Orientada a Objetos: CLASES Y OBJETOS
M.C. Meliza Contreras González.  Se le llama interfaz gráfica al conjunto de componentes gráficos(ventanas, botones, combos, listas, cajas de dialogo,
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Fundamentos de Programación Unidad I Conceptos Básicos.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Construcción de Interfaces a Usuario - ©1999 Construcción de Interfaces a Usuario: Toolkits

Construcción de Interfaces a Usuario - ©1999 Contenidos 4 Objetos de Interacción (OI) –Relación con el sistema de ventanas –Tratamiento de eventos –Composición de OI –Recursos –Comunicación entre OIs 4 Toolkits –Intrinsics –Procedurales / OO –Especializados –Virtuales

Construcción de Interfaces a Usuario - ©1999 Niveles de Abstracción de un SI Núcleo FuncionalControl del DiálogoObjetos de InteracciónSistema de VentanasDrivers Control de los dispositivos físicos Control de los recursos E/S Control de los objetos de interacción Control del secuen- ciamiento de las acciones del usuario - Conocimiento del dominio Incremento en el nivel de abstracción

Construcción de Interfaces a Usuario - ©1999 Objetos de Interacción 4 Objetos de Interacción (OI): abstracciones de software representando conceptos sintácticos o semánticos en la interacción –‘widgets’ (X-Windows), “controles” (Macintosh, MS Windows), “objetos” (NeXTStep) –En muchos casos, establecen la forma de utilizar un dispositivo de input para ingresar un valor dado –Generalmente disponibles a través de bibliotecas (‘toolkits’). –Algunos ejemplos comunes de OI : Menúes Botones Barras de desplazamiento Cajas para ingreso de texto

Construcción de Interfaces a Usuario - ©1999 Objetos de Interacción 4 El comportamiento del OI está incluido dentro de su implementación –En principio, no puede ser modificado por el operador –El comportamiento puede ser adaptado, por medio de la especificación de ciertos atributos 4 Incluyen comportamiento de output e input: –output: comportamiento perceptible, en términos de propiedades visuales o auditivas ej. forma, highlighting, sonido –input: determina las acciones físicas que puede realizar el operador ej. movimiento de iconos, selecciones en un menú

Construcción de Interfaces a Usuario - ©1999 Objetos de Interacción 4 Ocultan los detalles de bajo nivel –Los servicios provistos por los sistemas de ventanas poseen un nivel de abstracción demasiado bajo –Los eventos del usuario son convertidos en eventos con un nivel de abstracción mayor ej. doble click  comando de selección –El proceso cliente es notificado del evento, pero no de las acciones de bajo nivel efectuadas por el operador –El cliente especifica las propiedades de la presentación, pero la implementación específica es ocultada por el OI 4 En general, los OI son incapaces de interactuar directamente con otros OI –La interacción debe ser efectuada por el control del diálogo.

Construcción de Interfaces a Usuario - ©1999 Objetos de Interacción: Ejemplo –Comportamiento determinado por la implementación del OI Especificado parcialmente por el operador y/o el proceso cliente Print Unhighlighted unset Print Mouse Enter Highlighted unset Print Mouse Pressed Highlighted set Print Mouse Released Highlighted unset Print Mouse Leaves Unhighlighted unset

Construcción de Interfaces a Usuario - ©1999 Creación OI 4 La creación y modificación de los OI es realizada por medio de primitivas especiales –No es posible acceder directamente a las estructuras de datos de los OI –El proceso cliente es responsable de colocar y modificar los parámetros que determinen la apariencia y el comportamiento

Construcción de Interfaces a Usuario - ©1999 Creación OI: Ejemplo (Athena Toolkit) void Activate () { printf (“button was activated. \n”); } void main (unsigned int argc, char **argv) { static XtCallbackRec callbacks[]= { {Activate, NULL} }; static Arg args[] = { {XtNcallback, (XtArgVal)callbacks }, {XtNlabel, (XtArgVal)”Hello World”},}; toplevel=XtInitialize(NULL,“Demo”,NULL,0,&argc,argv); XtCreateManagedWidget(“command”, commandWidgetClass, toplevel, args, XtNumber(args)); XtRealizeWidget (toplevel); XtMainLoop(); } Parámetros del widget Callback Creación del widget

Construcción de Interfaces a Usuario - ©1999 Relación Sistemas de ventanas - OI Proceso Cliente Sistema de Ventanas Presentación (modelo de output) Eventos físicos (modelo de input) Proceso Cliente Sistema de Ventanas Presentación (modelo de output) Eventos físicos (modelo de input) Invocación de funciones(callbacks) Coloc. Parámetros (colores, acciones, callbacks) OI Estado Especificación Look & Feel Feedback léxico

Construcción de Interfaces a Usuario - ©1999 Estados de un OI 4 Con respecto a sus recursos físicos: –“Adquirido” (‘acquired’): recursos interactivos están asignados –“Liberado”(‘released’): sin asignar sus recursos interactivos ej. en su estado inactivo, un menú popup posee sus items liberados. Al activarse el menú, se asigna un espacio de pantalla (recurso) a los items del menú (los OI son adquiridos). Al seleccionarse un item del menú, los items desaparecen (liberados) –La adquisición y liberación dinámica permite compartir recursos entre distintos OIs ej. permite el ahorro de espacio en pantalla –Si existen muchos OIs, la aplicación sólo puede adquirir algunos de ellos simultáneamente –Es posible compartir un mismo recurso por varios OI No en forma simultánea

Construcción de Interfaces a Usuario - ©1999 Estados de un OI 4 Con respecto a la aceptación de eventos: –“Habilitado”: acepta eventos del operador –“Deshabilitado”: no acepta eventos del operador –Los OI deshabilitados suelen ser presentados en forma diferente ej. Items de un menú con menor contraste –No es conveniente liberar un OI deshabilitado La muestra de un OI deshabilitado indica al usuario su localización usual, pero que actualmente no acepta eventos

Construcción de Interfaces a Usuario - ©1999 Estados de un OI 4 De acuerdo a si el operador está interactuando con el OI –“Activo”: en el momento en el que el operador está interactuando con dicho OI –Debe proveerse un feedback visual para indicar al usuario que la aplicación está respondiendo a sus acciones ej. cuando se presiona un botón, debe existir alguna indicación visual de que dicha presión tiene efecto. 4 Siempre debiera poder deducirse el estado actual del OI a partir de la representación visual actual

Construcción de Interfaces a Usuario - ©1999 OI: tratamiento de eventos 4 La forma del manejo de eventos depende del toolkit particular. 4 Métodos básicos: –‘Polling’ (Macintosh) El proceso cliente verifica los eventos disponibles, y cuales de ellos son de interés para cada objeto de interacción –Callbacks (Xt) Rutinas asociadas con cada posible evento sobre el OI

Construcción de Interfaces a Usuario - ©1999 OI: Tratamiento de eventos Macintosh while (go) { if (GetNextEvent(everyEvent, &myEvent)) switch (myEvent.what) { case keyDown:.....; break; case mouseDown: wheremouse = FindWindow(myevent.where), &whichwindow); switch (wheremouse) { case inDesk:.....; break; case inMenuBar:.....; break; case inContent: localwhere = myevent.where; GlobalToLocal(&localwhere); whereincontrol = FindControl(localwhere, &whichwindow, &whichcontrol); if (whichcontrol != NIL) { switch (whereincontrol) { case inButton: // lexical feedback of button } // end whereincontrol } // end if (whichcontrol != NIL) } // end wheremouse } // end myEvent.what } // end while(go)

Construcción de Interfaces a Usuario - ©1999 OI: Tratamiento de eventos 4 Definición de eventos de mayor nivel –X Toolkit: “acciones” definidas en términos de expresiones regulares Expresiones basadas en eventos primitivos (mouse button up o down, key pressed, etc.) El cliente define sus acciones de alto nivel en una ‘translation table’ El OI interpreta esta tabla para determinar que acción generar y cuál procedimiento invocar

Construcción de Interfaces a Usuario - ©1999 OI: Definicion de nuevos eventos (Xt) XtTranslations mytranstable; static void beep(Widget w,Xevent *event,String *params, int numparams){ Xbell(XtDisplay(w), 50); } static void quit (Widget w,Xevent *event, string *params, int numparams) { exit (0); } static XtActionsrec myactionstable[] = { {“beep”, beep}, {“quit”,quit}, }; static char mytranslations[] = “ Return:beep() \n\ Ctrl J: beep() \n\ Ctrl Q: quit()”; XtAddActions(myactionstable, XtNumber(myactionstable)); mytranstable = XtParseTranslationTable(mytranslations); w = XtCreateManagedWidget (...); XtOverrideTranslations (w, mytranstable); Asociación acción-procedimiento Procedimientos Tabla de traducción Registro nueva acción Compilación de la tabla Instalación tabla en un widget

Construcción de Interfaces a Usuario - ©1999 Composición de OI 4 OI “compuesto”: OI que puede contener otros OI “componentes” –Conforman una jerarquía de OI –La localización de un OI componente es relativa a la posición del OI compuesto 4 OI “contenedores” : OI compuestos sin interacciones propias. –Son los más simples de los OI compuestos ej. Cajas de diálogo –Pueden ser componentes de otros OI contenedores

Construcción de Interfaces a Usuario - ©1999 Administración de la geometría 4 Administración de la geometría –Algunos toolkits proveen una administración automática de la geometría de los OI compuestos ej. Xt Intrinsics, Andrew Idea básica: el OI contenedor es responsable por el tamaño y posicionamiento de sus OI componentes Pueden existir negociaciones entre el OI contenedor y sus componentes para administrar el espacio –ej. un OI componente indica el tamaño mínimo requerido En otros casos, pueden indicarse “restricciones” entre los distintos OI componentes –Algoritmos de ‘layout’

Construcción de Interfaces a Usuario - ©1999 ‘Fixed-Position Layout’ 4 Cada OI componente es colocado en una posición fija dentro del OI compuesto –ej. cajas de diálogo –Esta posición es expresada en términos de las coordenadas del OI compuesto Los OI siempre permanecen en la misma localización  Modelo muy simple Utilizado por la mayoría de los toolkits  Pueden existir inconvenientes en el redimensionamiento de las ventanas ej. Localización de un barra de desplazamiento, al modificar el tamaño de la ventana que la contiene Para evitar esta situación, los sistemas asignan una posición fija al OI. Luego, permiten al sistema modificar esta posición ante un redimensionamiento –envían un mensaje al OI contenedor ante un redimensionamiento

Construcción de Interfaces a Usuario - ©1999 Especificación con restricciones 4 Las relaciones geométricas entre los OI componentes son expresadas por medio de fórmulas (“restricciones”) –ej. e.right = f. Left  El redimensionamiento es administrado automáticamente  La especificación por medio de ecuaciones no es muy sencilla

Construcción de Interfaces a Usuario - ©1999 ‘Struts & Springs Layout’ 4 Simplificación del algoritmo de restricciones 4 Provee dos tipos de objetos para colocar en los layouts –“soportes” (‘struts’): objetos rígidos –“muelles” (‘springs’): objetos comprimibles. –Estos objetos pueden ser colocados para expresar relaciones geométricas entre los OI componentes. –Puede ser especificado visualmente

Construcción de Interfaces a Usuario - ©1999 ‘Intrinsic Size Layout’ 4 El tamaño intrínseco de cada OI es usado como base para la asignación de espacio. –Cada OI componente determina sus necesidades de espacio, y se las informa a su OI contenedor ej. items en un menú –El OI compuesto calcula el espacio necesario para contener a todos sus OI componentes –Si existen más niveles de anidamiento, se propagan las necesidades de espacio –Algoritmo ‘bottom-up’  No trata los problemas de redimensionamiento

Construcción de Interfaces a Usuario - ©1999 ‘Variable Intrinsic Size Layout’ 4 El tamaño es determinado por el operador, y los OI deben adecuarse a dicho tamaño 4 Consta de dos fases: –1. Fase ‘bottom-up’ Cada OI reporta sus necesidades de espacio, a partir de las necesidades de sus OI componentes Los OI también pueden indicar las posibilidades de relajación en dicho espacio –ej. Cuanto más chico y/o más grande puede ser dicho espacio –2. Fase ‘top-down’ El espacio disponible es particionado entre los OI componentes, de acuerdo a sus necesidades. –Utilizado en TEX e Interviews. –Se proveen objetos ‘glue’ para colocar entre OI componentes –Una variante de este algoritmo es utilizado en el AWT de Java.

Construcción de Interfaces a Usuario - ©1999 OI: ‘Resources’ 4 Los OI proveen parámetros para especificar algunos aspectos de apariencia y comportamiento 4 ‘Resource files’: colección de parámetros –Pueden ser editados por el operador –En tiempo de ejecución, son procesados por el toolkit para crear los OIs –No necesitan ser compilados conjuntamente con el código de la aplicación –X Windows: archivos textuales OI compuestos: UIL –Macintosh: editable con ResEdit (Macintosh Toolbox)

Construcción de Interfaces a Usuario - ©1999 Resources Xt ## Draw: Class resource file the simple draw program Draw*commands.columns:1 Draw*quit.label:Quit Draw*drawline.label:Draw Line Draw*drawrect.label:Draw Rectangle Draw*movelineright.label:Draw Line Right Draw*movelineleft.label:Draw Line Left Draw*canvas.xRefName:commands Draw*canvas.xAddWidth:True Draw*canvas.xAttachRight:True Draw*canvas.xAttachLeft:True Draw*canvas.xAttachBottom:True Draw*canvas.xAttachTop:True Draw*canvas.xAttachRight:True

Construcción de Interfaces a Usuario - ©1999 Vinculación aplicación / recursos 4 Macintosh: –El código y los recursos son mantenidos en forma conjunta –Cada archivo contiene: ‘Data fork’: contiene datos, en una forma similar a un archivo convencional ‘Resource fork’: contiene los recursos, identificados con un nombre y un tipo. –El SO provee rutinas para acceder a los recursos por su nombre y/o tipo. –Cada recurso es una secuencia simple de bytes  Mecanismo general y extensible  Conteniendo los datos y recursos en un mismo archivo evita la pérdida de los recursos de una aplicación

Construcción de Interfaces a Usuario - ©1999 Vinculación aplicación / recursos 4 X Windows: –No existe una vinculación estricta entre el programa y sus recursos. –Los recursos se encuentran en un directorio definido por la aplicación 4 MS Windows: –Un compilador de recursos agrupa los recursos, incorporándolos como un segmento de datos a un módulo ejecutable.  No se producen pérdidas de los recursos.

Construcción de Interfaces a Usuario - ©1999 Herramientas para especificación de recursos 4 Compiladores de recursos –Convierten una especificación textual en el formato del recurso –Generalmente provistas por los toolkits –Los lenguajes de recursos son bastante sencillos y primitivos 4 Herramientas de diseño de interfaces –Programas interactivos que permiten diseñar visualmente las interfaces –Estas herramientas pueden: Editar directamente los recursos Crear código fuente en formato textual, utilizado posteriormente por el compilador de recursos.

Construcción de Interfaces a Usuario - ©1999 Comunicación entre OIs 4 ‘Pseudoevents’ –Eventos creados para la comunicación entre objetos –No se corresponden con los eventos de input reales 4 Modelos básicos de comunicación: –Callbacks (Motif, Xtk) –Notificación al padre –Modelo de conecciones

Construcción de Interfaces a Usuario - ©1999 Comunicación entre OIs 4 Callbacks –El código de los callbacks puede contener comunicaciones con otros OIs.  Las distintas interrelaciones entre los OIs no son fáciles de comprender 4 Notificación al padre –Cada OI puede comunicarse con otro OI por medio de su OI contenedor  Los OI están restringidos a comunicarse con sus padres  Puede producir el envío de muchos mensajes ej. si los OI están distantes, no relacionados por un único OI contenedor

Construcción de Interfaces a Usuario - ©1999 Comunicación entre OIs 4 Modelo de conecciones –Los objetos pueden comunicarse directamente entre sí. ej. una barra de desplazamiento puede invocar directamente algún método sobre el editor de texto. –El método exacto a usar en la comunicación puede no ser conocido en el momento de programación –Las interrelaciones entre los OIs deben ser provistas en la inicialización ej. NeXTSTEP : usa 2 campos para establecer la comunicación: –Destino (widget que será notificado) –Acción (identificación del método a invocarse). –Estos valores son colocados en tiempo de ejecución  Los widgets no están restringidos a comunicarse con sus padres.

Construcción de Interfaces a Usuario - ©1999 ‘Toolkits’ 4 Bibliotecas de OIs, disponibles para los programadores  Reusabilidad de comportamientos estandar  Consistencia entre aplicaciones desarrolladas con el mismo toolkit  Generalmente, proveen una cantidad limitada de estilos de interacción ej. cómo crear una barra de desplazamiento con dos elevadores?  Implementación costosa  Pueden ser difíciles de usar ej. cuál rutina utilizar en Macintosh Toolbox?

Construcción de Interfaces a Usuario - ©1999 ‘Toolkits’ 4 Alternativas de implementación: –Utilizando los servicios provistos por el sistema de ventanas –Sus servicios son utilizados por el sistema de ventanas 4 Macintosh: –El toolkit está implementado a bajo nivel La interfaz del sistema de ventanas (‘window manager’) está construida con el toolkit.  El ‘window manager’ puede utilizar las las rutinas sofisticadas del toolkit para implementar su interfaz 4 X Windows: –El toolkit se encuentra implementado por encima del WS  Los ‘window manager’ deben implementar su propia interfaz  Pueden utilizarse varios toolkits (ej. Xt, Interviews, Garnet, Tk)

Construcción de Interfaces a Usuario - ©1999 X Windows Programas de Aplicación Toolkit Window Manager Window System Paquete Gráfico

Construcción de Interfaces a Usuario - ©1999 Macintosh / MS Windows Programas de Aplicación Toolkit Window Manager Window System Paquete Gráfico

Construcción de Interfaces a Usuario - ©1999 Intrinsics 4 Nivel de software que permite la construcción de diferentes toolkits –Provee servicios básicos para los toolkits ej. técnicas OO, control de layout Los widgets son implementados con estos servicios como base –Provee independencia del look&feel de la interfaz Los widgets desarrollados sobre este nivel pueden tener cualquier apariencia y comportamiento –Cada toolkit particular determina un estilo de look&feel –Inversamente, el look&feel de un determinado toolkit podría ser implementado sobre distintos Intrinsics Xt Intrinsics MotifAthena Open Look Xt IntrinsicsInterviewsGarnet Motif

Construcción de Interfaces a Usuario - ©1999 X Toolkit (Xt) Intrinsics 4 Provee un conjunto de clases básicas para implementar toolkits (X-Windows) –Establece un paradigma orientado a objetos –No especifica ningún look&feel particular Hardware X Windows Sistema Operativo Xlib OSF Motif Aplicación Xt Intrinsics

Construcción de Interfaces a Usuario - ©1999 X Toolkit (Xt) Intrinsics Object RectObj Core Constraint OverrideShell TransientShell ApplicationShell TopLevelShell Shell WMShell VendorShell Composite Widgets con interfaz con el adm. de ventanas Widgets compuestos OO, administración de espacio, bordes,... Widgets básicos

Construcción de Interfaces a Usuario - ©1999 OSF / Motif Object RectObj Core Constraint OverrideShell TransientShell ApplicationShell TopLevelShell Shell WMShell VendorShell Composite XmMenuShell XmDialogShell XmDisplay XmDrawingArea XmFrame XmPanedWindow XmRowColumn XmScale XmScrolledWindow XmMainWindow XmBulletinBoard XmForm XmMessageBox XmSelectionBox XmArrowButton XmList XmScrollBar XmSeparator XmText XmLabel XmCascadeButton XmDrawnButton XmPushButton XmToggleButton XmManager XmPrimitive XmManager

Construcción de Interfaces a Usuario - ©1999 Toolkits Procedurales 4 Interfaz procedural 4 Colección de procedimientos –ej. SunTools (SunView), Macintosh Toolbox  Más sencillos de implementar que los toolkits OO  Es más sencillo proveer una interfaz con múltiples lenguajes

Construcción de Interfaces a Usuario - ©1999 Toolkits OO 4 Forma más natural de pensar en OIs 4 Los widgets pueden mantener un estado propio –Algunas tareas pueden ser realizadas automáticamente por el toolkit (ej. ‘refresh’) 4 Es posible crear nuevos tipos de OI –Subclases 4 Alternativas de implementación –Implementación de un sistema de objetos propio ej. Xt, Andrew, Garnet –Utilización de sistema de objetos existente ej. Interviews (C++), NeXTStep (Objective C), Rendezvous (CLOS) 4 Interfaz general con la aplicación: callbacks –Código dificil de mantener (alta cantidad de callbacks) –Dificultades con la portabilidad (los toolkits pueden tener diferentes protocolos de callbacks)

Construcción de Interfaces a Usuario - ©1999 Toolkits Especializados 4 Desarrollados para tipos específicos de aplicaciones –Educación: SUIT –UI manipulación directa: Garnet –Múltiples usuarios: RendezVous –3D: UGA, Inventor –UI temporales: Ttoolkit –Animación: Artkit –Lenguajes interpretados: Tk –Restricciones: Garnet, RendezVous, Amulet

Construcción de Interfaces a Usuario - ©1999 Toolkits Virtuales 4 OI “virtuales”: OI especificados independientemente de la plataforma –Intentan ocultar las diferencias entre los distintos toolkits –Los OI virtuales se corresponden con los OI reales de cada toolkit –También denominados “sistemas de desarrollo ‘cross-platform’”  Portabilidad 4 Alternativas de implementación: –Vínculos con los toolkits reales –Reimplementación de los widgets en cada estilo

Construcción de Interfaces a Usuario - ©1999 Toolkits Virtuales 4 Vinculación con los toolkits reales –ej. XVT Provee una interfaz C++, vinculada a los toolkits reales Motif, OpenLook, Macintosh, MSWindows, OS/2 –Utiliza los widgets reales El look&feel se comporta exactamente igual al toolkit real –En general, se proveen solamente aquellas funciones que están presentes en todos los toolkits 4 Reimplementación de los widgets –ej. Galaxy, OpenInterface Proveen bibliotecas de OIs que se comportan de acuerdo a cada plataforma –En tiempo de ejecución, debe existir una biblioteca grande Además de los widgets nativos de la plataforma, debe incluirse la reimplementación de estos widgets en el toolkit virtual

Construcción de Interfaces a Usuario - ©1999