• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: ScreenSaverView with multiple displays
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ScreenSaverView with multiple displays


  • Subject: Re: ScreenSaverView with multiple displays
  • From: patrick <email@hidden>
  • Date: Fri, 31 Dec 2004 15:28:19 -0800

Thanks! That worked like a charm. :)

Patrick


On Wed, 29 Dec 2004 16:19:02 -0800, Steve Christensen <email@hidden> wrote:
> How about something like this?
>
> 1. Add a BOOL _isMenuBarDisplay to your screensaver view class.
>
> 2. Override -initWithFrame: and -initWithFrame:isPreview:.
>     In each, call the super's method, then
>     if -isPreview, set _isMenuBarDisplay to true, else check if
> frameRect has
>     the same bounds as the main screen and set _isMenuBarDisplay
> accordingly.
>
> 3. Override -animateOneFrame (and -drawRect: ?), check
> _isMenuBarDisplay and
>     do the appropriate thing.
>
> This assumes that the view bounds are in global coordinates and are
> aligned with individual screens, but this is just a guess since I
> haven't yet written a screensaver. :-) If it works, it should get you
> away from messy issues like the order in which the views are
> initialized.
>
> As for counting the number of screens, how about:
>
> unsigned int screenCount = [[NSScreen screens] count];
>
> And finding the menu bar screen:
>
> - (BOOL) isMenuBarScreen
> {
>         NSArray* listOfScreens = [NSScreen screens];
>
>         if ((listOfScreens != nil) && ([listOfScreens count] > 0))
>                 return NSEqualRects([self frame], [listOfScreens objectAtIndex:0]);
>
>         return false;
> }
>
> steve
>
>
> On Dec 29, 2004, at 3:09 PM, patrick wrote:
>
> > I'm creating a screensaver, and I would like to be able to draw
> > something different on displays other than the primary. Through trial
> > and error, I've learned that initWithFrame() gets called for each
> > display, although it doesn't seem like any useful information is
> > passed into initWithFrame() or animateOneFrame() to help the developer
> > know which display is being used.
> >
> > By using a counter in my ScreenSaverView and incrementing it each time
> > initWithFrame() is called (where isPreview is false) I am able to
> > count how many displays there are, and it seems like animateOneFrame()
> > is called in order of display: animateOneFrame() for display 1,
> > animateOneFrame() for display 2, and then back to 1 again, etc. So by
> > using another counter, I can [sort of] keep track of to which display
> > I'm drawing, though it doesn't seem like that great a way of doing
> > this, nor does it seem that foolproof.
> >
> > Does anyone have any suggestions as to a better way of knowing a) how
> > many displays there are to begin with, and b) a good way in
> > animateOneFrame() to tell which display is being used?
> >
> > Many thanks,
> >
> > Patrick
>
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Cocoa-dev mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >ScreenSaverView with multiple displays (From: patrick <email@hidden>)
 >Re: ScreenSaverView with multiple displays (From: Steve Christensen <email@hidden>)

  • Prev by Date: Re: Displaying Swedish Characters?
  • Next by Date: Re: Arrow keyEquivalent in InterfaceBuilder
  • Previous by thread: Re: ScreenSaverView with multiple displays
  • Next by thread: ANN: pyobjc-1.2
  • Index(es):
    • Date
    • Thread