Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
8e517b5c
Commit
8e517b5c
authored
Oct 11, 1998
by
Eric Kohl
Committed by
Alexandre Julliard
Oct 11, 1998
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added DrawCaption[16/32] and DrawCaptionTemp[16/32A/32W].
Fixed handling of WS_EX_TOOLWINDOW.
parent
98dfbe15
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
203 additions
and
16 deletions
+203
-16
user.spec
if1632/user.spec
+2
-2
windows.h
include/windows.h
+14
-0
user32.spec
relay32/user32.spec
+2
-2
nonclient.c
windows/nonclient.c
+185
-12
No files found.
if1632/user.spec
View file @
8e517b5c
...
...
@@ -498,10 +498,10 @@ file user.exe
654 stub UnloadKeyboardLayout
655 stub PostPostedMessages
656 pascal16 DrawFrameControl(word ptr word word) DrawFrameControl16
657
stub DrawCaptionTemp
657
pascal16 DrawCaptionTemp(word word ptr word word ptr word) DrawCaptionTemp16
658 stub DispatchInput
659 pascal16 DrawEdge(word ptr word word) DrawEdge16
660
stub DrawCaption
660
pascal16 DrawCaption(word word ptr word) DrawCaption16
661 stub SetSysColorsTemp
662 stub DrawMenubarTemp
663 stub GetMenuDefaultItem
...
...
include/windows.h
View file @
8e517b5c
...
...
@@ -3565,6 +3565,13 @@ DECL_WINELIB_TYPE_AW(LPMENUITEMINFO)
#define DT_NOPREFIX 2048
#define DT_INTERNAL 4096
/* DrawCaption()/DrawCaptionTemp() flags */
#define DC_ACTIVE 0x0001
#define DC_SMALLCAP 0x0002
#define DC_ICON 0x0004
#define DC_TEXT 0x0008
#define DC_INBUTTON 0x0010
/* DrawEdge() flags */
#define BDR_RAISEDOUTER 0x0001
#define BDR_SUNKENOUTER 0x0002
...
...
@@ -7450,6 +7457,13 @@ BOOL32 WINAPI DragDetect32(HWND32,POINT32);
DWORD
WINAPI
DragObject16
(
HWND16
,
HWND16
,
UINT16
,
HANDLE16
,
WORD
,
HCURSOR16
);
DWORD
WINAPI
DragObject32
(
HWND32
,
HWND32
,
UINT32
,
DWORD
,
HCURSOR32
);
#define DragObject WINELIB_NAME(DragObject)
BOOL16
WINAPI
DrawCaption16
(
HWND16
,
HDC16
,
const
RECT16
*
,
UINT16
);
BOOL32
WINAPI
DrawCaption32
(
HWND32
,
HDC32
,
const
RECT32
*
,
UINT32
);
#define DrawCaption WINELIB_NAME(DrawCaption)
BOOL16
WINAPI
DrawCaptionTemp16
(
HWND16
,
HDC16
,
const
RECT16
*
,
HFONT16
,
HICON16
,
LPCSTR
,
UINT16
);
BOOL32
WINAPI
DrawCaptionTemp32A
(
HWND32
,
HDC32
,
const
RECT32
*
,
HFONT32
,
HICON32
,
LPCSTR
,
UINT32
);
BOOL32
WINAPI
DrawCaptionTemp32W
(
HWND32
,
HDC32
,
const
RECT32
*
,
HFONT32
,
HICON32
,
LPCWSTR
,
UINT32
);
#define DrawCaptionTemp WINELIB_NAME_AW(DrawCaptionTemp)
BOOL16
WINAPI
DrawEdge16
(
HDC16
,
LPRECT16
,
UINT16
,
UINT16
);
BOOL32
WINAPI
DrawEdge32
(
HDC32
,
LPRECT32
,
UINT32
,
UINT32
);
#define DrawEdge WINELIB_NAME(DrawEdge)
...
...
relay32/user32.spec
View file @
8e517b5c
...
...
@@ -154,7 +154,7 @@ type win32
151 stdcall DragDetect(long long long) DragDetect32
152 stub DragObject
153 stdcall DrawAnimatedRects(long long ptr ptr) DrawAnimatedRects32
154 st
ub DrawCaption
154 st
dcall DrawCaption(long long ptr long) DrawCaption32
155 stdcall DrawEdge(long ptr long long) DrawEdge32
156 stdcall DrawFocusRect(long ptr) DrawFocusRect32
157 stub DrawFrame
...
...
@@ -603,7 +603,7 @@ type win32
599 stdcall DrawCaptionTempA(long long ptr long long str long) DrawCaptionTemp32A
600 stub RegisterNetworkCapabilities
601 stub WNDPROC_CALLBACK
602 st
ub DrawCaptionTemp
W
602 st
dcall DrawCaptionTempW(long long ptr long long wstr long) DrawCaptionTemp32
W
603 stub IsHungAppWindow
604 stub ChangeDisplaySettingsA
605 stub ChangeDisplaySettingsW
...
...
windows/nonclient.c
View file @
8e517b5c
...
...
@@ -24,7 +24,7 @@
#include "tweak.h"
#include "debug.h"
#include "options.h"
#include "cache.h"
static
HBITMAP16
hbitmapClose
=
0
;
static
HBITMAP16
hbitmapCloseD
=
0
;
...
...
@@ -217,21 +217,187 @@ NC_AdjustRectInner95 (LPRECT16 rect, DWORD style, DWORD exStyle)
/***********************************************************************
* DrawCaptionTempA [USER32.599]
* DrawCaption16 [USER.660] Draws a caption bar
*
* PARAMS
* hwnd [I]
* hdc [I]
* lpRect [I]
* uFlags [I]
*
*/
BOOL16
WINAPI
DrawCaption16
(
HWND16
hwnd
,
HDC16
hdc
,
const
RECT16
*
lpRect
,
UINT16
uFlags
)
{
FIXME
(
nonclient
,
" stub!
\n
"
);
// return DrawCaptionTemp32A (hwnd, hdc, lpRect, 0, 0, NULL, uFlags & 0x1F);
return
0
;
}
/***********************************************************************
* DrawCaption32 [USER32.154] Draws a caption bar
*
* PARAMS
* hwnd [I]
* hdc [I]
* lpRect [I]
* uFlags [I]
*
*/
BOOL32
WINAPI
DrawCaption32
(
HWND32
hwnd
,
HDC32
hdc
,
const
RECT32
*
lpRect
,
UINT32
uFlags
)
{
return
DrawCaptionTemp32A
(
hwnd
,
hdc
,
lpRect
,
0
,
0
,
NULL
,
uFlags
&
0x1F
);
}
/***********************************************************************
* DrawCaptionTemp16 [USER.657]
*
*/
DWORD
WINAPI
DrawCaptionTemp32A
(
HWND32
hwnd
,
HDC32
hdc
,
LPRECT32
rect
,
HFONT32
hfont
,
DWORD
x1
,
LPCSTR
str
,
DWORD
x2
)
BOOL16
WINAPI
DrawCaptionTemp16
(
HWND16
hwnd
,
HDC16
hdc
,
const
RECT16
*
rect
,
HFONT16
hFont
,
HICON16
hIcon
,
LPCSTR
str
,
UINT16
uFlags
)
{
FIXME
(
nonclient
,
"(%08x,%08x,%p,%08x,%08x,
\"
%s
\"
,%08x): stub
\n
"
,
hwnd
,
hdc
,
rect
,
hfont
,
x1
,
str
,
x2
);
FIXME
(
nonclient
,
" stub!
\n
"
);
// return DrawCaptionTemp32A (hwnd, hdc, lpRect, 0, 0, NULL, uFlags & 0x1F);
return
0
;
}
/***********************************************************************
* DrawCaptionTemp32A [USER32.599]
*
*/
BOOL32
WINAPI
DrawCaptionTemp32A
(
HWND32
hwnd
,
HDC32
hdc
,
const
RECT32
*
rect
,
HFONT32
hFont
,
HICON32
hIcon
,
LPCSTR
str
,
UINT32
uFlags
)
{
RECT32
rc
=
*
rect
;
TRACE
(
nonclient
,
"(%08x,%08x,%p,%08x,%08x,
\"
%s
\"
,%08x)
\n
"
,
hwnd
,
hdc
,
rect
,
hFont
,
hIcon
,
str
,
uFlags
);
/* drawing background */
if
(
uFlags
&
DC_INBUTTON
)
{
FillRect32
(
hdc
,
&
rc
,
GetSysColorBrush32
(
COLOR_3DFACE
));
if
(
uFlags
&
DC_ACTIVE
)
{
HBRUSH32
hbr
=
SelectObject32
(
hdc
,
CACHE_GetPattern55AABrush
());
PatBlt32
(
hdc
,
rc
.
left
,
rc
.
top
,
rc
.
right
-
rc
.
left
,
rc
.
bottom
-
rc
.
top
,
0xFA0089
);
SelectObject32
(
hdc
,
hbr
);
}
}
else
{
FillRect32
(
hdc
,
&
rc
,
GetSysColorBrush32
((
uFlags
&
DC_ACTIVE
)
?
COLOR_ACTIVECAPTION
:
COLOR_INACTIVECAPTION
));
}
/* drawing icon */
if
((
uFlags
&
DC_ICON
)
&&
!
(
uFlags
&
DC_SMALLCAP
))
{
POINT32
pt
;
pt
.
x
=
rc
.
left
+
2
;
pt
.
y
=
(
rc
.
bottom
+
rc
.
top
-
sysMetrics
[
SM_CYSMICON
])
/
2
;
if
(
hIcon
)
{
DrawIconEx32
(
hdc
,
pt
.
x
,
pt
.
y
,
hIcon
,
sysMetrics
[
SM_CXSMICON
],
sysMetrics
[
SM_CYSMICON
],
0
,
0
,
DI_NORMAL
);
}
else
{
WND
*
wndPtr
=
WIN_FindWndPtr
(
hwnd
);
HICON32
hAppIcon
=
0
;
if
(
wndPtr
->
class
->
hIconSm
)
hAppIcon
=
wndPtr
->
class
->
hIconSm
;
else
if
(
wndPtr
->
class
->
hIcon
)
hAppIcon
=
wndPtr
->
class
->
hIcon
;
DrawIconEx32
(
hdc
,
pt
.
x
,
pt
.
y
,
hAppIcon
,
sysMetrics
[
SM_CXSMICON
],
sysMetrics
[
SM_CYSMICON
],
0
,
0
,
DI_NORMAL
);
}
rc
.
left
+=
(
rc
.
bottom
-
rc
.
top
);
}
/* drawing text */
if
(
uFlags
&
DC_TEXT
)
{
HFONT32
hOldFont
;
if
(
uFlags
&
DC_INBUTTON
)
SetTextColor32
(
hdc
,
GetSysColor32
(
COLOR_BTNTEXT
));
else
if
(
uFlags
&
DC_ACTIVE
)
SetTextColor32
(
hdc
,
GetSysColor32
(
COLOR_CAPTIONTEXT
));
else
SetTextColor32
(
hdc
,
GetSysColor32
(
COLOR_INACTIVECAPTIONTEXT
));
SetBkMode32
(
hdc
,
TRANSPARENT
);
if
(
hFont
)
hOldFont
=
SelectObject32
(
hdc
,
hFont
);
else
{
NONCLIENTMETRICS32A
nclm
;
HFONT32
hNewFont
;
nclm
.
cbSize
=
sizeof
(
NONCLIENTMETRICS32A
);
SystemParametersInfo32A
(
SPI_GETNONCLIENTMETRICS
,
0
,
&
nclm
,
0
);
hNewFont
=
CreateFontIndirect32A
((
uFlags
&
DC_SMALLCAP
)
?
&
nclm
.
lfSmCaptionFont
:
&
nclm
.
lfCaptionFont
);
hOldFont
=
SelectObject32
(
hdc
,
hNewFont
);
}
if
(
str
)
DrawText32A
(
hdc
,
str
,
-
1
,
&
rc
,
DT_SINGLELINE
|
DT_VCENTER
|
DT_NOPREFIX
|
DT_LEFT
);
else
{
CHAR
szText
[
128
];
INT32
nLen
;
nLen
=
GetWindowText32A
(
hwnd
,
szText
,
128
);
DrawText32A
(
hdc
,
szText
,
nLen
,
&
rc
,
DT_SINGLELINE
|
DT_VCENTER
|
DT_NOPREFIX
|
DT_LEFT
);
}
if
(
hFont
)
SelectObject32
(
hdc
,
hOldFont
);
else
DeleteObject32
(
SelectObject32
(
hdc
,
hOldFont
));
}
/* drawing focus ??? */
if
(
uFlags
&
0x2000
)
FIXME
(
nonclient
,
"undocumented flag (0x2000)!
\n
"
);
return
0
;
}
/***********************************************************************
* DrawCaptionTemp32W [USER32.602]
*
*/
BOOL32
WINAPI
DrawCaptionTemp32W
(
HWND32
hwnd
,
HDC32
hdc
,
const
RECT32
*
rect
,
HFONT32
hFont
,
HICON32
hIcon
,
LPCWSTR
str
,
UINT32
uFlags
)
{
LPSTR
p
=
HEAP_strdupWtoA
(
GetProcessHeap
(),
0
,
str
);
BOOL32
res
=
DrawCaptionTemp32A
(
hwnd
,
hdc
,
rect
,
hFont
,
hIcon
,
p
,
uFlags
);
HeapFree
(
GetProcessHeap
(),
0
,
p
);
return
res
;
}
/***********************************************************************
* AdjustWindowRect16 (USER.102)
*/
BOOL16
WINAPI
AdjustWindowRect16
(
LPRECT16
rect
,
DWORD
style
,
BOOL16
menu
)
...
...
@@ -1252,10 +1418,11 @@ static void NC_DrawCaption( HDC32 hdc, RECT32 *rect, HWND32 hwnd,
static
void
NC_DrawCaption95
(
HDC32
hdc
,
RECT32
*
rect
,
RECT32
*
rect
,
HWND32
hwnd
,
DWORD
style
,
BOOL32
active
)
DWORD
exStyle
,
BOOL32
active
)
{
RECT32
r
=
*
rect
;
WND
*
wndPtr
=
WIN_FindWndPtr
(
hwnd
);
...
...
@@ -1282,9 +1449,11 @@ static void NC_DrawCaption95(
hbitmapRestoreD
=
LoadBitmap16
(
0
,
MAKEINTRESOURCE16
(
OBM_RESTORED
)
);
}
if
(
style
&
WS_SYSMENU
)
{
if
(
(
style
&
WS_SYSMENU
)
&&
!
(
exStyle
&
WS_EX_TOOLWINDOW
)
)
{
if
(
NC_DrawSysButton95
(
hwnd
,
hdc
,
FALSE
))
r
.
left
+=
sysMetrics
[
SM_CYCAPTION
]
-
1
;
}
if
(
style
&
WS_SYSMENU
)
{
NC_DrawCloseButton95
(
hwnd
,
hdc
,
FALSE
);
r
.
right
-=
sysMetrics
[
SM_CYCAPTION
]
-
1
;
}
...
...
@@ -1302,7 +1471,10 @@ static void NC_DrawCaption95(
HFONT32
hFont
,
hOldFont
;
nclm
.
cbSize
=
sizeof
(
NONCLIENTMETRICS32A
);
SystemParametersInfo32A
(
SPI_GETNONCLIENTMETRICS
,
0
,
&
nclm
,
0
);
hFont
=
CreateFontIndirect32A
(
&
nclm
.
lfCaptionFont
);
if
(
exStyle
&
WS_EX_TOOLWINDOW
)
hFont
=
CreateFontIndirect32A
(
&
nclm
.
lfSmCaptionFont
);
else
hFont
=
CreateFontIndirect32A
(
&
nclm
.
lfCaptionFont
);
hOldFont
=
SelectObject32
(
hdc
,
hFont
);
if
(
active
)
SetTextColor32
(
hdc
,
GetSysColor32
(
COLOR_CAPTIONTEXT
)
);
else
SetTextColor32
(
hdc
,
GetSysColor32
(
COLOR_INACTIVECAPTIONTEXT
)
);
...
...
@@ -1488,7 +1660,8 @@ void NC_DoNCPaint95(
r
.
bottom
=
rect
.
top
+
sysMetrics
[
SM_CYCAPTION
];
rect
.
top
+=
sysMetrics
[
SM_CYCAPTION
];
}
NC_DrawCaption95
(
hdc
,
&
r
,
hwnd
,
wndPtr
->
dwStyle
,
active
);
NC_DrawCaption95
(
hdc
,
&
r
,
hwnd
,
wndPtr
->
dwStyle
,
wndPtr
->
dwExStyle
,
active
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment