Delicious Generation : Un menu

janvier 2008 modifié dans API AppKit #1
Bonjour à  tous,

Bien que la "Delicious Generation" est une sorte de mode de ces salauds de développeurs de shareware ultra-beau qui me font vomir (je ne suis pas jaloux :p), y'a vraiment des trucs que j'aimerai bien réussir à  faire.

En vedette aujourd'hui, le menu de recherche de CoverSutra.
Comme certains le savent peut-être déjà , je travaille sur un CoverSutra gratuit (bien qu'au départ ça n'était pas mon intention) : http://www.eagle-of-liberty.com/totaltunescontrol/

Ci-joint, un screenshot de la fonction recherche de CoverSutra.
J'aimerai construire le même type de menu sauf que j'ai beau avoir cherché une façon de réaliser ça, je bloque sur quelque chose :
Le contenu. Sous Léopard il y a la fonction "setView:" de NSMenuItem où il est donc super simple de personnaliser un NSMenu ducoup. Sauf que voilà , à  gauche on a les albums, et à  droite simplement des NSMenuItem normaux !

Alors si vous avez des idées sur le comment est réalisé ce menu.. je suis preneur (j'ai aussi joint mon menu perso, qui comme vous pouvez le voir est vraiment différent et est très moche :p )

Réponses

  • 17:07 modifié #2
    Ce n'est pas un menu c'est une vue perso.

    Le setView: de Leopard sert plutôt à  faire des trucs comme le menu item du Finder qui permet de choisir la couleur d'un fichier/dossier.
  • 17:07 modifié #3
    Donc en gros ça affiche une vue en fonction de la position de l'icone dans la barre des status..
    Mais ce qui m'intrigue le plus c'est la réalisation de la partie droite. Si tu as eu l'occasion de tester cette nouvelle version de CoverSutra, à  droite ça fonctionne comme un NSMenu, on passe la souris ça surligne.
    Ou alors c'est bêtement une TableView super personnalisée (et ça je pense pouvoir le réaliser) qui surligne simplement lorsque la souris passe sur un élément ?
  • TchouboudouTchouboudou Membre
    17:07 modifié #4
    Ha, j'allais te proposer de faire ça :D .

    Mais, c'est quoi au juste Delicious Generation ? Un état d'esprit ? Un framework ? Une secte ?
  • Philippe49Philippe49 Membre
    17:07 modifié #5
    A ce train là , n'aurais-tu pas intérêt à  te faire ta propre NSMenuItemCell ?
  • 17:07 modifié #6
    dans 1200222563:

    Ha, j'allais te proposer de faire ça :D .

    Mais, c'est quoi au juste Delicious Generation ? Un état d'esprit ? Un framework ? Une secte ?


    Une secte. Non plus sérieusement c'est plutôt un état d'esprit
  • janvier 2008 modifié #7
    J'ai l'impression, mais n'ayant pas testé je ne peux le garantir.

    Ceci dit, si tu veux faire de l'introspection sur un soft existant, je te conseille de te mettre à  F-Script.

    dans 1200222696:

    A ce train là , n'aurais-tu pas intérêt à  te faire ta propre NSMenuItemCell ?

    À ma connaissance, la seule classe qui fait appel à  des objets de cette classe est NSMenuView, déclarée deprecate et non "portée" sur l'API 64bit (héritage NextStep, la gestion des menus dans OS X est plutôt confiée à  Carbon)
  • 17:07 modifié #8
    dans 1200222563:
    Mais, c'est quoi au juste Delicious Generation ? Un état d'esprit ? Un framework ? Une secte ?


    Le but de ceux qui s'auto-proclament "Delicious Generation" est de faire des programmes qui soient "amusants" à  utiliser. Et le plus souvent, leur définition d'amusant passe par des interfaces très soignées avec peu de contrôles standards et des effets inutiles.
  • 17:07 modifié #9
    Merci des conseils.

    N'empêche des fois je me demande comment ils font sérieusement... Y'a des applications tellement bien réalisées quasiment sans bugs voir souvent AUCUNS bugs présents. Et souvent elles proviennent de la Delicious Generation.

    Je les aime vraiment pas eux :p

    Je suis d'accord avec toi Renaud sur la Delicious Generation, mais il faut avouer que la plupart des applications sont réussites.
    J'avoue que "Disco" par exemple est assez pourrie dans son genre par contre. Là  on voit vraiment les effets inutiles et au final il est pas génial comme logiciel..
    Ce qui me fait mal au c*l c'est de voir que plus de 50% des gens sont toujours émerveillés et achètent souvent un shareware pour sa beauté (sisi). De plus, un utilitaire qui devient shareware et qui en plus fait partie de la Delicious Generation... bonjour les $$ ..
  • Philippe49Philippe49 Membre
    17:07 modifié #10
    dans 1200223398:

    dans 1200222696:

    A ce train là , n'aurais-tu pas intérêt à  te faire ta propre NSMenuItemCell ?

    À ma connaissance, la seule classe qui fait appel à  des objets de cette classe est NSMenuView, déclarée deprecate et non "portée" sur l'API 64bit (héritage NextStep, la gestion des menus dans OS X est plutôt confiée à  Carbon)


    Oui je n'avais pris le temps de lire la doc de NSMenuItem, et je comprends mieux l'idée d'eagleLouk d'utiliser setView:

    dans 1200221962:

    Ce n'est pas un menu c'est une vue perso.

    Le setView: de Leopard sert plutôt à  faire des trucs comme le menu item du Finder qui permet de choisir la couleur d'un fichier/dossier.


    L'item Etiquette du menu Finder>Fichier
  • 17:07 modifié #11
    Petite question, y'a de l'undocumented dans F-Script ??
  • 17:07 modifié #12
    La notion de documented/undocumented est extérieure au binaire, donc évidemment qu'elles y sont. Maintenant quand je dis introspection, il y a différents types. L'intérêt de F-Script (pour l'introspection est de faire un examen au runtime de l'application des relations entres les différents objets (là  où classdump ne fait que lister les classes et les méthodes).
  • BruBru Membre
    17:07 modifié #13
    dans 1200221241:

    Ci-joint, un screenshot de la fonction recherche de CoverSutra.
    J'aimerai construire le même type de menu sauf que j'ai beau avoir cherché une façon de réaliser ça, je bloque sur quelque chose :
    Le contenu. Sous Léopard il y a la fonction "setView:" de NSMenuItem où il est donc super simple de personnaliser un NSMenu ducoup. Sauf que voilà , à  gauche on a les albums, et à  droite simplement des NSMenuItem normaux !
    Alors si vous avez des idées sur le comment est réalisé ce menu.. je suis preneur (j'ai aussi joint mon menu perso, qui comme vous pouvez le voir est vraiment différent et est très moche :p )


    La capture d'écran montre que c'est un NSStatusItem : c'est donc hyper flexible sur l'apparence.
    Le setView: de NSStatusItem permet d'insérer dans la barre un NSView perso.
    Ton NSView perso va dessiner l'icône du menu, et via les événements souris, va faire apparaà®tre une fenêtre customisée (de la taille/forme/couleur que tu veux) que tu auras bien sûr codé.



    dans 1200222331:

    Mais ce qui m'intrigue le plus c'est la réalisation de la partie droite. Si tu as eu l'occasion de tester cette nouvelle version de CoverSutra, à  droite ça fonctionne comme un NSMenu, on passe la souris ça surligne.
    Ou alors c'est bêtement une TableView super personnalisée (et ça je pense pouvoir le réaliser) qui surligne simplement lorsque la souris passe sur un élément ?


    Là  aussi, ya aucun mystère ou difficulté.
    Un simple NSMatrix de NSButtonCell personnalisé peut simuler ce genre d'effet.
    Le NSButtonCell personnalisé doit redéfinir sa méthode drawBezelWithFrame:inView: afin de gérer l'affichage et le masquage de la sélection (le fond dégradé bleu) et mettre la propriété setShowsBorderOnlyWhileMouseInside: à  YES.
    Ceci aura pour effet de faire apparaà®tre le fond bleu au survol de la souris.


    Bon, tout ça c'est du boulot bien sûr. Mais c'est le prix à  payer pour de belles interfaces.

    .
Connectez-vous ou Inscrivez-vous pour répondre.