Page 7 of 29

Re: box_lib.obj - библиотека gui компонентов

Posted: Wed Feb 10, 2010 12:43 pm
by Mario
Насчет скинованного скроллбара я думал еще в самом начале, по этой причине в структуре данных оставлено поле:

Code: Select all

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]
}
По умолчанию оно нулевое. Если использовать другое значение, то можно добавлять новые поля вслед за существующими.
DynamicButton отрисовывает png
Не совсем так - он отрисовывает область с RAW при помощи функции 65. А уж из чего этот RAW сделан не суть есть важно.

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

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

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

Re: box_lib.obj - библиотека gui компонентов

Posted: Wed Feb 10, 2010 5:31 pm
by Heavyiron
Скролбара типа изображенных выше наверняка можно добиться и в текущей реализации - просто немного смягчить цвета и возможно вообще убрать 3 риски в центре - смысловой нагрузки они почти не несут.

Re: box_lib.obj - библиотека gui компонентов

Posted: Wed Feb 10, 2010 5:49 pm
by Mario
Heavyiron wrote:и возможно вообще убрать 3 риски в центре - смысловой нагрузки они почти не несут.
Как говорится "Не знаю - мне нравится". Вкус и цвет...

Re: box_lib.obj - библиотека gui компонентов

Posted: Thu Feb 11, 2010 12:53 am
by Heavyiron
Ну да, как сказали на хабре "скрол у них как в вин 3.11"

Re: box_lib.obj - библиотека gui компонентов

Posted: Thu Feb 11, 2010 1:02 am
by Mario
Знаешь как говорит мне один мой знакомый - И чо?!
Ты еще мнение Упячки как аргумент приведи.

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

Re: box_lib.obj - библиотека gui компонентов

Posted: Tue Feb 16, 2010 4:47 pm
by Mario
SVN ревизия 1417.

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

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

Re: box_lib.obj - библиотека gui компонентов

Posted: Tue Feb 16, 2010 6:26 pm
by Leency
Mario
Обоими руками "ЗА". Ещё один шаг к нормальной системе.

Re: box_lib.obj - библиотека gui компонентов

Posted: Tue Feb 16, 2010 6:38 pm
by Mario
Пока только к ASM приложениям - для других языков нужно изготавливать обертки, либо реализовывать функциональность аналогичную opendial.mac на самом языке.

Re: box_lib.obj - библиотека gui компонентов

Posted: Wed Feb 17, 2010 3:00 pm
by Mario
Список программ к которым я могу прикрутить работу с 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

Re: box_lib.obj - библиотека gui компонентов

Posted: Thu Feb 18, 2010 3:22 pm
by SoUrcerer
Микроизменения скроллбара на любителя.

Было так:
oldscroll.PNG
oldscroll.PNG (565 Bytes)
Viewed 5142 times
Получилось так:
altscroll.PNG
altscroll.PNG (596 Bytes)
Viewed 5147 times
На мой взгляд, получилось немножко лучше. Кому-то может показаться, что стало хуже.
Суть правок - убрал риски с бегунка по центру, принудительно установил цвет стрелок в 0 (и может быть очень даже зря, ведь возможен случай, что сам бегунок потребуется сделать черным, а цвет стрелок - белым).
Остальные визуальные изменения - от параметров scrollbar'а в приложениях.
Мне кажется, что использовать такие "ядовитоватые" цвета не совсем уместно, опять же - на любителя.

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

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

Код тут:
scrollbar.7z (3.73 KiB)
Downloaded 181 times

Re: box_lib.obj - библиотека gui компонентов

Posted: Thu Feb 18, 2010 4:04 pm
by Mario
А все таки - почему не использовать:

Code: Select all

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

Re: box_lib.obj - библиотека gui компонентов

Posted: Thu Feb 18, 2010 4:14 pm
by SoUrcerer
Точно :) Исправлю...

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

Re: box_lib.obj - библиотека gui компонентов

Posted: Thu Feb 18, 2010 4:19 pm
by Mario
Лучше наброски - моя работа над OpenDialog еще не завершена.

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

Re: box_lib.obj - библиотека gui компонентов

Posted: Thu Feb 18, 2010 6:48 pm
by Heavyiron
Как по мне, так стало лучше, правда я все же обводку у бегунка и кнопок сделал бы не белой, а чуть более темной, чем они сами - чуть более контрастно было бы. Хотя опять же на любителя. А вообще было бы интересно поглядеть на новый вариант в реальных программах, а не в вакууме :)

Re: box_lib.obj - библиотека gui компонентов

Posted: Thu Feb 18, 2010 8:31 pm
by SoUrcerer
Все параметры цветов передаются от программы библиотеке. Так что цвета ползунка, кнопок и обводки зависят только от программы. Без изменений в коде программ смотрится довольно странно (видимо, цветовая гамма скина не очень удачная)
pv.JPG
pv.JPG (33.75 KiB)
Viewed 5094 times