Board.KolibriOS.org

Official KolibriOS board
It is currently Sat May 25, 2019 12:12 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 27 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Thu Aug 13, 2009 10:57 am 
Offline

Joined: Thu Aug 13, 2009 10:39 am
Posts: 54
Здравствуйте. Пытаюсь программировать под KolibriOS, и у меня возник вопрос: имеется ли возможность функциями ядра определить некую "рабочую область окна", при определении которой программа могла рисовать только в ней? Пытался сделать это через функцию 0, но не получилось.


Top
   
PostPosted: Thu Aug 13, 2009 3:02 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Ограничение области рисования внутри окна программы - это проблема программиста пишущего программу, а не проблема ядра операционной.
Если нужно ограничить область рисования, то делай это програмно, ограничивая значения координат X,Y и размер.

_________________
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!


Top
   
PostPosted: Thu Aug 13, 2009 3:14 pm 
Offline

Joined: Thu Aug 13, 2009 10:39 am
Posts: 54
andrew_programmer wrote:
Ограничение области рисования внутри окна программы - это проблема программиста пишущего программу, а не проблема ядра операционной.
Если нужно ограничить область рисования, то делай это програмно, ограничивая значения координат X,Y и размер.


Интересно, тогда как, например, ограничить область рисования строки, выводимой через системную функцию без вычисления её длины, я уж не говорю, если она не влазит по вертикали... А если контрол содержит 100 таких строк и лишь одна "не влазит"? С помощью такой функции можно было бы легко избавиться от таких трудностей в программе.
Также, можно легко реализовать, например, "гладкую прокрутку" и т.п.


Top
   
PostPosted: Thu Aug 13, 2009 3:59 pm 
Offline
User avatar

Joined: Mon Apr 16, 2007 6:38 pm
Posts: 1222
ну можешь сделать это, лично я не против

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Top
   
PostPosted: Thu Aug 13, 2009 4:06 pm 
Offline

Joined: Thu Aug 13, 2009 10:39 am
Posts: 54
Gluk, я не могу ограничить область рисования внутри своей программы, а ты просишь меня реализовать функцию для этого в ядре ;-)


Top
   
PostPosted: Thu Aug 13, 2009 4:14 pm 
Offline
User avatar

Joined: Mon Apr 16, 2007 6:38 pm
Posts: 1222
тогда это сюда наверное)

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Top
   
PostPosted: Thu Aug 13, 2009 4:30 pm 
Offline

Joined: Thu Aug 13, 2009 10:39 am
Posts: 54
Gluk wrote:
тогда это сюда наверное)

Доволен?


Top
   
PostPosted: Thu Aug 13, 2009 6:38 pm 
ChE
Посмотри код KFM - я там сделал расчет динны выводимой строки символов, окно то по сути резиновое. Однако это будет работать только для шрифта с фиксированной шириной символов, который не жирный.


Top
   
PostPosted: Thu Aug 13, 2009 6:55 pm 
Offline

Joined: Thu Aug 13, 2009 10:39 am
Posts: 54
Mario, спасибо за ответ.
1. А разве код kfm открыт?
2. Насчёт трудности реализации: функция 0, по сути, устанавливает эту область и отрисовывает окно. Можно попробовать сделать функцию установки области отдельной и включить её в код других функций. Примерно так (для функции 0): устанавливаем рабочую область "по умолчанию", вызываем отрисовку окна. После отрисовки окон со скином, можно сделать область поменьше, это, кстати, решит некоторые "ляпы" таких окон.
После этого не потребуется даже переписывать имеющиеся программы, ведь новую функцию никого не заставляют использовать :-)


Top
   
PostPosted: Thu Aug 13, 2009 6:59 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Quote:
Интересно, тогда как, например, ограничить область рисования строки, выводимой через системную функцию без вычисления её длины, я уж не говорю, если она не влазит по вертикали... А если контрол содержит 100 таких строк и лишь одна "не влазит"? С помощью такой функции можно было бы легко избавиться от таких трудностей в программе.
Также, можно легко реализовать, например, "гладкую прокрутку" и т.п.


То, что ты хочеш реализовать, реализуется в программе, но не как не в ядре операционной системы. Ядро операционной системы - это не графическая библиотека. А то, о чём ты пишеш, реализуется посредством библиотеки GUI компонентов. Конкретно при помощи control-а (ну или widget-а это кому как угодно) ScrolledWindow(.....). Я сейчас пишу для KolibriOS библиотеку GUI компонентов(называется libGUI). И как раз в данный момент пишу контрол ScrolledWindow(.....). Подождите с недельку или в крайнем случае две. И я выложу библиотеку.

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Top
   
PostPosted: Thu Aug 13, 2009 7:02 pm 
Offline

Joined: Thu Aug 13, 2009 10:39 am
Posts: 54
andrew_programmer, в корне не согласен с Вашим последним постом, почему - писал уже, не хочу повторяться.


Top
   
PostPosted: Thu Aug 13, 2009 7:15 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
ChE

Я написал всё правильно. Библиотека GUI должна учитывать высоту скина, и рисовать control-ы внутри окна программы. А на скине рисовать только заголовок и иконку. И то, только с разрешения GUI библиотеки(то есть при помощи неё).
ChE, ты давно программируеш? На каких языках программирования можеш писать?

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Top
   
PostPosted: Thu Aug 13, 2009 7:20 pm 
Offline

Joined: Thu Aug 13, 2009 10:39 am
Posts: 54
andrew_programmer

Я не прошу ядро рисовать мне контрол, я прошу ядро определить мне участок памяти, в котором я могу нарисовать этот контрол и всё.


Last edited by ChE on Fri Aug 14, 2009 8:31 am, edited 1 time in total.

Top
   
PostPosted: Thu Aug 13, 2009 7:24 pm 
Offline

Joined: Thu Aug 13, 2009 10:39 am
Posts: 54
andrew_programmer wrote:
То, что ты хочеш реализовать, реализуется в программе, но не как не в ядре операционной системы. Ядро операционной системы - это не графическая библиотека. А то, о чём ты пишеш, реализуется посредством библиотеки GUI компонентов. Конкретно при помощи control-а (ну или widget-а это кому как угодно) ScrolledWindow(.....). Я сейчас пишу для KolibriOS библиотеку GUI компонентов(называется libGUI). И как раз в данный момент пишу контрол ScrolledWindow(.....). Подождите с недельку или в крайнем случае две. И я выложу библиотеку.


То, что Вы предлагаете отлично прокатывает в ДОСе с текстовым режимом, в графике же всё немного сложнее.


Top
   
PostPosted: Thu Aug 13, 2009 8:16 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
ChE
Quote:
Я не прошу ядро рисовать мне контрол, я прошу ядро определить мне участок видеопамяти, в котором я могу нарисовать этот контрол и всё.
Программы вообще не должны работать с видеопамятью. Ни сами, ни через вызовы ядра. Весь вывод должен рендериться в битмап в user-mode. А оконный менеджер уже отображать битмапы на экране.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 27 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited