return __isItemTapSoundEnabled;
}
+void
+_TableViewItem::DrawAnnexFocus(void)
+{
+ if (__pItemAnnex)
+ {
+ __pItemAnnex->SetFocus();
+ }
+ return;
+}
+
Tizen::Graphics::Canvas*
_TableViewItem::OnCanvasRequestedN(const Tizen::Graphics::FloatRectangle& bounds)
{
{
return false;
}
-
+ _TableView* pParent = dynamic_cast<_TableView*>(GetParent());
_KeyCode keyCode = keyInfo.GetKeyCode();
IListT<_Control*>* pFocusList = GetFocusListN();
SysTryReturn(NID_UI_CTRL, pFocusList != null, true, GetLastResult(), "[%s] propagating.", GetErrorMessage(GetLastResult()));
if (pChildControl && pChildControl->GetEnableState()
&& pChildControl->GetVisibleState() && pChildControl->IsFocusable())
{
+ if (pParent != null)
+ {
+ pParent->SetAnnexFocused(true);
+ }
pChildControl->SetFocused(true);
pChildControl->DrawFocus();
}
if (pItem != null && pItem->GetEnableState() && !pItem->IsFocused()
&& pItem->GetVisibleState() && pItem->IsFocusable())
{
+ if (pParent != null)
+ {
+ pParent->SetAnnexFocused(false);
+ }
pItem->SetFocused(true);
pItem->DrawFocus();
}
if (pChildControl && pChildControl->GetEnableState() && pChildControl->GetVisibleState()
&& pChildControl->IsFocusable())
{
+ if (pParent != null)
+ {
+ pParent->SetAnnexFocused(true);
+ }
pChildControl->SetFocused(true);
pChildControl->DrawFocus();
}
, __scrollPositionOnFlickStarted(0)
, __isAnimationCallbackBlocked(false)
, __lockLoadItemWithScroll(false)
+ , __isRestoreFocus(false)
+ , __isAnnexFocused(false)
, __itemTouchReleasedEventState(TABLE_VIEW_ITEM_TOUCH_RELEASED_EVENT_NORMAL)
, __scrollToItemTag()
{
__expandableItemTag.groupIndex = -1;
__expandableItemTag.itemIndex = -1;
+
+ __focusItemTag.groupIndex = -1;
+ __focusItemTag.itemIndex = -1;
}
_TableViewPresenter::~_TableViewPresenter()
PreloadItem(topDrawnTag.groupIndex, topDrawnTag.itemIndex, shiftingDistance);
+ if (__isRestoreFocus)
+ {
+ __pTableView->SetFocused(true);
+ __pTableView->DrawFocus();
+ __isRestoreFocus = false;
+ }
+
__statusChangedFlag = true;
if (__itemTouchReleasedEventState == TABLE_VIEW_ITEM_TOUCH_RELEASED_EVENT_FIRE)
}
void
+_TableViewPresenter::RestoreFocus(bool isRestoreFocus)
+{
+ __isRestoreFocus = isRestoreFocus;
+}
+
+void
+_TableViewPresenter::SetAnnexFocused(bool isAnnexFocused)
+{
+ __isAnnexFocused = isAnnexFocused;
+}
+
+void
+_TableViewPresenter::SetTableViewFocused(bool focusStatus)
+{
+ if (focusStatus == false)
+ {
+ __focusItemTag.groupIndex = -1;
+ __focusItemTag.itemIndex = -1;
+ __isRestoreFocus = false;
+ __isAnnexFocused = false;
+ }
+ __isTableViewFocused = focusStatus;
+}
+
+bool
+_TableViewPresenter::IsTableViewFocused(void)
+{
+ return __isTableViewFocused;
+}
+
+void
_TableViewPresenter::SetItemType(_TableViewItem* pItem, TableViewItemTag itemPosition)
{
TableViewStyle style = __pTableView->GetTableViewStyle();
GetFirstItem(firstItemPos);
if (itemPos.groupIndex == firstItemPos.groupIndex && itemPos.itemIndex == firstItemPos.itemIndex)
{
+ SetTableViewFocused(false);
return false;
}
GetFirstItem(firstItemPos);
if (itemPos.groupIndex == firstItemPos.groupIndex && itemPos.itemIndex == firstItemPos.itemIndex)
{
+ SetTableViewFocused(false);
return false;
}
}
pItem = LoadItem(itemPos.groupIndex, itemPos.itemIndex);
if (pItem == null)
{
+ SetTableViewFocused(false);
return false;
}
GetFirstItem(firstItemPos);
if (itemPos.groupIndex == firstItemPos.groupIndex && itemPos.itemIndex == firstItemPos.itemIndex)
{
+ SetTableViewFocused(false);
return false;
}
&& pItem->IsFocusable())
{
pItem->SetFocused(true);
+ __focusItemTag.groupIndex = itemPos.groupIndex;
+ __focusItemTag.itemIndex = itemPos.itemIndex;
+ __isAnnexFocused = false;
pItem->DrawFocus();
break;
}
}
else
{
+ SetTableViewFocused(false);
return false;
}
}
GetLastItem(lastItemPos);
if (itemPos.groupIndex == lastItemPos.groupIndex && itemPos.itemIndex == lastItemPos.itemIndex)
{
+ SetTableViewFocused(false);
return false;
}
pItem = LoadItem(itemPos.groupIndex, itemPos.itemIndex);
if (pItem == null)
{
+ SetTableViewFocused(false);
return false;
}
if (itemPos.groupIndex == lastItemPos.groupIndex && itemPos.itemIndex == lastItemPos.itemIndex)
{
+ SetTableViewFocused(false);
return false;
}
{
pItem->SetFocused(true);
pItem->DrawFocus();
+ __focusItemTag.groupIndex = itemPos.groupIndex;
+ __focusItemTag.itemIndex = itemPos.itemIndex;
+ __isAnnexFocused = false;
break;
}
}
}
else
{
+ SetTableViewFocused(false);
return false;
}
}
break;
+ case _KEY_TAB:
+ SetTableViewFocused(false);
+ return false;
+
default:
return false;
}
_TableViewItem* pItem = null;
TableViewItemTag itemPos = {-1, -1};
+ pItem = FindItem(__focusItemTag);
+
+ if (__isRestoreFocus && pItem != null)
+ {
+ if (pItem->GetEnableState() && pItem->GetVisibleState() && pItem->IsFocusable())
+ {
+ if (__isAnnexFocused)
+ {
+ pItem->DrawAnnexFocus();
+ }
+ else
+ {
+ pItem->SetFocused(true);
+ pItem->DrawFocus();
+ }
+ }
+
+ __isRestoreFocus = false;
+ return;
+ }
+
if (pFocusedControl != null)
{
pTableView = dynamic_cast<_TableView*>(pFocusedControl);
if (pItem->GetEnableState() && pItem->GetVisibleState()
&& pItem->IsFocusable())
{
+ __focusItemTag.groupIndex = itemPos.groupIndex;
+ __focusItemTag.itemIndex = itemPos.itemIndex;
+ __isAnnexFocused = false;
pItem->SetFocused(true);
pItem->DrawFocus();
}
}
else
{
+ __focusItemTag.groupIndex = itemPos.groupIndex;
+ __focusItemTag.itemIndex = itemPos.itemIndex;
+ __isAnnexFocused = false;
pItem->SetFocused(true);
pItem->DrawFocus();
break;
if (pItem->GetEnableState() && pItem->GetVisibleState()
&& pItem->IsFocusable())
{
+ __focusItemTag.groupIndex = itemPos.groupIndex;
+ __focusItemTag.itemIndex = itemPos.itemIndex;
+ __isAnnexFocused = false;
pItem->SetFocused(true);
pItem->DrawFocus();
}
}
else
{
+ __focusItemTag.groupIndex = itemPos.groupIndex;
+ __focusItemTag.itemIndex = itemPos.itemIndex;
+ __isAnnexFocused = false;
pItem->SetFocused(true);
pItem->DrawFocus();
break;
void
_TableViewPresenter::OnFocusModeStateChanged(void)
{
+ __focusItemTag.groupIndex = -1;
+ __focusItemTag.itemIndex = -1;
+ __isRestoreFocus = false;
+ __isAnnexFocused = false;
+
_Window* pTop = __pTableView->GetRootWindow();
if (pTop != null)
virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
virtual bool OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo);
+ //Focus
+ virtual bool OnFocusGained(const _Control& source);
+
// gestureListener Callback API
virtual bool OnFlickGestureDetected(_TouchFlickGestureDetector& gesture);
virtual bool OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture);
bool IsReorderModeEnabled(void) const;
result SetReorderModeEnabled(bool enable);
+ //Restore list Focus
+ void RestoreFocus(bool isRestoreFocus);
+ void SetAnnexFocused(bool isAnnexFocused);
+ void SetTableViewFocused(bool focusStatus);
+ bool IsTableViewFocused(void);
+
_FastScroll* GetFastScrollBar(void) const;
result SetFastScrollIndex(const Tizen::Base::String& text, bool useSearchIcon);
bool __reorderEnabled;
bool __sectionStyle;
bool __groupedLookEnable;
+
TableViewStyle __tableViewStyle;
TableViewScrollBarStyle __scrollStyle;
float GetLeftMargin(void) const;
result SetLeftMargin(float leftMargin);
+ //Restore Focus
+ void RestoreFocus(bool isRestoreFocus);
+ void SetAnnexFocused(bool isAnnexFocused);
+ void SetTableViewFocused(bool focusStatus);
+ bool IsTableViewFocused(void);
+
bool IsItemChecked(int groupIndex, int itemIndex) const;
result SetItemChecked(int groupIndex, int itemIndex, bool checked);
Tizen::Graphics::FloatPoint __sweptItemPosition;
TableViewItemTag __sweptItemTag;
+ TableViewItemTag __focusItemTag;
+
TableViewItemTag __reservedScrollItemIndex;
TableViewScrollItemAlignment __reservedScrollItemAlignment;
bool __isAnimationCallbackBlocked;
bool __lockLoadItemWithScroll;
+ bool __isRestoreFocus;
+ bool __isAnnexFocused;
+ bool __isTableViewFocused;
+
int __itemTouchReleasedEventState;
_TableViewScrollToItemTag __scrollToItemTag;