Board.KolibriOS.org

Official KolibriOS board
It is currently Fri Jul 19, 2019 9:52 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 240 posts ]  Go to page 1 2 3 4 516 Next
Author Message
 Post subject: libGUI
PostPosted: Fri Feb 09, 2007 2:26 am 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Я занимаюсь разработкой стандартной библиотеки GUI для KolibriOS.
В результате упорного программирования в течении семи дней я написал два GUI компонента.Это кнопки и скролеры.
Все компоненты могут отображаться в 2-х видах - 2D и 3D.
2D компоненты представляют из себя плоские GUI компоненты.
3D - это объёмные компоненты с красивыми градиентными заливками.
Цвет GUI компонентов зависит от скина.
Наример вот так выглядят 3D компоненты со скином Metal.skn:
http://www.menuetosgame.narod.ru/programs/libGUI_3D.PNG

А вот сама библиотека libGUI с демо-программами.
http://www.menuetosgame.narod.ru/programs/libGUI.7z
При компиляции программ не забудьте прописать путь к DLL-ке в исходниках(путь сделан для моего компьютера).

Хотелось бы ещё и меню сделать,но не знаю,хватит ли у меня на это времени(но всётаки постараюсь).

Высказывайтесь.Может что-то надо изменить,переделать.

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


Top
   
 Post subject:
PostPosted: Fri Feb 09, 2007 8:10 am 
andrew_programmer
Хорошая вещь, надо будет запихнуть в KFM.


Top
   
 Post subject:
PostPosted: Fri Feb 09, 2007 12:10 pm 
Offline
User avatar

Joined: Fri Jan 27, 2006 3:06 pm
Posts: 1071
Еще один закос под ХРюшу?


Top
   
 Post subject:
PostPosted: Fri Feb 09, 2007 12:18 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Все элементы генерируются МАТЕМАТИЧЕСКИ !
Я посмотрел как сделано в XP - слишком мудрёно.
Посмотрел как сделано в Linux - довольно просто и понятно.За основу я взял идею из LINUX ,а не XP.Плюс ещё добавил свои идеи.Делал,что называется,на глаз.Изменял под свои идеи.

Запустите в XP экранную лупу и сравните элементы XP и мои - общего мало.


Top
   
 Post subject:
PostPosted: Fri Feb 09, 2007 12:47 pm 
Offline
User avatar

Joined: Fri Jan 27, 2006 3:06 pm
Posts: 1071
Однако размерчик демок без сжатия впечатляет: 460 kb. И это только демки...
PS: Не знаю как под экранной лупой, но тот скриншот, что ты привел - один в один ХР.


Top
   
 Post subject:
PostPosted: Fri Feb 09, 2007 1:05 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
>PS: Не знаю как под экранной лупой, но тот скриншот, что ты привел - один в один ХР.

В LINUX градиентная заливка начинается с серых тонов и заканчивается белыми, только поэтому они не смахивают на XP.
А у меня градиентная заливка начинается с цвета скина и заканчивается белым.Этот маленький нюанс и дедает похожесть на XP.В остальном алгоритм рисования объёмного прямоугольника во всех ОС ОДИНАКОВ.Разница только в цвете градиентной заливки ,в антианализинге и некоторых мелочах дизайна.


>Однако размерчик демок без сжатия впечатляет: 460 kb. И это только демки...

Я думал ты разбираешься в ассемблере.
В коде есть строка:

Picture:
file 'abc.raw'

abc.raw - это скролируемая картинка,которая подключается к коду программы, увеличивая его размер на 99%.
Размер примера без этой картинки 1.5 килобайта.

Размер скомпилированной DLL 42 килобайта.Но после сжатия упаковщиком(не путать с архиватором) она занимает 6 килобайт, что на 1 килобайт больше сжатой консоли.


Top
   
 Post subject:
PostPosted: Fri Feb 09, 2007 1:44 pm 
Offline
User avatar

Joined: Fri Jan 27, 2006 3:06 pm
Posts: 1071
В исходники я не лазил пока, потому пишу только то, что вижу снаружи. ;) Dll можно паковать и kpack-ом, тогда она занимает 4,78 килобайт. А похожесть на ХР заключается еще и в черточках на полосах прокрутки и во внешнем виде кнопок со стрелками... Копия просто ;). Опять таки в алгоритм я не лазил. Кстати, кнопки со стрелками не работают в примерах.


Top
   
 Post subject:
PostPosted: Fri Feb 09, 2007 2:32 pm 
Offline

