home · contact · privacy
Optimized WinConf / WinConfDB structure, removed redundant .draw.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 23 Jan 2014 05:27:32 +0000 (06:27 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 23 Jan 2014 05:27:32 +0000 (06:27 +0100)
src/client/wincontrol.c
src/client/wincontrol.h

index 275fc9c96b0aefffc9056de1a3a6601b55515a26..fcf3e86a59411a003c3ae320e3e01478a8e27aa4 100644 (file)
@@ -124,7 +124,7 @@ extern void init_win_from_winconf(char id)
 {
     char * err = "get_drawfunc_by_char() returns NULL to init_win_from_file().";
     struct WinConf * winconf = get_winconf_by_id(id);
-    void * f = get_drawfunc_by_char(winconf->draw);
+    void * f = get_drawfunc_by_char(winconf->id);
     exit_err(NULL == f, err);
     init_win(&winconf->win, winconf->title, winconf->height, winconf->width, f);
 }
@@ -179,7 +179,6 @@ extern uint8_t read_winconf_from_file(char * line, uint32_t linemax, FILE * file
     }
     struct WinConf winconf;
     winconf.id = (char) test;
-    winconf.draw = winconf.id;
     try_fgetc(file, f_name);
     try_fgets(line, linemax + 1, file, f_name);
     winconf.title = try_malloc(strlen(line), f_name);
@@ -233,7 +232,7 @@ extern void write_winconf_of_id_to_file(FILE * file, char c, char * delim)
         size = 7;
     }
     char line[size];
-    sprintf(line, "%c\n", wc->draw);
+    sprintf(line, "%c\n", wc->id);
     try_fwrite(line, sizeof(char), strlen(line), file, f_name);
     sprintf(line, "%s\n", wc->title);
     try_fwrite(line, sizeof(char), strlen(line), file, f_name);
@@ -387,7 +386,7 @@ extern void toggle_winconfig()
     else
     {
         wcp->view     = 0;
-        win->draw     = get_drawfunc_by_char(wcp->draw);
+        win->draw     = get_drawfunc_by_char(wcp->id);
         win->center   = wcp->center;
     }
 }
index 67c72bc2a494ef90502ea8ca964deb53f1d176ff..8290379cd1d6c5309e3e804f2fdc65be09296066 100644 (file)
@@ -18,29 +18,24 @@ struct WinConfDB
 {
     struct WinConf * winconfs;
     char * ids;
-    char active; /* id of window selected as active */
     char * order; /* order of visible windows (identified by IDs) */
+    char active; /* id of window selected as active */
 };
 
-/* Stores a window's configuration (like geometry, keybindings) and a pointer to
- * the respective Win struct itself.
- */
+/* Window's configuration (like geometry, keybindings) and the Win itself. */
 struct WinConf
 {
-    char id; /* Unique identifier of WinConf, doubles aas identifier for .win */
-             /* and the char following "Win_" in the respective conffile name.*/
     struct Win * win;    /* Window / Win struct configured by this WinConf. */
     struct KeyBindingDB kb; /* Window-specific keybindings. */
-    uint8_t view; /* 0: use .draw as Win.draw; 1/2: use draw_winconf()_(1/2). */
+    struct yx_uint16 center; /* Designated Win.center */
     int16_t height;      /* Designated height to pass to init_win(). */
     int16_t width;       /* Designated width to pass to init_win(). */
     uint8_t height_type; /* 0: read .height/.width as size in positive cells; */
     uint8_t width_type;  /* 1: as negative diff in cells to the screen size.  */
+    uint8_t view; /* 0: use .draw as Win.draw; 1/2: use draw_winconf()_(1/2). */
+    char id; /* Identifier of WinConf, also identifies Win.draw function. */
     char * title; /* Designated title to pass to init_win(). */
-    char draw;    /* Identifier of designated Win.draw; passed to init_win() */
-                  /* and reset after toggling Win.draw via toggle_winconf(). */
-    struct yx_uint16 center; /* Designated Win.center; to be reset after  */
-};                           /* toggling Win.center via toggle_winconf(). */
+};