Boggess Rod wrote:
>> In cases like this, you probably have to hack around the problem/bug.
>> IE solve your use case in a different way.
> 
> Already have.  Instead of using the response from gtk_dialog_run, I
> gtk_widget_show_all the dialog window and return TRUE from the
> change-value callback of hscale.  Then I decide on the action within the
> clicked callback of the Ok and Cancel buttons.  It means manually adding
> the buttons, but that's not a big deal.
> 
> Thanks.

The code in bug.c runs fine for me.  OK allows the change, Cancel
prevents the change.  I'm on Fedora 11 with GTK 2.18 I think.

That said, if this example is in anyway how your program expects to
work, I highly recommend you take a different approach to the UI.  It's
a very unnatural way of working with a GUI element.  Personally if I had
to click OK or Cancel after each single movement of a slider I'd be
driven crazy (you mentioned multiple sliders too!).  If I needed to
change the value from 1 to 20, for example, I have to click OK 20 times!
   I didn't learn much in my UI class, but I'm pretty sure there has to
be a better way.

Now I don't know what you are trying to accomplish, but if I were
writing a program that needed to verify that a user really wanted to
change a value, I'd do it *after* the value had been changed.  On other
words, I'd let the user change the sliders to his hearts content and
then, depending on the scenario, either have a "revert" button that
undid everything and canceled the operation, or have an "apply" button
that would make the changes active (either for the slider itself or for
the dialog box as a whole).  If necessary I'd have the UI highlight
which UI elements had been changed (in case the user accidentally
changed a slider or something).

In other words, there has to be a better way!
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to