Page 4 of 29

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

Posted: Wed Sep 09, 2009 6:37 pm
by vkos
[offtop]
>С 19 августа 2009 - Вантус на домашнем ПК более не используется... :mrgreen:
Поздравляю. А KDE зря старый.
[/offtop]

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

Posted: Wed Sep 09, 2009 6:50 pm
by Mario
vkos wrote:А KDE зря старый.
Leency, vkos и все кто еще хочет продолжить оффтоп - просьба здесь не продолжать. Если есть вопрос по теме пишите, все остальное в личку.

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

Posted: Thu Sep 10, 2009 6:22 pm
by Asper
Mario
Хорошая работа. У FileBrowser'а достаточно большие иконки, что не может не радовать. Рекомендую оставлять слева от иконки немного свободного места (белого пространства).

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

Posted: Thu Sep 10, 2009 7:24 pm
by Leency
Сделайте, пожалуйста, пример использования скролла и меню на Си.

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

Posted: Thu Sep 10, 2009 7:49 pm
by Mario
Leency
Я не достаточно знаю синтаксис Си чтобы писать переходные части, "обертки". Может кто и напишет.
В принципе оно должно быть аналогично используемым для Editbox, также передается просто указатель на структуру блока данных.

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

Posted: Fri Sep 11, 2009 11:27 am
by <Lrz>
Leency wrote:Сделайте, пожалуйста, пример использования скролла и меню на Си.
Я понимаю нужны обертки для С-- ? Или может Leency переведет свои проекты на MSVC++, или GCC ?
Я могу постараться и написать обертки для нужного компилятора.

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

Posted: Fri Sep 11, 2009 1:50 pm
by Leency
Спасибо что откликнулся. Хотя бы для MSVC.

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

Posted: Sat Sep 19, 2009 11:54 pm
by Mario
Моя работа над компонентом FileBrowser близка к завершению, однако хотел поинтересоваться - может кому нужно отображение компонента без подгрузки файла иконок? Т.е. все вместо иконок могут отрисовываться три рисунка: папка, файл, кнопка выхода. Навроде как у Опера под Linux:
opera10_open_dialog_small.png
opera10_open_dialog_small.png (30.64 KiB)
Viewed 8384 times
Конечно нарисованные с помощью функций Kolibri кнопки будут не так красивы, как натуральные иконки.
Из плюсов такого подварианта:
1) Не нужны иконки
2) Экономия памяти
3) Теоретически быстрее отрисовка, хотя не сильно.
4) Не нужно морочиться с дополнительным кодом.

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

Ну, и на закуску текущий вид компонента. Это не диалоговое окно, окно тоже будет как доделаю компонент.
boxlib_fb_control_small.png
boxlib_fb_control_small.png (14.06 KiB)
Viewed 8387 times

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

Posted: Sun Sep 20, 2009 8:11 am
by Mario
PhoSor
Как мы заботимся о судьбе ближнего своего! (смайлика валяющегося на спине к сожалению на форуме нету)
Приведи для начала, хоть одну ссылку на такой патент или авторское право зарегистрированное в Российской Федерации.

Как аргументы:
1) Иконки идут под лцензией LGPL2.
2) Мой код для BoxLib идет под лицензией BSD, которая вполне себе совместима с LGPL2.
3) Если даже возникнут вопросы - кто сказал, что я буду выкладывать код именно с этими иконками

З.Ы. А если я, не дай Бог, возьму и выложу скриншот с иконками от Виндовс 7 - меня наверное вообще будут пытать перед смертью. О Господи страшно то как! А кстати автор иконок нарушил священное право Мелкософта на их флаг! Нет он сделал хуже - он выложил изображение похожее на их флаг под лицензией LGPL2!!!!! Святотатство!!!!
И о БОЖЕ они убили Кенни один из логотипов подозрительно похож по оформлению на флаг одной нации, повернутый на 45 градусов... о майн гат! нас засудят!!! ааааа!!!! :mrgreen:

З.З.Ы. Чето уважемый не похож ты на заинтересованного программиста, скорее на тролля.

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

Posted: Sun Sep 20, 2009 8:43 am
by s1n
фиг с ними иконками... можно прикрутить потом...
а за работу спасибо...

з.ы. можно примерный эскиз как примерно будет выглядить окончательный вариант FileBrowser???

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

Posted: Sun Sep 20, 2009 10:11 am
by Mario
s1n
FileBrowser это компонент, а не законченная вещь навроде OpenDialog. На основе его можно сделать OpenDialog, SaveDialog, применить для построения файлового менеджера. Компонент обрабатывает события перерисовки, мышки и клавиатуры.
В текущем виде это прямоугольник (как на скришоте) со списком файлов и иконками. Практически все размеры регулируются, кроме разве размеров шрифта, но когда будет закончена Font_Lib от <Lrz>, со временем прикручу, так что шрифты тоже будут меняться.
Пока вид только такой как на скришоте (один столбец файлов), со временем можно сделать отображение в несколько столбцов (как в стандартных Виндовс и Линукс диалогах открытия и сохранения). Много опционально и многое настравиваемо:
Вот текущий блок данных:

Code: Select all

