Рабочая область окна

Kernel-side graphics support
  • Ограничение области рисования внутри окна программы - это проблема программиста пишущего программу, а не проблема ядра операционной.
    Если нужно ограничить область рисования, то делай это програмно, ограничивая значения координат X,Y и размер.
    KolibriOS-перспективная ос!
    Kolibri is best operation system in the world!
  • andrew_programmer wrote:Ограничение области рисования внутри окна программы - это проблема программиста пишущего программу, а не проблема ядра операционной.
    Если нужно ограничить область рисования, то делай это програмно, ограничивая значения координат X,Y и размер.
    Интересно, тогда как, например, ограничить область рисования строки, выводимой через системную функцию без вычисления её длины, я уж не говорю, если она не влазит по вертикали... А если контрол содержит 100 таких строк и лишь одна "не влазит"? С помощью такой функции можно было бы легко избавиться от таких трудностей в программе.
    Также, можно легко реализовать, например, "гладкую прокрутку" и т.п.
  • ну можешь сделать это, лично я не против
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Gluk, я не могу ограничить область рисования внутри своей программы, а ты просишь меня реализовать функцию для этого в ядре ;-)
  • тогда это сюда наверное)
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Gluk wrote:тогда это сюда наверное)
    Доволен?
  • ChE
    Посмотри код KFM - я там сделал расчет динны выводимой строки символов, окно то по сути резиновое. Однако это будет работать только для шрифта с фиксированной шириной символов, который не жирный.
  • Mario, спасибо за ответ.
    1. А разве код kfm открыт?
    2. Насчёт трудности реализации: функция 0, по сути, устанавливает эту область и отрисовывает окно. Можно попробовать сделать функцию установки области отдельной и включить её в код других функций. Примерно так (для функции 0): устанавливаем рабочую область "по умолчанию", вызываем отрисовку окна. После отрисовки окон со скином, можно сделать область поменьше, это, кстати, решит некоторые "ляпы" таких окон.
    После этого не потребуется даже переписывать имеющиеся программы, ведь новую функцию никого не заставляют использовать :-)
  • Интересно, тогда как, например, ограничить область рисования строки, выводимой через системную функцию без вычисления её длины, я уж не говорю, если она не влазит по вертикали... А если контрол содержит 100 таких строк и лишь одна "не влазит"? С помощью такой функции можно было бы легко избавиться от таких трудностей в программе.
    Также, можно легко реализовать, например, "гладкую прокрутку" и т.п.
    То, что ты хочеш реализовать, реализуется в программе, но не как не в ядре операционной системы. Ядро операционной системы - это не графическая библиотека. А то, о чём ты пишеш, реализуется посредством библиотеки GUI компонентов. Конкретно при помощи control-а (ну или widget-а это кому как угодно) ScrolledWindow(.....). Я сейчас пишу для KolibriOS библиотеку GUI компонентов(называется libGUI). И как раз в данный момент пишу контрол ScrolledWindow(.....). Подождите с недельку или в крайнем случае две. И я выложу библиотеку.
    KolibriOS-перспективная ос!
    Kolibri is best operation system in the world!
  • andrew_programmer, в корне не согласен с Вашим последним постом, почему - писал уже, не хочу повторяться.
  • ChE

    Я написал всё правильно. Библиотека GUI должна учитывать высоту скина, и рисовать control-ы внутри окна программы. А на скине рисовать только заголовок и иконку. И то, только с разрешения GUI библиотеки(то есть при помощи неё).
    ChE, ты давно программируеш? На каких языках программирования можеш писать?
    KolibriOS-перспективная ос!
    Kolibri is best operation system in the world!
  • andrew_programmer

    Я не прошу ядро рисовать мне контрол, я прошу ядро определить мне участок памяти, в котором я могу нарисовать этот контрол и всё.
    Last edited by ChE on Fri Aug 14, 2009 8:31 am, edited 1 time in total.
  • andrew_programmer wrote: То, что ты хочеш реализовать, реализуется в программе, но не как не в ядре операционной системы. Ядро операционной системы - это не графическая библиотека. А то, о чём ты пишеш, реализуется посредством библиотеки GUI компонентов. Конкретно при помощи control-а (ну или widget-а это кому как угодно) ScrolledWindow(.....). Я сейчас пишу для KolibriOS библиотеку GUI компонентов(называется libGUI). И как раз в данный момент пишу контрол ScrolledWindow(.....). Подождите с недельку или в крайнем случае две. И я выложу библиотеку.
    То, что Вы предлагаете отлично прокатывает в ДОСе с текстовым режимом, в графике же всё немного сложнее.
  • ChE
    Я не прошу ядро рисовать мне контрол, я прошу ядро определить мне участок видеопамяти, в котором я могу нарисовать этот контрол и всё.
    Программы вообще не должны работать с видеопамятью. Ни сами, ни через вызовы ядра. Весь вывод должен рендериться в битмап в user-mode. А оконный менеджер уже отображать битмапы на экране.
  • Who is online

    Users browsing this forum: No registered users and 3 guests