X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fwincontrol.c;h=acb6c566cf02ea055544535d6117a6dc6ad5a9a8;hb=3b2c82991c9ab169b33248c7be840a9bcd351e6d;hp=4d166e8fc1cb8f81ac868f6060eaf71079a2c571;hpb=e6dcab0e1261bc96d7754b24b798cc3a5f262335;p=plomrogue diff --git a/src/wincontrol.c b/src/wincontrol.c index 4d166e8..acb6c56 100644 --- a/src/wincontrol.c +++ b/src/wincontrol.c @@ -1,11 +1,61 @@ /* wincontrol.c */ #include "wincontrol.h" -#include /* for uint8_t */ +#include /* for strlen() */ +#include /* for uint8_t, uint16_t */ #include "windows.h" /* for suspend_win(), append_win(), reset_pad_offset(), * resize_active_win(), struct Win, struct WinMeta */ #include "yx_uint16.h" /* for yx_uint16 struct */ +#include "main.h" /* for Wins struct */ +#include "misc.h" /* for textfile_sizes() */ +#include "rexit.h" /* for exit_err() */ +#include "main.h" /* for World, Wins structs */ + + + + +extern void sorted_wintoggle(struct World * world) +{ + char * err = "Trouble in sorted_wintoggle() with fopen() on file " + "'config/toggle_win_order'."; + FILE * file = fopen("config/toggle_win_order", "r"); + exit_err(NULL == file, world, err); + uint16_t linemax; + textfile_sizes(file, &linemax, NULL); + char win_order[linemax]; + err = "Trouble in sorted_wintoggle() with fgets() on file " + "'config/toggle_win_order'."; + exit_err(NULL == fgets(win_order, linemax, file), world, err); + err = "Trouble in sorted_wintoggle() with fclose() on file " + "'toggle_win_order'."; + exit_err(fclose(file), world, err); + + char c; + uint8_t i = 0; + for (; i < linemax; i++) + { + c = win_order[i]; + if ('k' == c) + { + toggle_window(world->wins.meta, world->wins.keys); + } + else if ('m' == c) + { + toggle_window(world->wins.meta, world->wins.map); + } + else if ('i' == c) + { + toggle_window(world->wins.meta, world->wins.info); + } + else if ('l' == c) + { + toggle_window(world->wins.meta, world->wins.log); + } + } +} + + extern uint8_t toggle_window(struct WinMeta * win_meta, struct Win * win)