macro	use_file_browser
{
file_browser:
fb_type				equ dword [edi]		;dword
fb_size_x			equ [edi+4]		;word
fb_start_x			equ [edi+6]		;word
fb_size_y			equ [edi+8]		;word
fb_start_y			equ [edi+10]		;word
fb_icon_size_y			equ word [edi+12]	;word
fb_icon_size_x			equ word [edi+14]	;word
fb_line_size_x			equ word [edi+16]	;word
fb_line_size_y			equ word [edi+18]	;word
fb_type_size_x			equ word [edi+20]	;word
fb_size_size_x			equ word [edi+22]	;word
fb_date_size_x			equ word [edi+24]	;word
fb_attributes_size_x		equ word [edi+26]	;word
fb_icon_assoc_area		equ dword [edi+28]	;dword
fb_icon_raw_area		equ dword [edi+32]	;dword
fb_resolution_raw		equ dword [edi+36]	;dword
fb_palette_raw			equ dword [edi+40]	;dword
fb_directory_path_area		equ dword [edi+44]	;dword
fb_file_name_area		equ dword [edi+48]	;dword
fb_select_flag			equ dword [edi+52]	;dword
fb_background_color		equ dword [edi+56]	;dword
fb_select_color			equ dword [edi+60]	;dword
fb_seclect_text_color		equ dword [edi+64]	;dword
fb_text_color			equ dword [edi+68]	;dword
fb_reduct_text_color		equ dword [edi+72]	;dword
fb_marked_text_color		equ dword [edi+76]	;dword
fb_max_panel_line		equ dword [edi+80]	;dword
fb_select_panel_counter		equ dword [edi+84]	;dword
fb_folder_block			equ dword [edi+88]	;dword
fb_start_draw_line		equ dword [edi+92]	;dword
fb_start_draw_cursor_line	equ word [edi+96]	;word
fb_folder_data			equ dword [edi+98]	;dword
fb_temp_counter			equ dword [edi+102]	;dword
fb_file_name_length		equ dword [edi+106]	;dword
fb_marked_file			equ dword [edi+110]	;dword
fb_extension_size		equ dword [edi+114]	;dword
fb_extension_start		equ dword [edi+118]	;dword
fb_type_table			equ dword [edi+122]	;dword
fb_ini_file_start		equ dword [edi+126]	;dword
fb_ini_file_end			equ dword [edi+130]	;dword
fb_draw_scroll_bar		equ dword [edi+134]	;dword
fb_font_size			equ word [edi+138]	;dword
fb_mouse_keys			equ dword [edi+140]	;dword
fb_mouse_keys_old		equ dword [edi+144]	;dword
fb_mouse_pos			equ dword [edi+148]	;dword
fb_mouse_keys_delta		equ dword [edi+152]	;dword
fb_mouse_key_delay		equ dword [edi+156]	;dword
fb_mouse_keys_tick		equ dword [edi+160]	;dword
fb_start_draw_cursor_line_2	equ word [edi+164]	;dword
fb_all_redraw			equ dword [edi+166]	;dword
fb_selected_BDVK_adress		equ dword [edi+170]	;dword
fb_key_action			equ dword [edi+174]	;dword
;---------------------------------------------------------------------
и т.д.

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

Posted: Sun Sep 20, 2009 10:51 am
by Gluk
В опен и сейв диалогах может пригодиться такая функциональность файл-браузера, как отображение определенного списка расширений, т.е файлов только с этими расширениями. Например графическому просмотрщику и редактору совершенно неинтересны, например, исполнимые файлы. Также этот список может меняться во время работы компонента - во многих вендовых прогах есть отдельный селект со списком поддерживаемых форматов (на самом деле это очень удобно в случаях когда прога поддерживает кучу форматов, и куча же файлов разных форматов в папке лежит. но это уже оффтоп наверное).

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

Posted: Sun Sep 20, 2009 11:28 am
by s1n
Mario
понятно все.. а скроллинг есть??
з.ы. фильтр по имени и правда очень полезная штука..

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

Posted: Sun Sep 20, 2009 11:57 am
by Gluk
s1n: "а скроллинг есть??"
- судя по строчке
"fb_draw_scroll_bar equ dword [edi+134] ;dword"
либо есть, либо планируется

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

Posted: Sun Sep 20, 2009 12:35 pm
by Mario
Мде... чувствуется мало кто, кроме меня и Алексея, понял идеологию BoxLib.

Gluk
Задача FileBrowser как компонента - отображать информацию полученную в формате функции 70.1, с какого по какой слот, каким шрифтом, какими размерами, а уж что в ней будет не его забота - это забота дополнительного кода, подать то что нужно. Это задача макроса, через который будет реализован OpenDialog, или просто файла подключаемого через include 'xxxxx'. Также как подготовить область с иконками, загружать выбираемые папки через функцию 70.1, выделять и освобождать память, запихивать в блок данных нужные параметры.
Однако согласен функциональность полезная и реализовать предстоит еще дохрена и больше. ;-)

s1n
а скроллинг есть??
Есть возможность отобразить с определенного слота БДВК по определенный слот БДВК, структуру данных полученную в формате функции 70.1, а выводить скроллбар или не выводить решает дополнительный код который будет связывать между собой компонеты FileBrowser и ScrollBar и который находится за пределами библиотеки BoxLib.

З.Ы. Мы похоже говорим о разных вещах немножко: я о про "белки", "жиры", "углеводы", а вы мне - "а вот курятина питательней салата". Кто бы спорил, но курицу то сначала надо: вырастить, зарезать, ощипать, разделать, термически обработать и приправить вкусовыми добавками вроде соли и специй. :mrgreen: