mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 21:41:35 +02:00
cocoa: adding support for TEdit alignment and background color. #32796
git-svn-id: trunk@56878 -
This commit is contained in:
parent
a67f8825a2
commit
a69353463f
@ -122,8 +122,13 @@ type
|
||||
published
|
||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
|
||||
|
||||
// WSControl functions
|
||||
class procedure SetColor(const AWinControl: TWinControl); override;
|
||||
|
||||
// WSEdit functions
|
||||
class function GetSelStart(const ACustomEdit: TCustomEdit): integer; override;
|
||||
class function GetSelLength(const ACustomEdit: TCustomEdit): integer; override;
|
||||
class procedure SetAlignment(const ACustomEdit: TCustomEdit; const NewAlignment: TAlignment); override;
|
||||
|
||||
{class procedure SetCharCase(const ACustomEdit: TCustomEdit; NewCase: TEditCharCase); override;
|
||||
class procedure SetEchoMode(const ACustomEdit: TCustomEdit; NewMode: TEchoMode); override;
|
||||
@ -277,6 +282,7 @@ procedure ListBoxSetStyle(list: TCocoaListBox; AStyle: TListBoxStyle);
|
||||
procedure TextViewSetWordWrap(txt: NSTextView; lScroll: NSScrollView; NewWordWrap: Boolean);
|
||||
function AlignmentLCLToCocoa(al: TAlignment): NSTextAlignment;
|
||||
procedure TextViewSetAllignment(txt: NSTextView; align: TAlignment);
|
||||
procedure TextFieldSetAllignment(txt: NSTextField; align: TAlignment);
|
||||
|
||||
implementation
|
||||
|
||||
@ -680,9 +686,20 @@ begin
|
||||
else field:=NSTextField(AllocSecureTextField(AWinControl, AParams));
|
||||
NSCell(field.cell).setWraps(false);
|
||||
NSCell(field.cell).setScrollable(true);
|
||||
TextFieldSetAllignment(field, TCustomEdit(AWinControl).Alignment);
|
||||
Result:=TLCLIntfHandle(field);
|
||||
end;
|
||||
|
||||
class procedure TCocoaWSCustomEdit.SetColor(const AWinControl: TWinControl);
|
||||
var
|
||||
field: TCocoaTextField;
|
||||
begin
|
||||
field := GetTextField(AWinControl);
|
||||
if not Assigned(field) then Exit;
|
||||
|
||||
field.setBackgroundColor( ColorToNSColor(AWinControl.Color));
|
||||
end;
|
||||
|
||||
class function TCocoaWSCustomEdit.GetSelStart(const ACustomEdit: TCustomEdit): integer;
|
||||
var
|
||||
field : TCocoaTextField;
|
||||
@ -711,6 +728,16 @@ begin
|
||||
Result:=txt.selectedRange.length;
|
||||
end;
|
||||
|
||||
class procedure TCocoaWSCustomEdit.SetAlignment(const ACustomEdit: TCustomEdit;
|
||||
const NewAlignment: TAlignment);
|
||||
var
|
||||
field: TCocoaTextField;
|
||||
begin
|
||||
field := GetTextField(ACustomEdit);
|
||||
if not Assigned(field) then Exit;
|
||||
TextFieldSetAllignment(field, NewAlignment);
|
||||
end;
|
||||
|
||||
class procedure TCocoaWSCustomEdit.SetPasswordChar(const ACustomEdit: TCustomEdit; NewChar: char);
|
||||
begin
|
||||
if (NewChar<>#0) xor TCocoaTextField(ACustomEdit.Handle).isKindOfClass_(NSSecureTextField) then
|
||||
@ -961,6 +988,12 @@ begin
|
||||
txt.setAlignment( AlignmentLCLToCocoa(align) );
|
||||
end;
|
||||
|
||||
procedure TextFieldSetAllignment(txt: NSTextField; align: TAlignment);
|
||||
begin
|
||||
//todo: for bidi modes, there's "NSTextAlignmentNatural"
|
||||
txt.setAlignment( AlignmentLCLToCocoa(align) );
|
||||
end;
|
||||
|
||||
class function TCocoaWSCustomMemo.GetTextView(AWinControl: TWinControl): TCocoaTextView;
|
||||
var
|
||||
lScroll: TCocoaScrollView;
|
||||
|
Loading…
Reference in New Issue
Block a user