_Control* pControl = pTop->GetFocusControl(this);
if ((&control) == pControl)
{
- pTop->SetFocusControl(null);
+ pTop->SetFocusControl(&control, false);
}
}
IsFocusable(), E_INVALID_OPERATION,
E_INVALID_OPERATION, "[E_INVALID_OPERATION] This Control isn't focusable control.");
+ _Window* pTop = GetRootWindow();
+ SysAssert(pTop);
if (on)
{
- _Window* pTop = GetRootWindow();
- SysAssert(pTop);
- pTop->SetFocusControl(this);
+ pTop->SetFocusControl(this, true);
}
else
{
- _Window* pTop = GetRootWindow();
- SysAssert(pTop);
- pTop->SetFocusControl(null);
+ pTop->SetFocusControl(this, false);
}
return E_SUCCESS;
}
void
-_Window::SetFocusControl(const _Control* pControl)
+_Window:: SetFocusControl(const _Control* pControl, bool on)
{
+ SysTryReturnVoidResult(NID_UI, pControl, E_SYSTEM, "[E_SYSTEM] The pControl cannot be NULL.");
+
__pFocusControl = const_cast<_Control*>(pControl);
_ControlManager* pControlMgr = _ControlManager::GetInstance();
SysAssert(pControlMgr);
- if (pControl)
+ if (on)
{
if (IsActivated())
{
return null;
}
void
-_Frame::SetFocusControl(const _Control* pControl)
+_Frame::SetFocusControl(const _Control* pControl , bool on)
{
+ SysTryReturnVoidResult(NID_UI, pControl, E_SYSTEM, "[E_SYSTEM] The pControl cannot be NULL.");
_ControlManager* pControlMgr = _ControlManager::GetInstance();
SysAssert(pControlMgr);
_Form* pForm = null;
{
isCurrentForm = true;
}
-
- if (pControl)
- {
- if (pForm)
+
+ if (pForm)
+ {
+ if (on)
{
pForm->SetFocusControl(pControl);
+ if (isCurrentForm)
+ {
+ pControlMgr->SetFocusControl(*pControl);
+ }
}
- if (isCurrentForm)
+ else
{
- pControlMgr->SetFocusControl(*pControl);
+ pControlMgr->SetFocusControl(*this, false);
+ pForm->SetFocused();
}
}
- else
- {
- pControlMgr->SetFocusControl(*this, false);
- pForm->SetFocused();
- }
}
void
// Focus
virtual _Control* GetFocusControl(const _Control* pControl) const;
virtual _Control* GetCurrentFocusControl(void) const;
- virtual void SetFocusControl(const _Control* pControl);
+ virtual void SetFocusControl(const _Control* pControl, bool on);
// Internal
void SetChangingBoundsEnabled(bool enable);
// Focus
virtual _Control* GetFocusControl(const _Control* pControl) const;
virtual _Control* GetCurrentFocusControl(void) const;
- virtual void SetFocusControl(const _Control* pControl);
+ virtual void SetFocusControl(const _Control* pControl, bool on);
// Callbacks
virtual void OnActivated(void);
virtual void OnNativeWindowActivated(void);