4 Original GPL release version 4.12
5 Copyright 1993-2000 Jonathan Potter
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; either version 2
10 of the License, or (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 All users of Directory Opus 4 (including versions distributed
22 under the GPL) are entitled to upgrade to the latest version of
23 Directory Opus version 5 at a reduced price. Please see
24 http://www.gpsoft.com.au for more information.
26 The release of Directory Opus 4 under the GPL in NO WAY affects
27 the existing commercial status of Directory Opus 5.
31 #ifndef DOPUS_SCREEN_DATA
32 #define DOPUS_SCREEN_DATA
34 /* Definitions of any data that relates to the Screen display. Includes
35 TextAttrs, NewScreen structures and TagItems, and various global data */
39 /* TextAttr structures */
41 extern struct TextAttr
42 main_screen_attr
, /* Main screen font */
43 screen_attr
, /* General screen font */
44 menu_attr
; /* Menu font */
46 /* Screen tag lists */
48 extern UWORD scr_drawinfo
[NUMDRIPENS
+1]; /* Pen lists */
51 mainscreen_tags
[], /* Tags for the main screen */
52 stdscreen_tags
[], /* Tags for a standard HIRES screen */
53 mainwindow_tags
[]; /* Tags for the main window */
55 /* NewScreen structures */
57 extern struct ExtNewScreen
58 main_scr
, /* Main screen */
59 font_scr
, /* Font screen */
60 blank_scr
; /* Blank screen */
62 /* NewWindow structures */
64 extern struct ExtNewWindow
65 main_win
; /* Main window */
67 extern struct NewWindow
68 font_win
, /* Font window */
69 disk_win
; /* DiskInfo window */
71 extern struct NewWindow icon_win
; /* Iconified window */
73 extern struct AppWindow
*dopus_appwindow
; /* AppWindow when on Workbench screen */
75 /* Definitions for the custom menus */
77 extern struct Menu menu_menus
[5]; /* Custom menus */
78 extern struct MenuItem
*menu_menuitem
; /* Custom menu items */
79 extern struct IntuiText
*menu_intuitext
; /* IntuiText for custom menu items */
81 extern char *menu_itemnames
; /* Names of the menu items */
82 extern char menu_spaceitemnames
[5][80]; /* Space background of menu items */
84 extern UBYTE menu_real_number
[5]; /* The real ordinal number of each menu */
86 /* Internal Screen Data */
88 extern struct ColourTable screen_pens
[16]; /* Colour pen table */
90 extern UWORD scrdata_norm_width
; /* Normal width of the display */
91 extern UWORD scrdata_norm_height
; /* Normal height of the display */
92 extern UWORD scrdata_scr_height
; /* Main screen/window height */
94 extern UWORD scrdata_dispwin_lines
; /* Number of lines in each window */
95 extern UWORD scrdata_dispwin_width
[2]; /* Displayed width in each window */
96 extern UWORD scrdata_dispwin_height
; /* Height of directory windows */
97 extern UWORD scrdata_dispwin_nchars
[2]; /* Width of each window in characters */
98 extern UWORD scrdata_dispwin_ypos
; /* Y-Position of directory windows */
99 extern UWORD scrdata_dispwin_left
[2]; /* Left edge of directory windows */
100 extern UWORD scrdata_dispwin_xpos
[2]; /* Left edge of text in windows */
101 extern UWORD scrdata_dispwin_center
; /* Center of the two windows */
103 extern UWORD scrdata_dirwin_xpos
[2]; /* Rendered X-Position of each window */
104 extern UWORD scrdata_dirwin_ypos
[2]; /* Rendered Y-Position of each window */
105 extern UWORD scrdata_dirwin_width
[2]; /* Rendered width of each window */
106 extern UWORD scrdata_dirwin_height
; /* Rendered height of directory windows */
107 extern UWORD scrdata_dirwin_bottom
; /* Rendered bottom of each window */
108 extern UWORD scrdata_dirwin_center
; /* Rendered center of the two windows */
110 extern UWORD scrdata_drive_width
; /* Width of the drive gadgets */
111 extern UWORD scrdata_gadget_offset
; /* X-Offset of entire gadget display */
112 extern UWORD scrdata_gadget_xpos
; /* X-Position of the custom gadgets */
113 extern UWORD scrdata_gadget_ypos
; /* Y-Position of the custom gadgets */
114 extern UWORD scrdata_gadget_width
; /* Width of the custom gadgets */
115 extern UWORD scrdata_gadget_height
; /* Height of the custom gadgets */
117 extern UWORD scrdata_clock_width
; /* Width of the clock bar */
118 extern UWORD scrdata_clock_height
; /* Height of the clock bar */
119 extern UWORD scrdata_clock_xpos
; /* x-pos of the clock bar */
120 extern UWORD scrdata_clock_ypos
; /* y-pos of the clock bar */
121 extern UWORD scrdata_status_xpos
; /* X-Position of the status bar */
122 extern UWORD scrdata_status_ypos
; /* Y-Position of the status bar */
123 extern UWORD scrdata_status_width
; /* Width of the status bar */
124 extern UWORD scrdata_status_height
; /* Height of the status bar */
125 extern UWORD scrdata_diskname_width
[2]; /* Width of each diskname display */
126 extern UWORD scrdata_diskname_height
; /* Height of the diskname displays */
127 extern UWORD scrdata_diskname_ypos
; /* Y-Position of the diskname displays */
128 extern UWORD scrdata_diskname_xpos
[2]; /* X-Position of each diskname display */
129 extern UWORD scrdata_prop_height
; /* Height of the vertical sliders */
130 extern UWORD scrdata_string_height
; /* Height of the path string gadgets */
131 extern UWORD scrdata_closegad_width
; /* Width of the screen close gadget */
133 extern UWORD scrdata_font_xsize
; /* X-Size of the dir window font */
134 extern UWORD scrdata_font_ysize
; /* Y-Size of the dir window font */
135 extern UWORD scrdata_font_baseline
; /* Baseline of the dir window font */
137 extern UBYTE scrdata_is_pal
; /* Indicates PAL or NTSC system */
138 extern UBYTE scrdata_statustext_pos
; /* Status text positioning */
139 extern LONG scrdata_old_offset_store
; /* Stored offset in directory window */
141 extern UWORD scrdata_xoffset
; /* General x-offset */
142 extern UWORD scrdata_yoffset
; /* General y-offset */
143 extern UWORD scrdata_width
; /* Display width */
144 extern UWORD scrdata_height
; /* Display height */
146 /* Definitions of screen objects */
148 extern struct PropInfo
149 vert_propinfo
[2], /* Vertical slider PropInfo */
150 horiz_propinfo
[2], /* Horizontal slider PropInfo */
151 drive_propinfo
, /* Drive banks slider PropInfo */
152 gadget_propinfo
; /* Gadget banks slider PropInfo */
155 vert_propimage
[2], /* Vertical slider Image */
156 horiz_propimage
[2], /* Horizontal slider Image */
157 drive_propimage
, /* Drive banks slider Image */
158 gadget_propimage
; /* Gadget banks slider Image */
160 extern struct StringExtend string_extend
; /* Path fields StringExtension */
161 extern struct StringExtend requester_stringex
; /* Path fields StringExtension */
163 extern char str_pathbuffer
[2][256]; /* Path fields buffers */
164 extern char str_undobuffer
[256]; /* General undo buffer for string gads */
166 extern struct StringInfo
/* Path fields StringInfos */
170 *main_gadgets
, /* Custom gadgets */
171 *drive_gadgets
, /* Drive gadgets */
172 path_strgadget
[2], /* Path field gadgets */
173 vert_propgad
[2], /* Vertical slider gadgets */
174 horiz_propgad
[2], /* Horizontal slider gadgets */
175 drive_propgad
, /* Drive banks slider gadget */
176 gadget_propgad
, /* Gadget banks slider gadget */
177 screen_gadgets
[24]; /* General screen gadgets */
179 extern struct Gadget size_gadgets
[];
181 #define SCRGAD_LEFTSTRING 0
182 #define SCRGAD_RIGHTSTRING 1
183 #define SCRGAD_LEFTPARENT 0
184 #define SCRGAD_RIGHTPARENT 1
186 #define SCRGAD_TINYBUFFERLIST 2
187 #define SCRGAD_TINYRESELECT 3
188 #define SCRGAD_TINYSELECT 4
189 #define SCRGAD_TINYAREXX 5
191 #define SCRGAD_TINYHELP 6
192 #define SCRGAD_TINYERRORHELP 7
193 #define SCRGAD_TINYFILTER 8
194 #define SCRGAD_TINYCONFIGURE 9
195 #define SCRGAD_TINYICONIFY 10
196 #define SCRGAD_TINYQUIT 11
198 #define SCRGAD_MOVELEFT1 12
199 #define SCRGAD_MOVELEFT2 13
200 #define SCRGAD_MOVERIGHT1 14
201 #define SCRGAD_MOVERIGHT2 15
202 #define SCRGAD_MOVEUP1 16
203 #define SCRGAD_MOVEUP2 17
204 #define SCRGAD_MOVEDOWN1 18
205 #define SCRGAD_MOVEDOWN2 19
206 #define SCRGAD_BUFFERLEFT1 20
207 #define SCRGAD_BUFFERLEFT2 21
208 #define SCRGAD_BUFFERRIGHT1 22
209 #define SCRGAD_BUFFERRIGHT2 23
211 #define SCRGAD_LEFTPROP 30
212 #define SCRGAD_RIGHTPROP 31
213 #define SCRGAD_LEFTHPROP 32
214 #define SCRGAD_RIGHTHPROP 33
215 #define SCRGAD_DRIVEPROP 34
216 #define SCRGAD_GADGETPROP 35
218 extern struct Gadget iconbutpropgad
; /* Button iconify slider */
220 extern struct RMBGadget
221 mainrmbgads
[7]; /* Screen right mouse button gadgets */
224 /* Click-M-Click dragging data */
226 extern struct VSprite drag_sprite
; /* VSprite used for dragging */
227 extern struct Bob drag_bob
; /* BOB used for dragging */
229 extern struct BitMap drag_bob_bitmap
; /* Bitmap used to render BOB */
230 extern struct RastPort drag_bob_rastport
; /* Rastport used to render BOB */
232 extern PLANEPTR drag_bob_buffer
; /* BOB buffer */
233 extern PLANEPTR drag_bob_savebuffer
; /* BOB background save buffer */
235 extern struct GelsInfo drag_gelsinfo
; /* GelsInfo structure for BOB */
236 extern struct VSprite drag_dummy_sprite1
; /* Dummy sprite 1 for GELs list */
237 extern struct VSprite drag_dummy_sprite2
; /* Dummy sprite 2 for GELs list */
239 /* General screen data */
241 extern struct Rectangle scr_scroll_borders
[2]; /* Scroll borders for dir windows */
243 /* Borders for gadget highlighting */
245 extern struct DOpusRemember
*border_key
; /* Memory key for border data */
247 extern struct Border
*gadget_sel_border
; /* Borders for main gadgets */
248 extern struct Border
*gadget_unsel_border
;
250 extern struct Border
*gadget_dog_sel_border
; /* Main gadgets with dog-ears*/
251 extern struct Border
*gadget_dog_unsel_border
;
253 extern struct Border
*drive_sel_border
; /* Borders for drive gadgets */
254 extern struct Border
*drive_unsel_border
;
256 extern struct Border
*drive_bank_sel_border
; /* Borders for the drive bank */
257 extern struct Border
*drive_bank_unsel_border
;
259 #define MAIN_GAD_BASE 1000 /* GadgetID base of custom gadgets */