Board.KolibriOS.org
http://board.kolibrios.org/

Какие на данный момент есть наиболее приоритетные задачи?
http://board.kolibrios.org/viewtopic.php?f=8&t=1771
Page 7 of 9

Author:  Joaquin [ Mon Aug 15, 2011 2:53 pm ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

Мне почему-то кажется, что одной из первоочередных задач является поддержка различных языков системой, иначе KolibriOS вряд ли будет популярна по всему миру. Для этого нужно реализовать поддержку Unicode, различных раскладок клавиатур и кодировок, а также других национальных стандартов. Но в данный момент мы имеем:
1. Системной кодировкой "официально" считается CP866.
2. При этом фактически кодировка в системе не определена - соответствие символов двоичным кодам зависит от mt-шрифтов.
3. Нынешний шрифт char.mt, таким образом, соответствует кодировке СP866 (DOS Cyrillic), а char2.mt - кастрированно-мутированной версии CP866 без псевдографики, начиненной "левыми" символами с кодами 0xC0-0xD6, 0xF8-0xFE.
4. Unicode поддерживается только файловой подсистемой.
5. поддерживается только русская QWERTY-раскладка клавиатуры.
6. Все программы довольно плохо "дружат" с национальными стандартами. Например, в английском языке разделителем дробной части является точка, а в русском - запятая; многие виды письменности используют обратный порядок написания символов (справа налево); в американском и британском вариантах английского языка дата, как правило, пишется по-разному и т.д.)

