Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт апр 27, 2017 2:05 pm

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




Начать новую тему  Ответить на тему  [ 27 сообщений ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 10:57 am 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 3:02 pm 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 3:14 pm 
Не в сети

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


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


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 3:59 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
ну можешь сделать это, лично я не против

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


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 4:06 pm 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 4:14 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
тогда это сюда наверное)

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


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 4:30 pm 
Не в сети

Зарегистрирован: Чт авг 13, 2009 10:39 am
Сообщения: 54
Gluk писал(а):
тогда это сюда наверное)

Доволен?


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 6:38 pm 
ChE
Посмотри код KFM - я там сделал расчет динны выводимой строки символов, окно то по сути резиновое. Однако это будет работать только для шрифта с фиксированной шириной символов, который не жирный.


Вернуться к началу
   
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 6:55 pm 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 6:59 pm 
Не в сети
Аватара пользователя

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


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

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

Kolibri is best operation system in the world!


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 7:02 pm 
Не в сети

Зарегистрирован: Чт авг 13, 2009 10:39 am
Сообщения: 54
andrew_programmer, в корне не согласен с Вашим последним постом, почему - писал уже, не хочу повторяться.


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 7:15 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
ChE

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

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

Kolibri is best operation system in the world!


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 7:20 pm 
Не в сети

Зарегистрирован: Чт авг 13, 2009 10:39 am
Сообщения: 54
andrew_programmer

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


Последний раз редактировалось ChE Пт авг 14, 2009 8:31 am, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 7:24 pm 
Не в сети

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


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


Вернуться к началу
 Заголовок сообщения: Re: Рабочая область окна
СообщениеДобавлено: Чт авг 13, 2009 8:16 pm 
Не в сети
Kernel Developer

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


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 27 сообщений ]  На страницу 1 2 След.

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


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

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


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

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