mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-24 00:49:45 +02:00
LCL-GTK3: Implement Button.OnClick handler. Fix Tab behavior. Issue #37718, patch from Anton Kavalenka.
git-svn-id: trunk@63874 -
This commit is contained in:
parent
4c7fde32e9
commit
2f35763ff4
@ -671,6 +671,7 @@ type
|
|||||||
procedure SetMargin(AValue: Integer);
|
procedure SetMargin(AValue: Integer);
|
||||||
procedure SetSpacing(AValue: Integer);
|
procedure SetSpacing(AValue: Integer);
|
||||||
protected
|
protected
|
||||||
|
procedure ButtonClicked(pData:pointer);cdecl;
|
||||||
procedure SetImage(AImage:TBitmap);
|
procedure SetImage(AImage:TBitmap);
|
||||||
function getText: String; override;
|
function getText: String; override;
|
||||||
procedure setText(const AValue: String); override;
|
procedure setText(const AValue: String); override;
|
||||||
@ -2072,7 +2073,9 @@ begin
|
|||||||
|
|
||||||
if AKeyPress and (ACharCode = VK_TAB) then
|
if AKeyPress and (ACharCode = VK_TAB) then
|
||||||
begin
|
begin
|
||||||
|
if Sender^.is_focus then
|
||||||
|
Self.LCLObject.SelectNext(Self.LCLObject,true,true);
|
||||||
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
IsArrowKey := ((ACharCode = VK_UP) or (ACharCode = VK_DOWN) or (ACharCode = VK_LEFT) or (ACharCode = VK_RIGHT));
|
IsArrowKey := ((ACharCode = VK_UP) or (ACharCode = VK_DOWN) or (ACharCode = VK_LEFT) or (ACharCode = VK_RIGHT));
|
||||||
@ -6515,6 +6518,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TGtk3Button.ButtonClicked(pData: pointer); cdecl;
|
||||||
|
begin
|
||||||
|
if TObject(pdata) is TButton then
|
||||||
|
TButton(pdata).Click;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TGtk3Button.SetImage(AImage: TBitmap);
|
procedure TGtk3Button.SetImage(AImage: TBitmap);
|
||||||
begin
|
begin
|
||||||
if Assigned(fImage) then
|
if Assigned(fImage) then
|
||||||
@ -6546,6 +6555,9 @@ begin
|
|||||||
|
|
||||||
btn^.set_use_underline(true);
|
btn^.set_use_underline(true);
|
||||||
|
|
||||||
|
g_signal_connect_data(btn,'clicked',
|
||||||
|
TGCallback(@TGtk3Button.ButtonClicked), LCLObject, nil, 0);
|
||||||
|
|
||||||
FMargin := -1;
|
FMargin := -1;
|
||||||
FLayout := GTK_POS_LEFT;
|
FLayout := GTK_POS_LEFT;
|
||||||
FSpacing := 2; // default gtk3 spacing is 2
|
FSpacing := 2; // default gtk3 spacing is 2
|
||||||
|
Loading…
Reference in New Issue
Block a user