From 2650207f69c74b89f04ba506b880a22ba07112aa Mon Sep 17 00:00:00 2001 From: Changyong Jeon Date: Wed, 15 May 2013 11:17:11 +0900 Subject: [PATCH] replace the control build codes to xml. Change-Id: I3aa4f191f6e20f489cc05ee455803d1a8a89245a --- inc/ClCalendarSelectorPopup.h | 20 ++- .../IDL_CALENDAR_SELECTOR_POPUP.xml | 24 +-- .../IDL_PANEL_CALENDAR_LIST_ITEM.xml | 28 ++++ src/ClCalendarSelectorPopup.cpp | 173 +++++++++------------ 4 files changed, 124 insertions(+), 121 deletions(-) create mode 100644 res/screen-size-normal/IDL_PANEL_CALENDAR_LIST_ITEM.xml diff --git a/inc/ClCalendarSelectorPopup.h b/inc/ClCalendarSelectorPopup.h index 9066916..b797a04 100644 --- a/inc/ClCalendarSelectorPopup.h +++ b/inc/ClCalendarSelectorPopup.h @@ -29,8 +29,8 @@ class CalendarSelectorPopup : public Tizen::Ui::Controls::Popup , public virtual Tizen::Ui::IActionEventListener - , public virtual Tizen::Ui::Controls::IListViewItemEventListener - , public virtual Tizen::Ui::Controls::IListViewItemProvider + , public virtual Tizen::Ui::Controls::ITableViewItemProvider + , public virtual Tizen::Ui::Controls::ITableViewItemEventListener { public: result Initialize(void); @@ -44,19 +44,17 @@ public: 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 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 UpdateItem(int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + 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 diff --git a/res/screen-size-normal/IDL_CALENDAR_SELECTOR_POPUP.xml b/res/screen-size-normal/IDL_CALENDAR_SELECTOR_POPUP.xml index 3208037..63472c1 100644 --- a/res/screen-size-normal/IDL_CALENDAR_SELECTOR_POPUP.xml +++ b/res/screen-size-normal/IDL_CALENDAR_SELECTOR_POPUP.xml @@ -4,20 +4,20 @@ --> - + - - - + + + - - - - - + + + + + diff --git a/res/screen-size-normal/IDL_PANEL_CALENDAR_LIST_ITEM.xml b/res/screen-size-normal/IDL_PANEL_CALENDAR_LIST_ITEM.xml new file mode 100644 index 0000000..627fdda --- /dev/null +++ b/res/screen-size-normal/IDL_PANEL_CALENDAR_LIST_ITEM.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/src/ClCalendarSelectorPopup.cpp b/src/ClCalendarSelectorPopup.cpp index fd66412..78ae862 100644 --- a/src/ClCalendarSelectorPopup.cpp +++ b/src/ClCalendarSelectorPopup.cpp @@ -31,13 +31,6 @@ using namespace Tizen::Social; 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; @@ -47,25 +40,9 @@ static const int H_2_ITEMS_EVENT_LIST = 478; 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) { @@ -87,7 +64,7 @@ CalendarSelectorPopup::Initialize(void) } void -CalendarSelectorPopup::RequestCalendar(CalendarSelectorPopupStyle style, Control* pTarget, bool readOnly) +CalendarSelectorPopup::RequestCalendar(CalendarSelectorPopupStyle style, Tizen::Ui::Control* pTarget, bool readOnly) { if (__pCalendars) { @@ -118,9 +95,9 @@ CalendarSelectorPopup::RequestCalendar(CalendarSelectorPopupStyle style, Control } __pCalendars = calendarbook.SearchN(filter); - TryReturnVoid(__pCalendars != null, "[E_FAILURE] Unable to get calendar list."); + TryReturnVoid(__pCalendars, "[E_FAILURE] Unable to get calendar list."); - if (readOnly == false) + if (!readOnly) { IEnumerator* pEnum = __pCalendars->GetEnumeratorN(); int index = 0; @@ -136,23 +113,20 @@ CalendarSelectorPopup::RequestCalendar(CalendarSelectorPopupStyle style, Control delete pEnum; } - if (__pCalendars->GetCount() > 0) + switch (__pCalendars->GetCount()) { - 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; - } + 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; @@ -163,15 +137,12 @@ CalendarSelectorPopup::RequestCalendar(CalendarSelectorPopupStyle style, Control result CalendarSelectorPopup::OnInitializing(void) { - __pListView = dynamic_cast(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(GetControl(L"IDC_BUTTON_CANCEL")); - AppAssertf(pButtonCancel != null, "[E_FAILURE] Unable to get button."); + AppLogDebug("Enter"); + TableView* pTableView = static_cast(GetControl(L"IDC_TABLEVIEW")); + pTableView->SetItemProvider(this); + pTableView->AddTableViewItemEventListener(*this); + + Button* pButtonCancel = static_cast(GetControl(L"IDC_BUTTON_CANCEL")); pButtonCancel->SetActionId(IDA_CALENDAR_SELECTOR_POPUP_CANCEL); pButtonCancel->AddActionEventListener(*this); @@ -181,102 +152,108 @@ CalendarSelectorPopup::OnInitializing(void) result CalendarSelectorPopup::OnTerminating(void) { + AppLogDebug("Enter"); return E_SUCCESS; } void -CalendarSelectorPopup::OnActionPerformed(const Control& source, int actionId) +CalendarSelectorPopup::OnActionPerformed(const Tizen::Ui::Control& source, int actionId) { SetShowState(false); } -int -CalendarSelectorPopup::GetItemCount(void) +Tizen::Ui::Controls::TableViewItem* +CalendarSelectorPopup::CreateItem(int itemIndex, int itemWidth) { - return __pCalendars->GetCount(); -} + AppLogDebug("itemIndex: %d", itemIndex); + RelativeLayout layout; + layout.Construct(); -ListItemBase* -CalendarSelectorPopup::CreateItem(int index, int itemWidth) -{ - CustomItem* pItem = new (std::nothrow) CustomItem(); - pItem->Construct(Dimension(itemWidth, H_ITEM), LIST_ANNEX_STYLE_NORMAL); + TableViewItem* pItem = new (std::nothrow) TableViewItem(); + pItem->Construct(layout, Dimension(itemWidth, H_ITEM)); - Calendar* pCalendar = static_cast(__pCalendars->GetAt(index)); - Bitmap* pBitmapIcon = null; + Calendar* pCalendar = static_cast(__pCalendars->GetAt(itemIndex)); + Bitmap* pIconBitmap = null; String accountName; if (pCalendar->GetAccountId() != INVALID_ACCOUNT_ID) { Account account = AccountAccessor::GetInstance()->GetAccount(pCalendar->GetAccountId()); - pBitmapIcon = ResourceManager::GetBitmapN(account.GetAccountProvider().GetIconPath(), true); + pIconBitmap = ResourceManager::GetBitmapN(account.GetAccountProvider().GetIconPath(), true); accountName = account.GetUserName(); - AppLogDebug("%ls - %ls", accountName.GetPointer(), account.GetAccountProvider().GetIconPath().GetPointer()); } else { - pBitmapIcon = ResourceManager::GetBitmapN(IDB_ICON_PHONE_CALENDAR); + pIconBitmap = ResourceManager::GetBitmapN(IDB_ICON_PHONE_CALENDAR); accountName = ResourceManager::GetString(IDS_CLD_POP_MY_PHONE); - AppLogDebug("%ls - %ls", accountName.GetPointer(), IDB_ICON_PHONE_CALENDAR); } - 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; - } + Panel* pPanel = new (std::nothrow) Panel(); + pPanel->Construct(L"IDL_PANEL_CALENDAR_LIST_ITEM"); + + Label* pLabel = static_cast(pPanel->GetControl(L"IDC_LABEL_ICON")); + pLabel->SetBackgroundBitmap(*pIconBitmap); + delete pIconBitmap; + + pLabel = static_cast(pPanel->GetControl(L"IDC_LABEL_MAIN_TEXT")); + pLabel->SetText(pCalendar->GetName()); - 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)); + pLabel = static_cast(pPanel->GetControl(L"IDC_LABEL_SUB_TEXT")); + pLabel->SetText(accountName); - 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)); + pItem->AddControl(pPanel); + + layout.SetHorizontalFitPolicy(*pPanel, FIT_POLICY_PARENT); + layout.SetVerticalFitPolicy(*pPanel, FIT_POLICY_PARENT); return pItem; } bool -CalendarSelectorPopup::DeleteItem(int index, ListItemBase* pItem, int itemWidth) +CalendarSelectorPopup::DeleteItem(int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem) { + AppLogDebug("itemIndex: %d", itemIndex); delete pItem; return true; } -void -CalendarSelectorPopup::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status) +int +CalendarSelectorPopup::GetDefaultItemHeight(void) { - if (status == LIST_ITEM_STATUS_SELECTED) - { - if (__pTarget != null) - { - LinkedList* pArgs = new (std::nothrow) LinkedList(); - pArgs->Add(new (std::nothrow) Integer(static_cast(__pCalendars->GetAt(index))->GetRecordId())); - __pTarget->SendUserEvent(IDA_CALENDAR_SELECTOR_POPUP_DONE, pArgs); - } - SetShowState(false); - } + return 0; +} + +int +CalendarSelectorPopup::GetItemCount(void) +{ + return __pCalendars->GetCount(); } void -CalendarSelectorPopup::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction) +CalendarSelectorPopup::UpdateItem(int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem) { } void -CalendarSelectorPopup::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status) +CalendarSelectorPopup::OnTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::TableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated) { } void -CalendarSelectorPopup::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback) +CalendarSelectorPopup::OnTableViewItemReordered(Tizen::Ui::Controls::TableView& tableView, int itemIndexFrom, int itemIndexTo) { } void -CalendarSelectorPopup::OnListViewItemReordered(ListView& listView, int indexFrom, int indexTo) +CalendarSelectorPopup::OnTableViewItemStateChanged(Tizen::Ui::Controls::TableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status) { + if (status == TABLE_VIEW_ITEM_STATUS_SELECTED) + { + if (__pTarget) + { + LinkedList* pArgs = new (std::nothrow) LinkedList(SingleObjectDeleter); + pArgs->Add(new (std::nothrow) Integer(static_cast(__pCalendars->GetAt(itemIndex))->GetRecordId())); + __pTarget->SendUserEvent(IDA_CALENDAR_SELECTOR_POPUP_DONE, pArgs); + } + SetShowState(false); + } } -- 2.7.4