sync with tizen_2.0
[platform/framework/native/appfw.git] / inc / FAppPkgPackageAppInfo.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file        FAppPkgPackageAppInfo.h
20  * @brief       This is the header file for the %PackageAppInfo class.
21  *
22  * This header file contains the declarations of the %PackageAppInfo class.
23  */
24
25 #ifndef _FAPP_PKG_PACKAGE_APP_INFO_H_
26 #define _FAPP_PKG_PACKAGE_APP_INFO_H_
27
28 #include <FBase.h>
29 #include <FAppTypes.h>
30 #include <FAppPkgPackageManager.h>
31
32 namespace Tizen { namespace App { namespace Package
33 {
34
35 /**
36  * @class               PackageAppInfo
37  * @brief               This class represents the information of the application in package.
38  *
39  * @since       2.0
40  *
41  * @final               This class is not intended for extension.
42  *
43  * The %PackageAppInfo class provides the information of the application in package.
44  *
45  */
46 class _OSP_EXPORT_ PackageAppInfo
47         : public Tizen::Base::Object
48 {
49 public:
50         /**
51          * This destructor overrides Tizen::Base::Object::~Object().
52          *
53          * @since       2.0
54          */
55         virtual ~PackageAppInfo(void);
56
57         /**
58          * Gets an application ID.
59          *
60          * @since       2.0
61          *
62          * @return An application ID
63          */
64         AppId GetAppId(void) const;
65
66         /**
67          * Gets the name of an application.
68          *
69          * @since       2.0
70          *
71          * @return      The name of an application
72          */
73         Tizen::Base::String GetAppName(void) const;
74
75         /**
76          * Gets the display name of an application.
77          *
78          * @since       2.0
79          *
80          * @return      The display name of an application
81          */
82         Tizen::Base::String GetAppDisplayName(void) const;
83
84         /**
85          * @if VISPARTNER-MANUFACTURER
86          * Gets the menu icon path of an application.
87          *
88          * @since       2.0
89          * @visibility  partner-manufacturer
90          * @privilege   %http://tizen.org/privilege/packagesetting
91          *
92          * @return      The menu icon path of an application, @n
93          *          else an empty string is returned if there is no value
94          * @endif
95          */
96         Tizen::Base::String GetAppMenuIconPath(void) const;
97
98         /**
99          * @if VISPARTNER-MANUFACTURER
100          * Gets the setting icon path of an application.
101          *
102          * @since       2.0
103          * @visibility  partner-manufacturer
104          * @privilege   %http://tizen.org/privilege/packagesetting
105          *
106          * @return      The setting icon path of an application, @n
107          *          else an empty string is returned if there is no value
108          * @endif
109          */
110         Tizen::Base::String GetAppSettingIconPath(void) const;
111
112         /**
113          * @if VISPARTNER-MANUFACTURER
114          * Gets the notification icon path of an application.
115          *
116          * @since       2.0
117          * @visibility  partner-manufacturer
118          * @privilege   %http://tizen.org/privilege/packagesetting
119          *
120          * @return      The notification icon path of an application, @n
121          *          else an empty string is returned if there is no value
122          * @endif
123          */
124         Tizen::Base::String GetAppNotificationIconPath(void) const;
125
126         /**
127          * Gets the category list of an application.
128          *
129          * @since       2.0
130          *
131          * @return              A pointer to the list of the Tizen::Base::String instances, @n
132          *                              else @c null if it fails
133          * @exception   E_SUCCESS                       The method is successful.
134          * @exception   E_SYSTEM                        The method cannot proceed due to a severe system error.
135          * @remarks             The specific error code can be accessed using the GetLastResult() method.
136          */
137         Tizen::Base::Collection::IList* GetAppCategoryListN(void) const;
138
139         /**
140          * Checks whether an application is visible on the menu.
141          *
142          * @since       2.0
143          *
144          * @return      @c true if an application is visible on the menu, @n
145          *                      else @c false
146          * @remarks If the return value is @c false, it is recommended not to display the application on the menu.
147          */
148         bool IsMenuIconVisible(void) const;
149
150         /**
151          * Checks whether an application is the main application of the package.
152          *
153          * @since       2.0
154          *
155          * @return      @c true if an application is the main application of the package, @n
156          *                      else @c false
157          */
158         bool IsMainApp(void) const;
159
160 private:
161         /**
162          * This is the default constructor for this class. This default constructor is intentionally
163  declared as private so that only the platform can create an instance.
164          */
165         PackageAppInfo(void);
166
167         /**
168          * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
169          */
170         PackageAppInfo(const PackageAppInfo& rhs);
171
172         /**
173          * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
174          */
175         PackageAppInfo& operator =(const PackageAppInfo& rhs);
176
177 private:
178         class _PackageAppInfoImpl* __pPackageAppInfoImpl;
179
180         friend class _PackageAppInfoImpl;
181         friend class _PackageInfoImpl;
182         friend class _PackageManagerImpl;
183
184 }; // PackageAppInfo
185
186 } } } // Tizen::App::Package
187
188 #endif // _FAPP_PKG_PACKAGE_APP_INFO_H_