|Think about Loose Coupling|
Gtk2-Perl: Waiting for particular eventby Bloehdian (Initiate)
|on Mar 23, 2013 at 17:49 UTC||Need Help??|
Bloehdian has asked for the
wisdom of the Perl Monks concerning the following question:
I am not quite sure whether the solution to the problem described below which I intend to implement is, firstly, feasible and, secondly, could be done in a less cumbersome way, potentially using "built-in" features of Gtk.
I created a GUI which, when the user wants to save his work, presents the user a summary in a notebook page which has to be accepted or rejected ("Ok" and "Cancel" button at the bottom of the page) by the user prior to the actual saving . Most of the GUI is deactivated at this point, but a few buttons and the notebook page with the results to be saved stay active, i.e., a part of the GUI stays responsive while waiting for the user to press one of the two buttons (it could be necessary for the user to switch to the other notebook page prior to proceed with saving; if any other button is pressed apart from the both mentioned the user will be asked to only press "Ok" or "Cancel" since this is the only way to proceed with the application).
On the code level this means that the application should wait within the _save_work() subroutine for a 'button-press' event and, when it was passed to either the "Ok"-button or the "Cancel"-button, the program should execute the necessary actions and leave the loop. If any other event will occur the application should stay in that loop to force the user to press one of the buttons.
The code fragments I have in mind look as follows (for the sake of simplicity I present it only for the "Ok"-button, "Cancel"-button should be analogous):
To me, this approach seems a little bit cumbersome (and, consequently, not very readable)
Any suggestions for a more straightforward solution to the problem?