#include "ortooluidemo_tool.h"
#define ORTOOLUIDEMO__CLASS ORTOOLUIDEMO__CLASSNAME
#define ORTOOLUIDEMO__NAME "UI Demo"
#define ORTOOLUIDEMO__DESC "UI Demo Tool Description"
ORTOOLUIDEMO__NAME,
ORTOOLUIDEMO__DESC,
bool ORToolUIDemo::FBCreate()
{
StartSize[0] = 600;
StartSize[1] = 350;
UICreate ();
UIConfigure ();
FBSystem lSystem;
mScene = lSystem.Scene;
OnShow.Add (
this, (
FBCallback)&ORToolUIDemo::EventToolShow );
OnIdle.Add (
this, (
FBCallback)&ORToolUIDemo::EventToolIdle );
OnPaint.Add (
this, (
FBCallback)&ORToolUIDemo::EventToolPaint );
OnInput.Add (
this, (
FBCallback)&ORToolUIDemo::EventToolInput );
OnResize.Add(
this, (
FBCallback)&ORToolUIDemo::EventToolResize );
mScene->OnChange.Add(
this, (
FBCallback) &ORToolUIDemo::EventSceneChange );
return true;
}
void ORToolUIDemo::FBDestroy()
{
OnShow.Remove (
this, (
FBCallback)&ORToolUIDemo::EventToolShow );
OnIdle.Remove (
this, (
FBCallback)&ORToolUIDemo::EventToolIdle );
OnPaint.Remove (
this, (
FBCallback)&ORToolUIDemo::EventToolPaint );
OnInput.Remove (
this, (
FBCallback)&ORToolUIDemo::EventToolInput );
OnResize.Remove (
this, (
FBCallback)&ORToolUIDemo::EventToolResize);
mScene->OnChange.Remove(
this, (
FBCallback) &ORToolUIDemo::EventSceneChange );
}
void ORToolUIDemo::UICreate()
{
int lS = 4;
AddRegion( "LabelDirections", "LabelDirections",
AddRegion( "TabPanel", "TabPanel",
AddRegion( "Layout", "Layout",
SetControl ("LabelDirections", mLabelDirections );
SetControl ("TabPanel",mTabPanel );
SetControl ("Layout", mLayout[0] );
UICreateLayout0();
UICreateLayout1();
UICreateLayout2();
UICreateLayout3();
UICreateLayout4();
UICreateLayout5();
UICreateLayout6();
UICreateLayout7();
UICreateLayout8();
UICreateLayout9();
}
void ORToolUIDemo::UICreateLayout0()
{
int lS = 4;
int lW = 100;
int lH = 18;
mLayout[0].AddRegion("Button0", "Button0",
mLayout[0].AddRegion("Button1", "Button1",
mLayout[0].AddRegion("Button2", "Button2",
mLayout[0].AddRegion("Button3", "Button3",
mLayout[0].AddRegion("Button4", "Button4",
mLayout[0].AddRegion("Button5", "Button5",
mLayout[0].SetControl("Button0", mButton[0] );
mLayout[0].SetControl("Button1", mButton[1] );
mLayout[0].SetControl("Button2", mButton[2] );
mLayout[0].SetControl("Button3", mButton[3] );
mLayout[0].SetControl("Button4", mButton[4] );
mLayout[0].SetControl("Button5", mButton[5] );
}
void ORToolUIDemo::UICreateLayout1()
{
int lS = 4;
int lW = 100;
int lH = 18;
mLayout[1].AddRegion("List0", "List0",
mLayout[1].AddRegion("List1", "List1",
mLayout[1].SetControl("List0", mList[0] );
mLayout[1].SetControl("List1", mList[1] );
}
void ORToolUIDemo::UICreateLayout2()
{
int lS = 4;
int lW = 200;
int lH = 18;
mLayout[2].AddRegion("Label", "Label",
mLayout[2].AddRegion("Edit", "Edit",
mLayout[2].AddRegion("EditNumber", "EditNumber",
mLayout[2].AddRegion("EditVector", "EditVector",
mLayout[2].AddRegion("EditColor", "EditColor",
mLayout[2].AddRegion("TimeCode", "TimeCode",
mLayout[2].SetControl( "Label", mLabel );
mLayout[2].SetControl( "Edit", mEdit );
mLayout[2].SetControl( "EditNumber", mEditNumber );
mLayout[2].SetControl( "EditVector", mEditVector );
mLayout[2].SetControl( "EditColor", mEditColor );
mLayout[2].SetControl( "TimeCode", mTimeCode );
}
void ORToolUIDemo::UICreateLayout3()
{
int lS = 4;
int lW = 100;
int lH = 50;
mLayout[3].AddRegion("Container0", "Container0",
mLayout[3].AddRegion("Container1", "Container1",
mLayout[3].AddRegion("Container2", "Container2",
mLayout[3].AddRegion("Container3", "Container3",
mLayout[3].AddRegion("Container4", "Container4",
mLayout[3].AddRegion("Container5", "Container5",
mLayout[3].AddRegion("Container6", "Container6",
mLayout[3].AddRegion("Container7", "Container7",
mLayout[3].AddRegion("Container8", "Container8",
mLayout[3].AddRegion("Container9", "Container9",
mLayout[3].AddRegion("Container10", "Container10",
mLayout[3].AddRegion("Container11", "Container11",
mLayout[3].SetControl("Container0", mContainer[0] );
mLayout[3].SetControl("Container1", mContainer[1] );
mLayout[3].SetControl("Container2", mContainer[2] );
mLayout[3].SetControl("Container3", mContainer[3] );
mLayout[3].SetControl("Container4", mContainer[4] );
mLayout[3].SetControl("Container5", mContainer[5] );
mLayout[3].SetControl("Container6", mContainer[6] );
mLayout[3].SetControl("Container7", mContainer[7] );
mLayout[3].SetControl("Container8", mContainer[8] );
mLayout[3].SetControl("Container9", mContainer[9] );
mLayout[3].SetControl("Container10", mContainer[10] );
mLayout[3].SetControl("Container11", mContainer[11] );
}
void ORToolUIDemo::UICreateLayout4()
{
int lS = 4;
int lW = 200;
int lH = 50;
mLayout[4].AddRegion( "Image", "Image",
mLayout[4].AddRegion( "Slider0", "Slider0",
mLayout[4].AddRegion( "Slider1", "Slider1",
mLayout[4].AddRegion( "Thermometer", "Thermometer",
mLayout[4].AddRegion( "View", "View",
mLayout[4].AddRegion( "Tree", "Tree",
mLayout[4].SetControl( "Image", mImage );
mLayout[4].SetControl( "Slider0", mSlider[0] );
mLayout[4].SetControl( "Slider1", mSlider[1] );
mLayout[4].SetControl( "Thermometer", mThermometer );
mLayout[4].SetView ( "View", mView );
}
void ORToolUIDemo::UICreateLayout5()
{
int lS = 4;
mLayout[5].AddRegion("Spread", "Spread",
mLayout[5].SetControl("Spread", mSpread );
}
void ORToolUIDemo::UICreateLayout6()
{
int lS = 10;
int lW = 80;
int lH = 50;
mLayout[6].AddRegion( "ButtonInset", "ButtonInset",
mLayout[6].AddRegion( "LayoutRegion0", "LayoutRegion0",
mLayout[6].AddRegion( "LayoutRegion1", "LayoutRegion1",
mLayout[6].AddRegion( "LayoutRegion2", "LayoutRegion2",
mLayout[6].AddRegion( "LayoutRegion3", "LayoutRegion3",
mLayout[6].AddRegion( "LayoutRegion4", "LayoutRegion4",
mLayout[6].AddRegion( "LayoutRegion5", "LayoutRegion5",
mLayout[6].AddRegion( "LayoutRegion6", "LayoutRegion6",
mLayout[6].AddRegion( "LayoutRegion7", "LayoutRegion7",
mLayout[6].AddRegion( "LayoutRegion8", "LayoutRegion8",
mLayout[6].AddRegion( "LayoutRegion9", "LayoutRegion9",
mLayout[6].AddRegion( "LayoutRegion10", "LayoutRegion10",
mLayout[6].AddRegion( "LayoutRegion11", "LayoutRegion11",
mLayout[6].SetControl( "ButtonInset", mButtonInset );
mLayout[6].SetControl( "LayoutRegion0", mLayoutRegion[0] );
mLayout[6].SetControl( "LayoutRegion1", mLayoutRegion[1] );
mLayout[6].SetControl( "LayoutRegion2", mLayoutRegion[2] );
mLayout[6].SetControl( "LayoutRegion3", mLayoutRegion[3] );
mLayout[6].SetControl( "LayoutRegion4", mLayoutRegion[4] );
mLayout[6].SetControl( "LayoutRegion5", mLayoutRegion[5] );
mLayout[6].SetControl( "LayoutRegion6", mLayoutRegion[6] );
mLayout[6].SetControl( "LayoutRegion7", mLayoutRegion[7] );
mLayout[6].SetControl( "LayoutRegion8", mLayoutRegion[8] );
mLayout[6].SetControl( "LayoutRegion9", mLayoutRegion[9] );
mLayout[6].SetControl( "LayoutRegion10", mLayoutRegion[10] );
mLayout[6].SetControl( "LayoutRegion11", mLayoutRegion[11] );
}
void ORToolUIDemo::UICreateLayout7()
{
int lS = 4;
int lH = 20;
mLayout[7].AddRegion( "LabelDirectionsProperties", "LabelDirectionsProperties",
mLayout[7].AddRegion( "ContainerModel", "ContainerModel",
mLayout[7].AddRegion( "ButtonNextProperty", "ButtonNextProperty",
mLayout[7].AddRegion( "ButtonPreviousProperty", "ButtonPreviousProperty",
mLayout[7].AddRegion( "ListProperties", "ListProperties",
mLayout[7].AddRegion( "EditProperty", "EditProperty",
mLayout[7].AddRegion( "EditPropertyModern", "EditPropertyModern",
mLayout[7].SetControl( "LabelDirectionsProperties", mLabelDirectionsProperties );
mLayout[7].SetControl( "ContainerModel", mContainerModel );
mLayout[7].SetControl( "ListProperties", mListProperties );
mLayout[7].SetControl( "EditProperty", mEditProperty );
mLayout[7].SetControl( "EditPropertyModern", mEditPropertyModern );
mLayout[7].SetControl( "ButtonPreviousProperty", mButtonPreviousProperty );
mLayout[7].SetControl( "ButtonNextProperty", mButtonNextProperty );
}
void ORToolUIDemo::UICreateLayout8()
{
int lS = 4;
int lW = 200;
int lH = 18;
mLayout[8].AddRegion( "ButtonPopup", "ButtonPopup",
mLayout[8].AddRegion( "ButtonFilePopup", "ButtonFilePopup",
mLayout[8].AddRegion( "ButtonProgress", "ButtonProgress",
mLayout[8].AddRegion( "ButtonMessageBox", "ButtonMessageBox",
mLayout[8].AddRegion( "ButtonMessageCheck", "ButtonMessageCheck",
mLayout[8].AddRegion( "ButtonMessageValue", "ButtonMessageValue",
mPopup.AddRegion ( "ButtonClosePopup", "ButtonClosePopup",
mLayout[8].SetControl( "ButtonPopup", mButtonPopup );
mLayout[8].SetControl( "ButtonFilePopup", mButtonFilePopup );
mLayout[8].SetControl( "ButtonProgress", mButtonProgress );
mLayout[8].SetControl( "ButtonMessageBox", mButtonMessageBox );
mLayout[8].SetControl( "ButtonMessageCheck", mButtonMessageCheck );
mLayout[8].SetControl( "ButtonMessageValue", mButtonMessageValue );
mPopup.SetControl ( "ButtonClosePopup", mButtonClosePopup );
}
void ORToolUIDemo::UICreateLayout9()
{
int lS = 4;
int lW = 400;
int lH = 250;
mLayout[9].AddRegion( "Tree", "Tree",
mLayout[9].SetControl( "Tree", mTree );
}
void ORToolUIDemo::UIConfigure()
{
mLabelDirections.Caption = "This tool gives a demonstration of many of the different\n"
"UI elements avaialble using the Open Reality SDK.";
mTabPanel.Items.SetString ("Buttons~Lists~Edit~Container~Views~Spreadsheet~Regions~Properties~Special~Tree");
mTabPanel.OnChange.Add (
this, (
FBCallback)&ORToolUIDemo::EventTabPanelChange );
UIConfigureLayout0();
UIConfigureLayout1();
UIConfigureLayout2();
UIConfigureLayout3();
UIConfigureLayout4();
UIConfigureLayout5();
UIConfigureLayout6();
UIConfigureLayout7();
UIConfigureLayout8();
UIConfigureLayout9();
}
void ORToolUIDemo::UIConfigureLayout0()
{
mButton[2].Caption =
"CheckBox"; mButton[2].Style =
kFBCheckbox;
mButton[4].Caption =
"2States"; mButton[4].Style =
kFB2States;
FBColor lColorRed( 1.0, 0.0, 0.0 );
FBColor lColorGreen( 0.0, 1.0, 0.0 );
}
void ORToolUIDemo::UIConfigureLayout1()
{
mList[1].Items.SetString(
"Vertical~List" ); mList[1].Style =
kFBVerticalList;
}
void ORToolUIDemo::UIConfigureLayout2()
{
mLabel.Caption = "Label";
mEdit.Text = "Edit";
}
void ORToolUIDemo::UIConfigureLayout3()
{
mContainer[0].Items.Add( "Horiz", 0 );
mContainer[0].Items.Add( "None", 1 );
mContainer[1].Items.Add( "Horiz", 0 );
mContainer[1].Items.Add( "Left", 1 );
mContainer[2].Items.Add( "Horiz", 0 );
mContainer[2].Items.Add( "Top", 1 );
mContainer[3].Items.Add( "Horiz", 0 );
mContainer[3].Items.Add( "Right", 1 );
mContainer[4].Items.Add( "Horiz", 0 );
mContainer[4].Items.Add( "Bottom", 1 );
mContainer[5].Items.Add( "Horiz", 0 );
mContainer[5].Items.Add( "Icon", 1 );
mContainer[6].Items.Add( "Vert", 0 );
mContainer[6].Items.Add( "None", 1 );
mContainer[7].Items.Add( "Vert", 0 );
mContainer[7].Items.Add( "Left", 1 );
mContainer[8].Items.Add( "Vert", 0 );
mContainer[8].Items.Add( "Top", 1 );
mContainer[9].Items.Add( "Vert", 0 );
mContainer[9].Items.Add( "Right", 1 );
mContainer[10].Items.Add( "Vert", 0 );
mContainer[10].Items.Add( "Bottom", 1 );
mContainer[11].Items.Add( "Vert", 0 );
mContainer[11].Items.Add( "Icon", 1 );
for( i=0; i<12; i++ )
{
mContainer[
i].ItemIconSet ( 0,
"character_actor.png" );
mContainer[
i].ItemIconSet ( 1,
"devices_body.png" );
mContainer[
i].ItemWidth = 100;
mContainer[
i].ItemHeight = 50;
}
}
void ORToolUIDemo::UIConfigureLayout4()
{
mImage.Filename = "character_actor.png";
}
void ORToolUIDemo::UIConfigureLayout5()
{
mSpread.Caption = "SpreadSheet";
mSpread.MultiSelect = true;
mSpread.ColumnAdd( "Col 1" );
mSpread.ColumnAdd( "Col 2" );
mSpread.ColumnAdd( "Col 3" );
mSpread.RowAdd( "Row 1", 0 );
mSpread.RowAdd( "Row 2", 1 );
mSpread.RowAdd( "Row 3", 2 );
}
void ORToolUIDemo::UIConfigureLayout6()
{
mButtonInset.Caption = "Inset";
mButtonInset.OnClick.Add(
this, (
FBCallback)&ORToolUIDemo::EventButtonInsetClick );
mLayout[6].SetRegionTitle ("LayoutRegion0", "NoBorder" );
mLayout[6].SetRegionTitle ("LayoutRegion1", "Standard" );
mLayout[6].SetRegionTitle ("LayoutRegion2", "Emboss" );
mLayout[6].SetRegionTitle ("LayoutRegion3", "EmbossSmooth" );
mLayout[6].SetRegionTitle ("LayoutRegion4", "EmbossEdgeSmooth" );
mLayout[6].SetRegionTitle ("LayoutRegion5", "EmbossSmoothEdge" );
mLayout[6].SetRegionTitle ("LayoutRegion6", "Smooth" );
mLayout[6].SetRegionTitle ("LayoutRegion7", "EdgeSmooth" );
mLayout[6].SetRegionTitle ("LayoutRegion8", "SmoothEdge" );
mLayout[6].SetRegionTitle ("LayoutRegion9", "Highlight" );
mLayout[6].SetRegionTitle ("LayoutRegion10", "Picking" );
mLayout[6].SetRegionTitle ("LayoutRegion11", "Standard" );
}
void ORToolUIDemo::UIConfigureLayout7()
{
mLabelDirectionsProperties.Caption = "Drag and drop a model into the container. Double click to clear.";
mButtonPreviousProperty.Caption = "<";
mButtonNextProperty.Caption = ">";
mButtonPreviousProperty.PropertyList.Find( "Hint" )->SetString( "Previous Property" );
mButtonNextProperty.PropertyList.Find ( "Hint" )->SetString( "Next Property" );
mContainerModel.OnDragAndDrop.Add (
this, (
FBCallback) &ORToolUIDemo::EventContainerDragAndDrop );
mContainerModel.OnDblClick.Add (
this, (
FBCallback) &ORToolUIDemo::EventContainerDblClick );
mButtonPreviousProperty.OnClick.Add (
this, (
FBCallback) &ORToolUIDemo::EventButtonPreviousProperty );
mButtonNextProperty.OnClick.Add (
this, (
FBCallback) &ORToolUIDemo::EventButtonNextProperty );
mListProperties.OnChange.Add (
this, (
FBCallback) &ORToolUIDemo::EventListPropertyChange );
SetupPropertyList(
NULL );
}
void ORToolUIDemo::UIConfigureLayout8()
{
mPopup.Region.X = 100;
mPopup.Region.Y = 100;
mPopup.Region.Width = 100;
mPopup.Region.Height= 100;
mButtonPopup.Caption = "Popup";
mButtonClosePopup.Caption = "Close Poupup";
mButtonFilePopup.Caption = "File Popup";
mButtonProgress.Caption = "Progress";
mButtonMessageBox.Caption = "Message Box";
mButtonMessageCheck.Caption = "Message Box: With Check";
mButtonMessageValue.Caption = "Message Box: Get User Value";
mButtonPopup.OnClick.Add (
this, (
FBCallback)&ORToolUIDemo::EventButtonPopupClick );
mButtonClosePopup.OnClick.Add (
this, (
FBCallback)&ORToolUIDemo::EventButtonClosePopupClick );
mButtonFilePopup.OnClick.Add (
this, (
FBCallback)&ORToolUIDemo::EventButtonFilePopupClick );
mButtonProgress.OnClick.Add (
this, (
FBCallback)&ORToolUIDemo::EventButtonProgressClick );
mButtonMessageBox.OnClick.Add (
this, (
FBCallback)&ORToolUIDemo::EventButtonMessageBoxClick );
mButtonMessageCheck.OnClick.Add (
this, (
FBCallback)&ORToolUIDemo::EventButtonMessageCheckClick );
mButtonMessageValue.OnClick.Add (
this, (
FBCallback)&ORToolUIDemo::EventButtonMessageValueClick );
}
FBArrayTemplate<FBComponent*> ComponentStack;
void ORToolUIDemo::UIConfigureLayout9()
{
int lCnt;
FBTreeNode* lRoot = mTree.GetRoot();
mTree.Clear();
mTree.AllowExpansion = true;
mTree.AllowCollapse = true;
mTree.AutoScroll = true;
mTree.MultiSelect = true;
FBTreeNode* lSceneNode = mTree.InsertLast( lRoot, "Scene" );
FBTreeNode* lAudioSubNode = mTree.InsertLast( lRoot, "Audio" );
FBTreeNode* lCameraSubNode = mTree.InsertLast( lRoot, "Cameras" );
FBTreeNode* lConstraintNode = mTree.InsertLast( lRoot, "Constraints" );
FBTreeNode* lDevNode = mTree.InsertLast( lRoot, "Devices" );
FBTreeNode* lGroupSubNode = mTree.InsertLast( lRoot, "Groups" );
FBTreeNode* lSetSubNode = mTree.InsertLast( lRoot, "Sets" );
FBTreeNode* lLightSubNode = mTree.InsertLast( lRoot, "Lights" );
FBTreeNode* lMaterialSubNode= mTree.InsertLast( lRoot, "Material" );
FBTreeNode* lPoseSubNode = mTree.InsertLast( lRoot, "Poses" );
FBTreeNode* lShaderSubNode = mTree.InsertLast( lRoot, "Shaders" );
FBTreeNode* lTakeSubNode = mTree.InsertLast( lRoot, "Takes" );
FBTreeNode* lTextureSubNode = mTree.InsertLast( lRoot, "Textures" );
FBTreeNode* lVideoSubNode = mTree.InsertLast( lRoot, "Video" );
FBTreeNode* lFBSDK = mTree.InsertLast( lRoot, "FBSDK" );
FBTreeNode* lSceneSubNode = mTree.InsertLast( lFBSDK, "Scene" );
FBTreeNode* lManipSubNode = mTree.InsertLast( lFBSDK, "Manipulators" );
FBTreeNode* lSystemNode = mTree.InsertLast( lFBSDK, "System" );
FBTreeNode* lRenderSubNode = mTree.InsertLast( lFBSDK, "Render" );
FBTreeNode* lAnimSubNode = mTree.InsertLast( lFBSDK, "Animation" );
FBTreeNode* lStorySubNode = mTree.InsertLast( lFBSDK, "Story" );
FBTreeNode* lFolderSubNode = mTree.InsertLast( lFBSDK, "Folders" );
for( i=0; i<lCnt; i++ )
{
ComponentStack.Clear();
if( lComp->Is( FBDevice::TypeInfo ) )
{
AddToTree( lDevNode, lComp );
}
else if( lComp->Is( FBCamera::TypeInfo ) )
{
AddToTree( lCameraSubNode, lComp );
}
else if( lComp->Is( FBLight::TypeInfo )
|| lComp->Is( FBGlobalLight::TypeInfo ) )
{
AddToTree( lLightSubNode, lComp );
}
else if( lComp->Is( FBConstraint::TypeInfo ))
{
AddToTree( lConstraintNode, lComp );
}
else if( lComp->Is( FBPose::TypeInfo ) )
{
AddToTree( lPoseSubNode, lComp );
}
else if( lComp->Is( FBModel::TypeInfo ) )
{
if (FBString(lComp->Name)==FBString("Scene"))
{
AddToTree( lSceneNode, lComp, false );
}
}
else if( lComp->Is( FBShader::TypeInfo ) )
{
AddToTree( lShaderSubNode, lComp );
}
else if(lComp->Is( FBSystem::TypeInfo )
|| lComp->Is( FBApplication::TypeInfo )
|| lComp->Is( FBPlayerControl::TypeInfo )
|| lComp->Is( FBConstraintManager::TypeInfo )
#ifndef K_NO_TRIGGER
|| lComp->Is( FBTriggerManager::TypeInfo )
#endif
)
{
AddToTree( lSystemNode, lComp );
}
else if( lComp->Is( FBScene::TypeInfo ) )
{
AddToTree( lSceneSubNode, lComp, false );
}
else if(lComp->Is( FBRenderer::TypeInfo ))
{
AddToTree( lRenderSubNode, lComp );
}
else if(lComp->Is( FBMaterial::TypeInfo ))
{
AddToTree( lMaterialSubNode, lComp );
}
else if(lComp->Is( FBTexture::TypeInfo ))
{
AddToTree( lTextureSubNode, lComp );
}
else if(lComp->Is( FBVideo::TypeInfo ))
{
AddToTree( lVideoSubNode, lComp );
}
else if(lComp->Is( FBAudioIn::TypeInfo )
|| lComp->Is( FBAudioOut::TypeInfo )
)
{
AddToTree( lAudioSubNode, lComp );
}
else if(lComp->Is( FBStory::TypeInfo ))
{
AddToTree( lStorySubNode, lComp );
}
else if(lComp->Is( FBGroup::TypeInfo ))
{
AddToTree( lGroupSubNode, lComp );
}
else if(lComp->Is( FBSet::TypeInfo ))
{
AddToTree( lSetSubNode, lComp );
}
else if(lComp->Is( FBTake::TypeInfo ))
{
AddToTree( lTakeSubNode, lComp );
}
else if( lComp->Is( FBManipulator::TypeInfo ) )
{
AddToTree( lManipSubNode, lComp );
}
else if( lComp->Is( FBFolder::TypeInfo ) )
{
AddToTree( lFolderSubNode, lComp );
}
else if(lComp->Is( FBAnimationNode::TypeInfo )
|| lComp->Is( FBFCurve::TypeInfo )
)
{
AddToTree( lAnimSubNode, lComp );
}
}
}
void ORToolUIDemo::AddToTree( FBTreeNode* pNode, FBComponent* pComp, bool pAddRoot )
{
if( !pComp )
return;
if (ComponentStack.Find( pComp )==-1)
{
ComponentStack.Add( pComp );
FBTreeNode* lNode;
if (pAddRoot)
{
lNode = mTree.InsertLast( pNode, pComp->Name );
lNode->Reference = (kReference)pComp;
} else
{
lNode = pNode;
}
int lCnt = pComp->Components.GetCount();
for( i=0; i<lCnt; i++ )
{
FBComponent* lComp = pComp->Components[
i];
AddToTree( lNode, lComp );
}
}
}
{
}
{
FBEventShow lEvent( pEvent );
if( lEvent.Shown )
{
}
else
{
}
}
{
}
{
}
{
}
{
switch( mTabPanel.ItemIndex )
{
case 0: SetControl( "Layout", mLayout[0] ); break;
case 1: SetControl( "Layout", mLayout[1] ); break;
case 2: SetControl( "Layout", mLayout[2] ); break;
case 3: SetControl( "Layout", mLayout[3] ); break;
case 4: SetControl( "Layout", mLayout[4] ); break;
case 5: SetControl( "Layout", mLayout[5] ); break;
case 6: SetControl( "Layout", mLayout[6] ); break;
case 7: SetControl( "Layout", mLayout[7] ); break;
case 8: SetControl( "Layout", mLayout[8] ); break;
case 9: SetControl( "Layout", mLayout[9] ); break;
}
}
void ORToolUIDemo::EventButtonPopupClick(
HISender pSender,
HKEvent pEvent )
{
mPopup.Modal = true;
mPopup.Show();
}
void ORToolUIDemo::EventButtonFilePopupClick(
HISender pSender,
HKEvent pEvent )
{
FBFilePopup lFilePopup;
lFilePopup.Caption = "File Popup";
lFilePopup.Filter = "*.fbx";
FBSystem lSystem;
FBString lScenesPath( lSystem.ApplicationPath );
lScenesPath += "\\..\\OpenRealitySDK\\Scenes";
lFilePopup.Path = (char*)lScenesPath;
lFilePopup.Execute();
}
void ORToolUIDemo::EventButtonProgressClick(
HISender pSender,
HKEvent pEvent )
{
FBProgress lProgress;
char lBuffer[30];
lProgress.Caption = "Progress Caption";
lProgress.Text = "Progress Text";
for( i=0; i<10; i++ )
{
sprintf( lBuffer, "Progress %d", i );
lProgress.Text = lBuffer;
}
}
void ORToolUIDemo::EventButtonMessageBoxClick(
HISender pSender,
HKEvent pEvent )
{
FBMessageBox(
"Message Box",
"Message",
"Button 1",
"Button 2",
"Button 3", 1 );
}
void ORToolUIDemo::EventButtonMessageCheckClick(
HISender pSender,
HKEvent pEvent )
{
bool lCheck;
FBMessageBoxWithCheck(
"Message Box with Check",
"Check",
"Button 1",
"Button 2",
"Button 3",
"Check Box", lCheck, 0, 1 );
}
void ORToolUIDemo::EventButtonMessageValueClick(
HISender pSender,
HKEvent pEvent )
{
char lValue[100];
lValue[0] = '\0';
}
void ORToolUIDemo::EventButtonClosePopupClick(
HISender pSender,
HKEvent pEvent )
{
mPopup.Close();
}
void ORToolUIDemo::EventButtonInsetClick(
HISender pSender,
HKEvent pEvent )
{
bool lState = mButtonInset.State != 0;
mLayout[6].SetBorder (
"LayoutRegion0",
kFBNoBorder,
true,lState, 2, 2, 90,0);
mLayout[6].SetBorder (
"LayoutRegion2",
kFBEmbossBorder,
true,lState, 2, 2, 90,0);
mLayout[6].SetBorder (
"LayoutRegion10",
kFBPickingBorder,
true,lState, 2, 2, 90,0);
}
void ORToolUIDemo::EventContainerDragAndDrop(
HISender pSender,
HKEvent pEvent )
{
FBEventDragAndDrop lDragAndDrop( pEvent );
switch( lDragAndDrop.State )
{
{
lDragAndDrop.Accept();
}
break;
{
SetupPropertyList( (FBModel*)lDragAndDrop.Get(0) );
}
break;
}
}
void ORToolUIDemo::SetupPropertyList( FBModel* lModel )
{
mContainerModel.Items.Clear();
mListProperties.Items.Clear();
mEditProperty.Property = 0;
mEditPropertyModern.Property = 0;
mButtonPreviousProperty.Enabled = false;
mButtonNextProperty.Enabled = false;
if( lModel )
{
mContainerModel.Items.Add( lModel->Name, (kReference)lModel );
int lIdx = 0;
int lNbProps = lModel->PropertyList.GetCount();
mListProperties.Items.Add( "<Select Property>", (kReference)0 );
mListProperties.ItemIndex = 0;
for( lIdx = 0; lIdx < lNbProps; ++lIdx )
{
FBProperty* lProp = lModel->PropertyList[lIdx];
{
mListProperties.Items.Add( lProp->GetName(), (kReference)lProp );
}
}
mButtonPreviousProperty.Enabled = true;
mButtonNextProperty.Enabled = true;
}
}
void ORToolUIDemo::EventContainerDblClick(
HISender pSender,
HKEvent pEvent )
{
SetupPropertyList(
NULL );
}
void ORToolUIDemo::EventListPropertyChange(
HISender pSender,
HKEvent pEvent )
{
FBProperty* lProp = (FBProperty*)mListProperties.Items.GetReferenceAt( mListProperties.ItemIndex );
mEditProperty.Property = lProp;
mEditPropertyModern.Property = lProp;
}
{
if( mContainerModel.Items.GetCount() != 0 )
{
FBEventSceneChange lEvent( pEvent );
FBModel* lModel = (FBModel*)mContainerModel.Items.GetReferenceAt( 0 );
{
SetupPropertyList(
NULL );
}
}
}
void ORToolUIDemo::EventButtonPreviousProperty(
HISender pSender,
HKEvent pEvent )
{
mListProperties.ItemIndex = ( mListProperties.ItemIndex + mListProperties.Items.GetCount() - 1 ) % mListProperties.Items.GetCount();
}
void ORToolUIDemo::EventButtonNextProperty(
HISender pSender,
HKEvent pEvent )
{
mListProperties.ItemIndex = ( mListProperties.ItemIndex + 1 ) % mListProperties.Items.GetCount();
}