richmemo: updating carbon richmemo for the recent clipboard operation changes
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1212 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
39dd49f7d2
commit
18e7e77a41
@ -28,12 +28,12 @@ uses
|
|||||||
|
|
||||||
LCLType, Classes, SysUtils,
|
LCLType, Classes, SysUtils,
|
||||||
|
|
||||||
Controls, Graphics,
|
Controls, Graphics, StdCtrls,
|
||||||
|
|
||||||
WSRichMemo,
|
WSRichMemo,
|
||||||
|
|
||||||
CarbonDef, CarbonUtils,
|
CarbonDef, CarbonUtils,
|
||||||
CarbonPrivate, CarbonCanvas, CarbonProc, CarbonEdits;
|
CarbonProc, CarbonEdits;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -65,6 +65,10 @@ type
|
|||||||
{ TCarbonWSCustomRichMemo }
|
{ TCarbonWSCustomRichMemo }
|
||||||
|
|
||||||
TCarbonWSCustomRichMemo = class(TWSCustomRichMemo)
|
TCarbonWSCustomRichMemo = class(TWSCustomRichMemo)
|
||||||
|
class procedure CutToClipboard(const AWinControl: TWinControl); override;
|
||||||
|
class procedure CopyToClipboard(const AWinControl: TWinControl); override;
|
||||||
|
class procedure PasteFromClipboard(const AWinControl: TWinControl); override;
|
||||||
|
|
||||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND; override;
|
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): HWND; override;
|
||||||
class function GetStyleRange(const AWinControl: TWinControl; TextStart: Integer;
|
class function GetStyleRange(const AWinControl: TWinControl; TextStart: Integer;
|
||||||
var RangeStart, RangeLen: Integer): Boolean; override;
|
var RangeStart, RangeLen: Integer): Boolean; override;
|
||||||
@ -72,7 +76,7 @@ type
|
|||||||
var Params: TIntFontParams): Boolean; override;
|
var Params: TIntFontParams): Boolean; override;
|
||||||
class procedure SetTextAttributes(const AWinControl: TWinControl; TextStart, TextLen: Integer;
|
class procedure SetTextAttributes(const AWinControl: TWinControl; TextStart, TextLen: Integer;
|
||||||
{Mask: TTextStyleMask;} const Params: TIntFontParams); override;
|
{Mask: TTextStyleMask;} const Params: TIntFontParams); override;
|
||||||
class procedure SetHideSelection(const AWinControl: TWinControl; AHideSelection: Boolean); override;
|
class procedure SetHideSelection(const ACustomEdit: TCustomEdit; AHideSelection: Boolean); override;
|
||||||
class procedure InDelText(const AWinControl: TWinControl; const TextUTF8: String; DstStart, DstLen: Integer); override;
|
class procedure InDelText(const AWinControl: TWinControl; const TextUTF8: String; DstStart, DstLen: Integer); override;
|
||||||
class function LoadRichText(const AWinControl: TWinControl; Src: TStream): Boolean; override;
|
class function LoadRichText(const AWinControl: TWinControl; Src: TStream): Boolean; override;
|
||||||
class function SaveRichText(const AWinControl: TWinControl; Dst: TStream): Boolean; override;
|
class function SaveRichText(const AWinControl: TWinControl; Dst: TStream): Boolean; override;
|
||||||
@ -224,6 +228,33 @@ end;
|
|||||||
|
|
||||||
{ TCarbonWSCustomRichMemo }
|
{ TCarbonWSCustomRichMemo }
|
||||||
|
|
||||||
|
class procedure TCarbonWSCustomRichMemo.CutToClipboard(const AWinControl: TWinControl);
|
||||||
|
var
|
||||||
|
memo : TCarbonRichEdit;
|
||||||
|
begin
|
||||||
|
memo := GetValidRichEdit(AWinControl);
|
||||||
|
if not Assigned(memo) then Exit;
|
||||||
|
TXNCut(memo.GetTextObject);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class procedure TCarbonWSCustomRichMemo.CopyToClipboard(const AWinControl: TWinControl);
|
||||||
|
var
|
||||||
|
memo : TCarbonRichEdit;
|
||||||
|
begin
|
||||||
|
memo := GetValidRichEdit(AWinControl);
|
||||||
|
if not Assigned(memo) then Exit;
|
||||||
|
TXNCopy(memo.GetTextObject);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class procedure TCarbonWSCustomRichMemo.PasteFromClipboard(const AWinControl:TWinControl);
|
||||||
|
var
|
||||||
|
memo : TCarbonRichEdit;
|
||||||
|
begin
|
||||||
|
memo := GetValidRichEdit(AWinControl);
|
||||||
|
if not Assigned(memo) then Exit;
|
||||||
|
TXNPaste(memo.GetTextObject);
|
||||||
|
end;
|
||||||
|
|
||||||
class function TCarbonWSCustomRichMemo.CreateHandle(const AWinControl: TWinControl;
|
class function TCarbonWSCustomRichMemo.CreateHandle(const AWinControl: TWinControl;
|
||||||
const AParams: TCreateParams): HWND;
|
const AParams: TCreateParams): HWND;
|
||||||
begin
|
begin
|
||||||
@ -306,7 +337,7 @@ begin
|
|||||||
memo.SetTypeAttributes(Count, Attr, TextStart, TextStart+TextLen);
|
memo.SetTypeAttributes(Count, Attr, TextStart, TextStart+TextLen);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
class procedure TCarbonWSCustomRichMemo.SetHideSelection(const AWinControl: TWinControl; AHideSelection: Boolean);
|
class procedure TCarbonWSCustomRichMemo.SetHideSelection(const ACustomEdit: TCustomEdit; AHideSelection: Boolean);
|
||||||
begin
|
begin
|
||||||
//todo:
|
//todo:
|
||||||
end;
|
end;
|
||||||
@ -415,16 +446,16 @@ var
|
|||||||
obj : TXNObject;
|
obj : TXNObject;
|
||||||
pst,
|
pst,
|
||||||
pend : TXNOffset;
|
pend : TXNOffset;
|
||||||
x,y : Integer;
|
//x,y : Integer;
|
||||||
w,h : Fixed;
|
//w,h : Fixed;
|
||||||
linenum : UInt32;
|
//linenum : UInt32;
|
||||||
r : CGRect;
|
r : CGRect;
|
||||||
flags : TXNContinuousFlags;
|
//flags : TXNContinuousFlags;
|
||||||
attr : TXNTypeAttributes;
|
//attr : TXNTypeAttributes;
|
||||||
event : EventRef;
|
event : EventRef;
|
||||||
ref : ControlRef;
|
ref : ControlRef;
|
||||||
refcon : Integer;
|
refcon : Integer;
|
||||||
ofs : LongWord;
|
//ofs : LongWord;
|
||||||
hh : Word;
|
hh : Word;
|
||||||
const
|
const
|
||||||
caretHorzOffset = 1;
|
caretHorzOffset = 1;
|
||||||
@ -530,7 +561,6 @@ procedure TCarbonRichEdit.InDelText(const text: WideString; replstart, repllengt
|
|||||||
var
|
var
|
||||||
data : UnivPtr;
|
data : UnivPtr;
|
||||||
datasz : ByteCount;
|
datasz : ByteCount;
|
||||||
res : OSStatus;
|
|
||||||
replend : Integer;
|
replend : Integer;
|
||||||
begin
|
begin
|
||||||
if text = '' then begin
|
if text = '' then begin
|
||||||
@ -542,7 +572,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
if repllength < 0 then replend := kTXNEndOffset
|
if repllength < 0 then replend := kTXNEndOffset
|
||||||
else replend := replstart+repllength;
|
else replend := replstart+repllength;
|
||||||
res := TXNSetData(HITextViewGetTXNObject(Widget), kTXNUnicodeTextData, data, datasz, replstart, replend);
|
TXNSetData(HITextViewGetTXNObject(Widget), kTXNUnicodeTextData, data, datasz, replstart, replend);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
Loading…
Reference in New Issue
Block a user