home · contact · privacy
Some further refactorisation and comments improvements in wincontrol library.
authorChristian Heller <c.heller@plomlompom.de>
Mon, 25 Nov 2013 02:26:54 +0000 (03:26 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Mon, 25 Nov 2013 02:26:54 +0000 (03:26 +0100)
src/control.c
src/wincontrol.c
src/wincontrol.h

index ba1b5055ecba2d6540ac3be1cae19a680cc08046..3116937c1a9eb4d87342f5416b538510851fca21 100644 (file)
@@ -13,7 +13,7 @@
 #include "main.h" /* for world global */
 #include "wincontrol.h" /* for struct WinConf, scroll_pad(), toggle_window(),
                          * growshrink_active_window(),toggle_winconfig(),
-                         * toggle_win_height_type(), toggle_win_width_type()
+                         * toggle_size_type()
                          */
 #include "map_object_actions.h" /* for struct MapObjAct, actor_wait(),
                                  * actor_move(), actor_drop(), actor_pick(),
@@ -205,8 +205,8 @@ extern uint8_t player_control_by_id(int action)
 
 extern uint8_t wingeom_control(int key)
 {
-    if (   try_cmd_0args(key, "to_height_t", toggle_win_height_type)
-        || try_cmd_0args(key, "to_width_t", toggle_win_width_type)
+    if (   try_cmd_1args(key, "to_height_t", toggle_win_size_type, 'y')
+        || try_cmd_1args(key, "to_width_t", toggle_win_size_type, 'x')
         || try_cmd_1args(key, "grow_h", growshrink_active_window, '*')
         || try_cmd_1args(key, "shri_h", growshrink_active_window, '_')
         || try_cmd_1args(key, "grow_v", growshrink_active_window, '+')
index 32a3ab195d943cc30f092c62a32a7a4c53d76e9a..aa705ecacd89f06083eb82fca779f2777d951789 100644 (file)
@@ -463,7 +463,7 @@ extern void toggle_window(char id)
 {
     struct Win * win = get_win_by_id(id);
     if (0 == win->prev && world.wmeta->chain_start != win)  /* Win struct is  */
-    {                                                       /* outside chain. */
+    {                                                       /* outside chain? */
         append_win(win);
     }
     else
@@ -480,57 +480,40 @@ extern void toggle_winconfig()
    struct WinConf * wcp = get_winconf_by_win(win);
     if      (0 == wcp->view)
     {
-        win->draw = draw_winconf_geometry;
-        wcp->view = 1;
-        wcp->center = win->center;
+        wcp->view     = 1;
+        win->draw     = draw_winconf_geometry;
+        wcp->center   = win->center;
         win->center.y = 0;
         win->center.x = 0;
     }
     else if (1 == wcp->view)
     {
-        win->draw = draw_winconf_keybindings;
-        wcp->view = 2;
+        wcp->view     = 2;
+        win->draw     = draw_winconf_keybindings;
         win->center.x = 0;
     }
     else
     {
-        win->draw = get_drawfunc_by_char(wcp->draw);
-        win->center = wcp->center;
-        wcp->view = 0;
+        wcp->view     = 0;
+        win->draw     = get_drawfunc_by_char(wcp->draw);
+        win->center   = wcp->center;
     }
 }
 
 
 
-extern void toggle_win_height_type()
+extern void toggle_win_size_type(char axis)
 {
     struct Win * win = world.wmeta->active;
     struct WinConf * wcp = get_winconf_by_win(win);
-    if (0 == wcp->height_type)
+    if ('y' == axis)
     {
-        wcp->height_type = 1;
-    }
-    else
-    {
-        wcp->height_type = 0;
-    }
-    set_winconf_geometry(wcp->id);
-}
-
-
-
-extern void toggle_win_width_type()
-{
-    struct Win * win = world.wmeta->active;
-    struct WinConf * wcp = get_winconf_by_win(win);
-    if (0 == wcp->width_type && win->framesize.x <= world.wmeta->padsize.x)
-    {
-        wcp->width_type = 1;
-    }
-    else
-    {
-        wcp->width_type = 0;
+        wcp->height_type = (0 == wcp->height_type);
+        set_winconf_geometry(wcp->id);
+        return;
     }
+    wcp->width_type = (   0 == wcp->width_type
+                       && win->framesize.x <= world.wmeta->padsize.x);
     set_winconf_geometry(wcp->id);
 }
 
index fc08b1864fb5db536e545c7e58873574ba6c3389..7250aa65253a102500ea99d69dc467d0efcae89d 100644 (file)
@@ -60,15 +60,15 @@ extern void save_win_configs();
 
 /* Toggle "window configuration" view for active window. Sets sensible
  * Win.center values for the various configuration views (for winconf_geometry:
- * y=0, x=0; for winconf_keys: x=0, y=Winconf.kb.select).
+ * y=0, x=0; for winconf_keys: x=0 (y is set by draw_winconf_keybindings()).
  */
 extern void toggle_winconfig();
 
-/* Toggle WinConf.(height/width)_type. To avoid a positive diff to screen width,
+/* Toggle WinConf.(height/width)_type ("axis" = "y": height; else: width). Avoid
+ * positive diff to screen width (value would be wrongly read as a non-diff),
  * width_type toggles to 1 only if world.wmeta->screen's width >= WinConf.width.
  */
-extern void toggle_win_height_type();
-extern void toggle_win_width_type();
+extern void toggle_win_size_type(char axis);
 
 /* Toggle display of a window identified by "id". */
 extern void toggle_window(char id);