+/* values for the element list */
+#define ED_ELEMENTLIST_XPOS 5
+#define ED_ELEMENTLIST_YPOS 30
+#define ED_ELEMENTLIST_XSIZE 20
+#define ED_ELEMENTLIST_YSIZE 20
+#define ED_ELEMENTLIST_BUTTONS_HORIZ 4
+#define ED_ELEMENTLIST_BUTTONS_VERT 11
+#define ED_NUM_ELEMENTLIST_BUTTONS (ED_ELEMENTLIST_BUTTONS_HORIZ * \
+ ED_ELEMENTLIST_BUTTONS_VERT)
+
+/* values for the setting windows */
+#define ED_SETTINGS_XPOS (MINI_TILEX + 8)
+#define ED_SETTINGS2_XPOS MINI_TILEX
+#define ED_SETTINGS_YPOS MINI_TILEY
+#define ED_SETTINGS2_YPOS (ED_SETTINGS_YPOS + 12 * TILEY - 2)
+
+/* values for counter gadgets */
+#define ED_COUNT_ELEM_SCORE_XPOS ED_SETTINGS_XPOS
+#define ED_COUNT_ELEM_SCORE_YPOS (14 * MINI_TILEY)
+#define ED_COUNT_ELEM_CONTENT_XPOS ED_SETTINGS_XPOS
+#define ED_COUNT_ELEM_CONTENT_YPOS (19 * MINI_TILEY)
+
+#define ED_COUNTER_YSTART (ED_SETTINGS_YPOS + 2 * TILEY)
+#define ED_COUNTER_YDISTANCE (3 * MINI_TILEY)
+#define ED_COUNTER_YPOS(n) (ED_COUNTER_YSTART + \
+ n * ED_COUNTER_YDISTANCE)
+#define ED_COUNTER2_YPOS(n) (ED_COUNTER_YSTART + \
+ n * ED_COUNTER_YDISTANCE - 2)
+/* standard distances */
+#define ED_BORDER_SIZE 3
+#define ED_GADGET_DISTANCE 2
+
+/* values for element content drawing areas */
+#define ED_AREA_ELEM_CONTENT_XPOS ( 2 * MINI_TILEX)
+#define ED_AREA_ELEM_CONTENT_YPOS (22 * MINI_TILEY)
+
+/* values for random placement background drawing area */
+#define ED_AREA_RANDOM_BACKGROUND_XPOS (29 * MINI_TILEX)
+#define ED_AREA_RANDOM_BACKGROUND_YPOS (31 * MINI_TILEY)
+
+/* values for scrolling gadgets for drawing area */
+#define ED_SCROLLBUTTON_XPOS 24
+#define ED_SCROLLBUTTON_YPOS 0
+#define ED_SCROLLBAR_XPOS 24
+#define ED_SCROLLBAR_YPOS 64
+
+#define ED_SCROLLBUTTON_XSIZE 16
+#define ED_SCROLLBUTTON_YSIZE 16
+
+#define ED_SCROLL_UP_XPOS (SXSIZE - ED_SCROLLBUTTON_XSIZE)
+#define ED_SCROLL_UP_YPOS (0)
+#define ED_SCROLL_DOWN_XPOS ED_SCROLL_UP_XPOS
+#define ED_SCROLL_DOWN_YPOS (SYSIZE - 3 * ED_SCROLLBUTTON_YSIZE)
+#define ED_SCROLL_LEFT_XPOS (0)
+#define ED_SCROLL_LEFT_YPOS (SYSIZE - 2 * ED_SCROLLBUTTON_YSIZE)
+#define ED_SCROLL_RIGHT_XPOS (SXSIZE - 2 * ED_SCROLLBUTTON_XSIZE)
+#define ED_SCROLL_RIGHT_YPOS ED_SCROLL_LEFT_YPOS
+#define ED_SCROLL_HORIZONTAL_XPOS (ED_SCROLL_LEFT_XPOS + ED_SCROLLBUTTON_XSIZE)
+#define ED_SCROLL_HORIZONTAL_YPOS ED_SCROLL_LEFT_YPOS
+#define ED_SCROLL_HORIZONTAL_XSIZE (SXSIZE - 3 * ED_SCROLLBUTTON_XSIZE)
+#define ED_SCROLL_HORIZONTAL_YSIZE ED_SCROLLBUTTON_YSIZE
+#define ED_SCROLL_VERTICAL_XPOS ED_SCROLL_UP_XPOS
+#define ED_SCROLL_VERTICAL_YPOS (ED_SCROLL_UP_YPOS + ED_SCROLLBUTTON_YSIZE)
+#define ED_SCROLL_VERTICAL_XSIZE ED_SCROLLBUTTON_XSIZE
+#define ED_SCROLL_VERTICAL_YSIZE (SYSIZE - 4 * ED_SCROLLBUTTON_YSIZE)
+
+/* values for scrolling gadgets for element list */
+#define ED_SCROLLBUTTON2_XPOS 50
+#define ED_SCROLLBUTTON2_YPOS 0
+#define ED_SCROLLBAR2_XPOS 50
+#define ED_SCROLLBAR2_YPOS 20
+
+#define ED_SCROLLBUTTON2_XSIZE 10
+#define ED_SCROLLBUTTON2_YSIZE 10
+
+#define ED_SCROLL2_UP_XPOS 85
+#define ED_SCROLL2_UP_YPOS 30
+#define ED_SCROLL2_DOWN_XPOS ED_SCROLL2_UP_XPOS
+#define ED_SCROLL2_DOWN_YPOS (ED_SCROLL2_UP_YPOS + \
+ ED_ELEMENTLIST_BUTTONS_VERT * \
+ ED_ELEMENTLIST_YSIZE - \
+ ED_SCROLLBUTTON2_YSIZE)
+#define ED_SCROLL2_VERTICAL_XPOS ED_SCROLL2_UP_XPOS
+#define ED_SCROLL2_VERTICAL_YPOS (ED_SCROLL2_UP_YPOS + \
+ ED_SCROLLBUTTON2_YSIZE)
+#define ED_SCROLL2_VERTICAL_XSIZE ED_SCROLLBUTTON2_XSIZE
+#define ED_SCROLL2_VERTICAL_YSIZE (ED_ELEMENTLIST_BUTTONS_VERT * \
+ ED_ELEMENTLIST_YSIZE - \
+ 2 * ED_SCROLLBUTTON2_YSIZE)
+
+/* values for checkbutton gadgets */
+#define ED_CHECKBUTTON_XSIZE ED_BUTTON_COUNT_XSIZE
+#define ED_CHECKBUTTON_YSIZE ED_BUTTON_COUNT_YSIZE
+#define ED_CHECKBUTTON_UNCHECKED_XPOS ED_BUTTON_MINUS_XPOS
+#define ED_CHECKBUTTON_CHECKED_XPOS ED_BUTTON_PLUS_XPOS
+#define ED_CHECKBUTTON_YPOS (ED_BUTTON_MINUS_YPOS + 22)
+#define ED_RADIOBUTTON_YPOS (ED_BUTTON_MINUS_YPOS + 44)
+#define ED_STICKYBUTTON_YPOS (ED_BUTTON_MINUS_YPOS + 66)
+
+/* some positions in the editor control window */
+#define ED_BUTTON_ELEM_XPOS 6
+#define ED_BUTTON_ELEM_YPOS 30
+#define ED_BUTTON_ELEM_XSIZE 22
+#define ED_BUTTON_ELEM_YSIZE 22
+
+/* some values for text input and counter gadgets */
+#define ED_BUTTON_COUNT_YPOS 60
+#define ED_BUTTON_COUNT_XSIZE 20
+#define ED_BUTTON_COUNT_YSIZE 20
+#define ED_WIN_COUNT_XPOS (2 + ED_BUTTON_COUNT_XSIZE + 2)
+#define ED_WIN_COUNT_YPOS ED_BUTTON_COUNT_YPOS
+#define ED_WIN_COUNT_XSIZE 52
+#define ED_WIN_COUNT_YSIZE ED_BUTTON_COUNT_YSIZE
+#define ED_WIN_COUNT2_XPOS 27
+#define ED_WIN_COUNT2_YPOS 3
+#define ED_WIN_COUNT2_XSIZE 46
+#define ED_WIN_COUNT2_YSIZE ED_BUTTON_COUNT_YSIZE
+
+#define ED_BUTTON_MINUS_XPOS 2
+#define ED_BUTTON_MINUS_YPOS ED_BUTTON_COUNT_YPOS
+#define ED_BUTTON_MINUS_XSIZE ED_BUTTON_COUNT_XSIZE
+#define ED_BUTTON_MINUS_YSIZE ED_BUTTON_COUNT_YSIZE
+#define ED_BUTTON_PLUS_XPOS (ED_WIN_COUNT_XPOS + ED_WIN_COUNT_XSIZE + 2)
+#define ED_BUTTON_PLUS_YPOS ED_BUTTON_COUNT_YPOS
+#define ED_BUTTON_PLUS_XSIZE ED_BUTTON_COUNT_XSIZE
+#define ED_BUTTON_PLUS_YSIZE ED_BUTTON_COUNT_YSIZE
+
+/* editor gadget identifiers */
+
+/* drawing toolbox buttons */
+#define GADGET_ID_NONE -1
+#define GADGET_ID_SINGLE_ITEMS 0
+#define GADGET_ID_CONNECTED_ITEMS 1
+#define GADGET_ID_LINE 2
+#define GADGET_ID_ARC 3
+#define GADGET_ID_RECTANGLE 4
+#define GADGET_ID_FILLED_BOX 5
+#define GADGET_ID_WRAP_UP 6
+#define GADGET_ID_TEXT 7
+#define GADGET_ID_FLOOD_FILL 8
+#define GADGET_ID_WRAP_LEFT 9
+#define GADGET_ID_PROPERTIES 10
+#define GADGET_ID_WRAP_RIGHT 11
+#define GADGET_ID_RANDOM_PLACEMENT 12
+#define GADGET_ID_GRAB_BRUSH 13
+#define GADGET_ID_WRAP_DOWN 14
+#define GADGET_ID_PICK_ELEMENT 15
+#define GADGET_ID_UNDO 16
+#define GADGET_ID_INFO 17
+#define GADGET_ID_SAVE 18
+#define GADGET_ID_CLEAR 19
+#define GADGET_ID_TEST 20
+#define GADGET_ID_EXIT 21
+
+/* counter button identifiers */
+#define GADGET_ID_ELEM_SCORE_DOWN 22
+#define GADGET_ID_ELEM_SCORE_TEXT 23
+#define GADGET_ID_ELEM_SCORE_UP 24
+#define GADGET_ID_ELEM_CONTENT_DOWN 25
+#define GADGET_ID_ELEM_CONTENT_TEXT 26
+#define GADGET_ID_ELEM_CONTENT_UP 27
+#define GADGET_ID_LEVEL_XSIZE_DOWN 28
+#define GADGET_ID_LEVEL_XSIZE_TEXT 29
+#define GADGET_ID_LEVEL_XSIZE_UP 30
+#define GADGET_ID_LEVEL_YSIZE_DOWN 31
+#define GADGET_ID_LEVEL_YSIZE_TEXT 32
+#define GADGET_ID_LEVEL_YSIZE_UP 33
+#define GADGET_ID_LEVEL_RANDOM_DOWN 34
+#define GADGET_ID_LEVEL_RANDOM_TEXT 35
+#define GADGET_ID_LEVEL_RANDOM_UP 36
+#define GADGET_ID_LEVEL_COLLECT_DOWN 37
+#define GADGET_ID_LEVEL_COLLECT_TEXT 38
+#define GADGET_ID_LEVEL_COLLECT_UP 39
+#define GADGET_ID_LEVEL_TIMELIMIT_DOWN 40
+#define GADGET_ID_LEVEL_TIMELIMIT_TEXT 41
+#define GADGET_ID_LEVEL_TIMELIMIT_UP 42
+#define GADGET_ID_LEVEL_TIMESCORE_DOWN 43
+#define GADGET_ID_LEVEL_TIMESCORE_TEXT 44
+#define GADGET_ID_LEVEL_TIMESCORE_UP 45
+#define GADGET_ID_SELECT_LEVEL_DOWN 46
+#define GADGET_ID_SELECT_LEVEL_TEXT 47
+#define GADGET_ID_SELECT_LEVEL_UP 48
+
+/* drawing area identifiers */
+#define GADGET_ID_DRAWING_LEVEL 49
+#define GADGET_ID_ELEM_CONTENT_0 50
+#define GADGET_ID_ELEM_CONTENT_1 51
+#define GADGET_ID_ELEM_CONTENT_2 52
+#define GADGET_ID_ELEM_CONTENT_3 53
+#define GADGET_ID_ELEM_CONTENT_4 54
+#define GADGET_ID_ELEM_CONTENT_5 55
+#define GADGET_ID_ELEM_CONTENT_6 56
+#define GADGET_ID_ELEM_CONTENT_7 57
+#define GADGET_ID_AMOEBA_CONTENT 58
+
+/* text input identifiers */
+#define GADGET_ID_LEVEL_NAME 59
+#define GADGET_ID_LEVEL_AUTHOR 60
+
+/* gadgets for scrolling of drawing area */
+#define GADGET_ID_SCROLL_UP 61
+#define GADGET_ID_SCROLL_DOWN 62
+#define GADGET_ID_SCROLL_LEFT 63
+#define GADGET_ID_SCROLL_RIGHT 64
+#define GADGET_ID_SCROLL_HORIZONTAL 65
+#define GADGET_ID_SCROLL_VERTICAL 66
+
+/* gadgets for scrolling element list */
+#define GADGET_ID_SCROLL_LIST_UP 67
+#define GADGET_ID_SCROLL_LIST_DOWN 68
+#define GADGET_ID_SCROLL_LIST_VERTICAL 69
+
+/* buttons for level settings */
+#define GADGET_ID_RANDOM_PERCENTAGE 70
+#define GADGET_ID_RANDOM_QUANTITY 71
+#define GADGET_ID_RANDOM_RESTRICTED 72
+#define GADGET_ID_DOUBLE_SPEED 73
+#define GADGET_ID_GRAVITY 74
+#define GADGET_ID_STICK_ELEMENT 75
+#define GADGET_ID_EM_SLIPPERY_GEMS 76
+
+/* another drawing area for random placement */
+#define GADGET_ID_RANDOM_BACKGROUND 77
+
+/* gadgets for buttons in element list */
+#define GADGET_ID_ELEMENTLIST_FIRST 78
+#define GADGET_ID_ELEMENTLIST_LAST (78 + ED_NUM_ELEMENTLIST_BUTTONS - 1)
+
+#define NUM_EDITOR_GADGETS (GADGET_ID_ELEMENTLIST_LAST + 1)
+
+/* radio button numbers */
+#define RADIO_NR_NONE 0
+#define RADIO_NR_DRAWING_TOOLBOX 1
+#define RADIO_NR_RANDOM_ELEMENTS 2
+
+/* values for counter gadgets */
+#define ED_COUNTER_ID_ELEM_SCORE 0
+#define ED_COUNTER_ID_ELEM_CONTENT 1
+#define ED_COUNTER_ID_LEVEL_XSIZE 2
+#define ED_COUNTER_ID_LEVEL_YSIZE 3
+#define ED_COUNTER_ID_LEVEL_COLLECT 4
+#define ED_COUNTER_ID_LEVEL_TIMELIMIT 5
+#define ED_COUNTER_ID_LEVEL_TIMESCORE 6
+#define ED_COUNTER_ID_LEVEL_RANDOM 7
+#define ED_COUNTER_ID_SELECT_LEVEL 8
+
+#define ED_NUM_COUNTERBUTTONS 9
+
+#define ED_COUNTER_ID_LEVEL_FIRST ED_COUNTER_ID_LEVEL_XSIZE
+#define ED_COUNTER_ID_LEVEL_LAST ED_COUNTER_ID_LEVEL_RANDOM
+
+/* values for scrollbutton gadgets */
+#define ED_SCROLLBUTTON_ID_AREA_UP 0
+#define ED_SCROLLBUTTON_ID_AREA_DOWN 1
+#define ED_SCROLLBUTTON_ID_AREA_LEFT 2
+#define ED_SCROLLBUTTON_ID_AREA_RIGHT 3
+#define ED_SCROLLBUTTON_ID_LIST_UP 4
+#define ED_SCROLLBUTTON_ID_LIST_DOWN 5
+
+#define ED_NUM_SCROLLBUTTONS 6
+
+#define ED_SCROLLBUTTON_ID_AREA_FIRST ED_SCROLLBUTTON_ID_AREA_UP
+#define ED_SCROLLBUTTON_ID_AREA_LAST ED_SCROLLBUTTON_ID_AREA_RIGHT
+
+/* values for scrollbar gadgets */
+#define ED_SCROLLBAR_ID_AREA_HORIZONTAL 0
+#define ED_SCROLLBAR_ID_AREA_VERTICAL 1
+#define ED_SCROLLBAR_ID_LIST_VERTICAL 2
+
+#define ED_NUM_SCROLLBARS 3
+
+#define ED_SCROLLBAR_ID_AREA_FIRST ED_SCROLLBAR_ID_AREA_HORIZONTAL
+#define ED_SCROLLBAR_ID_AREA_LAST ED_SCROLLBAR_ID_AREA_VERTICAL
+
+/* values for text input gadgets */
+#define ED_TEXTINPUT_ID_LEVEL_NAME 0
+#define ED_TEXTINPUT_ID_LEVEL_AUTHOR 1
+
+#define ED_NUM_TEXTINPUT 2
+
+#define ED_TEXTINPUT_ID_LEVEL_FIRST ED_TEXTINPUT_ID_LEVEL_NAME
+#define ED_TEXTINPUT_ID_LEVEL_LAST ED_TEXTINPUT_ID_LEVEL_AUTHOR
+
+/* values for checkbutton gadgets */
+#define ED_CHECKBUTTON_ID_DOUBLE_SPEED 0
+#define ED_CHECKBUTTON_ID_GRAVITY 1
+#define ED_CHECKBUTTON_ID_RANDOM_RESTRICTED 2
+#define ED_CHECKBUTTON_ID_STICK_ELEMENT 3
+#define ED_CHECKBUTTON_ID_EM_SLIPPERY_GEMS 4
+
+#define ED_NUM_CHECKBUTTONS 5
+
+#define ED_CHECKBUTTON_ID_LEVEL_FIRST ED_CHECKBUTTON_ID_DOUBLE_SPEED
+#define ED_CHECKBUTTON_ID_LEVEL_LAST ED_CHECKBUTTON_ID_RANDOM_RESTRICTED
+
+/* values for radiobutton gadgets */
+#define ED_RADIOBUTTON_ID_PERCENTAGE 0
+#define ED_RADIOBUTTON_ID_QUANTITY 1
+
+#define ED_NUM_RADIOBUTTONS 2
+
+#define ED_RADIOBUTTON_ID_LEVEL_FIRST ED_RADIOBUTTON_ID_PERCENTAGE
+#define ED_RADIOBUTTON_ID_LEVEL_LAST ED_RADIOBUTTON_ID_QUANTITY
+
+/* values for CopyLevelToUndoBuffer() */
+#define UNDO_IMMEDIATE 0
+#define UNDO_ACCUMULATE 1
+
+/* values for ClearEditorGadgetInfoText() and HandleGadgetInfoText() */
+#define INFOTEXT_XPOS SX
+#define INFOTEXT_YPOS (SY + SYSIZE - MINI_TILEX + 2)
+#define INFOTEXT_XSIZE SXSIZE
+#define INFOTEXT_YSIZE MINI_TILEX
+#define MAX_INFOTEXT_LEN (SXSIZE / FONT2_XSIZE)