Re: how to lock two sliders or spin buttons
- From: "Amadeus W. M." <amadeus84 cablespeed com>
- To: gtkmm-list gnome org
- Subject: Re: how to lock two sliders or spin buttons
- Date: Fri, 23 Dec 2005 13:19:49 -0500
On Fri, 23 Dec 2005 10:22:03 +0100, Matthias Kestenholz wrote:
> Hi Amadeus,
>
> On Fri, 2005-12-23 at 00:14 -0500, Amadeus W. M. wrote:
>> I want to mimic the behavior of the knobs in volume control applications.
>> Usually there is a knob for the left speaker and another for the right
>> one, and a lock check button. If the lock is on, sliding one of the knobs
>> moves the other one simultaneously.
>>
>> I have two spin buttons rather than knobs, DxSpin and DySpin, and
>> callbacks on_DxSpin_changed() and on_DySpin_changed(), connected each to
>> the corresponding changed signal.
>>
>> >From within either callback, I read the value and set the other spin
>> button to the exact same value:
>>
>> on_DxSpin_changed()
>> {
>> if(Lock->get_active())
>> DySpin->set_value(DxSpin->get_value());
>> }
>>
>> and similarly for DySpin. This naive approach produces an infinite loop,
>> obviously: each time the Dx button changes the value of Dy, Dy will also
>> change the value of Dy, and so on.
>>
>> How do I do this?
>
> You could test for equality before setting the new value, e.g.
>
> if(Lock->get_active() && get_value()!=the_other->get_value()) {
> the_other->set_value(get_value());
> }
>
> or something similar.
>
> Matthias
Thanks, works like a charm!
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]