Fenêtres "collantes" et child windows

ChachaChacha Membre
16:46 modifié dans API AppKit #1
Salut,

Je suis en train de finaliser une nouvelle appli formidable, et il y a quelques petits détails de fignolage d'interface que je n'arrive pas à  implémenter.
Notamment, je n'arrive pas à  faire des fenêtre "collantes". Je m'explique ; le mieux est d'aller voir dans OmniGraffle : il y a une tripotée d'inspecteurs, qui ont la propriété très pratique de coller les uns aux autres quand on les approche assez près. Ainsi on peut les déplacer en bloc.
Pour simuler un tel comportement, j'ai essayé d'utiliser des "child windows". Quand une fenêtre est la "child" de son "parent", bouger le "parent" fait bouger la "child" en même temps (et pas l'inverse). Idéal, non ? (méthodes addChildWindow...)
Malheureusement, j'ai constaté que cela semble limité à  3 niveaux de descendance.
Si A, B, C, D sont des fenêtres,
Si A est père de B qui est père de C qui est père de D,
et bien si on bouge A, B et C bougent, mais D reste immobile.
Donc il semble que les "child windows" soient inutilisables pour mon problème.
Auriez vous d'autres pistes ?

+
Chacha

Réponses

  • BruBru Membre
    16:46 modifié #2
    Je suis surpris de cette limitation des child windows...

    Sinon, tu peux toujours faire le travail toi-même en observant les mouvements de la fenêtre mère pour appliquer le mouvement idoine à  sa ou ses fenêtres filles.

    Cette observation se fait par le delegate windowDidMove: de NSWindows par exemple.

    .
  • ChachaChacha Membre
    16:46 modifié #3
    dans 1127465991:

    Je suis surpris de cette limitation des child windows...

    Moi aussi; j'en ai fait un rapport de bug


    Sinon, tu peux toujours faire le travail toi-même en observant les mouvements de la fenêtre mère pour appliquer le mouvement idoine à  sa ou ses fenêtres filles.
    Cette observation se fait par le delegate windowDidMove: de NSWindows par exemple.

    Et non, justement, le windowDidMove ne se déclenche qu'après la fin d'un mouvement; or, là , il faudrait détecter *pendant* le mouvement.

    +
    Chacha
  • 16:46 modifié #4
    Il me semble que ce type d'inspecteur est proposé dans le OmniAppKit, je te conseille d'aller y jeter un ½il.
  • ChachaChacha Membre
    16:46 modifié #5
    dans 1127502889:

    Il me semble que ce type d'inspecteur est proposé dans le OmniAppKit, je te conseille d'aller y jeter un ½il.


    Arf, j'aime bien faire à  la mimine. ça risque d'être un peu noyé dans le OmniAppKit.

    +
    Chacha
  • ChachaChacha Membre
    16:46 modifié #6
    dans 1127465991:

    Je suis surpris de cette limitation des child windows...

    J'en avais fait un bug report, et j'ai eu la réponse ce matin : c'est bien un bug, et ils bossent dessus.

    +
    Chacha
  • AntilogAntilog Membre
    16:46 modifié #7
    Et alors Chacha, ça fait quoi de participer activement à  l'amélioration de Mac OS X?
    <3 :p
  • ChachaChacha Membre
    16:46 modifié #8
    dans 1127902463:

    Et alors Chacha, ça fait quoi de participer activement à  l'amélioration de Mac OS X?

    J'adore, parce qu'il y a un vrai retour.
    J'ai presque une centaine de bug report, pas mal de duplicate, mais je sais qu'ils les lisent, au moins.
  • elfelf Membre
    16:46 modifié #9
    Tu envoie à  dts@apple.com ? ou depuis l'ADC, en tout cas j'ai pas compris ou moi...
  • ChachaChacha Membre
    16:46 modifié #10
    dans 1127913497:

    Tu envoie à  dts@apple.com ? ou depuis l'ADC, en tout cas j'ai pas compris ou moi...

    Comme je suis inscrit à  l'ADC (gratuit) je peux poster sur le Bug Reporter :
    https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa

    +
    Chacha
  • elfelf Membre
    16:46 modifié #11
    je suis aussi inscrit à  l'ADC mais j'avais jamais vu ça encore, merci de m'avoire appris quelquechose
Connectez-vous ou Inscrivez-vous pour répondre.