win: Add setThumbnailClip window API
This commit is contained in:
parent
ba887dbde7
commit
86218fe773
4 changed files with 28 additions and 0 deletions
|
@ -649,6 +649,12 @@ bool Window::IsWindowMessageHooked(UINT message) {
|
||||||
void Window::UnhookAllWindowMessages() {
|
void Window::UnhookAllWindowMessages() {
|
||||||
messages_callback_map_.clear();
|
messages_callback_map_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Window::SetThumbnailClip(const gfx::Rect& region) {
|
||||||
|
auto window = static_cast<NativeWindowViews*>(window_.get());
|
||||||
|
return window->taskbar_host().SetThumbnailClip(
|
||||||
|
window_->GetAcceleratedWidget(), region);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(TOOLKIT_VIEWS)
|
#if defined(TOOLKIT_VIEWS)
|
||||||
|
@ -836,6 +842,7 @@ void Window::BuildPrototype(v8::Isolate* isolate,
|
||||||
.SetMethod("isWindowMessageHooked", &Window::IsWindowMessageHooked)
|
.SetMethod("isWindowMessageHooked", &Window::IsWindowMessageHooked)
|
||||||
.SetMethod("unhookWindowMessage", &Window::UnhookWindowMessage)
|
.SetMethod("unhookWindowMessage", &Window::UnhookWindowMessage)
|
||||||
.SetMethod("unhookAllWindowMessages", &Window::UnhookAllWindowMessages)
|
.SetMethod("unhookAllWindowMessages", &Window::UnhookAllWindowMessages)
|
||||||
|
.SetMethod("setThumbnailClip", &Window::SetThumbnailClip)
|
||||||
#endif
|
#endif
|
||||||
#if defined(TOOLKIT_VIEWS)
|
#if defined(TOOLKIT_VIEWS)
|
||||||
.SetMethod("setIcon", &Window::SetIcon)
|
.SetMethod("setIcon", &Window::SetIcon)
|
||||||
|
|
|
@ -179,6 +179,7 @@ class Window : public mate::TrackableObject<Window>,
|
||||||
bool IsWindowMessageHooked(UINT message);
|
bool IsWindowMessageHooked(UINT message);
|
||||||
void UnhookWindowMessage(UINT message);
|
void UnhookWindowMessage(UINT message);
|
||||||
void UnhookAllWindowMessages();
|
void UnhookAllWindowMessages();
|
||||||
|
bool SetThumbnailClip(const gfx::Rect& window_region);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(TOOLKIT_VIEWS)
|
#if defined(TOOLKIT_VIEWS)
|
||||||
|
|
|
@ -142,6 +142,22 @@ bool TaskbarHost::SetOverlayIcon(
|
||||||
window, icon.get(), base::UTF8ToUTF16(text).c_str()));
|
window, icon.get(), base::UTF8ToUTF16(text).c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TaskbarHost::SetThumbnailClip(HWND window, const gfx::Rect& region) {
|
||||||
|
if (!InitializeTaskbar())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (region.IsEmpty()) {
|
||||||
|
return SUCCEEDED(taskbar_->SetThumbnailClip(window, NULL));
|
||||||
|
} else {
|
||||||
|
RECT rect;
|
||||||
|
rect.left = region.x();
|
||||||
|
rect.right = region.right();
|
||||||
|
rect.top = region.y();
|
||||||
|
rect.bottom = region.bottom();
|
||||||
|
return SUCCEEDED(taskbar_->SetThumbnailClip(window, &rect));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool TaskbarHost::HandleThumbarButtonEvent(int button_id) {
|
bool TaskbarHost::HandleThumbarButtonEvent(int button_id) {
|
||||||
if (ContainsKey(callback_map_, button_id)) {
|
if (ContainsKey(callback_map_, button_id)) {
|
||||||
auto callback = callback_map_[button_id];
|
auto callback = callback_map_[button_id];
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
|
|
||||||
#include "base/callback.h"
|
#include "base/callback.h"
|
||||||
#include "base/win/scoped_comptr.h"
|
#include "base/win/scoped_comptr.h"
|
||||||
|
#include "ui/gfx/geometry/rect.h"
|
||||||
#include "ui/gfx/image/image.h"
|
#include "ui/gfx/image/image.h"
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
@ -40,6 +41,9 @@ class TaskbarHost {
|
||||||
bool SetOverlayIcon(
|
bool SetOverlayIcon(
|
||||||
HWND window, const gfx::Image& overlay, const std::string& text);
|
HWND window, const gfx::Image& overlay, const std::string& text);
|
||||||
|
|
||||||
|
// Set the region of the window to show as a thumbnail in taskbar.
|
||||||
|
bool TaskbarHost::SetThumbnailClip(HWND window, const gfx::Rect& region);
|
||||||
|
|
||||||
// Called by the window that there is a button in thumbar clicked.
|
// Called by the window that there is a button in thumbar clicked.
|
||||||
bool HandleThumbarButtonEvent(int button_id);
|
bool HandleThumbarButtonEvent(int button_id);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue