Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Oct 16, 2019 2:58 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 162 posts ]  Go to page 1 2 3 4 511 Next
Author Message
PostPosted: Fri Mar 19, 2010 1:43 pm 
Программа является подобием мелкософтовского компонента Microsoft Common Dialog Control или его аналогов в Linux (там их вообще несколько разных присутствует).

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

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

3) Диалог выбора директории.
Attachment:
3.png
3.png [ 5.3 KiB | Viewed 4074 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


Last edited by Mario on Wed Sep 08, 2010 2:50 pm, edited 12 times in total.

Top
   
PostPosted: Fri Mar 19, 2010 8:59 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
я сохранил это сообщение здесь http://wiki.kolibrios.org/OpenDialog


Top
   
PostPosted: Fri Mar 19, 2010 9:18 pm 
Спасибо.
Наверное вот здесь это:
Quote:
OpenDialog - отличный системный файловый менеджер

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


Top
   
PostPosted: Fri May 28, 2010 1:32 pm 
Ревизия 1470. Добавлено использование OpenDialog в KIV.


Top
   
PostPosted: Fri Jun 11, 2010 10:00 am 
Ревизия 1490. Исправлен хитрый баг приводивший к выносу ядра, уже после завершения программы, когда ее даже в памяти уже нет.


Top
   
PostPosted: Sat Jun 12, 2010 4:45 pm 
Ревизия 1493. Добавлено использование OpenDialog в MidAmp.


Top
   
PostPosted: Sat Jun 12, 2010 8:59 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5062
Отлично, так держать. Надеюсь SysXtree уже в ближайшем времени потеряет все замки и канет в лету.

_________________
Через тернии к звездам


Top
   
PostPosted: Sat Jun 12, 2010 10:07 pm 
Ну, я на всякий случай оставляю код для его вызова, который уже присутствовал.


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


Top
   
PostPosted: Thu Jul 01, 2010 10:22 pm 
SVN r. 1510 - прикрутил использование вызова OpenDialog через библиотеку proc_lib.obj, к программе Heed. Также выбросил код вызова Sysxtree. Подчистил еще пару мест - размер программы уменьшился.

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


Top
   
PostPosted: Sat Jul 03, 2010 5:28 pm 
SVN r. 1511 - прикрутил использование вызова OpenDialog через библиотеку proc_lib.obj, к программе KIV.


Top
   
PostPosted: Sat Jul 03, 2010 6:31 pm 
SVN r. 1512 - прикрутил использование вызова OpenDialog через библиотеку proc_lib.obj, к программе Rtfread. Также убрал макрос вызова Sysxtree. Размер программы уменьшился.


Top
   
PostPosted: Sun Jul 11, 2010 8:53 pm 
Offline
User avatar

Joined: Wed Jan 27, 2010 10:59 am
Posts: 269
Хотелось бы, чтобы при запуске окно OpenDialog'a было выровнено по центру, так имхо юзабельней. Тем более, что это очень легко реализовать ;)

_________________
ушёл...


Top
   
PostPosted: Tue Jul 13, 2010 2:18 pm 
Я посмотрел на реакцию диалогов в Виндовс и Линукс. Разные программы открывают по разному.

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

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

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


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


Last edited by Mario on Tue Aug 24, 2010 1:42 pm, edited 2 times in total.

Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 162 posts ]  Go to page 1 2 3 4 511 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 0 guests


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