#include "ormanipcamera_layout.h"
#define ORMANIPCAMERA__LAYOUT ORManipulatorCameraLayout
ORMANIPCAMERA__CLASSSTR,
bool ORManipulatorCameraLayout::FBCreate()
{
if( FBManipulatorLayout::FBCreate() )
{
mManipulator = ((ORManipulatorCamera *)(FBManipulator *)Manipulator);
UICreate ();
UIConfigure ();
UIReset ();
mSystem.OnUIIdle.Add(
this, (
FBCallback) &ORManipulatorCameraLayout::EventUIIdle );
return true;
}
return false;
}
void ORManipulatorCameraLayout::FBDestroy()
{
mSystem.OnUIIdle.Remove(
this, (
FBCallback) &ORManipulatorCameraLayout::EventUIIdle );
FBManipulatorLayout::FBDestroy();
}
void ORManipulatorCameraLayout::UICreate()
{
int lS = 4;
int lH = 18;
AddRegion("LabelAOV", "LabelAOV",
AddRegion("ButtonAnimatingAOV", "ButtonAnimatingAOV",
AddRegion("ButtonAOVUpOrDown", "ButtonAOVUpOrDown",
AddRegion("EditNumberAOVStep", "EditNumberAOVStep",
AddRegion("LabelRotate", "LabelRotate",
AddRegion("ButtonRotating", "ButtonRotating",
AddRegion("ButtonDirectionLR", "ButtonDirectionLR",
AddRegion("EditNumberRotateStep","EditNumberRotateStep",
AddRegion("LabelList", "LabelList",
AddRegion("ListModel", "ListModel",
AddRegion("ButtonClearList", "ButtonClearList",
AddRegion("EditVectorPosition", "EditVectorPosition",
SetControl( "LabelAOV", mLabelAOV );
SetControl( "ButtonAnimatingAOV", mButtonAnimatingAOV );
SetControl( "ButtonAOVUpOrDown", mButtonAOVUpOrDown );
SetControl( "EditNumberAOVStep", mEditNumberAOVStep );
SetControl( "LabelRotate", mLabelRotate );
SetControl( "ButtonRotating", mButtonRotating );
SetControl( "ButtonDirectionLR", mButtonDirectionLR );
SetControl( "EditNumberRotateStep", mEditNumberRotateStep );
SetControl( "LabelList", mLabelList );
SetControl( "ListModel", mListModel );
SetControl( "ButtonClearList", mButtonClearList );
SetControl( "EditVectorPosition", mEditVectorPosition );
}
void ORManipulatorCameraLayout::UIConfigure()
{
mLabelAOV.Caption = "Angle Of View";
mButtonAOVUpOrDown.Caption = "Zoom Out";
mEditNumberAOVStep.Min = 0.01;
mEditNumberAOVStep.Max = 0.1;
mEditNumberAOVStep.Precision = 3.3;
mEditNumberAOVStep.SmallStep = 0.01;
mEditNumberAOVStep.LargeStep = 0.01;
mLabelRotate.Caption = "Rotation/Observation";
mButtonDirectionLR.Caption = "Turning Left";
mEditNumberRotateStep.Min = 0.01;
mEditNumberRotateStep.SmallStep = 0.01;
mEditNumberRotateStep.LargeStep = 0.01;
mEditNumberRotateStep.Max = 3;
mEditNumberRotateStep.Precision = 3.3;
mLabelList.Caption = "Turning Objects";
mListModel.Items.SetString ("---Current Camera---");
mButtonClearList.Caption = "Clear Object";
mButtonAnimatingAOV.Caption = mManipulator->mAnimatingAOV ? "Zooming":"Stopped";
mButtonAOVUpOrDown.State = mManipulator->mZoomingOut ? 1:0;
mEditNumberAOVStep.Value = mManipulator->mStepAOV;
mButtonRotating.Caption = mManipulator->mRotating ? "Turning":"Stopped";
mButtonDirectionLR.State = mManipulator->mTurningLeft ? 1:0;
mEditNumberRotateStep.Value = mManipulator->mStepRotate;
mButtonAnimatingAOV.OnClick.Add (
this, (
FBCallback) &ORManipulatorCameraLayout::EventButtonAnimatingAOVClick );
mButtonAOVUpOrDown.OnClick.Add (
this, (
FBCallback) &ORManipulatorCameraLayout::EventButtonAOVUpOrDownClick );
mEditNumberAOVStep.OnChange.Add (
this, (
FBCallback) &ORManipulatorCameraLayout::EventEditNumberAOVStepChange );
mButtonRotating.OnClick.Add (
this, (
FBCallback) &ORManipulatorCameraLayout::EventButtonRotatingClick );
mButtonDirectionLR.OnClick.Add (
this, (
FBCallback) &ORManipulatorCameraLayout::EventButtonDirectionLRClick );
mEditNumberRotateStep.OnChange.Add (
this, (
FBCallback) &ORManipulatorCameraLayout::EventEditNumberRotateStepChange );
mListModel.OnDragAndDrop.Add (
this, (
FBCallback) &ORManipulatorCameraLayout::EventListModelDragAndDrop );
mButtonClearList.OnClick.Add (
this, (
FBCallback) &ORManipulatorCameraLayout::EventButtonClearListClick );
}
void ORManipulatorCameraLayout::UIReset()
{
mListModel.Items.Clear();
if( mManipulator->mModelRotate )
{
mListModel.Items.Add( mManipulator->mModelRotate->Name, (unsigned long) mManipulator->mModelRotate );
}
else
{
mListModel.Items.SetString ("---Current Camera---");
}
mButtonAOVUpOrDown.State = mManipulator->mZoomingOut ? 1:0;
mButtonAnimatingAOV.Caption = mManipulator->mAnimatingAOV ? "Zooming":"Stopped";
mEditNumberAOVStep.Value = mManipulator->mStepAOV;
mButtonRotating.Caption = mManipulator->mRotating ? "Turning":"Stopped";
mEditNumberRotateStep.Value = mManipulator->mStepRotate;
mButtonDirectionLR.State = mManipulator->mTurningLeft ? 1:0;
}
void ORManipulatorCameraLayout::UIRefresh()
{
if( mManipulator->mModelRotate )
{
}
mEditVectorPosition.Value = lPos;
}
void ORManipulatorCameraLayout::EventUIIdle(
HISender pSender,
HKEvent pEvent )
{
UIRefresh();
}
void ORManipulatorCameraLayout::EventButtonAnimatingAOVClick(
HISender pSender,
HKEvent pEvent )
{
mManipulator->mAnimatingAOV = mManipulator->mAnimatingAOV ? false : true;
UIReset();
}
void ORManipulatorCameraLayout::EventButtonAOVUpOrDownClick(
HISender pSender,
HKEvent pEvent )
{
mManipulator->mZoomingOut = mButtonAOVUpOrDown.State == 1 ? true : false;
UIReset();
}
void ORManipulatorCameraLayout::EventButtonClearListClick(
HISender pSender,
HKEvent pEvent )
{
mManipulator->mModelRotate =
NULL;
UIReset();
}
void ORManipulatorCameraLayout::EventButtonRotatingClick(
HISender pSender,
HKEvent pEvent )
{
mManipulator->mRotating = mManipulator->mRotating ? false : true;
UIReset();
}
void ORManipulatorCameraLayout::EventButtonDirectionLRClick(
HISender pSender,
HKEvent pEvent )
{
mManipulator->mTurningLeft = mButtonDirectionLR.State == 1 ? true : false;
UIReset();
}
void ORManipulatorCameraLayout::EventEditNumberAOVStepChange(
HISender pSender,
HKEvent pEvent )
{
mManipulator->mStepAOV = mEditNumberAOVStep.Value;
UIReset();
}
void ORManipulatorCameraLayout::EventEditNumberRotateStepChange(
HISender pSender,
HKEvent pEvent )
{
mManipulator->mStepRotate = mEditNumberRotateStep.Value;
UIReset();
}
void ORManipulatorCameraLayout::EventListModelDragAndDrop(
HISender pSender,
HKEvent pEvent )
{
FBEventDragAndDrop lDrag(pEvent);
switch( lDrag.State )
{
{
lDrag.Accept();
}
break;
{
mManipulator->mModelRotate = (FBModel*) lDrag.Get(0);
UIReset();
}
break;
}
}