2 Copyright © 1995-2003, The AROS Development Team. All rights reserved.
3 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
8 #include "intuition_intern.h"
10 /*****************************************************************************
13 #include <proto/intuition.h>
15 AROS_LH2(UBYTE
*, NextPubScreen
,
18 AROS_LHA(struct Screen
*, screen
, A0
),
19 AROS_LHA(UBYTE
* , namebuff
, A1
),
22 struct IntuitionBase
*, IntuitionBase
, 89, Intuition
)
26 Gets the next public screen in the system; this allows visitor windows
27 to jump among public screens in a cycle.
31 screen -- Pointer to the public screen your window is open in or
32 NULL if you don't have a pointer to a public screen.
33 namebuff -- Pointer to a buffer with (at least) MAXPUBSCREENNAME+1
34 characters to put the name of the next public screen in.
38 Returns 'namebuff' or NULL if there are no public screens.
42 We cannot guarantee that the public screen, the name of which you got
43 by using this function, is available when you call for instance
44 LockPubScreen(). Therefore you must be prepared to handle failure of
45 that kind of functions.
46 This function may return the name of a public screen which is in
48 The cycle order is undefined, so draw no conclusions based on it!
56 OpenScreen(), PubScreenStatus()
60 Maybe we should correct the + 1 stupidity right away?
62 *****************************************************************************/
63 #define GPB(x) GetPrivIBase(x)
67 AROS_LIBBASE_EXT_DECL(struct IntuitionBase
*,IntuitionBase
)
69 struct PubScreenNode
*ps
;
70 struct IntScreen
*scr
= (struct IntScreen
*)screen
;
73 list
= LockPubScreenList();
77 ps
= (struct PubScreenNode
*)list
->lh_Head
;
85 ps
= (struct PubScreenNode
*)ps
->psn_Node
.ln_Succ
;
89 /* A "valid" node in a list must have ln_Succ != NULL */
91 if (!ps
->psn_Node
.ln_Succ
) return NULL
;
93 if (namebuff
) strcpy(namebuff
, ps
->psn_Node
.ln_Name
);
95 UnlockPubScreenList();
100 } /* NextPubScreen */