Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт дек 12, 2017 7:07 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 184 сообщения ]  На страницу Пред. 16 7 8 9 1013 След.
Автор Сообщение
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 09, 2012 3:01 pm 
Не в сети

Зарегистрирован: Пт фев 18, 2011 3:13 pm
Сообщения: 201
Serge писал(а):
johnfound
Всё же кодировка для текста должна быть единственной. Иначе к каждой программе надо будет цеплять конвертер на все возможные варианты.


К каждой программе конвертер всегда будут цеплять. Конечно если не сделать его в ядре. А может стоит делать в ядре?... :? Тогда можно использовать код от FreshLib. Очень компактен получился: encodings.asm


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 09, 2012 3:10 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Это же только кириллица. А как насчет остальных языков? Лучше библиотеку, считаю.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 09, 2012 3:49 pm 
Не в сети

Зарегистрирован: Вт июл 26, 2011 11:03 pm
Сообщения: 62
Думаю что данный буфер подходящий момент чтобы подправить fn eax=10 eax=11 чтобы они возвращали также и основные параметры событий. Ведь сейчас после ring0->ring3 switch происходит гарантированое и незамедлительное ring3->ring0->ring3

Сообщение(fn eax=10) о заполненом только-для-чтения буфере(ядро создало его нужного размера) приходит. Обработчик сообщения копирует куда ему надо(mov инструкции). И fn eax=10 выполняют чистку (в даном случае удаляют буфер если ctrl+c была кде-то ещё нажата.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 09, 2012 10:05 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт май 08, 2007 12:44 am
Сообщения: 340
Albom писал(а):
1) Поместить данные в буфер. Через структуру.
dd type
dd size
dd address

По-моему, туда еще надо добавить dd custom_type, чтобы получилось:
Код:
  dd type
  dd custom_type
  dd size
  dd address


В API и callback-функциях обычно предусматривают дополнительное поле, хранящее "пользовательские данные". Вот туда и можно будет класть кодировку для типа CF_TEXT. ОС его никак обрабатывать не будет, а приложениям рано или поздно придется цеплять всякие конверторы, раз проект выходит за рамки Рунета.

Поле кодировки может заполняться, например, строками '866', 0, или '1251', или 'UTF8', или даже 'Big5' или 'SJIS'. Встанет вопрос о регистре. А можно и числовые коды Windows класть, которые очень продуманны, скажу я вам. Будет преемственность.

Например, кто из вас знает, что числовые значения всяких STD_INPUT и STD_OUTPUT, прописанные в SDK большинства ОС, мало того что совпадают, так еще и не изменились еще со времен перфокарт и терминального вывода на бумажную ленту? Преемственность.

_________________
Разработчик языка программирования Кантор


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 09, 2012 10:19 pm 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Вт янв 15, 2008 11:27 am
Сообщения: 750
Freeman писал(а):
По-моему, туда еще надо добавить dd custom_type, чтобы получилось:

Хорошо для расширяемости.

Freeman писал(а):
А можно и числовые коды Windows класть

А можно и свои числовые коды (0 - 866, 1 - 1251, 2 - utf8, ...) - вполне достаточно. И копировать не придётся.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Пн дек 10, 2012 12:48 am 
Не в сети
Аватара пользователя

Зарегистрирован: Вт май 08, 2007 12:44 am
Сообщения: 340
Albom писал(а):
А можно и свои числовые коды (0 - 866, 1 - 1251, 2 - utf8, ...) - вполне достаточно.

Ну, это уже известный спор натуральных ключей против искусственных. Спорить не будем.

_________________
Разработчик языка программирования Кантор


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Пн дек 10, 2012 2:18 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
ilya
Код:
Ядро создаёт буфер и передаёт во владение приложению. Когда буфер будет ненужен приложение освободит его. Такое технически возможно в даный момент?
Это то же самое о чём я и писал.
Цитата:
Нельзя давать право приложению дёргать ф-цию для чтения буфера когда хочет. Только когда пользователь нажал ctrl+c в одном окне и ctrl+v вдругом.
А ещё когда пользователь выдрал пункт в меню, а ещё когда нажал кнопочку "Скопировать" и т.д. Не надо вводить ненужные ограничения. Ни в одной системе этого нет. Есть устоявшийся набор правил и все их применяют.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Пн дек 10, 2012 2:36 am 
Не в сети

Зарегистрирован: Вт июл 26, 2011 11:03 pm
Сообщения: 62
Приложение должно иметь доступ к буферу обмена если пользователь этого захотел. Как ты это собираешся определять?
Иначе приложение прочитает любую инфу не предназначеную для него, по таймеру, чем меньше промежуток тем лучше.
С остальным согласен, только, ядро никогда его не увеличит буфер, потому как посылающие приложение знает истиный размер и соответсвено его передаст.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Пн дек 10, 2012 8:22 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Цитата:
Приложение должно иметь доступ к буферу обмена если пользователь этого захотел. Как ты это собираешся определять?
Так, как и везде. В обработчике событий от клавиатуры. В приложении разумеется.


Последний раз редактировалось Serge Вт дек 11, 2012 2:13 am, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Пн дек 10, 2012 2:51 pm 
Не в сети

Зарегистрирован: Вт июл 26, 2011 11:03 pm
Сообщения: 62
Цитата:
Так как и везде. В обработчике событий от клавиатуры. В приложении разумеется.
Опрос по таймеру попрежнему возможен так понимаю.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Пн дек 10, 2012 4:42 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1601
Serge писал(а):
И про кодировку текста. Использовать unicode или нет ?

Я за принудительную UTF8-изацию вообще всего.

_________________
Сделаем мир лучше!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Пн дек 10, 2012 6:25 pm 
Не в сети

Зарегистрирован: Пт фев 18, 2011 3:13 pm
Сообщения: 201
CleverMouse писал(а):
Я за принудительную UTF8-изацию вообще всего.


Я тоже.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Пн дек 10, 2012 7:09 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
CleverMouse писал(а):
Я за принудительную UTF8-изацию вообще всего.

думаю многие за это

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вт дек 11, 2012 2:14 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
ilya писал(а):
Опрос по таймеру по прежнему возможен так понимаю.
Оно нигде не запрещено. Вопрос зачем ?
Цитата:
Я за принудительную UTF8-изацию вообще всего.
Кодировка переменной длины неудобна в обработке. Да и какой смысл, кириллица и всё не латинское ведь всё равно будет двумя байтами кодироваться.
Код:
Unicode UTF-8:
0x00000000 — 0x0000007F: 0xxxxxxx
0x00000080 — 0x000007FF: 110xxxxx 10xxxxxx
0x00000800 — 0x0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
0x00010000 — 0x001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
. На цифрах и пробелах сэкономим немного и только.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вт дек 11, 2012 8:36 am 
Не в сети

Зарегистрирован: Пт фев 18, 2011 3:13 pm
Сообщения: 201
Дело не в экономией. UTF-8 обратно совместима с ANSI. (например FASM прекрасно компилирует UTF-8 исходник с кириллических текстах внутри) Большая часть кода не меняется вообще.
А UTF-16, если обрабатывать правильно на самом деле тоже является переменной длины и тоже неудобна в обработке.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 184 сообщения ]  На страницу Пред. 16 7 8 9 1013 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB