class CalendarSelectorPopup
: public Tizen::Ui::Controls::Popup
, public virtual Tizen::Ui::IActionEventListener
- , public virtual Tizen::Ui::Controls::ITableViewItemProvider
- , public virtual Tizen::Ui::Controls::ITableViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemProvider
{
public:
result Initialize(void);
virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
- virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int itemIndex, int itemWidth);
- virtual bool DeleteItem(int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
- virtual int GetDefaultItemHeight(void);
virtual int GetItemCount(void);
- virtual void UpdateItem(int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback);
+ virtual void OnListViewItemReordered(Tizen::Ui::Controls::ListView& listView, int indexFrom, int indexTo);
- virtual void OnTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::TableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated);
- virtual void OnTableViewItemReordered(Tizen::Ui::Controls::TableView& tableView, int itemIndexFrom, int itemIndexTo);
- virtual void OnTableViewItemStateChanged(Tizen::Ui::Controls::TableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);
public:
Tizen::Base::Collection::IList* __pCalendars;
+ Tizen::Ui::Controls::ListView* __pListView;
Tizen::Ui::Control* __pTarget;
}; // CalendarSelectorPopup
-->
<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">
-<ScenePopup Bversion="2.0.0.201305101655" Dversion="20120315">
+<ScenePopup Bversion="2.0.0.201303041025" Dversion="20120315">
<Popup id="IDL_CALENDAR_SELECTOR_POPUP">
- <property accessibilityHint="" color="" titleText="::IDS_ST_BODY_SAVE_TO" titleTextColor=""/>
- <layout height="630.0" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="688.0"/>
- <layout height="630.0" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="868.0"/>
+ <property color="" titleText="::IDS_ST_BODY_SAVE_TO" titleTextColor=""/>
+ <layout height="630" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="688"/>
+ <layout height="630" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="868"/>
</Popup>
<Button id="IDC_BUTTON_CANCEL" parent="IDL_CALENDAR_SELECTOR_POPUP">
- <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_CLD_SK_CANCEL" textSize="36.0" verticalAlign="ALIGN_MIDDLE"/>
- <layout bottomRelation="IDL_CALENDAR_SELECTOR_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="false" height="74.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="24.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="396.0" x="146.0" y="454.0"/>
- <layout bottomRelation="IDL_CALENDAR_SELECTOR_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="false" height="74.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="24.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="396.0" x="142.0" y="216.0"/>
+ <property DisabledBitmapX="0" DisabledBitmapY="0" NormalBitmapX="0" NormalBitmapY="0" PressedBitmapX="0" PressedBitmapY="0" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0" highlightedBitmapY="0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_CLD_SK_CANCEL" textSize="36" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDL_CALENDAR_SELECTOR_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="24" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="396" x="126" y="456"/>
+ <layout bottomRelation="IDL_CALENDAR_SELECTOR_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="24" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="396" x="142" y="216"/>
</Button>
- <TableView id="IDC_TABLEVIEW" parent="IDL_CALENDAR_SELECTOR_POPUP">
- <property backgroundColor="" backgroundColorOpacity="0" fastScrollIndex="" itemDivider="true" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_NONE" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" useSearchIcon="false"/>
- <layout bottomRelation="IDC_BUTTON_CANCEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="false" centerVertical="false" height="434.0" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="" leftRelationType="" marginBottom="20.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="IDL_CALENDAR_SELECTOR_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="688.0" x="0" y="0.0"/>
- <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="242.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="376.0" x="257.0" y="203.0"/>
- </TableView>
+ <ListView id="IDC_LISTVIEW" parent="IDL_CALENDAR_SELECTOR_POPUP">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList=""/>
+ <layout bottomRelation="IDC_BUTTON_CANCEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="false" centerVertical="false" height="516" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="" leftRelationType="" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="IDL_CALENDAR_SELECTOR_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="0"/>
+ <layout bottomRelation="IDC_BUTTON_CANCEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="false" centerVertical="false" height="516" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="" leftRelationType="" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="IDL_CALENDAR_SELECTOR_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="648" x="0" y="0"/>
+ </ListView>
</ScenePopup>
using namespace Tizen::Ui;
using namespace Tizen::Ui::Controls;
+enum CalendarItemElementId
+{
+ CALENDAR_ITEM_ELEMENT_ID_ICON,
+ CALENDAR_ITEM_ELEMENT_ID_NAME,
+ CALENDAR_ITEM_ELEMENT_ID_ADDRESS
+};
+
static const int IDA_CALENDAR_SELECTOR_POPUP_CANCEL = 20902;
static const RecordId ID_DEFAULT_BIRTHDAY_CALENDAR = 3;
static const int H_3_ITEMS_EVENT_LIST = 620;
static const int H_MANY_ITEMS_EVENT_LIST = 680;
static const int H_ITEM = 140;
+static const int X_CALENDAR_ICON = 20;
+static const int Y_CALENDAR_ICON = 38;
+static const int W_CALENDAR_ICON = 64;
+static const int W_CALENDAR_ICON_MARGIN = 16;
+static const int H_CALENDAR_ICON = 64;
+static const int Y_CALENDAR_NAME = 22;
+static const int H_CALENDAR_NAME = 42;
+static const int Y_CALENDAR_ADDRESS = 64;
+static const int H_CALENDAR_ADDRESS = 54;
+static const int FONT_SIZE_DETAIL02 = 44;
+static const unsigned int COLOR_DETAIL02 = Color32<0, 0, 0>::Value;
+static const unsigned int COLOR_DETAIL02_FOCUS = Color32<255, 255, 255>::Value;
+static const int FONT_SIZE_DETAIL03 = 32;
+static const unsigned int COLOR_DETAIL03 = Color32<128, 128, 128>::Value;
+static const unsigned int COLOR_DETAIL03_FOCUS = Color32<255, 255, 255>::Value;
CalendarSelectorPopup::CalendarSelectorPopup(void)
: __pCalendars(null)
+ , __pListView(null)
, __pTarget(null)
{
}
void
-CalendarSelectorPopup::RequestCalendar(CalendarSelectorPopupStyle style, Tizen::Ui::Control* pTarget, bool readOnly)
+CalendarSelectorPopup::RequestCalendar(CalendarSelectorPopupStyle style, Control* pTarget, bool readOnly)
{
if (__pCalendars)
{
}
__pCalendars = calendarbook.SearchN(filter);
- TryReturnVoid(__pCalendars, "[E_FAILURE] Unable to get calendar list.");
+ TryReturnVoid(__pCalendars != null, "[E_FAILURE] Unable to get calendar list.");
- if (!readOnly)
+ if (readOnly == false)
{
IEnumerator* pEnum = __pCalendars->GetEnumeratorN();
int index = 0;
delete pEnum;
}
- switch (__pCalendars->GetCount())
+ if (__pCalendars->GetCount() > 0)
{
- case 1:
- SetSize(GetWidth(), H_1_ITEM_EVENT_LIST);
- break;
- case 2:
- SetSize(GetWidth(), H_2_ITEMS_EVENT_LIST);
- break;
- case 3:
- SetSize(GetWidth(), H_3_ITEMS_EVENT_LIST);
- break;
- default:
- SetSize(GetWidth(), H_MANY_ITEMS_EVENT_LIST);
- break;
+ switch (__pCalendars->GetCount())
+ {
+ case 1:
+ SetSize(GetWidth(), H_1_ITEM_EVENT_LIST);
+ break;
+ case 2:
+ SetSize(GetWidth(), H_2_ITEMS_EVENT_LIST);
+ break;
+ case 3:
+ SetSize(GetWidth(), H_3_ITEMS_EVENT_LIST);
+ break;
+ default:
+ SetSize(GetWidth(), H_MANY_ITEMS_EVENT_LIST);
+ break;
+ }
}
__pTarget = pTarget;
result
CalendarSelectorPopup::OnInitializing(void)
{
- AppLogDebug("Enter");
- TableView* pTableView = static_cast<TableView*>(GetControl(L"IDC_TABLEVIEW"));
- pTableView->SetItemProvider(this);
- pTableView->AddTableViewItemEventListener(*this);
-
- Button* pButtonCancel = static_cast<Button*>(GetControl(L"IDC_BUTTON_CANCEL"));
+ __pListView = dynamic_cast<ListView*>(GetControl(L"IDC_LISTVIEW"));
+ AppAssertf(__pListView != null, "[E_FAILURE] Unable to get listview.");
+ __pListView->SetItemProvider(*this);
+ __pListView->AddListViewItemEventListener(*this);
+ // TBD : Below code will be deleted.(Tizen SDK 2.0 has a defect on first drawing.)
+ __pListView->UpdateList();
+
+ Button* pButtonCancel = dynamic_cast<Button*>(GetControl(L"IDC_BUTTON_CANCEL"));
+ AppAssertf(pButtonCancel != null, "[E_FAILURE] Unable to get button.");
pButtonCancel->SetActionId(IDA_CALENDAR_SELECTOR_POPUP_CANCEL);
pButtonCancel->AddActionEventListener(*this);
result
CalendarSelectorPopup::OnTerminating(void)
{
- AppLogDebug("Enter");
return E_SUCCESS;
}
void
-CalendarSelectorPopup::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
+CalendarSelectorPopup::OnActionPerformed(const Control& source, int actionId)
{
SetShowState(false);
}
-Tizen::Ui::Controls::TableViewItem*
-CalendarSelectorPopup::CreateItem(int itemIndex, int itemWidth)
+int
+CalendarSelectorPopup::GetItemCount(void)
{
- AppLogDebug("itemIndex: %d", itemIndex);
- RelativeLayout layout;
- layout.Construct();
+ return __pCalendars->GetCount();
+}
- TableViewItem* pItem = new (std::nothrow) TableViewItem();
- pItem->Construct(layout, Dimension(itemWidth, H_ITEM));
+ListItemBase*
+CalendarSelectorPopup::CreateItem(int index, int itemWidth)
+{
+ CustomItem* pItem = new (std::nothrow) CustomItem();
+ pItem->Construct(Dimension(itemWidth, H_ITEM), LIST_ANNEX_STYLE_NORMAL);
- Calendar* pCalendar = static_cast<Calendar*>(__pCalendars->GetAt(itemIndex));
- Bitmap* pIconBitmap = null;
+ Calendar* pCalendar = static_cast<Calendar*>(__pCalendars->GetAt(index));
+ Bitmap* pBitmapIcon = null;
String accountName;
if (pCalendar->GetAccountId() != INVALID_ACCOUNT_ID)
{
Account account = AccountAccessor::GetInstance()->GetAccount(pCalendar->GetAccountId());
- pIconBitmap = ResourceManager::GetBitmapN(account.GetAccountProvider().GetIconPath(), true);
+ pBitmapIcon = ResourceManager::GetBitmapN(account.GetAccountProvider().GetIconPath(), true);
accountName = account.GetUserName();
+ AppLogDebug("%ls - %ls", accountName.GetPointer(), account.GetAccountProvider().GetIconPath().GetPointer());
}
else
{
- pIconBitmap = ResourceManager::GetBitmapN(IDB_ICON_PHONE_CALENDAR);
+ pBitmapIcon = ResourceManager::GetBitmapN(IDB_ICON_PHONE_CALENDAR);
accountName = ResourceManager::GetString(IDS_CLD_POP_MY_PHONE);
+ AppLogDebug("%ls - %ls", accountName.GetPointer(), IDB_ICON_PHONE_CALENDAR);
}
- Panel* pPanel = new (std::nothrow) Panel();
- pPanel->Construct(L"IDL_PANEL_CALENDAR_LIST_ITEM");
-
- Label* pLabel = static_cast<Label*>(pPanel->GetControl(L"IDC_LABEL_ICON"));
- pLabel->SetBackgroundBitmap(*pIconBitmap);
- delete pIconBitmap;
-
- pLabel = static_cast<Label*>(pPanel->GetControl(L"IDC_LABEL_MAIN_TEXT"));
- pLabel->SetText(pCalendar->GetName());
-
- pLabel = static_cast<Label*>(pPanel->GetControl(L"IDC_LABEL_SUB_TEXT"));
- pLabel->SetText(accountName);
+ int x = 0;
+ if (pBitmapIcon != null)
+ {
+ pItem->AddElement(Rectangle(X_CALENDAR_ICON, Y_CALENDAR_ICON, W_CALENDAR_ICON, H_CALENDAR_ICON),
+ CALENDAR_ITEM_ELEMENT_ID_ICON, *pBitmapIcon);
+ delete pBitmapIcon;
+ x += X_CALENDAR_ICON + W_CALENDAR_ICON + W_CALENDAR_ICON_MARGIN;
+ }
- pItem->AddControl(pPanel);
+ pItem->AddElement(Rectangle(x, Y_CALENDAR_NAME, itemWidth - x, H_CALENDAR_NAME),
+ CALENDAR_ITEM_ELEMENT_ID_NAME, accountName, FONT_SIZE_DETAIL03,
+ Color(COLOR_DETAIL03), Color(COLOR_DETAIL03_FOCUS), Color(COLOR_DETAIL03_FOCUS));
- layout.SetHorizontalFitPolicy(*pPanel, FIT_POLICY_PARENT);
- layout.SetVerticalFitPolicy(*pPanel, FIT_POLICY_PARENT);
+ pItem->AddElement(Rectangle(x, Y_CALENDAR_ADDRESS, itemWidth - x, H_CALENDAR_ADDRESS),
+ CALENDAR_ITEM_ELEMENT_ID_ADDRESS, pCalendar->GetName(), FONT_SIZE_DETAIL02,
+ Color(COLOR_DETAIL02), Color(COLOR_DETAIL02_FOCUS), Color(COLOR_DETAIL02_FOCUS));
return pItem;
}
bool
-CalendarSelectorPopup::DeleteItem(int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem)
+CalendarSelectorPopup::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
{
- AppLogDebug("itemIndex: %d", itemIndex);
delete pItem;
return true;
}
-int
-CalendarSelectorPopup::GetDefaultItemHeight(void)
-{
- return 0;
-}
-
-int
-CalendarSelectorPopup::GetItemCount(void)
+void
+CalendarSelectorPopup::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
{
- return __pCalendars->GetCount();
+ if (status == LIST_ITEM_STATUS_SELECTED)
+ {
+ if (__pTarget != null)
+ {
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) Integer(static_cast<Calendar*>(__pCalendars->GetAt(index))->GetRecordId()));
+ __pTarget->SendUserEvent(IDA_CALENDAR_SELECTOR_POPUP_DONE, pArgs);
+ }
+ SetShowState(false);
+ }
}
void
-CalendarSelectorPopup::UpdateItem(int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem)
+CalendarSelectorPopup::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
{
}
void
-CalendarSelectorPopup::OnTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::TableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated)
+CalendarSelectorPopup::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status)
{
}
void
-CalendarSelectorPopup::OnTableViewItemReordered(Tizen::Ui::Controls::TableView& tableView, int itemIndexFrom, int itemIndexTo)
+CalendarSelectorPopup::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
{
}
void
-CalendarSelectorPopup::OnTableViewItemStateChanged(Tizen::Ui::Controls::TableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status)
+CalendarSelectorPopup::OnListViewItemReordered(ListView& listView, int indexFrom, int indexTo)
{
- if (status == TABLE_VIEW_ITEM_STATUS_SELECTED)
- {
- if (__pTarget)
- {
- LinkedList* pArgs = new (std::nothrow) LinkedList(SingleObjectDeleter);
- pArgs->Add(new (std::nothrow) Integer(static_cast<Calendar*>(__pCalendars->GetAt(itemIndex))->GetRecordId()));
- __pTarget->SendUserEvent(IDA_CALENDAR_SELECTOR_POPUP_DONE, pArgs);
- }
- SetShowState(false);
- }
}