Bouton a la time machine

hdexhdex Membre
16:34 modifié dans API AppKit #1
Bonjour a tous,

J'aimerai utiliser le bouton "On - Off" de Time machine dans mon appli. Probleme : je ne le trouve pas dans Interface Builder, soit parce que tous mes Mac sont des "vieux" PowerPC sans CoreImage et que l'effet d'animation en a besoin (j'en doute) soit parce que c'est un bouton "made in Cupertino" ... l'autre possibilite c'est que j'ai un peu force sur le Calva  :p

Si quelqu'un peut m'eclairer ... Merci d'avance

Réponses

  • ClicCoolClicCool Membre
    février 2008 modifié #2
    Bonsoir hdex,

    Je crains malheureusement qu'en effet ce contrôle soit spécifique au prefPane de Time Machine.
    Il me semble du reste en trouver les "pièces détachées" graphiques en format png dans le paquet. (SliderWell , SliderHandle, SliderHandleDown, RightCapDown, RightCap, LeftCapDown, LeftCap et OverlayMask)
    En plus il suffirait pas d'assembler les pièces, faudrait aussi régler les animations ...



    P.S.: Si t'as le temps d'attendre, on a souvent pu voir ce genre d'éléments d'interface spécifique Apple finir par être mis à  disposition dans I.B. (comme pour le NSTokenField à  la mail, le NSLevel étoilé à  la iTune etc...)
  • Philippe49Philippe49 Membre
    16:34 modifié #3
    En ce qui concerne le calva je peux t'assurer qu'ils n'en ont pas à  Cupertino  :kicking: :p

    <br /><br />@implementation Controller<br />-(void) awakeFromNib<br />{<br />	calvaButton = [[NSButton alloc] initWithFrame:NSMakeRect(50.,50.,40.,20)];<br />	[calvaButton setTitle:@&quot;&quot;];<br />	[calvaButton setButtonType:NSOnOffButton];<br />	[calvaButton setState:NSOnState];<br />	[calvaButton setImage:[NSImage imageNamed:@&quot;flagged.tiff&quot;]];<br />	[calvaButton setAlternateImage:[NSImage imageNamed:NSImageNameAddTemplate]];<br />	[calvaButton setImagePosition: NSImageLeft];<br />	[calvaButton setTarget:self];<br />	[calvaButton setAction:@selector(action:)];<br />	[contentView addSubview:calvaButton];<br />	[contentView setNeedsDisplay:YES]; <br />}<br />-(IBAction) action:(id)sender<br />{<br />	if([calvaButton state]==NSOnState){<br />		[calvaButton setImagePosition: NSImageLeft];<br />	} else { <br />		[calvaButton setImagePosition: NSImageRight];<br />	}	<br />	NSLog(@&quot;	action&quot;);<br />}<br />
    
  • ClicCoolClicCool Membre
    février 2008 modifié #4
    C'est un work-around qui peut peut-être faire l'affaire.
    Ca peut du reste aussi se faire sans code sous IB avec un NSButton en mode "toggle" dont on défini sous IB l'image et l'alternate-image.

    Mais dans le pref-pane de Time-Machine on dirait bien que c'est plus dérivé d'un slider animé que d'un bouton.

    [EDIT] Philippe après une relecture de ton code je me demande si j'ai pas été un peu vite.
    Ton déplacement d'image peut-t-il être animé ?
  • Philippe49Philippe49 Membre
    février 2008 modifié #5
    dans 1204067717:


    [EDIT] Philippe après une relecture de ton code je me demande si j'ai pas été un peu vite.
    Ton déplacement d'image peut-t-il être animé ?


    Il parait déjà  un peu animé à  l'exécution, ... illusion

    Pour ma part, j'essaierais de sous-classer le NSCell du bouton, d'y redéfinir le drawInteriorWithFrame: inView: avec peut-être une NSAnimation ?
  • hdexhdex Membre
    16:34 modifié #6
    En ce qui concerne le calva je peux t'assurer qu'ils n'en ont pas à  Cupertino

    Ils savent pas ce qu'ils perdent ... mais ca en fait plus pour nous  :p :p

    Merci pour les infos et le bout de code. J'aime beaucoup le nom du bouton, Steve Jobs a dit un jour qu'on pourrait envie de lecher les boutons en mode Aqua ... avec un nom comme Calvabutton, il va pas etre beau mon ecran  :o

    Pour en revenir au sujet, je vais attendre la release prochaine du SDK de l'iPhone. Qui sait, on pourrait avoir droit a une release de XCode incluant des nouveaux controles (apres tout l'iphone utilise tout un tas de "slider" aussi).

    Sinon ben ca sera en avant le code  >:)

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