diff --git a/website/o3dv/css/core.css b/website/o3dv/css/core.css index d004bf0..d601a12 100644 --- a/website/o3dv/css/core.css +++ b/website/o3dv/css/core.css @@ -1,26 +1,26 @@ :root { - --ov_foreground_color: #000000; - --ov_background_color: #ffffff; - --ov_button_color: #3393bd; - --ov_button_hover_color: #146a8f; - --ov_button_text_color: #ffffff; - --ov_outline_button_color: #3393bd; - --ov_outline_button_hover_color: #c9e5f8; - --ov_outline_button_text_color: #3393bd; - --ov_icon_color: #263238; - --ov_hover_color: #c9e5f8; - --ov_light_icon_color: #838383; - --ov_logo_text_color: #15334a; - --ov_logo_border_color: #000000; - --ov_toolbar_background_color: #f5f5f5; - --ov_toolbar_selected_color: #e1e1e1; - --ov_toolbar_separator_color: #cccccc; - --ov_treeview_selected_color: #eeeeee; - --ov_dialog_foreground_color: #000000; - --ov_dialog_background_color: #ffffff; - --ov_border_color: #dddddd; - --ov_shadow: 0px 0px 10px #cccccc; + --ov_foreground_color: none; + --ov_background_color: none; + --ov_button_color: none; + --ov_button_hover_color: none; + --ov_button_text_color: none; + --ov_outline_button_color: none; + --ov_outline_button_hover_color: none; + --ov_outline_button_text_color: none; + --ov_icon_color: none; + --ov_hover_color: none; + --ov_light_icon_color: none; + --ov_logo_text_color: none; + --ov_logo_border_color: none; + --ov_toolbar_background_color: none; + --ov_toolbar_selected_color: none; + --ov_toolbar_separator_color: none; + --ov_treeview_selected_color: none; + --ov_dialog_foreground_color: none; + --ov_dialog_background_color: none; + --ov_border_color: none; + --ov_shadow: none; } @font-face diff --git a/website/o3dv/js/cookies.js b/website/o3dv/js/cookies.js index 3acdcb4..2775bb3 100644 --- a/website/o3dv/js/cookies.js +++ b/website/o3dv/js/cookies.js @@ -17,7 +17,7 @@ OV.CookieHandler = class document.cookie = key + '=' + value + '; expires=' + date.toUTCString () + ';'; } - GetStringVal (key) + GetStringVal (key, defVal) { let cookie = decodeURIComponent (document.cookie); let cookieParts = cookie.split (';'); @@ -27,12 +27,12 @@ OV.CookieHandler = class return currentCookie.substr (key.length + 1); } } - return null; + return defVal; } GetBoolVal (key, defVal) { - let stringVal = this.GetStringVal (key); + let stringVal = this.GetStringVal (key, null); if (stringVal === null) { return defVal; } @@ -46,7 +46,7 @@ OV.CookieHandler = class GetColorVal (key, defVal) { - let stringVal = this.GetStringVal (key); + let stringVal = this.GetStringVal (key, null); if (stringVal === null) { return defVal; } diff --git a/website/o3dv/js/modal.js b/website/o3dv/js/modal.js index bde72e8..08cec82 100644 --- a/website/o3dv/js/modal.js +++ b/website/o3dv/js/modal.js @@ -158,7 +158,6 @@ OV.ProgressDialog = class extends OV.Dialog contentDiv.addClass ('ov_progress'); $('').addClass ('ov_progress_img').appendTo (contentDiv); - console.log (contentDiv.html ()); this.textDiv = $('
').addClass ('ov_progress_text').appendTo (contentDiv); this.SetText (text); } diff --git a/website/o3dv/js/website.js b/website/o3dv/js/website.js index 49b0efa..e60b22b 100644 --- a/website/o3dv/js/website.js +++ b/website/o3dv/js/website.js @@ -4,18 +4,21 @@ OV.WebsiteSettings = class { this.backgroundColor = new OV.Color (255, 255, 255); this.defaultColor = new OV.Color (200, 200, 200); + this.themeName = 'light'; } LoadFromCookies (cookieHandler) { this.backgroundColor = cookieHandler.GetColorVal ('ov_background_color', new OV.Color (255, 255, 255)); this.defaultColor = cookieHandler.GetColorVal ('ov_default_color', new OV.Color (200, 200, 200)); + this.themeName = cookieHandler.GetStringVal ('ov_theme_name', 'light'); } SaveToCookies (cookieHandler) { cookieHandler.SetColorVal ('ov_background_color', this.backgroundColor); cookieHandler.SetColorVal ('ov_default_color', this.defaultColor); + cookieHandler.SetStringVal ('ov_theme_name', this.themeName); } }; @@ -46,8 +49,8 @@ OV.Website = class Load () { - this.themeHandler.SwitchTheme ('dark'); this.settings.LoadFromCookies (this.cookieHandler); + this.SwitchTheme (this.settings.themeName); this.InitViewer (); this.InitToolbar (); @@ -209,6 +212,27 @@ OV.Website = class }); } + OnHashChange () + { + if (this.hashHandler.HasHash ()) { + let urls = this.hashHandler.GetModelFilesFromHash (); + if (urls === null) { + return; + } + let importSettings = new OV.ImportSettings (); + importSettings.defaultColor = this.settings.defaultColor; + let defaultColor = this.hashHandler.GetDefaultColorFromHash (); + if (defaultColor !== null) { + importSettings.defaultColor = defaultColor; + } + this.eventHandler.HandleEvent ('model_load_started', { source : 'hash' }); + this.LoadModelFromUrlList (urls, importSettings); + } else { + this.ClearModel (); + this.parameters.introDiv.show (); + } + } + OpenFileBrowserDialog () { this.parameters.fileInput.trigger ('click'); @@ -276,25 +300,11 @@ OV.Website = class } } - OnHashChange () + SwitchTheme (newThemeName) { - if (this.hashHandler.HasHash ()) { - let urls = this.hashHandler.GetModelFilesFromHash (); - if (urls === null) { - return; - } - let importSettings = new OV.ImportSettings (); - importSettings.defaultColor = this.settings.defaultColor; - let defaultColor = this.hashHandler.GetDefaultColorFromHash (); - if (defaultColor !== null) { - importSettings.defaultColor = defaultColor; - } - this.eventHandler.HandleEvent ('model_load_started', { source : 'hash' }); - this.LoadModelFromUrlList (urls, importSettings); - } else { - this.ClearModel (); - this.parameters.introDiv.show (); - } + this.settings.themeName = newThemeName; + this.themeHandler.SwitchTheme (newThemeName); + this.settings.SaveToCookies (this.cookieHandler); } InitViewer () @@ -405,14 +415,14 @@ OV.Website = class }); // TODO: remove - let theme = 'dark'; AddButton (this.toolbar, this.eventHandler, 'share', 'Dark Mode', true, () => { - if (theme === 'dark') { + let theme = 'light'; + if (this.settings.themeName === 'dark') { theme = 'light'; } else { theme = 'dark'; } - this.themeHandler.SwitchTheme (theme); + this.SwitchTheme (theme); }); this.parameters.fileInput.on ('change', (ev) => {