add code for closing popup with esc and back key
authorGwangbok Kim <gwangbok.kim@samsung.com>
Fri, 28 Jun 2013 09:05:10 +0000 (18:05 +0900)
committerGwangbok Kim <gwangbok.kim@samsung.com>
Fri, 28 Jun 2013 10:59:17 +0000 (19:59 +0900)
Change-Id: I182e777c3446d8484b1ff105c134c0cc3a24a583
Signed-off-by: Gwangbok Kim <gwangbok.kim@samsung.com>
project/inc/AddressbookListPopup.h
project/src/AddressbookListPopup.cpp

index a438312..71a2113 100644 (file)
@@ -23,6 +23,7 @@
 class AddressbookListPopup
        : public Tizen::Ui::Controls::Popup
        , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IPropagatedKeyEventListener
        , public Tizen::Ui::Controls::IListViewItemEventListener
        , public Tizen::Ui::Controls::IListViewItemProvider
 {
@@ -48,6 +49,11 @@ public:
        virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase *pItem, int itemWidth);
        virtual int GetItemCount(void);
 
+       virtual bool OnKeyPressed(Tizen::Ui::Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo);
+       virtual bool OnKeyReleased(Tizen::Ui::Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo);
+       virtual bool OnPreviewKeyPressed(Tizen::Ui::Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo);
+       virtual bool OnPreviewKeyReleased(Tizen::Ui::Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo);
+
        result Construct(const Tizen::Ui::Controls::Form* pForm);
        result GetAddressbookList(void);
 
index b2a10ed..bdcd649 100644 (file)
@@ -76,6 +76,8 @@ AddressbookListPopup::Construct(const Form* pForm)
        __pListView->AddListViewItemEventListener(*this);
        pPopupScrollPanel->AddControl(__pListView);
 
+       SetPropagatedKeyEventListener(this);
+
        r = GetAddressbookList();
        TryReturn(!IsFailed(r), r, "Failed to get addressbook list (%s)", GetErrorMessage(r));
 
@@ -168,6 +170,35 @@ AddressbookListPopup::OnItemReordered(Tizen::Ui::Controls::ListView& view, int o
 {
 }
 
+bool
+AddressbookListPopup::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return true;
+}
+
+bool
+AddressbookListPopup::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       if (keyEventInfo.GetKeyCode() == KEY_ESC || keyEventInfo.GetKeyCode() == KEY_BACK)
+       {
+               __pForm->SendUserEvent(0, null);
+       }
+
+       return true;
+}
+
+bool
+AddressbookListPopup::OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return true;
+}
+
+bool
+AddressbookListPopup::OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return true;
+}
+
 Tizen::Ui::Controls::ListItemBase*
 AddressbookListPopup::CreateItem(int index, int itemWidth)
 {