ifmapper 0.9.9 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,112 +1,24 @@
1
1
 
2
2
  class TranscriptDialogBox < FXDialogBox
3
3
 
4
- EXPLANATION_TEXT = [
5
- "Classic Mode expects a short name description for all
6
- locations, where all words of 5 or more characters to are
7
- capitalized and where there is no period.
8
- Commands always begin with a > prompt.",
9
- "Capitalized Mode expects a short name description for all
10
- locations, where only the first word needs to be capitalized
11
- and there is no period.
12
- Commands always begin with a > prompt.",
13
- "Moonmist mode describes locations in parenthesis, with 'You
14
- are...' prefixed and a period at the end, inside the parenthesis.
15
- Commands always begin with a > prompt.",
16
- "Witness mode expects locations described as normal prose, using
17
- 'You are...' as an introductory paragraph. When in brief mode,
18
- locations are expected to be in parenthesis.
19
- Commands always begin with a > prompt.",
20
- "ADRIFT mode expects locations to be like in Classic Mode (short
21
- names where all words of 5 or more characters are capitalized).
22
- However, commands do not begin with any type of prompt but start
23
- with a lowercase word without any margin.",
24
- ]
25
-
26
- LOCATION_TEXT = [
27
- "
28
- > look
29
- West of House
30
- You are standing in an open field west of a white house, with a boarded
31
- front door.
32
- ",
33
- "
34
- > look
35
- Women's change room
36
- Your heels click loudly on the tiles, echoing down the banks of lockers
37
- that line the sides of the room.
38
- ",
39
- "
40
- > look
41
- (You are now in the driveway.)
42
- (You're sitting in the sports car.)
43
- You are by the front gate of the Tresyllian Castle. You can hear the ocean
44
- beating urgently against the rocks far below.
45
- ",
46
- "
47
- > look
48
- You are now in the driveway entrance.
49
- You are standing at the foot of the driveway, the entrance to the
50
- Linder property. The entire lot is screened from the street and the
51
- neighbors by a wooden fence, except on the east side, which fronts on
52
- dense bamboo woods.
53
- ",
54
- "
55
- look
56
- Front of Mall
57
- Although four-wheeled vehicles do pass through, this autonomous
58
- spot of pavement is too narrow a place for them to stall. It is just
59
- right for bicycles and motorbikes such as yours.
60
- ",
61
- ]
62
-
63
- LOCATION2_TEXT = [
64
- "
65
- West of House
66
- ",
67
- "
68
- Women's change room
69
- ",
70
- "
71
- (You are in the driveway.)
72
- ",
73
- "
74
- (driveway entrance)
75
- ",
76
- "
77
- Front of Mall
78
- ",
79
- ]
80
-
81
- IDENTIFY_TYPE = [
82
- 'By Descriptions',
83
- 'By Short Name',
84
- ]
85
-
86
- SHORTNAME_TYPE = [
87
- 'Classic',
88
- 'Capitalized',
89
- 'Moonmist',
90
- 'Witness',
91
- 'ADRIFT',
92
- ]
4
+
93
5
 
94
6
  def copy_from(transcript)
95
7
  @transcript = transcript
96
8
  @type.currentNo = transcript.identify
97
9
  @short.currentNo = transcript.shortName
98
- @exp.text = EXPLANATION_TEXT[@short.currentNo]
99
- @show.text = LOCATION_TEXT[@short.currentNo]
100
- @show2.text = LOCATION2_TEXT[@short.currentNo]
10
+ @exp.text = TRANSCRIPT_EXPLANATION_TEXT[@short.currentNo]
11
+ @show.text = TRANSCRIPT_LOCATION_TEXT[@short.currentNo]
12
+ @show2.text = TRANSCRIPT_LOCATION2_TEXT[@short.currentNo]
101
13
  parent = transcript.map.window
102
14
  end
103
15
 
104
16
  def copy_to()
105
17
  @transcript.identify = @type.currentNo
106
18
  @transcript.shortName = @short.currentNo
107
- @exp.text = EXPLANATION_TEXT[@short.currentNo]
108
- @show.text = LOCATION_TEXT[@short.currentNo]
109
- @show2.text = LOCATION2_TEXT[@short.currentNo]
19
+ @exp.text = TRANSCRIPT_EXPLANATION_TEXT[@short.currentNo]
20
+ @show.text = TRANSCRIPT_LOCATION_TEXT[@short.currentNo]
21
+ @show2.text = TRANSCRIPT_LOCATION2_TEXT[@short.currentNo]
110
22
  end
111
23
 
112
24
  def initialize(transcript)
@@ -118,16 +30,16 @@ Front of Mall
118
30
  pos[1] = maxH if pos[1] > maxH
119
31
 
120
32
  decor = DECOR_TITLE|DECOR_BORDER|DECOR_CLOSE
121
- super( map.window, 'Transcript Options', decor, pos[0], pos[1], 0, 0 )
33
+ super( map.window, BOX_TRANSCRIPT, decor, pos[0], pos[1], 0, 0 )
122
34
 
123
35
  mainFrame = FXVerticalFrame.new(self,
124
36
  FRAME_SUNKEN|FRAME_THICK|
125
37
  LAYOUT_FILL_X|LAYOUT_FILL_Y)
126
38
 
127
39
  frame = FXHorizontalFrame.new(mainFrame, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
128
- FXLabel.new(frame, "Transcript Style: ", nil, 0, LAYOUT_FILL_X)
40
+ FXLabel.new(frame, BOX_TRANSCRIPT_STYLE, nil, 0, LAYOUT_FILL_X)
129
41
  pane = FXPopup.new(self)
130
- SHORTNAME_TYPE.each { |t|
42
+ TRANSCRIPT_SHORTNAME_TYPE.each { |t|
131
43
  FXOption.new(pane, t, nil, nil, 0, JUSTIFY_HZ_APART|ICON_AFTER_TEXT)
132
44
  }
133
45
  @short = FXOptionMenu.new(frame, pane, FRAME_RAISED|FRAME_THICK|
@@ -136,9 +48,9 @@ Front of Mall
136
48
 
137
49
 
138
50
  frame = FXHorizontalFrame.new(mainFrame, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
139
- FXLabel.new(frame, "Identify Locations: ", nil, 0, LAYOUT_FILL_X)
51
+ FXLabel.new(frame, BOX_TRANSCRIPT_IDENTIFY, nil, 0, LAYOUT_FILL_X)
140
52
  pane = FXPopup.new(self)
141
- IDENTIFY_TYPE.each { |t|
53
+ TRANSCRIPT_IDENTIFY_TYPE.each { |t|
142
54
  FXOption.new(pane, t, nil, nil, 0, JUSTIFY_HZ_APART|ICON_AFTER_TEXT)
143
55
  }
144
56
  @type = FXOptionMenu.new(frame, pane, FRAME_RAISED|FRAME_THICK|
@@ -148,7 +60,7 @@ Front of Mall
148
60
 
149
61
 
150
62
  frame = FXVerticalFrame.new(mainFrame, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
151
- FXLabel.new(frame, "Explanation: ", nil, 0, LAYOUT_FILL_X)
63
+ FXLabel.new(frame, BOX_TRANSCRIPT_EXPLANATION, nil, 0, LAYOUT_FILL_X)
152
64
  @exp = FXText.new(frame, nil, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y)
153
65
  @exp.visibleRows = 4
154
66
  @exp.visibleColumns = 60
@@ -156,12 +68,12 @@ Front of Mall
156
68
  @exp.disable
157
69
 
158
70
  frame = FXVerticalFrame.new(mainFrame, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
159
- FXLabel.new(frame, "Sample Verbose Mode: ", nil, 0, LAYOUT_FILL_X)
71
+ FXLabel.new(frame, BOX_TRANSCRIPT_VERBOSE, nil, 0, LAYOUT_FILL_X)
160
72
  @show = FXText.new(frame, nil, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y)
161
73
  @show.visibleRows = 9
162
74
  @show.visibleColumns = 60
163
75
  @show.disable
164
- FXLabel.new(frame, "Sample Brief Mode: ", nil, 0, LAYOUT_FILL_X)
76
+ FXLabel.new(frame, BOX_TRANSCRIPT_BRIEF, nil, 0, LAYOUT_FILL_X)
165
77
  @show2 = FXText.new(frame, nil, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y)
166
78
  @show2.visibleRows = 3
167
79
  @show2.visibleColumns = 60
@@ -0,0 +1,435 @@
1
+ ################
2
+ TITLE = '#{PROGRAM_NAME} v#{VERSION} - Written by #{AUTHOR}'
3
+
4
+ ################ Errors
5
+ ERR_NO_YAML =<<'EOF'
6
+ EOF
7
+ ERR_COULD_NOT_SAVE = 'Could not save'
8
+ ERR_COULD_NOT_LOAD = 'Could not load'
9
+ ERR_NO_ICON = 'Could not load icon: '
10
+ ERR_NO_PRINTING = <<'EOF'
11
+ Sorry, but printing is not yet implemented
12
+ in this version.
13
+ EOF
14
+ ERR_NO_FREE_ROOM = 'Sorry. No free room in map to paste the nodes.'
15
+ ERR_NO_MATCHES = 'No matches for regex'
16
+ ERR_CANNOT_AUTOMAP = 'Cannot automap.'
17
+ ERR_READ_ONLY_MAP = "Map is in Read Only Mode. Go to Map Information to change this."
18
+ ERR_CANNOT_MOVE_SELECTION = 'Cannot move selection'
19
+ ERR_CANNOT_OPEN_TRANSCRIPT = 'Cannot open transcript'
20
+ ERR_PARSE_TRANSCRIPT = "Internal error parsing transcript\nPlease report as a bug"
21
+ ERR_COULD_NOT_OPEN_WEB_BROWSER = 'Could not open any web browser'
22
+ ERR_PATH_FOR_CONNECTION = 'Path for connection'
23
+ ERR_IS_BLOCKED = 'is blocked'
24
+
25
+ ################ Messages
26
+ MSG_LOAD_MAP = 'Load New Map'
27
+ MSG_SAVING = 'Saving'
28
+ MSG_SAVED = 'Saved'
29
+ MSG_LOADING = 'Loading'
30
+ MSG_LOADED = 'Loaded'
31
+ MSG_EMPTY_MAP = 'Empty Map'
32
+ MSG_PRINT_MAP = 'Print Map'
33
+ MSG_PRINT_LOC = 'Print Locations'
34
+ MSG_MATCHES = 'matches'
35
+ MSG_MATCHES_IN_MAP = 'matches in map'
36
+ MSG_MATCHES_IN_SECTION = 'in section'
37
+ MSG_FIND_LOCATION_IN_MAP = 'Find Location in Map'
38
+ MSG_FIND_LOCATION_IN_SECTION = 'Find Location in this Section'
39
+ MSG_FIND_OBJECT_IN_MAP = 'Find Object in Map'
40
+ MSG_FIND_TASK_IN_MAP = 'Find Task in Map'
41
+ MSG_FIND_DESCRIPTION_IN_MAP = 'Find in Description in Map'
42
+ MSG_ABOUT_SOFTWARE = 'About This Software...'
43
+ MSG_ABOUT = <<'EOF'
44
+ #{PROGRAM_NAME} - #{VERSION}
45
+ Written by #{AUTHOR}.
46
+
47
+ FXRuby Version: #{Fox::fxrubyversion}
48
+
49
+ A WYSIWYG mapping tool for interactive fiction.
50
+
51
+ ggarra@advancedsl.com.ar
52
+ EOF
53
+
54
+ MSG_SAVE_MAP = 'Save Map'
55
+
56
+ MSG_SAVE_MAP_AS_IFM = 'Save Map as IFM File'
57
+ FMT_IFM = 'IFM Map (*.ifm)'
58
+
59
+ MSG_SAVE_MAP_AS_INFORM = 'Save Map as Inform Files'
60
+ FMT_INFORM = 'Inform Source Code (*.inf,*.inform)'
61
+
62
+ MSG_SAVE_MAP_AS_TADS = 'Save Map as TADS Files'
63
+ FMT_TADS = 'TADS Source Code (*.t)'
64
+
65
+ MSG_SAVE_MAP_AS_PDF = 'Save Map as Acrobat PDF'
66
+ FMT_PDF = 'Acrobat PDF (*.pdf)'
67
+
68
+ MSG_HOTKEYS = <<'EOF'
69
+
70
+ LMB - Left Mouse Button
71
+ MMB - Middle Mouse Button
72
+ RMB - Right Mouse Button
73
+
74
+ Mouse controls
75
+ --------------
76
+
77
+ Use LMB to add new locations or connections among rooms.
78
+
79
+ Click with LMB on any room or connection to select it.
80
+
81
+ Double click on rooms or connections to access their properties.
82
+
83
+ Click several times on an existing connecion to establish a one-way
84
+ connection.
85
+
86
+ Drag with MMB or ALT + LMB to scroll around the page.
87
+
88
+ Use mousewheel to zoom in and out.
89
+
90
+ Use RMB after selecting a connection to bring a menu to allow you
91
+ to flip its direction or to attach it to some other exit in one
92
+ of the rooms.
93
+
94
+ Keyboard controls
95
+ -----------------
96
+
97
+ Use 'x' to start a new complex connection (ie. a connection across
98
+ rooms that are not neighbors), then click on each exit of each room.
99
+
100
+ Use 'Delete' or 'Backspace' to remove any selected connection or room.
101
+
102
+ Use arrow keys or numeric keypad to move selected rooms around
103
+ the page, one unit at a time.
104
+
105
+ Use CTRL + LMB when adding a connection to create a dead-end
106
+ connection (one that loops onto itself)
107
+
108
+ EOF
109
+
110
+ MSG_LOAD_TRANSCRIPT = 'Load Transcript'
111
+ MSG_NEW_LOCATION = 'New Location'
112
+ MSG_OPENING_WEB_PAGE = 'Opening web page'
113
+
114
+ TRANSCRIPT_EXPLANATION_TEXT = [
115
+ "Classic Mode expects a short name description for all
116
+ locations, where all words of 5 or more characters to are
117
+ capitalized and where there is no period.
118
+ Commands always begin with a > prompt.",
119
+ "Capitalized Mode expects a short name description for all
120
+ locations, where only the first word needs to be capitalized
121
+ and there is no period.
122
+ Commands always begin with a > prompt.",
123
+ "Moonmist mode describes locations in parenthesis, with 'You
124
+ are...' prefixed and a period at the end, inside the parenthesis.
125
+ Commands always begin with a > prompt.",
126
+ "Witness mode expects locations described as normal prose, using
127
+ 'You are...' as an introductory paragraph. When in brief mode,
128
+ locations are expected to be in parenthesis.
129
+ Commands always begin with a > prompt.",
130
+ "ADRIFT mode expects locations to be like in Classic Mode (short
131
+ names where all words of 5 or more characters are capitalized).
132
+ However, commands do not begin with any type of prompt but start
133
+ with a lowercase word without any margin.",
134
+ ]
135
+
136
+
137
+ TRANSCRIPT_LOCATION_TEXT = [
138
+ "
139
+ > look
140
+ West of House
141
+ You are standing in an open field west of a white house, with a boarded
142
+ front door.
143
+ ",
144
+ "
145
+ > look
146
+ Women's change room
147
+ Your heels click loudly on the tiles, echoing down the banks of lockers
148
+ that line the sides of the room.
149
+ ",
150
+ "
151
+ > look
152
+ (You are now in the driveway.)
153
+ (You're sitting in the sports car.)
154
+ You are by the front gate of the Tresyllian Castle. You can hear the ocean
155
+ beating urgently against the rocks far below.
156
+ ",
157
+ "
158
+ > look
159
+ You are now in the driveway entrance.
160
+ You are standing at the foot of the driveway, the entrance to the
161
+ Linder property. The entire lot is screened from the street and the
162
+ neighbors by a wooden fence, except on the east side, which fronts on
163
+ dense bamboo woods.
164
+ ",
165
+ "
166
+ look
167
+ Front of Mall
168
+ Although four-wheeled vehicles do pass through, this autonomous
169
+ spot of pavement is too narrow a place for them to stall. It is just
170
+ right for bicycles and motorbikes such as yours.
171
+ ",
172
+ ]
173
+
174
+ TRANSCRIPT_LOCATION2_TEXT = [
175
+ "
176
+ West of House
177
+ ",
178
+ "
179
+ Women's change room
180
+ ",
181
+ "
182
+ (You are in the driveway.)
183
+ ",
184
+ "
185
+ (driveway entrance)
186
+ ",
187
+ "
188
+ Front of Mall
189
+ ",
190
+ ]
191
+
192
+
193
+ TRANSCRIPT_IDENTIFY_TYPE = [
194
+ 'By Descriptions',
195
+ 'By Short Name',
196
+ ]
197
+
198
+ TRANSCRIPT_SHORTNAME_TYPE = [
199
+ 'Classic',
200
+ 'Capitalized',
201
+ 'Moonmist',
202
+ 'Witness',
203
+ 'ADRIFT',
204
+ ]
205
+
206
+ ############ Window Titles
207
+ TITLE_READ_ONLY = '[Read Only]'
208
+ TITLE_AUTOMAP = '[Automap]'
209
+ TITLE_ZOOM = 'Zoom:'
210
+ TITLE_SECTION = 'Section'
211
+ TITLE_OF = 'of'
212
+
213
+
214
+ ############ Extensions
215
+ EXT_TRANSCRIPT = 'Transcript File (*.log,*.scr,*.txt)'
216
+ EXT_ALL_FILES = 'All Files (*)'
217
+ EXT_MAP_FILES = 'Archivos de Mapas'
218
+
219
+
220
+
221
+ ############ Status messages
222
+ MSG_COMPLEX_CONNECTION = 'Click on first room exit in complex connection.'
223
+ MSG_COMPLEX_CONNECTION_OTHER_EXIT = 'Click on other room exit in complex connection.'
224
+ MSG_COMPLEX_CONNECTION_STOPPED = 'Complex connection interrupted.'
225
+ MSG_COMPLEX_CONNECTION_DONE = 'Complex connection done.'
226
+
227
+ MSG_CLICK_TO_SELECT_AND_MOVE = 'Click to select and move. Double click to edit.'
228
+ MSG_CLICK_CHANGE_DIR = 'Click to change direction of connection.'
229
+ MSG_CLICK_CREATE_ROOM = 'Click to create new room.'
230
+ MSG_CLICK_CREATE_LINK = 'Click to create new connection.'
231
+
232
+ ############ Warnings
233
+ WARN_DELETE_SECTION = 'Are you sure you want to delete this section?'
234
+ WARN_OVERWRITE_MAP = 'already exists. Are you sure you want to overwrite it?'
235
+ WARN_MAP_SMALL = "When changing map size,\nsome rooms will be left outside of map.\nThese rooms will be deleted.\nAre you sure you want to do this?"
236
+
237
+ ############ Menus
238
+ MENU_FILE = "&File"
239
+ MENU_NEW = "&New...\tCtl-N\tCreate new document."
240
+ MENU_OPEN = "&Open...\tCtl-O\tOpen document file."
241
+ MENU_SAVE = "&Save\tCtl-S\tSave document."
242
+ MENU_SAVE_AS = "Save &As...\t\tSave document to another file."
243
+
244
+ MENU_EXPORT = 'Export'
245
+ MENU_EXPORT_PDF = "&Export as PDF...\t\tExport map as Acrobat PDF document."
246
+ MENU_EXPORT_IFM = "&Export as IFM...\t\tExport map as an IFM map."
247
+ MENU_EXPORT_INFORM = "&Export as Inform Source...\t\tExport map as an Inform source code file."
248
+ MENU_EXPORT_TADS = "&Export as TADS3 Source...\t\tExport map as a TADS3 source code file."
249
+
250
+ MENU_PRINT = 'Print'
251
+ MENU_PRINT_MAP = "&Map...\t\tPrint map (as graph)."
252
+ MENU_PRINT_LOCATIONS = "&Locations...\t\tPrint map locations as text list."
253
+
254
+ MENU_QUIT = "&Quit\tCtl-Q\tQuit the application."
255
+
256
+
257
+ MENU_EDIT = '&Edit'
258
+ MENU_COPY = "&Copy\tCtl-C\tCopy Location Data"
259
+ MENU_CUT = "Cu&t\tCtl-X\tCut Location"
260
+ MENU_PASTE = "&Paste\tCtl-V\tPaste Location Data"
261
+
262
+ MENU_MAP = '&Map'
263
+ MENU_SELECT = 'Select'
264
+ MENU_SELECT_ALL = "&All Locations\tAlt-A\tSelect all locations in section"
265
+ MENU_SELECT_NONE = "&None\tAlt-N\tClear selection in section."
266
+
267
+ MENU_SEARCH = 'Search'
268
+ MENU_SEARCH_MAP = "&Location in Map\tCtl-F\tFind a Location Name in Map"
269
+ MENU_SEARCH_SECTION = "Location in &Section\tAlt-F\tFind a Location Name in Current Section"
270
+ MENU_SEARCH_OBJECT = "&Object in Map\tAlt-O\tFind Location with an Object in the Map"
271
+ MENU_SEARCH_TASK = "&Task in Map\tAlt-T\tFind Location with a Task in the Map"
272
+ MENU_SEARCH_DESCRIPTION = "&Keyword in Descriptions\tAlt-D\tFind Location with Description Keyword in the Map"
273
+
274
+ MENU_COMPLEX_CONNECTION = "Comple&x Connection\tx\tCreate a complex connection."
275
+ MENU_DELETE = "Delete\tDel\tDelete selected locations or connections."
276
+
277
+ MENU_MAP_INFO = "Map Information\t\tChange map information."
278
+ MENU_ROOM_LIST = "Room List\t\tList all rooms in map."
279
+
280
+
281
+ MENU_AUTOMAP = 'Automap'
282
+ MENU_AUTOMAP_START = "&Start...\tCtl-T\tStart creating map from transcript file."
283
+ MENU_AUTOMAP_STOP = "S&top...\tCtl-P\tStop autocreating map."
284
+ MENU_AUTOMAP_PROPERTIES = "&Properties...\tCtl-H\tTranscript properties."
285
+
286
+
287
+ MENU_SECTIONS = 'Sections'
288
+ MENU_NEXT_SECTION = "Next Section\t\tGo to Next Map Section."
289
+ MENU_PREVIOUS_SECTION = "Previous Section\t\tGo to Previous Map Section."
290
+ MENU_ADD_SECTION = "Add Section\t\tAdd a New Section to Map."
291
+ MENU_RENAME_SECTION = "Rename Section\t\tRename Current Section."
292
+ MENU_DELETE_SECTION = "Delete Section\t\tDelete Current Section from Map."
293
+
294
+
295
+ MENU_ZOOM_PERCENT = '#{v}%\t\tZoom page to #{v}%.'
296
+ MENU_ZOOM = 'Zoom'
297
+
298
+
299
+ MENU_OPTIONS = 'Options'
300
+ MENU_EDIT_ON_CREATION = "Edit on Creation\t\tEdit locations on creation."
301
+ MENU_AUTOMATIC_CONNECTION = "Automatic Connection\t\tConnect new location to adjacent one."
302
+ MENU_CREATE_ON_CONNECTION = "Create on Connectionn\t\tCreate missing locations when creating a connection."
303
+
304
+
305
+ MENU_DISPLAY = 'Display'
306
+ MENU_USE_ROOM_CURSOR = "Use Room Cursor\t\tMake your mouse cursor a room showing the direction of exit."
307
+ MENU_PATHS_AS_CURVES = "Paths as Curves\t\tDraw complex paths as curves."
308
+ MENU_LOCATION_NUMBERS = "Location Numbers\t\tShow Location Numbers."
309
+ MENU_LOCATION_TASKS = "Location Tasks\t\tShow Tasks in Location Edit Box."
310
+ MENU_LOCATION_DESC = "Location Description\t\tShow Description in Location Edit Box."
311
+ MENU_BOXES = "Boxes\t\tDraw dashed box guidelines."
312
+ MENU_STRAIGHT_CONN = "Straight Connections\t\tDraw dashed N/S/E/W guidelines"
313
+ MENU_DIAGONAL_CONN = "Diagonal Connections\t\tDraw dashed NW/NE/SW/SE guidelines"
314
+
315
+ MENU_PREFS = 'Preferences'
316
+ MENU_LANGUAGE = "Language\t\tChange the default lenguage of the application."
317
+ MENU_COLORS = "Colors\t\tChange map colors."
318
+ MENU_SAVE_PREFS = "Save Preferences\t\tSave Preferences for Startup"
319
+
320
+ MENU_WINDOW = '&Window'
321
+ MENU_TILE_HORIZONTALLY = "Tile &Horizontally"
322
+ MENU_TILE_VERTICALLY = "Tile &Vertically"
323
+ MENU_CASCADE = 'C&ascade'
324
+ MENU_CLOSE = '&Close'
325
+ MENU_OTHERS = '&Others...'
326
+
327
+ MENU_HELP = '&Help'
328
+ MENU_HOTKEYS = '&Hotkeys'
329
+ MENU_INSTRUCTIONS = '&Instructions'
330
+ MENU_ABOUT = '&About'
331
+ MENU_RESOURCE = "&Resource Code"
332
+
333
+ ############ Edit Boxes
334
+
335
+ BOX_INSTRUCTIONS = 'Instructions'
336
+ BOX_HOTKEYS = 'Hotkeys'
337
+
338
+ BOX_ROOM_INFORMATION = 'Room Information'
339
+ BOX_LOCATION = 'Location: '
340
+ BOX_OBJECTS = 'Objects: '
341
+ BOX_DARKNESS = 'Darkness'
342
+ BOX_TASKS = 'Tasks: '
343
+ BOX_DESCRIPTION = 'Description: '
344
+
345
+ BOX_CONNECTION_TYPE = 'Connection Type: '
346
+ BOX_CONNECTION_TYPE_TEXT = [
347
+ 'Free',
348
+ 'Door',
349
+ 'Locked',
350
+ 'Special',
351
+ ]
352
+ BOX_DIRECTION = 'Direction: '
353
+ BOX_DIR_TEXT = [
354
+ 'Both',
355
+ 'One Way',
356
+ ]
357
+ BOX_EXIT_A_TEXT = 'Exit A Text:'
358
+ BOX_EXIT_B_TEXT = 'Exit B Text:'
359
+ BOX_EXIT_TEXT = [
360
+ 'None',
361
+ 'Up',
362
+ 'Down',
363
+ 'In',
364
+ 'Out',
365
+ ]
366
+
367
+ BOX_LOCATIONS = 'Locations'
368
+ BOX_SECTION = 'Section'
369
+ BOX_NAME = 'Name'
370
+
371
+ BOX_MAP_INFORMATION = 'Map Information'
372
+ BOX_MAP_READ_ONLY = 'Read Only Map'
373
+ BOX_MAP_CREATOR = 'Creator:'
374
+ BOX_MAP_WIDTH = 'Map Width'
375
+ BOX_MAP_HEIGHT = 'Map Height'
376
+
377
+ BOX_TRANSCRIPT = 'Transcript Options'
378
+ BOX_TRANSCRIPT_STYLE = 'Transcript Style: '
379
+ BOX_TRANSCRIPT_IDENTIFY = 'Identify Locations: '
380
+ BOX_TRANSCRIPT_EXPLANATION = 'Explanation: '
381
+ BOX_TRANSCRIPT_VERBOSE = 'Sample Verbose Mode: '
382
+ BOX_TRANSCRIPT_BRIEF = 'Sample Brief Mode: '
383
+
384
+ BOX_COLOR = 'Color Preferences'
385
+ BOX_BG_COLOR = '&Background Color'
386
+ BOX_ARROWS_COLOR = '&Arrows Color'
387
+ BOX_BOX_BG_COLOR = '&Box Background Color'
388
+ BOX_BOX_DARK_COLOR = '&Box Darkness Color'
389
+ BOX_BOX_BORDER_COLOR = '&Box Border Color'
390
+ BOX_BOX_NUMBER_COLOR = '&Box Number Color'
391
+
392
+ ########### Buttons
393
+ BUTTON_YES = '&Yes'
394
+ BUTTON_NO = '&No'
395
+ BUTTON_CANCEL = '&Cancel'
396
+ BUTTON_ACCEPT = '&Accept'
397
+
398
+ ########### Icons
399
+ ICON_NEW = "\tNew\tCreate new document."
400
+ ICON_OPEN = "\tOpen\tOpen document file."
401
+ ICON_SAVE = "\tSave\tSave document."
402
+ ICON_SAVE_AS = "\tSaveAs\tSave document to another file."
403
+ ICON_PRINT = "\tPrint Map\tPrint map (as graph)."
404
+ ICON_CUT = "\tCut"
405
+ ICON_COPY = "\tCopy"
406
+ ICON_PASTE = "\tPaste"
407
+ ICON_ZOOM_IN = "+\tZoom In"
408
+ ICON_ZOOM_OUT = "-\tZoom Out"
409
+ ICON_PREV_SECTION = "\tPrevious Section"
410
+ ICON_NEXT_SECTION = "\tNext Section"
411
+
412
+
413
+ ########### Drawings
414
+
415
+ # Text near connection (to indicate other dir)
416
+ DRAW_EXIT_TEXT = [
417
+ '',
418
+ 'U',
419
+ 'D',
420
+ 'I',
421
+ 'O'
422
+ ]
423
+
424
+ class Room
425
+ DIRECTIONS = [
426
+ 'n',
427
+ 'ne',
428
+ 'e',
429
+ 'se',
430
+ 's',
431
+ 'sw',
432
+ 'w',
433
+ 'nw',
434
+ ]
435
+ end