Пользовательский интерфейс Маджонга | Mahjong user interface
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

152 рядки
4.4KB

  1. // // // //
  2. ОтобразитьВыбраннуюРаскладкуВТаблице = мир =>
  3. {
  4. var таблица = мир.окна.раскладки.таблица;
  5. // Очистить выбор.
  6. for (var номер in таблица.строки)
  7. {
  8. var элемент = таблица.элемент(номер);
  9. элемент.removeClass("выбранный-элемент-таблицы");
  10. }
  11. // Задать выбор.
  12. var элемент = таблица.элемент(мир.номерВыбраннойРаскладки);
  13. элемент.addClass("выбранный-элемент-таблицы");
  14. };
  15. // // // //
  16. ЗадатьНомерВыбраннойРаскладкиЕслиНеЗадан = мир =>
  17. {
  18. if (мир.номерВыбраннойРаскладки)
  19. {
  20. return;
  21. }
  22. // Нужно для случая отображения выбранной раскладки сразу после пуска.
  23. const строки = мир.окна.раскладки.таблица.строки;
  24. for (var номер in строки)
  25. {
  26. var название = строки[номер][1];
  27. if (название == мир.выбраннаяРаскладка)
  28. {
  29. мир.номерВыбраннойРаскладки = номер;
  30. return;
  31. }
  32. }
  33. }
  34. // // // //
  35. ОтслеживатьВыборРаскладки = мир =>
  36. {
  37. const строки = мир.окна.раскладки.таблица.строки;
  38. мир.окна.раскладки.таблица.выбор = (номер) =>
  39. {
  40. мир.выбраннаяРаскладка = строки[номер][1];
  41. мир.номерВыбраннойРаскладки = номер;
  42. мир.уведомить("выбрали раскладку");
  43. };
  44. };
  45. // // // //
  46. ЗадатьСписокРаскладок = мир =>
  47. {
  48. var раскладки = Object.keys(мир.реестрРаскладок).sort();
  49. var список = [];
  50. for (var номер in раскладки)
  51. {
  52. var число = Number(номер) + 1;
  53. var название = раскладки[номер];
  54. список.push([число, название]);
  55. }
  56. мир.окна.раскладки.таблица.задатьЗаголовки(["№", "Название ⚬ 标题 ⚬ Name"]);
  57. мир.окна.раскладки.таблица.задатьСтроки(список);
  58. };
  59. // // // //
  60. ПлавноСкрытьОкноРаскладок = мир =>
  61. {
  62. мир.окна.раскладки.плавно.скрыть();
  63. };
  64. // // // //
  65. ПлавноПоказатьОкноРаскладок = мир =>
  66. {
  67. мир.окна.раскладки.плавно.отобразить();
  68. };
  69. // // // //
  70. ЗадатьВидОкнаРаскладок = мир =>
  71. {
  72. var вид = document.createElement("style");
  73. document.head.appendChild(вид);
  74. вид.innerHTML = `
  75. #скрыть-раскладки
  76. {
  77. position: fixed;
  78. right: 0.5em;
  79. bottom: 0.5em;
  80. }
  81. `;
  82. };
  83. // // // //
  84. СоздатьОкноРаскладок = мир =>
  85. {
  86. var окно = document.createElement("div");
  87. окно.id = "окно-раскладки";
  88. окно.style.display = "none";
  89. окно.classList.add("окно-с-отступами");
  90. document.body.appendChild(окно);
  91. мир.окна.раскладки = {
  92. "указатель": окно.id,
  93. "элемент": окно,
  94. "плавно": new ПлавноОтобразитьСкрыть(окно),
  95. "список": `${окно.id}-список`,
  96. };
  97. окно.innerHTML = `
  98. <center>
  99. <span class="uk-text-large">Раскладки</span>
  100. ⚬ <span class="uk-text-large uk-text-bold">键盘布局</span> ⚬
  101. <span class="uk-text-large">Layouts</span>
  102. </center>
  103. <div class="прокрутка ширина-по-содержимому">
  104. <table id="${мир.окна.раскладки.список}" class="uk-table uk-table-divider"></table>
  105. </div>
  106. <a id="скрыть-раскладки" uk-icon="icon: close; ratio: 2"></a>
  107. `;
  108. мир.окна.раскладки.таблица = new Таблица(мир.окна.раскладки.список);
  109. $("#скрыть-раскладки").click(function() {
  110. мир.уведомить("кнопка скрыть раскладки");
  111. });
  112. };