HI
as in subject
related to but 700: TScrollBox does not accept Color
Darek
Index: interfaces/gtk/gtkwsstdctrls.pp
===================================================================
--- interfaces/gtk/gtkwsstdctrls.pp (wersja 8887)
+++ interfaces/gtk/gtkwsstdctrls.pp (kopia robocza)
@@ -88,6 +88,8 @@
class function GetItems(const ACustomComboBox: TCustomComboBox):
TStrings; override;
class procedure Sort(const ACustomComboBox: TCustomComboBox; AList:
TStrings; IsSorted: boolean); override;
+ class procedure SetColor(const AWinControl: TWinControl); override;
+ class procedure SetFont(const AWinControl: TWinControl; const AFont :
tFont); override;
end;
{ TGtkWSComboBox }
@@ -231,6 +233,8 @@
class procedure SetState(const ACB: TCustomCheckBox; const ANewState:
TCheckBoxState); override;
class procedure GetPreferredSize(const AWinControl: TWinControl;
var PreferredWidth, PreferredHeight: integer);
override;
+ class procedure SetFont(const AWinControl: TWinControl; const AFont :
tFont); override;
+
end;
{ TGtkWSCheckBox }
@@ -715,6 +719,36 @@
TGtkListStringList(AList).Sorted := IsSorted;
end;
+procedure TGtkWSCustomComboBox.SetColor(const AWinControl: TWinControl);
+var
+ AWidget,EntryWidget : PGTKWidget;
+ ddd : gpointer;
+begin
+ AWidget:=PGtkWidget(AWinControl.Handle);
+ EntryWidget:=PGtkCombo(AWidget)^.entry;
+ GtkWidgetSet.SetWidgetColor(EntryWidget, AWinControl.font.color,
AWinControl.color,[GTK_STATE_NORMAL,GTK_STATE_ACTIVE,GTK_STATE_PRELIGHT,GTK_STATE_SELECTED,GTK_STYLE_BASE]);
+end;
+
+procedure TGtkWSCustomComboBox.SetFont(const AWinControl: TWinControl;
+ const AFont : TFont);
+var
+ AWidget: PGTKWidget;
+ EntryWidget: PGtkWidget;
+begin
+ if not AWinControl.HandleAllocated then exit;
+ if AFont.IsDefault then exit;
+
+ AWidget:= PGtkWidget(AWinControl.Handle);
+ EntryWidget:=PGtkCombo(AWidget)^.entry;
+
+ if EntryWidget<>nil then begin
+ GtkWidgetSet.SetWidgetColor(EntryWidget, AWinControl.font.color, clNone,
+
[GTK_STATE_NORMAL,GTK_STATE_ACTIVE,GTK_STATE_PRELIGHT,GTK_STATE_SELECTED]);
+ GtkWidgetSet.SetWidgetFont(EntryWidget, AFont);
+ end;
+end;
+
+
{ TGtkWSCustomEdit }
function TGtkWSCustomEdit.GetSelStart(const ACustomEdit: TCustomEdit):
integer;
@@ -878,6 +912,30 @@
//debugln('TGtkWSCustomCheckBox.GetPreferredSize ',DbgSName(AWinControl),'
PreferredWidth=',dbgs(PreferredWidth),'
PreferredHeight=',dbgs(PreferredHeight));
end;
+
+procedure TGtkWSCustomCheckBox.SetFont(const AWinControl: TWinControl;
+ const AFont: TFont);
+var
+ WidgetInfo: PWidgetInfo;
+ Widget: PGTKWidget;
+ LblWidget: PGtkWidget;
+
+begin
+ if not AWinControl.HandleAllocated then exit;
+ if AFont.IsDefault then exit ;
+
+
+ Widget:= PGtkWidget(AWinControl.Handle);
+ LblWidget := (pGtkBin(Widget)^.Child);
+
+ if LblWidget<>nil then begin
+ GtkWidgetSet.SetWidgetColor(LblWidget, AWinControl.font.color, clNone,
+
[GTK_STATE_NORMAL,GTK_STATE_ACTIVE,GTK_STATE_PRELIGHT,GTK_STATE_SELECTED]);
+ GtkWidgetSet.SetWidgetFont(LblWidget, AFont);
+ end;
+end;
+
+
{ TGtkWSCustomMemo }
procedure TGtkWSCustomMemo.AppendText(const ACustomMemo: TCustomMemo;