From c3a7f80706dc69818e9cd6cab19d8a2d20ab5ff8 Mon Sep 17 00:00:00 2001 From: zeljan1 Date: Sat, 22 Feb 2025 21:07:52 +0100 Subject: [PATCH] Gtk3: implemented color property for TCustomGroupBox. --- lcl/interfaces/gtk3/gtk3widgets.pas | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lcl/interfaces/gtk3/gtk3widgets.pas b/lcl/interfaces/gtk3/gtk3widgets.pas index 23298e2f0c..2f33786c44 100644 --- a/lcl/interfaces/gtk3/gtk3widgets.pas +++ b/lcl/interfaces/gtk3/gtk3widgets.pas @@ -702,6 +702,7 @@ type FGroupBoxType:TGtk3GroupBoxType; function GetInnerClientRect(Frame:PGtkWidget):TRect; protected + procedure DoBeforeLCLPaint; override; procedure ConnectSizeAllocateSignal(ToWidget: PGtkWidget); override; function CreateWidget(const {%H-}Params: TCreateParams):PGtkWidget; override; function getText: String; override; @@ -3779,6 +3780,23 @@ begin Result := RectFromGdkRect(FinalRect); end; +procedure TGtk3GroupBox.DoBeforeLCLPaint; +var + DC: TGtk3DeviceContext; + NColor: TColor; +begin + inherited DoBeforeLCLPaint; + if not Visible then + exit; + DC := TGtk3DeviceContext(Context); + NColor := LCLObject.Color; + if (NColor <> clNone) and (NColor <> clDefault) then + begin + DC.CurrentBrush.Color := ColorToRGB(NColor); + DC.fillRect(0, 0, getContainerWidget^.get_allocated_width, getContainerWidget^.get_allocated_height); + end; +end; + procedure TGtk3GroupBox.ConnectSizeAllocateSignal(ToWidget:PGtkWidget); begin g_signal_connect_data(ToWidget,'size-allocate',TGCallback(@GroupBoxSizeAllocate), Self, nil, G_CONNECT_DEFAULT);