Joined: Wed Jul 05, 2006 9:00 am
Posts: 81
Интересно, а что плохого в похожести на ХРюшку. Дизаин дизаином, но по теории юзабилити знакомое наоборот удобнее. Причем скроллеры в ХР не самые плохие. Молодец, andrew_programmer, сегодня посмотреть код и примеры в действии не смогу, уезжаю сейчас, а в понедельник гляну.


Top
   
 Post subject:
PostPosted: Fri Feb 09, 2007 2:45 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
> Кстати, кнопки со стрелками не работают в примерах.

Правильно,не работают.Я их не сделал.Пока надобности в кнопках для скролеров - нет(пока и без них сойдёт).
Мне меню нужнее.

> Dll можно паковать и kpack-ом, тогда она занимает 4,78 килобайт.

Я про него и говорил.Только похоже с размером ошибся.


Top
   
 Post subject:
PostPosted: Fri Feb 09, 2007 2:51 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
> А похожесть на ХР заключается еще и в черточках.

Можно было сделать как в Linux - рельефные точки.Но это увеличило бы число системных вызовов в несколько раз,что нагружает процессор.

Вообще попробуйте запускать демку с разными скинами в системе.Похожесть на XP будет меньше.


Top
   
 Post subject:
PostPosted: Fri Feb 09, 2007 3:15 pm 
Heavyiron
Почему ты решил, что стиль похожий на XP это плохо? В KDE аж 3 стиля основанных на виндах - и что это повод на них поругаться?
Никто ведь не заставляет тебя использовать эту вещь, не нравиться не используй или напиши свое.


Top
   
 Post subject:
PostPosted: Fri Feb 09, 2007 6:39 pm 
Offline
User avatar

Joined: Fri Jan 27, 2006 3:06 pm
Posts: 1071
Quote:
но по теории юзабилити знакомое наоборот удобнее

Кому знакомое, а кому и приедается везде одно и то же ;) Хотя это ИМХО.
А так хотел сказать, что начинание хорошее: отсутствие стандартных gui-компонентов сдерживает развитие многих программ.


Top
   
 Post subject:
PostPosted: Mon Feb 12, 2007 10:57 pm 
andrew_programmer
Заметил некоторые глюки:
1) В демках не работают горизонтальные скроллеры.
2) Обе демки невозможно перемещать по экрану.
3) Обе демки не хотят нормально завершиться и подвешивают Тинипад, который их скомпилировал и запустил.
Также неплохо бы разбить библиотеку на отдельные компоненты и чтобы не используемое отсутствовало.


Top
   
 Post subject:
PostPosted: Mon Feb 12, 2007 11:51 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
1) Это не глюк.Я хотел сделать и горизонтальную прокрутку,но почему-то у меня не получилось(хотя я уже реализовывал этот алгоритм в ANIMAGE ).Поэтоу в названии файла присутствует слово "vertical".Может дело в том, что я писал это в 3-ем часу ночи.

2)Невозможно перемещать,потомучто окна неперемещаемые.Главный смысл демки в том, чтобы было понятно как пользоваться компонентами программисту.

3)Наконец-то нашёлся ещё один человек,наблюдающий те-же глюки,что и я уже давно наблюдаю.
Это не вина демок.Это вина: то-ли Колибри-FASM-а, то-ли ошибка в работе файловой системы(что мало вероятно), то-ли ещё что-то.

Когда diamond пофиксил этот баг,то я думал что простился с ним навсегда.Запущенные из Тинипад-а программы действительно перестали намертво вешать систему.Теперь они вешают только Тинипад.Причём это происходит не совсеми программами,а только с некоторыми(в числе которых и мои демки).

>Также неплохо бы разбить библиотеку на отдельные компоненты и чтобы не используемое отсутствовало.

Тоесть,чтобы не грузить в память всю DLL, а грузить DLL-ки с отдельными компонентами ?

Единственный выигрыш,который будет получен - это экономия оперативной памяти на 2-10 килобайт(в будущем до 50-ти килобайт).А вот на дискете эти маленькие DLL-ки займут лишние секторы.
К тому-же некоторые компоненты используют общие процедуры(например градиентные заливки).Это приведёт к дублированию части кода в DLL-ах с разными компонентами,что увеличит размер каждой из них на 1-3 килобайта.


Top
   
 Post subject:
PostPosted: Tue Feb 13, 2007 8:07 am 
andrew_programmer
Quote:
Единственный выигрыш,который будет получен - это экономия оперативной памяти на 2-10 килобайт(в будущем до 50-ти килобайт).А вот на дискете эти маленькие DLL-ки займут лишние секторы.

Если не иметь этой DLL в общей папке дистрибутива, то придется запихивать в отдельную папку для каждой программы, а это увеличит разеры еще больше. Я исходил из этих предпосылок когда писал эту идею.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 240 posts ]  Go to page 1 2 3 4 516 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