mirror of
https://github.com/hyprwm/hyprlock.git
synced 2026-05-08 22:08:02 +02:00
add eye config values
This commit is contained in:
parent
8dccec51e8
commit
bec90ccb53
3 changed files with 15 additions and 2 deletions
|
|
@ -289,6 +289,10 @@ void CConfigManager::init() {
|
|||
m_config.addSpecialConfigValue("input-field", "password:size", Hyprlang::FLOAT{0.25});
|
||||
m_config.addSpecialConfigValue("input-field", "password:center", Hyprlang::INT{1});
|
||||
m_config.addSpecialConfigValue("input-field", "password:toggle_password_visibility", Hyprlang::INT{0});
|
||||
m_config.addSpecialConfigValue("input-field", "password:hide_eye", Hyprlang::INT{0});
|
||||
m_config.addSpecialConfigValue("input-field", "password:eye_margin", Hyprlang::INT{8});
|
||||
m_config.addSpecialConfigValue("input-field", "password:eye_size", Hyprlang::FLOAT{0.25});
|
||||
m_config.addSpecialConfigValue("input-field", "password:eye_placement", Hyprlang::STRING{"right"});
|
||||
m_config.addSpecialConfigValue("input-field", "fade_on_empty", Hyprlang::INT{1});
|
||||
m_config.addSpecialConfigValue("input-field", "fade_timeout", Hyprlang::INT{2000});
|
||||
m_config.addSpecialConfigValue("input-field", "font_color", Hyprlang::INT{0xFF000000});
|
||||
|
|
@ -472,6 +476,10 @@ std::vector<CConfigManager::SWidgetConfig> CConfigManager::getWidgetConfigs() {
|
|||
{"password:size", m_config.getSpecialConfigValue("input-field", "password:size", k.c_str())},
|
||||
{"password:center", m_config.getSpecialConfigValue("input-field", "password:center", k.c_str())},
|
||||
{"password:toggle_password_visibility", m_config.getSpecialConfigValue("input-field", "password:toggle_password_visibility", k.c_str())},
|
||||
{"password:hide_eye", m_config.getSpecialConfigValue("input-field", "password:hide_eye", k.c_str())},
|
||||
{"password:eye_margin", m_config.getSpecialConfigValue("input-field", "password:eye_margin", k.c_str())},
|
||||
{"password:eye_size", m_config.getSpecialConfigValue("input-field", "password:eye_size", k.c_str())},
|
||||
{"password:eye_placement", m_config.getSpecialConfigValue("input-field", "password:eye_placement", k.c_str())},
|
||||
{"fade_on_empty", m_config.getSpecialConfigValue("input-field", "fade_on_empty", k.c_str())},
|
||||
{"fade_timeout", m_config.getSpecialConfigValue("input-field", "fade_timeout", k.c_str())},
|
||||
{"font_color", m_config.getSpecialConfigValue("input-field", "font_color", k.c_str())},
|
||||
|
|
|
|||
|
|
@ -46,6 +46,10 @@ void CPasswordInputField::configure(const std::unordered_map<std::string, std::a
|
|||
password.size = std::any_cast<Hyprlang::FLOAT>(props.at("password:size"));
|
||||
password.center = std::any_cast<Hyprlang::INT>(props.at("password:center"));
|
||||
password.allowToggle = std::any_cast<Hyprlang::INT>(props.at("password:toggle_password_visibility"));
|
||||
password.eye.hide = std::any_cast<Hyprlang::INT>(props.at("password:hide_eye"));
|
||||
password.eye.margin = std::any_cast<Hyprlang::INT>(props.at("password:eye_margin"));
|
||||
password.eye.size = std::any_cast<Hyprlang::FLOAT>(props.at("password:eye_size"));
|
||||
password.eye.placement = std::any_cast<Hyprlang::STRING>(props.at("password:eye_placement"));
|
||||
fadeOnEmpty = std::any_cast<Hyprlang::INT>(props.at("fade_on_empty"));
|
||||
fadeTimeoutMs = std::any_cast<Hyprlang::INT>(props.at("fade_timeout"));
|
||||
hiddenInputState.enabled = std::any_cast<Hyprlang::INT>(props.at("hide_input"));
|
||||
|
|
@ -353,7 +357,7 @@ bool CPasswordInputField::draw(const SRenderData& data) {
|
|||
auto eyeAsset = showPassword ? password.eye.closedAsset : password.eye.openAsset;
|
||||
double eyeHeight = (int)(std::nearbyint(configSize.y * password.eye.size * 0.5f) * 2.f);
|
||||
auto eyeSize = Vector2D{eyeHeight, eyeHeight};
|
||||
if (password.allowToggle) {
|
||||
if (password.allowToggle && !password.eye.hide) {
|
||||
eyeOffset = eyeSize.x + password.eye.margin;
|
||||
}
|
||||
|
||||
|
|
@ -447,7 +451,7 @@ bool CPasswordInputField::draw(const SRenderData& data) {
|
|||
}
|
||||
}
|
||||
|
||||
if (passwordLength != 0 && password.allowToggle) {
|
||||
if (passwordLength != 0 && password.allowToggle && !password.eye.hide) {
|
||||
auto padding = (inputFieldBox.h - eyeSize.y) / 2.0;
|
||||
auto eyePosition = inputFieldBox.pos() + (password.eye.placement == "right" ? Vector2D{inputFieldBox.w - eyeSize.x - padding, padding} : Vector2D{padding, padding});
|
||||
CBox box = {eyePosition, eyeSize};
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ class CPasswordInputField : public IWidget {
|
|||
int margin = 8;
|
||||
double size = 0.25;
|
||||
std::string placement = "right";
|
||||
bool hide = false;
|
||||
|
||||
std::string openRescourceID = "";
|
||||
SPreloadedAsset* openAsset = nullptr;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue