[Gtk-sharp-list] Toggled state change and events

Scott Ellington scottellington at comcast.net
Wed Dec 14 22:46:51 EST 2005


If you are using regular toggle buttons (i.e. not toggletoolbuttons),
then what you can do is subclass ToggleButton and override the OnClicked
method like so:

protected override void OnClicked()
{
	// make the change programmatically that causes the button to be toggled
	// Don't call base.OnClicked() thus preventing the toggling
}

If you, like me, are using ToggleToolButton, then, as far as I know, you are out 
luck.  I have submitted a bug for this:

http://bugzilla.ximian.com/show_bug.cgi?id=77001

Scott

On Wed, 2005-12-07 at 04:28 +0100, Gennadiy Donchyts wrote:
> On 12/7/05, John Russell <jjrussell at gmail.com> wrote: 
>         A few weeks ago someone posted this question to the mailer and
>         didn't
>         recieve an answer. I have exactly the same question.  Does
>         anyone know 
>         how to do this?  Thanks..
>         
>         Its essentially how to synchronize two separate toggle buttons
>         that
>         need to reflect the state of the UI that can be changed
>         outside of the
>         buttons.  However, setting them active if the UI reflects that
>         causes 
>         a toggled event.  Is there a common workaround for this?
>         Thanks for
>         the help.
>  
> I've found only temporary solution by remembering by accepting that
> evend is called twice,
> simply counting it :), so menu item and toolbar button call the same
> handler (both on toggled signal) 
> in which I've put:
>  
>    if(trigger == 0)
>    {
>     trigger++;
>     bool visible = ( (sender == menuItem) ? !toolButton.Active : !
> menuItem.Active ); // arhh!
>     menuItem.Active = visible;
>     button.Active = visible;
>    } 
>    else
>    {
>     trigger = 0;
>    }
>  
> hope it helps... 
>  
> --Gena
>  
> 
>         John
>         
>         
>         Original post.
>         **********************
>         [Gtk-sharp-list] ToggleToolButton, CheckMenuItem, active,
>         tooggled signals 
>         
>         Gennadiy Donchyts
>         Wed, 16 Nov 2005 12:52:12 -0800
>         
>         Hi all,
>         sorry for some stupid newbie questions, I'm stucked with
>         synchronization of the 2
>         widgets' state, I have and application with Glade file (menu
>         item and 
>         toolbar button
>         are created there). In the glade I also add toggled signal for
>         the CheckMenuItem
>         menu; and ToggleToolButton button; on a toolbar. they both are
>         connected to something like OnWindowToggled() function, how
>         can I do 
>         the next:
>         
>         private void OnWindowToggled(...)
>         {
>         window.Visible = !window.Visible;
>         menu.Active = window.Visible;
>         buton.Active = window.Visible;
>         }
>         
>         Is there some universal property/method which could set
>         Checked / Toggled 
>         property of these 2 widgets *without* rising a toggled
>         event?? ...
>         lost a bit ...
>         
>         I've been plaing with the State property in the
>         ToggleToolButton but there are
>         also some problems with it and in CheckMenuItem there is no
>         such thing ... 
>         (or at least I did not succeed to get it running in a good
>         way).
>         
>         I liked Gtk# a lot but after using SFW it sometimes not very
>         intuitive
>         :) (that's why
>         refference manual exists of course :), but they are still not
>         complete 
>         also. By the
>         way I liked a lot tutorials / help on Mono's Mediawiki - good
>         job! (I
>         would like to
>         have tutorial on Toggled / Checked controls there, even could
>         write myself when
>         will understand them clearly). 
>         
>         it would be nice to have:
>         
>         checkItem.Checked - calls signal/event
>         checkItem.SetChecked(bool) - changes state without signal
>         toggleItem.Toggled - toggles and calls signal/event
>         toggleItem.SetToggled(bool) - changes toggled state without
>         signal 
>         -----
>         Another thing is regarding widgets you use in MonoDevelop,
>         there is a comment
>         that they are licensed using Novell license but MD uses GPL.
>         Are there plans to
>         make something like higher-level Widgets library (TreeView,
>         PropertyGrid, 
>         Commands, Docking, etc.) and release them using less
>         restrictive license?
>         It would be nice to have them as a separate project. (I guess
>         it should be in MD
>         list.. sorry).
>         -----
>         
>         Thanks in advance
>         --Gena 
>         _______________________________________________
>         Gtk-sharp-list maillist  -  Gtk-sharp-list at lists.ximian.com
>         http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
> 
> _______________________________________________
> Gtk-sharp-list maillist  -  Gtk-sharp-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
-- 
Scott Ellington <scottellington at comcast.net>



More information about the Gtk-sharp-list mailing list