Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср мар 29, 2017 4:35 am

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




Начать новую тему  Ответить на тему  [ 184 сообщения ]  На страницу Пред. 18 9 10 11 12 13 След.
Автор Сообщение
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс ноя 03, 2013 10:03 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
eAndrew писал(а):
Ну в той же винде, например, системный контрол Edit использует буфер обмена. Имхо, это как раз таки задача контрола.

Box_Lib не выполняет дополнительных действий - он только рисует контролы, не более. Я не хочу в этой теме обсуждать Box_Lib, это тема про буфер обмена.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вт ноя 05, 2013 12:03 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Промежуточные результаты для заинтересованных людей:
Вложение:
kernel.7z [93.36 КБ]
68 скачиваний

Вложение:
clipboard.7z [4.37 КБ]
67 скачиваний

Одна программа добавляет слоты с текстом, другая отображает доступные слоты.

З.Ы. Пока не реализована зашита по записи, чтобы более одного приложения не пыталось записывать. Также товарищ hidnplayr обозначил в чате проблему с устареванием данных между вызовами функции. Нужно еще подумать.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


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

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1041
API для работы меняться будет?

_________________
я лишь учусь


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

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1041
И круто в общем. Наконец то, сами знаете кто, появится в KolibriOS

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вт ноя 05, 2013 9:58 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
punk_joker писал(а):
API для работы меняться будет?

Такая вероятность есть.

З.Ы. Возникли запарки на работе, в это связи разработка пока приостановилась.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


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

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
SVN r.4199 код Clipboard (ф.54) залит в исходники ядра. Описание в файлах sysfuncs.txt и sysfuncr.txt

Внимание! API изменился и предыдущие примеры выложенные в этой теме корректно работать не будут.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


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

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
SVN r.4200 примеры работы с буфером обмена.

Для совсем ленивых - качаете ночную сборку r.4199 или новее, а для примеров вот архив:
Вложение:
clipboard_r4200.7z [4.34 КБ]
72 скачивания

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Ср ноя 13, 2013 3:15 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 731
Чего-то не сходится документация с примером, в clipboard_container.txt сказано:
Цитата:
2.1 Текст
Данные в третьем dword содержат тип:
0 = UTF
1 = 0866

А в примере clip_put.asm видим следущее:
Код:
buffer_data:
   dd buffer_data.end - buffer_data
   dd 0   ; type 'text'
   dd 866   ; text encoding
   db 'Test message to the clipboard'
.end:

Видимо в примере вместо 866 нужно поставить 1.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Ср ноя 13, 2013 3:21 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
IgorA
Да, ты прав - меня кажется переглючило, т.к. писал код ночью.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Чт ноя 14, 2013 2:56 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 731
В связи с ревизией 4228 возник вопрос, есть ли в буфере обмена ограничение на число слотов хранимых в нем? Потому что я могу копировать в буфер текст, а очистка буфера не происходит сама по себе, разве что только с тестовым примером могу чистить.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Чт ноя 14, 2013 3:44 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
1023 или 1024, я точно не проверял. В принципе ограничение только выделенной странице памяти и при желании количество слотов можно даже увеличить, но зачем?

1) У меня была идея по умолчанию сделать ограничение на один слот, а при помощи подфункции увеличивать при необходимости.
2) Еще есть идея реализовать закольцованность, чтобы при исчерпании всех слотов самый первый удалялся, а весь список смещался вверх.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Чт ноя 14, 2013 5:52 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 731
Mario_r4 писал(а):
при желании количество слотов можно даже увеличить, но зачем?

Увеличивать не нужно. Просто возник вопрос о том, что память буфера каждый раз при копировании увеличивается и будет ли тормозить вся система при забивании буфера "на максимум".
Mario_r4 писал(а):
2) Еще есть идея реализовать закольцованность, чтобы при исчерпании всех слотов самый первый удалялся, а весь список смещался вверх.

Думаю это лучший вариант.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 01, 2013 1:29 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
IgorA писал(а):
Чего-то не сходится документация с примером, в clipboard_container.txt сказано:
Цитата:
2.1 Текст
Данные в третьем dword содержат тип:
0 = UTF
1 = 0866

А в примере clip_put.asm видим следущее:
Код:
buffer_data:
   dd buffer_data.end - buffer_data
   dd 0   ; type 'text'
   dd 866   ; text encoding
   db 'Test message to the clipboard'
.end:

Видимо в примере вместо 866 нужно поставить 1.

Исправлено в SVN r.4317

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 01, 2013 5:47 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Все еще стоит на повестке дня вопрос с символами перевода строки. Пока что я имею два наглядных варианта Tinypad использующий 0x0d 0x0a и T_edit использующий 0xd, в качестве символов перевода строки.

Статья на википедии утверждает, что для надежности нужно использовать 0x0d 0x0a.

Есть какие то еще варианты перевода строк? И какой все же выбрать вариант для единообразия подхода?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


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

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 905
Mario_r4, а зачем это нужно в буфере обмена? Какая ядру разница?
Mario_r4 писал(а):
Статья на википедии утверждает, что для надежности нужно использовать 0x0d 0x0a.
Я думаю, надо делать надёжно.
Или, как вариант, указывать тип содержимого(что-то вроде TEXT_CR, TEXT_LF, TEXT_CR_LF).


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 184 сообщения ]  На страницу Пред. 18 9 10 11 12 13 След.

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


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

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


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

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