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

OpenDialog - диалог выбора файлов и директории
http://board.kolibrios.org/viewtopic.php?f=44&t=1414
Page 1 of 11

Author:  Mario [ Fri Mar 19, 2010 1:43 pm ]
Post subject:  OpenDialog - диалог выбора файлов и директории

Программа является подобием мелкософтовского компонента Microsoft Common Dialog Control или его аналогов в Linux (там их вообще несколько разных присутствует).

Программа имеет 3 режима работы:
1) Диалог выбора для открытия файла.
Attachment:
1.png
1.png [ 6.84 KiB | Viewed 3742 times ]

2) Диалог выбора для сохранения файла.
Attachment:
2.png
2.png [ 6.82 KiB | Viewed 3741 times ]

3) Диалог выбора директории.
Attachment:
3.png
3.png [ 5.3 KiB | Viewed 3742 times ]


Программа сама физически не открывает на чтение или запись - она предназначена для взаимодействия с пользователем. Результат работы - готовый, полный путь передаваемый через "расшаренную" именованную область памяти к программе использующей OpenDialog. Например:
Quote:
/hd0/1/dir1/dir2/example.tmp
/rd/1/dir1/file.bin

Для прикручивания к программам, написанным на ассемблере, используется макрос opendial.mac либо подобная по функциональности процедура из библиотеки Proc_Lib.obj. В последнем случае возможно использование OpenDialog для ЯВУ (например, Си).

Исходники самой программы и макросы залиты на SVN в директории с BoxLib. Примером использования является ctrldemo.asm (демо некоторых компонентов BoxLib).

UPD В настоящее время OpenDialog используют 19 программ:
zSea
Heed
RtfRead
CtrlDemo
KIV
MidAmp
Planet viewer
T_editor
RDsave
Screenshooter
Desktop.
FASM - flat assembler
Kolibri Graphics Benchmark (MGB)
HDD информер
TinyPad
Animage
Kpack
PCIDEV
Info3ds

Author:  IgorA [ Fri Mar 19, 2010 8:59 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

я сохранил это сообщение здесь http://wiki.kolibrios.org/OpenDialog

Author:  Mario [ Fri Mar 19, 2010 9:18 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

Спасибо.
Наверное вот здесь это:
Quote:
OpenDialog - отличный системный файловый менеджер

Не совсем корректно сформулировано. Не менеджер и эпитет "отличный" не совсем понятно к чему относится.
Я не понял как поправить (нет доступа не редактирование), если кто может просьба заменить на "OpenDialog - диалог выбора файлов и директории" в Wiki.

Author:  Mario [ Fri May 28, 2010 1:32 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

Ревизия 1470. Добавлено использование OpenDialog в KIV.

Author:  Mario [ Fri Jun 11, 2010 10:00 am ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

Ревизия 1490. Исправлен хитрый баг приводивший к выносу ядра, уже после завершения программы, когда ее даже в памяти уже нет.

Author:  Mario [ Sat Jun 12, 2010 4:45 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

Ревизия 1493. Добавлено использование OpenDialog в MidAmp.

Author:  Leency [ Sat Jun 12, 2010 8:59 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

Отлично, так держать. Надеюсь SysXtree уже в ближайшем времени потеряет все замки и канет в лету.

Author:  Mario [ Sat Jun 12, 2010 10:07 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

Ну, я на всякий случай оставляю код для его вызова, который уже присутствовал.

Author:  Mario [ Fri Jun 18, 2010 12:18 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

Проконсультировавшись с Diamond'ом я решил код макроса opendial.mac, служащего для вызова и работы с OpenDialog, оформить в библиотеку. Для приложений написанных на ассемблере это не настолько существенно, ибо размер макроса невелик, но зато такой подход позволит вызвать OpenDialog приложениям написанным на ЯВУ. В частности HTMLv - я думаю будет полезно подключение OpenDialog'а. Формат вызова будет подобен вызову функций Box_Lib.

Author:  Mario [ Thu Jul 01, 2010 10:22 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

SVN r. 1510 - прикрутил использование вызова OpenDialog через библиотеку proc_lib.obj, к программе Heed. Также выбросил код вызова Sysxtree. Подчистил еще пару мест - размер программы уменьшился.

Да кстати информация для программистов ЯВУ (языков высокого уровня) - через вызовы proc_lib.obj, теперь можно вызывать OpenDialog из программ написанных на другом языке, а не только на ассемблере. Все вызовы оформляются подобно вызовам Box_Lib. Однако сам я прикручивать к ним не имею возможности, так как нет инструментария, опыта компиляции ЯВУ приложений и самое главное времени, но отвечу на все вопросы возникающие с применением.

Author:  Mario [ Sat Jul 03, 2010 5:28 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

SVN r. 1511 - прикрутил использование вызова OpenDialog через библиотеку proc_lib.obj, к программе KIV.

Author:  Mario [ Sat Jul 03, 2010 6:31 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

SVN r. 1512 - прикрутил использование вызова OpenDialog через библиотеку proc_lib.obj, к программе Rtfread. Также убрал макрос вызова Sysxtree. Размер программы уменьшился.

Author:  Nasarus [ Sun Jul 11, 2010 8:53 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

Хотелось бы, чтобы при запуске окно OpenDialog'a было выровнено по центру, так имхо юзабельней. Тем более, что это очень легко реализовать ;)

Author:  Mario [ Tue Jul 13, 2010 2:18 pm ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

Я посмотрел на реакцию диалогов в Виндовс и Линукс. Разные программы открывают по разному.

Мне кажется, что лучше если OpenDialog будет центрироваться относительно текущего родительского окна. Конечно это потребует наличия двух dword (X+Xsize, Y+Ysize) в структуре блока данных передаваемых для макроса opendial.mac (ну и кода proc_lib.obj соответственно) и одного dword (X,Y центр родительского приложения) в структуре расшаренной памяти.

Либо 4 dword в структуре и 2 dword в расшаренной памяти и можно будет сохранять позицию и размер OpenDialog, в текущем сеансе для текущего приложения.

Вот как-то так.

Author:  Mario [ Tue Aug 24, 2010 11:45 am ]
Post subject:  Re: OpenDialog - диалог выбора файлов и директории

SVN r. 1581 - сохранение размеров OpenDialog и центрирование его относительно текущего окна. Также доработана библиотека proc_lib.obj для поддержки этой фичи. Пока поддержано только для приложения Heed. Остальные доработаю чуть погодя - там небольшая доработка, всего пара dword в структуре блока данных OpenDialog добавляется.

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