Board.KolibriOS.org
http://board.kolibrios.org/

box_lib.obj - библиотека gui компонентов
http://board.kolibrios.org/viewtopic.php?f=24&t=1220
Page 7 of 27

Author:  Mario [ Wed Feb 10, 2010 12:43 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Насчет скинованного скроллбара я думал еще в самом начале, по этой причине в структуре данных оставлено поле:
Code:
macro use_scroll_bar
{
scroll_bar:
sb_size_x      equ [edi]
sb_start_x      equ [edi+2]
sb_size_y      equ [edi+4]
sb_start_y      equ [edi+6]
sb_btn_high      equ [edi+8]
sb_type         equ [edi+12] <-- Вот это
sb_max_area      equ [edi+16]
sb_cur_area      equ [edi+20]
sb_position      equ [edi+24]
sb_bckg_col      equ [edi+28]
sb_frnt_col      equ [edi+32]
sb_line_col      equ [edi+36]
sb_redraw      equ [edi+40]
sb_delta      equ [edi+44]
sb_delta2      equ [edi+46]
sb_r_size_x      equ [edi+48]
sb_r_start_x   equ [edi+50]
sb_r_size_y      equ [edi+52]
sb_r_start_y   equ [edi+54]
sb_m_pos      equ [edi+56]
sb_m_pos_2      equ [edi+60]
sb_m_keys      equ [edi+64]
sb_run_size      equ [edi+68]
sb_position2   equ [edi+72]
sb_work_size   equ [edi+76]
sb_all_redraw   equ [edi+80]
sb_ar_offset   equ [edi+84]
}

По умолчанию оно нулевое. Если использовать другое значение, то можно добавлять новые поля вслед за существующими.

Quote:
DynamicButton отрисовывает png

Не совсем так - он отрисовывает область с RAW при помощи функции 65. А уж из чего этот RAW сделан не суть есть важно.

Просто банально не хватает времени и желания. Ну, и текущий вариант рисуется максимально быстро и без лишних подгрузок RAW образов, которые еще и подготавливать приходится.

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

Я в ближайшее время (после того как допилю OpenDialog для выбора сохранения и выбора директории) скорее всего буду заниматься переделкой KFM под Box_lib, так что заниматься скинованным скроллбаром будет некогда.

Author:  Heavyiron [ Wed Feb 10, 2010 5:31 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Скролбара типа изображенных выше наверняка можно добиться и в текущей реализации - просто немного смягчить цвета и возможно вообще убрать 3 риски в центре - смысловой нагрузки они почти не несут.

Author:  Mario [ Wed Feb 10, 2010 5:49 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Heavyiron wrote:
и возможно вообще убрать 3 риски в центре - смысловой нагрузки они почти не несут.

Как говорится "Не знаю - мне нравится". Вкус и цвет...

Author:  Heavyiron [ Thu Feb 11, 2010 12:53 am ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Ну да, как сказали на хабре "скрол у них как в вин 3.11"

Author:  Mario [ Thu Feb 11, 2010 1:02 am ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Знаешь как говорит мне один мой знакомый - И чо?!
Ты еще мнение Упячки как аргумент приведи.

З.Ы. Сообщесто Хабра дало в проект хоть одного программиста? Не тех которые отсюда туда, а тех кто оттуда сюда?

Author:  Mario [ Tue Feb 16, 2010 4:47 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

SVN ревизия 1417.

OpenDialog расширен:
1) Выбор открываемого файла
2) Выбор сохраняемого файла
3) Выбор рабочей директории

Если возражений нет, то начну прикручивать к приложениям вместо Sysxtree.

Author:  Leency [ Tue Feb 16, 2010 6:26 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Mario
Обоими руками "ЗА". Ещё один шаг к нормальной системе.

Author:  Mario [ Tue Feb 16, 2010 6:38 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Пока только к ASM приложениям - для других языков нужно изготавливать обертки, либо реализовывать функциональность аналогичную opendial.mac на самом языке.

Author:  Mario [ Wed Feb 17, 2010 3:00 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Список программ к которым я могу прикрутить работу с OpenDialog:
Kiv
Animage
MidAmp
Kpack
Fasm
Mtdbg < не актуально
Desktop
Icon
Mgb
Hdd_info
Rdsave
Tinypad
Heed
Scrshoot
Rtfread

Подключения Box_lib к самим программам это не потребует -только макрос opendial.mac
Если у кого-нибудь из авторов программ есть возражения - просьба их высказать в теме.

UPD 13/10/2010

Author:  SoUrcerer [ Thu Feb 18, 2010 3:22 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Микроизменения скроллбара на любителя.

Было так:
Attachment:
oldscroll.PNG
oldscroll.PNG [ 565 Bytes | Viewed 2290 times ]

Получилось так:
Attachment:
altscroll.PNG
altscroll.PNG [ 596 Bytes | Viewed 2295 times ]


На мой взгляд, получилось немножко лучше. Кому-то может показаться, что стало хуже.
Суть правок - убрал риски с бегунка по центру, принудительно установил цвет стрелок в 0 (и может быть очень даже зря, ведь возможен случай, что сам бегунок потребуется сделать черным, а цвет стрелок - белым).
Остальные визуальные изменения - от параметров scrollbar'а в приложениях.
Мне кажется, что использовать такие "ядовитоватые" цвета не совсем уместно, опять же - на любителя.

Конкретные параметры скроллбара снизу:
.bckg_col dd 0xeeeeee
.frnt_col dd 0xcecdcf
.line_col dd 0xd4d5d6

По-хорошему надо было сделать так, чтобы цвет кнопочки зависел от цвета линий и "переднего" цвета, но делать его одним цветом с линиями обводки - на мой взгляд не очень симпатично.

Код тут:
Attachment:
scrollbar.7z [3.73 KiB]
Downloaded 70 times

Author:  Mario [ Thu Feb 18, 2010 4:04 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

А все таки - почему не использовать:
Code:
sb_type         equ [edi+12]

?
Для текущей реализации оставить значение 0, для всех других: 1, 2, 3, 4, 5....
Что религия не позволяет? Надо обязательно чтобы несколько программ, которые уже используют ScrollBar, пришлось перекомпилять?

Author:  SoUrcerer [ Thu Feb 18, 2010 4:14 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Точно :) Исправлю...

Насчет OpenDialog - мне кажется, можно более удобно расположить кнопки, меню и поле ввода. Интересуют наброски, или лучше ковыряться самому?

Author:  Mario [ Thu Feb 18, 2010 4:19 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Лучше наброски - моя работа над OpenDialog еще не завершена.

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

Author:  Heavyiron [ Thu Feb 18, 2010 6:48 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Как по мне, так стало лучше, правда я все же обводку у бегунка и кнопок сделал бы не белой, а чуть более темной, чем они сами - чуть более контрастно было бы. Хотя опять же на любителя. А вообще было бы интересно поглядеть на новый вариант в реальных программах, а не в вакууме :)

Author:  SoUrcerer [ Thu Feb 18, 2010 8:31 pm ]
Post subject:  Re: box_lib.obj - библиотека gui компонентов

Все параметры цветов передаются от программы библиотеке. Так что цвета ползунка, кнопок и обводки зависят только от программы. Без изменений в коде программ смотрится довольно странно (видимо, цветовая гамма скина не очень удачная)
Attachment:
pv.JPG
pv.JPG [ 33.75 KiB | Viewed 2242 times ]

Page 7 of 27 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/