1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
// included by gtkcallback.inc
{
*****************************************************************************
This file is part of the Lazarus Component Library (LCL)
See the file COPYING.modifiedLGPL.txt, included in this distribution,
for details about the license.
*****************************************************************************
}
//DRAG CALLBACK FUNCTIONS
function edit_drag_data_received(widget : pgtkWidget;
Context : pGdkDragContext;
X, Y : Integer;
SelData : pGtkSelectionData;
info : Integer;
time : Integer;
data : pointer) : GBoolean; cdecl;
Var
Texts : String;
Begin
Result:=false;
if (Widget=nil) or (X=0) or (Y=0) or (Info=0) then exit;
//DebugLn('Trace:***********Drag Data Received*******************');
if Seldata^.Length > 0 then
Begin
Texts := StrPas(PChar(SelData^.data));
//DebugLn('Trace:' + Texts);
//DebugLn('Trace:0');
TCustomEdit(Data).Caption := Texts;
//DebugLn('Trace:1');
end;
gtk_drag_finish(Context,false,false,time);
end;
function edit_source_drag_data_get(widget : pgtkWidget;
Context : pGdkDragContext;
Selection_data : pGtkSelectionData;
info : Integer;
time : Integer;
data : pointer) : GBoolean; cdecl;
var
strTemp : PChar;
Texts : String;
Begin
Result:=false;
if (Time=0) or (Context=nil) or (Widget=nil) then ;
if (info = TARGET_ROOTWIN) then begin
//DebugLn('Trace:I WAS DROPPED ON THE ROOTWIN')
end
else Begin
//DebugLn('Trace:*********Setting Data************');
Texts := TCustomEdit(data).Text;
//DebugLn('Trace:0');
strTemp := StrAlloc(length(Texts) + 1);
try
StrPCopy(strTemp, Texts);
//DebugLn('Trace:1');
gtk_selection_data_set(selection_data,selection_data^.target,
8,
{$IFDEF Gtk2}PGUChar(StrTemp){$ELSE}StrTemp{$ENDIF},
length(Texts)+1);
//DebugLn('Trace:2');
finally
strDispose(strTemp);
end;
//DebugLn('Trace:3');
end;
end;
function Edit_source_drag_data_delete (Widget: pGtkWidget;
Context: pGdkDragContext; Data: gpointer): gBoolean ; cdecl;
begin
if (Widget=nil) or (Context=nil) or (Data=nil) then ;
//DebugLn('Trace:***************');
//DebugLn('Trace:DELETE THE DATA');
Result:=false;
end;
// included by gtkcallback.inc
|