code_uisceneview.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // UISceneView application source code
  2. // some code from UISceneview2D sample program
  3. using System;
  4. using AtomicEngine;
  5. public class code_uisceneview : CSComponent {
  6. public void Setup( UIWidget layout )
  7. {
  8. var dest = new AtomicEngine.Vector<AtomicEngine.UIWidget>();
  9. layout.SearchWidgetClass( "TBButton", dest );
  10. for (var ii = 0; ii < dest.Size; ii++) {
  11. dest[ii].SubscribeToEvent<WidgetEvent> (dest [ii], HandleUisceneviewEvent );
  12. }
  13. UISceneView mysceneview = new UISceneView(); // make a scene...view
  14. mysceneview.SetId( "UISceneViewDemo"); // tag it, in case we want to get it again later
  15. mysceneview.SubscribeToEvent<WidgetEvent> (mysceneview, HandleUisceneviewEvent );
  16. var cache = GetSubsystem<ResourceCache>();
  17. Scene myscene = new Scene();
  18. if ( !myscene.Equals(null) ) {
  19. if ( myscene.LoadXML( (cache.GetFile("Scenes/sceneview.scene")))) {
  20. Node cameraNode = myscene.GetChild("Camera", true);
  21. Camera mycamera = cameraNode.GetComponent<Camera>();
  22. mysceneview.SetView(myscene, mycamera);
  23. mysceneview.SetAutoUpdate(true);
  24. }
  25. }
  26. UILayoutParams lpx = new UILayoutParams();
  27. lpx.SetWidth (640);
  28. lpx.SetHeight(320);
  29. lpx.SetMinWidth(640);
  30. lpx.SetMinHeight(320);
  31. lpx.SetMaxWidth (640);
  32. lpx.SetMaxHeight(320);
  33. mysceneview.SetLayoutParams(lpx);
  34. UIWidget lower = layout.GetWidget("uisceneviewlower");
  35. UIWidget mysvc = layout.GetWidget("sceneviewcontainer");
  36. mysvc.AddChildBefore(mysceneview, lower);
  37. }
  38. private static void HandleUisceneviewEvent( WidgetEvent ev )
  39. {
  40. UIWidget widget = (UIWidget)ev.Target;
  41. if ( widget.Equals(null)) return;
  42. if ( ev.Type == UI_EVENT_TYPE.UI_EVENT_TYPE_CLICK) {
  43. if (widget.GetId() == "uisceneviewcode" ) {
  44. AtomicMain.AppLog( "UISceneView support : " + widget.GetId() + " was pressed " );
  45. AtomicMain.ViewCode ( "Components/code_uisceneview.cs", widget.GetParent() );
  46. }
  47. if (widget.GetId() == "uisceneviewlayout" ) {
  48. AtomicMain.AppLog( "UISceneView support : " + widget.GetId() + " was pressed ");
  49. AtomicMain.ViewCode ( "Scenes/layout_uisceneview.ui.txt", widget.GetParent() );
  50. }
  51. }
  52. if ( widget.GetId() == "UISceneViewDemo" ) {
  53. AtomicMain.AppLog( "UISceneView event : " + widget.GetId() + " got event= "+ AtomicMain.EventReport((int)ev.Type) );
  54. }
  55. }
  56. }