Auf Desktophintergrund schreiben

CottonIJoe

Aktives Mitglied
Thread Starter
Dabei seit
23.01.2005
Beiträge
132
Reaktionspunkte
15
Hallo,

ich habe irgendwie die fixe Idee, mir eine Art Dashboard auf dem Desktophintergrund zu programmieren. Es könnte in die Richtung GeekTool gehen, wenn auch nicht mit identischer Idee dahinter. Auf jeden Fall wäre es essentiell, "auf den Desktop" - hinter alle Icons und ohne Benutzerinteraktion - zeichnen zu können. Zeichnen im Sinne von Test und Elemente (Boxen, Grafiken, ...) platzieren, nicht im Sinne von "der User kann auf den Desktop kritzeln" (wobei ich mir vorstellen kann dass das ähnlich funktionieren würde - ich bin also auf jeden Hinweis gespannt!).

Hat jemand eine Idee wie man sowas anstellt? Ich vermute, dass man da eine Art transparentes Vollbildfenster braucht auf dem man sich dann austobt - aber ich bin in Cocoa noch ziemlich unerfahren und hab bisher mehr gelesen als programmiert, sodass mir da keine "Best Practice" eingefallen ist...

Vielen Dank im Voraus!
 
wäre ne tolle sache, auf dem schreibtisch einfach ne taste drücken, und draufschreiben so sieht man seine sachen immer die man braucht, dafür ist ein realer schreibtisch ja auch da :)
 
DeskDoodle ( http://www.macupdate.com/info.php/id/16314/deskdoodle ) kann das... wird aber irgendwie nicht weiterentwickelt, glaube ich (die Entwicklerwebseite lässt sich zumindest nicht aufrufen...).
Würde mich auch interessieren, wie sowas geht. Am Ende läuft alles wahrscheinlich auf etwas relativ simples raus, von dem man nur wissen muss dass existiert...? :)
 
Ich würde mir mal ansehen, welche Fenster so im System aktiv sind, und dann ein Fenster mit durchsichtigem Hintergrund vor den Desktop schieben

Window Levels könnte ein Startpunkt sein.

Alex
 
Hallo,

da "klaut" mir jemand die Ideen. ;-)

Genau, ich erzeuge so viele Fenster, wie Monitore und lege diese hinter die Icons mit Window-Level.
Das habe ich aber erstmal brach gelegt, da ich dann Probleme mit dem Greifen der Icons auf dem Schreibtisch hatte.
War aber noch zu 10.5 Zeiten.

Viele Grüße
 
Hm, ich hab gleich zu Beginn ganz ein dummes Anfängerproblem (wie schon erwähnt, bin ich nicht sehr erfahren und hab schon seit 1-2 Jahren kein Cocoa/ObjC mehr angefasst)... ALso:
Ich starte ein neues Cocoa-Projekt und erstelle mir eine custom Window Klasse. Das IBOutlet NSWindow *window ändere ich in CustomWindow *window.
So, jetzt sollte ich mit meinem Window alles mögliche machen können, oder? Kann ich aber nicht! In der .m des Custom Fensters schreibe ich
Code:
// From Apple's RoundTransparentWindow
- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag {
    // Using NSBorderlessWindowMask results in a window without a title bar.
    self = [super initWithContentRect:contentRect styleMask:aStyle backing:bufferingType defer:flag];
    if (self != nil) {
        // Start with no transparency for all drawing into the window
        [self setAlphaValue:0.5];
        // Turn off opacity so that the parts of the window that are not drawn into are transparent.
        [self setOpaque:YES];
		[self setHasShadow:NO];
		[self invalidateShadow];
    }
    return self;
}
und im AppDelegate (der war schon im Standardprojekt drin) mache ich
Code:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
	// Insert code here to initialize your application 
	[window initWithContentRect:NSMakeRect(400.0, 400.0, 400.0, 400.0) styleMask:NSBorderlessWindowMask	backing:NSBackingStoreBuffered defer:0];
}
.

Das Fenster ist an der richtigen Stelle und ist Rahmenlos (beides Übergabeparameter), aber alles was ich in der überladenen initWithContentRect noch zusätzlich mache (Opaque, Shadow, ...) - erscheint einfach nicht!

Ideen?
 
Zurück
Oben Unten