24.06.2013 Views

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Ensuite, nous comparons la taille obtenue avec les limites autorisées pour chacune des tâches<br />

dans l’ordre fraîchement déterminé lors de la création de la liste décroissante. Si la taille est<br />

inférieure, nous changeons le statut de la tâche à ‘non redimensionnable’, ou laissons cela<br />

comme tel dans le cas contraire.<br />

Dans la pratique malheureusement, cette opération ne fonctionne pas. En effet, bien que le<br />

principe soit acceptable, la récupération des tailles ne se fait pas de manière correcte. Ceci<br />

serait apparemment lié à un problème situé sur une couche inférieure à QTk.<br />

Concrètement, plutôt que de renvoyer la taille correcte des objets, la méthode QTk de<br />

récupération des dimensions renvoie la plupart du temps la taille 1 pixel sur 1 pixel, ce qui est<br />

assez ennuyeux puisque notre méthode croit alors que l’objet interactif est trop petit et change<br />

son statut à ‘non redimensionnable’. Même en utilisant {QTk.flush} censée bloquer les<br />

opérations jusqu’à ce que toutes les modifications opérées sur une fenêtre aient été réalisées,<br />

les résultats sont incorrects. En effet, en temps normal, tous les appels sur une fenêtre sont<br />

appliqués en les combinant tous en un seul lot pour des raisons d’efficacité. Aussi, les valeurs<br />

renvoyées pourraient être de 1 pixel sur 1 pixel et cette dernière méthode a donc pour objectif<br />

d’empêcher cela et récupérer les bonnes dimensions. Or, ceci n’est pas toujours le cas.<br />

L’inconvénient supplémentaire est qu’il n’existe pas, à notre connaissance, d’autres<br />

techniques pour effectuer le redimensionnement d’objets interactifs sans avoir la possibilité de<br />

récupérer la taille des objets interactifs.<br />

Le module Graphics Resizing Helper<br />

La méthode de choix d’images contenue dans ce module a un fonctionnement en deux étapes.<br />

La première consiste à choisir la taille des images pour les éléments de présentation purs (qui<br />

ne se réfèrent à aucune tâche). Si ce choix permet d’atteindre les limites autorisées, nous<br />

arrêtons le traitement à cet endroit. Sinon, nous continuons en choisissant la taille des<br />

éléments graphiques du domaine qui sont manipulés par des tâches à représenter.<br />

La première étape se déroule de la manière suivante : nous déterminons tout d’abord le<br />

nombre maximal d’images disponibles pour l’entièreté des éléments spécifiques de<br />

présentation. Ensuite, nous commençons la réduction du nombre d’images disponibles.<br />

Nous vérifions la taille de la présentation. Si celle-ci n’est pas valable, nous prenons, pour<br />

tous les éléments, une image de format réduit (lors de la déclaration du modèle unique et des<br />

éléments spécifiques de présentation, la liste des images disponibles est déjà organisée de<br />

manière décroissante en fonction de la taille de l’image). Et nous continuons la réduction<br />

jusqu’à ce qu’il n’y ait plus de possibilité de le faire ou que la résolution cible soit atteinte<br />

(remarque : certains éléments spécifiques de présentation peuvent être optionnels. Ceci<br />

implique que certaines images peuvent être carrément supprimées).<br />

Si la première étape n’a pas mené à un résultat concluant, nous passons à la deuxième étape.<br />

Nous générons une liste croissante de tâches en fonction de leur importance relative (coût).<br />

Ensuite, nous appliquons la réduction dans l’ordre obtenu jusqu’à ce que la résolution cible<br />

soit atteinte ou qu’il n’y ait plus de possibilité de choix d’images dans un format réduit.<br />

92

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!