Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[RubyCocoa] setImage sur NSButtonCell

2 réponses
Avatar
pere.noel
dans une NSTableView j'ajoute, à la première colonne des NSButtonCell

comme ça :

@server_on_off_btn=OSX::NSButtonCell.alloc.init
@server_on_off_btn.setButtonType OSX::NSSwitchButton
@server_on_off_btn.setTitle ""
@server_on_off_btn.setBordered false
@server_on_off_btn.setState 1
@server_on_img=OSX::NSImage.alloc.init
@server_off_img=OSX::NSImage.alloc.init
@server_on_img.initWithContentsOfFile("#{RESOURCES_DIR}/on.png")
@server_off_img.initWithContentsOfFile("#{RESOURCES_DIR}/off.png")


@server_on_off_btn.setImage(@server_off_img)
@server_on_off_btn.setAlternateImage(@server_on_img)


et là, sous XCode, la fenêtre du dbuggeur s'ouvre...
donc ça ne va pas + loin.


j'ai contourné le problème en ajoutant un "dummy" bouton (hidden)
"dummy_btn" où je place les images dans IB.

et dans mon prog je pique ses images et les applique à la NSButtonCeell,
et la ça marche comme je veux :

@server_on_off_btn=OSX::NSButtonCell.alloc.init
@server_on_off_btn.setButtonType OSX::NSSwitchButton
@server_on_off_btn.setTitle ""
@server_on_off_btn.setBordered false
@server_on_off_btn.setState 1


@img_off=@dummy_btn.image
@img_on=@dummy_btn.alternateImage


@server_on_off_btn.setImage(@img_off)
@server_on_off_btn.setAlternateImage(@img_on)

je ne vois pas ce qui pose problème, dans le premier essai.

si qq'un a de la lumière...
--
une bévue

2 réponses

Avatar
luc
Une bévue wrote:

@server_on_img=OSX::NSImage.alloc.init
@server_on_img.initWithContentsOfFile("#{RESOURCES_DIR}/on.png")


Haem, deux init de suite, ça ne va *forcément* pas fonctionner. Ca
devrait être:

@server_on_img OSX::NSImage.alloc.initWithContentsOfFile("#{RESOURCES_DIR}/on.png")

En encore plus simple il y a:

@server_on_img = OSX::NSImage.imageNamed("on.png")

je ne vois pas ce qui pose problème, dans le premier essai.


Va falloir réviser ton Cocoa :)

PS: mauvais groupe.

--
Luc Heinrich

Avatar
pere.noel
Luc Heinrich wrote:


@server_on_img = OSX::NSImage.imageNamed("on.png")

je ne vois pas ce qui pose problème, dans le premier essai.


Va falloir réviser ton Cocoa :)


réviser tu crois ?
je cherche tjs à faire compliqué quand c'est simple...

tiens autre question, j'ai un problème avec cette première colonne de ma
TableView qui contient donc des NSButtonCell

ces boutons me servent à mettre on/off le server de cette ligne.

par ailleurs, quand je sélectionne cette ligne je lance une connexion à
ce server.

donc, malheureusement quand je veux mettre le server sur off (première
colonne) ça clique en même temps sur la ligne, ce qui fait que la
connexion est lancée sur un server supposé en défaut (unreachable...).

alors, dans une NSTableView je ne vois pas comment inhiber les events
sur une ligne si ils proviennent de la première colonne.
ou, autre solution, je ne sais pas comment on utilise en cocoa des
modifiers,en java swing par ex, on peut sélectionner les clicks souris à
condition qu'une touche soit enfoncée (command, alt ou ctrl down)
(d'ailleurs ça existe en applescript "system events")

je n'ai pas trouvé ça dans la docum cocoa...

j'avoue avoir des difficultés à saisir comment cette docum est
organisée...

en tk merci beucoup pour le "OSX::NSImage.imageNamed("on.png")" ça roule
))
--
une bévue