I had an interesting (to me, anyway) situation: I have a program which, if a user presses a button, opens a new window containing various text entries, textviews, and radiobuttons. The new window also contained a checkbutton. The state of the radiobuttons and checkbutton were stored in flags (integers). Whenever the new window was opened, the states of the flags associated with the radio and checkbuttons were saved in separate temporary variables, then the radio and checkbuttons were set in the GUI to active or not, based on the flag values, and then the flag values restored using the saved temporary values. The temporary values were necessary because by setting the states of radio and checkbuttons as active, or not, that triggers on_radiobutton_toggled or on_checkbutton_toggled callbacks which would change the flag values.
This system worked fine until I took this one step further. In this case, I had a checkbutton in the new window which, not only triggered a callback which changed the flag value, but also did some calculations and updated other values and stuff in the main window as well as stored data. In this case, upon opening the new window, saving current flag value, setting checkbutton state to active or not on the GUI, and then restoring flag value, is inadequate, because the callback was doing more than just changing a flag value. My solution was to not use a stateful button in the new window (radiobuttons, checkbuttons being stateful). So instead of a checkbutton, I put a plain button, and beside it, a textview showing the current state of the flag. Now, when opening the new window, the flag's current value is represented in the textview and I don't need to set any state for the button, since it's not stateful. Thus, no callback is triggered. Works great and it isn't ugly, but is this the best solution? Dave _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list