Sdk/BaseWidget: Add HasFocus method
This commit is contained in:
parent
6c8b3eb319
commit
1601849a00
|
|
@ -56,6 +56,8 @@ namespace Ndk
|
||||||
inline const Nz::Vector2f& GetContentSize() const;
|
inline const Nz::Vector2f& GetContentSize() const;
|
||||||
inline Nz::Vector2f GetSize() const;
|
inline Nz::Vector2f GetSize() const;
|
||||||
|
|
||||||
|
bool HasFocus() const;
|
||||||
|
|
||||||
inline bool IsVisible() const;
|
inline bool IsVisible() const;
|
||||||
|
|
||||||
virtual void ResizeToContent() = 0;
|
virtual void ResizeToContent() = 0;
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,8 @@ namespace Ndk
|
||||||
protected:
|
protected:
|
||||||
inline void ClearKeyboardOwner(std::size_t canvasIndex);
|
inline void ClearKeyboardOwner(std::size_t canvasIndex);
|
||||||
|
|
||||||
|
inline bool IsKeyboardOwner(std::size_t canvasIndex) const;
|
||||||
|
|
||||||
inline void NotifyWidgetBoxUpdate(std::size_t index);
|
inline void NotifyWidgetBoxUpdate(std::size_t index);
|
||||||
inline void NotifyWidgetCursorUpdate(std::size_t index);
|
inline void NotifyWidgetCursorUpdate(std::size_t index);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,11 @@ namespace Ndk
|
||||||
SetKeyboardOwner(InvalidCanvasIndex);
|
SetKeyboardOwner(InvalidCanvasIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool Canvas::IsKeyboardOwner(std::size_t canvasIndex) const
|
||||||
|
{
|
||||||
|
return m_keyboardOwner == canvasIndex;
|
||||||
|
}
|
||||||
|
|
||||||
inline void Canvas::NotifyWidgetBoxUpdate(std::size_t index)
|
inline void Canvas::NotifyWidgetBoxUpdate(std::size_t index)
|
||||||
{
|
{
|
||||||
WidgetBox& entry = m_widgetBoxes[index];
|
WidgetBox& entry = m_widgetBoxes[index];
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ namespace Ndk
|
||||||
{
|
{
|
||||||
m_backgroundSprite = Nz::Sprite::New();
|
m_backgroundSprite = Nz::Sprite::New();
|
||||||
m_backgroundSprite->SetColor(m_backgroundColor);
|
m_backgroundSprite->SetColor(m_backgroundColor);
|
||||||
m_backgroundSprite->SetMaterial(Nz::Material::New((m_backgroundColor.IsOpaque()) ? "Basic2D" : "Translucent2D"));
|
m_backgroundSprite->SetMaterial(Nz::Material::New((m_backgroundColor.IsOpaque()) ? "Basic2D" : "Translucent2D")); //< TODO: Use a shared material instead of creating one everytime
|
||||||
|
|
||||||
m_backgroundEntity = CreateEntity();
|
m_backgroundEntity = CreateEntity();
|
||||||
m_backgroundEntity->AddComponent<GraphicsComponent>().Attach(m_backgroundSprite, -1);
|
m_backgroundEntity->AddComponent<GraphicsComponent>().Attach(m_backgroundSprite, -1);
|
||||||
|
|
@ -94,6 +94,18 @@ namespace Ndk
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Checks if this widget has keyboard focus
|
||||||
|
* \return true if widget has keyboard focus, false otherwhise
|
||||||
|
*/
|
||||||
|
bool BaseWidget::HasFocus() const
|
||||||
|
{
|
||||||
|
if (!IsRegisteredToCanvas())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return m_canvas->IsKeyboardOwner(m_canvasIndex);
|
||||||
|
}
|
||||||
|
|
||||||
void BaseWidget::SetBackgroundColor(const Nz::Color& color)
|
void BaseWidget::SetBackgroundColor(const Nz::Color& color)
|
||||||
{
|
{
|
||||||
m_backgroundColor = color;
|
m_backgroundColor = color;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue