hyprctl: Add 'layouts' command (#3895)

* Add hyprctl 'layouts' command

formatting

* Add getAllLayoutNames(), move m_vLayouts back to private

Formatting

* clang-format
This commit is contained in:
zakk4223 2023-11-21 13:43:38 -05:00 committed by GitHub
parent 572fd554b8
commit 4729265284
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 43 additions and 10 deletions

View file

@ -51,3 +51,10 @@ bool CLayoutManager::removeLayout(IHyprLayout* layout) {
return true;
}
std::vector<std::string> CLayoutManager::getAllLayoutNames() {
std::vector<std::string> results(m_vLayouts.size());
for (size_t i = 0; i < m_vLayouts.size(); ++i)
results[i] = m_vLayouts[i].first;
return results;
}

View file

@ -7,16 +7,16 @@ class CLayoutManager {
public:
CLayoutManager();
IHyprLayout* getCurrentLayout();
IHyprLayout* getCurrentLayout();
void switchToLayout(std::string);
void switchToLayout(std::string);
bool addLayout(const std::string& name, IHyprLayout* layout);
bool removeLayout(IHyprLayout* layout);
bool addLayout(const std::string& name, IHyprLayout* layout);
bool removeLayout(IHyprLayout* layout);
std::vector<std::string> getAllLayoutNames();
private:
enum HYPRLAYOUTS
{
enum HYPRLAYOUTS {
LAYOUT_DWINDLE = 0,
LAYOUT_MASTER
};
@ -25,8 +25,7 @@ class CLayoutManager {
CHyprDwindleLayout m_cDwindleLayout;
CHyprMasterLayout m_cMasterLayout;
std::vector<std::pair<std::string, IHyprLayout*>> m_vLayouts;
};
inline std::unique_ptr<CLayoutManager> g_pLayoutManager;
inline std::unique_ptr<CLayoutManager> g_pLayoutManager;