Architecture générale des interfaces graphiques. IHM: Fondements des Interfaces Graphiques. Applications. Outils de construction d interfaces



Documents pareils
Cours. Cours 8 : Révisions. Importance. Interface homme-machine

Initiation au dessin Bitmap

Paramètres d accessibilité des systèmes d exploitation Windows et Mac

Des interfaces textuelles aux interfaces graphiques

Manuel du client de bureau distant de KDE

Support de formation Notebook

Importation et exportation de contenu

Utiliser le logiciel Photofiltre Sommaire

Optimiser pour les appareils mobiles

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS

Tutorial Terminal Server sous

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

TBI-DIRECT. Bridgit. Pour le partage de votre bureau. Écrit par : TBI Direct.

L espace de travail de Photoshop

WINDOWS 8. Windows 8 se distingue par la présence de 2 interfaces complémentaires :

2013 Pearson France Adobe Illustrator CC Adobe Press

Conservez la documentation à portée de main pour toute référence future. Le terme «pointeur» dans ce manuel désigne le pointeur interactif YA-P10.

MEMENTO D'UTILISATION Du T.N.I. SmartBoard (Version )

Synoptique des icônes Interwrite Workspace

HP Color LaserJet Pro MFP M476dn

Tapez le titre de la page «BASTIA ville méditerranéenne», puis allez deux fois à la ligne à l aide de la touche Entrée.

INTERWRITE Workspace

Silhouette Studio Leçon N 2

Comment sélectionner des sommets, des arêtes et des faces avec Blender?

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

Les calques : techniques avancées

PRISE EN MAIN D ILLUSTRATOR

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

Utiliser le service de messagerie électronique de Google : gmail (1)

Table des matières. F. Saint-Germain / S. Carasco Document réalisé avec OpenOffice.org Page 1/13

SolidWorks edrawings et publications

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Indiquer l'espace libre sur le disque dur

l'ordinateur les bases

Séminaire d information MIGRATION WINDOWS 7 ET OFFICE 2010

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

Vous allez le voir au cours de ce premier chapitre, 1. Découvrir l ipad

COMMENCER AVEC VUE. Chapitre 1

Utilisation du logiciel GALAAD

L écran du marais : Comment configurer le viewer OpensSim

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

Mise en scène d un modèle dans l espace 3D

TRAFFIC EXPERT. LA SOLUTION INTELLIGENTE POUR LES SYSTEMES DE GESTION DE TRAFFIC L expérience de STERIA à SINGAPOUR. Nabil DJEMAME (Steria)

Créer un premier document avec Pages

L environnement de travail de Windows 8

Initiation à linfographie

LES TABLETTES : GÉNÉRALITÉS

Virtual Universe aperçu numéro 1

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de

Guide de l utilisateur Mikogo Version Windows

point On obtient ainsi le ou les points d inter- entre deux objets».

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

Cours de numérisation sur Epson Perfection

Les PowerToys pour Windows XP

Réalisation de cartes vectorielles avec Word

Correction des Travaux Pratiques Organiser son espace de travail

GUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Installation et prise en main d UBUNTU

Java 7 Les fondamentaux du langage Java

Foire aux questions sur Christie Brio

Intégrer des médias. Plateforme e-tourisme. demo.minisites.encharentemaritime.com

-1 - Postes de travail graphiques

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Publier dans la Base Documentaire

Interface Homme-Machine 1

La programmation orientée objet et le langage C++

1. DÉMARRER UNE SESSION SÉCURISÉE SUR LE MACINTOSH SESSIONS DES APPLICATIONS CLIENTES SUR LE MACINTOSH... 5

Opérations de base sur ImageJ

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

pcon.planner 6 Préparer et présenter une implantation en toute simplicité

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,


PRESENTATION DU LOGICIEL

2X ThinClientServer Guide d utilisation

Gestion des différentes tailles d écran

Dossier 03 Périphériques d acquisition

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8.

