2 Copyright © 1995-2013, 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
)
25 Gets the next public screen in the system; this allows visitor windows
26 to jump among public screens in a cycle.
29 screen - Pointer to the public screen your window is open in or
30 NULL if you don't have a pointer to a public screen.
31 namebuff - Pointer to a buffer with (at least) MAXPUBSCREENNAME+1
32 characters to put the name of the next public screen in.
35 Returns 'namebuff' or NULL if there are no public screens.
38 We cannot guarantee that the public screen, the name of which you got
39 by using this function, is available when you call for instance
40 LockPubScreen(). Therefore you must be prepared to handle failure of
41 that kind of functions.
43 This function may return the name of a public screen which is in
46 The cycle order is undefined, so draw no conclusions based on it!
53 OpenScreen(), PubScreenStatus()
56 Maybe we should correct the + 1 stupidity.
58 *****************************************************************************/
62 struct PubScreenNode
*ps
;
63 struct IntScreen
*scr
= (struct IntScreen
*)screen
;
66 list
= LockPubScreenList();
70 ps
= (struct PubScreenNode
*)list
->lh_Head
;
78 ps
= (struct PubScreenNode
*)ps
->psn_Node
.ln_Succ
;
85 /* A "valid" node in a list must have ln_Succ != NULL */
87 if (ps
->psn_Node
.ln_Succ
== NULL
)
91 strcpy(namebuff
, ps
->psn_Node
.ln_Name
);
93 UnlockPubScreenList();