Extract XCUI selection model and layout lab click selection
This commit is contained in:
49
engine/src/UI/Widgets/UISelectionModel.cpp
Normal file
49
engine/src/UI/Widgets/UISelectionModel.cpp
Normal file
@@ -0,0 +1,49 @@
|
||||
#include <XCEngine/UI/Widgets/UISelectionModel.h>
|
||||
|
||||
namespace XCEngine {
|
||||
namespace UI {
|
||||
namespace Widgets {
|
||||
|
||||
bool UISelectionModel::HasSelection() const {
|
||||
return !m_selectedId.empty();
|
||||
}
|
||||
|
||||
const std::string& UISelectionModel::GetSelectedId() const {
|
||||
return m_selectedId;
|
||||
}
|
||||
|
||||
bool UISelectionModel::IsSelected(std::string_view id) const {
|
||||
return !m_selectedId.empty() && m_selectedId == id;
|
||||
}
|
||||
|
||||
bool UISelectionModel::SetSelection(std::string selectionId) {
|
||||
if (m_selectedId == selectionId) {
|
||||
return false;
|
||||
}
|
||||
|
||||
m_selectedId = std::move(selectionId);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool UISelectionModel::ClearSelection() {
|
||||
if (m_selectedId.empty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
m_selectedId.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool UISelectionModel::ToggleSelection(std::string selectionId) {
|
||||
if (m_selectedId == selectionId) {
|
||||
m_selectedId.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
m_selectedId = std::move(selectionId);
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace Widgets
|
||||
} // namespace UI
|
||||
} // namespace XCEngine
|
||||
Reference in New Issue
Block a user