Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт июл 21, 2017 9:47 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 160 сообщений ]  На страницу 1 2 3 4 511 След.
Автор Сообщение
СообщениеДобавлено: Пт мар 19, 2010 1:43 pm 
Программа является подобием мелкософтовского компонента Microsoft Common Dialog Control или его аналогов в Linux (там их вообще несколько разных присутствует).

Программа имеет 3 режима работы:
1) Диалог выбора для открытия файла.
Вложение:
1.png
1.png [ 6.84 КБ | 1832 просмотра ]

2) Диалог выбора для сохранения файла.
Вложение:
2.png
2.png [ 6.82 КБ | 1831 просмотр ]

3) Диалог выбора директории.
Вложение:
3.png
3.png [ 5.3 КБ | 1832 просмотра ]


Программа сама физически не открывает на чтение или запись - она предназначена для взаимодействия с пользователем. Результат работы - готовый, полный путь передаваемый через "расшаренную" именованную область памяти к программе использующей OpenDialog. Например:
Цитата:
/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


Последний раз редактировалось Mario Ср сен 08, 2010 2:50 pm, всего редактировалось 12 раз.

Вернуться к началу
   
СообщениеДобавлено: Пт мар 19, 2010 8:59 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 740
я сохранил это сообщение здесь http://wiki.kolibrios.org/OpenDialog


Вернуться к началу
СообщениеДобавлено: Пт мар 19, 2010 9:18 pm 
Спасибо.
Наверное вот здесь это:
Цитата:
OpenDialog - отличный системный файловый менеджер

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


Вернуться к началу
   
СообщениеДобавлено: Пт май 28, 2010 1:32 pm 
Ревизия 1470. Добавлено использование OpenDialog в KIV.


Вернуться к началу
   
СообщениеДобавлено: Пт июн 11, 2010 10:00 am 
Ревизия 1490. Исправлен хитрый баг приводивший к выносу ядра, уже после завершения программы, когда ее даже в памяти уже нет.


Вернуться к началу
   
СообщениеДобавлено: Сб июн 12, 2010 4:45 pm 
Ревизия 1493. Добавлено использование OpenDialog в MidAmp.


Вернуться к началу
   
СообщениеДобавлено: Сб июн 12, 2010 8:59 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4092
Отлично, так держать. Надеюсь SysXtree уже в ближайшем времени потеряет все замки и канет в лету.

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


Вернуться к началу
СообщениеДобавлено: Сб июн 12, 2010 10:07 pm 
Ну, я на всякий случай оставляю код для его вызова, который уже присутствовал.


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


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

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


Вернуться к началу
   
СообщениеДобавлено: Сб июл 03, 2010 5:28 pm 
SVN r. 1511 - прикрутил использование вызова OpenDialog через библиотеку proc_lib.obj, к программе KIV.


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


Вернуться к началу
   
СообщениеДобавлено: Вс июл 11, 2010 8:53 pm 
Не в сети
Аватара пользователя

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

_________________
ушёл...


Вернуться к началу
СообщениеДобавлено: Вт июл 13, 2010 2:18 pm 
Я посмотрел на реакцию диалогов в Виндовс и Линукс. Разные программы открывают по разному.

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

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

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


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


Последний раз редактировалось Mario Вт авг 24, 2010 1:42 pm, всего редактировалось 2 раза.

Вернуться к началу
   
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 160 сообщений ]  На страницу 1 2 3 4 511 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB