Class TCastleTouchNavigation

Unit

Declaration

type TCastleTouchNavigation = class(TCastleUserInterface)

Description

Show draggable controls in the corner, to navigate in the viewport comfortably on touch devices.

Depending on AutoTouchInterface and TouchInterface, we will show 0, 1 or 2 controls to navigate at the bottom, in the left-bottom and right-bottom. It is easiest to just set

MyTouchNavigation.TouchInterface := tiNone; // default
MyTouchNavigation.AutoTouchInterface := ApplicationProperties.TouchDevice;

to activate this automatically on mobile devices, leaving MyTouchNavigation.TouchInterface equal tiNone on non-mobile devices. Alternatively, you can do something like this to control it manually on mobile devices:

MyTouchNavigation.AutoTouchInterface := false; // default
MyTouchNavigation.Exists := ApplicationProperties.TouchDevice;
MyTouchNavigation.TouchInterface := tiSomething;

The size and position of this control determines where the controls appear. Typically this control is added as a direct child of TCastleViewport and has FullSize = True, this way it just fills the TCastleViewport.

The Viewport determines the viewport where navigation is affected by this control. In case of AutoTouchInterface, we also look at Viewport value of TCastleViewport.NavigationType to determine the best navigation automatically. Typically the Viewport is also our visual parent, but it doesn't have to be.

Hierarchy

Overview

Fields

Public nested const DefaultAutoWalkTouchInterface = tiWalk;
Public nested const DefaultAutoExamineTouchInterface = tiPan;

Methods

Public constructor Create(AOwner: TComponent); override;
Public procedure Update(const SecondsPassed: Single; var HandleInput: Boolean); override;
Public function PropertySections(const PropertyName: String): TPropertySections; override;

Properties

Published property Viewport: TCastleViewport read FViewport write SetViewport;
Published property TouchInterface: TTouchInterface read FTouchInterface write SetTouchInterface stored TouchInterfaceStored default tiNone;
Published property AutoTouchInterface: boolean read FAutoTouchInterface write SetAutoTouchInterface default false;
Published property AutoWalkTouchInterface: TTouchInterface read FAutoWalkTouchInterface write SetAutoWalkTouchInterface default DefaultAutoWalkTouchInterface;
Published property AutoExamineTouchInterface: TTouchInterface read FAutoExamineTouchInterface write SetAutoExamineTouchInterface default DefaultAutoExamineTouchInterface;
Published property ControlMouseDragMode: Boolean read FControlMouseDragMode write SetControlMouseDragMode default false;
Published property Scale: Single read FScale write SetScale default 1.0;

Description

Fields

Public nested const DefaultAutoWalkTouchInterface = tiWalk;
 
Public nested const DefaultAutoExamineTouchInterface = tiPan;
 

Methods

Public constructor Create(AOwner: TComponent); override;
 
Public procedure Update(const SecondsPassed: Single; var HandleInput: Boolean); override;
 
Public function PropertySections(const PropertyName: String): TPropertySections; override;
 

Properties

Published property Viewport: TCastleViewport read FViewport write SetViewport;

Viewport where navigation is affected by this control. In case of AutoTouchInterface, we also look at Viewport value of TCastleViewport.NavigationType to determine the best navigation automatically.

You must set this property to something non-nil, otherwise this UI control doesn't do much, it will not affect anything.

Published property TouchInterface: TTouchInterface read FTouchInterface write SetTouchInterface stored TouchInterfaceStored default tiNone;

Configure controls to be visible and available to navigate. This automatically manages under the hood 0, 1 or 2 controls to navigate, placing them at suitable positions and handling their operations.

Note that you can set AutoTouchInterface = True to have this property automatically adjusted. (In which case you should not set this directly.)

When ControlMouseDragMode then this property additionally controls the TCastleWalkNavigation.MouseDragMode.

Published property AutoTouchInterface: boolean read FAutoTouchInterface write SetAutoTouchInterface default false;

Automatically adjust TouchInterface (showing / hiding proper touch controls) based on the current Viewport navigation type in TCastleViewport.NavigationType.

Published property AutoWalkTouchInterface: TTouchInterface read FAutoWalkTouchInterface write SetAutoWalkTouchInterface default DefaultAutoWalkTouchInterface;

When using AutoTouchInterface = True, which touch interface should be used when walking (since there are multiple sensible choices). Select between tiWalkRotate or tiWalk (default).

Published property AutoExamineTouchInterface: TTouchInterface read FAutoExamineTouchInterface write SetAutoExamineTouchInterface default DefaultAutoExamineTouchInterface;

When using AutoTouchInterface = True, which touch interface should be used in examine camera (since examine camera can use multi-touch gesture instead). Select between tiPan (default) or tiNone.

Published property ControlMouseDragMode: Boolean read FControlMouseDragMode write SetControlMouseDragMode default false;

Control also TCastleWalkNavigation.MouseDragMode by the AutoTouchInterface and TouchInterface setting.

We advise to not use this property, and instead set TCastleWalkNavigation.MouseDragMode manually and explicitly. Otherwise this automatic control may be confusing, as it overrides what you set in editor as TCastleWalkNavigation.MouseDragMode value.

Published property Scale: Single read FScale write SetScale default 1.0;

Visual scale of the device.


Generated by PasDoc 0.16.0.