Slides de la

33
CocoaHeads.fr

Transcript of Slides de la

Page 1: Slides de la

CocoaHeads.fr

Page 2: Slides de la

NSWindow1988 -

Page 3: Slides de la

Stéphane SudreEmployé du mois chez Lapeyre

Page 4: Slides de la

• Profil d’une fenêtre

• Les bases

• Performance

• Utilisations avancées

Sommaire

Page 5: Slides de la

TitreBoutons Barre de titre

ContenuZone de

redimensionnementOmbre

Profil d’une fenêtre

Page 6: Slides de la

Profil d’une fenêtre

NSWindow NSPanel

Page 7: Slides de la

Key La fenêtre qui répond aux entrées clavier

Main La fenêtre standard qui est au premier plan

Activate L’application est l’application active

Profil d’une fenêtre

Page 8: Slides de la

- initWithContentRect: styleMask: backing: defer:

Créer une fenêtreLes bases

Page 9: Slides de la

- makeKeyAndOrderFront:

- orderFront:

- orderWindow:relativeTo:

- setAlpha:

- orderOut:

- setHidesOnDeactivate:

- setLevel:

- close / - setReleasedWhenClose:

Masquer n’est pas fermer !!

Afficher/masquer une fenêtreLes bases

kCGDesktopWindowLevel-1

Page 10: Slides de la

- setFrame:display:animate:

- setFrame:display:

- setContentSize:

+ frameRectForContentRect:styleMask:

Indépendance de la résolution !!

Redimensionner une fenêtreLes bases

Page 11: Slides de la

- setMinSize:

- setMaxSize:

- setAspectRatio:

- setResizeIncrements:

Contraindre le redimensionnement manuelLes bases

Page 12: Slides de la

- setShowsResizeIndicator:

- setMinSize:

- setMaxSize:

! Il est peut-être déjà trop tard !

Autoriser/interdire le redimensionnement manuelLes bases

Page 13: Slides de la

- setFrameOrigin:

- setFrameTopLeftPoint:

- setFrame:display:animate:

Autoriser le déplacement par le fond

- setMovableByBackground:

Déplacer une fenêtre avec du codeLes bases

Page 14: Slides de la

- miniaturize:

- deminiaturize:

Placer une fenêtre dans le DockLes bases

! Attention à la fermeture de fenêtres dans le Dock

Page 15: Slides de la
Page 16: Slides de la

Copyright 2010 Ed Whetstone

Page 17: Slides de la

Démon!ration

Page 18: Slides de la

Une fenêtre p"r les g"verner t"tes

Page 19: Slides de la

- addChildWindow:ordered:- removeChildWindow:- parentWindow

Page 20: Slides de la

NeXTStep forever

Page 21: Slides de la
Page 22: Slides de la
Page 23: Slides de la
Page 24: Slides de la

- (id) initWithContentRect:(NSRect) inFrame styleMask:(NSUInteger) inStyle backing:(NSBackingStoreType) inType defer:(BOOL) aFlag {

self=[super initWithContentRect:inFrame styleMask:NSBorderlessWindowMask backing:inType defer:aFlag];

if (self!=nil) {

[self setOpaque:NO]; [self setBackgroundColor: [NSColor clearColor]];

}

return self;}

Page 25: Slides de la

- (id) initWithContentRect:(NSRect) inFrame styleMask:(NSUInteger) inStyle backing:(NSBackingStoreType) inType defer:(BOOL) aFlag {

self=[super initWithContentRect:inFrame styleMask:NSBorderlessWindowMask backing:inType defer:aFlag];

if (self!=nil) {

[self setOpaque:NO]; [self setBackgroundColor: [NSColor clearColor]];

}

return self;}

Page 26: Slides de la

- (id) initWithContentRect:(NSRect) inFrame styleMask:(NSUInteger) inStyle backing:(NSBackingStoreType) inType defer:(BOOL) aFlag {

self=[super initWithContentRect:inFrame styleMask:NSBorderlessWindowMask backing:inType defer:aFlag];

if (self!=nil) {

[self setOpaque:NO]; [self setBackgroundColor: [NSColor clearColor]];

}

return self;}

Page 27: Slides de la

- (id) initWithContentRect:(NSRect) inFrame styleMask:(NSUInteger) inStyle backing:(NSBackingStoreType) inType defer:(BOOL) aFlag {

self=[super initWithContentRect:inFrame styleMask:NSBorderlessWindowMask backing:inType defer:aFlag];

if (self!=nil) {

[self setOpaque:NO]; [self setBackgroundColor: [NSColor clearColor]];

}

return self;}

Page 28: Slides de la
Page 29: Slides de la

M

D

I

Forever

Page 30: Slides de la

HIThemeDrawWindowFrame(...);1

2

rdar://8090925

Page 31: Slides de la

Démon!ration

Page 33: Slides de la

CocoaHeads.fr