+static void DrawElementContentAreas()
+{
+ static int num_areas = 8;
+ int i, x, y;
+
+ for (i=0; i<8; i++)
+ UnmapDrawingArea(ED_CTRL_ID_ELEMCONT_0 + i);
+
+ /* display counter to choose number of element content areas */
+ gadget_areas_value = &num_areas;
+ DrawCounterValueField(ED_COUNTER_ELEMCONT, *gadget_areas_value);
+ x = counter_info[ED_COUNTER_ELEMCONT].x + DXSIZE;
+ y = counter_info[ED_COUNTER_ELEMCONT].y;
+ DrawTextF(x + ED_COUNT_VALUE_XOFFSET, y + ED_COUNT_VALUE_YOFFSET,
+ FC_YELLOW, "number of content areas");
+ MapCounterButtons(ED_COUNTER_ELEMCONT);
+
+ XFillRectangle(display, backbuffer, gc,
+ SX, SY + ED_AREA_ELEMCONT_YPOS - MINI_TILEX,
+ SXSIZE, 12 * MINI_TILEY);
+
+ /* draw some decorative border for the objects */
+ for (i=0; i<num_areas; i++)
+ {
+ for (y=0; y<4; y++)
+ for (x=0; x<4; x++)
+ DrawMiniElement(ED_AREA_ELEMCONT_XPOS / MINI_TILEX + 5 * (i % 4) + x,
+ ED_AREA_ELEMCONT_YPOS / MINI_TILEY + 6 * (i / 4) + y,
+ EL_ERDREICH);
+
+ XFillRectangle(display, drawto, gc,
+ SX + ED_AREA_ELEMCONT_XPOS
+ + 5 * (i % 4) * MINI_TILEX + MINI_TILEX/2 - 1,
+ SY + ED_AREA_ELEMCONT_YPOS
+ + 6 * (i / 4) * MINI_TILEY + MINI_TILEY/2 - 1,
+ 3 * MINI_TILEX + 2, 3 * MINI_TILEY + 2);
+ }
+
+ /* copy border to the right location */
+ XCopyArea(display, drawto, drawto, gc,
+ SX + ED_AREA_ELEMCONT_XPOS - MINI_TILEX/2,
+ SY + ED_AREA_ELEMCONT_YPOS - MINI_TILEY/2,
+ (5 * 4 + 1) * MINI_TILEX,
+ 12 * MINI_TILEY,
+ SX + ED_AREA_ELEMCONT_XPOS - MINI_TILEX,
+ SY + ED_AREA_ELEMCONT_YPOS - MINI_TILEY);
+
+ for (i=0; i<num_areas; i++)
+ {
+ for (y=0; y<3; y++)
+ for (x=0; x<3; x++)
+ DrawMiniElement(ED_AREA_ELEMCONT_XPOS / MINI_TILEX + 5 * (i % 4) + x,
+ ED_AREA_ELEMCONT_YPOS / MINI_TILEY + 6 * (i / 4) + y,
+ EL_EDELSTEIN_BD);
+
+ DrawTextF(ED_AREA_ELEMCONT_XPOS
+ + 5 * (i % 4) * MINI_TILEX + MINI_TILEX + 1,
+ ED_AREA_ELEMCONT_YPOS
+ + 6 * (i / 4) * MINI_TILEY + 4 * MINI_TILEY - 4,
+ FC_YELLOW, "%d", i + 1);
+ }
+
+ for (i=0; i<num_areas; i++)
+ MapDrawingArea(ED_CTRL_ID_ELEMCONT_0 + i);
+}
+