Sidebar.Project.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import { UIPanel, UIRow, UIInput, UICheckbox, UIText, UISpan } from './libs/ui.js';
  2. /* import { SidebarProjectMaterials } from './Sidebar.Project.Materials.js'; */
  3. import { SidebarProjectRenderer } from './Sidebar.Project.Renderer.js';
  4. import { SidebarProjectVideo } from './Sidebar.Project.Video.js';
  5. function SidebarProject( editor ) {
  6. var config = editor.config;
  7. var signals = editor.signals;
  8. var strings = editor.strings;
  9. var container = new UISpan();
  10. var settings = new UIPanel();
  11. settings.setBorderTop( '0' );
  12. settings.setPaddingTop( '20px' );
  13. container.add( settings );
  14. // Title
  15. var titleRow = new UIRow();
  16. var title = new UIInput( config.getKey( 'project/title' ) ).setLeft( '100px' ).setWidth( '150px' ).onChange( function () {
  17. config.setKey( 'project/title', this.getValue() );
  18. } );
  19. titleRow.add( new UIText( strings.getKey( 'sidebar/project/title' ) ).setWidth( '90px' ) );
  20. titleRow.add( title );
  21. settings.add( titleRow );
  22. // Editable
  23. var editableRow = new UIRow();
  24. var editable = new UICheckbox( config.getKey( 'project/editable' ) ).setLeft( '100px' ).onChange( function () {
  25. config.setKey( 'project/editable', this.getValue() );
  26. } );
  27. editableRow.add( new UIText( strings.getKey( 'sidebar/project/editable' ) ).setWidth( '90px' ) );
  28. editableRow.add( editable );
  29. settings.add( editableRow );
  30. // WebVR
  31. var vrRow = new UIRow();
  32. var vr = new UICheckbox( config.getKey( 'project/vr' ) ).setLeft( '100px' ).onChange( function () {
  33. config.setKey( 'project/vr', this.getValue() );
  34. } );
  35. vrRow.add( new UIText( strings.getKey( 'sidebar/project/vr' ) ).setWidth( '90px' ) );
  36. vrRow.add( vr );
  37. settings.add( vrRow );
  38. //
  39. /* container.add( new SidebarProjectMaterials( editor ) ); */
  40. container.add( new SidebarProjectRenderer( editor ) );
  41. if ( 'SharedArrayBuffer' in window ) {
  42. container.add( new SidebarProjectVideo( editor ) );
  43. }
  44. // Signals
  45. signals.editorCleared.add( function () {
  46. title.setValue( '' );
  47. config.setKey( 'project/title', '' );
  48. } );
  49. return container;
  50. }
  51. export { SidebarProject };