pidgin/pidgin
Clone
Summary
Browse
Changes
Graph
Only run tests that require libidn when we have libidn available
release-2.x.y
2021-09-14, Gary Kramlich
581ae0eecd0d
Only run tests that require libidn when we have libidn available
This should eliminate the need for https://gitweb.gentoo.org/repo/gentoo.git/tree/net-im/pidgin/files/pidgin-2.13.0-disable-one-jid-test.patch
Testing Done:
Compiled with and with out `--disable-idn`, also added a `#warning` during testing to verify if the code was being include properly.
Reviewed at https://reviews.imfreedom.org/r/922/
/* MinimizeToTray
*
* A couple of routines to show how to make it produce a custom caption
* animation to make it look like we are minimizing to and maximizing
* from the system tray
*
* These routines are public domain, but it would be nice if you dropped
* me a line if you use them!
*
* 1.0 29.06.2000 Initial version
* 1.1 01.07.2000 The window retains it's place in the Z-order of windows
* when minimized/hidden. This means that when restored/shown, it doesn't
* always appear as the foreground window unless we call SetForegroundWindow
*
* Copyright 2000 Matthew Ellis <m.t.ellis@bigfoot.com>
*/
#include
<windows.h>
#include
"MinimizeToTray.h"
#define DEFAULT_RECT_WIDTH 150
#define DEFAULT_RECT_HEIGHT 30
static
void
GetTrayWndRect
(
LPRECT
lpTrayRect
)
{
APPBARDATA
appBarData
;
HWND
hShellTrayWnd
=
FindWindowEx
(
NULL
,
NULL
,
TEXT
(
"Shell_TrayWnd"
),
NULL
);
if
(
hShellTrayWnd
)
{
HWND
hTrayNotifyWnd
=
FindWindowEx
(
hShellTrayWnd
,
NULL
,
TEXT
(
"TrayNotifyWnd"
),
NULL
);
if
(
hTrayNotifyWnd
)
{
GetWindowRect
(
hTrayNotifyWnd
,
lpTrayRect
);
return
;
}
}
appBarData
.
cbSize
=
sizeof
(
appBarData
);
if
(
SHAppBarMessage
(
ABM_GETTASKBARPOS
,
&
appBarData
))
{
switch
(
appBarData
.
uEdge
)
{
case
ABE_LEFT
:
case
ABE_RIGHT
:
lpTrayRect
->
top
=
appBarData
.
rc
.
bottom
-
100
;
lpTrayRect
->
bottom
=
appBarData
.
rc
.
bottom
-
16
;
lpTrayRect
->
left
=
appBarData
.
rc
.
left
;
lpTrayRect
->
right
=
appBarData
.
rc
.
right
;
break
;
case
ABE_TOP
:
case
ABE_BOTTOM
:
lpTrayRect
->
top
=
appBarData
.
rc
.
top
;
lpTrayRect
->
bottom
=
appBarData
.
rc
.
bottom
;
lpTrayRect
->
left
=
appBarData
.
rc
.
right
-
100
;
lpTrayRect
->
right
=
appBarData
.
rc
.
right
-
16
;
break
;
}
return
;
}
hShellTrayWnd
=
FindWindowEx
(
NULL
,
NULL
,
TEXT
(
"Shell_TrayWnd"
),
NULL
);
if
(
hShellTrayWnd
)
{
GetWindowRect
(
hShellTrayWnd
,
lpTrayRect
);
if
(
lpTrayRect
->
right
-
lpTrayRect
->
left
>
DEFAULT_RECT_WIDTH
)
lpTrayRect
->
left
=
lpTrayRect
->
right
-
DEFAULT_RECT_WIDTH
;
if
(
lpTrayRect
->
bottom
-
lpTrayRect
->
top
>
DEFAULT_RECT_HEIGHT
)
lpTrayRect
->
top
=
lpTrayRect
->
bottom
-
DEFAULT_RECT_HEIGHT
;
return
;
}
SystemParametersInfo
(
SPI_GETWORKAREA
,
0
,
lpTrayRect
,
0
);
lpTrayRect
->
left
=
lpTrayRect
->
right
-
DEFAULT_RECT_WIDTH
;
lpTrayRect
->
top
=
lpTrayRect
->
bottom
-
DEFAULT_RECT_HEIGHT
;
}
static
BOOL
GetDoAnimateMinimize
(
void
)
{
ANIMATIONINFO
ai
;
ai
.
cbSize
=
sizeof
(
ai
);
SystemParametersInfo
(
SPI_GETANIMATION
,
sizeof
(
ai
),
&
ai
,
0
);
return
ai
.
iMinAnimate
?
TRUE
:
FALSE
;
}
void
MinimizeWndToTray
(
HWND
hWnd
)
{
if
(
!
IsWindowVisible
(
hWnd
))
return
;
if
(
GetDoAnimateMinimize
())
{
RECT
rcFrom
,
rcTo
;
GetWindowRect
(
hWnd
,
&
rcFrom
);
GetTrayWndRect
(
&
rcTo
);
DrawAnimatedRects
(
hWnd
,
IDANI_CAPTION
,
&
rcFrom
,
&
rcTo
);
}
ShowWindow
(
hWnd
,
SW_HIDE
);
}
void
RestoreWndFromTray
(
HWND
hWnd
)
{
if
(
IsWindowVisible
(
hWnd
))
return
;
if
(
GetDoAnimateMinimize
())
{
RECT
rcFrom
,
rcTo
;
GetTrayWndRect
(
&
rcFrom
);
GetWindowRect
(
hWnd
,
&
rcTo
);
DrawAnimatedRects
(
hWnd
,
IDANI_CAPTION
,
&
rcFrom
,
&
rcTo
);
}
ShowWindow
(
hWnd
,
SW_SHOW
);
SetActiveWindow
(
hWnd
);
SetForegroundWindow
(
hWnd
);
}