Page 1 sur 1

Jeu 26/07/2012 - Actualités

Posté : jeu. 26 juil. 2012 10:54
par Xavier
Etats des cellules


Pour le moment une cellule a un seul état qui peut avoir trois valeurs :
  • Normale.
  • Sélectionnée. Plusieurs cellules peuvent avoir cette valeur.
  • Active. Pour le moment, l'activation d'une cellule la considère comme sélectionnée. Une seule cellule peut avoir cette valeur (qui déclenchera l'affichage de ses évènements).
Mais il y a un problème avec ce système car le fait de désélectionner la cellule active la rend "normale", il manquerait une valeur "Active désélectionnée". En fait il faudrait séparer les états d'activation et de sélection. En extrapolant aux autres besoins, une cellule devrait avoir trois états à deux valeurs :
  • Courante : la cellule affiche la date courante (O/N).
  • Active : les évènements de la cellule sont affichés (O/N).
  • Sélectionnée : la cellule sera affectée par une action de groupe (O/N).
Le code va être revu, mais on revient aux aspects graphiques, chacun de ces états devant être individuellement visible à l'écran et ne pas cacher les autres. :(

Les essais de couleurs sur les bordures n'ont laissé que le rouge et le noir comme candidats. Les autres couleurs sombres ne sont pas facilement distinguées (la bordure est de 1 pixel, l'augmenter réduirait trop la surface interne des mini-icônes), et les autres couleurs vives / fluos sont noyées dans le gris de fond.

On va voir le résultat avec les attributs suivants, aucun n'écrasant l'autre :
  • Courante : texte en rouge.
  • Active : texte en gras.
  • Sélectionnée : bordure visible.

Re: Jeu 26/07/2012 - Actualités

Posté : jeu. 26 juil. 2012 12:04
par Denis
Pourquoi pas 2 booleans (les informations étant indépendantes en fait):
- un pour dire si cellule active ou non (une seule l'a)
- un autre pour dire si cellule est sélectionnée

Sinon, pour représentation, oui en effet tu dois jouer avec des indications qui n'interfèrent pas entre elles

Jeu 26/07/2012 - Actualités

Posté : jeu. 26 juil. 2012 13:06
par Xavier
Calendrier


Yes, j'ai 2 booleans maintenant. Séparer les états a en fait joliment simplifié le code, et même résolu les pertes de sélection au resize.

Voilà donc le nouveau look, sans doute pas encore parfait mais on poura affiner après utilisation réelle :
Calendar.png

Jeu 26/07/2012 - Actualités

Posté : jeu. 26 juil. 2012 14:25
par Xavier
Défilement


Le scrolling du calendrier via les boutons fonctionne parfaitement. Les problèmes tant redoutés ont été annulés par le système de double liste (une pour les dates, l'autre pour les cellules) mis en place pour gérer le resize de la fenêtre.

Il est donc possible de sélectionner des dates au hasard, de scroller hors de vision de ces dates et de les voir sélectionnées en revenant.


Mais il va falloir retourner un peu sur la gestion des sélections, car il manque le code pour les semaines. :mrgreen:


Edit : comme le scroll ne modifie pas la date active, c'est donc le système XT3 qui a été remis : avancer ou reculer d'un mois ou d'une année scrolle en fait de 4 et 52 semaines. ;)

Jeu 26/07/2012 - Actualités

Posté : jeu. 26 juil. 2012 15:46
par Xavier
Sélection de semaines


La multi-sélection de jours par clic sur la de semaine a été partiellement implémenté :
  • Le [Clic] réinitialise la sélection aux seuls jours de la semaine.
  • Le [Ctrl + Clic] active / désactive les sélections de la semaine, pratique pour inverser une sélection.
  • Le [Shift + Clic] n'a pas été implémenté, trop complexe et inutile puisqu'existant déjà pour les jours. (La commande est quand même récupérée mais est ignorée, afin de ne pas perdre une sélection existante.)
Cette base de calendrier répond assez bien aux besoins XT4 :
  • Nombre de semaines dépendant de la largeur de fenêtre.
  • Sélections multiples indépendantes du scrolling.
  • Affichage et sélection de semaines.
  • Optimisations de l'affichage.

Il est temps d'attaquer le modèle des données.

Re: Jeu 26/07/2012 - Actualités

Posté : jeu. 26 juil. 2012 17:48
par Denis
bravo, beau boulot, et assez rapide au vu de la complexité !
Bonne continuation pour le plus facile (les data) ;-)