diff --git a/CHANGELOG.md b/CHANGELOG.md index 271ab81..2842c05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,13 +3,10 @@ Version `1.0.5 (30 Oct'21)` - - TODO : BUGFIX: demo 2.Units: favorites not passed to new project - FIX the demo - - TODO : NEW : basic .md highlighting: lists, titles, quotes - TODO : NEW : more integrated with tclkits - - TODO : CHANGE: save unit's position at any switching to another unit/file - (except for navigating inside a text, but including mouse clicks) - - TODO : CHANGE: revise help & doc + - TODO : CHANGE: revised help & doc + - BUGFIX: default/classic/alt theme & dark CS: selected check/radio buttons' bg - BUGFIX: demo 1.Start ~01:10 : 'All #1 1-0' in tip of 'Row', if 'No name' - BUGFIX: demo 3.Project ~10:00 : not see for a current proc - BUGFIX: switching (popup menu) from file to unit tree if the latter is one line @@ -18,10 +15,18 @@ Version `1.0.5 (30 Oct'21)` - BUGFIX: pressing Enter if current & next lines begin with *, -, # - BUGFIX: false movings in the tree (no Ctrl+click, just click & move) - BUGFIX: false saving modified files at "Tcl/Tk help" + - BUGFIX: error at closing big files + - BUGFIX: sort order at "Open all Tcl files..." + - NEW : ua.msg + - NEW : "Open Selected File(s)" in tree's menu + - NEW : flags for "Preferable Locale" - NEW : "Rename file" from the tree - NEW : selected units to be added to Favorites (popup menu) - NEW : "Don't ask again" checkbox at adding to Favorites - NEW : "Your commands" for Tcl syntax + - CHANGE: save/restore unit's position and last visited units at + switching unit/file, text change, mouse click (when unit tree is active) + - CHANGE: demo 2.Units - CHANGE: faster switching tabs - CHANGE: faster opening 'Preferences' - CHANGE: faster opening a file from the file tree diff --git a/data/help/pref-nbk-f3.txt b/data/help/pref-nbk-f3.txt index 7397237..91da9db 100644 --- a/data/help/pref-nbk-f3.txt +++ b/data/help/pref-nbk-f3.txt @@ -24,4 +24,4 @@ If you don't want to use these defaults, switch the top checkbox off. While preparing a new project in "Projects" dialogue, you would input - its options in the "Options" tab. + its options in the "Options" tab. \ No newline at end of file diff --git a/data/help/project.txt b/data/help/project.txt index 18e7c2a..45d4b65 100644 --- a/data/help/project.txt +++ b/data/help/project.txt @@ -28,4 +28,4 @@ The buttons under the list are used to add / change / delete a project. At adding / changing a project, you can choose to include the current - files into it. Other choices are "replace", "clear" and "don't change". + files into it. Other choices are "replace", "clear" and "don't change". \ No newline at end of file diff --git a/data/img/en.png b/data/img/en.png new file mode 100644 index 0000000..0200a50 Binary files /dev/null and b/data/img/en.png differ diff --git a/data/img/ru.png b/data/img/ru.png new file mode 100644 index 0000000..0c09ffe Binary files /dev/null and b/data/img/ru.png differ diff --git a/data/img/ua.png b/data/img/ua.png new file mode 100755 index 0000000..e425958 Binary files /dev/null and b/data/img/ua.png differ diff --git a/data/msgs/ru.msg b/data/msgs/ru.msg index 0276688..509ed8a 100644 --- a/data/msgs/ru.msg +++ b/data/msgs/ru.msg @@ -75,7 +75,6 @@ namespace eval ::alited { ::msgcat::mcmset ru { {Select} {Выбор} - "\"%f\" wasn't saved.\n\nSave it?" "\"%f\" не сохранен.\n\nСохранить?" {Save as} {Сохранить как} {Files} {Файлы} {Line} {№ ст.} @@ -138,6 +137,7 @@ namespace eval ::alited { {Tip File Info} {Данные о файлах} {Rename File} {Переименовать файл} {Select one file in the tree.} {Выберите один файл в списке.} + {Open Selected File(s)} {Открыть файл(ы)} } ## ________________________ Templates ________________________ ## @@ -192,7 +192,7 @@ namespace eval ::alited { {Multi-line strings:} {Многострочные string:} {Unit lines per 1 red bar:} {Строк юнита на 1 красную полосу:} {List of files:} {Список файлов:} - "You can\n - add the current one to\n - substitute with the current one\n - delete\n - not change\nthe file list of the project.\n" "Вы можете\n - добавить текущие закладки файлов в\n - заменить текущими закладками\n - удалить\n - не изменять\nсписок закладок файлов в проекте.\n" + "You can\n - add the current one to\n - substitute with the current one\n - delete\n - not change\nthe file list of the project.\n" "Вы можете\n - добавить текущий список файлов в\n - заменить текущим списком\n - удалить\n - не изменять\nсписок файлов в проекте.\n" {Add} {Добавить} {Substitute} {Заменить} {Delete} {Удалить} @@ -334,13 +334,14 @@ namespace eval ::alited { {Tint:} {Оттенок:} "For the settings to be active\nthe application should be restarted.\n\nRestart it just now?" "Чтобы изменения вступили в силу,\nприложение надо перезапустить.\n\nСделать это прямо сейчас?" {Preferable locale:} {Предпочтительная локаль:} - "Mostly this is a country code,\nfor example: ru, ua, cz." "Чаще всего это код страны,\nнапример: ru, ua, cz." + "This is a country code: ru, ua, cz...\nIn alited, \"en\" means American English." "Это код страны: ru, ua, cz...\nВ alited \"en\" значит American English." {Small font size:} {Размер малого шрифта:} {Middle font size:} {Размер среднего шрифта:} {Cursor width:} {Ширина курсора:} {Notes:} {Заметки:} "Sort of diary.\nList of TODOs etc." "Типа дневника.\nСписок TODO и пр." {Light / Dark} {Светлая / Темная} + {Makes colors darker .. lighter} {Делает цвета темнее .. светлее} } ### ________________________ Editor _________________________ ### @@ -457,10 +458,10 @@ namespace eval ::alited { {Deletes a line.} {Удаляет строку.} {separator} {разделитель} {Item} {Пункт} - {If 'yes', means a separator of the toolbar/menu.} {Если включено, означает разделитель в строке/меню.} + {If 'yes', means a separator of the toolbar/menu.} {Если включено, означает разделитель в тулбаре/меню.} {Before Run...} {Перед Запуском...} {Commands:} {Команды:} - {Command before "Run"} {Команда перед "Запуском"} + {Commands before "Run"} {Команды перед "Запуском"} "\n Enter commands to be run before running a current file with \"Tools/Run\".\n It can be necessary for a specific project. Something like an initialization before \"Run\". \n" "\n Введите команды, выполняемые перед \"Снасти/Запуск\".\n Это может быть полезно в некоторых проектах. Что-то типа инициализации перед запуском. \n" } @@ -473,7 +474,7 @@ namespace eval ::alited { {Consistency of {} } {Соответствие {}} {Consistency of []} {Соответствие []} {Consistency of ()} {Соответствие ()} - {all of session files} {все файлы сессии} + {all of session files} {все файлы сеанса} {current file} {текущий файл} {Found %f file error(s), %u unit error(s).} {Найдено ошибок: %f файлов, %u юнитов.} {No errors found.} {Ошибок не найдено.} diff --git a/data/msgs/ua.msg b/data/msgs/ua.msg new file mode 100644 index 0000000..ee799c6 --- /dev/null +++ b/data/msgs/ua.msg @@ -0,0 +1,548 @@ +#! /usr/bin/env tclsh +# ________________________ ua.msg _________________________ # +# Name: ua.msg +# Author: Alex Plotnikov (aplsimple@gmail.com) +# Date: 10/15/2021 +# Brief: Handles Ukranian localization. +# License: MIT. + + + +# ________________________ Ukranian vs Russian _________________________ # + +# ҐґЄєІіЇї + +# ________________________ alited NS _________________________ # + +namespace eval ::alited { + + ## ________________________ Common _________________________ ## + + ::msgcat::mcmset ua { + {No name} {...TEST...} + "\"%f\" wasn't saved.\n\nSave it?" "\"%f\" не збережений.\n\nЗберігти?" + {About} {Про програму} + {About...} {Про програму...} + {Error} {Помилка} + {Warning} {Попередження} + {Question} {Запитання} + {Information} {Інформація} + {File} {Файл} + {Edit} {Правка} + {Search} {Пошук} + {Conversions} {Перетворення} + {Change Encoding...} {Змінити кодировку...} + {Change EOL...} {Змінити EOL...} + {Tools} {Струменти} + {Setup} {Опції} + {Help} {Допомога} + {Yes} {Так} + {No} {Ні} + {Cancel} {Відміна} + {Close} {Закрити} + {New} {Новий} + {Open...} {Відкрити...} + {Recent Files} {Нещодавні файли} + {Save} {Зберегти} + {Save as...} {Зберегти як...} + {Save All} {Зберегти всі} + {... All} {... всі} + {... All at Left} {... всі злева} + {... All at Right} {... всі справа} + {Preferences} {Настройки} + {Preferences...} {Настройки...} + {Restart} {Перезапуск} + {Quit} {Вихід} + {Put New Line} {Додати рядок} + {Indent} {Додати відступ} + {Unindent} {Убрати відступ} + {Comment} {Закоментувати} + {Uncomment} {Разкоментувати} + {Find Next} {Шукати далі} + {Look for Declaration} {Шукати декларацію} + {Look for Word} {Шукати слово} + {Run} {Запуск} + {Moving} {Переміщення} + {Help of alited} {Допомога alited} + {Color Picker} {Вибір коліру} + {Date Picker} {Вибір дати} + {Screen Loupe} {Екранна лупа} + {Quit alited?} {Вийти з alited?} + {Don't ask again} {Більше не питати} + {Wait a little ...} {Чекайте ...} + {Default} {По вмовчанню} + {Test} {Перевірка} + {Correct Indentation} {Виправити відступи} + "Correct the indentation of \"%f\"\nwith indenting %i spaces?" "Виправити відступи \"%f\",\nпо %i на кожний?" + {The line %n: unbalanced brace!} {Рядок %n: незбалансована скобка!} + {Wrap Lines} {Згортати рядки} + {Default values for new projects:} {Опції по вмовчанню для проектів:} + } + + ::msgcat::mcmset ua { + {Select} {Вибір} + {Save as} {Зберігти як} + {Files} {Файли} + {Line} {№ ряд.} + {Lines} {Рядки} + "All of \"%f\"" "Все з \"%f\"" + "Not recommended for projects\nwith large files (>2000 LOC)!" "Не рекомендовано для проектів\nз великими файлами (>2000 рядків)!" + {Move Unit Up} {Підняти юніт} + {Move Unit Down} {Опустить юніт} + {Move File Up} {Перемістити файл вгору} + {Move File Down} {Перемістити файл вниз} + {Only files are moved by alited.} {Тільки файли переміщує alited.} + {Lists of Favorites} {Списки вибраного} + {Last Visited} {Останні вхіди} + {Switch to Unit Tree} {Перейти на список юнітів} + {Switch to File Tree} {Перейти на список файлів} + {Create File} {Створити файл} + "Enter a name of file to create in:\n%d\n\nIf it is a directory, check 'Directory' box.\nThe directory can include subdirectories (a/b/c)." "Введіть ім'я файлу, створюваного в:\n%d\n\nЯкщо це каталог, включіть опцію 'Каталог'.\nКаталог може включати підкаталоги (a/b/c)." + {Delete File} {Видалити файл} + "File %f already exists in\n%d" "Файл %f вже існує в\n%d" + {Add Unit by Template} {Добавити юніт по шаблону} + {Remove Unit(s)} {Видалити юніт(и)} + {No item selected.} {Запис не выбраний.} + {Update Tree} {Оновити список} + {Contract All} {Згорнути все} + {Expand All} {Розгорнути все} + "Move %f\nto\n%d\n?" "Переместити %f\nу\n%d\n?" + {To Last Visited} {На останній вхід} + {To Matched Bracket} {На парну скобку} + {Go to Line} {Перейти на рядок} + {Line number:} {Номер рядку:} + { In unit:} { У юніті:} + "\"%n\" contains unbalanced \{\}: %1!=%2" "\"%n\" має незбалансовані \{\}: %1!=%2" + {Back} {Откат} + {File not found: %f} {Файл не знайдений: %f} + {Unit not found: %u} {Юніт не знайдений: %u} + {Don't ask anymore} {Більш не запитувати} + {%f is a directory} {%f - це каталог} + {THE EXTERNAL FILE IS MOVED TO THE PROJECT!} {ЗОВНІШНІЙ ФАЙЛ ПЕРЕМЕЩУЄТЬСЯ У ПРОЕКТ!} + {Drop Selected Units Here} {Кинути сюди вибрані юніти} + {Drop Selected Files Here} {Кинути сюди вибрані файли} + "All Tcl files of this directory:\n \"%f\" \nwill be open.\n\nThis may be expensive!" "Всі Tcl файли каталогу:\n \"%f\" \nбудуть відкриті.\n\nЦя операція може бути коштовною!" + } + + ## ________________________ Moving a first unit up ________________________ ## + ::msgcat::mcmset ua { + {First Lines} {Перші рядки} + {Can't touch the first %n lines.} {Перші %n рядків нерухомі.} + } + + ## ________________________ Tree ________________________ ## + ::msgcat::mcmset ua { + "Click \"%t\"" "Кликнить \"%t\"" + {Copy Declaration} {Копіювати декларацію} + "Open All Tcl Files of \"%n\"" "Відкрити всі файли Tcl з \"%n\"" + "Remove \"%n\"\nfrom \"%f\"?" "Видалити \"%n\"\nз \"%f\"?" + "Delete \"%f\"?" "Видалити \"%f\"?" + {An open file can not be deleted.} {Неможливо видалити відкритий файл.} + "File \"%f\" was modified by some application.\n\nCancel your edition and reload the file?" "Файл \"%f\" був змінений іншою програмою.\n\nВідмінити вашу редакцію та завантажити файл знову?" + "File \"%f\" was deleted by some application.\n\nSave the file?" "Файл \"%f\" був видалений іншою програмою.\n\nЗберігти файл?" + {Tip File Info} {Дані про файли} + {Rename File} {Перейменувати файл} + {Select one file in the tree.} {Виберіть один файл у списку.} + {Open Selected File(s)} {Відкрити файл(и)} + } + + ## ________________________ Templates ________________________ ## + ::msgcat::mcmset ua { + {Template} {Шаблон} + {Templates} {Шаблони} + {Current template:} {Поточний шаблон:} + {New template:} {Новий шаблон:} + {Hot keys} {Клявіши} + {Add a template} {Додати шаблон} + {Change a template} {Змінити шаблон} + {Delete a template} {Видалити шаблон} + {Click a template} {Виберіть який-небудь шаблон} + {The template #%n added} {Шаблон #%n доданий} + {The template #%n updated} {Шаблон #%n змінений} + {The template #%n removed} {Шаблон #%n видалений} + {Enter a name of the template} {Введіть назву шаблону} + {Enter a text of the template} {Введіть текст шаблону} + "Choose a hot key combination\nfor the template insertion." "Виберіть комбинацію клявіш\nдля вставки шаблону." + {A template with the attribute(s) already exists.} {Шаблон з такими атрибутами вже існує.} + {Place after:} {Вставити за:} + {line} {рядок} + {unit} {юніт} + {cursor} {курсор} + {file's beginning} {початок файлу} + "Inserts a template\nbelow a current line" "Вставити шаблон\nслід за поточним рядком" + "Inserts a template\nbelow a current unit" "Вставити шаблон\nслід за поточним юнітом" + "Inserts a template at the cursor\n(good for one-liners)" "Вставити шиблон у позиції курсору\n(підходить для однорядкових шаблонів)" + "Inserts a template after 1st line of a file\n(License, Introduction etc.)" "Вставити шаблон у початку файла\n(Лицензия, Вступ та інше.)" + {Delete a template #%n ?} {Видалити шаблон #%n ?} + } + + ## ________________________ Projects ________________________ ## + ::msgcat::mcmset ua { + {Projects} {Проекти} + {You are going to %n!} {Ви збираєтеся %n!} + {Add a project} {Додати проект} + {Change a project} {Змінити проект} + {Delete a project} {Видалити проект} + {Don't delete the current project!} {Не видаляйте поточний проект!} + "The project \"%n\" added" "Проект \"%n\" доданий" + "The project \"%n\" updated" "Проект \"%n\" змінений" + "The project \"%n\" removed" "Проект \"%n\" видалений" + {Options} {Опції} + {Project name:} {Назва проекту:} + {Root directory:} {Коріневий каталог:} + {Skip subdirectories:} {Пропускати підкаталоги:} + {Description:} {Опис:} + {Indentation:} {Пробілів відступу:} + {Auto detection} {Автовизначення} + {End of line:} {Кінці рядків:} + {Multi-line strings:} {Многорядкові string:} + {Unit lines per 1 red bar:} {Рядків юніта на 1 червону смужку:} + {List of files:} {Список файлів:} + "You can\n - add the current one to\n - substitute with the current one\n - delete\n - not change\nthe file list of the project.\n" "Ви можете\n - додати поточний список файлів до\n - замінити поточним списком\n - видалити\n - не змінювати\nсписок файлів у проекті.\n" + {Add} {Додати} + {Substitute} {Змінити} + {Delete} {Видалити} + {Don't change} {Не змінювати} + {Click a project} {Виберіть проект} + "Delete a project \"%n\" ?" "Видалити проект \"%n\" ?" + "A project \"%n\" already exists." "Проект \"%n\" вже існує." + "All modified files (%n) will be saved.\n\nDo you agree?" "Всі змінені файли (%n) будуть збережені.\n\nГаразд?" + "All selected files (%n) will remain open\nin the project you are switching to.\n\nDo you agree?" "Всі виділені файли (%n) залишуться відкритими\nу вибраному вами проекті.\n\nГаразд?" + "Directory \"%d\"\ndoesn't exist.\n\nCreate it?" "Каталог \"%d\"\nне існує.\n\nСтворити його?" + {Checking %d. Wait a little...} {Перевірка %d. Чекайте...} + {Too big directory for a project: %n files or more.} {Занадто великий каталог проекту: не менш, ніж %n файлів.} + } + + ## ________________________ Favorites ________________________ ## + ::msgcat::mcmset ua { + {Lists of favorites:} {Списки Вибраного} + {Current list of favorites:} {Поточний список Вибраного} + {New list of favorites:} {Новий список Вибраного:} + {Add a list of favorites} {Додатиь список Вибраного} + {Change a list of favorites} {Змінити список Вибраного} + {Delete a list of favorites} {Видалити список Вибраного} + {Click a list of favorites} {Виберіть який-небудь список} + {The list #%n added} {Список #%n доданий} + {The list #%n updated} {Список #%n змінений} + {The list #%n removed} {Список #%n видалений} + {Enter a name of the list} {Введіть назву списку} + {Favorites of the current list} {Вибране поточного списку} + {The current list is empty!} {Поточний список пустий!} + {This list already exists} {Цей список вже існує} + "This list not saved to\n\"%f\"." "Цей список не збережений у\n\"%f\"." + {Non-favorite files to be:} {Файли не Вибраного повинні} + {kept} {залишитися} + {closed} {закритися} + "Doesn't close any tab without favorites\nat choosing Favorites' list" "Не закривати \"невибрані\" заставки\nпри виборі списка Вибраного" + "Closes all tabs without favorites\nat choosing Favorites' list" "Закрывати \"невибрані\" заставки\nпри виборі списка Вибраного" + "Sets a list of Favorites\nthat was active initially." "Відновлює список Вибраного,\nщо діяв спочатку." + {Delete a favorites' list #%n ?} {Видалити список Вибраного #%n ?} + {Favorites} {Вибране} + "Add \"%n\" of %f\nto Favorites?" "Додати \"%n\" файлів %f\nу Вибране?" + "Item \"%n\" of %f\nis already in Favorites." "Юніт \"%n\" з %f\nвже є у Вибраному." + "Remove \"%n\" of %f\nfrom Favorites?" "Видалити \"%n\" файлів %f\nз Вибраного?" + "\"%n\" unit of %f\nis not in Favorites." "Юніта \"%n\" файлу %f\nнемає у Вибраному." + {Add to Favorites} {Додати до Вибраного} + {Remove from Favorites} {Видалити з Вибраного} + {Remove All} {Видалити все} + {Remove all of Favorites?} {Видалити все з Вибраного?} + {Remove all of the last visited?} {Видалити все з Останніх входів?} + } + + ## ________________________ Icons of toolbar: tips ________________________ ## + ::msgcat::mcmset ua { + "Create a file\nCtrl+N" "Утворити файл\nCtrl+N" + "Open a file\nCtrl+O" "Відкрити файл\nCtrl+O" + "Save the file\nF2" "Зберегти файл\nF2" + "Save all files\nCtrl+Shift+S" "Зберегти всі файли\nCtrl+Shift+S" + "Tcl/Tk help on the selection\nF1" "Контекстна допомога по Tcl/Tk\nF1" + {Find / Replace} {Пошук / Заміна} + "Find / Replace\nCtrl+F" "Пошук / Заміна\nCtrl+F" + "Run the file\nF5" "Виконати файл\nF5" + "Run e_menu\nF4" "Виклик e_menu\nF4" + "Undo changes\nCtrl+Z" "Відміна змін\nCtrl+Z" + "Redo changes\nCtrl+Shift+Z" "Перевідміна змін\nCtrl+Shift+Z" + } + + ## ________________________ Find-replace dialogue ________________________ ## + ::msgcat::mcmset ua { + {Find: } {Шукати: } + {Replace: } {Замінити: } + {Match: } {Збіг: } + {Exact} {Точний} + {Match whole word only} {Тільки цілі слова} + {Match case} {Регістр букв} + {Wrap around} {По кругу} + {Replace by blank} {Пусті заміни} + {Direction:} {Напрямок:} + {Down} {Наниз} + {Up} {Наверх} + {Stay on top} {Над всіма вікнами} + {Stay on top:} {Над всіма вікнами:} + {Find} {Пошук} + {Replace} {Заміна} + {All in Text} {Все у тексті} + {All in Session} {Все у сеансі} + {All in %n Files} {Все у %n файлах} + "Allows to use *, ?, \[ and \]\nin \"find\" string." "Дозволяє використовувати *, ?, \[, \]\nу рядку пошуку." + "Allows to use the regular expressions\nin \"find\" string." "Дозволяє використовувати регулярні вирази\nу пошуку." + "Allows replacements by the empty string,\nin fact, to erase the found ones." "Дозволяє пусті заміни,\nтобто просто видалення знайдених строк." + "Keeps the dialogue above other windows." "Тримає діалог пошуку\nпонад іншими вікнами." + "Found %n matches for \"%s\"." "Знайдено %n шуканих \"%s\"." + "Made %n replacements of \"%s\" with \"%r\" in \"%f\"." "Зроблено %n замін \"%s\" на \"%r\" в \"%f\"." + "Made %n replacements of \"%s\" with \"%r\" in all of session." "Зроблено %n замін \"%s\" на \"%r\" в усьому сеансі." + "Replace all of \"%s\"\n\nwith \"%r\"\n\nin \"%f\" ?" "Замінити всі \"%s\"\n\nна \"%r\"\n\nу \"%f\" ?" + "Replace all of \"%s\"\n\nwith \"%r\"\n\nin all texts?" "Замінити всі \"%s\"\n\nна \"%r\"\n\nв усіх текстах?" + {Don't focus a text after selecting in infobar} {Не переходити на текст при виборі у інфобарі} + {Focus a text after selecting in infobar} {Переходити на текст при виборі у інфобарі} + {Find by List} {Пошук по списку} + {List:} {Список:} + {\n Enter a list of words divided by spaces: \n} {\n Введіть список слів, разділених пробілами: \n} + {FOUND:} {ЗНАЙДЕНІ:} + {NOT FOUND:} {НЕ ЗНАЙДЕНІ:} + } + + ## ________________________ Checking ini directory ________________________ ## + ::msgcat::mcmset ua { + {Choosing Directory for Settings} {Вибір каталогу для опцій} + "\n The \"alited\" needs a configuration directory to store its settings.\n You can pass its name to alited as an argument.\n\n The default configuration directory is \"%d\".\n It's preferable as used to run \"alited\" without arguments.\n" "\n Програма \"alited\" мусить мати каталог для збереження своїх опцій.\n Ви можете задати його як аргумент при виклику alited.\n\n По вмовчанню, каталог збереження опцій - \"%d\".\n Це рекомендований каталог, що дозволяє викликати \"alited\" без аргументів.\n" + {Choose a directory} {Вибір каталогу} + } + + ## ________________________ "About" dialogue ________________________ ## + ::msgcat::mcmset ua { + {stands for} {значить} + {Written in pure Tcl/Tk.} {Зроблен на чистому Tcl/Tk.} + {And well fit for programming with it.} {Та годен для програмування на ньому.} + {Details:} {Підробиці:} + {Authors:} {Автори:} + {License:} {Ліцензія:} + } + + ## ________________________ Preferences ________________________ ## + ::msgcat::mcmset ua { + {General} {Загальне} + {Editor} {Редактор} + {Units} {Юніти} + {Keys} {Клавіши} + {Misc.} {Різне} + {Saving} {Збереження} + {View} {Вид} + } + + ### ________________________ General _________________________ ### + ::msgcat::mcmset ua { + {Ttk theme:} {Тема Ttk:} + {Color scheme:} {Колірна схема:} + {Darker:} {Темніше:} + {Lighter:} {Світліше:} + {Tint} {Відтінок} + {Tint:} {Відтінок:} + "For the settings to be active\nthe application should be restarted.\n\nRestart it just now?" "Щоб зміни вступили в силу,\nпрограму треба перезавантажити.\n\nЗробити це прямо зараз?" + {Preferable locale:} {Бажана локаль:} + "This is a country code: ru, ua, cz...\nIn alited, \"en\" means American English." "Це код держави: ru, ua, cz...\nВ alited \"en\" значить American English." + {Small font size:} {Розмір малого шрифту:} + {Middle font size:} {Розмір середнього шрифту:} + {Cursor width:} {Ширина курсора:} + {Notes:} {Замітки:} + "Sort of diary.\nList of TODOs etc." "Типа щоденника.\nСписок TODO та інше." + {Light / Dark} {Світла / Темна} + {Makes colors darker .. lighter} {Робить коліри темніше .. світліше} + } + + ### ________________________ Editor _________________________ ### + ::msgcat::mcmset ua { + {Font:} {Шрифт:} + {Font size:} {Розмір шрифта:} + {Gutter's width:} {Ширина жолобу} + {Gutter's shift from text:} {Відступ жолобу від текста:} + {Space above lines:} {Відступ над рядками:} + {Space below lines:} {Відступ під рядками:} + {Space between wraps:} {Відступ згортованих рядків:} + {Tab bar label's length:} {Довжина назв панелі файлів:} + {Tab bar tip's length:} {Довжина підказок панелі файлів:} + {Color scheme's light changed. Color fields disabled.} {Тон колірної схеми змінений. Поля колірів недоступні.} + } + + ### ________________________ Saving _________________________ ### + ::msgcat::mcmset ua { + {Save before bar/menu runs:} {Зберігати при викликах bar/menu:} + {Current file} {Поточний файл} + {All files} {Всі файли} + {'Recent Files' length:} {Довжина списка 'Нещодавні файли':} + {'Last Visited' length:} {Довжина списка 'Останні входи':} + {Maximum of project files:} {Кількість файлів проекта не більше:} + {Confirm exit:} {Підтверджувати вихід:} + {Save configuration on} {Зберігати конфігурацію при} + {opening a file:} {відкритті файлу:} + {closing a file:} {закритті файлу:} + {saving a file:} {зберіганні файлу:} + {Back up files to a project's subdirectory:} {Резервні копії у каталозі проекту:} + "A subdirectory of projects where backup copies of files will be saved to.\nSet the field blank to cancel the backup." "Підкаталог проекту, де зберігатимуться копії файлів.\nЯкщо це поле пусте, копіювань не буде." + { Maximum:} { Максимум:} + {Maximum of backup copies per a file} {Максимальна кількість копій файлу} + {Bell at warnings:} {Звук попереджень:} + } + + ### ________________________ Keys _________________________ ### + ::msgcat::mcmset ua { + {Save File} {Зберегти файл} + {Save File as} {Зберегти файл як} + {Run e_menu} {Запуск e_menu} + {Run File} {Запуск файлу} + {Double Selection} {Дублювати виділене} + {Delete Line} {Видалити рядок} + {Highlight First} {Відокремити перше} + {Highlight Last} {Відокремити останнє} + {Find Next Match} {Знайти наступне} + {Item up} {Підняти елемент} + {Item down} {Опустити елемент} + {Complete Commands} {Доповнення команд} + } + + ### ________________________ Templates _________________________ ### + ::msgcat::mcmset ua { + {Enter %U, %u, %m, %w, %d, %t wildcards of templates:} {Введіть токени %U, %u, %m, %w, %d, %t для шаблонів:} + {User name:} {Ім'я користувача:} + {Login:} {Логін:} + {Date format:} {Формат дати:} + {Time format:} {Формат часу:} + } + + ### ________________________ Syntax _________________________ ### + ::msgcat::mcmset ua { + {Tcl syntax} {Синтаксис Tcl} + {C/C++ syntax} {Синтаксис C/C++} + {Tcl files' extensions:} {Розширення файлів Tcl:} + {C/C++ files' extensions:} {Розширення файлів C/C++:} + {Color of Tcl commands:} {Колір команд Tcl:} + {Color of Tk commands:} {Колір команд Tk:} + {Color of strings:} {Колір значень строк:} + {Color of variables:} {Колір значень змінних:} + {Color of comments:} {Колір коментарів:} + {Color of proc/methods:} {Колір процедур/методів:} + {Color of options:} {Колір опцій:} + {Color of brackets:} {Колір скобок:} + {Color of C key words:} {Колір ключевих слів C:} + {Color of C++ key words:} {Колір ключевих слів C++:} + {Color of punctuation:} {Колір знаків препинання:} + {Color of return/goto:} {Колір return/goto:} + {Color of your key words:} {Колір ваших ключевих слів:} + {Colors} {Коліри} + {Your commands:} {Ваші команди:} + {Your key words:} {Ваші ключеві слова:} + } + + ### ________________________ Units _________________________ ### + ::msgcat::mcmset ua { + {Branch's regexp:} {RE для гілці:} + {Proc's regexp:} {RE для функції:} + {Check branch's regexp:} {Перевірка на гілку:} + {Check proc's regexp:} {Перевірка на функцію:} + {Use leaf's regexp:} {Використовувати RE листа:} + {Leaf's regexp:} {RE листа:} + {Untouched top lines:} {Статичних початкових рядків:} + } + + ### ________________________ Tools _________________________ ### + ::msgcat::mcmset ua { + {Open bar/menu settings} {Відкрити настройки bar/menu} + "An icon puts the run into the toolbar.\nBlank or 'none' excludes it from the toolbar." "Іконка включить запуск з тулбару.\nПуста або 'none' іконка виключить запуск з тулбару." + "The run item for the menu and/or the toolbar.\nSelect it from the e_menu items." "Виклик команди для меню та/або тулбара.\nВиберіть ії з команд e_menu." + {Directory of menus:} {Каталог меню:} + {Main menu:} {Головне меню:} + {Projects (%PD wildcard):} {Проекти (%PD токен):} + {Linux terminal:} {Термінал Linux:} + {Diff tool:} {Команда diff:} + {Path to man/tcl8.6:} {Шлях до man/tcl8.6:} + {tclsh, wish or tclkit:} {tclsh, wish або tclkit:} + {Rows:} {Рядків:} + {Columns:} {Колонок:} + {Geometry:} {Геометрія:} + {Run as external app:} {Як окрему програму:} + {Inserts a new line.} {Додає рядок.} + {Deletes a line.} {Видаляє рядок.} + {separator} {роздільник} + {Item} {Пункт} + {If 'yes', means a separator of the toolbar/menu.} {Якщо включено, значить роздільник у тулбарі/меню.} + {Before Run...} {Перед Запуском...} + {Commands:} {Команди:} + {Commands before "Run"} {Команди перед "Запуском"} + "\n Enter commands to be run before running a current file with \"Tools/Run\".\n It can be necessary for a specific project. Something like an initialization before \"Run\". \n" "\n Введіть команди, виконувані перед \"Струменти/Запуск\".\n Це може бути корисно у деяких проектах. Щось типа іниціалізації перед запуском. \n" + } + + ## ________________________ Checks ________________________ ## + ::msgcat::mcmset ua { + {Check of Tcl} {Перевірка Tcl} + {Check} {Перевірка} + {Check:} {Перевірити:} + {Checks available:} {Можливі перевірки:} + {Consistency of {} } {Відповідність {}} + {Consistency of []} {Відповідність []} + {Consistency of ()} {Відповідність ()} + {all of session files} {всі файли сеансу} + {current file} {поточний файл} + {Found %f file error(s), %u unit error(s).} {Знайдено помилок: %f файлів, %u юнітів.} + {No errors found.} {Помилок не знайдено.} + } + + ## ________________________ Misc. ________________________ ## + ::msgcat::mcmset ua { + "Can't backup \"%f\" to\n\"%d\"!\n\nDelete it anyway?" "Не можу зробити копію \"%f\" в\n\"%d\"!\n\nВидалити цей файл все одно?" + "\"%f\" removed to \"%d\"" "\"%f\" видалений до \"%d\"" + {File name:} {Ім'я файлу:} + {Directory} {Каталог} + "The file \"%f\" seems to be not of types\n%s.\n\nStill do you want to open it?" "Файл \"%f\", здається, не типа\n%s.\n\nВсе одно відкрити його?" + } + + ## ________________________ Find units ________________________ ## + ::msgcat::mcmset ua { + {Find Unit} {Шукати юніт} + {in all} {у всіх} + {in current} {у поточному} + "Use glob patterns to find units' declarations\ne.g. \"s*rt\" would find \"start\" and \"insert\".\nThe letter case is ignored." "Користуйтеся шаблоном glob для пошуку юнітів:\nнаприклад, \"s*rt\" знайде \"start\" та \"insert\".\nРегістр букв не враховується." + } + + ## ________________________ Abbreviations etc. ________________________ ## + # Line - 2nd column's title of unit tree + # ind = indentation + ::msgcat::mcmset ua { + {ind} {від} + {Row} {Ряд.} + {Row: } {Ряд: } + { Col: } { Поз: } + { Unit: } { Юніт: } + } + + ## ________________________ Bar of tabs ________________________ ## + ::msgcat::mcmset ua { + {(Un)Select} {Відділити / ні} + {... Visible} {... видимі} + {... All at Left} {... всі злева} + {... All at Right} {... всі зправа} + {... All} {... всі} + } + + ## ________________________ --EONS-- _________________________ ## +} + +# _ bartabs NS _ # + +namespace eval ::bartabs { + + ## ________________________ Popup menu _________________________ ## + + ::msgcat::mcmset ua { + {List} {Список} + {behind} {слід за} + {Close} {Закрити} + {... All} {... всі} + {... All at Left} {... всі злева} + {... All at Right} {... всі зправа} + } + + ## ________________________ --EONS-- _________________________ ## +} + +# _________________________________ EOF _________________________________ # +#RUNF1: tclsh ../../src/alited.tcl LOG=~/TMP/alited-DEBUG.log DEBUG diff --git a/lib/baltip/baltip.tcl b/lib/baltip/baltip.tcl index 8e588f3..924f5cb 100755 --- a/lib/baltip/baltip.tcl +++ b/lib/baltip/baltip.tcl @@ -57,7 +57,7 @@ proc ::baltip::configure {args} { set my::ttdata($n1) $v } -force - -geometry - -index - -tag - -global {set $n1 $v} - default {return -code error "invalid option \"$n\""} + default {return -code error "baltip: invalid option \"$n\""} } if {$global && ($n ne "-global" || [llength $args]==2)} { foreach k [array names my::ttdata -glob on,*] { diff --git a/lib/e_menu/e_menu.tcl b/lib/e_menu/e_menu.tcl index 7f0d492..8571a6c 100644 --- a/lib/e_menu/e_menu.tcl +++ b/lib/e_menu/e_menu.tcl @@ -27,7 +27,7 @@ package require Tk namespace eval ::em { - variable em_version "e_menu 3.4.5.3" + variable em_version "e_menu 3.4.5.8" variable solo [expr {[info exist ::em::executable] || ( \ [info exist ::argv0] && [file normalize $::argv0] eq [file normalize [info script]])} ? 1 : 0] variable Argv0 diff --git a/lib/e_menu/src/apave.tcl b/lib/e_menu/src/apave.tcl index 6034741..21307c6 100755 --- a/lib/e_menu/src/apave.tcl +++ b/lib/e_menu/src/apave.tcl @@ -1179,8 +1179,12 @@ oo::class create ::apave::APave { siz {set widget ttk::sizegrip} spx - spX { if {$nam3 eq {spx}} {set widget "ttk::spinbox"} {set widget "spinbox"} - lassign [::apave::parseOptions $attrs -command "" -from "" -to "" ] cmd from to - set attrs "-onReturn {$::apave::UFF{$cmd} {$from} {$to}$::apave::UFF} $attrs" + lassign [::apave::parseOptions $attrs -command {} -from {} -to {}] cmd from to + lassign [::apave::extractOptions attrs -tip {} -tooltip {}] t1 t2 + set t2 "$t1$t2" + if {$t2 ne {}} {set t2 "\n $t2"} + set t2 " $from .. $to $t2" + append attrs " -onReturn {$::apave::UFF{$cmd} {$from} {$to}$::apave::UFF} -tip {$t2}" } tbl { ;# tablelist package require tablelist @@ -1850,6 +1854,7 @@ oo::class create ::apave::APave { lassign [::apave::extractOptions attrs1 -takefocus 0 -showcolor {} \ -filetypes {} -initialdir {} -initialfile {} -defaultextension {} -multiple {}] \ takefocus showcolor filetypes initialdir initialfile defaultextension multiple + lassign [::apave::extractOptions options1 -padx 0 -pady 0] padx pady set takefocus "-takefocus $takefocus" foreach atr {filetypes initialdir initialfile defaultextension multiple} { set val [set $atr] @@ -1940,7 +1945,7 @@ oo::class create ::apave::APave { if {$entname ne {}} {append entname $tname} append attrs1 " -callF2 {.$field .buT}" append wpar " -tname $tname" - set entf [list $tname - - - - "pack -side left -expand 1 -fill x -in $inname" "$attrs1 $tvar"] + set entf [list $tname - - - - "pack -padx $padx -pady $pady -side left -expand 1 -fill x -in $inname" "$attrs1 $tvar"] } set icon folder foreach ic {OpenFile SaveFile font color date} { diff --git a/lib/e_menu/src/apaveinput.tcl b/lib/e_menu/src/apaveinput.tcl index 0b13e96..c00f67e 100644 --- a/lib/e_menu/src/apaveinput.tcl +++ b/lib/e_menu/src/apaveinput.tcl @@ -34,7 +34,7 @@ package require Tk -package provide apave 3.4.5.4 +package provide apave 3.4.5.8 source [file join [file dirname [info script]] apavedialog.tcl] diff --git a/lib/e_menu/src/baltip/baltip.tcl b/lib/e_menu/src/baltip/baltip.tcl index 8e588f3..924f5cb 100755 --- a/lib/e_menu/src/baltip/baltip.tcl +++ b/lib/e_menu/src/baltip/baltip.tcl @@ -57,7 +57,7 @@ proc ::baltip::configure {args} { set my::ttdata($n1) $v } -force - -geometry - -index - -tag - -global {set $n1 $v} - default {return -code error "invalid option \"$n\""} + default {return -code error "baltip: invalid option \"$n\""} } if {$global && ($n ne "-global" || [llength $args]==2)} { foreach k [array names my::ttdata -glob on,*] { diff --git a/lib/e_menu/src/e_addon.tcl b/lib/e_menu/src/e_addon.tcl index 074902d..31675a9 100644 --- a/lib/e_menu/src/e_addon.tcl +++ b/lib/e_menu/src/e_addon.tcl @@ -395,7 +395,7 @@ proc ::em::reread_init {} { #___ destroy all e_menu apps proc ::em::destroy_emenus {} { if {[em_question "Clearance - $::em::appname" \ - "\n Destroy all e_menu applications? \n"]} { + "\n Destroy all e_menu applications? \n" yesno ques NO -text 0]} { for {set i 0} {$i < 3} {incr i} { for {set nap 1} {$nap <= 64} {incr nap} { set app $::em::thisapp$nap diff --git a/lib/e_menu/src/obbit.tcl b/lib/e_menu/src/obbit.tcl index c0d9b2c..f8bc09c 100644 --- a/lib/e_menu/src/obbit.tcl +++ b/lib/e_menu/src/obbit.tcl @@ -38,60 +38,60 @@ namespace eval ::apave { # Colors for : 1) meanings 2) code names # itemfg mainfg itembg mainbg itemsHL actbg actfg cursor greyed hot \ - emfg embg - menubg winfg winbg itemHL2 tabHL #004...reserved... + emfg embg - menubg winfg winbg itemHL2 tabHL chkHL #005...reserved... #007 # clrtitf clrinaf clrtitb clrinab clrhelp clractb clractf clrcurs clrgrey clrhotk \ - fI bI --12-- bM fW bW itemHL2 tabHL #004...reserved... + fI bI --12-- bM fW bW itemHL2 tabHL chkHL #005...reserved... #007 set ::apave::_CS_(ALL) { -{{ 0: AwLight} "#141414" #151616 #dfdfde #d1d1d0 #562222 #85b4e7 #000 #444 grey #1a497c #000 #7fb8ce - #bebebd #000 #FBFB96 #cacaca #a20000 #004 #005 #006 #007} -{{ 1: AzureLight} "#050b0d" #050b0d #fff #e1e1e1 #002aaa #8dd9db #000 #444 grey #0e7b7c #000 #81cdcf - #cccccc #000 #FBFB95 #e2e2e0 #ad0000 #004 #005 #006 #007} -{{ 2: ForestLight} "#050b0d" #050b0d #fff #e1e1e1 #004000 #A8CCA8 #000 #444 grey #217346 #000 #a8bda8 - #cccccc #000 #FBFB95 #e2e2e0 #ad0000 #004 #005 #006 #007} -{{ 3: SunValleyLight} "#050b0d" #050b0d #fff #e1e1e1 #00469f #74c9ff #000 #444 grey #005fb8 #000 #7fcbff - #cccccc #000 #FBFB95 #e2e2e0 #950000 #004 #005 #006 #007} -{{ 4: Grey1} "#050b0d" #050b0d #F8F8F8 #dadad8 #5c1616 #AFAFAF #000 #444 grey #933232 #000 #AFAFAF - #caccd0 #000 #FBFB95 #e0e0d8 #a20000 #004 #005 #006 #007} -{{ 5: Grey2} "#050b0d" #050b0d #e9e9e7 #F8F8F8 #5c1616 #b8b8b8 #000 #444 grey #933232 #000 #c1c1c1 - #e1e1e1 #000 #FBFB95 #d5d5d3 #a20000 #004 #005 #006 #007} -{{ 6: Rosy} "#2B122A" #000 #FFFFFF #F6E6E9 #570957 #C5ADC8 #000 #444 grey #870287 #000 #ceb6d1 - #e3d3d6 #000 #FBFB95 #e5e3e1 #a20000 #004 #005 #006 #007} -{{ 7: Clay} "#000" #000 #fdf4ed #ded3cc #500a0a #bcaea2 #000 #444 grey #843500 #fff #9a8f83 - #d5c9c1 #000 #FBFB95 #e1dfde #a20000 #004 #005 #006 #007} -{{ 8: Dawn} "#08085D" #030358 #FFFFFF #e3f9f9 #562222 #a3dce5 #000 #444 grey #933232 #000 #99d2db - #d3e9e9 #000 #FBFB96 #dbe9ed #a20000 #004 #005 #006 #007} -{{ 9: Sky} "#102433" #0A1D33 #d0fdff #bdf6ff #562222 #95ced7 #000 #444 grey #933232 #000 #9ad3dc - #b1eaf3 #000 #FBFB95 #c0e9ef #a20000 #004 #005 #006 #007} -{{10: Florid} "#000" #004000 #e4fce4 #fff #5c1616 #93e493 #0F2D0F #444 grey #802e00 #004000 #a7f8a7 - #d8e7d8 #000 #FBFB96 #d7e6d7 #a20000 #004 #005 #006 #007} -{{11: LightGreen} "#122B05" #091900 #edffed #DEF8DE #562222 #A8CCA8 #000 #444 grey #933232 #000 #A8CCA8 - #cde7cd #000 #FBFB96 #dee9de #a20000 #004 #005 #006 #007} -{{12: InverseGreen} "#122B05" #091900 #cce6c8 #DEF8DE #562222 #9cc09c #000 #444 grey #933232 #000 #b5d9b5 - #c9e3c9 #000 #FBFB96 #bed8ba #a20000 #004 #005 #006 #007} -{{13: GreenPeace} "#001000" #001000 #e1ffdd #cadfca #562222 #9dbb99 #000 #444 grey #933232 #000 #9cb694 - #b9d3b9 #000 #FBFB96 #d2e1d2 #a20000 #004 #005 #006 #007} -{{14: African} "#000" #000 #fff #ffffe7 #460000 #ffd797 #000 #6f2509 #7e7e7e #771d00 #000 #e6ae80 - #e7e7cf #000 #eded89 #ededd5 #a20000 #004 #005 #006 #007} -{{15: African1} "#000" #000 #f5f5dd #f2ebd2 #460000 #ffc48a #000 #6f2509 #7e7e7e #771d00 #000 #f2ebd2 - #e3dcc3 #000 #eded89 #e3e3cb #a20000 #004 #005 #006 #007} -{{16: African2} "#000" #000 #ffffe4 #eae7c0 #500a0a #eaac7a #000 #6f2509 grey #771d00 #00003c #e6ae80 - #dddab3 #000 #fbfb74 #e7e7cb #a20000 #004 #005 #006 #007} -{{17: African3} "#000" #000 #fdf9d0 #d5d2af #500a0a #d59d6f #000 #6f2509 grey #771d00 #00003c #e6ae80 - #c5c29f #000 #fbfb74 #e5e5cc #c10000 #004 #005 #006 #007} -{{18: Yellowstone} "#00002f" #00003c #ffffd1 #cfcdb1 #591c0e #c89160 #000 #444 grey #771d00 #3b1516 #cfab86 - #c2c0a4 #000 #ffff45 #e6e6bb #a30000 #004 #005 #006 #007} -{{19: Notebook} "#000" #000 #e9e1c8 #c2bca8 #460000 #d59d6f #000 #444 #7e7e7e #771d00 #000 #c09c77 - #d0cab6 #000 #eded89 #dad2b9 #a20000 #004 #005 #006 #007} -{{20: Notebook1} "#000" #000 #dad2b9 #b5af9b #460000 #d59d6f #000 #444 #707070 #771d00 #000 #ba9671 - #c5bfab #000 #eded89 #ccc4ab #a20000 #004 #005 #006 #007} -{{21: Notebook2} "#000" #000 #cdc5ac #a6a08c #460000 #d59d6f #000 #444 #606060 #771d00 #000 #cfab86 - #b4ae9a #000 #eded89 #c1b9a0 #980000 #004 #005 #006 #007} -{{22: Notebook3} "#000" #000 #beb69d #96907c #460000 #d59d6f #000 #444 #505050 #771d00 #000 #cfab86 - #a6a08c #000 #eded89 #b2aa91 #7b1010 #004 #005 #006 #007} -{{23: Darcula} "#ececec" #c7c7c7 #272727 #323232 #e98f1c #2F5692 #e1e1e1 #f4f49f grey #d18d3f #EDC881 #2a518d - #444444 #000 #a2a23e #343434 #f28787 #004 #005 #006 #007} -{{24: Dusk} "#ececec" #ececec #1a1f21 #262b2d #f1b479 #6b7072 #000 #f4f49f #585d5f #ffbb6d #000 #6b7072 - #363b3d #000 #9e9e3a #23282a #ffabab #004 #005 #006 #007} -{{25: AwDark} "#F0E8E8" #E7E7E7 #1f2223 #232829 #de9e5e #215d9c #fff #f4f49f grey #80bcfb #fff #134f8e - #313637 #000 #cdcd69 #292e2f #ffabab #004 #005 #006 #007} -{{26: AzureDark} "#ececec" #c7c7c7 #272727 #393939 #28a7ff #007fff #FFF #f4f49f grey #33b2ff #EDC881 #0062a5 - #4a4a4a #000 #a2a23e #404040 #ffc341 #004 #005 #006 #007} -{{27: ForestDark} "#ececec" #c7c7c7 #272727 #393939 #95bf95 #217346 #FFF #f4f49f grey #99c399 #ffffff #247649 - #4a4a4a #000 #a2a23e #323232 #efaf6f #004 #005 #006 #007} -{{28: SunValleyDark} "#dfdfdf" #dddddd #131313 #252525 #38a9e0 #2f60d8 #FFF #f4f49f #6f6f6f #57c8ff #fff #2051c9 - #323232 #000 #a2a23e #2a2a2a #efaf6f #004 #005 #006 #007} -{{29: Dark1} "#E0D9D9" #C4C4C4 #212121 #292929 #de9e5e #6c6c6c #000 #f4f49f #606060 #eda95b #000 #767676 - #363636 #000 #cdcd69 #292929 #ffabab #004 #005 #006 #007} -{{30: Dark2} "#bebebe" #bebebe #1f1f1f #262626 #de9e5e #6b6b6b #000 #f4f49f #616161 #eda95b #000 #767676 - #323232 #000 #b0b04c #262626 #ffabab #004 #005 #006 #007} -{{31: Dark3} "#bebebe" #bebebe #0a0a0a #232323 #de9e5e #6a6a6a #000 #f4f49f #616161 #eda95b #000 #767676 - #303030 #000 #bebe5a #131313 #ffabab #004 #005 #006 #007} -{{32: Oscuro} "#f1f1f1" #f1f1f1 #344545 #526d6d #f1b479 #728d8d #fff #f4f49f #afafaf #f7c475 #000 #94afaf - #5d7474 #000 #cdcd69 #3d4e4e #ffbcbc #004 #005 #006 #007} -{{33: Oscuro1} "#f1f1f1" #f1f1f1 #2a3b3b #466161 #e5a565 #6c8787 #fff #f4f49f #a2a2a2 #edba6b #000 #8ba6a6 - #526969 #000 #cdcd69 #354646 #ffbcbc #004 #005 #006 #007} -{{34: Oscuro2} "#f1f1f1" #f1f1f1 #223333 #3e5959 #de9e5e #668181 #fff #f4f49f #a2a2a2 #e4b162 #000 #819c9c - #4c6363 #000 #cdcd69 #2b3c3c #ffbcbc #004 #005 #006 #007} -{{35: Oscuro3} "#f1f1f1" #f1f1f1 #192a2a #355050 #de9e5e #5c7777 #fff #f4f49f #9e9e9e #dfac5d #000 #779292 - #425959 #000 #cdcd69 #223333 #ffbcbc #004 #005 #006 #007} -{{36: MildDark} "#d2d2d2" #fff #222323 #384e66 #2ccaca #4b7391 #fff #00ffff #939393 #43e1e1 #000 #668eac - #455b73 #000 #bebe5a #2b2c2c #ffa2a2 #004 #005 #006 #007} -{{37: MildDark1} "#d2d2d2" #fff #151616 #2D435B #2ac8c8 #436b89 #fff #00ffff grey #36d4d4 #000 #668eac - #3a5068 #000 #bebe5a #1f2020 #ffb0b0 #004 #005 #006 #007} -{{38: MildDark2} "#b4b4b4" #fff #0d0e0e #24384f #28c6c6 #3e6684 #fff #00ffff #757575 #33d1d1 #000 #668eac - #33475e #000 #bebe5a #161717 #ffaeae #004 #005 #006 #007} -{{39: MildDark3} "#e2e2e2" #f1f1f1 #000 #1B3048 #27c5c5 #375f7d #fff #00ffff #6c6c6c #31d0d0 #000 #668eac - #2a3f57 #000 #b0b04c #0f0f0f #ffafaf #004 #005 #006 #007} -{{40: Inkpot} "#d3d3ff" #AFC2FF #16161f #1E1E27 #de9e5e #6767a8 #000 #f4f49f #6e6e6e #ffbb6d #000 #8585c6 - #292936 #000 #a2a23e #202029 #ffa5a5 #004 #005 #006 #007} -{{41: Quiverly} "#cdd8d8" #cdd8d8 #2b303b #333946 #de9e5e #6f7582 #000 #f4f49f #757575 #eda95b #000 #9197a4 - #414650 #000 #b0b04c #323742 #ffabab #004 #005 #006 #007} -{{42: Monokai} "#f8f8f2" #f8f8f2 #353630 #4e5044 #f1b479 #707070 #000 #f4f49f #9a9a9a #ffbb6d #000 #777777 - #46473d #000 #cdcd69 #3c3d37 #ffabab #004 #005 #006 #007} -{{43: TKE Default} "#dbdbdb" #dbdbdb #000 #282828 #de9e5e #0a0acc #fff #f4f49f #6a6a6a #d3a85a #fff #0000d3 - #383838 #000 #b0b04c #0d0e0e #ffabab #004 #005 #006 #007} -{{44: Magenta} "#E8E8E8" #F0E8E8 #381e44 #4A2A4A #f1b479 #846484 #000 #f4f49f grey #ffbb6d #000 #ad8dad - #573757 #000 #cdcd69 #42284e #ffabab #004 #005 #006 #007} -{{45: Red} "#fff" #e9e9e6 #340202 #440702 #f1b479 #b05e5e #000 #f4f49f #828282 #ffbb6d #000 #ba6868 - #521514 #000 #bebe5a #461414 #ffc1c1 #004 #005 #006 #007} -{{46: Chocolate} "#d6d1ab" #d6d1ab #251919 #402020 #de9e5e #664D4D #fff #f4f49f #828282 #c3984a #fff #583f3f - #432a2a #000 #b0b04c #2d2121 #ffb7b7 #004 #005 #006 #007} -{{47: Desert} "#fff" #fff #47382d #5a4b40 #f1b479 #78695e #000 #f4f49f #a2a2a2 #ffbb6d #000 #7f7065 - #695a4f #000 #eded89 #503f34 #ffabab #004 #005 #006 #007} +{{ 0: AwLight} "#141414" #151616 #dfdfde #d1d1d0 #562222 #85b4e7 #000 #444 grey #1a497c #000 #7fb8ce - #bebebd #000 #FBFB96 #cacaca #a20000 #76b2f1 #005 #006 #007} +{{ 1: AzureLight} "#050b0d" #050b0d #fff #e1e1e1 #002aaa #8dd9db #000 #444 grey #0e7b7c #000 #81cdcf - #cccccc #000 #FBFB95 #e2e2e0 #ad0000 #76b2f1 #005 #006 #007} +{{ 2: ForestLight} "#050b0d" #050b0d #fff #e1e1e1 #004000 #A8CCA8 #000 #444 grey #217346 #000 #a8bda8 - #cccccc #000 #FBFB95 #e2e2e0 #ad0000 #76b2f1 #005 #006 #007} +{{ 3: SunValleyLight} "#050b0d" #050b0d #fff #e1e1e1 #00469f #74c9ff #000 #444 grey #005fb8 #000 #7fcbff - #cccccc #000 #FBFB95 #e2e2e0 #950000 #76b2f1 #005 #006 #007} +{{ 4: Grey1} "#050b0d" #050b0d #F8F8F8 #dadad8 #5c1616 #AFAFAF #000 #444 grey #933232 #000 #AFAFAF - #caccd0 #000 #FBFB95 #e0e0d8 #a20000 #76b2f1 #005 #006 #007} +{{ 5: Grey2} "#050b0d" #050b0d #e9e9e7 #F8F8F8 #5c1616 #b8b8b8 #000 #444 grey #933232 #000 #c1c1c1 - #e1e1e1 #000 #FBFB95 #d5d5d3 #a20000 #76b2f1 #005 #006 #007} +{{ 6: Rosy} "#2B122A" #000 #FFFFFF #F6E6E9 #570957 #C5ADC8 #000 #444 grey #870287 #000 #ceb6d1 - #e3d3d6 #000 #FBFB95 #e5e3e1 #a20000 #76b2f1 #005 #006 #007} +{{ 7: Clay} "#000" #000 #fdf4ed #ded3cc #500a0a #bcaea2 #000 #444 grey #843500 #fff #9a8f83 - #d5c9c1 #000 #FBFB95 #e1dfde #a20000 #76b2f1 #005 #006 #007} +{{ 8: Dawn} "#08085D" #030358 #FFFFFF #e3f9f9 #562222 #a3dce5 #000 #444 grey #933232 #000 #99d2db - #d3e9e9 #000 #FBFB96 #dbe9ed #a20000 #76b2f1 #005 #006 #007} +{{ 9: Sky} "#102433" #0A1D33 #d0fdff #bdf6ff #562222 #95ced7 #000 #444 grey #933232 #000 #9ad3dc - #b1eaf3 #000 #FBFB95 #c0e9ef #a20000 #76b2f1 #005 #006 #007} +{{10: Florid} "#000" #004000 #e4fce4 #fff #5c1616 #93e493 #0F2D0F #444 grey #802e00 #004000 #a7f8a7 - #d8e7d8 #000 #FBFB96 #d7e6d7 #a20000 #76b2f1 #005 #006 #007} +{{11: LightGreen} "#122B05" #091900 #edffed #DEF8DE #562222 #A8CCA8 #000 #444 grey #933232 #000 #A8CCA8 - #cde7cd #000 #FBFB96 #dee9de #a20000 #76b2f1 #005 #006 #007} +{{12: InverseGreen} "#122B05" #091900 #cce6c8 #DEF8DE #562222 #9cc09c #000 #444 grey #933232 #000 #b5d9b5 - #c9e3c9 #000 #FBFB96 #bed8ba #a20000 #76b2f1 #005 #006 #007} +{{13: GreenPeace} "#001000" #001000 #e1ffdd #cadfca #562222 #9dbb99 #000 #444 grey #933232 #000 #9cb694 - #b9d3b9 #000 #FBFB96 #d2e1d2 #a20000 #76b2f1 #005 #006 #007} +{{14: African} "#000" #000 #fff #ffffe7 #460000 #ffd797 #000 #6f2509 #7e7e7e #771d00 #000 #e6ae80 - #e7e7cf #000 #eded89 #ededd5 #a20000 #76b2f1 #005 #006 #007} +{{15: African1} "#000" #000 #f5f5dd #f2ebd2 #460000 #ffc48a #000 #6f2509 #7e7e7e #771d00 #000 #f2ebd2 - #e3dcc3 #000 #eded89 #e3e3cb #a20000 #76b2f1 #005 #006 #007} +{{16: African2} "#000" #000 #ffffe4 #eae7c0 #500a0a #eaac7a #000 #6f2509 grey #771d00 #00003c #e6ae80 - #dddab3 #000 #fbfb74 #e7e7cb #a20000 #76b2f1 #005 #006 #007} +{{17: African3} "#000" #000 #fdf9d0 #d5d2af #500a0a #d59d6f #000 #6f2509 grey #771d00 #00003c #e6ae80 - #c5c29f #000 #fbfb74 #e5e5cc #c10000 #76b2f1 #005 #006 #007} +{{18: Yellowstone} "#00002f" #00003c #ffffd1 #cfcdb1 #591c0e #c89160 #000 #444 grey #771d00 #3b1516 #cfab86 - #c2c0a4 #000 #ffff45 #e6e6bb #a30000 #76b2f1 #005 #006 #007} +{{19: Notebook} "#000" #000 #e9e1c8 #c2bca8 #460000 #d59d6f #000 #444 #7e7e7e #771d00 #000 #c09c77 - #d0cab6 #000 #eded89 #dad2b9 #a20000 #76b2f1 #005 #006 #007} +{{20: Notebook1} "#000" #000 #dad2b9 #b5af9b #460000 #d59d6f #000 #444 #707070 #771d00 #000 #ba9671 - #c5bfab #000 #eded89 #ccc4ab #a20000 #76b2f1 #005 #006 #007} +{{21: Notebook2} "#000" #000 #cdc5ac #a6a08c #460000 #d59d6f #000 #444 #606060 #771d00 #000 #cfab86 - #b4ae9a #000 #eded89 #c1b9a0 #980000 #76b2f1 #005 #006 #007} +{{22: Notebook3} "#000" #000 #beb69d #96907c #460000 #d59d6f #000 #444 #505050 #771d00 #000 #cfab86 - #a6a08c #000 #eded89 #b2aa91 #7b1010 #76b2f1 #005 #006 #007} +{{23: Darcula} "#ececec" #c7c7c7 #272727 #323232 #e98f1c #2F5692 #e1e1e1 #f4f49f grey #d18d3f #EDC881 #2a518d - #444444 #000 #a2a23e #343434 #f28787 #76b2f1 #005 #006 #007} +{{24: Dusk} "#ececec" #ececec #1a1f21 #262b2d #95bf95 #217346 #FFF #f4f49f #585d5f #99c399 #ffffff #225c3b - #363b3d #000 #9e9e3a #23282a #ffabab #99dd99 #005 #006 #007} +{{25: AwDark} "#F0E8E8" #E7E7E7 #1f2223 #232829 #de9e5e #215d9c #fff #f4f49f grey #80bcfb #fff #134f8e - #313637 #000 #cdcd69 #292e2f #ffabab #76b2f1 #005 #006 #007} +{{26: AzureDark} "#ececec" #c7c7c7 #272727 #393939 #28a7ff #007fff #FFF #f4f49f grey #33b2ff #EDC881 #0062a5 - #4a4a4a #000 #a2a23e #404040 #ffc341 #76b2f1 #005 #006 #007} +{{27: ForestDark} "#ececec" #c7c7c7 #272727 #393939 #95bf95 #217346 #FFF #f4f49f grey #99c399 #ffffff #247649 - #4a4a4a #000 #a2a23e #323232 #efaf6f #99dd99 #005 #006 #007} +{{28: SunValleyDark} "#dfdfdf" #dddddd #131313 #252525 #38a9e0 #2f60d8 #FFF #f4f49f #6f6f6f #57c8ff #fff #2051c9 - #323232 #000 #a2a23e #2a2a2a #efaf6f #4273eb #005 #006 #007} +{{29: Dark1} "#E0D9D9" #C4C4C4 #212121 #292929 #de9e5e #6c6c6c #000 #f4f49f #606060 #eda95b #000 #767676 - #363636 #000 #cdcd69 #292929 #ffabab #76b2f1 #005 #006 #007} +{{30: Dark2} "#bebebe" #bebebe #1f1f1f #262626 #de9e5e #6b6b6b #000 #f4f49f #616161 #eda95b #000 #767676 - #323232 #000 #b0b04c #262626 #ffabab #76b2f1 #005 #006 #007} +{{31: Dark3} "#bebebe" #bebebe #0a0a0a #232323 #de9e5e #6a6a6a #000 #f4f49f #616161 #eda95b #000 #767676 - #303030 #000 #bebe5a #131313 #ffabab #76b2f1 #005 #006 #007} +{{32: Oscuro} "#f1f1f1" #f1f1f1 #344545 #526d6d #f1b479 #728d8d #fff #f4f49f #afafaf #f7c475 #000 #94afaf - #5d7474 #000 #cdcd69 #3d4e4e #ffbcbc #a3f1c7 #005 #006 #007} +{{33: Oscuro1} "#f1f1f1" #f1f1f1 #2a3b3b #466161 #e5a565 #6c8787 #fff #f4f49f #a2a2a2 #edba6b #000 #8ba6a6 - #526969 #000 #cdcd69 #354646 #ffbcbc #96e4ba #005 #006 #007} +{{34: Oscuro2} "#f1f1f1" #f1f1f1 #223333 #3e5959 #de9e5e #668181 #fff #f4f49f #a2a2a2 #e4b162 #000 #819c9c - #4c6363 #000 #cdcd69 #2b3c3c #ffbcbc #8ad8ae #005 #006 #007} +{{35: Oscuro3} "#f1f1f1" #f1f1f1 #192a2a #355050 #de9e5e #5c7777 #fff #f4f49f #9e9e9e #dfac5d #000 #779292 - #425959 #000 #cdcd69 #223333 #ffbcbc #80cea4 #005 #006 #007} +{{36: MildDark} "#d2d2d2" #fff #222323 #384e66 #2ccaca #4b7391 #fff #00ffff #939393 #43e1e1 #000 #668eac - #455b73 #000 #bebe5a #2b2c2c #ffa2a2 #76b2f1 #005 #006 #007} +{{37: MildDark1} "#d2d2d2" #fff #151616 #2D435B #2ac8c8 #436b89 #fff #00ffff grey #36d4d4 #000 #668eac - #3a5068 #000 #bebe5a #1f2020 #ffb0b0 #76b2f1 #005 #006 #007} +{{38: MildDark2} "#b4b4b4" #fff #0d0e0e #24384f #28c6c6 #3e6684 #fff #00ffff #757575 #33d1d1 #000 #668eac - #33475e #000 #bebe5a #161717 #ffaeae #76b2f1 #005 #006 #007} +{{39: MildDark3} "#e2e2e2" #f1f1f1 #000 #1B3048 #27c5c5 #375f7d #fff #00ffff #6c6c6c #31d0d0 #000 #668eac - #2a3f57 #000 #b0b04c #0f0f0f #ffafaf #76b2f1 #005 #006 #007} +{{40: Inkpot} "#d3d3ff" #AFC2FF #16161f #1E1E27 #de9e5e #6767a8 #000 #f4f49f #6e6e6e #ffbb6d #000 #8585c6 - #292936 #000 #a2a23e #202029 #ffa5a5 #7a7abb #005 #006 #007} +{{41: Quiverly} "#cdd8d8" #cdd8d8 #2b303b #333946 #de9e5e #6f7582 #000 #f4f49f #757575 #eda95b #000 #9197a4 - #414650 #000 #b0b04c #323742 #ffabab #76b2f1 #005 #006 #007} +{{42: Monokai} "#f8f8f2" #f8f8f2 #353630 #4e5044 #f1b479 #707070 #000 #f4f49f #9a9a9a #ffbb6d #000 #777777 - #46473d #000 #cdcd69 #3c3d37 #ffabab #cd994b #005 #006 #007} +{{43: TKE Default} "#dbdbdb" #dbdbdb #000 #282828 #de9e5e #0a0acc #fff #f4f49f #6a6a6a #d3a85a #fff #0000d3 - #383838 #000 #b0b04c #0d0e0e #ffabab #76b2f1 #005 #006 #007} +{{44: Magenta} "#E8E8E8" #F0E8E8 #381e44 #4A2A4A #f1b479 #846484 #000 #f4f49f grey #ffbb6d #000 #ad8dad - #573757 #000 #cdcd69 #42284e #ffabab #ffafff #005 #006 #007} +{{45: Red} "#fff" #e9e9e6 #340202 #440702 #f1b479 #b05e5e #000 #f4f49f #828282 #ffbb6d #000 #ba6868 - #521514 #000 #bebe5a #461414 #ffc1c1 #ff9a9a #005 #006 #007} +{{46: Chocolate} "#d6d1ab" #d6d1ab #251919 #402020 #de9e5e #664D4D #fff #f4f49f #828282 #c3984a #fff #583f3f - #432a2a #000 #b0b04c #2d2121 #ffb7b7 #cf9292 #005 #006 #007} +{{47: Desert} "#fff" #fff #47382d #5a4b40 #f1b479 #78695e #000 #f4f49f #a2a2a2 #ffbb6d #000 #7f7065 - #695a4f #000 #eded89 #503f34 #ffabab #ead79b #005 #006 #007} } set ::apave::_CS_(initall) 1 set ::apave::_CS_(initWM) 1 @@ -1212,11 +1212,11 @@ oo::class create ::apave::ObjectTheming { if {$ncolor == -2} return if {$ncolor eq {}} { lassign $args \ - clrtitf clrinaf clrtitb clrinab clrhelp clractb clractf clrcurs clrgrey clrhotk tfgI tbgI fM bM tfgW tbgW tHL2 tbHL res4 res5 res6 res7 + clrtitf clrinaf clrtitb clrinab clrhelp clractb clractf clrcurs clrgrey clrhotk tfgI tbgI fM bM tfgW tbgW tHL2 tbHL chkHL res5 res6 res7 } else { foreach cs [list $ncolor $::apave::_CS_(MINCS)] { lassign [my csGet $cs] \ - clrtitf clrinaf clrtitb clrinab clrhelp clractb clractf clrcurs clrgrey clrhotk tfgI tbgI fM bM tfgW tbgW tHL2 tbHL res4 res5 res6 res7 + clrtitf clrinaf clrtitb clrinab clrhelp clractb clractf clrcurs clrgrey clrhotk tfgI tbgI fM bM tfgW tbgW tHL2 tbHL chkHL res5 res6 res7 if {$clrtitf ne ""} break set ncolor $cs } @@ -1235,13 +1235,13 @@ oo::class create ::apave::ObjectTheming { set grey $gr ;# #808080 if {$::apave::_CS_(old) != $ncolor || $args eq "-doit"} { set ::apave::_CS_(old) $ncolor - my themeWindow $win [list $fg $bg $fE $bE $fS $bS $grey $bg $cc $ht $hh $tfgI $tbgI $fM $bM $tfgW $tbgW $tHL2 $tbHL $res4 $res5 $res6 $res7] + my themeWindow $win [list $fg $bg $fE $bE $fS $bS $grey $bg $cc $ht $hh $tfgI $tbgI $fM $bM $tfgW $tbgW $tHL2 $tbHL $chkHL $res5 $res6 $res7] my UpdateColors my initTooltip } set ::apave::FGMAIN $fg set ::apave::BGMAIN $bg - return [list $fg $bg $fE $bE $fS $bS $hh $grey $cc $ht $tfgI $tbgI $fM $bM $tfgW $tbgW $tHL2 $tbHL $res4 $res5 $res6 $res7] + return [list $fg $bg $fE $bE $fS $bS $hh $grey $cc $ht $tfgI $tbgI $fM $bM $tfgW $tbgW $tHL2 $tbHL $chkHL $res5 $res6 $res7] } ########################################################################### @@ -1424,7 +1424,7 @@ oo::class create ::apave::ObjectTheming { # be consistent with TKE theme. lassign $clrs tfg1 tbg1 tfg2 tbg2 tfgS tbgS tfgD tbgD tcur bclr \ - thlp tfgI tbgI tfgM tbgM twfg twbg tHL2 tbHL res4 res5 res6 res7 + thlp tfgI tbgI tfgM tbgM twfg twbg tHL2 tbHL chkHL res5 res6 res7 if {$tfg1 eq {-}} return if {!$isCS} { # if 'external scheme' is used, register it in _CS_(ALL) @@ -1435,7 +1435,7 @@ oo::class create ::apave::ObjectTheming { my csAdd [list CS-[expr {[::apave::cs_Max]+1}] $tfg2 $tfg1 $tbg2 $tbg1 \ $thlp $tbgS $tfgS $tcur $tfgD $bclr $tfgI $tbgI $tfgM $tbgM \ - $twfg $twbg $tHL2 $tbHL $res4 $res5 $res6 $res7] + $twfg $twbg $tHL2 $tbHL $chkHL $res5 $res6 $res7] } if {$tfgI eq {}} {set tfgI $tfg2} if {$tbgI eq {}} {set tbgI $tbg2} @@ -1443,7 +1443,7 @@ oo::class create ::apave::ObjectTheming { if {$tbgM eq {}} {set tbgM $tbg1} my Main_Style $tfg1 $tbg1 $tfg2 $tbg2 $tfgS $tbgS $tfgD $tbg1 $tfg1 $tbg2 $tbg1 foreach arg {tfg1 tbg1 tfg2 tbg2 tfgS tbgS tfgD tbgD tcur bclr \ - thlp tfgI tbgI tfgM tbgM twfg twbg tHL2 tbHL res4 res5 res6 res7 args} { + thlp tfgI tbgI tfgM tbgM twfg twbg tHL2 tbHL chkHL res5 res6 res7 args} { if {$win eq {.}} { set ::apave::_C_($win,$arg) [set $arg] } @@ -1465,6 +1465,7 @@ oo::class create ::apave::ObjectTheming { my Ttk_style configure TLabelframe.Label -background $tbg1 my Ttk_style configure TLabelframe.Label -font $fontdef foreach ts {TNotebook TFrame} { + my Ttk_style configure $ts -background $tbg1 my Ttk_style map $ts -background [list focus $tbg1 !focus $tbg1] } foreach ts {TNotebook.Tab} { @@ -1536,6 +1537,14 @@ oo::class create ::apave::ObjectTheming { foreach ts {TRadiobutton TCheckbutton} { ttk::style map $ts -background [list focus $tbg2 !focus $tbg1] } + if {[my csDarkEdit]} { + # esp. for default/alt/classic themes and dark CS: + # checked buttons to be lighter + foreach ts {TCheckbutton TRadiobutton} { + ttk::style configure $ts -indicatorcolor $tbgM + ttk::style map $ts -indicatorcolor [list pressed $tbg2 selected $chkHL] + } + } # non-themed widgets of button and entry types foreach ts [my NonThemedWidgets button] { set ::apave::_C_($ts,0) 6 diff --git a/lib/e_menu/src/pickers/color/msgs/ua.msg b/lib/e_menu/src/pickers/color/msgs/ua.msg new file mode 100644 index 0000000..03dc09c --- /dev/null +++ b/lib/e_menu/src/pickers/color/msgs/ua.msg @@ -0,0 +1,26 @@ +namespace eval ::tk { + ::msgcat::mcset ua "&Blue" " Блакитний" + ::msgcat::mcset ua "Blue" "Блакитний" + ::msgcat::mcset ua "Cancel" "Відміна" + ::msgcat::mcset ua "&Cancel" "Відміна" + ::msgcat::mcset ua "Color" "Колір" + ::msgcat::mcset ua "&Green" " Зелений" + ::msgcat::mcset ua "Green" "Зелений" + ::msgcat::mcset ua "&OK" "&OK" + ::msgcat::mcset ua "OK" "OK" + ::msgcat::mcset ua "&Red" " Червоний" + ::msgcat::mcset ua "Red" "Червоний" + ::msgcat::mcset ua "&Selection:" " Вибір:" + ::msgcat::mcset ua "Selection:" "Вибір:" + ::msgcat::mcset ua "Move all" "Рухати все" + ::msgcat::mcset ua "Tone moves" "Тонувати рухи" + ::msgcat::mcset ua "From clipboard" "З буферу" + ::msgcat::mcset ua "To clipboard" "До буферу" + ::msgcat::mcset ua "Loupe" "Лупа" + ::msgcat::mcset ua "Close" "Закрити" + ::msgcat::mcset ua "Size" "Розмір" + ::msgcat::mcset ua "Zoom" "Масштаб" + ::msgcat::mcset ua "blue" "блакитний" + ::msgcat::mcset ua "green" "зелений" + ::msgcat::mcset ua "red" "червоний" +} diff --git a/lib/e_menu/src/pickers/klnd/klnd.tcl b/lib/e_menu/src/pickers/klnd/klnd.tcl index 56a271b..1f5ccd0 100755 --- a/lib/e_menu/src/pickers/klnd/klnd.tcl +++ b/lib/e_menu/src/pickers/klnd/klnd.tcl @@ -18,9 +18,13 @@ namespace eval ::klnd { array set locales [list \ en_uk %u \ en_us %w \ + ru %u \ ru_ru %u \ ru_ua %u \ + ua %u \ uk_ua %u \ + ua_ua %u \ + by %u \ be_by %u \ ] array set p [list FINT %Y/%N/%e days {} months {} \ diff --git a/lib/e_menu/src/pkgIndex.tcl b/lib/e_menu/src/pkgIndex.tcl index a0d74df..209cd20 100644 --- a/lib/e_menu/src/pkgIndex.tcl +++ b/lib/e_menu/src/pkgIndex.tcl @@ -1,5 +1,5 @@ -package ifneeded apave 3.4.5.4 [list source [file join $dir apaveinput.tcl]] +package ifneeded apave 3.4.5.8 [list source [file join $dir apaveinput.tcl]] # A short intro (for Ruff! docs generator:) diff --git a/lib/hl_tcl/README.md b/lib/hl_tcl/README.md index c821416..d3fcce7 100644 --- a/lib/hl_tcl/README.md +++ b/lib/hl_tcl/README.md @@ -75,6 +75,7 @@ It seems *hl_tcl* got close to this compromise. Specifically, it provides: * special highlighting for Tcl and TclOO commands * special highlighting for Tk and ttk commands + * allowing additional commands to highlight (as Tk ones) * special highlighting for declarations `proc, method, oo::class` etc. as well as `return, yield` * special highlighting for `#comments`, `$variables`, `"strings"`, `-options` * in-line comments being recognized and thus highlighted only after `;#` @@ -132,6 +133,7 @@ The *args* is a list of *-option "value"* where *-option* may be: * *-cmdpos* - command to watch cursor positioning (default "") * *-seen* - number of first lines seen at start (default 500) * *-optRE* - flag "use a regular expression to highlight options" (default "yes") + * *-keywords* - additional commands to highlight (as Tk ones) **Note**: `-seen 500` and `-multiline no` can improve the performance a lot. It's recommended to use `-seen 500` (or any other reasonable limit, e.g. `-seen 200`) at any rate, except for static html pages. diff --git a/lib/hl_tcl/hl_c.tcl b/lib/hl_tcl/hl_c.tcl index 3d13f1a..a181bf7 100755 --- a/lib/hl_tcl/hl_c.tcl +++ b/lib/hl_tcl/hl_c.tcl @@ -372,74 +372,76 @@ proc ::hl_c::my::CoroModified {txt {i1 -1} {i2 -1} args} { # txt - text widget's path # See also: Modified - variable data - # current line: - set ln [expr {int([$txt index insert])}] - # ending line: - set endl [expr {int([$txt index {end -1 char}])}] - # range of change: - if {$i1!=-1} { - set dl [expr {abs($i2-$i1)}] - set ln $i1 - } else { - set dl [expr {abs(int($data(CUR_LEN,$txt)) - $endl)}] - } - # begin and end of changes: - set ln1 [set lno1 [expr {max(($ln-$dl),1)}]] - set ln2 [set lno2 [expr {min(($ln+$dl),$endl)}]] - lassign [CountQSH $txt $ln] cntq cnts ccmnt - # flag "highlight to the end": - set bf1 [expr {abs($ln-int($data(CURPOS,$txt)))>1 || $dl>1 \ - || $cntq!=$data(CNT_QUOTE,$txt) \ - || $ccmnt!=$data(CNT_COMMENT,$txt)}] - set bf2 [expr {$cnts!=$data(CNT_SLASH,$txt)}] - if {$bf1 && !$data(MULTILINE,$txt) || $bf2} { - set lnt1 $ln - set lnt2 [expr {$ln+1}] - while {$ln2<$endl && $lnt1<$endl && $lnt2<=$endl && ( \ - [$txt get "$lnt1.end -1 char" $lnt1.end] in {\\ \"} || - [$txt get "$lnt2.end -1 char" $lnt2.end] in {\\ \"}) || $bf2} { - incr lnt1 ;# next lines be handled too, if ended with "\\" - incr lnt2 - incr ln2 - set bf2 0 + catch { + variable data + # current line: + set ln [expr {int([$txt index insert])}] + # ending line: + set endl [expr {int([$txt index {end -1 char}])}] + # range of change: + if {$i1!=-1} { + set dl [expr {abs($i2-$i1)}] + set ln $i1 + } else { + set dl [expr {abs(int($data(CUR_LEN,$txt)) - $endl)}] } - } - set tSTR [$txt tag ranges tagSTR] - set tCMN [$txt tag ranges tagCMN] - if {$ln1==1} { - set currQtd -1 - } else { - set currQtd [LineState $txt $tSTR $tCMN "$ln1.0 -1 chars"] - } - if {!$data(PLAINTEXT,$txt)} { - set lnseen 0 - $txt tag add tagSTD $ln1.0 $ln2.end - while {$ln1<=$ln2} { - if {$ln1==$ln2} { - set bf2 [LineState $txt $tSTR $tCMN "$ln1.end +1 chars"] + # begin and end of changes: + set ln1 [set lno1 [expr {max(($ln-$dl),1)}]] + set ln2 [set lno2 [expr {min(($ln+$dl),$endl)}]] + lassign [CountQSH $txt $ln] cntq cnts ccmnt + # flag "highlight to the end": + set bf1 [expr {abs($ln-int($data(CURPOS,$txt)))>1 || $dl>1 \ + || $cntq!=$data(CNT_QUOTE,$txt) \ + || $ccmnt!=$data(CNT_COMMENT,$txt)}] + set bf2 [expr {$cnts!=$data(CNT_SLASH,$txt)}] + if {$bf1 && !$data(MULTILINE,$txt) || $bf2} { + set lnt1 $ln + set lnt2 [expr {$ln+1}] + while {$ln2<$endl && $lnt1<$endl && $lnt2<=$endl && ( \ + [$txt get "$lnt1.end -1 char" $lnt1.end] in {\\ \"} || + [$txt get "$lnt2.end -1 char" $lnt2.end] in {\\ \"}) || $bf2} { + incr lnt1 ;# next lines be handled too, if ended with "\\" + incr lnt2 + incr ln2 + set bf2 0 } - RemoveTags $txt $ln1.0 $ln1.end - set currQtd [HighlightLine $txt $ln1 $currQtd] - if {$ln1==$ln2 && ($bf1 || $bf2!=$currQtd) && $data(MULTILINE,$txt)} { - set ln2 $endl ;# run to the end - } - if {[incr lnseen]>$::hl_c::my::data(SEEN,$txt)} { - set lnseen 0 - catch {after cancel $data(COROATFER,$txt)} - set data(COROATFER,$txt) [after idle after 1 [info coroutine]] - yield + } + set tSTR [$txt tag ranges tagSTR] + set tCMN [$txt tag ranges tagCMN] + if {$ln1==1} { + set currQtd -1 + } else { + set currQtd [LineState $txt $tSTR $tCMN "$ln1.0 -1 chars"] + } + if {!$data(PLAINTEXT,$txt)} { + set lnseen 0 + $txt tag add tagSTD $ln1.0 $ln2.end + while {$ln1<=$ln2} { + if {$ln1==$ln2} { + set bf2 [LineState $txt $tSTR $tCMN "$ln1.end +1 chars"] + } + RemoveTags $txt $ln1.0 $ln1.end + set currQtd [HighlightLine $txt $ln1 $currQtd] + if {$ln1==$ln2 && ($bf1 || $bf2!=$currQtd) && $data(MULTILINE,$txt)} { + set ln2 $endl ;# run to the end + } + if {[incr lnseen]>$::hl_c::my::data(SEEN,$txt)} { + set lnseen 0 + catch {after cancel $data(COROATFER,$txt)} + set data(COROATFER,$txt) [after idle after 1 [info coroutine]] + yield + } + incr ln1 } - incr ln1 } + if {[set cmd $data(CMD,$txt)] ne {}} { + # run a command after changes done (its arguments are txt, ln1, ln2) + append cmd " $txt $lno1 $lno2 $args" + {*}$cmd + } + MemPos $txt + return } - if {[set cmd $data(CMD,$txt)] ne {}} { - # run a command after changes done (its arguments are txt, ln1, ln2) - append cmd " $txt $lno1 $lno2 $args" - {*}$cmd - } - MemPos $txt - return } #_____ diff --git a/lib/hl_tcl/hl_tcl.tcl b/lib/hl_tcl/hl_tcl.tcl index 0171339..2d3bdce 100755 --- a/lib/hl_tcl/hl_tcl.tcl +++ b/lib/hl_tcl/hl_tcl.tcl @@ -7,7 +7,7 @@ # License: MIT. ########################################################### -package provide hl_tcl 0.9.26 +package provide hl_tcl 0.9.27 # ______________________ Common data ____________________ # @@ -566,75 +566,77 @@ proc ::hl_tcl::my::CoroModified {txt {i1 -1} {i2 -1} args} { # txt - text widget's path # See also: Modified - variable data - # current line: - set ln [expr {int([$txt index insert])}] - # ending line: - set endl [expr {int([$txt index {end -1 char}])}] - # range of change: - if {$i1!=-1} { - set dl [expr {abs($i2-$i1)}] - set ln $i1 - } else { - set dl [expr {abs(int($data(CUR_LEN,$txt)) - $endl)}] - } - # begin and end of changes: - set ln1 [set lno1 [expr {max(($ln-$dl),1)}]] - set ln2 [set lno2 [expr {min(($ln+$dl),$endl)}]] - lassign [CountQSH $txt $ln] cntq cnts ccmnt - # flag "highlight to the end": - set bf1 [expr {abs($ln-int($data(CURPOS,$txt)))>1 || $dl>1 \ - || $cntq!=$data(CNT_QUOTE,$txt) \ - || $ccmnt!=$data(CNT_COMMENT,$txt)}] - set bf2 [expr {$cnts!=$data(CNT_SLASH,$txt)}] - if {$bf1 && !$data(MULTILINE,$txt) || $bf2} { - set lnt1 $ln - set lnt2 [expr {$ln+1}] - while {$ln2<$endl && $lnt1<$endl && $lnt2<=$endl && ( \ - [$txt get "$lnt1.end -1 char" $lnt1.end] in {\\ \"} || - [$txt get "$lnt2.end -1 char" $lnt2.end] in {\\ \"}) || $bf2} { - incr lnt1 ;# next lines be handled too, if ended with "\\" - incr lnt2 - incr ln2 - set bf2 0 + catch { + variable data + # current line: + set ln [expr {int([$txt index insert])}] + # ending line: + set endl [expr {int([$txt index {end -1 char}])}] + # range of change: + if {$i1!=-1} { + set dl [expr {abs($i2-$i1)}] + set ln $i1 + } else { + set dl [expr {abs(int($data(CUR_LEN,$txt)) - $endl)}] } - } - set tSTR [$txt tag ranges tagSTR] - set tCMN [$txt tag ranges tagCMN] - if {$ln1==1} { - set currQtd 0 - } else { - set currQtd [LineState $txt $tSTR $tCMN "$ln1.0 -1 chars"] - } - if {$data(PLAINTEXT,$txt)} { - $txt tag add tagSTD $ln1.0 $ln2.end - } else { - set lnseen 0 - while {$ln1<=$ln2} { - if {$ln1==$ln2} { - set bf2 [LineState $txt $tSTR $tCMN "$ln1.end +1 chars"] + # begin and end of changes: + set ln1 [set lno1 [expr {max(($ln-$dl),1)}]] + set ln2 [set lno2 [expr {min(($ln+$dl),$endl)}]] + lassign [CountQSH $txt $ln] cntq cnts ccmnt + # flag "highlight to the end": + set bf1 [expr {abs($ln-int($data(CURPOS,$txt)))>1 || $dl>1 \ + || $cntq!=$data(CNT_QUOTE,$txt) \ + || $ccmnt!=$data(CNT_COMMENT,$txt)}] + set bf2 [expr {$cnts!=$data(CNT_SLASH,$txt)}] + if {$bf1 && !$data(MULTILINE,$txt) || $bf2} { + set lnt1 $ln + set lnt2 [expr {$ln+1}] + while {$ln2<$endl && $lnt1<$endl && $lnt2<=$endl && ( \ + [$txt get "$lnt1.end -1 char" $lnt1.end] in {\\ \"} || + [$txt get "$lnt2.end -1 char" $lnt2.end] in {\\ \"}) || $bf2} { + incr lnt1 ;# next lines be handled too, if ended with "\\" + incr lnt2 + incr ln2 + set bf2 0 } - RemoveTags $txt $ln1.0 $ln1.end - set currQtd [HighlightLine $txt $ln1 $currQtd] - if {$ln1==$ln2 && ($bf1 || $bf2!=$currQtd) && $data(MULTILINE,$txt)} { - set ln2 $endl ;# run to the end - } - if {[incr lnseen]>$::hl_tcl::my::data(SEEN,$txt)} { - set lnseen 0 - catch {after cancel $data(COROATFER,$txt)} - set data(COROATFER,$txt) [after idle after 1 [info coroutine]] - yield + } + set tSTR [$txt tag ranges tagSTR] + set tCMN [$txt tag ranges tagCMN] + if {$ln1==1} { + set currQtd 0 + } else { + set currQtd [LineState $txt $tSTR $tCMN "$ln1.0 -1 chars"] + } + if {$data(PLAINTEXT,$txt)} { + $txt tag add tagSTD $ln1.0 $ln2.end + } else { + set lnseen 0 + while {$ln1<=$ln2} { + if {$ln1==$ln2} { + set bf2 [LineState $txt $tSTR $tCMN "$ln1.end +1 chars"] + } + RemoveTags $txt $ln1.0 $ln1.end + set currQtd [HighlightLine $txt $ln1 $currQtd] + if {$ln1==$ln2 && ($bf1 || $bf2!=$currQtd) && $data(MULTILINE,$txt)} { + set ln2 $endl ;# run to the end + } + if {[incr lnseen]>$::hl_tcl::my::data(SEEN,$txt)} { + set lnseen 0 + catch {after cancel $data(COROATFER,$txt)} + set data(COROATFER,$txt) [after idle after 1 [info coroutine]] + yield + } + incr ln1 } - incr ln1 } + if {[set cmd $data(CMD,$txt)] ne {}} { + # run a command after changes done (its arguments are txt, ln1, ln2) + append cmd " $txt $lno1 $lno2 $args" + {*}$cmd + } + MemPos $txt + return } - if {[set cmd $data(CMD,$txt)] ne {}} { - # run a command after changes done (its arguments are txt, ln1, ln2) - append cmd " $txt $lno1 $lno2 $args" - {*}$cmd - } - MemPos $txt - return } #_____ @@ -968,6 +970,7 @@ proc ::hl_tcl::hl_init {txt args} { # -colors - list of colors: clrCOM, clrCOMTK, clrSTR, clrVAR, clrCMN, clrPROC # -font - attributes of font # -seen - lines seen at start + # -keywords - additional commands to highlight (as Tk ones) # This procedure has to be called before writing a text in the text widget. if {[set setonly [expr {[lindex $args 0] eq {--}}]]} { diff --git a/lib/hl_tcl/pkgIndex.tcl b/lib/hl_tcl/pkgIndex.tcl index 4f6e13b..8f55810 100644 --- a/lib/hl_tcl/pkgIndex.tcl +++ b/lib/hl_tcl/pkgIndex.tcl @@ -1,5 +1,5 @@ -package ifneeded hl_tcl 0.9.26 [list source [file join $dir hl_tcl.tcl]] +package ifneeded hl_tcl 0.9.27 [list source [file join $dir hl_tcl.tcl]] # short intro (for Ruff! docs generator) diff --git a/lib/pave/apave.tcl b/lib/pave/apave.tcl index 6034741..21307c6 100755 --- a/lib/pave/apave.tcl +++ b/lib/pave/apave.tcl @@ -1179,8 +1179,12 @@ oo::class create ::apave::APave { siz {set widget ttk::sizegrip} spx - spX { if {$nam3 eq {spx}} {set widget "ttk::spinbox"} {set widget "spinbox"} - lassign [::apave::parseOptions $attrs -command "" -from "" -to "" ] cmd from to - set attrs "-onReturn {$::apave::UFF{$cmd} {$from} {$to}$::apave::UFF} $attrs" + lassign [::apave::parseOptions $attrs -command {} -from {} -to {}] cmd from to + lassign [::apave::extractOptions attrs -tip {} -tooltip {}] t1 t2 + set t2 "$t1$t2" + if {$t2 ne {}} {set t2 "\n $t2"} + set t2 " $from .. $to $t2" + append attrs " -onReturn {$::apave::UFF{$cmd} {$from} {$to}$::apave::UFF} -tip {$t2}" } tbl { ;# tablelist package require tablelist @@ -1850,6 +1854,7 @@ oo::class create ::apave::APave { lassign [::apave::extractOptions attrs1 -takefocus 0 -showcolor {} \ -filetypes {} -initialdir {} -initialfile {} -defaultextension {} -multiple {}] \ takefocus showcolor filetypes initialdir initialfile defaultextension multiple + lassign [::apave::extractOptions options1 -padx 0 -pady 0] padx pady set takefocus "-takefocus $takefocus" foreach atr {filetypes initialdir initialfile defaultextension multiple} { set val [set $atr] @@ -1940,7 +1945,7 @@ oo::class create ::apave::APave { if {$entname ne {}} {append entname $tname} append attrs1 " -callF2 {.$field .buT}" append wpar " -tname $tname" - set entf [list $tname - - - - "pack -side left -expand 1 -fill x -in $inname" "$attrs1 $tvar"] + set entf [list $tname - - - - "pack -padx $padx -pady $pady -side left -expand 1 -fill x -in $inname" "$attrs1 $tvar"] } set icon folder foreach ic {OpenFile SaveFile font color date} { diff --git a/lib/pave/apaveinput.tcl b/lib/pave/apaveinput.tcl index 0b13e96..c00f67e 100644 --- a/lib/pave/apaveinput.tcl +++ b/lib/pave/apaveinput.tcl @@ -34,7 +34,7 @@ package require Tk -package provide apave 3.4.5.4 +package provide apave 3.4.5.8 source [file join [file dirname [info script]] apavedialog.tcl] diff --git a/lib/pave/obbit.tcl b/lib/pave/obbit.tcl index c0d9b2c..f8bc09c 100644 --- a/lib/pave/obbit.tcl +++ b/lib/pave/obbit.tcl @@ -38,60 +38,60 @@ namespace eval ::apave { # Colors for : 1) meanings 2) code names # itemfg mainfg itembg mainbg itemsHL actbg actfg cursor greyed hot \ - emfg embg - menubg winfg winbg itemHL2 tabHL #004...reserved... + emfg embg - menubg winfg winbg itemHL2 tabHL chkHL #005...reserved... #007 # clrtitf clrinaf clrtitb clrinab clrhelp clractb clractf clrcurs clrgrey clrhotk \ - fI bI --12-- bM fW bW itemHL2 tabHL #004...reserved... + fI bI --12-- bM fW bW itemHL2 tabHL chkHL #005...reserved... #007 set ::apave::_CS_(ALL) { -{{ 0: AwLight} "#141414" #151616 #dfdfde #d1d1d0 #562222 #85b4e7 #000 #444 grey #1a497c #000 #7fb8ce - #bebebd #000 #FBFB96 #cacaca #a20000 #004 #005 #006 #007} -{{ 1: AzureLight} "#050b0d" #050b0d #fff #e1e1e1 #002aaa #8dd9db #000 #444 grey #0e7b7c #000 #81cdcf - #cccccc #000 #FBFB95 #e2e2e0 #ad0000 #004 #005 #006 #007} -{{ 2: ForestLight} "#050b0d" #050b0d #fff #e1e1e1 #004000 #A8CCA8 #000 #444 grey #217346 #000 #a8bda8 - #cccccc #000 #FBFB95 #e2e2e0 #ad0000 #004 #005 #006 #007} -{{ 3: SunValleyLight} "#050b0d" #050b0d #fff #e1e1e1 #00469f #74c9ff #000 #444 grey #005fb8 #000 #7fcbff - #cccccc #000 #FBFB95 #e2e2e0 #950000 #004 #005 #006 #007} -{{ 4: Grey1} "#050b0d" #050b0d #F8F8F8 #dadad8 #5c1616 #AFAFAF #000 #444 grey #933232 #000 #AFAFAF - #caccd0 #000 #FBFB95 #e0e0d8 #a20000 #004 #005 #006 #007} -{{ 5: Grey2} "#050b0d" #050b0d #e9e9e7 #F8F8F8 #5c1616 #b8b8b8 #000 #444 grey #933232 #000 #c1c1c1 - #e1e1e1 #000 #FBFB95 #d5d5d3 #a20000 #004 #005 #006 #007} -{{ 6: Rosy} "#2B122A" #000 #FFFFFF #F6E6E9 #570957 #C5ADC8 #000 #444 grey #870287 #000 #ceb6d1 - #e3d3d6 #000 #FBFB95 #e5e3e1 #a20000 #004 #005 #006 #007} -{{ 7: Clay} "#000" #000 #fdf4ed #ded3cc #500a0a #bcaea2 #000 #444 grey #843500 #fff #9a8f83 - #d5c9c1 #000 #FBFB95 #e1dfde #a20000 #004 #005 #006 #007} -{{ 8: Dawn} "#08085D" #030358 #FFFFFF #e3f9f9 #562222 #a3dce5 #000 #444 grey #933232 #000 #99d2db - #d3e9e9 #000 #FBFB96 #dbe9ed #a20000 #004 #005 #006 #007} -{{ 9: Sky} "#102433" #0A1D33 #d0fdff #bdf6ff #562222 #95ced7 #000 #444 grey #933232 #000 #9ad3dc - #b1eaf3 #000 #FBFB95 #c0e9ef #a20000 #004 #005 #006 #007} -{{10: Florid} "#000" #004000 #e4fce4 #fff #5c1616 #93e493 #0F2D0F #444 grey #802e00 #004000 #a7f8a7 - #d8e7d8 #000 #FBFB96 #d7e6d7 #a20000 #004 #005 #006 #007} -{{11: LightGreen} "#122B05" #091900 #edffed #DEF8DE #562222 #A8CCA8 #000 #444 grey #933232 #000 #A8CCA8 - #cde7cd #000 #FBFB96 #dee9de #a20000 #004 #005 #006 #007} -{{12: InverseGreen} "#122B05" #091900 #cce6c8 #DEF8DE #562222 #9cc09c #000 #444 grey #933232 #000 #b5d9b5 - #c9e3c9 #000 #FBFB96 #bed8ba #a20000 #004 #005 #006 #007} -{{13: GreenPeace} "#001000" #001000 #e1ffdd #cadfca #562222 #9dbb99 #000 #444 grey #933232 #000 #9cb694 - #b9d3b9 #000 #FBFB96 #d2e1d2 #a20000 #004 #005 #006 #007} -{{14: African} "#000" #000 #fff #ffffe7 #460000 #ffd797 #000 #6f2509 #7e7e7e #771d00 #000 #e6ae80 - #e7e7cf #000 #eded89 #ededd5 #a20000 #004 #005 #006 #007} -{{15: African1} "#000" #000 #f5f5dd #f2ebd2 #460000 #ffc48a #000 #6f2509 #7e7e7e #771d00 #000 #f2ebd2 - #e3dcc3 #000 #eded89 #e3e3cb #a20000 #004 #005 #006 #007} -{{16: African2} "#000" #000 #ffffe4 #eae7c0 #500a0a #eaac7a #000 #6f2509 grey #771d00 #00003c #e6ae80 - #dddab3 #000 #fbfb74 #e7e7cb #a20000 #004 #005 #006 #007} -{{17: African3} "#000" #000 #fdf9d0 #d5d2af #500a0a #d59d6f #000 #6f2509 grey #771d00 #00003c #e6ae80 - #c5c29f #000 #fbfb74 #e5e5cc #c10000 #004 #005 #006 #007} -{{18: Yellowstone} "#00002f" #00003c #ffffd1 #cfcdb1 #591c0e #c89160 #000 #444 grey #771d00 #3b1516 #cfab86 - #c2c0a4 #000 #ffff45 #e6e6bb #a30000 #004 #005 #006 #007} -{{19: Notebook} "#000" #000 #e9e1c8 #c2bca8 #460000 #d59d6f #000 #444 #7e7e7e #771d00 #000 #c09c77 - #d0cab6 #000 #eded89 #dad2b9 #a20000 #004 #005 #006 #007} -{{20: Notebook1} "#000" #000 #dad2b9 #b5af9b #460000 #d59d6f #000 #444 #707070 #771d00 #000 #ba9671 - #c5bfab #000 #eded89 #ccc4ab #a20000 #004 #005 #006 #007} -{{21: Notebook2} "#000" #000 #cdc5ac #a6a08c #460000 #d59d6f #000 #444 #606060 #771d00 #000 #cfab86 - #b4ae9a #000 #eded89 #c1b9a0 #980000 #004 #005 #006 #007} -{{22: Notebook3} "#000" #000 #beb69d #96907c #460000 #d59d6f #000 #444 #505050 #771d00 #000 #cfab86 - #a6a08c #000 #eded89 #b2aa91 #7b1010 #004 #005 #006 #007} -{{23: Darcula} "#ececec" #c7c7c7 #272727 #323232 #e98f1c #2F5692 #e1e1e1 #f4f49f grey #d18d3f #EDC881 #2a518d - #444444 #000 #a2a23e #343434 #f28787 #004 #005 #006 #007} -{{24: Dusk} "#ececec" #ececec #1a1f21 #262b2d #f1b479 #6b7072 #000 #f4f49f #585d5f #ffbb6d #000 #6b7072 - #363b3d #000 #9e9e3a #23282a #ffabab #004 #005 #006 #007} -{{25: AwDark} "#F0E8E8" #E7E7E7 #1f2223 #232829 #de9e5e #215d9c #fff #f4f49f grey #80bcfb #fff #134f8e - #313637 #000 #cdcd69 #292e2f #ffabab #004 #005 #006 #007} -{{26: AzureDark} "#ececec" #c7c7c7 #272727 #393939 #28a7ff #007fff #FFF #f4f49f grey #33b2ff #EDC881 #0062a5 - #4a4a4a #000 #a2a23e #404040 #ffc341 #004 #005 #006 #007} -{{27: ForestDark} "#ececec" #c7c7c7 #272727 #393939 #95bf95 #217346 #FFF #f4f49f grey #99c399 #ffffff #247649 - #4a4a4a #000 #a2a23e #323232 #efaf6f #004 #005 #006 #007} -{{28: SunValleyDark} "#dfdfdf" #dddddd #131313 #252525 #38a9e0 #2f60d8 #FFF #f4f49f #6f6f6f #57c8ff #fff #2051c9 - #323232 #000 #a2a23e #2a2a2a #efaf6f #004 #005 #006 #007} -{{29: Dark1} "#E0D9D9" #C4C4C4 #212121 #292929 #de9e5e #6c6c6c #000 #f4f49f #606060 #eda95b #000 #767676 - #363636 #000 #cdcd69 #292929 #ffabab #004 #005 #006 #007} -{{30: Dark2} "#bebebe" #bebebe #1f1f1f #262626 #de9e5e #6b6b6b #000 #f4f49f #616161 #eda95b #000 #767676 - #323232 #000 #b0b04c #262626 #ffabab #004 #005 #006 #007} -{{31: Dark3} "#bebebe" #bebebe #0a0a0a #232323 #de9e5e #6a6a6a #000 #f4f49f #616161 #eda95b #000 #767676 - #303030 #000 #bebe5a #131313 #ffabab #004 #005 #006 #007} -{{32: Oscuro} "#f1f1f1" #f1f1f1 #344545 #526d6d #f1b479 #728d8d #fff #f4f49f #afafaf #f7c475 #000 #94afaf - #5d7474 #000 #cdcd69 #3d4e4e #ffbcbc #004 #005 #006 #007} -{{33: Oscuro1} "#f1f1f1" #f1f1f1 #2a3b3b #466161 #e5a565 #6c8787 #fff #f4f49f #a2a2a2 #edba6b #000 #8ba6a6 - #526969 #000 #cdcd69 #354646 #ffbcbc #004 #005 #006 #007} -{{34: Oscuro2} "#f1f1f1" #f1f1f1 #223333 #3e5959 #de9e5e #668181 #fff #f4f49f #a2a2a2 #e4b162 #000 #819c9c - #4c6363 #000 #cdcd69 #2b3c3c #ffbcbc #004 #005 #006 #007} -{{35: Oscuro3} "#f1f1f1" #f1f1f1 #192a2a #355050 #de9e5e #5c7777 #fff #f4f49f #9e9e9e #dfac5d #000 #779292 - #425959 #000 #cdcd69 #223333 #ffbcbc #004 #005 #006 #007} -{{36: MildDark} "#d2d2d2" #fff #222323 #384e66 #2ccaca #4b7391 #fff #00ffff #939393 #43e1e1 #000 #668eac - #455b73 #000 #bebe5a #2b2c2c #ffa2a2 #004 #005 #006 #007} -{{37: MildDark1} "#d2d2d2" #fff #151616 #2D435B #2ac8c8 #436b89 #fff #00ffff grey #36d4d4 #000 #668eac - #3a5068 #000 #bebe5a #1f2020 #ffb0b0 #004 #005 #006 #007} -{{38: MildDark2} "#b4b4b4" #fff #0d0e0e #24384f #28c6c6 #3e6684 #fff #00ffff #757575 #33d1d1 #000 #668eac - #33475e #000 #bebe5a #161717 #ffaeae #004 #005 #006 #007} -{{39: MildDark3} "#e2e2e2" #f1f1f1 #000 #1B3048 #27c5c5 #375f7d #fff #00ffff #6c6c6c #31d0d0 #000 #668eac - #2a3f57 #000 #b0b04c #0f0f0f #ffafaf #004 #005 #006 #007} -{{40: Inkpot} "#d3d3ff" #AFC2FF #16161f #1E1E27 #de9e5e #6767a8 #000 #f4f49f #6e6e6e #ffbb6d #000 #8585c6 - #292936 #000 #a2a23e #202029 #ffa5a5 #004 #005 #006 #007} -{{41: Quiverly} "#cdd8d8" #cdd8d8 #2b303b #333946 #de9e5e #6f7582 #000 #f4f49f #757575 #eda95b #000 #9197a4 - #414650 #000 #b0b04c #323742 #ffabab #004 #005 #006 #007} -{{42: Monokai} "#f8f8f2" #f8f8f2 #353630 #4e5044 #f1b479 #707070 #000 #f4f49f #9a9a9a #ffbb6d #000 #777777 - #46473d #000 #cdcd69 #3c3d37 #ffabab #004 #005 #006 #007} -{{43: TKE Default} "#dbdbdb" #dbdbdb #000 #282828 #de9e5e #0a0acc #fff #f4f49f #6a6a6a #d3a85a #fff #0000d3 - #383838 #000 #b0b04c #0d0e0e #ffabab #004 #005 #006 #007} -{{44: Magenta} "#E8E8E8" #F0E8E8 #381e44 #4A2A4A #f1b479 #846484 #000 #f4f49f grey #ffbb6d #000 #ad8dad - #573757 #000 #cdcd69 #42284e #ffabab #004 #005 #006 #007} -{{45: Red} "#fff" #e9e9e6 #340202 #440702 #f1b479 #b05e5e #000 #f4f49f #828282 #ffbb6d #000 #ba6868 - #521514 #000 #bebe5a #461414 #ffc1c1 #004 #005 #006 #007} -{{46: Chocolate} "#d6d1ab" #d6d1ab #251919 #402020 #de9e5e #664D4D #fff #f4f49f #828282 #c3984a #fff #583f3f - #432a2a #000 #b0b04c #2d2121 #ffb7b7 #004 #005 #006 #007} -{{47: Desert} "#fff" #fff #47382d #5a4b40 #f1b479 #78695e #000 #f4f49f #a2a2a2 #ffbb6d #000 #7f7065 - #695a4f #000 #eded89 #503f34 #ffabab #004 #005 #006 #007} +{{ 0: AwLight} "#141414" #151616 #dfdfde #d1d1d0 #562222 #85b4e7 #000 #444 grey #1a497c #000 #7fb8ce - #bebebd #000 #FBFB96 #cacaca #a20000 #76b2f1 #005 #006 #007} +{{ 1: AzureLight} "#050b0d" #050b0d #fff #e1e1e1 #002aaa #8dd9db #000 #444 grey #0e7b7c #000 #81cdcf - #cccccc #000 #FBFB95 #e2e2e0 #ad0000 #76b2f1 #005 #006 #007} +{{ 2: ForestLight} "#050b0d" #050b0d #fff #e1e1e1 #004000 #A8CCA8 #000 #444 grey #217346 #000 #a8bda8 - #cccccc #000 #FBFB95 #e2e2e0 #ad0000 #76b2f1 #005 #006 #007} +{{ 3: SunValleyLight} "#050b0d" #050b0d #fff #e1e1e1 #00469f #74c9ff #000 #444 grey #005fb8 #000 #7fcbff - #cccccc #000 #FBFB95 #e2e2e0 #950000 #76b2f1 #005 #006 #007} +{{ 4: Grey1} "#050b0d" #050b0d #F8F8F8 #dadad8 #5c1616 #AFAFAF #000 #444 grey #933232 #000 #AFAFAF - #caccd0 #000 #FBFB95 #e0e0d8 #a20000 #76b2f1 #005 #006 #007} +{{ 5: Grey2} "#050b0d" #050b0d #e9e9e7 #F8F8F8 #5c1616 #b8b8b8 #000 #444 grey #933232 #000 #c1c1c1 - #e1e1e1 #000 #FBFB95 #d5d5d3 #a20000 #76b2f1 #005 #006 #007} +{{ 6: Rosy} "#2B122A" #000 #FFFFFF #F6E6E9 #570957 #C5ADC8 #000 #444 grey #870287 #000 #ceb6d1 - #e3d3d6 #000 #FBFB95 #e5e3e1 #a20000 #76b2f1 #005 #006 #007} +{{ 7: Clay} "#000" #000 #fdf4ed #ded3cc #500a0a #bcaea2 #000 #444 grey #843500 #fff #9a8f83 - #d5c9c1 #000 #FBFB95 #e1dfde #a20000 #76b2f1 #005 #006 #007} +{{ 8: Dawn} "#08085D" #030358 #FFFFFF #e3f9f9 #562222 #a3dce5 #000 #444 grey #933232 #000 #99d2db - #d3e9e9 #000 #FBFB96 #dbe9ed #a20000 #76b2f1 #005 #006 #007} +{{ 9: Sky} "#102433" #0A1D33 #d0fdff #bdf6ff #562222 #95ced7 #000 #444 grey #933232 #000 #9ad3dc - #b1eaf3 #000 #FBFB95 #c0e9ef #a20000 #76b2f1 #005 #006 #007} +{{10: Florid} "#000" #004000 #e4fce4 #fff #5c1616 #93e493 #0F2D0F #444 grey #802e00 #004000 #a7f8a7 - #d8e7d8 #000 #FBFB96 #d7e6d7 #a20000 #76b2f1 #005 #006 #007} +{{11: LightGreen} "#122B05" #091900 #edffed #DEF8DE #562222 #A8CCA8 #000 #444 grey #933232 #000 #A8CCA8 - #cde7cd #000 #FBFB96 #dee9de #a20000 #76b2f1 #005 #006 #007} +{{12: InverseGreen} "#122B05" #091900 #cce6c8 #DEF8DE #562222 #9cc09c #000 #444 grey #933232 #000 #b5d9b5 - #c9e3c9 #000 #FBFB96 #bed8ba #a20000 #76b2f1 #005 #006 #007} +{{13: GreenPeace} "#001000" #001000 #e1ffdd #cadfca #562222 #9dbb99 #000 #444 grey #933232 #000 #9cb694 - #b9d3b9 #000 #FBFB96 #d2e1d2 #a20000 #76b2f1 #005 #006 #007} +{{14: African} "#000" #000 #fff #ffffe7 #460000 #ffd797 #000 #6f2509 #7e7e7e #771d00 #000 #e6ae80 - #e7e7cf #000 #eded89 #ededd5 #a20000 #76b2f1 #005 #006 #007} +{{15: African1} "#000" #000 #f5f5dd #f2ebd2 #460000 #ffc48a #000 #6f2509 #7e7e7e #771d00 #000 #f2ebd2 - #e3dcc3 #000 #eded89 #e3e3cb #a20000 #76b2f1 #005 #006 #007} +{{16: African2} "#000" #000 #ffffe4 #eae7c0 #500a0a #eaac7a #000 #6f2509 grey #771d00 #00003c #e6ae80 - #dddab3 #000 #fbfb74 #e7e7cb #a20000 #76b2f1 #005 #006 #007} +{{17: African3} "#000" #000 #fdf9d0 #d5d2af #500a0a #d59d6f #000 #6f2509 grey #771d00 #00003c #e6ae80 - #c5c29f #000 #fbfb74 #e5e5cc #c10000 #76b2f1 #005 #006 #007} +{{18: Yellowstone} "#00002f" #00003c #ffffd1 #cfcdb1 #591c0e #c89160 #000 #444 grey #771d00 #3b1516 #cfab86 - #c2c0a4 #000 #ffff45 #e6e6bb #a30000 #76b2f1 #005 #006 #007} +{{19: Notebook} "#000" #000 #e9e1c8 #c2bca8 #460000 #d59d6f #000 #444 #7e7e7e #771d00 #000 #c09c77 - #d0cab6 #000 #eded89 #dad2b9 #a20000 #76b2f1 #005 #006 #007} +{{20: Notebook1} "#000" #000 #dad2b9 #b5af9b #460000 #d59d6f #000 #444 #707070 #771d00 #000 #ba9671 - #c5bfab #000 #eded89 #ccc4ab #a20000 #76b2f1 #005 #006 #007} +{{21: Notebook2} "#000" #000 #cdc5ac #a6a08c #460000 #d59d6f #000 #444 #606060 #771d00 #000 #cfab86 - #b4ae9a #000 #eded89 #c1b9a0 #980000 #76b2f1 #005 #006 #007} +{{22: Notebook3} "#000" #000 #beb69d #96907c #460000 #d59d6f #000 #444 #505050 #771d00 #000 #cfab86 - #a6a08c #000 #eded89 #b2aa91 #7b1010 #76b2f1 #005 #006 #007} +{{23: Darcula} "#ececec" #c7c7c7 #272727 #323232 #e98f1c #2F5692 #e1e1e1 #f4f49f grey #d18d3f #EDC881 #2a518d - #444444 #000 #a2a23e #343434 #f28787 #76b2f1 #005 #006 #007} +{{24: Dusk} "#ececec" #ececec #1a1f21 #262b2d #95bf95 #217346 #FFF #f4f49f #585d5f #99c399 #ffffff #225c3b - #363b3d #000 #9e9e3a #23282a #ffabab #99dd99 #005 #006 #007} +{{25: AwDark} "#F0E8E8" #E7E7E7 #1f2223 #232829 #de9e5e #215d9c #fff #f4f49f grey #80bcfb #fff #134f8e - #313637 #000 #cdcd69 #292e2f #ffabab #76b2f1 #005 #006 #007} +{{26: AzureDark} "#ececec" #c7c7c7 #272727 #393939 #28a7ff #007fff #FFF #f4f49f grey #33b2ff #EDC881 #0062a5 - #4a4a4a #000 #a2a23e #404040 #ffc341 #76b2f1 #005 #006 #007} +{{27: ForestDark} "#ececec" #c7c7c7 #272727 #393939 #95bf95 #217346 #FFF #f4f49f grey #99c399 #ffffff #247649 - #4a4a4a #000 #a2a23e #323232 #efaf6f #99dd99 #005 #006 #007} +{{28: SunValleyDark} "#dfdfdf" #dddddd #131313 #252525 #38a9e0 #2f60d8 #FFF #f4f49f #6f6f6f #57c8ff #fff #2051c9 - #323232 #000 #a2a23e #2a2a2a #efaf6f #4273eb #005 #006 #007} +{{29: Dark1} "#E0D9D9" #C4C4C4 #212121 #292929 #de9e5e #6c6c6c #000 #f4f49f #606060 #eda95b #000 #767676 - #363636 #000 #cdcd69 #292929 #ffabab #76b2f1 #005 #006 #007} +{{30: Dark2} "#bebebe" #bebebe #1f1f1f #262626 #de9e5e #6b6b6b #000 #f4f49f #616161 #eda95b #000 #767676 - #323232 #000 #b0b04c #262626 #ffabab #76b2f1 #005 #006 #007} +{{31: Dark3} "#bebebe" #bebebe #0a0a0a #232323 #de9e5e #6a6a6a #000 #f4f49f #616161 #eda95b #000 #767676 - #303030 #000 #bebe5a #131313 #ffabab #76b2f1 #005 #006 #007} +{{32: Oscuro} "#f1f1f1" #f1f1f1 #344545 #526d6d #f1b479 #728d8d #fff #f4f49f #afafaf #f7c475 #000 #94afaf - #5d7474 #000 #cdcd69 #3d4e4e #ffbcbc #a3f1c7 #005 #006 #007} +{{33: Oscuro1} "#f1f1f1" #f1f1f1 #2a3b3b #466161 #e5a565 #6c8787 #fff #f4f49f #a2a2a2 #edba6b #000 #8ba6a6 - #526969 #000 #cdcd69 #354646 #ffbcbc #96e4ba #005 #006 #007} +{{34: Oscuro2} "#f1f1f1" #f1f1f1 #223333 #3e5959 #de9e5e #668181 #fff #f4f49f #a2a2a2 #e4b162 #000 #819c9c - #4c6363 #000 #cdcd69 #2b3c3c #ffbcbc #8ad8ae #005 #006 #007} +{{35: Oscuro3} "#f1f1f1" #f1f1f1 #192a2a #355050 #de9e5e #5c7777 #fff #f4f49f #9e9e9e #dfac5d #000 #779292 - #425959 #000 #cdcd69 #223333 #ffbcbc #80cea4 #005 #006 #007} +{{36: MildDark} "#d2d2d2" #fff #222323 #384e66 #2ccaca #4b7391 #fff #00ffff #939393 #43e1e1 #000 #668eac - #455b73 #000 #bebe5a #2b2c2c #ffa2a2 #76b2f1 #005 #006 #007} +{{37: MildDark1} "#d2d2d2" #fff #151616 #2D435B #2ac8c8 #436b89 #fff #00ffff grey #36d4d4 #000 #668eac - #3a5068 #000 #bebe5a #1f2020 #ffb0b0 #76b2f1 #005 #006 #007} +{{38: MildDark2} "#b4b4b4" #fff #0d0e0e #24384f #28c6c6 #3e6684 #fff #00ffff #757575 #33d1d1 #000 #668eac - #33475e #000 #bebe5a #161717 #ffaeae #76b2f1 #005 #006 #007} +{{39: MildDark3} "#e2e2e2" #f1f1f1 #000 #1B3048 #27c5c5 #375f7d #fff #00ffff #6c6c6c #31d0d0 #000 #668eac - #2a3f57 #000 #b0b04c #0f0f0f #ffafaf #76b2f1 #005 #006 #007} +{{40: Inkpot} "#d3d3ff" #AFC2FF #16161f #1E1E27 #de9e5e #6767a8 #000 #f4f49f #6e6e6e #ffbb6d #000 #8585c6 - #292936 #000 #a2a23e #202029 #ffa5a5 #7a7abb #005 #006 #007} +{{41: Quiverly} "#cdd8d8" #cdd8d8 #2b303b #333946 #de9e5e #6f7582 #000 #f4f49f #757575 #eda95b #000 #9197a4 - #414650 #000 #b0b04c #323742 #ffabab #76b2f1 #005 #006 #007} +{{42: Monokai} "#f8f8f2" #f8f8f2 #353630 #4e5044 #f1b479 #707070 #000 #f4f49f #9a9a9a #ffbb6d #000 #777777 - #46473d #000 #cdcd69 #3c3d37 #ffabab #cd994b #005 #006 #007} +{{43: TKE Default} "#dbdbdb" #dbdbdb #000 #282828 #de9e5e #0a0acc #fff #f4f49f #6a6a6a #d3a85a #fff #0000d3 - #383838 #000 #b0b04c #0d0e0e #ffabab #76b2f1 #005 #006 #007} +{{44: Magenta} "#E8E8E8" #F0E8E8 #381e44 #4A2A4A #f1b479 #846484 #000 #f4f49f grey #ffbb6d #000 #ad8dad - #573757 #000 #cdcd69 #42284e #ffabab #ffafff #005 #006 #007} +{{45: Red} "#fff" #e9e9e6 #340202 #440702 #f1b479 #b05e5e #000 #f4f49f #828282 #ffbb6d #000 #ba6868 - #521514 #000 #bebe5a #461414 #ffc1c1 #ff9a9a #005 #006 #007} +{{46: Chocolate} "#d6d1ab" #d6d1ab #251919 #402020 #de9e5e #664D4D #fff #f4f49f #828282 #c3984a #fff #583f3f - #432a2a #000 #b0b04c #2d2121 #ffb7b7 #cf9292 #005 #006 #007} +{{47: Desert} "#fff" #fff #47382d #5a4b40 #f1b479 #78695e #000 #f4f49f #a2a2a2 #ffbb6d #000 #7f7065 - #695a4f #000 #eded89 #503f34 #ffabab #ead79b #005 #006 #007} } set ::apave::_CS_(initall) 1 set ::apave::_CS_(initWM) 1 @@ -1212,11 +1212,11 @@ oo::class create ::apave::ObjectTheming { if {$ncolor == -2} return if {$ncolor eq {}} { lassign $args \ - clrtitf clrinaf clrtitb clrinab clrhelp clractb clractf clrcurs clrgrey clrhotk tfgI tbgI fM bM tfgW tbgW tHL2 tbHL res4 res5 res6 res7 + clrtitf clrinaf clrtitb clrinab clrhelp clractb clractf clrcurs clrgrey clrhotk tfgI tbgI fM bM tfgW tbgW tHL2 tbHL chkHL res5 res6 res7 } else { foreach cs [list $ncolor $::apave::_CS_(MINCS)] { lassign [my csGet $cs] \ - clrtitf clrinaf clrtitb clrinab clrhelp clractb clractf clrcurs clrgrey clrhotk tfgI tbgI fM bM tfgW tbgW tHL2 tbHL res4 res5 res6 res7 + clrtitf clrinaf clrtitb clrinab clrhelp clractb clractf clrcurs clrgrey clrhotk tfgI tbgI fM bM tfgW tbgW tHL2 tbHL chkHL res5 res6 res7 if {$clrtitf ne ""} break set ncolor $cs } @@ -1235,13 +1235,13 @@ oo::class create ::apave::ObjectTheming { set grey $gr ;# #808080 if {$::apave::_CS_(old) != $ncolor || $args eq "-doit"} { set ::apave::_CS_(old) $ncolor - my themeWindow $win [list $fg $bg $fE $bE $fS $bS $grey $bg $cc $ht $hh $tfgI $tbgI $fM $bM $tfgW $tbgW $tHL2 $tbHL $res4 $res5 $res6 $res7] + my themeWindow $win [list $fg $bg $fE $bE $fS $bS $grey $bg $cc $ht $hh $tfgI $tbgI $fM $bM $tfgW $tbgW $tHL2 $tbHL $chkHL $res5 $res6 $res7] my UpdateColors my initTooltip } set ::apave::FGMAIN $fg set ::apave::BGMAIN $bg - return [list $fg $bg $fE $bE $fS $bS $hh $grey $cc $ht $tfgI $tbgI $fM $bM $tfgW $tbgW $tHL2 $tbHL $res4 $res5 $res6 $res7] + return [list $fg $bg $fE $bE $fS $bS $hh $grey $cc $ht $tfgI $tbgI $fM $bM $tfgW $tbgW $tHL2 $tbHL $chkHL $res5 $res6 $res7] } ########################################################################### @@ -1424,7 +1424,7 @@ oo::class create ::apave::ObjectTheming { # be consistent with TKE theme. lassign $clrs tfg1 tbg1 tfg2 tbg2 tfgS tbgS tfgD tbgD tcur bclr \ - thlp tfgI tbgI tfgM tbgM twfg twbg tHL2 tbHL res4 res5 res6 res7 + thlp tfgI tbgI tfgM tbgM twfg twbg tHL2 tbHL chkHL res5 res6 res7 if {$tfg1 eq {-}} return if {!$isCS} { # if 'external scheme' is used, register it in _CS_(ALL) @@ -1435,7 +1435,7 @@ oo::class create ::apave::ObjectTheming { my csAdd [list CS-[expr {[::apave::cs_Max]+1}] $tfg2 $tfg1 $tbg2 $tbg1 \ $thlp $tbgS $tfgS $tcur $tfgD $bclr $tfgI $tbgI $tfgM $tbgM \ - $twfg $twbg $tHL2 $tbHL $res4 $res5 $res6 $res7] + $twfg $twbg $tHL2 $tbHL $chkHL $res5 $res6 $res7] } if {$tfgI eq {}} {set tfgI $tfg2} if {$tbgI eq {}} {set tbgI $tbg2} @@ -1443,7 +1443,7 @@ oo::class create ::apave::ObjectTheming { if {$tbgM eq {}} {set tbgM $tbg1} my Main_Style $tfg1 $tbg1 $tfg2 $tbg2 $tfgS $tbgS $tfgD $tbg1 $tfg1 $tbg2 $tbg1 foreach arg {tfg1 tbg1 tfg2 tbg2 tfgS tbgS tfgD tbgD tcur bclr \ - thlp tfgI tbgI tfgM tbgM twfg twbg tHL2 tbHL res4 res5 res6 res7 args} { + thlp tfgI tbgI tfgM tbgM twfg twbg tHL2 tbHL chkHL res5 res6 res7 args} { if {$win eq {.}} { set ::apave::_C_($win,$arg) [set $arg] } @@ -1465,6 +1465,7 @@ oo::class create ::apave::ObjectTheming { my Ttk_style configure TLabelframe.Label -background $tbg1 my Ttk_style configure TLabelframe.Label -font $fontdef foreach ts {TNotebook TFrame} { + my Ttk_style configure $ts -background $tbg1 my Ttk_style map $ts -background [list focus $tbg1 !focus $tbg1] } foreach ts {TNotebook.Tab} { @@ -1536,6 +1537,14 @@ oo::class create ::apave::ObjectTheming { foreach ts {TRadiobutton TCheckbutton} { ttk::style map $ts -background [list focus $tbg2 !focus $tbg1] } + if {[my csDarkEdit]} { + # esp. for default/alt/classic themes and dark CS: + # checked buttons to be lighter + foreach ts {TCheckbutton TRadiobutton} { + ttk::style configure $ts -indicatorcolor $tbgM + ttk::style map $ts -indicatorcolor [list pressed $tbg2 selected $chkHL] + } + } # non-themed widgets of button and entry types foreach ts [my NonThemedWidgets button] { set ::apave::_C_($ts,0) 6 diff --git a/lib/pave/pickers/color/aloupe/aloupe.tcl b/lib/pave/pickers/color/aloupe/aloupe.tcl index ef0fb4b..bf656f9 100644 --- a/lib/pave/pickers/color/aloupe/aloupe.tcl +++ b/lib/pave/pickers/color/aloupe/aloupe.tcl @@ -19,7 +19,7 @@ package require treectrl package require Img ::msgcat::mcload [file join [file dirname [info script]] msgs] -package provide aloupe 0.9.2 +package provide aloupe 0.9.3 # _______________________________________________________________________ # @@ -41,6 +41,7 @@ namespace eval ::aloupe { -parent "" \ -save yes \ -inifile "~/.config/aloupe.conf" \ + -locale "" \ ] } } @@ -557,6 +558,12 @@ proc ::aloupe::run {args} { my::Synopsis } } + if {$my::data(-locale) ne {}} { + catch { + ::msgcat::mcload [file join [file dirname [info script]] msgs] + ::msgcat::mclocale $my::data(-locale) + } + } catch {::apave::obj untouchWidgets "*_a_loupe_loup*"} ;# don't theme the loupe set my::size [set my::data(PREVSIZE) $my::data(-size)] set my::zoom [set my::data(PREVZOOM) $my::data(-zoom)] @@ -573,5 +580,5 @@ if {[info exist ::argv0] && [file normalize $::argv0] eq [file normalize [info s ::aloupe::run {*}$::argv } # _________________________________ EOF _________________________________ # -#-ARGS1: -alpha .2 -background "yellow" -ontop 1 -save 1 -inifile 123 -commandname "Get" +#ARGS1: -locale ua -alpha .2 -background "yellow" -ontop 1 -save 1 -inifile 123 -commandname "Get" #-RUNF1: ~/PG/github/pave/tests/test2_pave.tcl 23 9 12 "small icons" diff --git a/lib/pave/pickers/color/aloupe/msgs/ua.msg b/lib/pave/pickers/color/aloupe/msgs/ua.msg new file mode 100644 index 0000000..b716d08 --- /dev/null +++ b/lib/pave/pickers/color/aloupe/msgs/ua.msg @@ -0,0 +1,11 @@ +namespace eval ::aloupe { + ::msgcat::mcset ua {Loupe} {Лупа} + ::msgcat::mcset ua {To clipboard} {До буферу} + ::msgcat::mcset ua {Save} {Зберегти} + ::msgcat::mcset ua {Close} {Закрити} + ::msgcat::mcset ua {Size} {Розмір} + ::msgcat::mcset ua {Zoom} {Масштаб} + ::msgcat::mcset ua {Save the Loupe} {Зберегти зображення} + ::msgcat::mcset ua "Click the magnified image\nto get a pixel's color.\n\nThen hit this button." "Кликнить по картинці,\nщоб одержати колір піксела.\n\nПотім натиснить цю кнопку." + ::msgcat::mcset ua "Click, then drag and drop\nthe loupe to get the image." "Зачепить лупу мишею та тягніть ії по екрану.\n\nКоли відпустите мишу, одержите збільшене зображення." +} diff --git a/lib/pave/pickers/color/aloupe/pkgIndex.tcl b/lib/pave/pickers/color/aloupe/pkgIndex.tcl index 3117088..9055231 100644 --- a/lib/pave/pickers/color/aloupe/pkgIndex.tcl +++ b/lib/pave/pickers/color/aloupe/pkgIndex.tcl @@ -1,5 +1,5 @@ -package ifneeded aloupe 0.9.2 [list source [file join $dir aloupe.tcl]] +package ifneeded aloupe 0.9.3 [list source [file join $dir aloupe.tcl]] # A short intro (for Ruff! docs generator:) @@ -7,7 +7,7 @@ package ifneeded aloupe 0.9.2 [list source [file join $dir aloupe.tcl]] namespace eval aloupe { set _ruff_preamble { -The *aloupe v0.9.1* is a Tcl/Tk small widget / utility allowing to view the screen through a loupe. +The *aloupe v0.9.3* is a Tcl/Tk small widget / utility allowing to view the screen through a loupe. It allows also @@ -38,8 +38,8 @@ There are also stand-alone [aloupe executables](https://github.com/aplsimple/alo The executables are started as simply as: - aloupe - aloupe.exe + aloupe ?option value ...? + aloupe.exe ?option value ...? After the start, two windows would be displayed: a moveable loupe (at the mouse pointer) and a displaying window. @@ -65,15 +65,16 @@ The *aloupe* can be run with the options: * `-ontop` - if *yes* (default), sets the displaying window above others * `-save` - if *yes* (default), saves/restores the appearance settings * `-inifile` - a file to save the settings (~/.config/aloupe.conf by default) + * `-locale` - a preferable locale (e.g., ru, ua, cz) Some options can be used at running *aloupe* from a Tcl code: * `-exit` - is *false* which means "don't finish Tcl/Tk session, just close the loupe" * `-command` - a command to be run at pressing the *To clipboard* button - * `-commandname` - a label instead of *To clipboard*; means "no clipboard" + * `-commandname` - a label instead of *To clipboard*; when set it means also "no copy to clipboard" * `-parent` - a parent window's path (when the parent closes, its *aloupe* children do too) -From a Tcl code, *aloupe* is run this way: +From a Tcl code, *aloupe* widget is called this way: package require aloupe ::aloupe::run ?option value ...? diff --git a/lib/pave/pickers/color/msgs/ua.msg b/lib/pave/pickers/color/msgs/ua.msg new file mode 100644 index 0000000..03dc09c --- /dev/null +++ b/lib/pave/pickers/color/msgs/ua.msg @@ -0,0 +1,26 @@ +namespace eval ::tk { + ::msgcat::mcset ua "&Blue" " Блакитний" + ::msgcat::mcset ua "Blue" "Блакитний" + ::msgcat::mcset ua "Cancel" "Відміна" + ::msgcat::mcset ua "&Cancel" "Відміна" + ::msgcat::mcset ua "Color" "Колір" + ::msgcat::mcset ua "&Green" " Зелений" + ::msgcat::mcset ua "Green" "Зелений" + ::msgcat::mcset ua "&OK" "&OK" + ::msgcat::mcset ua "OK" "OK" + ::msgcat::mcset ua "&Red" " Червоний" + ::msgcat::mcset ua "Red" "Червоний" + ::msgcat::mcset ua "&Selection:" " Вибір:" + ::msgcat::mcset ua "Selection:" "Вибір:" + ::msgcat::mcset ua "Move all" "Рухати все" + ::msgcat::mcset ua "Tone moves" "Тонувати рухи" + ::msgcat::mcset ua "From clipboard" "З буферу" + ::msgcat::mcset ua "To clipboard" "До буферу" + ::msgcat::mcset ua "Loupe" "Лупа" + ::msgcat::mcset ua "Close" "Закрити" + ::msgcat::mcset ua "Size" "Розмір" + ::msgcat::mcset ua "Zoom" "Масштаб" + ::msgcat::mcset ua "blue" "блакитний" + ::msgcat::mcset ua "green" "зелений" + ::msgcat::mcset ua "red" "червоний" +} diff --git a/lib/pave/pickers/klnd/klnd.tcl b/lib/pave/pickers/klnd/klnd.tcl index 56a271b..1f5ccd0 100755 --- a/lib/pave/pickers/klnd/klnd.tcl +++ b/lib/pave/pickers/klnd/klnd.tcl @@ -18,9 +18,13 @@ namespace eval ::klnd { array set locales [list \ en_uk %u \ en_us %w \ + ru %u \ ru_ru %u \ ru_ua %u \ + ua %u \ uk_ua %u \ + ua_ua %u \ + by %u \ be_by %u \ ] array set p [list FINT %Y/%N/%e days {} months {} \ diff --git a/lib/pave/pkgIndex.tcl b/lib/pave/pkgIndex.tcl index a0d74df..209cd20 100644 --- a/lib/pave/pkgIndex.tcl +++ b/lib/pave/pkgIndex.tcl @@ -1,5 +1,5 @@ -package ifneeded apave 3.4.5.4 [list source [file join $dir apaveinput.tcl]] +package ifneeded apave 3.4.5.8 [list source [file join $dir apaveinput.tcl]] # A short intro (for Ruff! docs generator:) diff --git a/src/alited.tcl b/src/alited.tcl index a283b9d..024e92a 100755 --- a/src/alited.tcl +++ b/src/alited.tcl @@ -7,7 +7,7 @@ # License: MIT. ########################################################### -package provide alited 1.0.5a6 +package provide alited 1.0.5b2 ;# for documentation (esp. for Ruff!) package require Tk catch {package require comm} ;# Generic message transport diff --git a/src/file.tcl b/src/file.tcl index 20d691a..4c4d462 100644 --- a/src/file.tcl +++ b/src/file.tcl @@ -290,7 +290,6 @@ proc file::DoRenameFileInTree {wtree ID fname name2} { alited::msg ok err $err -text 1 -w 40 -h {5 7} return } - set currTID [alited::bar::CurrentTabID] foreach tab [alited::bar::BAR listTab] { set TID [lindex $tab 0] set fname1 [alited::bar::FileName $TID] @@ -545,6 +544,7 @@ proc file::CloseFile {{TID ""} {checknew yes}} { # Closes a file. # TID - tab's ID # checknew - if yes, checks if new file's tab should be created + # Returns 0, if a user selects "Cancel". namespace upvar ::alited al al obPav obPav set res 1 @@ -597,6 +597,21 @@ proc file::CloseAll {func args} { set al(closefunc) 0 return [expr {[llength [alited::bar::BAR listFlag "m"]]==0}] } +#_______________________ + +proc file::OpenFiles {} { + # Opens files selected in the file tree. + + namespace upvar ::alited al al obPav obPav + set wtree [$obPav Tree] + set fnames [list] + foreach selID [$wtree selection] { + lassign [$wtree item $selID -values] - fname isfile + if {$isfile} {lappend fnames $fname} + } + OpenFile [lsort -decreasing -dictionary $fnames] no yes +} +#_______________________ # ________________________ File tree _________________________ # @@ -621,7 +636,7 @@ proc file::OpenOfDir {dname} { if {[alited::msg okcancel warn $msg NO]} { if {![catch {set flist [glob -directory $dname *]}]} { set fnames [list] - foreach fname $flist { + foreach fname [lsort -decreasing -dictionary $flist] { if {[file isfile $fname] && [IsTcl $fname]} { lappend fnames $fname } diff --git a/src/find.tcl b/src/find.tcl index 5f92e44..a58be0d 100644 --- a/src/find.tcl +++ b/src/find.tcl @@ -943,7 +943,7 @@ proc find::_create {} { {But1 sev2 L 1 1 {-st wes} {-t "Find" -com "::alited::find::Find 1" -style TButtonWestBoldFS}} {But2 but1 T 1 1 {-st wes} {-t "All in Text" -com "::alited::find::FindInText 2" -style TButtonWestFS}} {But3 but2 T 1 1 {-st wen} {-com "::alited::find::FindInSession add 3" -style TButtonWestFS}} - {seh_3 but3 T 2 1} + {seh_3 but3 T 2 1 {-st ews}} {but4 seh_3 T 1 1 {-st wes} {-t Replace -com "::alited::find::Replace" -style TButtonWestBoldFS}} {but5 but4 T 1 1 {-st wes} {-t "All in Text" -com "::alited::find::ReplaceInText" -style TButtonWestFS}} {But6 but5 T 1 1 {-st wen} {-com "::alited::find::ReplaceInSession" -style TButtonWestFS}} diff --git a/src/ini.tcl b/src/ini.tcl index 0e5ad08..66f3cef 100755 --- a/src/ini.tcl +++ b/src/ini.tcl @@ -155,6 +155,14 @@ namespace eval ::alited { set al(matchSBL) {} set al(wordonlySBL) 0 set al(caseSBL) 1 + + # info about current unit + set al(CURRUNIT,line) 0 + set al(CURRUNIT,line1) 0 + set al(CURRUNIT,line2) 0 + set al(CURRUNIT,wtxt) {} + set al(CURRUNIT,itemID) {} + } # ________________________ Variables _________________________ # @@ -948,7 +956,10 @@ proc ini::InitFonts {} { if {$al(LOCAL) ni {en {}}} { # load localized messages msgcat::mcload $alited::MSGSDIR + msgcat::mclocale $al(LOCAL) alited::msgcatMessages + } else { + msgcat::mclocale en_us } } #_______________________ diff --git a/src/main.tcl b/src/main.tcl index 67ada88..12430f0 100644 --- a/src/main.tcl +++ b/src/main.tcl @@ -440,6 +440,63 @@ proc main::GotoLine {} { } } + +# ________________________ Event handlers _________________________ # + +proc main::SaveVisitInfo {wtxt {Key ""}} { + # Remembers data about current unit. + # wtxt - text's path + # Key - a key pressed (to check keypressings) + + namespace upvar ::alited al al obPav obPav + # only if the tree is units' + if {!$al(TREE,isunits)} return + if {$Key ne {} && $Key in {Up Down Next Prior Home End}} return + set wtree [$obPav Tree] + # check for current text and line (line to be checked for performance) + set pos [$wtxt index insert] + set line [expr {int($pos)}] + if {$wtxt ne $al(CURRUNIT,wtxt) || ( + ($line < $al(CURRUNIT,line1) || $line > $al(CURRUNIT,line2))) + } then { + # if current unit's info changed, + # save it and update "Last Visited" list + lassign [alited::tree::CurrentItemByLine {} 1] itemID - - - name \ + al(CURRUNIT,line1) al(CURRUNIT,line2) + # save a new unit in "Last Visited" + set header [alited::unit::GetHeader $wtree $itemID] + alited::favor::LastVisited [$wtree item $itemID] $header + # at last, save current info (lines saved above) + set al(CURRUNIT,wtxt) $wtxt + set al(CURRUNIT,itemID) $itemID + set al(CURRUNIT,line) $line + set selID [$wtree selection] + if {[llength $selID]<2 && $selID ne $itemID} { + $wtree selection set $itemID + $wtree see $itemID + $wtree tag add tagSel $itemID + } + set TID [alited::bar::CurrentTabID] + foreach it $al(_unittree,$TID) { + set treeID [alited::tree::NewItemID [incr iit]] + lassign $it lev leaf fl1 title l1 l2 + if {$name eq [alited::tree::UnitTitle $title $l1 $l2]} { + set al(CPOS,$TID,$header) [expr {$pos-$l1}] + break + } + } + } +} +#_______________________ + +proc main::AfterUndoRedo {} { + # Actions after undo/redo. + + HighlightLine + after idle alited::main::UpdateUnitTree +} +#_______________________ + # ________________________ GUI _________________________ # proc main::ShowHeader {{doit no}} { @@ -506,8 +563,10 @@ proc main::BindsForText {TID wtxt} { bind $wtxt {::alited::find::SearchWordInSession ; break} bind $wtxt {::alited::bar::ControlTab ; break} bind $wtxt {::alited::unit::SwitchUnits ; break} - bind $wtxt <> {+ alited::main::HighlightLine; after idle alited::main::UpdateUnitTree} - bind $wtxt <> {+ alited::main::HighlightLine; after idle alited::main::UpdateUnitTree} + bind $wtxt "+ alited::main::SaveVisitInfo $wtxt" + bind $wtxt "+ alited::main::SaveVisitInfo $wtxt %K" + bind $wtxt <> {+ alited::main::AfterUndoRedo} + bind $wtxt <> {+ alited::main::AfterUndoRedo} alited::keys::ReservedAdd $wtxt alited::keys::BindKeys $wtxt action alited::keys::BindKeys $wtxt template diff --git a/src/msgs.tcl b/src/msgs.tcl index af5a24b..a4e731b 100644 --- a/src/msgs.tcl +++ b/src/msgs.tcl @@ -85,9 +85,11 @@ namespace eval ::alited { set al(MC,Col:) [msgcat::mc { Col: }] set al(MC,Item) [msgcat::mc Item] set al(MC,errmove) [msgcat::mc "\"%n\" contains unbalanced \{\}: %1!=%2"] - set al(MC,beforerun) [msgcat::mc {Command before "Run"}] - set al(MC,locale) [msgcat::mc "Mostly this is a country code,\nfor example: ru, ua, cz."] + set al(MC,beforerun) [msgcat::mc {Commands before "Run"}] + set al(MC,locale) [msgcat::mc "This is a country code: ru, ua, cz...\nIn alited, \"en\" means American English."] set al(MC,noask) [msgcat::mc {Don't ask anymore}] + set al(MC,hue) [msgcat::mc {Makes colors darker .. lighter}] + set al(MC,maxbak) [msgcat::mc {Maximum of backup copies per a file}] ## _ templates _ ## set al(MC,tpl) [msgcat::mc Templates] diff --git a/src/pkgIndex.tcl b/src/pkgIndex.tcl index ae168d5..00ac616 100755 --- a/src/pkgIndex.tcl +++ b/src/pkgIndex.tcl @@ -1,4 +1,4 @@ -package ifneeded alited 1.0.5a6 [list source [file join $dir alited.tcl]] +package ifneeded alited 1.0.5b2 [list source [file join $dir alited.tcl]] namespace eval ::alited { diff --git a/src/pref.tcl b/src/pref.tcl index 84586a1..36a2c64 100644 --- a/src/pref.tcl +++ b/src/pref.tcl @@ -108,6 +108,9 @@ namespace eval pref { # size of standard keys' data variable stdkeysSize [dict size $stdkeys] + + # locales + variable locales [list] } # ________________________ Common procedures _________________________ # @@ -142,6 +145,7 @@ proc pref::fetchVars {} { variable listMenus variable stdkeys variable stdkeysSize + variable locales } } #_______________________ @@ -434,11 +438,12 @@ proc pref::General_Tab1 {} { {.labCS .labTheme T 1 1 {-st w -pady 1 -padx 3} {-t "Color scheme:"}} {.opc2 .labCS L 1 1 {-st sw -pady 1} {::alited::pref::opcc alited::pref::opcColors {-width 20 -com alited::pref::CbxTheme} {alited::pref::opcToolPre %a}}} {.labHue .labCS T 1 1 {-st w -pady 1 -padx 3} {-t "Tint:"}} - {.SpxHue .labHue L 1 1 {-st sw -pady 1} {-tvar alited::al(INI,HUE) -from -50 -to 50 -justify center -w 9 -afteridle alited::pref::CbxTheme}} + {.SpxHue .labHue L 1 1 {-st sw -pady 1} {-tvar alited::al(INI,HUE) -from -50 -to 50 -justify center -w 9 -afteridle alited::pref::CbxTheme -tip {$alited::al(MC,hue)}}} {seh_ .labHue T 1 2 {-pady 4}} {fra2 seh_ T 1 2 {-st nsew -cw 1}} {.labLocal - - 1 1 {-st w -pady 1 -padx 3} {-t "Preferable locale:" -tip {$alited::al(MC,locale)}}} - {.entLocal .labLocal L 1 1 {-st sw -pady 1 -padx 3} {-tvar alited::al(LOCAL) -w 8 -tip {$alited::al(MC,locale)}}} + {.cbxLocal .labLocal L 1 1 {-st sew -pady 1 -padx 3} {-tvar alited::al(LOCAL) -values {$alited::pref::locales} -w 4 -tip {$alited::al(MC,locale)} -state readonly -selcombobox alited::pref::GetLocaleImage -afteridle alited::pref::GetLocaleImage}} + {.LabLocales .cbxLocal L} {.labFon .labLocal T 1 1 {-st w -pady 1 -padx 3} {-t "Font:"}} {.fonTxt .labFon L 1 9 {-st sw -pady 1 -padx 3} {-tvar alited::al(FONT) -w 40}} {.labFsz1 .labFon T 1 1 {-st w -pady 1 -padx 3} {-t "Small font size:"}} @@ -488,7 +493,7 @@ proc pref::General_Tab2 {} { {.labBackup .seh4 T 1 1 {-st w -pady 1 -padx 3} {-t "Back up files to a project's subdirectory:"}} {.CbxBackup .labBackup L 1 1 {-st sw -pady 1} {-tvar alited::al(BACKUP) -values {{} .bak} -state readonly -w 6 -tip "A subdirectory of projects where backup copies of files will be saved to.\nSet the field blank to cancel the backup." -afteridle alited::pref::CbxBackup -selcombobox alited::pref::CbxBackup}} {.labMaxBak .CbxBackup L 1 1 {-st w -pady 1 -padx 1} {-t " Maximum:"}} - {.SpxMaxBak .labMaxBak L 1 1 {-st sw -pady 1 -padx 1} {-tvar alited::al(MAXBACKUP) -from 1 -to 99 -justify center -w 9 -tip "Maximum of backup copies per a file"}} + {.SpxMaxBak .labMaxBak L 1 1 {-st sw -pady 1 -padx 1} {-tvar alited::al(MAXBACKUP) -from 1 -to 99 -justify center -w 9 -tip {$alited::al(MC,maxbak)}}} {.labBell .labBackup T 1 1 {-st w -pady 1 -padx 3} {-t "Bell at warnings:"}} {.swiBell .labBell L 1 1 {-st sw -pady 1 -padx 3} {-var alited::al(INI,belltoll)}} } @@ -604,6 +609,30 @@ proc pref::GetCS {{ncc {}}} { fetchVars return [scan [set opcc$ncc] %d:] } +#_______________________ + +proc pref::GetLocaleImage {} { + + fetchVars + [$obDl2 LabLocales] configure -image alited::pref::LOC$alited::al(LOCAL) +} +#_______________________ + +proc pref::InitLocales {} { + # Creates flag images to display at "Preferable locale". + + fetchVars + if {[llength $locales]} return + set imd [file join $::alited::DATADIR img] + set locales [list] + foreach lm [list en {*}[glob -nocomplain [file join $::alited::MSGSDIR *]]] { + set loc [file rootname [file tail $lm]] + catch { ;# no duplicates due to 'catch' + image create photo alited::pref::LOC$loc -file [file join $imd $loc.png] + lappend locales $loc + } + } +} # ________________________ Tab "Editor" _________________________ # @@ -656,7 +685,7 @@ proc pref::Edit_Tab2 {} { {.labCMN .labVAR T 1 1 {-st w -pady 3 -padx 3} {-t "Color of comments:"}} {.clrCMN .labCMN L 1 1 {-st sw -pady 3} {-tvar alited::al(ED,clrCMN) -w 20}} {.labPROC .labCMN T 1 1 {-st w -pady 3 -padx 3} {-t "Color of proc/methods:"}} - {.clrPROC .labPROC L 1 1 {-st sw -pady } {-tvar alited::al(ED,clrPROC) -w 20}} + {.clrPROC .labPROC L 1 1 {-st sw -pady 3} {-tvar alited::al(ED,clrPROC) -w 20}} {.labOPT .labPROC T 1 1 {-st w -pady 3 -padx 3} {-t "Color of options:"}} {.clrOPT .labOPT L 1 1 {-st sw -pady 3} {-tvar alited::al(ED,clrOPT) -w 20}} {.labBRA .labOPT T 1 1 {-st w -pady 3 -padx 3} {-t "Color of brackets:"}} @@ -691,9 +720,9 @@ proc pref::Edit_Tab3 {} { {.labCMN2 .labVAR2 T 1 1 {-st w -pady 3 -padx 3} {-t "Color of comments:"}} {.clrCMN2 .labCMN2 L 1 1 {-st sw -pady 3} {-tvar alited::al(ED,CclrCMN) -w 20}} {.labPROC2 .labCMN2 T 1 1 {-st w -pady 3 -padx 3} {-t "Color of return/goto:"}} - {.clrPROC2 .labPROC2 L 1 1 {-st sw -pady } {-tvar alited::al(ED,CclrPROC) -w 20}} + {.clrPROC2 .labPROC2 L 1 1 {-st sw -pady 3} {-tvar alited::al(ED,CclrPROC) -w 20}} {.labOPT2 .labPROC2 T 1 1 {-st w -pady 3 -padx 3} {-t "Color of your key words:"}} - {.clrOPT2 .labOPT2 L 1 1 {-st sw -pady } {-tvar alited::al(ED,CclrOPT) -w 20}} + {.clrOPT2 .labOPT2 L 1 1 {-st sw -pady 3} {-tvar alited::al(ED,CclrOPT) -w 20}} {.labBRA2 .labOPT2 T 1 1 {-st w -pady 3 -padx 3} {-t "Color of brackets:"}} {.clrBRA2 .labBRA2 L 1 1 {-st sw -pady 3} {-tvar alited::al(ED,CclrBRA) -w 20}} {.seh .labBRA2 T 1 2 {-pady 3}} @@ -1274,6 +1303,7 @@ proc pref::_create {tab} { # tab - a tab to open (saved at previous session) or {} fetchVars + InitLocales $obDl2 makeWindow $win.fra "$al(MC,pref) :: $::alited::USERDIR" $obDl2 paveWindow \ $win.fra [MainFrame] \ diff --git a/src/tool.tcl b/src/tool.tcl index e76bcab..8b97331 100644 --- a/src/tool.tcl +++ b/src/tool.tcl @@ -111,7 +111,8 @@ proc tool::DatePicker {} { proc tool::Loupe {} { # Calls a screen loupe. - alited::Run [file join $::alited::PAVEDIR pickers color aloupe aloupe.tcl] + alited::Run [file join $::alited::PAVEDIR pickers color aloupe aloupe.tcl] \ + -locale $alited::al(LOCAL) } #_______________________ diff --git a/src/tree.tcl b/src/tree.tcl index 2bbe380..98a1e8e 100644 --- a/src/tree.tcl +++ b/src/tree.tcl @@ -147,8 +147,9 @@ proc tree::NewSelection {{itnew ""} {line 0} {topos no}} { $wtree tag add tagSel $itnew } # get saved pos - if {[catch {set pos $al(CPOS,$ctab,$header)}] \ - || [catch {set pos [expr {$pos+$l1}]}]} { + if {[info exists al(CPOS,$ctab,$header)]} { + set pos [expr {$l1+$al(CPOS,$ctab,$header)}] + } else { set pos [$wtxt index insert] } if {$topos} { @@ -205,7 +206,7 @@ proc tree::SaveCursorPos {} { set itnew [CurrentItemByLine $pos] set wtree [$obPav Tree] set header [alited::unit::GetHeader $wtree $itnew] - set al(CPOS,$TID,$header) $pos + #set al(CPOS,$TID,$header) [expr {$pos-$l1}] # save the position to unit tree list, to restore it in favor::GoToUnit set it [lsearch -exact -index 6 $al(_unittree,$TID) $itnew] if {$it>-1} { @@ -544,8 +545,10 @@ proc tree::ShowPopupMenu {ID X Y} { -label $al(MC,renamefile) -accelerator F2 \ -command {::alited::file::RenameFileInTree {-geometry pointer+10+-100}} $popm add separator + $popm add command {*}[$obPav iconA OpenFile] -label {Open Selected File(s)} \ + -command ::alited::file::OpenFiles set msg [string map [list %n $sname] $al(MC,openofdir)] - $popm add command {*}[$obPav iconA OpenFile] -label $msg \ + $popm add command {*}[$obPav iconA none] -label $msg \ -command "::alited::file::OpenOfDir {$fname}" } set addsel {} @@ -1004,6 +1007,7 @@ proc tree::RecreateTree {{wtree ""} {headers ""}} { } } catch {$wtree see [lindex $selection 0]} + alited::main::SaveVisitInfo [alited::main::CurrentWTXT] } #_______________________