Cours de D.A.O. Mécanique

ActoPalm 1.0 b. Logiciel d'aide au relevé d'observation in situ sur Organiseurs PalmOS Compatibles. Alain Kerguelen, mai 2002

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

GUIDE D UTILISATION DU TABLEAU BLANC INTERACTIF EBEAM EDGE

Windows 7 - Installation du client

COPY. Picture Style Editor Ver. 1.4 MODE D EMPLOI. Logiciel de création de fichiers de style d image. Contenu de ce mode d emploi

Le cas «BOURSE» annexe

Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur

Utilisation de l éditeur.

Manuel d utilisation de ndv 4

Cyber-base du Pays Martégal. Atelier «Découverte de l ordinateur»

ISTIA INNOVATION. 62, Ave ND du Lac F Angers

Manuel de formation Spaceman 1 ère journée

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

Windows 7. Support utilisateurs

D180 GUIDE DE LINUX L UTILISATEUR. Historique de révision Mars 2008, Guide de l utilisateur Linux.

31. OOo Draw Réglages propres à Draw

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

13) Calibrage du tableau Interwrite Dualboard

PR OC E D U RE S D E B A S E

Transcription:

Architecture générale des interfaces graphiques Applications IHM: Fondements des Interfaces Graphiques Olivier Chapuis chapuis@lri.fr Outils de construction d interfaces Bibliothèque graphique Système de fenêtrage Périphériques d entrée/sortie Système d exploitation 2 Périphériques de sortie Périphériques de sortie Ecrans bitmap Cathodique, LCD, Plasma, OLED. Taille exprimé en la dimenssion de la diagonal en pouce (1 pouce = 2.54 cm, 30 pouces 76cm) et le ratio largeur sur hauteur (e.g., 16/9). Résolution exprimé en pixel (e.g., 2560x1600). La taille plus cette résolution donne une densité exprimé en général en dpi : dot[pixel] per[par] inch[pouce] (typiquement 100 dpi 40 pixels par cm, c.à.d. 1 pixel 0.25 mm). Résolution en couleurs ( profondeur RGB[A]): 8 bits (256 couleurs), 16 bits (65536 couleurs) ou 24[32] bits (16 millions de couleurs [+256 niveaux de transluscence ]) Résolution temporelle exprimé en Hz qui est le nombre de trame [frame] par seconde que l écran peut afficher (typiquement 60 Hz). Exemple de bande passante: 60 img/s * 2560x1600 pixels * 3 octets/pixel 700 Mo/s videos/output/volumetric_coll.avi videos/output/2004-volumetricdisplay.mov videos/output/volumetric.flv 3 4

Périphériques d entrée Périphériques d entrée: Control-Display Gain claviers, boîtes à boutons potentiomètres (rotatifs, linéaires) souris, tablettes, joystick, trackball écrans tactiles, crayons optiques reconnaissance de la parole capteurs de position et de direction vision par ordinateur surfaces interactives dispositifs hybrides entrée/sortie Retour d effort Résolution: nombre d impulsion que peut envoyer le periphérique d entrée pour une distance donné. Souvent expriment en dpi = dot[impulsion] per[par] inch[pouce]. 1 pouce = 2.54 cm Exemple pour une souris: entre 300dpi (lent), 600dpi (typique) et 2400dpi (max?), soit, respectivement une impulsion tous les 0.083, 0.042 et 0.01 mm Controle-Display Gain [Gain contrôle-écran]: CDGain = Distance parcourue à l écran par le pointeur Distance parcourue par le périphérique d entrée Exemples. Ecran 100 dpi, souris 600 dpi et une impulsion souris un pixel: CDGain = 6. Tablette avec contrôle direct tablette-écran: CDGain = 1. videos/force/phantom.flv 5 6 Périphériques d entrée: Accélération Problème: Si le CDGain est trop grand il est difficile d être précis, mais si il est trop petit on est obligé de débrayer la souris pour parcourir de grande distance. Accélération: modification dynamique du CDGain en fonction de la vitesse de la souris. Plus on va vite, plus le CDGain devient grand. Pointer Pointer Pointer Pointage: Loi de Fitts D W TM = a + b.id où ID = log 2 ( D W + 1) MT : Temps de Mouvement ID: Indice de Difficulté (de la tâche) a, b: constantes empiriques (qui dépendent des utilisateurs, du péripherique...etc.) Souris Souris Souris TM CDGain Constant X Window: Deux valeurs pour le CDGain Mac OS X et Windows: Changement progressif du CDGain ID 7 8

