dessiner, déplacer, agrandir des blocks

RocouRocou Membre
04:41 modifié dans API AppKit #1
Bonjour,

je cherche à  déplacer et agrandir des blocs (de simples rectangles) à  la souris. (à  la façon des événements de iCal par exemple)
Ces blocs doivent s'afficher dans une NSListView ou une NSOutlineView.

Je ne sais pas vers où m'orienter. Est-il possible de dessiner dans une NSListView?

Réponses

  • psychoh13psychoh13 Mothership Developer Membre
    04:41 modifié #2
    La classe NSListView n'existe pas... NSTableView oui...

    Mais ce que tu veux faire n'est pas vraiment possible avec NSTableView ou NSOutlineView, tu risques d'avoir besoin de faire ta propre sous-classe de NSView et de gérer les événements toi-même...
  • RocouRocou Membre
    04:41 modifié #3
    dans 1242291527:

    La classe NSListView n'existe pas... NSTableView oui...

    Mais ce que tu veux faire n'est pas vraiment possible avec NSTableView ou NSOutlineView, tu risques d'avoir besoin de faire ta propre sous-classe de NSView et de gérer les événements toi-même...


    :-\\ Mince. J'étais persuadé que iCal gérait une NSTableView. Enfin bon, l'exercice aura au moins le mérite d'être formateur  :)
    En tout cas, merci pour l'aiguillage.
  • psychoh13psychoh13 Mothership Developer Membre
    04:41 modifié #4
    Bah non ça ne peut pas être une NSTableView, car une même ligne ne représente pas la même données sur toutes les colonnes, de plus, déplacer des cellules dans d'autres colonnes n'est pas possible, et encore tout ça c'est pour l'affichage par semaine ou jour, l'affichage par mois est encore différent.
  • RocouRocou Membre
    04:41 modifié #5
    dans 1242293776:

    Bah non ça ne peut pas être une NSTableView, car une même ligne ne représente pas la même données sur toutes les colonnes, de plus, déplacer des cellules dans d'autres colonnes n'est pas possible, et encore tout ça c'est pour l'affichage par semaine ou jour, l'affichage par mois est encore différent.


    Mon idée est d'empiler des NSView. Sur celle du "dessous", je dessine mes colonnes et sur celle du dessus, je dessine et manipule mes blocs. Des calques en quelques sorte. Est-ce envisageable? Est-ce une bonne idée?
  • AliGatorAliGator Membre, Modérateur
    04:41 modifié #6
    Bah à  mon avis c'est LA solution vers laquelle il faut partir, oui.

    Après chaque vue "calque" représentant un événement pourra traiter ses clics et mouvements de tentative de redimensionnement que tu pourras interpréter (genre drag&drop de la tâche ou cliquer/glisser d'un bord de la tache = volonté de déplacement de la tâche ou d'étirer la zone sur laquelle elle s'étend), demander à  ton modèle (qui contient les données générales de ton calendrier) si tu as le droit (si y'a pas une autre tâche qui gène l'étirement, etc), et si oui déplacer la vue "calque" représentant ta tâche.
  • RocouRocou Membre
    04:41 modifié #7
    dans 1242305385:

    Bah à  mon avis c'est LA solution vers laquelle il faut partir, oui.

    Après chaque vue "calque" représentant un événement pourra traiter ses clics et mouvements de tentative de redimensionnement que tu pourras interpréter (genre drag&drop de la tâche ou cliquer/glisser d'un bord de la tache = volonté de déplacement de la tâche ou d'étirer la zone sur laquelle elle s'étend), demander à  ton modèle (qui contient les données générales de ton calendrier) si tu as le droit (si y'a pas une autre tâche qui gène l'étirement, etc), et si oui déplacer la vue "calque" représentant ta tâche.


    Merci pour les pistes.
    Je constate qu'avec une NSSplitView, je n'ai pas accès au menu "Layout/Embed Object In/Scroll View" est-ce normal?
Connectez-vous ou Inscrivez-vous pour répondre.