Add setBackgroundColor method
This commit is contained in:
parent
4a6134f3f7
commit
e36d455d51
8 changed files with 31 additions and 14 deletions
|
@ -385,6 +385,10 @@ bool Window::IsKiosk() {
|
||||||
return window_->IsKiosk();
|
return window_->IsKiosk();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Window::SetBackgroundColor(const std::string& color_name) {
|
||||||
|
window_->SetBackgroundColor(color_name);
|
||||||
|
}
|
||||||
|
|
||||||
void Window::FocusOnWebView() {
|
void Window::FocusOnWebView() {
|
||||||
window_->FocusOnWebView();
|
window_->FocusOnWebView();
|
||||||
}
|
}
|
||||||
|
@ -564,6 +568,7 @@ void Window::BuildPrototype(v8::Isolate* isolate,
|
||||||
.SetMethod("setSkipTaskbar", &Window::SetSkipTaskbar)
|
.SetMethod("setSkipTaskbar", &Window::SetSkipTaskbar)
|
||||||
.SetMethod("setKiosk", &Window::SetKiosk)
|
.SetMethod("setKiosk", &Window::SetKiosk)
|
||||||
.SetMethod("isKiosk", &Window::IsKiosk)
|
.SetMethod("isKiosk", &Window::IsKiosk)
|
||||||
|
.SetMethod("setBackgroundColor", &Window::SetBackgroundColor)
|
||||||
.SetMethod("setRepresentedFilename", &Window::SetRepresentedFilename)
|
.SetMethod("setRepresentedFilename", &Window::SetRepresentedFilename)
|
||||||
.SetMethod("getRepresentedFilename", &Window::GetRepresentedFilename)
|
.SetMethod("getRepresentedFilename", &Window::GetRepresentedFilename)
|
||||||
.SetMethod("setDocumentEdited", &Window::SetDocumentEdited)
|
.SetMethod("setDocumentEdited", &Window::SetDocumentEdited)
|
||||||
|
|
|
@ -122,6 +122,7 @@ class Window : public mate::TrackableObject<Window>,
|
||||||
void SetSkipTaskbar(bool skip);
|
void SetSkipTaskbar(bool skip);
|
||||||
void SetKiosk(bool kiosk);
|
void SetKiosk(bool kiosk);
|
||||||
bool IsKiosk();
|
bool IsKiosk();
|
||||||
|
void SetBackgroundColor(const std::string& color_name);
|
||||||
void FocusOnWebView();
|
void FocusOnWebView();
|
||||||
void BlurWebView();
|
void BlurWebView();
|
||||||
bool IsWebViewFocused();
|
bool IsWebViewFocused();
|
||||||
|
|
|
@ -139,6 +139,10 @@ void NativeWindow::InitFromOptions(const mate::Dictionary& options) {
|
||||||
if (options.Get(switches::kKiosk, &kiosk) && kiosk) {
|
if (options.Get(switches::kKiosk, &kiosk) && kiosk) {
|
||||||
SetKiosk(kiosk);
|
SetKiosk(kiosk);
|
||||||
}
|
}
|
||||||
|
std::string color;
|
||||||
|
if (options.Get(switches::kBackgroundColor, &color)) {
|
||||||
|
SetBackgroundColor(color);
|
||||||
|
}
|
||||||
std::string title("Electron");
|
std::string title("Electron");
|
||||||
options.Get(switches::kTitle, &title);
|
options.Get(switches::kTitle, &title);
|
||||||
SetTitle(title);
|
SetTitle(title);
|
||||||
|
|
|
@ -134,6 +134,7 @@ class NativeWindow : public base::SupportsUserData,
|
||||||
virtual void SetSkipTaskbar(bool skip) = 0;
|
virtual void SetSkipTaskbar(bool skip) = 0;
|
||||||
virtual void SetKiosk(bool kiosk) = 0;
|
virtual void SetKiosk(bool kiosk) = 0;
|
||||||
virtual bool IsKiosk() = 0;
|
virtual bool IsKiosk() = 0;
|
||||||
|
virtual void SetBackgroundColor(const std::string& color_name) = 0;
|
||||||
virtual void SetRepresentedFilename(const std::string& filename);
|
virtual void SetRepresentedFilename(const std::string& filename);
|
||||||
virtual std::string GetRepresentedFilename();
|
virtual std::string GetRepresentedFilename();
|
||||||
virtual void SetDocumentEdited(bool edited);
|
virtual void SetDocumentEdited(bool edited);
|
||||||
|
|
|
@ -57,6 +57,7 @@ class NativeWindowMac : public NativeWindow {
|
||||||
void SetSkipTaskbar(bool skip) override;
|
void SetSkipTaskbar(bool skip) override;
|
||||||
void SetKiosk(bool kiosk) override;
|
void SetKiosk(bool kiosk) override;
|
||||||
bool IsKiosk() override;
|
bool IsKiosk() override;
|
||||||
|
void SetBackgroundColor(const std::string& color_name) override;
|
||||||
void SetRepresentedFilename(const std::string& filename) override;
|
void SetRepresentedFilename(const std::string& filename) override;
|
||||||
std::string GetRepresentedFilename() override;
|
std::string GetRepresentedFilename() override;
|
||||||
void SetDocumentEdited(bool edited) override;
|
void SetDocumentEdited(bool edited) override;
|
||||||
|
|
|
@ -635,6 +635,9 @@ bool NativeWindowMac::IsKiosk() {
|
||||||
return is_kiosk_;
|
return is_kiosk_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NativeWindowMac::SetBackgroundColor(const std::string& color_name) {
|
||||||
|
}
|
||||||
|
|
||||||
void NativeWindowMac::SetRepresentedFilename(const std::string& filename) {
|
void NativeWindowMac::SetRepresentedFilename(const std::string& filename) {
|
||||||
[window_ setRepresentedFilename:base::SysUTF8ToNSString(filename)];
|
[window_ setRepresentedFilename:base::SysUTF8ToNSString(filename)];
|
||||||
}
|
}
|
||||||
|
|
|
@ -230,23 +230,9 @@ NativeWindowViews::NativeWindowViews(
|
||||||
// Add web view.
|
// Add web view.
|
||||||
SetLayoutManager(new MenuLayout(this, kMenuBarHeight));
|
SetLayoutManager(new MenuLayout(this, kMenuBarHeight));
|
||||||
|
|
||||||
// web views' background color.
|
|
||||||
SkColor background_color = SK_ColorWHITE;
|
|
||||||
std::string color_name;
|
|
||||||
if (options.Get(switches::kBackgroundColor, &color_name))
|
|
||||||
background_color = ParseHexColor(color_name);
|
|
||||||
set_background(views::Background::CreateSolidBackground(background_color));
|
|
||||||
|
|
||||||
AddChildView(web_view_);
|
AddChildView(web_view_);
|
||||||
|
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
// Set the background color of native window.
|
|
||||||
HBRUSH brush = CreateSolidBrush(skia::SkColorToCOLORREF(background_color));
|
|
||||||
ULONG_PTR previous_brush = SetClassLongPtr(
|
|
||||||
GetAcceleratedWidget(), GCLP_HBRBACKGROUND, (LONG)brush);
|
|
||||||
if (previous_brush)
|
|
||||||
DeleteObject((HBRUSH)previous_brush);
|
|
||||||
|
|
||||||
// Save initial window state.
|
// Save initial window state.
|
||||||
if (fullscreen)
|
if (fullscreen)
|
||||||
last_window_state_ = ui::SHOW_STATE_FULLSCREEN;
|
last_window_state_ = ui::SHOW_STATE_FULLSCREEN;
|
||||||
|
@ -534,6 +520,21 @@ bool NativeWindowViews::IsKiosk() {
|
||||||
return IsFullscreen();
|
return IsFullscreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NativeWindowViews::SetBackgroundColor(const std::string& color_name) {
|
||||||
|
// web views' background color.
|
||||||
|
SkColor background_color = ParseHexColor(color_name);
|
||||||
|
set_background(views::Background::CreateSolidBackground(background_color));
|
||||||
|
|
||||||
|
#if defined(OS_WIN)
|
||||||
|
// Set the background color of native window.
|
||||||
|
HBRUSH brush = CreateSolidBrush(skia::SkColorToCOLORREF(background_color));
|
||||||
|
ULONG_PTR previous_brush = SetClassLongPtr(
|
||||||
|
GetAcceleratedWidget(), GCLP_HBRBACKGROUND, (LONG)brush);
|
||||||
|
if (previous_brush)
|
||||||
|
DeleteObject((HBRUSH)previous_brush);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void NativeWindowViews::SetMenu(ui::MenuModel* menu_model) {
|
void NativeWindowViews::SetMenu(ui::MenuModel* menu_model) {
|
||||||
if (menu_model == nullptr) {
|
if (menu_model == nullptr) {
|
||||||
// Remove accelerators
|
// Remove accelerators
|
||||||
|
|
|
@ -77,6 +77,7 @@ class NativeWindowViews : public NativeWindow,
|
||||||
void SetSkipTaskbar(bool skip) override;
|
void SetSkipTaskbar(bool skip) override;
|
||||||
void SetKiosk(bool kiosk) override;
|
void SetKiosk(bool kiosk) override;
|
||||||
bool IsKiosk() override;
|
bool IsKiosk() override;
|
||||||
|
void SetBackgroundColor(const std::string& color_name) override;
|
||||||
void SetMenu(ui::MenuModel* menu_model) override;
|
void SetMenu(ui::MenuModel* menu_model) override;
|
||||||
gfx::NativeWindow GetNativeWindow() override;
|
gfx::NativeWindow GetNativeWindow() override;
|
||||||
void SetOverlayIcon(const gfx::Image& overlay,
|
void SetOverlayIcon(const gfx::Image& overlay,
|
||||||
|
|
Loading…
Add table
Reference in a new issue