Общесистемный буфер обмена

Internal structure and you change requests/suggestions
  • Промежуточные результаты для заинтересованных людей:
    kernel.7z (93.36 KiB)
    Downloaded 366 times
    clipboard.7z (4.37 KiB)
    Downloaded 377 times
    Одна программа добавляет слоты с текстом, другая отображает доступные слоты.

    З.Ы. Пока не реализована зашита по записи, чтобы более одного приложения не пыталось записывать. Также товарищ hidnplayr обозначил в чате проблему с устареванием данных между вызовами функции. Нужно еще подумать.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • API для работы меняться будет?
    to infinity and beyond
  • И круто в общем. Наконец то, сами знаете кто, появится в KolibriOS
    to infinity and beyond
  • punk_joker wrote:API для работы меняться будет?
    Такая вероятность есть.

    З.Ы. Возникли запарки на работе, в это связи разработка пока приостановилась.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • SVN r.4199 код Clipboard (ф.54) залит в исходники ядра. Описание в файлах sysfuncs.txt и sysfuncr.txt

    Внимание! API изменился и предыдущие примеры выложенные в этой теме корректно работать не будут.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • SVN r.4200 примеры работы с буфером обмена.

    Для совсем ленивых - качаете ночную сборку r.4199 или новее, а для примеров вот архив:
    Downloaded 365 times
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Чего-то не сходится документация с примером, в clipboard_container.txt сказано:
    2.1 Текст
    Данные в третьем dword содержат тип:
    0 = UTF
    1 = 0866
    А в примере clip_put.asm видим следущее:

    Code: Select all

    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.
  • IgorA
    Да, ты прав - меня кажется переглючило, т.к. писал код ночью.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • В связи с ревизией 4228 возник вопрос, есть ли в буфере обмена ограничение на число слотов хранимых в нем? Потому что я могу копировать в буфер текст, а очистка буфера не происходит сама по себе, разве что только с тестовым примером могу чистить.
  • 1023 или 1024, я точно не проверял. В принципе ограничение только выделенной странице памяти и при желании количество слотов можно даже увеличить, но зачем?

    1) У меня была идея по умолчанию сделать ограничение на один слот, а при помощи подфункции увеличивать при необходимости.
    2) Еще есть идея реализовать закольцованность, чтобы при исчерпании всех слотов самый первый удалялся, а весь список смещался вверх.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4 wrote:при желании количество слотов можно даже увеличить, но зачем?
    Увеличивать не нужно. Просто возник вопрос о том, что память буфера каждый раз при копировании увеличивается и будет ли тормозить вся система при забивании буфера "на максимум".
    Mario_r4 wrote:2) Еще есть идея реализовать закольцованность, чтобы при исчерпании всех слотов самый первый удалялся, а весь список смещался вверх.
    Думаю это лучший вариант.
  • IgorA wrote:Чего-то не сходится документация с примером, в clipboard_container.txt сказано:
    2.1 Текст
    Данные в третьем dword содержат тип:
    0 = UTF
    1 = 0866
    А в примере clip_put.asm видим следущее:

    Code: Select all

    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 лет себе в жопу!
  • Все еще стоит на повестке дня вопрос с символами перевода строки. Пока что я имею два наглядных варианта Tinypad использующий 0x0d 0x0a и T_edit использующий 0xd, в качестве символов перевода строки.

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

    Есть какие то еще варианты перевода строк? И какой все же выбрать вариант для единообразия подхода?
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4, а зачем это нужно в буфере обмена? Какая ядру разница?
    Mario_r4 wrote:Статья на википедии утверждает, что для надежности нужно использовать 0x0d 0x0a.
    Я думаю, надо делать надёжно.
    Или, как вариант, указывать тип содержимого(что-то вроде TEXT_CR, TEXT_LF, TEXT_CR_LF).
  • Who is online

    Users browsing this forum: No registered users and 5 guests