Loi de Fitts et IHM Techniques de Pointage Design d interface (clavier logiciel, interface adapté à différent type d utilisateurs,...) Battre la Loi de Fitts en réduisant D ou agrandissant W D W Technique de Pointage: reduire D ou agrandir W Comparer les performances entre péripheriques d entrée (souris, touchpad, tablette...) Prédiction de la position de la cible pour réduir D Agrandir la taille des cibles lorsque le curseur se trouve dessus (Mac OS X Doc) http://profs.logti.etsmtl.ca/mmcguffin/research/expandingtargets/ TM TM Agrandir W dans l espace moteur [Blanch et al.] demos/semantic-pointing/ Bubble cursor [Grossman & Balakrishnan] videos/pointing/bubble-cursor.mov DynaSpot [Chapuis & al.] videos/pointing/chi09-dynaspot.mov ID ID EW (a) Cursor Center La pente de la droite comme un indice de performance W Activation Area Captured Target (b) (c) Uncaptured Target 9 10 Système de fenêtrage Modèles de fenêtrage Système de fenêtrage. Bas niveau du rendu (lien avec le matériel), partage des ressources (sorties vidéos, entrées clavier-souris) grâce au concept de fenêtre Fenêtre. Une surface (rectangulaire) d affichage utilisée par une application pour réaliser les entrées/sorties. Les fenêtres permettent de partager la sortie vidéo entre les applications. Gestionnaire de fenêtres. Haut niveau, placement et ordre en Z des fenêtres (superposition des fenêtres), décorations des fenêtres, interactions avec l utilisateur (deplacement, redimensionnement, maximisation et iconification des fenêtres) Utilitaires de Gestion de fenêtres. Barre de Tâche, Gestionnaire de bureaux virtuels, notifications...etc. Interface Utilisateur Graphique. L intérieur des fenêtres, le niveau applicatif visible où se déroule l interaction Environnement de Bureau. Ensemble cohérent présenté à l utilisateur (gestionnaire de fenêtres + utilitaires de gestion de fenêtres + ensemble d applications) Pavage Arbre Recouvrement 4 écrans virtuels 11 12

Modèles de fenêtrage: Dessin Modèles de fenêtrage: Entrées Gestion des entrées: le système passe les événements souris et clavier à une fenêtre (fenêtre qui à le focus). Dessin sur l écran: Réaffichage des parties cachées via un évènement du système de fenêtrage à l application. Mais, de plus en plus, on fait différement: on dessine out of screen fenêtre par fenêtre, puis on compose l écran avec les fenêtres. Permet, par exemple, des effets et des fenêtres semi-transparentes. Plus coûteux en mémoire, mais plus rapide et donne une interaction plus fluide... ceci n est plus un problème avec nos GPU acutels... Événements du système de fenêtrage aux applications: changement de focus, entrée-sortie de fenêtre Politique de changement de focus: Clique pour le Focus clique passé à l application ou non (non avec Mac OS X) Le Focus suit la souris possible avec X Window Y-a-t-il une politique meilleure que l autre? Problème connexe: ordre en z des fenêtres. videos/wm/chi07-copypaste.mov 13 14 Le Système X Window Remote Desktop / VNC (Virtual Network Computing) X is a network-oriented windowing system with a Server-Client Model Display = Keyboard + mouse + screens Applications can run across the network X Window System architecture Xvnc renders the display in memory, making the desktop image available to vnc viewers (via the net). The vnc viewers forwards mouse and keyboard events to the Xvnc server. X is extensible (XInput, XRender, XRandr, XComposite, XDamage, MPX...) 15 16

