123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- Namespace mojox
- #rem monkeydoc The CheckGroup class.
- #end
- Class CheckGroup
- Field CheckedChanged:Void()
- Property Checked:CheckButton()
-
- Return _checked
- End
- Private
-
- Field _views:=New Stack<CheckButton>
-
- Field _checked:CheckButton
-
- End
- #rem monkeydoc The CheckButton class.
- #end
- Class CheckButton Extends Label
- #rem monkeydoc Invoked when the button's [[Checked]] state changes.
-
- Note: This is only invoked as the result of user interaction.
-
- #end
- Field Clicked:Void()
- #rem monkeydoc Creates a new CheckButton.
- #end
- Method New( text:String="",icon:Image=Null,group:CheckGroup=Null )
- Super.New( text,icon )
-
- Style=GetStyle( "CheckButton" )
-
- AcceptsKeyEvents=False
- AcceptsMouseEvents=False
- _checkBox=New Button
- _checkBox.Style=GetStyle( "CheckBox" )
- _checkBox.Icon=_checkBox.RenderStyle.Icons[0]
- _checkBox.Layout="float"
- _checkBox.Gravity=New Vec2f( 1,.5 )
-
- Local clicked:=Lambda()
-
- If _group And Checked Return
-
- Checked=Not Checked
-
- Clicked()
-
- If _group _group.CheckedChanged()
- End
-
- _checkBox.Clicked+=clicked
-
- Super.Clicked+=clicked
-
- AddView( _checkBox )
- If group Group=group
- End
-
- #rem monkeydoc The CheckGroup the button belongs to.
- #end
- Property Group:CheckGroup()
-
- Return _group
-
- Setter( group:CheckGroup )
- Assert( group And Not _group )
-
- _group=group
- _group._views.Add( Self )
-
- If _group._views.Length=1
- group._checked=Self
- SetChecked( True )
- Endif
- End
-
- #rem monkeydoc The button's checked state.
- #end
- Property Checked:Bool()
-
- Return _checked
-
- Setter( checked:Bool )
- If checked=_checked Return
-
- If _group
- If Not checked Return
- If _group._checked _group._checked.SetChecked( False )
- _group._checked=Self
- Endif
- SetChecked( checked )
- End
-
- Protected
- Method OnValidateStyle() Override
- _checkBox.Icon=_checkBox.RenderStyle.Icons[ _checked ]
- End
-
- Private
-
- Field _checked:Bool
-
- Field _checkBox:Button
-
- Field _group:CheckGroup
-
- Method SetChecked( checked:Bool )
- _checked=checked
- InvalidateStyle()
- End
- End
|