diff --git a/lcl/widgetset/wsbuttons.pp b/lcl/widgetset/wsbuttons.pp index 5299409b03..8df1b2075b 100644 --- a/lcl/widgetset/wsbuttons.pp +++ b/lcl/widgetset/wsbuttons.pp @@ -47,7 +47,7 @@ type { TWSBitBtn } TWSBitBtnClass = class of TWSBitBtn; - TWSBitBtn = class(TWSButton) + TWSBitBtn = class(TWSButton_CallWS) private class var FWSBitBtn_Impl: TWSBitBtnClass; public diff --git a/lcl/widgetset/wschecklst.pp b/lcl/widgetset/wschecklst.pp index 9e52889ae0..0f697f8186 100644 --- a/lcl/widgetset/wschecklst.pp +++ b/lcl/widgetset/wschecklst.pp @@ -46,7 +46,7 @@ type { TWSCustomCheckListBox } TWSCustomCheckListBoxClass = class of TWSCustomCheckListBox; - TWSCustomCheckListBox = class(TWSCustomListBox) + TWSCustomCheckListBox = class(TWSCustomListBox_CallWS) private class var FWSCustomCheckListBox_Impl: TWSCustomCheckListBoxClass; public diff --git a/lcl/widgetset/wscomctrls.pp b/lcl/widgetset/wscomctrls.pp index 8c7f582a74..d9f0094a35 100644 --- a/lcl/widgetset/wscomctrls.pp +++ b/lcl/widgetset/wscomctrls.pp @@ -56,6 +56,13 @@ type class procedure UpdateProperties(const ACustomPage: TCustomPage); virtual; end; + { TWSCustomPage_CallWS } + + TWSCustomPage_CallWS = class(TWSCustomPage) + public + class procedure UpdateProperties(const ACustomPage: TCustomPage); override; + end; + { TWSCustomTabControl } TWSCustomTabControlClass = class of TWSCustomTabControl; @@ -101,7 +108,7 @@ type { TWSTabSheet } - TWSTabSheet = class(TWSCustomPage) + TWSTabSheet = class(TWSCustomPage_CallWS) public class function GetDefaultColor(const AControl: TControl; const ADefaultColorType: TDefaultColorType): TColor; override; @@ -314,6 +321,14 @@ class procedure TWSCustomPage.UpdateProperties(const ACustomPage: TCustomPage); begin end; +{ TWSCustomPage_CallWS } + +class procedure TWSCustomPage_CallWS.UpdateProperties( + const ACustomPage: TCustomPage); +begin + FWSCustomPage_Impl.UpdateProperties(ACustomPage); +end; + { TWSCustomTabControl } class function TWSCustomTabControl.GetImplementation: TWSObjectClass; diff --git a/lcl/widgetset/wscontrols.pp b/lcl/widgetset/wscontrols.pp index af1f8135ea..b8df7a981a 100644 --- a/lcl/widgetset/wscontrols.pp +++ b/lcl/widgetset/wscontrols.pp @@ -54,7 +54,7 @@ type { TWSDragImageList } TWSDragImageListClass = class of TWSDragImageList; - TWSDragImageList = class(TWSCustomImageList) + TWSDragImageList = class(TWSCustomImageList_CallWS) private class var FWSDragImageList_Impl: TWSDragImageListClass; public diff --git a/lcl/widgetset/wsimglist.pp b/lcl/widgetset/wsimglist.pp index 5b53328d36..6ca3e2969e 100644 --- a/lcl/widgetset/wsimglist.pp +++ b/lcl/widgetset/wsimglist.pp @@ -64,7 +64,22 @@ type class procedure Replace(AList: TCustomImageList; AIndex: Integer; AData: PRGBAQuad); virtual; end; - procedure RegisterCustomImageList; + { TWSCustomImageList_CallWS } + + TWSCustomImageList_CallWS = class(TWSCustomImageList) + public + class procedure Clear(AList: TCustomImageList); override; + class function CreateReference(AList: TCustomImageList; ACount, AGrow, AWidth, + AHeight: Integer; AData: PRGBAQuad): TWSCustomImageListReference; override; + class procedure Delete(AList: TCustomImageList; AIndex: Integer); override; + class procedure Draw(AList: TCustomImageList; AIndex: Integer; ACanvas: TCanvas; + ABounds: TRect; ABkColor, ABlendColor: TColor; ADrawEffect: TGraphicsDrawEffect; AStyle: TDrawingStyle; AImageType: TImageType); override; + class procedure Insert(AList: TCustomImageList; AIndex: Integer; AData: PRGBAQuad); override; + class procedure Move(AList: TCustomImageList; ACurIndex, ANewIndex: Integer); override; + class procedure Replace(AList: TCustomImageList; AIndex: Integer; AData: PRGBAQuad); override; + end; + +procedure RegisterCustomImageList; implementation @@ -266,6 +281,53 @@ begin TDefaultImageListImplementor(AList.Reference.Ptr)[AIndex] := ABitmap; end; +{ TWSCustomImageList_CallWS } + +class procedure TWSCustomImageList_CallWS.Clear(AList: TCustomImageList); +begin + FWSCustomImageList_Impl.Clear(AList); +end; + +class function TWSCustomImageList_CallWS.CreateReference( + AList: TCustomImageList; ACount, AGrow, AWidth, AHeight: Integer; + AData: PRGBAQuad): TWSCustomImageListReference; +begin + Result:= FWSCustomImageList_Impl.CreateReference(AList, ACount, AGrow, AWidth, AHeight, AData); +end; + +class procedure TWSCustomImageList_CallWS.Delete(AList: TCustomImageList; + AIndex: Integer); +begin + FWSCustomImageList_Impl.Delete(AList, AIndex); +end; + +class procedure TWSCustomImageList_CallWS.Draw(AList: TCustomImageList; + AIndex: Integer; ACanvas: TCanvas; ABounds: TRect; ABkColor, + ABlendColor: TColor; ADrawEffect: TGraphicsDrawEffect; AStyle: TDrawingStyle; + AImageType: TImageType); +begin + FWSCustomImageList_Impl.Draw(AList, AIndex, ACanvas, ABounds, ABkColor, ABlendColor, + ADrawEffect, AStyle, AImageType); +end; + +class procedure TWSCustomImageList_CallWS.Insert(AList: TCustomImageList; + AIndex: Integer; AData: PRGBAQuad); +begin + FWSCustomImageList_Impl.Insert(AList, AIndex, AData); +end; + +class procedure TWSCustomImageList_CallWS.Move(AList: TCustomImageList; + ACurIndex, ANewIndex: Integer); +begin + FWSCustomImageList_Impl.Move(AList, ACurIndex, ANewIndex); +end; + +class procedure TWSCustomImageList_CallWS.Replace(AList: TCustomImageList; + AIndex: Integer; AData: PRGBAQuad); +begin + FWSCustomImageList_Impl.Replace(AList, AIndex, AData); +end; + { WidgetSetRegistration } procedure RegisterCustomImageList; diff --git a/lcl/widgetset/wsstdctrls.pp b/lcl/widgetset/wsstdctrls.pp index 6377062dfc..a4f56f7157 100644 --- a/lcl/widgetset/wsstdctrls.pp +++ b/lcl/widgetset/wsstdctrls.pp @@ -150,9 +150,37 @@ type class procedure SetTopIndex(const ACustomListBox: TCustomListBox; const NewTopIndex: integer); virtual; end; + { TWSCustomListBox_CallWS } + + TWSCustomListBox_CallWS = class(TWSCustomListBox) + public + class procedure DragStart(const ACustomListBox: TCustomListBox); override; + + class function GetIndexAtXY(const ACustomListBox: TCustomListBox; X, Y: integer): integer; override; + class function GetItemIndex(const ACustomListBox: TCustomListBox): integer; override; + class function GetItemRect(const ACustomListBox: TCustomListBox; Index: integer; var ARect: TRect): boolean; override; + class function GetScrollWidth(const ACustomListBox: TCustomListBox): Integer; override; + class function GetSelCount(const ACustomListBox: TCustomListBox): integer; override; + class function GetSelected(const ACustomListBox: TCustomListBox; const AIndex: integer): boolean; override; + class function GetStrings(const ACustomListBox: TCustomListBox): TStrings; override; + class procedure FreeStrings(var AStrings: TStrings); override; + class function GetTopIndex(const ACustomListBox: TCustomListBox): integer; override; + + class procedure SelectItem(const ACustomListBox: TCustomListBox; AIndex: integer; ASelected: boolean); override; + + class procedure SetBorder(const ACustomListBox: TCustomListBox); override; + class procedure SetColumnCount(const ACustomListBox: TCustomListBox; ACount: Integer); override; + class procedure SetItemIndex(const ACustomListBox: TCustomListBox; const AIndex: integer); override; + class procedure SetScrollWidth(const ACustomListBox: TCustomListBox; const AScrollWidth: Integer); override; + class procedure SetSelectionMode(const ACustomListBox: TCustomListBox; const AExtendedSelect, AMultiSelect: boolean); override; + class procedure SetStyle(const ACustomListBox: TCustomListBox); override; + class procedure SetSorted(const ACustomListBox: TCustomListBox; AList: TStrings; ASorted: boolean); override; + class procedure SetTopIndex(const ACustomListBox: TCustomListBox; const NewTopIndex: integer); override; + end; + { TWSListBox } - TWSListBox = class(TWSCustomListBox) + TWSListBox = class(TWSCustomListBox_CallWS) published end; @@ -219,6 +247,10 @@ type class procedure Copy(const ACustomEdit: TCustomEdit); override; class procedure Paste(const ACustomEdit: TCustomEdit); override; class procedure Undo(const ACustomEdit: TCustomEdit); override; + // + class procedure GetPreferredSize(const AWinControl: TWinControl; + var PreferredWidth, PreferredHeight: integer; + WithThemeSpace: Boolean); override; end; { TWSCustomMemo } @@ -285,10 +317,19 @@ type class function GetDefaultColor(const AControl: TControl; const ADefaultColorType: TDefaultColorType): TColor; override; end; + { TWSButtonControl_CallWS } + + TWSButtonControl_CallWS = class(TWSButtonControl) + public + class procedure GetPreferredSize(const AWinControl: TWinControl; + var PreferredWidth, PreferredHeight: integer; + WithThemeSpace: Boolean); override; + end; + { TWSButton } TWSButtonClass = class of TWSButton; - TWSButton = class(TWSButtonControl) + TWSButton = class(TWSButtonControl_CallWS) private class var FWSButton_Impl: TWSButtonClass; public @@ -298,10 +339,18 @@ type class procedure SetShortCut(const AButton: TCustomButton; const ShortCutK1, ShortCutK2: TShortCut); virtual; end; + { TWSButton_CallWS } + + TWSButton_CallWS = class(TWSButton) + public + class procedure SetDefault(const AButton: TCustomButton; ADefault: Boolean); override; + class procedure SetShortCut(const AButton: TCustomButton; const ShortCutK1, ShortCutK2: TShortCut); override; + end; + { TWSCustomCheckBox } TWSCustomCheckBoxClass = class of TWSCustomCheckBox; - TWSCustomCheckBox = class(TWSButtonControl) + TWSCustomCheckBox = class(TWSButtonControl_CallWS) private class var FWSCustomCheckBox_Impl: TWSCustomCheckBoxClass; public @@ -501,6 +550,123 @@ class procedure TWSCustomListBox.SetTopIndex(const ACustomListBox: TCustomListBo begin end; +{ TWSCustomListBox_CallWS } + +class procedure TWSCustomListBox_CallWS.DragStart( + const ACustomListBox: TCustomListBox); +begin + FWSCustomListBox_Impl.DragStart(ACustomListBox); +end; + +class function TWSCustomListBox_CallWS.GetIndexAtXY( + const ACustomListBox: TCustomListBox; X, Y: integer): integer; +begin + Result:= FWSCustomListBox_Impl.GetIndexAtXY(ACustomListBox, X, Y); +end; + +class function TWSCustomListBox_CallWS.GetItemIndex( + const ACustomListBox: TCustomListBox): integer; +begin + Result:= FWSCustomListBox_Impl.GetItemIndex(ACustomListBox); +end; + +class function TWSCustomListBox_CallWS.GetItemRect( + const ACustomListBox: TCustomListBox; Index: integer; var ARect: TRect + ): boolean; +begin + Result:= FWSCustomListBox_Impl.GetItemRect(ACustomListBox, Index, ARect); +end; + +class function TWSCustomListBox_CallWS.GetScrollWidth( + const ACustomListBox: TCustomListBox): Integer; +begin + Result:= FWSCustomListBox_Impl.GetScrollWidth(ACustomListBox); +end; + +class function TWSCustomListBox_CallWS.GetSelCount( + const ACustomListBox: TCustomListBox): integer; +begin + Result:= FWSCustomListBox_Impl.GetSelCount(ACustomListBox); +end; + +class function TWSCustomListBox_CallWS.GetSelected( + const ACustomListBox: TCustomListBox; const AIndex: integer): boolean; +begin + Result:= FWSCustomListBox_Impl.GetSelected(ACustomListBox, AIndex); +end; + +class function TWSCustomListBox_CallWS.GetStrings( + const ACustomListBox: TCustomListBox): TStrings; +begin + Result:= FWSCustomListBox_Impl.GetStrings(ACustomListBox); +end; + +class procedure TWSCustomListBox_CallWS.FreeStrings(var AStrings: TStrings); +begin + FWSCustomListBox_Impl.FreeStrings(AStrings); +end; + +class function TWSCustomListBox_CallWS.GetTopIndex( + const ACustomListBox: TCustomListBox): integer; +begin + Result:= FWSCustomListBox_Impl.GetTopIndex(ACustomListBox); +end; + +class procedure TWSCustomListBox_CallWS.SelectItem( + const ACustomListBox: TCustomListBox; AIndex: integer; ASelected: boolean); +begin + FWSCustomListBox_Impl.SelectItem(ACustomListBox, AIndex, ASelected); +end; + +class procedure TWSCustomListBox_CallWS.SetBorder( + const ACustomListBox: TCustomListBox); +begin + FWSCustomListBox_Impl.SetBorder(ACustomListBox); +end; + +class procedure TWSCustomListBox_CallWS.SetColumnCount( + const ACustomListBox: TCustomListBox; ACount: Integer); +begin + FWSCustomListBox_Impl.SetColumnCount(ACustomListBox, ACount); +end; + +class procedure TWSCustomListBox_CallWS.SetItemIndex( + const ACustomListBox: TCustomListBox; const AIndex: integer); +begin + FWSCustomListBox_Impl.SetItemIndex(ACustomListBox, AIndex); +end; + +class procedure TWSCustomListBox_CallWS.SetScrollWidth( + const ACustomListBox: TCustomListBox; const AScrollWidth: Integer); +begin + FWSCustomListBox_Impl.SetScrollWidth(ACustomListBox, AScrollWidth); +end; + +class procedure TWSCustomListBox_CallWS.SetSelectionMode( + const ACustomListBox: TCustomListBox; const AExtendedSelect, + AMultiSelect: boolean); +begin + FWSCustomListBox_Impl.SetSelectionMode(ACustomListBox, AExtendedSelect, AMultiSelect); +end; + +class procedure TWSCustomListBox_CallWS.SetStyle( + const ACustomListBox: TCustomListBox); +begin + FWSCustomListBox_Impl.SetStyle(ACustomListBox); +end; + +class procedure TWSCustomListBox_CallWS.SetSorted( + const ACustomListBox: TCustomListBox; AList: TStrings; ASorted: boolean); +begin + FWSCustomListBox_Impl.SetSorted(ACustomListBox, AList, ASorted); +end; + +class procedure TWSCustomListBox_CallWS.SetTopIndex( + const ACustomListBox: TCustomListBox; const NewTopIndex: integer); +begin + FWSCustomListBox_Impl.SetTopIndex(ACustomListBox, NewTopIndex); +end; + { TWSCustomComboBox } class function TWSCustomComboBox.GetImplementation: TWSObjectClass; @@ -876,6 +1042,14 @@ begin FWSCustomEdit_Impl.Undo(ACustomEdit); end; +class procedure TWSCustomEdit_CallWS.GetPreferredSize( + const AWinControl: TWinControl; var PreferredWidth, PreferredHeight: integer; + WithThemeSpace: Boolean); +begin + FWSCustomEdit_Impl.GetPreferredSize(AWinControl, PreferredWidth, PreferredHeight, + WithThemeSpace); +end; + { TWSCustomMemo } class function TWSCustomMemo.GetImplementation: TWSObjectClass; @@ -980,6 +1154,20 @@ class procedure TWSButton.SetShortCut(const AButton: TCustomButton; begin; end; +{ TWSButton_CallWS } + +class procedure TWSButton_CallWS.SetDefault(const AButton: TCustomButton; + ADefault: Boolean); +begin + FWSButton_Impl.SetDefault(AButton, ADefault); +end; + +class procedure TWSButton_CallWS.SetShortCut(const AButton: TCustomButton; + const ShortCutK1, ShortCutK2: TShortCut); +begin + FWSButton_Impl.SetShortCut(AButton, ShortCutK1, ShortCutK2); +end; + { TWSCustomCheckBox } class function TWSCustomCheckBox.GetImplementation: TWSObjectClass; @@ -1185,4 +1373,14 @@ begin Result := DefBtnColors[ADefaultColorType]; end; +{ TWSButtonControl_CallWS } + +class procedure TWSButtonControl_CallWS.GetPreferredSize( + const AWinControl: TWinControl; var PreferredWidth, PreferredHeight: integer; + WithThemeSpace: Boolean); +begin + FWSButtonControl_Impl.GetPreferredSize(AWinControl, PreferredWidth, PreferredHeight, + WithThemeSpace); +end; + end.