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:
skalogryz 2010-05-01 22:08:15 +00:00
parent 39dd49f7d2
commit 18e7e77a41

View File

@ -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.