+struct Win
+{
+ struct KeyBindingDB kb; /* window-specific keybindings */
+ char * title; /* title to be used in window title bar */
+ struct yx_uint16 target_center; /* saves .center when toggling .view */
+ struct yx_uint16 frame_size; /* size of window/frame to see winmap through*/
+ struct yx_uint16 start; /* upper left corner of window in v_screen */
+ struct yx_uint16 center; /* winnap cell to center frame on if < winmap */
+ struct yx_uint16 winmap_size; /* delimits .winmap, sorts it into lines */
+ chtype * winmap; /* window content in sequence of chtype's to write */
+ int16_t target_height; /* window size / .frame_size description in config */
+ int16_t target_width; /* file format, i.e. values <= 0 may be used */
+ char id; /* Win identifier; also maps to default window drawing function. */
+ uint8_t target_height_type; /* 0: read .height/.width as positive size; */
+ uint8_t target_width_type; /* 1: as negative diff to v_screen size */
+ uint8_t view; /* winde view mode: 0: use default draw function set by .id */
+}; /* 1/2: use one of the two config view draw function */
+
+
+
+/* Return yx offset to focus map of "mapsize" on "position" in "frame_size". */
+extern uint16_t center_offset(uint16_t position,
+ uint32_t mapsize, uint32_t frame_size);
+
+/* Get Win of "id". */
+extern struct Win * get_win_by_id(char id);
+
+/* Read/write individual Win (identified by "c") and world.winDB.order /
+ * world.winDB.active from/to "file" up to the world.delim delimiter. Use "line"
+ * and "linemax" as expected by try_fgets().
+ *
+ * Note that read_winconf_from_file() returns 1 on success and 0 if it detects
+ * having found the end of the valid interface configuration file by either
+ * hitting a EOF or a newline (so empty newlines at the end of the file are ok).