mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
This commit is contained in:
parent
46c2f0d252
commit
3a8d51e224
5 changed files with 49 additions and 5 deletions
|
|
@ -1087,6 +1087,18 @@ public:
|
||||||
repainter->performAnyPendingRepaintsNow();
|
repainter->performAnyPendingRepaintsNow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setIcon (const Image& newIcon)
|
||||||
|
{
|
||||||
|
/*XWMHints* wmHints = XAllocWMHints();
|
||||||
|
wmHints->flags = IconPixmapHint | IconMaskHint;
|
||||||
|
wmHints->icon_pixmap =
|
||||||
|
wmHints->icon_mask =
|
||||||
|
|
||||||
|
XSetWMHints (display, windowH, wmHints);
|
||||||
|
XFree (wmHints);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
void handleWindowMessage (XEvent* event)
|
void handleWindowMessage (XEvent* event)
|
||||||
{
|
{
|
||||||
|
|
@ -2557,8 +2569,8 @@ void* juce_createMouseCursorFromImage (const Image& image, int hotspotX, int hot
|
||||||
}
|
}
|
||||||
|
|
||||||
const int stride = (cursorW + 7) >> 3;
|
const int stride = (cursorW + 7) >> 3;
|
||||||
unsigned char* const maskPlane = (unsigned char*) juce_calloc (stride * cursorH);
|
uint8* const maskPlane = (uint8*) juce_calloc (stride * cursorH);
|
||||||
unsigned char* const sourcePlane = (unsigned char*) juce_calloc (stride * cursorH);
|
uint8* const sourcePlane = (uint8*) juce_calloc (stride * cursorH);
|
||||||
|
|
||||||
bool msbfirst = (BitmapBitOrder (display) == MSBFirst);
|
bool msbfirst = (BitmapBitOrder (display) == MSBFirst);
|
||||||
|
|
||||||
|
|
@ -2566,7 +2578,7 @@ void* juce_createMouseCursorFromImage (const Image& image, int hotspotX, int hot
|
||||||
{
|
{
|
||||||
for (int x = cursorW; --x >= 0;)
|
for (int x = cursorW; --x >= 0;)
|
||||||
{
|
{
|
||||||
const unsigned char mask = (unsigned char) (1 << (msbfirst ? (7 - (x & 7)) : (x & 7)));
|
const uint8 mask = (uint8) (1 << (msbfirst ? (7 - (x & 7)) : (x & 7)));
|
||||||
const int offset = y * stride + (x >> 3);
|
const int offset = y * stride + (x >> 3);
|
||||||
|
|
||||||
const Colour c (im.getPixelAt (x, y));
|
const Colour c (im.getPixelAt (x, y));
|
||||||
|
|
@ -2903,7 +2915,7 @@ void SystemClipboard::copyTextToClipboard (const String& clipText)
|
||||||
|
|
||||||
XRotateWindowProperties (display, root, cutBuffers, 8, 1);
|
XRotateWindowProperties (display, root, cutBuffers, 8, 1);
|
||||||
XChangeProperty (display, root, cutBuffers[0],
|
XChangeProperty (display, root, cutBuffers[0],
|
||||||
XA_STRING, 8, PropModeReplace, (const unsigned char*)((const char*)clipText),
|
XA_STRING, 8, PropModeReplace, (const unsigned char*) (const char*) clipText,
|
||||||
clipText.length());
|
clipText.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -684,6 +684,11 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setIcon (const Image& /*newIcon*/)
|
||||||
|
{
|
||||||
|
// to do..
|
||||||
|
}
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
void viewFocusGain()
|
void viewFocusGain()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -517,7 +517,8 @@ public:
|
||||||
fullScreen (false),
|
fullScreen (false),
|
||||||
isDragging (false),
|
isDragging (false),
|
||||||
isMouseOver (false),
|
isMouseOver (false),
|
||||||
taskBarIcon (0)
|
taskBarIcon (0),
|
||||||
|
currentWindowIcon (0)
|
||||||
{
|
{
|
||||||
juce_initialiseUnicodeWindowFunctions();
|
juce_initialiseUnicodeWindowFunctions();
|
||||||
|
|
||||||
|
|
@ -551,6 +552,9 @@ public:
|
||||||
|
|
||||||
MessageManager::getInstance()
|
MessageManager::getInstance()
|
||||||
->callFunctionOnMessageThread (&destroyWindowCallback, (void*) hwnd);
|
->callFunctionOnMessageThread (&destroyWindowCallback, (void*) hwnd);
|
||||||
|
|
||||||
|
if (currentWindowIcon != 0)
|
||||||
|
DestroyIcon (currentWindowIcon);
|
||||||
}
|
}
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
|
|
@ -928,6 +932,7 @@ private:
|
||||||
DropShadower* shadower;
|
DropShadower* shadower;
|
||||||
bool fullScreen, isDragging, isMouseOver;
|
bool fullScreen, isDragging, isMouseOver;
|
||||||
BorderSize windowBorder;
|
BorderSize windowBorder;
|
||||||
|
HICON currentWindowIcon;
|
||||||
NOTIFYICONDATA* taskBarIcon;
|
NOTIFYICONDATA* taskBarIcon;
|
||||||
friend class WindowClassHolder;
|
friend class WindowClassHolder;
|
||||||
|
|
||||||
|
|
@ -1179,6 +1184,23 @@ private:
|
||||||
|
|
||||||
inline bool hasTitleBar() const throw() { return (styleFlags & windowHasTitleBar) != 0; }
|
inline bool hasTitleBar() const throw() { return (styleFlags & windowHasTitleBar) != 0; }
|
||||||
|
|
||||||
|
|
||||||
|
void setIcon (const Image& newIcon)
|
||||||
|
{
|
||||||
|
HICON hicon = createHICONFromImage (newIcon, TRUE, 0, 0);
|
||||||
|
|
||||||
|
if (hicon != 0)
|
||||||
|
{
|
||||||
|
SendMessage (hwnd, WM_SETICON, ICON_BIG, (LPARAM) hicon);
|
||||||
|
SendMessage (hwnd, WM_SETICON, ICON_SMALL, (LPARAM) hicon);
|
||||||
|
|
||||||
|
if (currentWindowIcon != 0)
|
||||||
|
DestroyIcon (currentWindowIcon);
|
||||||
|
|
||||||
|
currentWindowIcon = hicon;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
void handlePaintMessage()
|
void handlePaintMessage()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,7 @@ public:
|
||||||
bool setAlwaysOnTop (bool) { return true; }
|
bool setAlwaysOnTop (bool) { return true; }
|
||||||
void toFront (bool) {}
|
void toFront (bool) {}
|
||||||
void toBehind (ComponentPeer*) {}
|
void toBehind (ComponentPeer*) {}
|
||||||
|
void setIcon (const Image&) {}
|
||||||
|
|
||||||
bool isFocused() const
|
bool isFocused() const
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -174,6 +174,10 @@ public:
|
||||||
/** True if the window is currently full-screen. */
|
/** True if the window is currently full-screen. */
|
||||||
virtual bool isFullScreen() const = 0;
|
virtual bool isFullScreen() const = 0;
|
||||||
|
|
||||||
|
/** Attempts to change the icon associated with this window.
|
||||||
|
*/
|
||||||
|
virtual void setIcon (const Image& newIcon) = 0;
|
||||||
|
|
||||||
/** Sets a constrainer to use if the peer can resize itself.
|
/** Sets a constrainer to use if the peer can resize itself.
|
||||||
|
|
||||||
The constrainer won't be deleted by this object, so the caller must manage its lifetime.
|
The constrainer won't be deleted by this object, so the caller must manage its lifetime.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue