mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-17 11:29:27 +02:00
- draw radio button and checkbox through ThemeServices for win32 (no XP)
git-svn-id: trunk@11252 -
This commit is contained in:
parent
2b74c55f99
commit
060ce0c803
@ -1142,7 +1142,7 @@ var
|
||||
Flags: dword;
|
||||
Begin
|
||||
// flat button border cannot be drawn by DrawFrameControl, draw ourselves
|
||||
if (UType = DFC_BUTTON) or ((UState and DFCS_FLAT) <> 0) then
|
||||
if (UType = DFC_BUTTON) and ((UState and DFCS_FLAT) <> 0) then
|
||||
begin
|
||||
if (UState and DFCS_PUSHED) <> 0 then
|
||||
Flags := BDR_SUNKENOUTER
|
||||
|
@ -249,12 +249,13 @@ const
|
||||
DFCS_SCROLLSIZEGRIP = 8;
|
||||
DFCS_SCROLLUP = 0;
|
||||
|
||||
DFCS_ADJUSTRECT = 8192;
|
||||
DFCS_CHECKED = 1024;
|
||||
DFCS_FLAT = 16384;
|
||||
DFCS_INACTIVE = 256;
|
||||
DFCS_MONO = 32768;
|
||||
DFCS_PUSHED = 512;
|
||||
DFCS_CHECKED = 1024;
|
||||
DFCS_HOT = 4096;
|
||||
DFCS_ADJUSTRECT = 8192;
|
||||
DFCS_FLAT = 16384;
|
||||
DFCS_MONO = 32768;
|
||||
|
||||
HTERROR = -2;
|
||||
HTTRANSPARENT = -1;
|
||||
|
@ -1773,8 +1773,6 @@ begin
|
||||
ARect := R; // in order to pass by reference
|
||||
if Details.Element in [teButton, teToolBar, teHeader] then
|
||||
begin
|
||||
ADrawFlags := DFCS_BUTTONPUSH;
|
||||
|
||||
if Details.Element = teToolBar then
|
||||
begin
|
||||
//ADrawFlags := ADrawFlags or DFCS_FLAT;
|
||||
@ -1790,12 +1788,31 @@ begin
|
||||
end
|
||||
else
|
||||
begin
|
||||
ADrawFlags := DFCS_BUTTONPUSH;
|
||||
if Details.Element = teButton then
|
||||
begin
|
||||
case Details.Part of
|
||||
BP_RADIOBUTTON:
|
||||
begin
|
||||
ADrawFlags := DFCS_BUTTONRADIO;
|
||||
if Details.State >= RBS_CHECKEDNORMAL then
|
||||
ADrawFlags := ADrawFlags or DFCS_CHECKED;
|
||||
end;
|
||||
BP_CHECKBOX:
|
||||
begin
|
||||
ADrawFlags := DFCS_BUTTONCHECK;
|
||||
if Details.State >= CBS_CHECKEDNORMAL then
|
||||
ADrawFlags := ADrawFlags or DFCS_CHECKED;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if IsDisabled(Details) then
|
||||
ADrawFlags := ADrawFlags or DFCS_INACTIVE else
|
||||
if IsPushed(Details) then
|
||||
ADrawFlags := ADrawFlags or DFCS_PUSHED else
|
||||
if IsHot(Details) then
|
||||
ADrawFlags := ADrawFlags or DFCS_CHECKED;
|
||||
ADrawFlags := ADrawFlags or DFCS_HOT;
|
||||
|
||||
WidgetSet.DrawFrameControl(DC, ARect, DFC_BUTTON, ADrawFlags);
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user