Dashboard-Like Fenster erzeugen als Hintergrund?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dashboard-Like Fenster erzeugen als Hintergrund?

    Moin Moin!

    Ich suche eine Möglichkeit um den Rest des Bildschirms abzudunkeln, während sich ein Fenster meines Programms davor drückt. Es geht dabei rein um schöne GUI.
    Wie würdet ihr das angehen? Ich habe da ein Tutorial gefunden, verstehe aber nicht, wie das funktionieren soll: cimgf.com/2008/03/15/core-anim…utorial-dashboard-effect/

    Wisst ihr vielleicht eine gute Möglichkeit? Ich habe mich nebenbei dann auch noch mit einem rahmenlosen Vollbildfenster probiert, das sich dann aber immer auf den TopLayer geschoben hat und nicht weg ging.
    Was ich suche: Abdunklung des kompletten Screens (mit Menubar!)

    Quellcode

    1. int windowLevel;
    2. NSRect screenRect;
    3. // Capture the main display
    4. if (CGDisplayCapture( kCGDirectMainDisplay ) != kCGErrorSuccess) {
    5. NSLog( @"Couldn't capture the main display!" );
    6. }
    7. // Get the shielding window level
    8. windowLevel = CGShieldingWindowLevel();
    9. // Get the screen rect of our main display
    10. screenRect = [[NSScreen mainScreen] frame];
    11. // Put up a new window
    12. window = [[NSWindow alloc] initWithContentRect:screenRect
    13. styleMask:NSBorderlessWindowMask
    14. backing:NSBackingStoreBuffered
    15. defer:NO screen:[NSScreen mainScreen]];
    16. [window setLevel:windowLevel];
    17. [window setBackgroundColor:[NSColor colorWithCalibratedWhite:0.5 alpha:0.4]];
    18. [window setOpaque:NO];
    19. [window setAlphaValue:0.1];
    Alles anzeigen


    Irgendwer gute Ideen?Würde mich freuen!
    Jan
  • Ziel: Ein abgedunkeltes Display und ein weiteres Fenster blende ich darüber, um den Fokus auf genau dieses Fenster zu ziehen, soll der Bildschirm abgedunkelt werden wie im Dashboard.

    Weiteres ergänze ich gleich, teste grade noch mal was.

    UPDATE:

    Quellcode

    1. [[window contentView] setWantsLayer:YES];
    2. [window setFrame:[[NSScreen mainScreen] frame] display:NO animate:YES];
    3. NSRect contentFrame = [[window contentView] frame];
    4. CALayer *root = [[window contentView] layer];
    5. // mainLayer is the layer that gets scaled. All of its sublayers
    6. // are automatically scaled with it.
    7. mainLayer = [CALayer layer];
    8. mainLayer.frame = NSRectToCGRect(contentFrame);
    9. // Make the background color to be a dark gray with a 50% alpha similar to
    10. // the real Dashbaord.
    11. mainLayer.backgroundColor = CGColorCreateGenericRGB(0.10, 0.10, 0.10, 0.50);
    12. [root insertSublayer:mainLayer above:0];
    Alles anzeigen

    Da passiert bei mir schon mal rein gar nichts.Muss ich da irgendwas noch beachten?


    (Das betrifft das o.g. Tutorial!)


    Mein Code im ersten Post ist irgendwie fehlerhaft. Das Fenster geht nicht mehr weg und lässt sich auch nicht in der Alpha Value oder so bearbeiten. Ich muss den Mac neustarten, wenn ich es anzeigen lasse und zurück will.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von rosi-janni ()