tkifm: create maps interactively¶
tkifm is a graphical front end to IFM. It provides a text editing window in which you can map out your game using IFM commands, and a set of menus to view things. The various features are as follows:
- Text editing window
- This is the main window, where you type IFM commands. It provides all the usual text editing command bindings that come with the Tcl/Tk text widget, as well as syntax highlighting.
- File menu
- The standard set of file commands: New, Open, Save, Save-As, Export (to PostScript or Fig), Quit. There’s also a command called Redraw, which invokes IFM on the current file again. Normally you don’t have to use this (it’s done whenever you open a new file or save the current one), but if you change your initialization file (see below) the changes won’t be noticed unless you do a Redraw.
- Map menu
- For each map section in your map, a menu entry appears here. Selecting it will draw the appropriate map in another window.
- Item menu
- This contains a single menu item, which displays a list of items in another window.
- Task menu
- This contains two menu items: Task list (brief), which displays a high-level walkthrough of the game in another window, and Task list (verbose) which does the same but gives detailed information about what the game solver is up to.
- Show menu
- This contains two menu items: Variables, which shows all the currently defined variables and their values, and Paths, which shows the file search path.
- Help menu
- This displays a small info panel about the current IFM version, including copying restrictions.
Using your own editor¶
If you’d like to use your own editor to edit IFM files, but still view
results with tkifm, you can. tkifm recognizes when
the file it is visiting gets modified, and rereads it if so. If you like,
you can also disable all tkifm file modification commands by setting the
ifm(edit)
variable to zero (see below). This is probably a good
idea if using another editor, or else you might accidentally save from
tkifm and lose all your changes.
Customization¶
On startup, tkifm reads an initialization file in your home
directory (the one pointed at by the HOME
environment
variable). On Unix systems it is called .tkifmrc
, and on Win32
systems it is called tkifm.ini
. From there, using Tcl commands,
you can set various things that affect the appearance of the program.
Here’s an example file showing the valid variables, their format and
defaults:
# Example tkifm init file.
# Whether to allow editing.
set ifm(edit) 1
# Edit window dimensions.
set ifm(editwidth) 80
set ifm(editheight) 24
# Editing font.
set ifm(editfont) {Courier 12 bold}
# Edit window colours.
set ifm(editforeground) black
set ifm(editbackground) wheat
# Item list window dimensions.
set ifm(itemwidth) 50
set ifm(itemheight) 30
# Task list (brief) window dimensions.
set ifm(taskwidth) 50
set ifm(taskheight) 30
# Task list (verbose) window dimensions.
set ifm(verbosewidth) 80
set ifm(verboseheight) 30
# Variable window dimensions.
set ifm(varswidth) 50
set ifm(varsheight) 30
# Text window font.
set ifm(textfont) {Times 12 bold}
# Text window colours.
set ifm(textforeground) black
set ifm(textbackground) wheat
# Whether to allow tearoff menus.
set ifm(tearoff) 1
# Syntax highlighting variables.
set ifm(syntaxcomments) firebrick
set ifm(syntaxstrings) grey40
set ifm(syntaxstructure) blue
set ifm(syntaxdirections) darkgoldenrod
set ifm(syntaxspecial) cadetblue
set ifm(syntaxbuiltin) forestgreen
set ifm(syntaxkeyword) royalblue
set ifm(syntaxpreprocessor) purple
Errors and warnings¶
Any errors or warnings that occur when invoking IFM will be displayed in a dialog. The current line of the text window will be changed to point at the error or warning line (if appropriate).