Browse Source

Expand arrows for project and hierarchy frames

Josh Engebretson 10 years ago
parent
commit
1d0ca50d8c

+ 10 - 0
Resources/EditorData/AtomicEditor/resources/default_skin/skin.tb.txt

@@ -508,3 +508,13 @@ elements
 		bitmap focus_r4.png
 		cut 11
 		expand 4
+
+	TBCheckBox.uilistview
+		bitmap arrow_right_dark.png
+		type Image
+		overrides
+			element TBCheckBox.uilistview_selected
+				state selected
+	TBCheckBox.uilistview_selected
+		bitmap arrow_down.png
+		type Image

+ 19 - 5
Script/AtomicEditor/ui/HierarchyFrame.ts

@@ -47,6 +47,9 @@ class HierarchyFrame extends Atomic.UIWidget {
 
         var node = ev.node;
 
+        if (this.filterNode(node))
+          return;
+
         if (!node.parent || node.scene != this.scene)
             return;
 
@@ -60,10 +63,11 @@ class HierarchyFrame extends Atomic.UIWidget {
 
     handleNodeRemoved(ev: Atomic.NodeRemovedEvent) {
 
-        console.log("handle Node Removed");
-
         var node = ev.node;
 
+        if (this.filterNode(node))
+          return;
+
         delete this.nodeIDToItemID[node.id];
 
         if (!node.parent || node.scene != this.scene)
@@ -188,10 +192,20 @@ class HierarchyFrame extends Atomic.UIWidget {
         return false;
     }
 
-    recursiveAddNode(parentID: number, node: Atomic.Node):number {
+    filterNode(node: Atomic.Node): boolean {
+
+        if (!node) return false;
+
+        if (node.name == "__atomic_sceneview3d_camera") return true;
+
+        return false;
+
+    }
+
+    recursiveAddNode(parentID: number, node: Atomic.Node): number {
 
-        //if (node.isTemporary())
-        //  return;
+        if (this.filterNode(node))
+          return;
 
         var name = node.name;
 

+ 22 - 3
Source/Atomic/UI/UIListView.cpp

@@ -83,7 +83,8 @@ public:
     }
 
 private:
-    TBTextField* textField_;
+    TBCheckBox* expandBox_;
+    TBTextField* textField_;    
     ListViewItemSource *source_;
     TBSelectItemViewer *sourceviewer_;
     int index_;
@@ -169,6 +170,7 @@ ListViewItemWidget::ListViewItemWidget(ListViewItem *item, ListViewItemSource *s
     , sourceviewer_(sourceviewer)
     , index_(index)
     , item_(item)
+    , expandBox_(0)
     , textField_(0)
 {
     SetLayoutDistribution(LAYOUT_DISTRIBUTION_GRAVITY);
@@ -187,6 +189,24 @@ ListViewItemWidget::ListViewItemWidget(ListViewItem *item, ListViewItemSource *s
         GetContentRoot()->AddChild(spacer);
     }
 
+    if (item_->children_.Size())
+    {
+        expandBox_ = new TBCheckBox();
+        expandBox_->SetSkinBg(TBIDC("TBCheckBox.uilistview"));
+        expandBox_->SetValue(item_->GetExpanded());
+        expandBox_->SetID(item->id);
+        GetContentRoot()->AddChild(expandBox_);
+    }
+    else
+    {
+        LayoutParams lp;
+        lp.SetWidth(12);
+        lp.SetHeight(4);
+        TBWidget* spacer = new TBWidget();
+        spacer->SetLayoutParams(lp);
+        GetContentRoot()->AddChild(spacer);
+    }
+
     if (item->icon_.Length())
     {
         TBSkinImage* skinImage = new TBSkinImage(TBIDC(item->icon_.CString()));
@@ -206,8 +226,6 @@ ListViewItemWidget::ListViewItemWidget(ListViewItem *item, ListViewItemSource *s
 
     SetSkinBg(TBIDC("TBSelectItem"));
     GetContentRoot()->AddChild(tfield);
-
-    SetID(item->id);
 }
 
 bool ListViewItemWidget::OnEvent(const TBWidgetEvent &ev)
@@ -221,6 +239,7 @@ bool ListViewItemWidget::OnEvent(const TBWidgetEvent &ev)
     if (ev.type == EVENT_TYPE_CLICK && ev.target->GetID() == item_->id)
     {
         item_->SetExpanded(!item_->GetExpanded());
+
         source_->list_->InvalidateList();
 
         // want to bubble

+ 1 - 1
Source/AtomicEditorWork/Editors/SceneEditor3D/SceneView3D.cpp

@@ -78,7 +78,7 @@ SceneView3D ::SceneView3D(Context* context, SceneEditor3D *sceneEditor) :
         octree_ = scene_->CreateComponent<Octree>();
     }
 
-    cameraNode_ = scene_->CreateChild("Camera");
+    cameraNode_ = scene_->CreateChild("__atomic_sceneview3d_camera");
     cameraNode_->SetTemporary(true);
     camera_ = cameraNode_->CreateComponent<Camera>();