Command PV SET DRAG SIGNATURES

4D View

PV SET DRAG SIGNATURES

version 6.8


PV SET DRAG SIGNATURES (area; signatures)

ParameterTypeDescription
areaLongint4D View area
signaturesString ArraySignatures array

Description

The PV SET DRAG SIGNATURES command sets the content of the signatures array as "drag" signatures for area.

Signatures are alphanumeric strings with free content. The maximum length for a signature is 32 characters.

These are are properties, defined using the PV SET AREA PROPERTY, which allows revealing 4D View area drag and drop-related options:

• To define drag and drop properties to apply to an area, use the PV Area properties constant theme.

• To define values for these different properties, use the PV Drag drop allowed and PV Drop mode constant themes.

Once drag and drop is authorized, it can interact with two areas (which can be the same) on the condition that the areas contain at least one common signature to drag for the source area and to drop for the target area.

As for the drag and drop event, it will be intercepted by the PV ON EVENT command.

Examples

The example below illustrates a drag and drop between two 4D View areas. Start by setting the signatures and behavior of areas, for example, upon changing a form:

   ARRAY TEXT ($DDSignatureArray;1)
   $DDSignatureArray{1}:="Signature_1"

   PV SET AREA PROPERTY (SourceArea;pv drag trigger ;pv trigger on alt click )  `alt-click to drag
   PV SET AREA PROPERTY (SourceArea;pv drag allowed ;pv DD multiple cells )
   PV ON EVENT (SourceArea;pv on drag ;"DragDropMethod")
   PV SET DRAG SIGNATURES (SourceArea;$DDSignatureArray)

   PV SET AREA PROPERTY (TargetArea;pv drop allowed;pv DD single cell +
                                       pv DD adjacent cells +pv DD multiple cells )
   PV SET AREA PROPERTY (TargetArea;pv drop mode ;pv drop replace only )
   PV ON EVENT (TargetArea;pv on drop ;"DragDropMethod")
   PV SET DROP SIGNATURES (TargetArea;$DDSignatureArray)  `Same signatures as drag

The project method DragDropMethod will be called when a drag is executed with alt-click or when there a drop occurs on a target area:

   C_LONGINT($1)  `4D View reference area
   C_LONGINT($2)  `Event
   C_LONGINT($3)  `Keyboard code (modify)
   C_LONGINT($4)  `Column number
   C_LONGINT($5)  `Line number
   C_LONGINT($6)  `ASCII code of the key

   C_POINTER(SourceAreaPointer;TargetAreaPointer)  `Nowhere to keep them between two callback methods
   C_BLOB($blob)  `Temporary drag and drop notepad
   C_LONGINT($currentColumn;$currentRow)  `Current cell coordinates
   C_LONGINT($destinationColumn;$destinationRow)  `Coordinates of cell where drop will occur

   Case of  
      : ($2=pv on drag )
         PV GET DRAG SOURCE ($1;SourceAreaPointer)  `Where do we come from?
    
      : ($2=pv on drop )
         PV GET DROP TARGET ($1;TargetAreaPointer)  `Where are we going?
    
         $blob:=PV Copy to blob (SourceAreaPointer->)  `Copy to notepad
         $destinationColumn:=PV Get drop info (TargetAreaPointer->;pv drop column ) 
            `Destination....
         $destinationRow:=PV Get drop info (TargetAreaPointer->;pv drop row )  `...coordinates
         PV GET CURRENT CELL (TargetAreaPointer->;$currentColumn;$currentRow)
            `Paste to assigned area
         PV GOTO CELL (TargetAreaPointer->;$destinationColumn;$destinationRow) 
         PV PASTE FROM BLOB (TargetAreaPointer->;$blob;1;1;1;1)
            `Re-establish current cell once the operation is complete
         PV GOTO CELL (TargetAreaPointer->;$currentColumn;$currentRow)
   End case 

See Also

PV GET DRAG SIGNATURES, PV SET DROP SIGNATURES.

Constants

PV Area properties , PV Drag drop allowed and PV Drop mode themes.