MATLAB Answers

Waitbar always on top and "bong" sound

5 views (last 30 days)
MRR
MRR on 19 Nov 2012
Answered: Jose Caballero on 1 Jul 2016
Hello,
I have a GUI and I do an iterative (loop) computation. I have used the waitbar command. To hold the waitbar always on top I use the modal setup, i.e.:
h = waitbar(0,'Please wait...','WindowStyle', 'modal');
This is so far the only way I have found to hold the waitbar on top. However, I hear several "bong" noisy sounds while the computation is being carried out.
Here: http://www.mathworks.com/matlabcentral/newsreader/view_thread/288932 I read "The bong will be given each time you move the cursor outside of the modal window. It is a normal part of defining a window to be modal."
Is there any way to have a waitbar on top without such a "bong" sounds?
Best,
-M
  1 Comment
Daniel Shub
Daniel Shub on 20 Nov 2012
Does this have to be OS independent? Is using a timer with a refresh rate of 10 Hz "always" enough?

Sign in to comment.

Answers (3)

Jan
Jan on 19 Nov 2012
Do I understand correctly: The sound is not triggered by the code itself, but by moving the cursor out of the modal dialog? (Which operating system produces this behaviour?) If so, what about leaving the pointer inside the dialog, because you cannot click to anything outside at all?
As fas as I know under Windows the warning sounds appear only, if you try to click on external objects outside the modal dialog, and this is the wanted behavior to remember the user, why the computer does not react to these clicks.
You can open the waitbar without the modal-flag and use another tool to keep the window on top - searching for these terms in the FEX will be helpful.

MRR
MRR on 20 Nov 2012
Hello Jan,
Thank you for your answer. The sounds are triggered independently if I move or not the cursor, inside or outside the modal dialog. And those sounds are (I think) related with the operations I am carrying out in the following code:
h = waitbar(0,'Please wait...','WindowStyle', 'modal', 'title', 'Simulating');
averagedErrorParam = [];
for i = 1:NumberOfIterations
errorParam = Simulate_Callback(hObject, eventdata, handles);
averagedErrorParam = [averagedErrorParam; errorParam];
waitbar(i/NumberOfIterations, h);
end
close(h);
"Simulate_Callback" performs some plots and cleaning ( such as cla(handles.axes1) ). I think each time im plotting the sounds are being triggered.
Best,
-M
  1 Comment
Jan
Jan on 20 Nov 2012
I do not see any reasons for beeps in the posted code. You can search the code for beep() commands.

Sign in to comment.


Jose Caballero
Jose Caballero on 1 Jul 2016
Hi,
Same behavior here, no beep() calls in my code. I get beeps even if the mouse cursor is always within the modal window.
Jose

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!