gtk2 intf: setfont, setcolor for memo, combobox

git-svn-id: trunk@9170 -
This commit is contained in:
mattias 2006-04-23 20:51:31 +00:00
parent 560cd8d9a1
commit 491a7b2186
3 changed files with 64 additions and 3 deletions

View File

@ -134,6 +134,10 @@ procedure gdk_draw_pixbuf(drawable : PGdkDrawable; gc : PGdkGC; pixbuf : PGdkPix
{$EndIf}
{$EndIf}
var
GTK2WidgetSet: TGTK2WidgetSet absolute GtkWidgetSet;
implementation
uses

View File

@ -1,3 +1,5 @@
{%MainUnit gtk2wsstdctrls.pp}
{ Callbacks }
procedure Gtk2WS_MemoChanged( AGtkTextBuffer: PGtkTextBuffer; WidgetInfo: PWidgetInfo); cdecl;
@ -114,7 +116,6 @@ begin
gtk_scrolled_window_set_policy(PGtkScrolledWindow(Widget),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type(PGtkScrolledWindow(Widget),GTK_SHADOW_IN);
SetMainWidget(Widget, TempWidget);
GetWidgetInfo(Widget, True)^.CoreWidget := TempWidget;
@ -138,3 +139,35 @@ begin
Result := TGtk2MemoStrings.Create(TextView, ACustomMemo);
end;
procedure TGtk2WSCustomMemo.SetColor(const AWinControl: TWinControl);
var
AWidget : PGTKWidget;
begin
AWidget:=PGtkWidget(AWinControl.Handle);
AWidget:=GetWidgetInfo(AWidget, True)^.CoreWidget;
Gtk2WidgetSet.SetWidgetColor(AWidget, AWinControl.font.color, AWinControl.color,[GTK_STATE_NORMAL,GTK_STATE_ACTIVE,GTK_STATE_PRELIGHT,GTK_STATE_SELECTED,GTK_STYLE_BASE]);
end;
procedure TGtk2WSCustomMemo.SetFont(const AWinControl: TWinControl;
const AFont : TFont);
var
AWidget: PGTKWidget;
begin
if not AWinControl.HandleAllocated then exit;
if AFont.IsDefault then exit;
AWidget:= PGtkWidget(AWinControl.Handle);
AWidget:= GetWidgetInfo(AWidget, true)^.CoreWidget;
if AWidget<>nil then begin
Gtk2WidgetSet.SetWidgetColor(AWidget, AWinControl.font.color, clNone,
[GTK_STATE_NORMAL,GTK_STATE_ACTIVE,GTK_STATE_PRELIGHT,GTK_STATE_SELECTED,
GTK_STYLE_TEXT]);
Gtk2WidgetSet.SetWidgetFont(AWidget, AFont);
end;
end;

View File

@ -36,7 +36,7 @@ uses
////////////////////////////////////////////////////
StdCtrls, LMessages,
////////////////////////////////////////////////////
glib2, gdk2pixbuf, gdk2, gtk2, Pango,
glib2, gdk2, gtk2, Pango,
WSStdCtrls, WSLCLClasses, GtkWSStdCtrls, Gtk2Int, LCLType, GtkDef, LCLProc,
GTKWinApiWindow, gtkglobals, gtkproc, InterfaceBase;
@ -72,6 +72,7 @@ type
private
protected
public
class procedure SetFont(const AWinControl: TWinControl; const AFont : tFont); override;
end;
{ TGtk2WSComboBox }
@ -131,6 +132,8 @@ type
public
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
class function GetStrings(const ACustomMemo: TCustomMemo): TStrings; override;
class procedure SetColor(const AWinControl: TWinControl);override;
class procedure SetFont(const AWinControl: TWinControl;const AFont : TFont);override;
end;
{ TGtk2WSEdit }
@ -584,6 +587,27 @@ begin
Result := ABS(Entry^.current_pos - Entry^.selection_bound);
end;
procedure TGtk2WSCustomComboBox.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
Gtk2WidgetSet.SetWidgetColor(EntryWidget, AWinControl.font.color, clNone,
[GTK_STATE_NORMAL,GTK_STATE_ACTIVE,GTK_STATE_PRELIGHT,GTK_STATE_SELECTED,GTK_STYLE_TEXT]);
Gtk2WidgetSet.SetWidgetFont(EntryWidget, AFont);
end;
end;
initialization
////////////////////////////////////////////////////
@ -595,7 +619,7 @@ initialization
// RegisterWSComponent(TScrollBar, TGtk2WSScrollBar);
// RegisterWSComponent(TCustomGroupBox, TGtk2WSCustomGroupBox);
// RegisterWSComponent(TGroupBox, TGtk2WSGroupBox);
// RegisterWSComponent(TCustomComboBox, TGtk2WSCustomComboBox);
RegisterWSComponent(TCustomComboBox, TGtk2WSCustomComboBox);
// RegisterWSComponent(TComboBox, TGtk2WSComboBox);
RegisterWSComponent(TCustomListBox, TGtk2WSCustomListBox);
// RegisterWSComponent(TListBox, TGtk2WSListBox);