From: Christian Heller Date: Mon, 25 Nov 2013 02:26:54 +0000 (+0100) Subject: Some further refactorisation and comments improvements in wincontrol library. X-Git-Tag: tce~911 X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/decks/%7B%7B%20deck_id%20%7D%7D/foo.html?a=commitdiff_plain;h=3edf207d99f9e6e7e4b6beb9939bb9618e4be597;p=plomrogue Some further refactorisation and comments improvements in wincontrol library. --- diff --git a/src/control.c b/src/control.c index ba1b505..3116937 100644 --- a/src/control.c +++ b/src/control.c @@ -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, '+') diff --git a/src/wincontrol.c b/src/wincontrol.c index 32a3ab1..aa705ec 100644 --- a/src/wincontrol.c +++ b/src/wincontrol.c @@ -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); } diff --git a/src/wincontrol.h b/src/wincontrol.h index fc08b18..7250aa6 100644 --- a/src/wincontrol.h +++ b/src/wincontrol.h @@ -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);