Fenêtre genre "callout"

APAP Membre
17:46 modifié dans API AppKit #1
Bonjour,

Je cherche à  créer une fenêtre genre celle en noir: firefox-securite.png
Est-ce que cela existe tout fait ou sinon comment, faut-il faire?

Merci d'avance pour votre aide :)

Réponses

  • manu57manu57 Membre
    17:46 modifié #2
    Salut,

    Si ça existe c'est pas dans les API. Il y a peut être des frameworks.

    J'en ai eu besoin d'une, je l'ai écrite en partant d'une NSWindow transparente (opaque=NO) et une sous-classe de NSView pour dessiner le bord avec la petite flèche.  Cette view est enregistrée dans la NSWindow comme son "content". Après la view de contenu a proprement parlé peut être définie dans IB avec par exemple des contrôles de BWToolkit. Elle deviendra le "content" de la vue qui dessine les bords.


    Manu
  • APAP Membre
    17:46 modifié #4
    dans 1277720443:

    Merci, c'est exactement ce que je cherchais et j'ai découvert par la même occasion un petit site sympa que je ne connaissais pas. :D
  • APAP Membre
    17:46 modifié #5
    J'ai une petite question subsidiaire: comment utiliser une telle fenêtre sans qu'elle soit une sous fenêtre d'une NSwindow existante?

    En fait je veux qu'elle puisse être affichée sur n'importe quelle fenêtre
    - qu'elle ne récupère pas le focus
    - qu'elle récupères les événements souris

    Toute idée est la bienvenue :)
  • CéroceCéroce Membre, Modérateur
    juillet 2010 modifié #6
    Il faudrait créér une NSWindow perso.
    Comme tu le verras dans les divers tutos sur le net, sous-classer le dessin de NSWindow est une gageure, si bien qu'il est souvent préférable d'utiliser une fenêtre "transparente" et d'ajouter des vues personnalisées à  l'intérieur.

    Utiliser une fenêtre pose toutefois deux problèmes:
    - Positionner correctement la fenêtre perso par rapport au contrôle ciblé. Ce n'est pas évident parce qu'il faut faire des conversions de coordonnées, et ne pas placer la fenêtre perso hors de l'écran.
    - On peut déplacer la fenêtre du dessous, et il faut que la fenêtre perso suive.

    C'est pour cela qu'utiliser une NSView perso est plus simple.
  • APAP Membre
    17:46 modifié #7
    Merci pour réponse Céroce.
    Quelques petites questions additionnelles: j'utilise MAAttachedWindows cité ci-dessus. Apparemment elle est toujours utilisée en subwindow. Que faudrait-il changer pour que l'on puisse l'utiliser en fenêtre autonome?

    Merci :)
  • CéroceCéroce Membre, Modérateur
    17:46 modifié #8
    Qu'appelle-tu une sous-fenêtre ?
    Les fenêtres sont en haut de la hiérarchie d'affichage (même la barre des menus est une fenêtre). On ne peut pas mettre une fenêtre à  l'intérieur d'une autre. On peut seulement déplacer une fenêtre par rapport à  une autre ou mettre une vue à  l'intérieur d'une fenêtre ou d'une autre vue.
  • sisopetronsisopetron Membre
    17:46 modifié #9
    J'ai aussi testé ce code et je pense que ce qu'il veut dire c'est que la MAAttachedWindows ne peut être attachée qu'à  une fenêtre.  Je n'ai pas réussi à  la sortir du cadre de sa fenêtre associée et à  la faire pointer sur un statusItem par exemple. 
    Dommage.
Connectez-vous ou Inscrivez-vous pour répondre.