Plug-in pour menu contextuel

_gromit_

Membre actif
15 Mai 2000
458
5
40
Valence
softomatic.macdk.com
Bonjour à tous,

je souhaite développer un Plug-in pour menu contextuel en Objective-C (de préférence) qui se glisserait dans ~/Library/Contextual Menu Items/
j'ai fait quelques recherches sur internet et je n'ai trouvé ni de documentation Apple, ni de projet OpenSource (pouvant servir d'exemple) sur ce sujet

j'ai bien trouvé le Contextual Menu Workshop, mais celui-ci ne marche qu'avec Code Warrior (que je ne possède pas
sm141.gif
)

Est-ce que quelqu'un a un exemple ou une documentation en stock ?

d'avance,
smile150.gif
 
Je ne me suis pas trop penché sur le problème, mais il me semble plutôt que ce sont les CoreServices qui sont utilisés. Ces Apis offrent des services au environnements Cocoa et Carbon. D'ailleurs les CoreFoundation qui en sont une sous couche, sont très inspirés de la Foundation Kit de Cocoa. Ils permettent à Carbon de disposer de certaines fonctionnalités avancées de Cocoa sans utiliser directement les apis. Ex CFString équivaut à NSString, etc..
 
Bon, je refais monter parce qu'après avoir abandonné plusieurs fois, je suis à nouveau motivé, et j'aimerais bien arriver à quelque chose :zen:

Alors, j'ai bien compris l'exemple d'Apple grâce au tutoriel de MacDevCenter, mais il s'agit à mon avis de Carbon et je souhaiterais charger une classe en Objective-C qui utilise les API cocoa. Alors, est-ce possible ? Dans les Sample Code d'Apple, l'exemple sur "Cocoa in carbon" utilise un Bundle Cocoa. Est-on obligé de passer par là ou peut-on rester dans le même bundle ?
 
en effet les methodes "contextual menu" sont en carbon

apple SDK : ftp://ftp.apple.com/developer/Development_Kits/ContextualMenuMgr_1.0.3.sit.hqx

mais rien ne t'empeche d'acceder au methode carbon puis d'utiliser de l'obj-c

http://developer.apple.com/samplecode/CarbonCocoaTempConverter/CarbonCocoaTempConverter.html

je me suis fait un petit plug pour rajouter "Make Symlink" , "Move to", "Browse"
mais c'est un peu merdique :D :D (plantage du finder)

j'ai pas fini la bidouille l'objectif étant de rajouter les icons aussi

je pense que tu veux faire un truc un peu similaire ?


:zen: :zen: :zen:
 
merci pour les pistes

En fait, j'ai plusieurs idées en tête, mais la plus simple à réaliser serait un item "Effacer le CD-RW" car ça manque vraiment au Finder et il y a un exemple tout fait en Cocoa pour effacer un CD fait par Apple. Donc il suffit d'accéder à cette classe en Cocoa depuis le plug-in en carbon...

J'ai bien quelques bases en Objective-C, de quoi me débrouiller... mais là je suis largué :mouais:
 
_gromit_ a dit:
Bonjour à tous,

je souhaite développer un Plug-in pour menu contextuel en Objective-C (de préférence) qui se glisserait dans ~/Library/Contextual Menu Items/

Bonsoir

Une réponse que vous allez trouver bète, mais voici.
Pour faire des tests avant d'écrire un plung-in pourquoi ne pas tester BigCat qui permet d'ajouter des commandes dans le menu contextuel.
Ils peuvent être écrit en AppleScript ou en scripts de shell.

J'ai vu ca sur le journal AVosMac N° 38 de mars 2004

Http://ranchero.com/bigcat/
Avec safari chez moi il à refusé mes avec bigcat sur Google il l'a trouvé.

Je suis pas programmeur, alors si ma réponse est nulle excusez moi.

Salut
 
Salut :)

ceslinstinct a dit:
Une réponse que vous allez trouver bète, mais voici.

Ton idée n'est pas bête, mais il se trouve que l'on ne peut pas tout faire en AppleScript ou avec les scripts shell. Dans certains cas, on peut très bien s'en sortir. Mais par exemple pour mon EraseCMPlugIn, je ne pense pas que j'aurais pu arriver au même résultat avec un script : il me fallait passer par Cocoa.

Et puis, il y a aussi la fierté d'avoir réussi à faire ça soi-même d'un bout à l'autre et de n'avoir qu'un fichier à installer au final pour que le Plug-In fonctionne :D

ceslinstinct a dit:
Je suis pas programmeur, alors si ma réponse est nulle excusez moi.

