cody: started clipboard var

git-svn-id: trunk@30931 -
This commit is contained in:
mattias 2011-05-27 11:05:13 +00:00
parent f2188479b4
commit b7e29033dd
2 changed files with 22 additions and 18 deletions

View File

@ -48,8 +48,8 @@ type
AsText: string;
procedure WriteString(MemStream: TMemoryStream; const s: string);
function ReadString(MemStream: TMemoryStream): string;
procedure WriteToStream({%H-}MemStream: TMemoryStream); virtual;
procedure ReadFromStream({%H-}MemStream: TMemoryStream); virtual;
procedure WriteToStream(MemStream: TMemoryStream); virtual; abstract;
procedure ReadFromStream(MemStream: TMemoryStream); virtual; abstract;
procedure Execute; virtual;
end;
TCodyClipboardFormat = class of TCodyClipboardData;
@ -83,8 +83,8 @@ type
class function ClipboardFormatId: TClipboardFormat;
function CanReadFromClipboard(AClipboard: TClipboard): Boolean;
function ReadFromClipboard(AClipboard: TClipboard): boolean;
function WriteToClipboard(AClipboard: TClipboard;
Data: TCodyClipboardData): Boolean;
function WriteToClipboard(Data: TCodyClipboardData;
AClipboard: TClipboard = nil): Boolean;
procedure RegisterClipboardFormat(ccFormat: TCodyClipboardFormat);
function FindClipboardFormat(aName: string): TCodyClipboardFormat;
function ClipboardFormatCount: integer;
@ -357,7 +357,6 @@ end;
procedure TCodyClipboardSrcData.WriteToStream(MemStream: TMemoryStream);
begin
inherited WriteToStream(MemStream);
WriteString(MemStream,SourceFilename);
MemStream.Write(SourceX,4);
MemStream.Write(SourceY,4);
@ -365,7 +364,6 @@ end;
procedure TCodyClipboardSrcData.ReadFromStream(MemStream: TMemoryStream);
begin
inherited ReadFromStream(MemStream);
SourceFilename:=ReadString(MemStream);
MemStream.Read(SourceX,4);
MemStream.Read(SourceY,4);
@ -414,16 +412,6 @@ begin
end;
end;
procedure TCodyClipboardData.WriteToStream(MemStream: TMemoryStream);
begin
end;
procedure TCodyClipboardData.ReadFromStream(MemStream: TMemoryStream);
begin
end;
procedure TCodyClipboardData.Execute;
begin
raise Exception.Create('not implemented yet: '+ClassName+'.Execute');
@ -510,12 +498,13 @@ begin
end;
end;
function TCody.WriteToClipboard(AClipboard: TClipboard; Data: TCodyClipboardData
function TCody.WriteToClipboard(Data: TCodyClipboardData; AClipboard: TClipboard
): Boolean;
var
MemStream: TMemoryStream;
ID: ShortString;
begin
if AClipboard=nil then AClipboard:=Clipboard;
AClipboard.AsText:=Data.AsText;
if not AClipboard.HasFormat(CF_TEXT) then
raise Exception.Create('Write to clipboard failed');

View File

@ -304,6 +304,7 @@ var
NewType: String;
ExistingDefinition: TFindContext;
Node: TCodeTreeNode;
Clip: TCodyClipboardDeclareVar;
begin
Result:=false;
PossibleContexts:=nil;
@ -384,7 +385,18 @@ begin
if Target.Tool=nil then begin
// on clipboard
// ToDo
Clip:=TCodyClipboardDeclareVar.Create;
try
Clip.AsText:=CodeToolBoss.SourceChangeCache.BeautifyCodeOptions.BeautifyStatement(
'var '+Identifier+':'+NewType,0)+';';
Clip.SetSourcePos(CodePos);
Clip.VarName:=Identifier;
Clip.VarType:=NewType;
Clip.TheUnitName:=UnitOfType;
Cody.WriteToClipboard(Clip);
finally
Clip.Free;
end;
exit;
end;
@ -413,5 +425,8 @@ begin
end;
end;
initialization
Cody.RegisterClipboardFormat(TCodyClipboardDeclareVar);
end.