Tizen 2.1 base
[sdk/ide/native-sample.git] / samples / native / cpp / Sample / Tizen C++ / WifiDirectChat / WifiDirectChat / project / inc / WifiDirectMainForm.h
1 //\r
2 // Open Service Platform\r
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
4 //\r
5 // Licensed under the Flora License, Version 1.0 (the License);\r
6 // you may not use this file except in compliance with the License.\r
7 // You may obtain a copy of the License at\r
8 //\r
9 //     http://www.tizenopensource.org/license\r
10 //\r
11 // Unless required by applicable law or agreed to in writing, software\r
12 // distributed under the License is distributed on an AS IS BASIS,\r
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14 // See the License for the specific language governing permissions and\r
15 // limitations under the License.\r
16 //\r
17 \r
18 #ifndef _WIFI_DIRECT_MAIN_FORM_H_\r
19 #define _WIFI_DIRECT_MAIN_FORM_H_\r
20 \r
21 #include <FBase.h>\r
22 #include <FUi.h>\r
23 #include <FGraphics.h>\r
24 #include <FNet.h>\r
25 \r
26 class WifiDirectMainForm :\r
27         public Osp::Ui::Controls::Form,\r
28         public Osp::Ui::IActionEventListener,\r
29         public Osp::Ui::ITextEventListener,\r
30         public Osp::Net::Wifi::IWifiDirectDeviceListener,\r
31         public Osp::Net::Wifi::IWifiDirectGroupOwnerListener,\r
32         public Osp::Net::Wifi::IWifiDirectGroupClientListener\r
33 {\r
34 \r
35 // Construction\r
36 public:\r
37         WifiDirectMainForm(void);\r
38         virtual ~WifiDirectMainForm(void);\r
39         bool Initialize(void);\r
40 \r
41 // Implementation\r
42 \r
43 public:\r
44     void SetRemoteDeviceInfo(Osp::Net::Wifi::WifiDirectDeviceInfo* pRemoteDeviceInfo);\r
45     result DisconnectClient(Osp::Net::Wifi::WifiDirectDeviceInfo* pClientDeviceInfo);\r
46     void SetWpsConfigurationMode(Osp::Net::Wifi::WifiWpsConfigurationMode wpsConfigurationMode);\r
47 \r
48 private:\r
49     void ShowMessageBox(const Osp::Base::String& title, const Osp::Base::String& text);\r
50     void ShowGroupInfoForm(void);\r
51     void ShowScanPopup(void);\r
52     void HideScanPopup(void);\r
53     void ShowCreateGroupPopup(void);\r
54     void HideCreateGroupPopup(void);\r
55     void ShowWaitPopup(void);\r
56     void HideWaitPopup(void);\r
57     void ShowMainForm(void);\r
58     void ShowClientFunctions(void);\r
59     void ShowOwnerFunctions(void);\r
60 \r
61 public:\r
62         virtual result OnInitializing(void);\r
63         virtual result OnTerminating(void);\r
64         virtual void OnActionPerformed(const Osp::Ui::Control& source, int actionId);\r
65 \r
66         // ITextEventListener\r
67         virtual void OnTextValueChanged(const Osp::Ui::Control& source);\r
68         virtual void OnTextValueChangeCanceled(const Osp::Ui::Control& source) {};\r
69 \r
70         // IWifiDirectDeviceListener\r
71         virtual void OnWifiDirectDeviceActivated(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId, result r);\r
72         virtual void OnWifiDirectDeviceDeactivated(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId, result r);\r
73         virtual void OnWifiDirectGroupCreatedN(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId,\r
74         const Osp::Net::Wifi::WifiDirectGroupInfo &wifiDirectGroupInfo, const Osp::Net::Wifi::WifiDirectDeviceInfo &wifiDirectGroupOwnerDeviceInfo,\r
75                         Osp::Net::Wifi::WifiDirectGroupMember* pWifiDirectMember, result r);\r
76         virtual void OnWifiDirectScanCompletedN(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId, Osp::Base::Collection::IList *pWifiDirectDeviceInfoList, result r);\r
77         virtual void OnWifiDirectAssociationCompleted(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId,\r
78                         const Osp::Net::Wifi::WifiDirectDeviceInfo &wifiDirectGroupOwnerDeviceInfo, result r);\r
79 \r
80         // IWifiDirectGroupOwnerListener\r
81         virtual void OnWifiDirectClientAssociated(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId,\r
82                         const Osp::Net::Wifi::WifiDirectDeviceInfo &wifiDirectClientInfo);\r
83         virtual void OnWifiDirectClientDisassociated(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId, const Osp::Net::Wifi::WifiDirectDeviceInfo &wifiDirectClientInfo,\r
84                         Osp::Net::Wifi::WifiDirectAssociationTerminationReason reason);\r
85         virtual void OnWifiDirectGroupDestroyed(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId, result r);\r
86     virtual void OnWifiDirectGroupMemberInfoServiceStarted(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId,\r
87                 const Osp::Net::NetConnection* pNetConnection, result r);\r
88     virtual void OnWifiDirectGroupMemberInfoServiceStopped(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId, result r);\r
89 \r
90         // IWifiDirectGroupClientListener\r
91         virtual void OnWifiDirectAssociationTerminated(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId,\r
92                         Osp::Net::Wifi::WifiDirectAssociationTerminationReason reason, result r);\r
93         virtual void OnWifiDirectGroupOwnerInfoReceived(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId,\r
94                         const Osp::Net::Wifi::WifiDirectDeviceInfo &wifiDirectGroupOwnerDeviceInfo, result r);\r
95         virtual void OnWifiDirectAllGroupMemberInfoReceivedN(Osp::Net::Wifi::WifiDirectDeviceId localDeviceId,\r
96                         Osp::Base::Collection::IList* pWifiDirectDeviceInfoList, result r);\r
97 \r
98 private:\r
99         static const int ID_BUTTON_ACTIVATE             = 100;\r
100         static const int ID_BUTTON_DEACTIVATE           = 101;\r
101         static const int ID_BUTTON_SCAN                         = 102;\r
102         static const int ID_BUTTON_CREATEGROUP          = 103;\r
103         static const int ID_BUTTON_DESTROYGROUP         = 104;\r
104         static const int ID_BUTTON_ASSOCIATE            = 105;\r
105         static const int ID_BUTTON_DISASSOCIATE         = 106;\r
106         static const int ID_BUTTON_STARTCHAT            = 107;\r
107         static const int ID_BUTTON_DEVICEINFO           = 108;\r
108         static const int ID_BUTTON_CANCELGROUP          = 119;\r
109         static const int ID_BUTTON_CANCELSCAN           = 110;\r
110     static const int ID_BUTTON_CHECKED                  = 111;\r
111     static const int ID_BUTTON_UNCHECKED                = 112;\r
112     static const int ID_OPTION_GROUPINFO                = 113;\r
113     static const int ID_OPTION_CHANGEPORTS              = 114;\r
114     static const int ID_OPTION_STARTINFOSERVICE = 115;\r
115     static const int ID_OPTION_STOPINFOSERVICE  = 116;\r
116     static const int ID_OPTION_SETWPS                   = 117;\r
117 \r
118     static const int FOOTER_INDEX_ONE   = 0;\r
119     static const int FOOTER_INDEX_TWO   = 1;\r
120     static const int FOOTER_INDEX_THREE = 2;\r
121 \r
122     static const int DEFAULT_INFOSERVICE_PORT   = 3895;\r
123     static const int DEFAULT_CHAT_PORT                  = 9000;\r
124 \r
125         Osp::Ui::Controls::EditField*   __pEditFieldDeviceName;\r
126         Osp::Ui::Controls::CheckButton* __pCheckButtonGroupClient;\r
127         Osp::Ui::Controls::Button*              __pButtonActivate;\r
128         Osp::Ui::Controls::Button*              __pButtonDeactivate;\r
129         Osp::Ui::Controls::Button*              __pButtonScan;\r
130         Osp::Ui::Controls::Button*              __pButtonCreateGroup;\r
131         Osp::Ui::Controls::Button*              __pButtonDestroyGroup;\r
132         Osp::Ui::Controls::Button*              __pButtonAssociate;\r
133         Osp::Ui::Controls::Button*              __pButtonDisassociate;\r
134         Osp::Ui::Controls::Button*              __pButtonStartChat;\r
135         Osp::Ui::Controls::Button*              __pButtonLocalDeviceInfo;\r
136         Osp::Ui::Controls::Popup*               __pPopupCreateGroup;\r
137         Osp::Ui::Controls::Popup*               __pPopupScan;\r
138         Osp::Ui::Controls::Popup*               __pPopupWait;\r
139 \r
140         Osp::Base::String*      __pInfoServicePortNumber;\r
141         Osp::Base::String* __pChatPortNumber;\r
142 \r
143         Osp::Net::Wifi::WifiDirectDevice*               __pWifiDirectLocalDevice;\r
144         Osp::Net::Wifi::WifiDirectDeviceInfo*   __pWifiDirectRemoteDeviceInfo;\r
145         Osp::Net::Wifi::WifiDirectGroupInfo*    __pWifiDirectGroupInfo;\r
146 \r
147         bool __isGroupMember;\r
148         bool __isInfoServiceStarted;\r
149 };\r
150 \r
151 #endif  //_WIFI_DIRECT_MAIN_FORM_H_\r