From da3b5b2131d2b4ff5cb127e92090fca568376835 Mon Sep 17 00:00:00 2001 From: BossCode45 Date: Wed, 24 May 2023 10:28:49 +1200 Subject: in-progress: Config refactor started, changed all existing keybind command args and added in the new files, still many errors --- config.h | 85 +++++++++++++++++++++------------------------------------------- 1 file changed, 28 insertions(+), 57 deletions(-) (limited to 'config.h') diff --git a/config.h b/config.h index 31005e7..3956492 100644 --- a/config.h +++ b/config.h @@ -1,63 +1,30 @@ #pragma once -#include "error.h" - -#include - +#include "commands.h" #include #include #include -enum MoveDir +struct Workspace { - Up, - Right, - Down, - Left + std::string name; + int* screenPreferences; + int screenPreferencesc; }; -typedef union -{ - char* str; - int num; - MoveDir dir; -} KeyArg; - -struct KeyBind -{ - unsigned int modifiers; - KeySym keysym; - void(* func) (const KeyArg arg); - KeyArg args; -}; - -//Keybind commands -#define KEYCOM(X) \ - void X (const KeyArg arg) -KEYCOM(exit); -KEYCOM(spawn); -KEYCOM(toggle); -KEYCOM(kill); -KEYCOM(changeWS); -KEYCOM(wToWS); -KEYCOM(focChange); -KEYCOM(wMove); -KEYCOM(bashSpawn); -KEYCOM(reload); -KEYCOM(wsDump); -KEYCOM(nextMonitor); +#define COMMAND(X) \ + const void X (const CommandArg* argv) class Config -{ +{ public: - Config(); + Config(CommandsModule& commandsModule); ~Config(); void free(); - Err loadFromFile(std::string path); - Err reload(); - + void loadFromFile(std::string path); + void reloadFile(); // Startup std::string* startupBash; int startupBashc; @@ -68,6 +35,7 @@ class Config std::string logFile; // Workspaces + std::vector workspaces; int numWS; std::string* workspaceNames; int workspaceNamesc; @@ -75,19 +43,22 @@ class Config int** screenPreferences; int screenPreferencesc; - // Keybinds - KeyBind* binds; - int bindsc; + // Config Commands + COMMAND(gapsCmd); + COMMAND(outerGapsCmd); + COMMAND(logFileCmd); + COMMAND(addWorkspaceCmd); + + // Keybind Commands + COMMAND(exit); + COMMAND(spawn); + COMMAND(spawn_once); + COMMAND(changeWS); + COMMAND(wToWS); + COMMAND(focChange); + COMMAND(reload); private: - template - T getValue(std::string path, Err* err); - - void loadWorkspaceArrays(toml::table tbl, toml::table defaults, Err* err); - void loadStartupBash(toml::table tbl, toml::table defaults, Err* err); - - toml::table tbl; - toml::table defaults; - + CommandsModule& commandsModule; bool loaded = false; - std::string path; + std::string file; }; -- cgit v1.2.3