[Carbon]Associer une image à un button

Niamorh

Membre confirmé
7 Mars 2007
30
0
39
Bonjour,

Je suis en stage et je dois réaliser un player de séquences d'images pour mon entreprise, sous mac.

J'ai toujours programmé Windows ou Linux avec pleins de frameworks différents. J'ai décidé de programmer cette fois en Carbon car il possède, d'après ce que j'ai pu lire sur la toile, de meilleures perfs que Cocoa (plus bas niveau).

Maintenant je commence mon interface homme machine en modifiant le Nib (sympa ce système au passage. Il me rappelle beaucoup l'environnement vb.net, j'aime bcp).

J'aimerais pouvoir mettre des icones pour mes boutons (fleche gauche/droite, carre, barres verticales) , plus parlantes que du texte dans le cas d'un player video. Or je ne trouve pas de moyen de le faire ni de sources sur le net. (j'ai fouillé sur developper.apple)

Au passage, si vous avez des sites, tutoriels, docs, ou forums actifs sur le developpement mac à me conseiller, je suis prenneur.

merci d'avance.

romain
 
Si tu peux faire du Cocoa, utilise le QTKit, comme ça tu ne réinvente pas la roue et tu peux très facilement implementer un player QuickTime. (voir doc sur le site Apple)
 
salut, merci de ta réponse,
c'est un peu plus complexe que ça, je ne travaille pas sur des videos mais sur des sequences d'images hautes résolutions au format tga, voire autres... Donc à priori, je n'utiliserais pas Quick Time.

J'ai à ma disposition un mac avec des disques durs hauts débits pour des accès rapide aux images.
Je dois, par exemple, selectionner les images voulues par l'utilisateur dans un dossier qui composeront la sequence à jouer comme si il s'aggissait d'une video. Avec possibilité de pause, retour, ralentis dans les deux sens etc... A priori pas d'édition.

Je souhaite aller au plus vite, donc éviter Cocoa. Pour le multimedia un peu poussé, les bibliotheques haut niveau sont souvent a proscrire. (java, .net, Qt ...). Quick Time egalement pour des raisons similaires : trop de tests et de sous routines effectuées au profit d'une meilleures stabilité mais au détriment de la rapidité.

voilà,

sinon pour revenir à ma question : J'ai trouvé roundbutton qui m'a l'air adapté à mes attentes, mais comment lui spécifier l'image ?

merci
 
salut, merci de ta réponse,
c'est un peu plus complexe que ça, je ne travaille pas sur des videos mais sur des sequences d'images hautes résolutions au format tga, voire autres... Donc à priori, je n'utiliserais pas Quick Time.

J'ai à ma disposition un mac avec des disques durs hauts débits pour des accès rapide aux images.
Je dois, par exemple, selectionner les images voulues par l'utilisateur dans un dossier qui composeront la sequence à jouer comme si il s'aggissait d'une video. Avec possibilité de pause, retour, ralentis dans les deux sens etc... A priori pas d'édition.

Je souhaite aller au plus vite, donc éviter Cocoa. Pour le multimedia un peu poussé, les bibliotheques haut niveau sont souvent a proscrire. (java, .net, Qt ...). Quick Time egalement pour des raisons similaires : trop de tests et de sous routines effectuées au profit d'une meilleures stabilité mais au détriment de la rapidité.

voilà,

sinon pour revenir à ma question : J'ai trouvé roundbutton qui m'a l'air adapté à mes attentes, mais comment lui spécifier l'image ?

merci

As tu décortiqué l'exemple
Developer/Examples/Carbon/AppearanceSample ?

Cordialement
 
Juste comme ca... Va voir du coté de Quartz Composer....
Il est possible de faire des trucs géniaux sans une seule ligne de code.
Et le mieux, tu peux l'implémenter facilement dans ton application cocoa (je ne sais pas si ca passe avec carbon, ni même si ca correspondrait à ce que tu cherche...)
 
@Didier Guillion : Je regarde AppearanceSampleUpdate que j'ai trouvé sur le site d'apple tout de suite. Merci de me l'avoir indiqué, c'est pas forcément évident de trouver ce que l'on cherche sur leur site.

EDIT : effectivement je vois que certains boutons possèdent des images. Mais je ne trouve pas l'endroit ou celà est fait...



@JoJoS : C'est interressant ce système de patch, ça me rappelle le VST Reaktor en Son. Mais bon je fais un stage de prog et je dois coder... ;) De plus, l'appli que je dois réaliser est très spécifique. Elle ne dois pas charger en mémoire les images (HD) mais faire des accès fichiers sur des disques hauts débits. Donc je dois pouvoir controler un peu ce qui se passe en dessous.
 
juste une tite question, ton sujet de stage m'intéresse, je développe un prog sur la vidéo sous mac, en projet personnel.
ce que tu fais sera t il sous licence libre ? ou proprio ?
 
En fait j'ai signé une charte au début de ma licence spécifiant que tout le code produit dans le cadre de la licence (donc stage compris) appartient à l'université et je peux être poursuivi si mes souvenirs sont bons dans le cas d'une diffusion (sur un site web par exemple) de mes sources...
Maintenant y a toujours moyen de s'arranger. Je peux te faire parvenir les parties du code interressantes. Mon stage est de 4 mois et je commence tout juste alors je te dirai ce qu'il en est plus tard lorsque j'aurai avancé. Mais sur le principe pourquoi pas.
 
A priori, avec Carbon, on doit se servir d'un fichier de ressource .rsrc auquel on ajoute les images et Interface Builder les reconnaitra. Maintenant j'ai téléchargé ResEdit mais impossible de l'ouvrir pour m'en servir, il n'aime pas ma version de Mac je crois... comment je peux créer un .rsrc ?
 
A priori, avec Carbon, on doit se servir d'un fichier de ressource .rsrc auquel on ajoute les images et Interface Builder les reconnaitra. Maintenant j'ai téléchargé ResEdit mais impossible de l'ouvrir pour m'en servir, il n'aime pas ma version de Mac je crois... comment je peux créer un .rsrc ?

Resedit ne fonctionne pas sur MacTel, c'est d'ailleurs un VRAI probleme pour les personnes qui programme nt sur Mac depuis longue date.

Tu peut creer les ressources sous forme de fichier texte (extension .r) qui seront compilées par XCode en .rsrc.

Voit dans l'exemple AppearanceSample, les fichiers .r

Cordialement
 
hum mais ce que je vois dans ces fichiers .r semble assez incomprehenssible :

Bloc de code:
resource 'cicn' (128) {
	4,
	{0, 0, 12, 16},
	2,
	$"FFFC FFFC FFFC FFFF FFFF FFFF FFFF FFFF"
	$"1FFF 1FFF 1FFF 0000",
	$"FFFC FFFC FFFC FFFF F001 F001 F001 F001"
	$"1001 1001 1FFF 0000",
	{	/* array ColorSpec: 4 elements */
		/* [1] */
		65535, 65535, 65535,
		/* [2] */
		43690, 43690, 43690,
		/* [3] */
		21845, 21845, 21845,
		/* [4] */
		0, 0, 0
	},
	$"FFFF FFF0 EAAA AAB0 EAAA AAB0 EBFF FFFF"
	$"EB55 5557 EB55 5557 EB55 5557 FF55 5557"
	$"0355 5557 0355 5557 03FF FFFF 0000 0000"
};

Y a-t-il quelque chose à y voir ?

EDIT : par contre ce qui est bien avec cette source, c'est qu'elle propose un framework presque tout prêt à être récupéré pour Carbon. Avec des classes de Windows et de Controls.
Je trouve que la syntaxe de Carbon est très semblable à celle de win32, non ?
 
Bonjour,

En effet c'est plutot abscon. Dans l'exemple que tu donne c'est un "dump" d'une petite icone en couleur avec donc, son bitmap.
Les developpeurs on demandé à Apple de porter Resedit sur MacTel pour pouvoir continuer à travailler. Réponse "Niet!"

On a donc dit, d'accord, vous ne voulez pas le faire, mettez donc Resedit en OpenSource, on se charge du reste. Réponse "Niet!". Ce qu'il faut traduire par "Chez Apple, on pille l'OpenSource, mais on n'y contribue jamais, mettre le couteau sur la gorge des developpeurs fidele et appuyer tres fort ne nous pose aucun cas de concience."

Cordialement