Sidebar.Settings.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. */
  4. Sidebar.Settings = function ( editor ) {
  5. var config = editor.config;
  6. var signals = editor.signals;
  7. var container = new UI.Panel();
  8. container.setBorderTop( '0' );
  9. container.setPaddingTop( '20px' );
  10. container.setPaddingBottom( '20px' );
  11. // language
  12. var options = {
  13. 'en': 'English',
  14. 'zh': '中文'
  15. };
  16. var languageRow = new UI.Row();
  17. var language = new UI.Select().setWidth( '150px' );
  18. language.setOptions( options );
  19. if ( config.getKey( 'language' ) !== undefined ) {
  20. language.setValue( config.getKey( 'language' ) );
  21. }
  22. language.onChange( function () {
  23. var value = this.getValue();
  24. editor.config.setKey( 'language', value );
  25. } );
  26. languageRow.add( new UI.Text( 'Language' ).setWidth( '90px' ) );
  27. languageRow.add( language );
  28. container.add( languageRow );
  29. // theme
  30. var options = {
  31. 'css/light.css': 'light',
  32. 'css/dark.css': 'dark'
  33. };
  34. var themeRow = new UI.Row();
  35. var theme = new UI.Select().setWidth( '150px' );
  36. theme.setOptions( options );
  37. if ( config.getKey( 'theme' ) !== undefined ) {
  38. theme.setValue( config.getKey( 'theme' ) );
  39. }
  40. theme.onChange( function () {
  41. var value = this.getValue();
  42. editor.setTheme( value );
  43. editor.config.setKey( 'theme', value );
  44. } );
  45. themeRow.add( new UI.Text( 'Theme' ).setWidth( '90px' ) );
  46. themeRow.add( theme );
  47. container.add( themeRow );
  48. container.add( new Sidebar.Settings.Shortcuts( editor ) );
  49. container.add( new Sidebar.Settings.Viewport( editor ) );
  50. return container;
  51. };