je ne pense pas que ce forum soit réservé aux programmeurs :zen:
de temps à autre, il est très utile d'avoir un avis extérieur pour remettre les choses en place :up:
 
_gromit_ a dit:
Salut :) Ton idée n'est pas bête, mais il se trouve que l'on ne peut pas tout faire en AppleScript
:up:

Bonsoir

Avec AppleScript on peut faire beaucoup de choses, mais Cocoa c'est la Ferrari de formule 1 par apport a AppleScript qui est une 2 cv avec
350 000 Km au compteur.

Je vais tester ce programme, pour voir si c'est impossible.

Par contre Cocoa donne des résultats qu'en AppleScript je suis incapable de trouver.

exemple:
Aide-mémoire: 276 Ko sur le disque
Le programme 216 217 octets.

Avec la calculette je divise 216217 / 1024 = 211,14 Ko (pour moi 1 Ko c'est 1024 octets et non 1000 octets comme le prétende les fabricants de DD, et vendeurs).
De toute façon en utilisant 1000 au lieu de 1024, le résultat est le même.

Donc je reconnait que Cocoa est bien superieur a AppleScript.

En calcul donc AppleScript est nul

Salut, a un prochain post.
 
ceslinstinct a dit:
exemple:
Aide-mémoire: 276 Ko sur le disque
Le programme 216 217 octets.

Avec la calculette je divise 216217 / 1024 = 211,14 Ko (pour moi 1 Ko c'est 1024 octets et non 1000 octets comme le prétende les fabricants de DD, et vendeurs).
De toute façon en utilisant 1000 au lieu de 1024, le résultat est le même.

Alors, officiellement 1 Ko c'est 1000 octets... je suis pas très d'accord là dessus, mais c'est la norme, il faut d'y plier :nailbiting:

Sinon la différence de taille entre la taille réelle du programme et la taille qu'il prend sur le disque dur est due à la taille minimale des blocs de ton disque dur. Ton disque dur est divisé en un certain nombre de blocs. Ces blocs sont indivisibles, et un fichier sera stocké sur plusieurs blocs dont un bloc qui ne sera pas plein.
De plus, une application Cocoa est souvent sous la forme d'un "bundle" c'est-à-dire d'un dossier contenant plusieurs petits fichiers. La place perdue due à la taille des blocs (blocs qui sont trop grands comparés aux petits fichiers que l'on veut stocker dedans) va donc s'accumuler avec ces petits fichiers.

Cela n'a rien à voir avec AppleScript et Cocoa :zen:
 
  • J’aime
Réactions: ceslinstinct
_gromit_ a dit:
Alors, officiellement 1 Ko c'est 1000 octets... je suis pas très d'accord là dessus, mais c'est la norme, il faut d'y plier :nailbiting:
La norme en SI c'est que: kilo = k minuscule = 1000 et c'est très bien. :)
En informatique ils ont pris l'habitude d'utiliser 1024 pour des raisons pratiques, et ils écrivent ça avec un K majuscule, et c'est très bien aussi. ;)

Par contre pour les unités supérieures, c'est le flou total et je ne saurais dire si les fabricants de disques font preuve de respect d'une norme ou de trichoterie en utilisant des facteurs 1000 au lieu de 1024, comme le fait le Finder lui, qui semble être plus au courant des habitudes en informatique ;) :rolleyes:
 
Spyro a dit:
La norme en SI c'est que: kilo = k minuscule = 1000 et c'est très bien. :)
En informatique ils ont pris l'habitude d'utiliser 1024 pour des raisons pratiques, et ils écrivent ça avec un K majuscule, et c'est très bien aussi. ;)

Par contre pour les unités supérieures, c'est le flou total et je ne saurais dire si les fabricants de disques font preuve de respect d'une norme ou de trichoterie en utilisant des facteurs 1000 au lieu de 1024, comme le fait le Finder lui, qui semble être plus au courant des habitudes en informatique ;) :rolleyes:

Bonjour

http://sebsauvage.net/comprendre/unites/
http://www.adbdp.asso.fr/outils/infogenerale/octets.htm

Merci _gromit_ pour les bundles, j'ai enfin une réponse.

@+
 
Bonjour,
j'aimerais aussi d'envelopper un menu contextuel, mais j'aurais besoin de reccuperer le texte sélectionné par l'utilisateur.
J'ai vu que frontierCM fessais cela, par contre le code source n'est plus disponible sur le site (Erreur 404). Si quelqu'un a sur son disque dur le code ou tous autre code source correspondants à mon problème, je serais le plus heureux des hommes.

Merci beaucoup