Metisse Gestion des Fenêtres: Problématiques application X11 application X11 application X11 protocole X Xmetisse protocole Metisse FVWM Compositeur Metisse commandes d'affichage Fvwm Compositor Système de fenêtrage natif événements des périphériques d'entrée Xmetisse: a X server which does off-screen rendering per window FVWM + FvwmCompositor: On-screen rendering (compositing) in OpenGL (window = textured polygone), Window management and User interaction Les activités se multiplient traitement de texte, tableur, jeux, courrier électronique, Web, messagerie instantanée, édition d images, de sons et de vidéos, media players etc. De plus en plus de fenêtres! Exemples de Problèmes de recherches: Placement des fenêtres videos/wm/2000-dynamic-space.mp4 videos/wm/1996-elastic-windows.mov Pavage, recouvrement et tab videos/wm/2001-overlapping-windows.mov Passer d une fenêtre à l autre Window Switching Problem et correspondance tâche ensemble de fenêtres videos/wm/2004-scalablefabric.mov videos/wm/2000-task-gallery.mpg videos/wm/uist05-metisse.mov / videos/wm/uist06-facades.mov 17 18 Librairies graphiques Librairies graphiques: Autres Fonctions Modèle de dessin Dessin direct (modèle du peintre) Dessin structuré : description structuré (e.g., via avec du xml) Définition d objets graphiques primitives graphiques lignes, courbes (splines, bezier), Polygones (triangles, rectangles, etc.), arcs, cercles, ellipses, textes, images bitmap,... etc. Géométrie: taille et position Attributs graphiques: couleur, épaisseur des lignes, fonte, texture, gradient, transparence, éclairage... etc. Clipping (dessin limité à une partie de l écran) par masque bitmap ou région rectiligne (horizontales et verticales uniquement), polygonale, définie par des lignes et courbes (ex : PostScript) Anti-aliasing, gestion de la transparence Conversions entre espaces de couleur (RGB, HSV, CMY, etc.) Structures de données pour l affichage (graphe de scène) Librairies/Modèles graphiques Dessin direct: Xlib (X Window), Java2D, OpenGL Dessin structuré: PDF, SVG, Cario 19 20

Librairies graphiques: Systèmes de coordonnées Librairies graphiques: Événements Coordonnées liées au périphérique unité = pixel coordonnées écran ou fenêtre? quelle orientation et origine? Coordonnées physiques unité = cm, pouces, etc. système indépendant du périphérique mais lié à la technique de présentation utilisée tantque non fini faire attendre jusqu à file non vide // attente passive ev := tête de file // extraire événement cible := cherchercible(ev) si cible NIL alors cible.traiter(ev) fin tantque Coordonnées du modèle unité = m, km, etc. Indépendant de l application Style très différent de la programmation algorithmique 21 22 Outils de construction d interfaces (boîtes à outils) Objectifs visés : étendre le vocabulaire, faciliter l apprentissage et la réutilisation de code Abstraction atomique: le widget Objet interactif, Composant logiciel Bouton, menu, barre de défilement, boîte de dialogue,... Outils de construction d interfaces (boîtes à outils) Il existe de nombreuses boîtes à outils Xt, Motif, GTK (C) sous Linux MFC (C++) et ses dérivés sous Window Carbon (C), Cocoa (Objective-C) sous OS X Tk (Tcl, Python, Perl et autres), Qt (C++) et Swing (Java) sur toutes les plate-formes Exemples de services : placement des widgets, liens widgets - application, squelettes d application, générateur de code Un widget = trois facettes Présentation Comportement Interface d application Application = arbre de widgets Noeuds : conteneurs (barre de menus, boîte de dialogue,...) Feuilles : widgets simples (boutons, barres de défilement,...) Ces boîtes à outils présentent deux limitations majeures: la programmation est fastidieuse l interaction se limite le plus souvent aux widgets pré-existants Exemple d interaction simple qui reste difficile à programmer : le drag-and-drop 23 24