Author:  CleverMouse [ Mon Aug 15, 2011 7:15 pm ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

Раскладку поменять довольно просто, она загружается из keymap.key с довольно прозрачным форматом. Естественно, по модулю того, что раскладка - это отображение из сканкодов в используемую кодировку. Остальное - проблемы, да.
CP866 фактически на уровне ядра присутствует, а именно, файловые системы в однобайтном варианте конвертируют именно в неё.

Author:  XVilka [ Mon Aug 15, 2011 8:03 pm ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

самые большие проблемы, имхо, с юникодом - его парсить сложно, код будет большой, да и сам текст занимает больше.

Author:  Joaquin [ Mon Aug 15, 2011 10:56 pm ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

XVilka, даже неоптимизированная процедура чтения символа UTF-8 или UTF-16, принимающая на входе указатель на символ, и на выходе возвращающая 32-битный кодпойнт + указатель на следующий символ, в несжатом состоянии у меня занимает 120-130 байт. Неужели это так много? Тем более поддержку различных кодировок можно вынести в различные библиотеки (одна для UTF7/8/16/32, другая для WIN CP12**, третья для DOS CP8** и т.д.), а пользователь сможет удалить/добавить в систему нужную/ненужную ему кодировку.

Author:  Freeman [ Mon Aug 15, 2011 11:12 pm ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

В библиотеки-то зачем? Достаточно класса "однобайтовая кодировка" и "двухбайтовая кодировка" -- для Big5 и прочего, если вообще понадобится. Для трансляции в Unicode однобайтовой кодовой страницы достаточно таблицы на 128 слов, для EBDIC -- 256 слов. Таблицу обратной трансляции создавать в памяти.

Не нужно копировать подход iconv с минимум 64-килобайтными библиотеками на кодировку. Уж тем более в Колибри. А в Винде полноразмерные таблицы в сделаны для отображения NLS-файлов в память. Опять же, не подход Колибри.

Author:  Joaquin [ Mon Aug 15, 2011 11:22 pm ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

Ну можно сделать такой вариант: сложные кодировки типа UTF-7/UTF-8 реализовывать в библиотеках, а простые типа KOI-8/EBCDIC как таблицы. Это, конечно, если заботиться о расширяемости.

Author:  Asper [ Sun Sep 04, 2011 4:55 pm ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

Joaquin
1. Справедливо только для русской сборки.
2. CleverMouse уже ответила про keymap.key
3. Системные шрифты - это массив символов, которые по-разному мапятся на коды клавиатуры в зависимости от раскладки клавиатуры.
4. Кириллица также поддерживается по крайней мере двумя программами HTMLv и utf2dos
5. Нет. Запусти Zkey и понажимай Alt+1...Alt+9.
6. Согласен.

Author:  kogemyaka [ Sun Sep 11, 2011 9:54 pm ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

Как по мне, так самы такая приорететная задача это дать возможность писать программы в самой Колибри.

Сделать это можно либо дописав редактор KFAR до уровня Tinypad или T_Edit, либо любым способом дать возможность масштабировать шрифты в тех же Tinypad или T_Edit.

Author:  IgorA [ Tue Sep 13, 2011 12:33 am ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

kogemyaka wrote:
либо любым способом дать возможность масштабировать шрифты в тех же Tinypad или T_Edit.

Как один из вариантов можно разработать экранную лупу как виндовсе.

Author:  XVilka [ Tue Sep 13, 2011 2:51 am ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

IgorA: имхо, но это костыль. Лучше потратить время на сам TinyPad или T_Edit

Author:  art_zh [ Tue Sep 13, 2011 2:53 am ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

IgorA wrote:
Как один из вариантов можно разработать экранную лупу как виндовсе.

Только не это!
Давайте лучше человеческий Курьер в качестве подгружаемого системного шрифта в ядро впихнём?

Author:  XVilka [ Tue Sep 13, 2011 3:00 am ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

art_zh: может лучше terminus? он свободный, и глифов больше.

Author:  SoUrcerer [ Tue Sep 13, 2011 9:17 am ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

1) Экранная лупа есть.
2) Терминус и правда лучше, ИМХО
3) Не знаю, насколько это покорежит ядро. Разве что если 4ю функцию исправить, чтобы она кроме char.mt и char2.mt другие шрифты тоже умела использовать в схожем формате, но разных размеров...
Допустим,
Code:
    * eax = 4 - номер функции
    * ebx = [координата по оси x]*65536 + [координата по оси y]
    * ecx = 0xX0RRGGBB, где
          o RR, GG, BB задают цвет текста
          o X=ABnn (биты):
          o nn задает используемый шрифт: 0=системный моноширинный, 1=системный шрифт переменной ширины, 10=новые системные шрифты
          o A=0 - выводить esi символов, A=1 - выводить ASCIIZ-строку
          o B=1 - закрашивать фон цветом edi
    * edx = указатель на начало строки
    * esi = Для nn=00 и 01:
               A=0 длина строки, должна быть не больше 255; для A=1 игнорируется
               Для nn=10 указатель на структуру (имя шрифта, размер шрифта).
Если nn=00 или 01,то функция не возвращает значения, иначе
eax=высота глифа, ebx=длина строки

Author:  Mario [ Tue Sep 13, 2011 11:43 am ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

Я уже предлагал такое viewtopic.php?f=36&t=561&start=101
Приложение через дополнительную функцию подгружает шрифт и использует. Нужно лишь прописать каждому потоку свой указатель на область с 3-м шрифтом. Много памяти это не сожрет, ведь шрифты будут в памяти лишь по мере необходимости сменять друг-друга.

Author:  IgorA [ Wed Sep 14, 2011 12:48 am ]
Post subject:  Re: Какие на данный момент есть наиболее приоритетные задачи

Лупа для увеличения шрифта не самый лучший вариант, просто предлагал как возможный временный выход. Плохо что нельзя фиксировать увеличиваемую область, иначе курсор портит всю работу.

Думаю что если в системе будет новые шрифты, то переделать t_edit будет не очень сложно. Вот на рисунке пример программы, где изменены всего 2 цифры. Как видно возникли небольшие проблемы с верхней панелью, хотя остальное работает как надо.

Attachments:
t_edit_big.png
t_edit_big.png [ 9.99 KiB | Viewed 4597 times ]

Page 7 of 9 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/