#include "common/arraysize.h"
#include "common/logger.h"
+#include "common/platform_info.h"
namespace runtime {
currentViewModeFullScreen_(false),
focus_(NULL),
content_(NULL),
+ progressbar_(NULL),
+ top_layout_(NULL),
rotation_(0),
handler_id_(0) {
}
EVAS_SIZE_EXPAND_FILL(top_layout);
elm_object_content_set(conformant, top_layout);
evas_object_show(top_layout);
+ top_layout_ = top_layout;
// focus
Evas_Object* focus = elm_bg_add(top_layout);
evas_object_show(focus);
focus_ = focus;
+ if (common::getProfile() == common::kPROFILE_MOBILE) {
+ // progressbar
+ Evas_Object *progressbar = elm_progressbar_add(top_layout);
+ EVAS_SIZE_EXPAND_FILL(progressbar);
+ elm_progressbar_unit_format_set(progressbar, "%1.1f%%");
+ elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
+ elm_object_part_content_set(top_layout, "elm.swallow.progress", progressbar);
+ evas_object_show(progressbar);
+ progressbar_ = progressbar;
+ }
+
// focus callback
auto focus_callback = [](void* user_data,
Evas_Object*,
}
}
+void NativeWindow::SignalEmit(const char* emission,
+ const char* source) {
+ elm_object_signal_emit(top_layout_, emission, source);
+}
+
+void NativeWindow::UpdateProgress(double value) {
+ elm_progressbar_value_set(progressbar_, ELM_SCALE_SIZE(value));
+}
+
} // namespace runtime
Type type() const { return window_type_;}
void EnableManualRotation(bool enable);
void ManualRotationDone();
+ void SignalEmit(const char* emission, const char* source);
+ void UpdateProgress(double value);
protected:
virtual Evas_Object* CreateWindowInternal() = 0;
bool currentViewModeFullScreen_;
Evas_Object* focus_;
Evas_Object* content_;
+ Evas_Object* progressbar_;
+ Evas_Object* top_layout_;
int rotation_;
int handler_id_;
ScreenOrientation natural_orientation_;
const char* kResWgtPath = "res/wgt/";
const char* kAppControlMain = "http://tizen.org/appcontrol/operation/main";
+// window signal callback
+const char *kEdjeShowProgressSignal = "show,progress,signal";
+const char *kEdjeHideProgressSignal = "hide,progress,signal";
+
const std::string kViewmodeTypeFullscreen = "fullscreen";
const std::string kViewmodeTypeWindowed = "windowed";
LOGGER(DEBUG) << "LoadStart";
}
+void WebApplication::OnLoadProgress(WebView* view, double persent) {
+ LOGGER(DEBUG) << "LoadProgress, progress ;"<<persent;
+ if (common::getProfile() == common::kPROFILE_MOBILE) {
+ if ((app_data_->setting_info() != NULL &&
+ app_data_->setting_info()->progressbar_presence()) ||
+ (app_data_->widget_info() != NULL &&
+ app_data_->widget_info()->view_modes() == kViewmodeTypeWindowed)) {
+ if (persent == 1.0) {
+ window_->SignalEmit(kEdjeHideProgressSignal, "");
+ } else {
+ window_->SignalEmit(kEdjeShowProgressSignal, "");
+ window_->UpdateProgress(persent);
+ }
+ }
+ }
+}
+
void WebApplication::OnLoadFinished(WebView* /*view*/) {
LOGGER(DEBUG) << "LoadFinished";
+ if (common::getProfile() == common::kPROFILE_MOBILE) {
+ if ((app_data_->setting_info() != NULL &&
+ app_data_->setting_info()->progressbar_presence()) ||
+ (app_data_->widget_info() != NULL &&
+ app_data_->widget_info()->view_modes() == kViewmodeTypeWindowed)) {
+ window_->SignalEmit(kEdjeHideProgressSignal, "");
+ }
+ }
splash_screen_->HideSplashScreen(SplashScreen::HideReason::LOADFINISHED);
}
virtual void OnHardwareKey(WebView* view, const std::string& keyname);
virtual void OnConsoleMessage(const std::string& msg, int level);
virtual void OnLoadStart(WebView* view);
+ virtual void OnLoadProgress(WebView* view, double persent);
virtual void OnLoadFinished(WebView* view);
virtual void OnRendered(WebView* view);
virtual void OnLanguageChanged();