2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 * @file widget_model.h
18 * @author Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com)
20 * @brief Header file for widget model
22 #ifndef SRC_DOMAIN_WIDGET_MODEL_H
23 #define SRC_DOMAIN_WIDGET_MODEL_H
25 #include <dpl/event/model.h>
26 #include <dpl/event/property.h>
27 #include <dpl/optional.h>
30 #include "widget_data_types.h"
32 #include <dpl/wrt-dao-ro/wrt_db_types.h> // definition of WidgetHandle
37 * Widget model is the core object that hold information about
38 * properties of widget. After wrt launch each widget contained in database is
39 * mapped to WidgetModel.
41 * Widget model is a type of MVC model, so it is possible to listen for it's
45 class WidgetModel : public DPL::Event::Model
52 * ex> "TizenIDabc.appname"
54 * - TizenId / AppId : "TizenIDabc.appname"
55 * - TzPkgId : "TizenIDabc"
56 * - App name : "appname"
60 DPL::Event::Property<WrtDB::TizenPkgId,
61 DPL::Event::PropertyReadOnly,
62 DPL::Event::PropertyStorageDynamicCached> TzPkgId;
67 * Note: This is a readonly property
69 DPL::Event::Property<WrtDB::WidgetType,
70 DPL::Event::PropertyReadOnly,
71 DPL::Event::PropertyStorageDynamicCached> Type;
74 * @brief Current widget actual size
76 DPL::Event::Property<WidgetSize> ActualSize;
79 * @brief Current widget preferred size
81 DPL::Event::Property<WidgetSize,
82 DPL::Event::PropertyReadOnly,
83 DPL::Event::PropertyStorageDynamicCached>
87 * @brief Start URL for widget
89 DPL::Event::Property<DPL::OptionalString> StartURL;
92 * @brief Start URL information for widget
94 DPL::Event::Property<OptionalWidgetStartFileInfo> StartFileInfo;
97 * @brief Prefix URL for widget
99 * This is a prefix address of html file that widget is displaying.
100 * The whole address is PrefixURL + StartURL.
102 DPL::Event::Property<DPL::String, DPL::Event::PropertyReadOnly> PrefixURL;
105 * @brief Install path for widget
107 * Gets path in which files of widget are being kept
109 DPL::Event::Property<DPL::String,
110 DPL::Event::PropertyReadOnly,
111 DPL::Event::PropertyStorageDynamicCached> InstallPath;
114 * @brief Path to widget's persistent storage.
116 * Gets path in which widget may store its persistent private data.
118 DPL::Event::Property<DPL::String,
119 DPL::Event::PropertyReadOnly> PersistentStoragePath;
122 * @brief Path to widget's temporary storage.
124 * Gets path in which widget may store its temporary private data.
126 DPL::Event::Property<DPL::String,
127 DPL::Event::PropertyReadOnly> TemporaryStoragePath;
130 * @brief Widget defaultlocale
132 DPL::Event::Property<DPL::OptionalString,
133 DPL::Event::PropertyReadOnly,
134 DPL::Event::PropertyStorageDynamicCached>
140 DPL::Event::Property<DPL::OptionalString> Name;
143 * @brief Widget short name
145 DPL::Event::Property<DPL::OptionalString> ShortName;
148 * @brief Widget description
150 DPL::Event::Property<DPL::OptionalString> Description;
153 * @brief Widget license
155 DPL::Event::Property<DPL::OptionalString> License;
158 * @brief Widget license href
160 DPL::Event::Property<DPL::OptionalString> LicenseHref;
165 DPL::Event::Property<OptionalWidgetIcon> Icon;
168 * @brief Widget splash image src
170 DPL::Event::Property<DPL::OptionalString,
171 DPL::Event::PropertyReadOnly,
172 DPL::Event::PropertyStorageDynamicCached> SplashImg;
177 DPL::Event::Property<WrtDB::WindowModeList,
178 DPL::Event::PropertyReadOnly,
179 DPL::Event::PropertyStorageDynamic> WindowModes;
182 // * @brief Value of network element.
184 // DPL::Event::Property<bool,
185 // DPL::Event::PropertyReadOnly> AccessNetwork;
188 // * @brief Does widget contain WARP definitions.
190 // DPL::Event::Property<bool> WarpDefinitionEmpty;
193 * @brief Is back supported
195 DPL::Event::Property<bool,
196 DPL::Event::PropertyReadOnly,
197 DPL::Event::PropertyStorageDynamicCached>
201 * @brief Widget access list
203 DPL::Event::Property<WidgetAccessList> AccessList;
206 * @brief Is this DeveloperWidget
208 DPL::Event::Property<bool,
209 DPL::Event::PropertyReadOnly,
210 DPL::Event::PropertyStorageDynamicCached> IsTestWidget;
212 DPL::Event::Property<WidgetSettingList> SettingList;
215 * @brief Widget Application Service list
217 DPL::Event::Property<WidgetApplicationServiceList> AppServiceList;
219 WidgetModel(const std::string &tizenId);
222 // Custom read write delegates
223 static DPL::String getTimestamp();
225 DPL::String getTizenId() const;
228 #endif // SRC_DOMAIN_WIDGET_MODEL_H