mirror of
https://github.com/hyprwm/hyprland-plugins.git
synced 2025-10-29 11:48:42 +00:00
hyprbars: add enabled config option
This commit is contained in:
parent
c491d28314
commit
b8c75de20a
@ -22,6 +22,8 @@ plugin {
|
||||
}
|
||||
```
|
||||
|
||||
`enabled` -> (bool) whether to enable the bars
|
||||
|
||||
`bar_color` -> (col) bar's background color
|
||||
|
||||
`bar_height` -> (int) bar's height (default `15`)
|
||||
|
||||
@ -20,7 +20,7 @@ CHyprBar::CHyprBar(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow) {
|
||||
static auto* const PCOLOR = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprbars:bar_color")->getDataStaticPtr();
|
||||
|
||||
const auto PMONITOR = pWindow->m_monitor.lock();
|
||||
PMONITOR->m_scheduledRecalc = true;
|
||||
PMONITOR->m_scheduledRecalc = true;
|
||||
|
||||
//button events
|
||||
m_pMouseButtonCallback = HyprlandAPI::registerCallbackDynamic(
|
||||
@ -54,6 +54,7 @@ CHyprBar::~CHyprBar() {
|
||||
|
||||
SDecorationPositioningInfo CHyprBar::getPositioningInfo() {
|
||||
static auto* const PHEIGHT = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprbars:bar_height")->getDataStaticPtr();
|
||||
static auto* const PENABLED = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprbars:enabled")->getDataStaticPtr();
|
||||
static auto* const PPRECEDENCE = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprbars:bar_precedence_over_border")->getDataStaticPtr();
|
||||
|
||||
SDecorationPositioningInfo info;
|
||||
@ -61,7 +62,7 @@ SDecorationPositioningInfo CHyprBar::getPositioningInfo() {
|
||||
info.edges = DECORATION_EDGE_TOP;
|
||||
info.priority = **PPRECEDENCE ? 10005 : 5000;
|
||||
info.reserved = true;
|
||||
info.desiredExtents = {{0, m_hidden ? 0 : **PHEIGHT}, {0, 0}};
|
||||
info.desiredExtents = {{0, m_hidden || !**PENABLED ? 0 : **PHEIGHT}, {0, 0}};
|
||||
return info;
|
||||
}
|
||||
|
||||
@ -495,7 +496,14 @@ void CHyprBar::renderBarButtonsText(CBox* barBox, const float scale, const float
|
||||
}
|
||||
|
||||
void CHyprBar::draw(PHLMONITOR pMonitor, const float& a) {
|
||||
if (m_hidden || !validMapped(m_pWindow))
|
||||
static auto* const PENABLED = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprbars:enabled")->getDataStaticPtr();
|
||||
|
||||
if (m_bLastEnabledState != **PENABLED) {
|
||||
m_bLastEnabledState = **PENABLED;
|
||||
g_pDecorationPositioner->repositionDeco(this);
|
||||
}
|
||||
|
||||
if (m_hidden || !validMapped(m_pWindow) || !**PENABLED)
|
||||
return;
|
||||
|
||||
const auto PWINDOW = m_pWindow.lock();
|
||||
@ -678,7 +686,7 @@ void CHyprBar::updateRules() {
|
||||
|
||||
m_bForcedBarColor = std::nullopt;
|
||||
m_bForcedTitleColor = std::nullopt;
|
||||
m_hidden = false;
|
||||
m_hidden = false;
|
||||
|
||||
for (auto& r : rules) {
|
||||
applyRule(r);
|
||||
|
||||
@ -57,9 +57,10 @@ class CHyprBar : public IHyprWindowDecoration {
|
||||
SP<CTexture> m_pButtonsTex;
|
||||
|
||||
bool m_bWindowSizeChanged = false;
|
||||
bool m_hidden = false;
|
||||
bool m_hidden = false;
|
||||
bool m_bTitleColorChanged = false;
|
||||
bool m_bButtonHovered = false;
|
||||
bool m_bLastEnabledState = false;
|
||||
std::optional<CHyprColor> m_bForcedBarColor;
|
||||
std::optional<CHyprColor> m_bForcedTitleColor;
|
||||
|
||||
@ -83,23 +84,23 @@ class CHyprBar : public IHyprWindowDecoration {
|
||||
void handleDownEvent(SCallbackInfo& info, std::optional<ITouch::SDownEvent> touchEvent);
|
||||
void handleUpEvent(SCallbackInfo& info);
|
||||
void handleMovement();
|
||||
bool doButtonPress(Hyprlang::INT* const* PBARPADDING, Hyprlang::INT* const* PBARBUTTONPADDING, Hyprlang::INT* const* PHEIGHT, Vector2D COORDS, bool BUTTONSRIGHT);
|
||||
bool doButtonPress(Hyprlang::INT* const* PBARPADDING, Hyprlang::INT* const* PBARBUTTONPADDING, Hyprlang::INT* const* PHEIGHT, Vector2D COORDS, bool BUTTONSRIGHT);
|
||||
|
||||
CBox assignedBoxGlobal();
|
||||
CBox assignedBoxGlobal();
|
||||
|
||||
SP<HOOK_CALLBACK_FN> m_pMouseButtonCallback;
|
||||
SP<HOOK_CALLBACK_FN> m_pTouchDownCallback;
|
||||
SP<HOOK_CALLBACK_FN> m_pTouchUpCallback;
|
||||
SP<HOOK_CALLBACK_FN> m_pMouseButtonCallback;
|
||||
SP<HOOK_CALLBACK_FN> m_pTouchDownCallback;
|
||||
SP<HOOK_CALLBACK_FN> m_pTouchUpCallback;
|
||||
|
||||
SP<HOOK_CALLBACK_FN> m_pTouchMoveCallback;
|
||||
SP<HOOK_CALLBACK_FN> m_pMouseMoveCallback;
|
||||
SP<HOOK_CALLBACK_FN> m_pTouchMoveCallback;
|
||||
SP<HOOK_CALLBACK_FN> m_pMouseMoveCallback;
|
||||
|
||||
std::string m_szLastTitle;
|
||||
std::string m_szLastTitle;
|
||||
|
||||
bool m_bDraggingThis = false;
|
||||
bool m_bTouchEv = false;
|
||||
bool m_bDragPending = false;
|
||||
bool m_bCancelledDown = false;
|
||||
bool m_bDraggingThis = false;
|
||||
bool m_bTouchEv = false;
|
||||
bool m_bDragPending = false;
|
||||
bool m_bCancelledDown = false;
|
||||
|
||||
// store hover state for buttons as a bitfield
|
||||
unsigned int m_iButtonHoverState = 0;
|
||||
|
||||
@ -140,6 +140,7 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
|
||||
HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprbars:bar_buttons_alignment", Hyprlang::STRING{"right"});
|
||||
HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprbars:bar_padding", Hyprlang::INT{7});
|
||||
HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprbars:bar_button_padding", Hyprlang::INT{5});
|
||||
HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprbars:enabled", Hyprlang::INT{1});
|
||||
HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprbars:icon_on_hover", Hyprlang::INT{0});
|
||||
|
||||
HyprlandAPI::addConfigKeyword(PHANDLE, "hyprbars-button", onNewButton, Hyprlang::SHandlerOptions{});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user