From 8a4926bdae8c53dfac546ef6ef3827c3731cb6fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=BB=D0=B0=D0=B2=D1=80=D0=B5=D0=B4=20=7C=20Glavred?= Date: Mon, 19 Oct 2020 16:10:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BE=D1=82=20=D0=93=D0=BB=D0=B0=D0=B2=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=B0=20=D0=93=D0=B8=D1=82=D0=96=D0=A1=20|=20Chang?= =?UTF-8?q?es=20of=20GitJS=20Glavred?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 0000 | 2 + пуск|run.js | 39 ++++++ пуск|run.череда | 1 + раскладки|layouts.js | 34 +---- темы|themes.js | 152 +++++++++++++++++++++ темы|themes.череда | 14 ++ управление|controls.js | 24 ++++ управление|controls.череда | 8 ++ 8 files changed, 244 insertions(+), 30 deletions(-) create mode 100644 темы|themes.js create mode 100644 темы|themes.череда diff --git a/0000 b/0000 index c198bc8..766dc17 100644 --- a/0000 +++ b/0000 @@ -10,5 +10,7 @@ x /пуск|run.js /пуск|run.череда x /раскладки|layouts.js /раскладки|layouts.череда +x /темы|themes.js +/темы|themes.череда x /управление|controls.js /управление|controls.череда \ No newline at end of file diff --git a/пуск|run.js b/пуск|run.js index db4ddb3..7f631c1 100644 --- a/пуск|run.js +++ b/пуск|run.js @@ -7,5 +7,44 @@ { мир.уведомить("надо создать окно управления"); мир.уведомить("надо создать окно раскладок"); + мир.уведомить("надо создать окно тем"); мир.уведомить("надо создать окно окончания"); +}; + + +// // // // + + +ЗадатьОбщиеСтили = мир => +{ + var вид = document.createElement("style"); + document.head.appendChild(вид); + вид.innerHTML = ` + +.окно-с-отступами +{ + position: fixed; + left: 1em; + top: 1em; + bottom: 1em; + right: 1em; +} + +.прокрутка +{ + overflow: auto; + height: 100%; +} + +.ширина-по-содержимому +{ + display: inline-block; +} + +.выбранный-элемент-таблицы +{ + background: #eeeeee; +} + + `; }; \ No newline at end of file diff --git a/пуск|run.череда b/пуск|run.череда index 0414cfa..aa2fc70 100644 --- a/пуск|run.череда +++ b/пуск|run.череда @@ -1,2 +1,3 @@ загрузили ресурсы сцены + задать общие стили создать окна маджонга \ No newline at end of file diff --git a/раскладки|layouts.js b/раскладки|layouts.js index e94553d..39cb6d9 100644 --- a/раскладки|layouts.js +++ b/раскладки|layouts.js @@ -5,18 +5,16 @@ ОтобразитьВыбраннуюРаскладкуВТаблице = мир => { - console.debug("ОтобразитьВыбраннуюРаскладкуВТаблице"); var таблица = мир.окна.раскладки.таблица; - console.debug("ОтобразитьВыбраннуюРаскладкуВТаблице", таблица); // Очистить выбор. for (var номер in таблица.строки) { var элемент = таблица.элемент(номер); - элемент.removeClass("выбранная-раскладка"); + элемент.removeClass("выбранный-элемент-таблицы"); } // Задать выбор. var элемент = таблица.элемент(мир.номерВыбраннойРаскладки); - элемент.addClass("выбранная-раскладка"); + элемент.addClass("выбранный-элемент-таблицы"); }; @@ -42,6 +40,7 @@ } } + // // // // @@ -62,7 +61,6 @@ ЗадатьСписокРаскладок = мир => { - console.debug("ЗадатьСписокРаскладок"); var раскладки = Object.keys(мир.реестрРаскладок).sort(); var список = []; for (var номер in раскладки) @@ -104,15 +102,6 @@ document.head.appendChild(вид); вид.innerHTML = ` -#${мир.окна.раскладки.указатель} -{ - position: fixed; - left: 1em; - top: 1em; - bottom: 1em; - right: 1em; -} - #скрыть-раскладки { position: fixed; @@ -120,22 +109,6 @@ bottom: 0.5em; } -.прокрутка -{ - overflow: auto; - height: 100%; -} - -.ширина-по-содержимому -{ - display: inline-block; -} - -.выбранная-раскладка -{ - background: #eeeeee; -} - `; }; @@ -148,6 +121,7 @@ var окно = document.createElement("div"); окно.id = "окно-раскладки"; окно.style.display = "none"; + окно.classList.add("окно-с-отступами"); document.body.appendChild(окно); мир.окна.раскладки = { diff --git a/темы|themes.js b/темы|themes.js new file mode 100644 index 0000000..88b6b4a --- /dev/null +++ b/темы|themes.js @@ -0,0 +1,152 @@ + + +// // // // + + +ОтобразитьВыбраннуюТемуВТаблице = мир => +{ + var таблица = мир.окна.темы.таблица; + // Очистить выбор. + for (var номер in таблица.строки) + { + var элемент = таблица.элемент(номер); + элемент.removeClass("выбранный-элемент-таблицы"); + } + // Задать выбор. + var элемент = таблица.элемент(мир.номерВыбраннойТемы); + элемент.addClass("выбранный-элемент-таблицы"); +}; + + +// // // // + + +ЗадатьНомерВыбраннойТемыЕслиНеЗадан = мир => +{ + if (мир.номерВыбраннойТемы) + { + return; + } + // Нужно для случая отображения выбранной темы сразу после пуска. + const строки = мир.окна.темы.таблица.строки; + for (var номер in строки) + { + var название = строки[номер][1]; + if (название == мир.выбраннаяТема) + { + мир.номерВыбраннойТемы = номер; + return; + } + } +} + +// // // // + + +ОтслеживатьВыборТемы = мир => +{ + const строки = мир.окна.темы.таблица.строки; + мир.окна.темы.таблица.выбор = (номер) => + { + мир.выбраннаяТема = строки[номер][1]; + мир.номерВыбраннойТемы = номер; + мир.уведомить("выбрали тему"); + }; +}; + + +// // // // + + +ЗадатьСписокТемФишек = мир => +{ + var темы = Object.keys(мир.реестрТемФишек).sort(); + var список = []; + for (var номер in темы) + { + var число = Number(номер) + 1; + var название = темы[номер]; + список.push([число, название]); + } + мир.окна.темы.таблица.задатьЗаголовки(["№", "Название ⚬ 标题 ⚬ Name"]); + мир.окна.темы.таблица.задатьСтроки(список); +}; + + +// // // // + + +ПлавноСкрытьОкноТем = мир => +{ + мир.окна.темы.плавно.скрыть(); +}; + + +// // // // + + +ПлавноПоказатьОкноТем = мир => +{ + мир.окна.темы.плавно.отобразить(); +}; + + +// // // // + + +ЗадатьВидОкнаТем = мир => +{ + + var вид = document.createElement("style"); + document.head.appendChild(вид); + вид.innerHTML = ` + +#скрыть-темы +{ + position: fixed; + right: 0.5em; + top: 0.5em; +} + + + `; +}; + + +// // // // + + +СоздатьОкноТем = мир => +{ + var окно = document.createElement("div"); + окно.id = "окно-темы"; + окно.style.display = "none"; + окно.classList.add("окно-с-отступами"); + document.body.appendChild(окно); + + мир.окна.темы = { + "указатель": окно.id, + "элемент": окно, + "плавно": new ПлавноОтобразитьСкрыть(окно), + "список": `${окно.id}-список`, + }; + + окно.innerHTML = ` +
+ Темы + ⚬ 主题 ⚬ + Themes +
+
+
+
+ + + `; + + мир.окна.темы.таблица = new Таблица(мир.окна.темы.список); + + $("#скрыть-темы").click(function() { + мир.уведомить("кнопка скрыть темы"); + }); +}; \ No newline at end of file diff --git a/темы|themes.череда b/темы|themes.череда new file mode 100644 index 0000000..598ec0a --- /dev/null +++ b/темы|themes.череда @@ -0,0 +1,14 @@ +надо создать окно тем + создать окно тем + задать вид окна тем + задать список тем фишек + отслеживать выбор темы +кнопка показать темы + плавно показать подложку + плавно показать окно тем +кнопка скрыть темы + плавно скрыть подложку + плавно скрыть окно тем +выбрали тему + задать номер выбранной темы если не задан + отобразить выбранную тему в таблице \ No newline at end of file diff --git a/управление|controls.js b/управление|controls.js index e1c43f5..5db9aa8 100644 --- a/управление|controls.js +++ b/управление|controls.js @@ -46,6 +46,30 @@ pointer-events: none; }; }; + +// // // // + + +СоздатьКнопкуТем = мир => +{ + var кнопка = document.createElement("div"); + кнопка.innerHTML = ` + + `; + кнопка.style = ` +position: fixed; +right: 0; +top: 0; +margin: 0.5em; + `; + мир.окна.управление.элемент.appendChild(кнопка); + + $(`#показать-темы`).click(function() { + мир.уведомить("кнопка показать темы"); + }); +}; + + // // // // diff --git a/управление|controls.череда b/управление|controls.череда index fdf51d6..6f8bef4 100644 --- a/управление|controls.череда +++ b/управление|controls.череда @@ -2,6 +2,7 @@ создать окно управления создать элементы управления масштабом создать кнопку раскладки + создать кнопку тем создать подложку кнопка увеличения масштаба @@ -15,5 +16,12 @@ плавно скрыть окно управления отключить отслеживание нажатий кнопка скрыть раскладки + плавно показать окно управления + включить отслеживание нажатий + +кнопка показать темы + плавно скрыть окно управления + отключить отслеживание нажатий +кнопка скрыть темы плавно показать окно управления включить отслеживание нажатий \ No newline at end of file