summaryrefslogtreecommitdiff
path: root/ide/winclip.pas
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-01-21 23:28:34 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-01-21 23:28:34 +0000
commit1903b037de2fb3e75826406b46f055acb70963fa (patch)
tree604cd8b790fe14e5fbe441d4cd647c80d2a36a9a /ide/winclip.pas
parentad1141d52f8353457053b925cd674fe1d5c4eafc (diff)
parent953d907e4d6c3a5c2f8aaee6e5e4f73c55ce5985 (diff)
downloadfpc-blocks.tar.gz
* synchronised with trunk till r29513blocks
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/blocks@29516 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'ide/winclip.pas')
-rw-r--r--ide/winclip.pas55
1 files changed, 55 insertions, 0 deletions
diff --git a/ide/winclip.pas b/ide/winclip.pas
index 327648d1a0..68cbc6cc8d 100644
--- a/ide/winclip.pas
+++ b/ide/winclip.pas
@@ -46,6 +46,12 @@ implementation
strings,windows;
{$endif Windows}
+{$ifdef HASAMIGA}
+ uses
+ clipboard,cliputils;
+{$endif}
+
+
{$ifdef DOS}
function WinClipboardSupported : boolean;
var
@@ -129,6 +135,36 @@ begin
end;
{$endif Windows}
+{$ifdef HASAMIGA}
+function WinClipboardSupported: Boolean;
+begin
+ WinClipboardSupported := True;
+end;
+
+function OpenWinClipboard: boolean;
+begin
+ OpenWinClipboard := True;
+end;
+
+function EmptyWinClipboard: boolean;
+begin
+ EmptyWinClipboard := GetTextFromClip(PRIMARY_CLIP) = '';
+end;
+
+function CloseWinClipboard : boolean;
+begin
+ CloseWinClipboard:= True;
+end;
+
+function InternGetDataSize: LongInt;
+var
+ Text: string;
+begin
+ Text := GetTextFromClip(PRIMARY_CLIP);
+ InternGetDataSize := Length(Text);
+end;
+{$endif HASAMIGA}
+
function GetTextWinClipboardSize : longint;
begin
@@ -147,6 +183,10 @@ var
h : HGlobal;
pp : pchar;
{$endif Windows}
+{$ifdef HASAMIGA}
+ Text: AnsiString;
+ pp: PChar;
+{$endif HASAMIGA}
begin
p:=nil;
GetTextWinClipBoardData:=False;
@@ -181,6 +221,14 @@ begin
end;
GetTextWinClipBoardData:=h<>0;
{$endif Windows}
+{$ifdef HASAMIGA}
+ Text := GetTextFromClip(0) + #0;
+ PP := @Text[1];
+ l := Length(Text);
+ GetMem(p,l);
+ Move(pp^,p^,l);
+ GetTextWinClipBoardData := True;
+{$endif HASAMIGA}
CloseWinClipBoard;
{$ifdef DOS}
M.MoveDataFrom(l,P^);
@@ -199,6 +247,10 @@ var
pp : pchar;
res : boolean;
{$endif Windows}
+{$ifdef HASAMIGA}
+ pp: PChar;
+ Test: AnsiString;
+{$endif HASAMIGA}
begin
SetTextWinClipBoardData:=False;
if (l=0) or (l>65520) then
@@ -239,6 +291,9 @@ begin
GlobalUnlock(h);
SetTextWinClipBoardData:=res;
{$endif Windows}
+{$ifdef HASAMIGA}
+ PutTextToClip(0, AnsiString(p));
+{$endif HASAMIGA}
CloseWinClipBoard;
end;