X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fwincontrol.h;h=5c9c4b57d7b4ff52ec6448a8723a04f0a124a3be;hb=db346802082f53faf4d49f234c0ba2cf86221d1e;hp=18ac01cc88606da188f94378eb040fefe816298f;hpb=e6dcab0e1261bc96d7754b24b798cc3a5f262335;p=plomrogue diff --git a/src/wincontrol.h b/src/wincontrol.h index 18ac01c..5c9c4b5 100644 --- a/src/wincontrol.h +++ b/src/wincontrol.h @@ -12,6 +12,48 @@ #include /* for uint8_t */ struct Win; struct WinMeta; +struct World; + + + +/* Puts an identifier on each window, interfaces to its config file data. */ +struct WinConf +{ + char id; + struct Win * win; + char * title; + int16_t height; + int16_t width; + void (* draw) (struct Win *); +}; + + + +/* Create/initialize (from config files)/free Winconf / Win structs. */ +extern void create_winconfs(struct World * world); +extern void init_winconfs(struct World * world); +extern void free_winconfs(struct World * world); +extern void init_wins(struct World * world); +extern void free_wins(struct World * world); + + + +/* Reload windows in order and sizes defined in win config. */ +extern void reload_win_config(struct World * world); + + + +/* Get WinConf identified by winconf->id == "id", or that winconf's ->win. */ +extern struct WinConf * get_winconf_by_id(struct World * world, char id); +extern struct Win * get_win_by_id(struct World * world, char id); + + + +/* Toggle windows in world->wins in the order desribed by the first line of + * config/windows/toggled_win_order, wherein each character may correspond to + * one hardcoded window. + */ +extern void sorted_wintoggle(struct World * world);