From fd746ab2f96e3c4eb8b03bb1c6079693da640894 Mon Sep 17 00:00:00 2001 From: paul Date: Tue, 6 Nov 2007 09:11:58 +0000 Subject: [PATCH] gtk1/2: implement GetSystemMetrics(SM_CXTHUMB/SM_CYTHUMB) git-svn-id: trunk@12753 - --- lcl/interfaces/gtk/gtk1extrah.inc | 2 ++ lcl/interfaces/gtk/gtkwinapi.inc | 24 +++++++++++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/lcl/interfaces/gtk/gtk1extrah.inc b/lcl/interfaces/gtk/gtk1extrah.inc index 37ab538c1f..d3fdbf9351 100644 --- a/lcl/interfaces/gtk/gtk1extrah.inc +++ b/lcl/interfaces/gtk/gtk1extrah.inc @@ -55,6 +55,8 @@ function g_signal_connect_after(anObject: PGtkObject; name: Pgchar; cdecl; external gtkdll name 'gtk_signal_connect_after'; function g_signal_lookup(name: Pgchar; anObject: TGTKType): guint; cdecl; external gtkdll name 'gtk_signal_lookup'; +procedure _gtk_range_get_props(range: PGtkRange; slider_width, trough_border, + stepper_size, stepper_spacing: pgint); cdecl; external gtkdll name '_gtk_range_get_props'; function GDK_GET_CURRENT_DESKTOP(): gint; function GDK_WINDOW_GET_DESKTOP(Window: PGdkWindowPrivate): gint; diff --git a/lcl/interfaces/gtk/gtkwinapi.inc b/lcl/interfaces/gtk/gtkwinapi.inc index 53f81769f9..2315bc7fe1 100644 --- a/lcl/interfaces/gtk/gtkwinapi.inc +++ b/lcl/interfaces/gtk/gtkwinapi.inc @@ -5798,11 +5798,14 @@ end; function TGtkWidgetSet.GetSystemMetrics(nIndex: Integer): Integer; var P: Pointer; +{$ifdef HasX} ax,ay,ah,aw: gint; +{$endif} auw, auh: guint; {$ifdef GTK2} screen: PGdkScreen; ARect: TGdkRectangle; + AValue: TGValue; {$else} {$ifdef HasX} XDisplay: PDisplay; @@ -5908,9 +5911,21 @@ begin if P <> nil then Result := GTK_Widget(P)^.requisition.Height; end; - SM_CXHTHUMB: + SM_CXHTHUMB, + SM_CYVTHUMB: begin - Assert(False, 'Trace:TODO: [TGtkWidgetSet.GetSystemMetrics] --> SM_CXHTHUMB '); + P := GetStyleWidget(lgsHorizontalScrollbar); + if P <> nil then + begin + {$ifdef gtk1} + _gtk_range_get_props(P, nil, nil, @Result, nil); + {$else} + FillChar(AValue, SizeOf(AValue), 0); + g_value_init(@AValue, G_TYPE_INT); + gtk_widget_style_get_property(P, 'slider-width', @AValue); + Result := AValue.data[0].v_int; + {$endif} + end; end; SM_CXICON: begin @@ -6100,10 +6115,6 @@ begin begin Assert(False, 'Trace:TODO: [TGtkWidgetSet.GetSystemMetrics] --> SM_CYSMCAPTION '); end; - SM_CYVTHUMB: - begin - Assert(False, 'Trace:TODO: [TGtkWidgetSet.GetSystemMetrics] --> SM_CYVTHUMB '); - end; SM_DBCSENABLED: begin Assert(False, 'Trace:TODO: [TGtkWidgetSet.GetSystemMetrics] --> SM_DBCSENABLED '); @@ -9793,4 +9804,3 @@ end; {$C-} {$EndIf} -