mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-03-21 17:34:57 -05:00
Add X and Y position tempvars to cursor condition
This commit is contained in:
parent
34baa56134
commit
1c94a1ab44
|
|
@ -2118,6 +2118,9 @@ AdvSceneSwitcher.tempVar.http.error.description="Empty when no error occurred.\n
|
|||
|
||||
AdvSceneSwitcher.tempVar.mqtt.message="Message"
|
||||
|
||||
AdvSceneSwitcher.tempVar.cursor.x="Cursor position (X)"
|
||||
AdvSceneSwitcher.tempVar.cursor.y="Cursor position (Y)"
|
||||
|
||||
AdvSceneSwitcher.selectScene="--select scene--"
|
||||
AdvSceneSwitcher.selectPreviousScene="Previous Scene"
|
||||
AdvSceneSwitcher.selectCurrentScene="Current Scene"
|
||||
|
|
|
|||
|
|
@ -52,24 +52,26 @@ bool MacroConditionCursor::CheckClick()
|
|||
bool MacroConditionCursor::CheckCondition()
|
||||
{
|
||||
bool ret = false;
|
||||
std::pair<int, int> cursorPos = GetCursorPos();
|
||||
const auto &[x, y] = GetCursorPos();
|
||||
SetTempVarValue("x", std::to_string(x));
|
||||
SetTempVarValue("y", std::to_string(y));
|
||||
|
||||
switch (_condition) {
|
||||
case Condition::REGION:
|
||||
ret = cursorPos.first >= _minX && cursorPos.second >= _minY &&
|
||||
cursorPos.first <= _maxX && cursorPos.second <= _maxY;
|
||||
SetVariableValue(std::to_string(cursorPos.first) + " " +
|
||||
std::to_string(cursorPos.second));
|
||||
ret = x >= _minX && y >= _minY && x <= _maxX && y <= _maxY;
|
||||
SetVariableValue(std::to_string(x) + " " + std::to_string(y));
|
||||
break;
|
||||
case Condition::MOVING:
|
||||
ret = cursorPos.first != _lastCursorPosition.first ||
|
||||
cursorPos.second != _lastCursorPosition.second;
|
||||
ret = x != _lastX || y != _lastY;
|
||||
break;
|
||||
case Condition::CLICK:
|
||||
ret = CheckClick();
|
||||
break;
|
||||
}
|
||||
|
||||
_lastCheckTime = std::chrono::high_resolution_clock::now();
|
||||
_lastCursorPosition = cursorPos;
|
||||
_lastX = x;
|
||||
_lastY = y;
|
||||
|
||||
if (GetVariableValue().empty()) {
|
||||
SetVariableValue(ret ? "true" : "false");
|
||||
|
|
@ -109,6 +111,12 @@ bool MacroConditionCursor::Load(obs_data_t *obj)
|
|||
return true;
|
||||
}
|
||||
|
||||
void MacroConditionCursor::SetupTempVars()
|
||||
{
|
||||
AddTempvar("x", obs_module_text("AdvSceneSwitcher.tempVar.cursor.x"));
|
||||
AddTempvar("y", obs_module_text("AdvSceneSwitcher.tempVar.cursor.y"));
|
||||
}
|
||||
|
||||
static inline void populateConditionSelection(QComboBox *list)
|
||||
{
|
||||
for (const auto &[condition, name] : cursorConditionTypes) {
|
||||
|
|
|
|||
|
|
@ -38,9 +38,12 @@ public:
|
|||
NumberVariable<int> _minX = 0, _minY = 0, _maxX = 0, _maxY = 0;
|
||||
|
||||
private:
|
||||
void SetupTempVars();
|
||||
|
||||
bool CheckClick();
|
||||
std::chrono::high_resolution_clock::time_point _lastCheckTime{};
|
||||
std::pair<int, int> _lastCursorPosition;
|
||||
int _lastX = 0;
|
||||
int _lastY = 0;
|
||||
|
||||
static bool _registered;
|
||||
static const std::string id;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user