From ef06d18f5462d0de04a603404e6bbbdd963d24bf Mon Sep 17 00:00:00 2001 From: marc Date: Thu, 22 Sep 2005 22:58:44 +0000 Subject: [PATCH] * fixed scrollcalback for scrollbox git-svn-id: trunk@7788 - --- lcl/interfaces/gtk/gtkcallback.inc | 6 +++--- lcl/interfaces/gtk/gtkglobals.pp | 2 ++ lcl/interfaces/gtk/gtkobject.inc | 16 +++++++++++++--- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lcl/interfaces/gtk/gtkcallback.inc b/lcl/interfaces/gtk/gtkcallback.inc index 86bfca2be5..c1b74ca2d6 100644 --- a/lcl/interfaces/gtk/gtkcallback.inc +++ b/lcl/interfaces/gtk/gtkcallback.inc @@ -1188,7 +1188,7 @@ function gtkMouseBtnPress(widget: PGtkWidget; event: pgdkEventButton; // Select it gtk_list_item_select(PGtkListItem(List^.Data)); end; - + var DesignOnlySignal: boolean; CaptureWidget: PGtkWidget; @@ -2620,7 +2620,7 @@ var begin Result := CallBackDefaultReturn; Assert(False, Format('Trace:[GTKHScrollCB] Value: %d', [RoundToInt(Adjustment^.Value)])); - Scroll := PgtkRange(gtk_object_get_data(PGTKObject(Adjustment), 'ScrollBar')); + Scroll := PgtkRange(gtk_object_get_data(PGTKObject(Adjustment), odnScrollBar)); if Scroll<>nil then begin Msg.Msg := LM_HSCROLL; with Msg do begin @@ -2645,7 +2645,7 @@ var begin Result := CallBackDefaultReturn; Assert(False, Format('Trace:[GTKVScrollCB] Value: %d', [RoundToInt(Adjustment^.Value)])); - Scroll := PgtkRange(gtk_object_get_data(PGTKObject(Adjustment), 'ScrollBar')); + Scroll := PgtkRange(gtk_object_get_data(PGTKObject(Adjustment), odnScrollBar)); if Scroll<>nil then begin Msg.Msg := LM_VSCROLL; with Msg do begin diff --git a/lcl/interfaces/gtk/gtkglobals.pp b/lcl/interfaces/gtk/gtkglobals.pp index e665064435..c9b6f264c8 100644 --- a/lcl/interfaces/gtk/gtkglobals.pp +++ b/lcl/interfaces/gtk/gtkglobals.pp @@ -419,6 +419,8 @@ var const odnScrollArea = 'scroll_area'; // the gtk_scrolled_window of a widget // used by TCustomForm and TScrollbox + odnScrollBar = 'ScrollBar'; // Gives the scrollbar the tgtkrange is belonging to + // Used by TScrollbar, TScrollbox and TWinApiWidget const CallBackDefaultReturn = {$IFDEF GTK2}false{$ELSE}true{$ENDIF}; diff --git a/lcl/interfaces/gtk/gtkobject.inc b/lcl/interfaces/gtk/gtkobject.inc index 05921ccf24..b00e2612ef 100644 --- a/lcl/interfaces/gtk/gtkobject.inc +++ b/lcl/interfaces/gtk/gtkobject.inc @@ -4747,7 +4747,7 @@ begin if Adjustment <> nil then with Adjustment^ do begin - gtk_object_set_data(PGTKObject(Adjustment), 'ScrollBar', + gtk_object_set_data(PGTKObject(Adjustment), odnScrollBar, PGTKScrolledWindow(Result)^.VScrollBar); Step_Increment := 1; end; @@ -4757,7 +4757,7 @@ begin if Adjustment <> nil then with Adjustment^ do begin - gtk_object_set_data(PGTKObject(Adjustment), 'ScrollBar', + gtk_object_set_data(PGTKObject(Adjustment), odnScrollBar, PGTKScrolledWindow(Result)^.HScrollBar); Step_Increment := 1; end; @@ -5402,7 +5402,7 @@ begin P := gtk_hscrollbar_new(Adjustment) else P := gtk_vscrollbar_new(Adjustment); - gtk_object_set_data(PGTKObject(Adjustment), 'ScrollBar', P); + gtk_object_set_data(PGTKObject(Adjustment), odnScrollBar, P); end; csScrolledWindow : @@ -5468,6 +5468,16 @@ begin GTK_POLICY_NEVER); gtk_object_set_data(P,odnScrollArea, TempWidget); + + Adjustment := gtk_scrolled_window_get_vadjustment(PGTKScrolledWindow(TempWidget)); + if Adjustment <> nil + then gtk_object_set_data(PGTKObject(Adjustment), odnScrollBar, + PGTKScrolledWindow(TempWidget)^.vscrollbar); + + Adjustment := gtk_scrolled_window_get_hadjustment(PGTKScrolledWindow(TempWidget)); + if Adjustment <> nil + then gtk_object_set_data(PGTKObject(Adjustment), odnScrollBar, + PGTKScrolledWindow(TempWidget)^.hscrollbar); TempWidget2 := gtk_layout_new(nil, nil); gtk_container_add(PGTKContainer(TempWidget), TempWidget2);