Exemple de Widgets Exemple : les widgets de base du Macintosh (1984) bouton (button) et label menu déroulant (pull-down menu) case à cocher (checkbox), bouton radio (radio button) potentiomètre (slider), champ texte (text field) boîte de dialogue pour les fichiers (file open/save dialog) D autres exemples: Barre de Progression Bulle d aide (Tooltips) Arbre d Icones Haut Niveau: Sélecteur de Fonte et de Couleur, Calendar Exemple de service : Placement des widgets Interface/Application = arbre de widgets Placement des widgets Règles générales Imbrication géométrique d un widget fils dans son parent Contrôle par le parent du placement de ses fils Algorithme de placement Taille naturelle de chaque fils Taille et position finales imposées par le parent Contraintes : Grille, formulaire, etc. Placement dynamique http://www.digitalfanatics.org/e8johan/projects/widgets/ http://library.gnome.org/devel/gtk/unstable/ch02.html videos/toolkit/artistic-resizing.mov 25 26 Facettes d un widget Interface d application : fonctions de rappel (callbacks) Présentation Apparence graphique Plus ou moins Paramétrable (e.g. Look and Feel Java) Comportement Réaction aux actions de l utilisateur Peu ou pas paramétrable Interface d application (Liens widgets - application) fonctions de rappel (callbacks) valeurs actives envoi de message 1. Enregistrement lors de la création du widget 2. Appel lors de l activation du widget DoSave (...)... DoSave (...)... Problème : spaghetti des callbacks Partage d état entre plusieurs call-backs par variables globales global string filename; DoSetFile () filename =... DoSave () SaveTo(filename) 27 28

Interface d application : valeurs actives Une valeur active établit un lien bi-directionnel entre une variable d état d un ou plusieurs widget(s) et une variable du noyau fonctionnel 0 26 Interface d application : envoi de message Association d un objet à un widget et de méthodes de l objet aux changements d état du widget 1. Un objet est associé au widget au moment de sa création btnhandler 2. Des méthodes de cet objet seront appelées par le widget btnhandler.handleclick(...); i := 12 12 Avantage : permet une bonne encapsulation des données Problèmes: Limité aux types simples (e.g., entier), Lien de retour peut être coûteux Avantages: Vues multiples savedialog { string filename } savedialog.editfield(event) savedialog.ok(event) 29 30 Exemple de service : squelettes d application Générateurs d interface Principe : Application à trous Code d une application incomplète, à compléter Contient ce que l on ne peut pas mettre dans une toolkit Structure globale de l application Fonctionnalités globales (historique, copier-coller,...) Interactions non widgets (drag-and-drop) Trahit l inadéquation des langages de programmation Exemple : MacApp (Apple, 1986) Notion de document (contenu d une fenêtre) Notion d action (que l on peut faire, défaire) But : aider (automatiser?) la mise en oeuvre d interfaces placer les widgets, modifier leurs attributs (couleur, etc.) les connecter à l application tester leur comportement De nombreux noms pour une même famille de systèmes user interface management systems (UIMS) user interface builder user interface development environment Exemples : Visual* sous Windows, Interface Builder sous OS X 31 32

Générateurs d interface A LIRE Inconvénients : What You See Is All You Get solutions partielles il reste tout de même du code à écrire... le code généré est souvent difficile à modifier doc/notes-cours2.pdf doc/notes-cours3.pdf et toujours: doc/dui-chapter1.pdf Interface Builder: http://www.youtube.com/watch?v=vixd-n6cbdy MaggLite: videos/toolkit/magglitepuzzle.avi http://www.emn.fr/x-info/magglite 33 34