diff --git a/lcl/interfaces/gtk2/gtk2privatelist.inc b/lcl/interfaces/gtk2/gtk2privatelist.inc index bea5163927..c9e315b285 100644 --- a/lcl/interfaces/gtk2/gtk2privatelist.inc +++ b/lcl/interfaces/gtk2/gtk2privatelist.inc @@ -16,27 +16,4 @@ class procedure TGtkPrivateList.SetCallbacks(const AGtkWidget: PGtkWidget; const begin end; -procedure Gtk2WS_ListBoxChange({%H-}Selection: PGtkTreeSelection; WidgetInfo: PWidgetInfo); cdecl; -var - Mess: TLMessage; -begin - {$IFDEF EventTrace} - EventTrace('Gtk2WS_ListBoxChange', WidgetInfo^.LCLObject); - {$ENDIF} - FillChar(Mess{%H-}, SizeOf(Mess), 0); - Mess.msg := LM_SELCHANGE; - DeliverMessage(WidgetInfo^.LCLObject, Mess); -end; - -{ TGtk2PrivateList } - -class procedure TGtk2PrivateList.SetCallbacks(const AGtkWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); -var - Selection: PGtkTreeSelection; -begin - TGtk2WSBaseScrollingWinControl.SetCallbacks(AGtkWidget, AWidgetInfo); - - Selection := gtk_tree_view_get_selection(PGtkTreeView(AWidgetInfo^.CoreWidget)); - SignalConnect(PGtkWidget(Selection), 'changed', @Gtk2WS_ListBoxChange, AWidgetInfo); -end; diff --git a/lcl/interfaces/gtk2/gtk2wscontrols.pp b/lcl/interfaces/gtk2/gtk2wscontrols.pp index f3cabb7e20..7dec5b7282 100644 --- a/lcl/interfaces/gtk2/gtk2wscontrols.pp +++ b/lcl/interfaces/gtk2/gtk2wscontrols.pp @@ -133,6 +133,16 @@ type VScroll: PGTKWidget; end; + { TGtk2ListBoxPrivateList } + { Private class for gtklists } + + TGtk2ListBoxPrivateList = class(TGtkPrivateList) + private + protected + public + class procedure SetCallbacks(const AGtkWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); override; + end; + { TGtk2WSBaseScrollingWinControl } TGtk2WSBaseScrollingWinControl = class(TWSWinControl) @@ -1099,6 +1109,30 @@ begin gtk_widget_queue_draw({%H-}PGtkWidget(AWinControl.Handle)); end; +procedure Gtk2WS_ListBoxChange({%H-}Selection: PGtkTreeSelection; WidgetInfo: PWidgetInfo); cdecl; +var + Mess: TLMessage; +begin + {$IFDEF EventTrace} + EventTrace('Gtk2WS_ListBoxChange', WidgetInfo^.LCLObject); + {$ENDIF} + FillChar(Mess{%H-}, SizeOf(Mess), 0); + Mess.msg := LM_SELCHANGE; + DeliverMessage(WidgetInfo^.LCLObject, Mess); +end; + +{ TGtk2ListBoxPrivateList } + +class procedure TGtk2ListBoxPrivateList.SetCallbacks(const AGtkWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); +var + Selection: PGtkTreeSelection; +begin + TGtk2WSBaseScrollingWinControl.SetCallbacks(AGtkWidget, AWidgetInfo); + + Selection := gtk_tree_view_get_selection(PGtkTreeView(AWidgetInfo^.CoreWidget)); + SignalConnect(PGtkWidget(Selection), 'changed', @Gtk2WS_ListBoxChange, AWidgetInfo); +end; + { TGtk2WSBaseScrollingWinControl } function Gtk2WSBaseScrollingWinControl_HValueChanged(AAdjustment: PGTKAdjustment; AInfo: PWidgetInfo): GBoolean; cdecl; diff --git a/lcl/interfaces/gtk2/gtk2wsfactory.pas b/lcl/interfaces/gtk2/gtk2wsfactory.pas index 2b86e82ca0..7e506b7178 100644 --- a/lcl/interfaces/gtk2/gtk2wsfactory.pas +++ b/lcl/interfaces/gtk2/gtk2wsfactory.pas @@ -321,7 +321,7 @@ end; function RegisterCustomListBox: Boolean; alias : 'WSRegisterCustomListBox'; begin - RegisterWSComponent(TCustomListBox, TGtk2WSCustomListBox, TGtk2PrivateList); + RegisterWSComponent(TCustomListBox, TGtk2WSCustomListBox, TGtk2ListBoxPrivateList); // RegisterWSComponent(TListBox, TGtk2WSListBox); Result := True; end; diff --git a/lcl/interfaces/gtk2/gtk2wsprivate.pp b/lcl/interfaces/gtk2/gtk2wsprivate.pp index ea2637ce8a..c759c89ef0 100644 --- a/lcl/interfaces/gtk2/gtk2wsprivate.pp +++ b/lcl/interfaces/gtk2/gtk2wsprivate.pp @@ -222,16 +222,6 @@ type class procedure UpdateCursor(AInfo: PWidgetInfo); override; end; - { TGtk2PrivateList } - { Private class for gtklists } - - TGtk2PrivateList = class(TGtkPrivateList) - private - protected - public - class procedure SetCallbacks(const AGtkWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); override; - end; - { TGtk2PrivateMemo } { Private class for gtkmemos } @@ -270,8 +260,6 @@ procedure SetGlobalCursor(Cursor: HCURSOR); implementation -uses Gtk2WSControls; - {$I Gtk2PrivateWidget.inc} {$I Gtk2PrivateList.inc}