6 * (C) Copyright 1998 Manuel Lemos.
7 * (C) Copyright 1995 Jaba Development.
8 * (C) Copyright 1995 Jan van den Baard.
12 * Revision 42.0 2000/05/09 22:19:26 mlemos
13 * Bumped to revision 42.0 before handing BGUI to AROS team
15 * Revision 41.11 2000/05/09 20:33:16 mlemos
16 * Bumped to revision 41.11
18 * Revision 1.2 2000/05/09 19:58:37 mlemos
19 * Merged with the branch Manuel_Lemos_fixes.
21 * Revision 1.1.2.1 1998/02/28 17:44:53 mlemos
27 /* Execute me to compile with DICE V3.0
28 dcc Backdrop.c -mi -ms -mRR -proto -lbgui
33 #include <graphics/displayinfo.h>
41 * A borderless window ;)
43 VOID
Say( struct Screen
*screen
)
45 Object
*WO_Window
, *GO_Ok
;
53 WO_Window
= WindowObject
,
54 WINDOW_Borderless
, TRUE
,
55 WINDOW_SmartRefresh
, TRUE
,
57 WINDOW_AutoAspect
, TRUE
,
58 WINDOW_Screen
, screen
,
60 VGroupObject
, HOffset( 4 ), VOffset( 4 ), Spacing( 3 ),
61 FRM_Type
, FRTYPE_BUTTON
,
62 FRM_BackFill
, SHINE_RASTER
,
65 FRM_Type
, FRTYPE_BUTTON
,
67 INFO_TextFormat
, ISEQ_C
"This demonstration shows you how to\n"
68 "create a backdrop, borderless window with BGUI.\n\n"
69 "You may recognize the GUI as the main window\n"
70 "of SPOT but that's because I could not\n"
71 "come up with something original.\n\n"
72 "Just click on " ISEQ_B
"Quit" ISEQ_N
" to exit the demo.",
73 INFO_FixTextWidth
, TRUE
,
79 VarSpace( DEFAULT_WEIGHT
),
80 StartMember
, GO_Ok
= KeyButton( "_OK", ID_QUIT
), EndMember
,
81 VarSpace( DEFAULT_WEIGHT
),
82 EndObject
, FixMinHeight
,
94 if ( GadgetKey( WO_Window
, GO_Ok
, "o" )) {
98 if ( WindowOpen( WO_Window
)) {
99 GetAttr( WINDOW_SigMask
, WO_Window
, &signal
);
101 * Wait for somebody to click
102 * on the "OK" gadget.
106 while (( rc
= HandleEvent( WO_Window
)) != WMHI_NOMORE
) {
113 DisposeObject( WO_Window
);
120 VOID
StartDemo( void )
122 struct Screen
*myscreen
, *wblock
;
123 struct DrawInfo
*dri
;
124 struct Window
*window
;
132 * Lock the workbench screen.
134 if (( wblock
= LockPubScreen( "Workbench" ))) {
136 * Obtain it's DrawInfo.
138 if (( dri
= GetScreenDrawInfo( wblock
))) {
142 if (( mode
= GetVPModeID( &wblock
->ViewPort
)) != INVALID_ID
) {
144 * Open a screen ala your workbench.
146 if (( myscreen
= OpenScreenTags( NULL
, SA_Depth
, dri
->dri_Depth
,
147 SA_Width
, wblock
->Width
,
148 SA_Height
, wblock
->Height
,
150 SA_Pens
, dri
->dri_Pens
,
151 SA_Title
, "Backdrop Demo.",
154 * Create a simple backdrop window on
155 * the screen whilst keeping the screen
158 WO_Window
= WindowObject
,
159 WINDOW_SmartRefresh
, TRUE
,
160 WINDOW_Backdrop
, TRUE
,
161 WINDOW_ShowTitle
, TRUE
,
162 WINDOW_CloseOnEsc
, TRUE
,
163 WINDOW_AutoAspect
, TRUE
,
164 WINDOW_NoBufferRP
, TRUE
,
165 WINDOW_Screen
, myscreen
,
167 HGroupObject
, HOffset( 4 ), VOffset( 4 ), Spacing( 4 ),
169 VGroupObject
, Spacing( 4 ),
170 StartMember
, Button( "Message list...", 0 ), EndMember
,
171 StartMember
, Button( "Messages...", 0 ), EndMember
,
173 StartMember
, Button( "Import...", 0 ), EndMember
,
174 StartMember
, Button( "Export...", 0 ), EndMember
,
175 StartMember
, Button( "Maintenance...", 0 ), EndMember
,
176 StartMember
, Button( "Optimize...", 0 ), EndMember
,
178 StartMember
, Button( "Poll...", 0 ), EndMember
,
179 StartMember
, Button( "File request...", 0 ), EndMember
,
181 StartMember
, Button( "Iconify", 0 ), EndMember
,
182 StartMember
, Button( "Quit", ID_QUIT
), EndMember
,
183 EndObject
, FixMinSize
,
185 StartMember
, ListviewObject
, EndObject
, EndMember
,
196 if (( window
= WindowOpen( WO_Window
))) {
198 * Show an explanation window.
200 wlock
= BGUI_LockWindow( window
);
202 BGUI_UnlockWindow( wlock
);
204 * Pick up the window signal.
206 GetAttr( WINDOW_SigMask
, WO_Window
, &signal
);
212 while (( rc
= HandleEvent( WO_Window
)) != WMHI_NOMORE
) {
215 case WMHI_CLOSEWINDOW
:
223 Tell( "Unable to open the window\n" );
224 DisposeObject( WO_Window
);
226 Tell( "Unable to create the window object\n" );
227 CloseScreen( myscreen
);
229 Tell( "Unable to open the screen\n" );
231 Tell( "Unknown screen mode\n" );
232 FreeScreenDrawInfo( wblock
, dri
);
234 Tell( "Unable to get DrawInfo\n" );
235 UnlockPubScreen( NULL
, wblock
);
237 Tell( "Unable to lock the Workbench screen\n" );