Board.KolibriOS.org

Official KolibriOS board
It is currently Thu Dec 05, 2019 7:50 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 55 posts ]  Go to page Previous 1 2 3 4
Author Message
 Post subject: Re: Message Box
PostPosted: Thu Dec 17, 2009 4:25 pm 
Offline

Joined: Wed Mar 26, 2008 12:44 pm
Posts: 225
На мой взгляд, внутри одного процесса использовать IPC совершенно ни к чему, достаточно переменной, флага или какого-либа объекта синхронизации (event), который переодически проверяется в главном потоке. Кроме того, в этом же цикле можно при получении фокуса передавать его активному модальному окну.


Top
   
 Post subject: Re: Message Box
PostPosted: Thu Dec 17, 2009 5:27 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
tsdima, этого было бы достаточно, если бы существовала функция, которая просыпается при сообщении от окна или при изменении какой-нибудь переменной, флага или наступлении события. Но при существующем API единственный подходящий способ пробуждения другого потока - послать сообщение по IPC.

_________________
Сделаем мир лучше!


Top
   
 Post subject: Re: Message Box
PostPosted: Thu Dec 17, 2009 10:29 pm 
Offline

Joined: Wed Mar 26, 2008 12:44 pm
Posts: 225
Есть же ожидание события с таймаутом, сам будет просыпаться время от времени.


Top
   
 Post subject: Re: Message Box
PostPosted: Fri Dec 18, 2009 10:05 am 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Вроде получилось с вечным циклом и возвращением результата через первый байт структуры. Просто вначале нужно инициализировать его как какое-либо значение, превышающее число кнопок (подсказал IgorA).


Top
   
 Post subject: Re: Message Box
PostPosted: Fri Dec 18, 2009 6:26 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
tsdima, я считаю такое решение некрасивым, поскольку тогда главный поток будет расходовать лишние ресурсы, что совершенно ни к чему. Я согласна с тем, что работать такое решение будет и что ресурсов нужно мало, но при использовании IPC для пробуждения дополнительных ресурсов во время ожидания не нужно совсем.

_________________
Сделаем мир лучше!


Top
   
 Post subject: Re: Message Box
PostPosted: Tue Dec 22, 2009 4:38 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Пока не дописал (не все типы диалогов поддерживаются), выкладываю предварительный вариант.


Attachments:
msgbox.zip [8.43 KiB]
Downloaded 193 times
Top
   
 Post subject: Re: Message Box
PostPosted: Fri Dec 06, 2013 2:57 am 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
SVN r4330: Исходники демки use_mb залиты на SVN. Добавлен перевод всех текстов на английский язык. Бинарник удалён из автосборки, теперь программа собирается из исходников (отдельно для каждого языка). Если у автора есть более новая версия демки, чем выложенная в этой теме в 2009 году, просьба перезалить новый исходник.

SVN r4331: Исходники библиотеки msgbox.obj залиты на SVN. Бинарники удалены с SVN (и из автосборки в папке /data, и из папки t_edit), теперь библиотека собирается из исходников. Если у автора есть более новая версия библиотеки, чем выложенная в этой теме в 2009 году, просьба перезалить новый исходник.


Top
   
 Post subject: Re: Message Box
PostPosted: Fri Dec 06, 2013 11:34 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 812
yogev_ezra wrote:
Если у автора есть более новая версия библиотеки, чем выложенная в этой теме в 2009 году, просьба перезалить новый исходник.

К сожалению у автора ничего более нового нет.
Там есть одна функция, которая работает не так как изначально хотелось. Думаю ее нужно или доделать если получится или вообще удалить из библиотеки. Это функция mb_reinit, по первоначальной задумке при ее вызове окно сообщения должно менять свой текст. Но вид остается прежним до того момента, пока пользователь сам не подвигает окно. Если в системе есть возможность вызвать принудительную перерисовку дочернего потока, то проблема будет решена.


Top
   
 Post subject: Re: Message Box
PostPosted: Sat Dec 07, 2013 1:44 am 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
IgorA wrote:
yogev_ezra wrote:
Если у автора есть более новая версия библиотеки, чем выложенная в этой теме в 2009 году, просьба перезалить новый исходник.
К сожалению у автора ничего более нового нет.
Так это же как раз к счастью, а не к сожалению. К сожалению было бы, если бы автор выложил на форуме исходники 2009 года, а в автосборку положил бинарник, собранный из исходников 2012 года, где исправлено много багов и которые он потерял.


Top
   
 Post subject: Re: Message Box
PostPosted: Sat Jun 28, 2014 12:49 am 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 812
rev 4988
Добавил смену фокуса выбранной кнопки с помощью [Tab] (фокус движется вправо).
Раньше изменялось только мышью и курсорами [Влево] и [Вправо].


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

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 4 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