mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 06:49:12 +02:00
lcl:
- add GetDefaultColor to TControl which asks Parent in case widgetset returns clDefault color for it; - return clDefault instead of clWindow for generic TControl win32, wince: use TControl.GetDefaultColor in all the places where we used TWSControlClass git-svn-id: trunk@28172 -
This commit is contained in:
parent
61ed016376
commit
9bd782a63e
@ -1287,6 +1287,7 @@ type
|
|||||||
WithThemeSpace: boolean = true); virtual;
|
WithThemeSpace: boolean = true); virtual;
|
||||||
function GetDefaultWidth: integer;
|
function GetDefaultWidth: integer;
|
||||||
function GetDefaultHeight: integer;
|
function GetDefaultHeight: integer;
|
||||||
|
function GetDefaultColor: TColor; virtual;
|
||||||
function GetSidePosition(Side: TAnchorKind): integer;
|
function GetSidePosition(Side: TAnchorKind): integer;
|
||||||
procedure CNPreferredSizeChanged;
|
procedure CNPreferredSizeChanged;
|
||||||
procedure InvalidatePreferredSize; virtual;
|
procedure InvalidatePreferredSize; virtual;
|
||||||
|
@ -905,6 +905,16 @@ begin
|
|||||||
Result := not ParentColor;
|
Result := not ParentColor;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TControl.GetDefaultColor: TColor;
|
||||||
|
begin
|
||||||
|
Result := TWSControlClass(WidgetSetClass).GetDefaultColor(Self);
|
||||||
|
if (Result = clDefault) then
|
||||||
|
if ParentColor and Assigned(Parent) then
|
||||||
|
Result := Parent.GetDefaultColor
|
||||||
|
else
|
||||||
|
Result := clWindow;
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
TControl.DoConstrainedResize
|
TControl.DoConstrainedResize
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
|
@ -45,7 +45,7 @@ end;
|
|||||||
function TControlCanvas.GetDefaultColor: TColor;
|
function TControlCanvas.GetDefaultColor: TColor;
|
||||||
begin
|
begin
|
||||||
if Assigned(FControl) then
|
if Assigned(FControl) then
|
||||||
Result := TWSControlClass(FControl.WidgetSetClass).GetDefaultColor(FControl)
|
Result := FControl.GetDefaultColor
|
||||||
else
|
else
|
||||||
Result := inherited GetDefaultColor;
|
Result := inherited GetDefaultColor;
|
||||||
end;
|
end;
|
||||||
|
@ -4622,7 +4622,7 @@ begin
|
|||||||
inherited SetColor(Value);
|
inherited SetColor(Value);
|
||||||
if BrushCreated then
|
if BrushCreated then
|
||||||
if Color = clDefault then
|
if Color = clDefault then
|
||||||
FBrush.Color := TWSWinControlClass(WidgetSetClass).GetDefaultColor(Self)
|
FBrush.Color := GetDefaultColor
|
||||||
else
|
else
|
||||||
FBrush.Color := Color;
|
FBrush.Color := Color;
|
||||||
if HandleAllocated and ([csLoading,csDestroying]*ComponentState=[]) then
|
if HandleAllocated and ([csLoading,csDestroying]*ComponentState=[]) then
|
||||||
@ -4823,7 +4823,7 @@ begin
|
|||||||
if BrushCreated then exit;
|
if BrushCreated then exit;
|
||||||
FBrush := TBrush.Create;
|
FBrush := TBrush.Create;
|
||||||
if Color = clDefault then
|
if Color = clDefault then
|
||||||
FBrush.Color := TWSWinControlClass(WidgetSetClass).GetDefaultColor(Self)
|
FBrush.Color := GetDefaultColor
|
||||||
else
|
else
|
||||||
FBrush.Color := Color;
|
FBrush.Color := Color;
|
||||||
end;
|
end;
|
||||||
|
@ -1360,7 +1360,7 @@ begin
|
|||||||
Windows.SetTextColor(WindowDC, Windows.COLORREF(ColorToRGB(ChildWinControl.Font.Color)));
|
Windows.SetTextColor(WindowDC, Windows.COLORREF(ColorToRGB(ChildWinControl.Font.Color)));
|
||||||
WindowColor := ChildWinControl.Brush.Color;
|
WindowColor := ChildWinControl.Brush.Color;
|
||||||
if WindowColor = clDefault then
|
if WindowColor = clDefault then
|
||||||
WindowColor := TWSWinControlClass(ChildWinControl.WidgetSetClass).GetDefaultColor(ChildWinControl);
|
WindowColor := ChildWinControl.GetDefaultColor;
|
||||||
Windows.SetBkColor(WindowDC, Windows.COLORREF(ColorToRGB(WindowColor)));
|
Windows.SetBkColor(WindowDC, Windows.COLORREF(ColorToRGB(WindowColor)));
|
||||||
LMessage.Result := LResult(ChildWinControl.Brush.Reference.Handle);
|
LMessage.Result := LResult(ChildWinControl.Brush.Reference.Handle);
|
||||||
//DebugLn(['WindowProc ', ChildWinControl.Name, ' Brush: ', LMessage.Result]);
|
//DebugLn(['WindowProc ', ChildWinControl.Name, ' Brush: ', LMessage.Result]);
|
||||||
|
@ -456,7 +456,7 @@ begin
|
|||||||
if not WSCheckHandleAllocated(AWinControl, 'TWin32WSStatusBar.SetColor') then
|
if not WSCheckHandleAllocated(AWinControl, 'TWin32WSStatusBar.SetColor') then
|
||||||
Exit;
|
Exit;
|
||||||
if AWinControl.Color = clDefault then
|
if AWinControl.Color = clDefault then
|
||||||
Windows.SendMessage(AWinControl.Handle, SB_SETBKCOLOR, 0, ColorToRGB(TWSWinControlClass(AWinControl.WidgetSetClass).GetDefaultColor(AWinControl)))
|
Windows.SendMessage(AWinControl.Handle, SB_SETBKCOLOR, 0, ColorToRGB(AWinControl.GetDefaultColor))
|
||||||
else
|
else
|
||||||
Windows.SendMessage(AWinControl.Handle, SB_SETBKCOLOR, 0, ColorToRGB(AWinControl.Color));
|
Windows.SendMessage(AWinControl.Handle, SB_SETBKCOLOR, 0, ColorToRGB(AWinControl.Color));
|
||||||
end;
|
end;
|
||||||
|
@ -991,7 +991,7 @@ begin
|
|||||||
Exit;
|
Exit;
|
||||||
Color := AWinControl.Color;
|
Color := AWinControl.Color;
|
||||||
if Color = clDefault then
|
if Color = clDefault then
|
||||||
Color := TWSWinControlClass(AWinControl.WidgetSetClass).GetDefaultColor(AWinControl);
|
Color := AWinControl.GetDefaultColor;
|
||||||
Windows.SendMessage(AWinControl.Handle, LVM_SETBKCOLOR, 0, ColorToRGB(Color));
|
Windows.SendMessage(AWinControl.Handle, LVM_SETBKCOLOR, 0, ColorToRGB(Color));
|
||||||
Windows.SendMessage(AWinControl.Handle, LVM_SETTEXTBKCOLOR, 0, ColorToRGB(Color));
|
Windows.SendMessage(AWinControl.Handle, LVM_SETTEXTBKCOLOR, 0, ColorToRGB(Color));
|
||||||
end;
|
end;
|
||||||
|
@ -221,7 +221,7 @@ var
|
|||||||
ncm: NONCLIENTMETRICS;
|
ncm: NONCLIENTMETRICS;
|
||||||
begin
|
begin
|
||||||
ncm.cbSize := sizeof(ncm);
|
ncm.cbSize := sizeof(ncm);
|
||||||
if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), @ncm, 0) then
|
if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(ncm), @ncm, 0) then
|
||||||
lf := ncm.lfMenuFont
|
lf := ncm.lfMenuFont
|
||||||
else
|
else
|
||||||
GetObject(GetStockObject(DEFAULT_GUI_FONT), SizeOf(LOGFONT), @lf);
|
GetObject(GetStockObject(DEFAULT_GUI_FONT), SizeOf(LOGFONT), @lf);
|
||||||
|
@ -1302,7 +1302,7 @@ begin
|
|||||||
Windows.SetTextColor(HDC(WParam), Windows.COLORREF(ColorToRGB(ChildWinControl.Font.Color)));
|
Windows.SetTextColor(HDC(WParam), Windows.COLORREF(ColorToRGB(ChildWinControl.Font.Color)));
|
||||||
WindowColor := ChildWinControl.Brush.Color;
|
WindowColor := ChildWinControl.Brush.Color;
|
||||||
if WindowColor = clDefault then
|
if WindowColor = clDefault then
|
||||||
WindowColor := TWSWinControlClass(ChildWinControl.WidgetSetClass).GetDefaultColor(ChildWinControl);
|
WindowColor := ChildWinControl.GetDefaultColor;
|
||||||
Windows.SetBkColor(WindowDC, Windows.COLORREF(ColorToRGB(WindowColor)));
|
Windows.SetBkColor(WindowDC, Windows.COLORREF(ColorToRGB(WindowColor)));
|
||||||
LMessage.Result := LResult(ChildWinControl.Brush.Reference.Handle);
|
LMessage.Result := LResult(ChildWinControl.Brush.Reference.Handle);
|
||||||
//DebugLn(['WindowProc ', ChildWinControl.Name, ' Brush: ', LMessage.Result]);
|
//DebugLn(['WindowProc ', ChildWinControl.Name, ' Brush: ', LMessage.Result]);
|
||||||
|
@ -731,7 +731,7 @@ begin
|
|||||||
Exit;
|
Exit;
|
||||||
Color := AWinControl.Color;
|
Color := AWinControl.Color;
|
||||||
if Color = clDefault then
|
if Color = clDefault then
|
||||||
Color := TWSWinControlClass(AWinControl.WidgetSetClass).GetDefaultColor(AWinControl);
|
Color := AWinControl.GetDefaultColor;
|
||||||
Windows.SendMessage(AWinControl.Handle, LVM_SETBKCOLOR, 0, ColorToRGB(Color));
|
Windows.SendMessage(AWinControl.Handle, LVM_SETBKCOLOR, 0, ColorToRGB(Color));
|
||||||
Windows.SendMessage(AWinControl.Handle, LVM_SETTEXTBKCOLOR, 0, ColorToRGB(Color));
|
Windows.SendMessage(AWinControl.Handle, LVM_SETTEXTBKCOLOR, 0, ColorToRGB(Color));
|
||||||
end;
|
end;
|
||||||
|
@ -165,7 +165,7 @@ end;
|
|||||||
|
|
||||||
class function TWSControl.GetDefaultColor(const AControl: TControl): TColor;
|
class function TWSControl.GetDefaultColor(const AControl: TControl): TColor;
|
||||||
begin
|
begin
|
||||||
Result := clWindow;
|
Result := clDefault;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
class procedure TWSControl.ConstraintWidth(const AControl: TControl;
|
class procedure TWSControl.ConstraintWidth(const AControl: TControl;
|
||||||
|
Loading…
Reference in New Issue
Block a user