finally the biggest changes together with makefile. hardcoded flag removed.
[AROS-Contrib.git] / dopus / Program / screendata.h
blob70697f827e35c3a9a9de932bf5ca9494f129eca0
1 /*
3 Directory Opus 4
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 */
37 #include "dopus.h"
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 */
50 extern struct TagItem
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 */
154 extern struct Image
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 */
167 path_stringinfo[2];
169 extern struct Gadget
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 */
261 #endif