Skip to content

ApplicationDraggable

interface cAlgo.API Since 5.2

DesktopCLICloud

Represents a draggable box that can host a control and shown over application.

Environment behaviour

CLI — not supported. Never displayed: starts at X=0, Y=0; position changes are not applied and LocationChanged never fires.

Cloud — not supported. Never displayed: starts at X=0, Y=0; position changes are not applied and LocationChanged never fires.

Definition

public interface ApplicationDraggable

Namespace: cAlgo.API · Group: Application

Examples

public partial class TestExample : Robot
{
   private const string Label = "Draggable";

   protected override void OnStart()
   {
       var openPositionButton = new Button {Text = "Open Position"};

       openPositionButton.Click += _ => ExecuteMarketOrder(TradeType.Buy, SymbolName, Symbol.VolumeInUnitsMin, Label);

       var closePositionsButton = new Button {Text = "Close Position"};

       closePositionsButton.Click += _ => Positions.Find(Label)?.Close();

       var panel = new StackPanel {Orientation = Orientation.Vertical, BackgroundColor = Color.Red};

       panel.AddChild(openPositionButton);
       panel.AddChild(closePositionsButton);

       var draggable = Application.Draggables.Add();

       draggable.ShowGrip = true;
       draggable.Child = panel;

       draggable.LocationChanged += args => Print($"Draggable Location Changed: {args.Draggable.X}, {args.Draggable.Y}");
   }
}
import clr

clr.AddReference("cAlgo.API")

# Import cAlgo API types
from cAlgo.API import *

# Import trading wrapper functions
from robot_wrapper import *

from System import Action

class Test():
    Label = "Draggable"
    def on_start(self):
        openPositionButton = Button()
        openPositionButton.Text = "Open Position"
        openPositionButton.Click += self.open_position

        closePositionsButton = Button()
        closePositionsButton.Text = "Close Position"
        closePositionsButton.Click += self.close_position

        panel = StackPanel()
        panel.Orientation = Orientation.Vertical
        panel.BackgroundColor = Color.Red

        panel.AddChild(openPositionButton)
        panel.AddChild(closePositionsButton)

        draggable = api.Application.Draggables.Add()
        draggable.ShowGrip = True
        draggable.Child = panel

        draggable.LocationChanged += lambda args: print(f"Draggable Location Changed: {args.Draggable.X}, {args.Draggable.Y}")

    def open_position(self, args):
        api.ExecuteMarketOrder(TradeType.Buy, api.SymbolName, api.Symbol.VolumeInUnitsMin, self.Label)

    def close_position(self, args):
        position = api.Positions.Find(self.Label)

        if position is not None:
            position.Close()
{
  "AccessRights": "None"
}

Properties

Name Description
ChildDesktopCLICloudControlBase Get / set the content control inside the draggable.
IdDesktopCLICloudstring Get unique ID of the Draggable.
IsVisibleDesktopCLICloudbool Get / set visibility of draggable.
ShowGripDesktopCLICloudbool Get / set move grip visibility (default: true).
XDesktopCLIClouddouble Get / set X coordinate (default: 0).
YDesktopCLIClouddouble Get / set Y coordinate (default: 0).

Events

Name Description
LocationChangedDesktopCLICloudAction<ApplicationDraggableLocationChangedEventArgs> Occurs when the draggable's location is changed.

See also