mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-01 17:21:03 +02:00
cocoa: storing LCL title separately, so WS function would return the original value set. #35884
git-svn-id: trunk@61619 -
This commit is contained in:
parent
4a82f4209c
commit
9cfcdf24c5
@ -219,6 +219,7 @@ type
|
|||||||
|
|
||||||
TLCLButtonCallback = class(TLCLCommonCallback, IButtonCallback)
|
TLCLButtonCallback = class(TLCLCommonCallback, IButtonCallback)
|
||||||
public
|
public
|
||||||
|
LCLTitle: string;
|
||||||
procedure ButtonClick; virtual;
|
procedure ButtonClick; virtual;
|
||||||
procedure Draw(ControlContext: NSGraphicsContext; const bounds, dirty: NSRect); override;
|
procedure Draw(ControlContext: NSGraphicsContext; const bounds, dirty: NSRect); override;
|
||||||
procedure GetAllowMixedState(var allowed: Boolean); virtual;
|
procedure GetAllowMixedState(var allowed: Boolean); virtual;
|
||||||
@ -721,10 +722,30 @@ begin
|
|||||||
cf.release;
|
cf.release;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function GetButtonCallback(btn: NSButton): TLCLButtonCallback;
|
||||||
|
var
|
||||||
|
cb : ICommonCallback;
|
||||||
|
obj : TObject;
|
||||||
|
begin
|
||||||
|
Result := nil;
|
||||||
|
if not Assigned(btn) then Exit;
|
||||||
|
cb := btn.lclGetCallback;
|
||||||
|
if not Assigned(cb) then Exit;
|
||||||
|
obj := cb.GetCallbackObject;
|
||||||
|
if (not Assigned(obj)) or (not (obj is TLCLButtonCallback)) then Exit;
|
||||||
|
Result := TLCLButtonCallback(obj);
|
||||||
|
end;
|
||||||
|
|
||||||
class procedure TCocoaWSButton.SetText(const AWinControl: TWinControl; const AText: String);
|
class procedure TCocoaWSButton.SetText(const AWinControl: TWinControl; const AText: String);
|
||||||
|
var
|
||||||
|
btn : NSButton;
|
||||||
|
cbo : TLCLButtonCallback;
|
||||||
begin
|
begin
|
||||||
NSButton(AWinControl.Handle).setTitle(ControlTitleToNSStr(AText));
|
btn := NSButton(AWinControl.Handle);
|
||||||
|
btn.setTitle(ControlTitleToNSStr(AText));
|
||||||
|
cbo := GetButtonCallback(btn);
|
||||||
|
if Assigned(cbo) then
|
||||||
|
cbo.LCLTitle := AText;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
class function TCocoaWSButton.GetText(const AWinControl: TWinControl;
|
class function TCocoaWSButton.GetText(const AWinControl: TWinControl;
|
||||||
@ -732,12 +753,19 @@ class function TCocoaWSButton.GetText(const AWinControl: TWinControl;
|
|||||||
var
|
var
|
||||||
btn: NSButton;
|
btn: NSButton;
|
||||||
lStr: NSString;
|
lStr: NSString;
|
||||||
|
cbo : TLCLButtonCallback;
|
||||||
begin
|
begin
|
||||||
Result := AWinControl.HandleAllocated;
|
Result := AWinControl.HandleAllocated;
|
||||||
if not Result then Exit;
|
if not Result then Exit;
|
||||||
btn := NSButton(AWinControl.Handle);
|
btn := NSButton(AWinControl.Handle);
|
||||||
lStr := btn.title();
|
cbo := GetButtonCallback(btn);
|
||||||
AText := NSStringToString(lStr);
|
if Assigned(cbo) then
|
||||||
|
AText := cbo.LCLTitle
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
lStr := btn.title();
|
||||||
|
AText := NSStringToString(lStr);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
class function TCocoaWSButton.GetTextLen(const AWinControl: TWinControl;
|
class function TCocoaWSButton.GetTextLen(const AWinControl: TWinControl;
|
||||||
|
Loading…
Reference in New Issue
Block a user