Comment inserer une icone dans la barre de titre ?

GenoseGenose Membre
11:44 modifié dans API AppKit #1
bonsoir,
je cherche comment inserer unre icone dans la barre de titre, genre xcode, finder.

merci.

Réponses

  • aranaudaranaud Membre
    11:44 modifié #2
    L'icone est ajouté automatiquement suite à  l'ouverture d'un document.

    Sinon essaye avec
    - (void)setMiniwindowImage:(NSImage *)anImage
    
  • 11:44 modifié #3
    Si c'est genre Xcode & co, l'icone est liée au type de fichier "géré" par la fenêtre. Cette méthode devrait faire l'affaire:
    [tt]- (void)setTitleWithRepresentedFilename:(NSString *)path[/tt]

    Sinon avec ceci tu devrais avoir le bouton qui contient cette icône:
    [tt]NSButton *button = [myWindow standardWindowButton:NSWindowDocumentIconButton];[/tt]

    Ensuite, tu peux utiliser [tt]setImage:[/tt] pour modifier l'image du dit bouton.

    @aranaud: la méthode que tu donnes permet d'attribuer une image perso à  une fenêtre lorsqu'elle est réduite dans le dock (comme lorsqu'on réduit une fenêtre iChat, on a l'avatar de la personne avec qui on cause).
  • aranaudaranaud Membre
    11:44 modifié #4
    dans 1133544461:

    @aranaud: la méthode que tu donnes permet d'attribuer une image perso à  une fenêtre lorsqu'elle est réduite dans le dock (comme lorsqu'on réduit une fenêtre iChat, on a l'avatar de la personne avec qui on cause).

    Je serai moins bête se soir.  :fouf):
  • GenoseGenose Membre
    décembre 2005 modifié #5
    dans 1133544461:

    Si c'est genre Xcode & co, l'icone est liée au type de fichier "géré" par la fenêtre. Cette méthode devrait faire l'affaire:
    [tt]- (void)setTitleWithRepresentedFilename:(NSString *)path[/tt]

    Sinon avec ceci tu devrais avoir le bouton qui contient cette icône:
    [tt]NSButton *button = [myWindow standardWindowButton:NSWindowDocumentIconButton];[/tt]

    Ensuite, tu peux utiliser [tt]setImage:[/tt] pour modifier l'image du dit bouton.




    es ce que je me suis trompé dans la declaration, est bien celle-ci pour que ca fonctionne pas ?!

    [[NSWindow alloc] initWithContentRect:NSMakeRect(200,200,400,400) styleMask:NSWindowDocumentIconButton | NSClosableWindowMask backing:NSBackingStoreBuffered defer:NO];


    carpour l'instant je n'arrive pas à  avoir d'image et pareil quand je lui demande explicitement d'en mettre une, comme tu me l'as montré.  >:(
    qu es ce qui cloche  ?

    bon ok, pour finir je crois que je vais me passer de Aqua et crer mon propre style Gwnaetooo ! du GTK maison en somme.
  • BruBru Membre
    décembre 2005 modifié #6
    L'icône dans la barre de titre se nomme proxy icon.

    Elle est automatiquement mise en place par le système lorsque la fenêtre est de type document window. Dans ce cas, le titre de la fenêtre est le chemin du document en cours d'édition, et la proxy icon est l'icône générique du document.

    Tout ceci se règle par les méthodes setTitleWithRepresentedFilename: ou setRepresentedFilename:. Ces méthodes demandent en paramètre un chemin pointant vers un fichier, et la proxy icon sera créée à  partir de l'icône (telle qu'on la voit dans le Finder) de ce fichier.

    [EDIT]

    Par exemple, pour avoir l'icône de Xcode :
    <br />&nbsp; &nbsp; [maFenetre setRepresentedFilename:@&quot;/Developer/Applications/Xcode.app&quot;];<br />
    


    [/EDIT]

    .
  • GenoseGenose Membre
    11:44 modifié #7
    dans 1133607191:

    L'icône dans la barre de titre se nomme proxy icon.

    Elle est automatiquement mise en place par le système lorsque la fenêtre est de type document window. Dans ce cas, le titre de la fenêtre est le chemin du document en cours d'édition, et la proxy icon est l'icône générique du document.


    .



    mais dans le cas où tu veux personnaliser cette icone (j'aurais dû le dire avant je crois), comment fait tu alors ?
  • BruBru Membre
    11:44 modifié #8
    dans 1133615454:

    mais dans le cas où tu veux personnaliser cette icone (j'aurais dû le dire avant je crois), comment fait tu alors ?


    Comment je fais ? Je fais ça :
    <br />{<br />&nbsp; &nbsp; NSButton *proxyIcon;<br />&nbsp; &nbsp; NSImage *imageProxyIcone;<br />&nbsp; &nbsp; NSRect positionProxyIcon;<br /><br />&nbsp; &nbsp; // test si la proxy-icon existe déjà <br />&nbsp; &nbsp; proxyIcon=[maFenetre standardWindowButton:NSWindowDocumentIconButton];<br /><br />&nbsp; &nbsp; // la proxy-icon n&#39;existe pas, alors on l&#39;ajoute dans la barre de titre de la fenêtre<br />&nbsp; &nbsp; if (!proxyIcon)<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; // on ajoute une proxy-icon bidon, juste pour récupérer sa taille et sa position<br />&nbsp; &nbsp; &nbsp; &nbsp; [maFenetre setRepresentedFilename:[[NSBundle mainBundle] bundlePath]];<br />&nbsp; &nbsp; &nbsp; &nbsp; proxyIcon=[maFenetre standardWindowButton:NSWindowDocumentIconButton];<br />&nbsp; &nbsp; &nbsp; &nbsp; positionProxyIcon=[proxyIcon frame];<br /><br />&nbsp; &nbsp; &nbsp; &nbsp; // la proxy-icon bidon n&#39;est plus utile, alors on la supprime<br />&nbsp; &nbsp; &nbsp; &nbsp; [maFenetre setRepresentedFilename:@&quot;&quot;];<br /><br />&nbsp; &nbsp; &nbsp; &nbsp; // maintenant, on ajoute notre proxy-icon<br />&nbsp; &nbsp; &nbsp; &nbsp; [maFenetre addDocumentIconButton];<br />&nbsp; &nbsp; &nbsp; &nbsp; proxyIcon=[maFenetre standardWindowButton:NSWindowDocumentIconButton];<br /><br />&nbsp; &nbsp; &nbsp; &nbsp; // et on la positionne à  l&#39;emplacement de la proxy-icon bidon<br />&nbsp; &nbsp; &nbsp; &nbsp; [proxyIcon setFrameOrigin:positionProxyIcon.origin];<br />&nbsp; &nbsp; }<br /><br />&nbsp; &nbsp; // on récupère une NSImage qui servira de proxy-icon...<br />&nbsp; &nbsp; imageProxyIcone=[[NSImage alloc] initWithContentsOfFile:@&quot;/Library/User Pictures/Sports/Soccer.tif&quot;];<br /><br />&nbsp; &nbsp; // on adapte l&#39;image à  la taille des proxy-icons (normalement 16x16)<br />&nbsp; &nbsp; [imageProxyIcone setScalesWhenResized:YES];<br />&nbsp; &nbsp; [imageProxyIcone setSize:positionProxyIcon.size];<br /><br />&nbsp; &nbsp; // on met l&#39;image dans la proxy-icon de la fenêtre<br />&nbsp; &nbsp; [proxyIcon setImage:imageProxyIcone];<br />&nbsp; &nbsp; [imageProxyIcone release];<br /><br />&nbsp; &nbsp; // maintenent, on admire et on dit merci à ...<br />}<br />
    



    dans 1133615454:

    ...(j'aurais dû le dire avant je crois)...


    Ca c'est clair. Ca pose des questions incomplètes, c'est à  nous d'essayer de deviner la réponse, c'est pas content et ça parle de "Gwnaetooo"...

    .
  • GenoseGenose Membre
    11:44 modifié #9
    c'est vrai que ça de l'allure  :o
    o:) merci Bru ,merci.
    dans 1133618868:




    Ca c'est clair. Ca pose des questions incomplètes, c'est à  nous d'essayer de deviner la réponse, c'est pas content et ça parle de "Gwnaetooo"...

    .


    tu sais je passe vite à  autre chose car j'en ai eu assez de tournez en rond ou de prendre du retard sur des  trucs manquants, mais je crois quand meme que c'est une bonne idée de l'intégré ce "Gwnaetoo" aprés  reflexion.


    merci Bru !
Connectez-vous ou Inscrivez-vous pour répondre.