diff options
author | Ian C <ianc@noddybox.co.uk> | 2005-09-19 23:24:16 +0000 |
---|---|---|
committer | Ian C <ianc@noddybox.co.uk> | 2005-09-19 23:24:16 +0000 |
commit | 6daa6ca8f55c86512d92fa187cdf21bc7c279a6a (patch) | |
tree | 307fc314d2dc2531cd0eaaa14c186f078fbc0b99 | |
parent | 82c41335d11b5ed18090ac1a548c9b402e4d01a4 (diff) |
Added simple number spinners
-rw-r--r-- | simplegui.mod/doc/commands.html | 26 | ||||
-rw-r--r-- | simplegui.mod/simplegui.bmx | 172 |
2 files changed, 198 insertions, 0 deletions
diff --git a/simplegui.mod/doc/commands.html b/simplegui.mod/doc/commands.html index 56b78b5..b857360 100644 --- a/simplegui.mod/doc/commands.html +++ b/simplegui.mod/doc/commands.html @@ -79,6 +79,32 @@ If <b>i</b> is not null then this image is drawn as a mouse cursor.</div><br></d <div class=rootdoc><font class=token>Function Create:TButtonList( gui:TGUIHandler, x:Int, y:Int, options:String[], selected:Int, callback(w:TWidget) )</font> Create a TButtonList widget.</div><div class=indent><p><b>Returns:</b> The created widget.<p><b>gui</b> is the <b>TGUIHandler</b> object managing this wiget. <b>x</b> and <b>y</b> are its position. <b>options</b> are the options for the list and <b>selected</b> is the currently selected item. <b>callback</b> is called when the selection changes.</div><br></div><br>
</div><br>
+<p><div id=TNumberFloat class=ref>
+<div class=rootdoc><font class=token>Type TNumberFloat Extends TWidget</font> A number up/down widget for floats</div><div class=indent></div><br><p><div id=value>
+<div class=rootdoc><font class=token>Field value:Float</font> The value</div><div class=indent></div><br></div><br>
+<p><div id=change>
+<div class=rootdoc><font class=token>Field change:Float</font> The increment/decrement</div><div class=indent></div><br></div><br>
+<p><div id=maxval>
+<div class=rootdoc><font class=token>Field maxval:Float</font> The maximum value</div><div class=indent></div><br></div><br>
+<p><div id=minval>
+<div class=rootdoc><font class=token>Field minval:Float</font> The minimum value</div><div class=indent></div><br></div><br>
+<p><div id=Create>
+<div class=rootdoc><font class=token>Function Create:TNumberFloat( gui:TGUIHandler, x:Int, y:Int, callback(w:TWidget)=Null )</font> Create a TNumber widget.</div><div class=indent><p><b>Returns:</b> The created widget.<p><b>gui</b> is the <b>TGUIHandler</b> object managing this wiget. <b>x</b> and <b>y</b> are its position. +<b>callback</b> is called when the value changes.</div><br></div><br>
+</div><br>
+<p><div id=TNumberInt class=ref>
+<div class=rootdoc><font class=token>Type TNumberInt Extends TWidget</font> A number up/down widget for ints</div><div class=indent></div><br><p><div id=value>
+<div class=rootdoc><font class=token>Field value:Int</font> The value</div><div class=indent></div><br></div><br>
+<p><div id=change>
+<div class=rootdoc><font class=token>Field change:Int</font> The increment/decrement</div><div class=indent></div><br></div><br>
+<p><div id=maxval>
+<div class=rootdoc><font class=token>Field maxval:Int</font> The maximum value</div><div class=indent></div><br></div><br>
+<p><div id=minval>
+<div class=rootdoc><font class=token>Field minval:Int</font> The minimum value</div><div class=indent></div><br></div><br>
+<p><div id=Create>
+<div class=rootdoc><font class=token>Function Create:TNumberInt( gui:TGUIHandler, x:Int, y:Int, callback(w:TWidget)=Null )</font> Create a TNumber widget.</div><div class=indent><p><b>Returns:</b> The created widget.<p><b>gui</b> is the <b>TGUIHandler</b> object managing this wiget. <b>x</b> and <b>y</b> are its position. +<b>callback</b> is called when the value changes.</div><br></div><br>
+</div><br>
<p><div id=TGUIHandler class=ref>
<div class=rootdoc><font class=token>Type TGUIHandler</font> Handles the GUI.</div><div class=indent></div><br><p><div id=Register>
<div class=rootdoc><font class=token>Method Register( w:TWidget )</font> Register a widget.</div><div class=indent><p>Widgets call this themselves.</div><br></div><br>
diff --git a/simplegui.mod/simplegui.bmx b/simplegui.mod/simplegui.bmx index 678497b..7b5e7ef 100644 --- a/simplegui.mod/simplegui.bmx +++ b/simplegui.mod/simplegui.bmx @@ -398,6 +398,178 @@ Type TButtonList Extends TWidget End Type Rem +bbdoc: A number up/down widget for floats +EndRem +Type TNumberFloat Extends TWidget + + Rem + bbdoc: The value + EndRem + Field value:Float + + Rem + bbdoc: The increment/decrement + EndRem + Field change:Float + + Rem + bbdoc: The maximum value + EndRem + Field maxval:Float + + Rem + bbdoc: The minimum value + EndRem + Field minval:Float + + Rem + bbdoc: Create a TNumber widget. + returns: The created widget. + about: @gui is the @TGUIHandler object managing this wiget. @x and @y are its position. + about: @callback is called when the value changes. + EndRem + Function Create:TNumberFloat(gui:TGUIHandler, x:Int, y:Int, callback(w:TWidget)=Null) + Local o:TNumberFloat=New TNumberFloat + o.enabled=True + o.value=0 + o.minval=0 + o.maxval=100 + o.change=10 + o.x=x + o.y=y + o.w=TGUIFont.font.MaxHeight()*2+8 + o.h=TGUIFont.font.MaxHeight()+2 + o.callback=callback + gui.Register(o) + Return o + End Function + + Method HandleClick() + Local old:Float=value + + If MouseX()<x+w/2 + value=Min(value+change,maxval) + Else + value=Max(value-change,minval) + EndIf + + If value<>old And callback<>Null + callback(Self) + EndIf + End Method + + Method Draw() + If mouse_over + If MouseX()<x+w/2 + SetColor(128,128,128) + DrawRect(x,y,w/2,h) + SetColor(64,64,64) + DrawRect(x+w/2,y,w/2,h) + Else + SetColor(64,64,64) + DrawRect(x,y,w/2,h) + SetColor(128,128,128) + DrawRect(x+w/2,y,w/2,h) + EndIf + Else + SetColor(64,64,64) + DrawRect(x,y,w,h) + EndIf + + Draw3DBox(x+2,y+2,h-4,h-4,False,1) + Draw3DBox(x+w-h,y+2,h-4,h-4,False,1) + + TGUIFont.font.Draw(value,x+w+2,y+1) + End Method +End Type + +Rem +bbdoc: A number up/down widget for ints +EndRem +Type TNumberInt Extends TWidget + + Rem + bbdoc: The value + EndRem + Field value:Int + + Rem + bbdoc: The increment/decrement + EndRem + Field change:Int + + Rem + bbdoc: The maximum value + EndRem + Field maxval:Int + + Rem + bbdoc: The minimum value + EndRem + Field minval:Int + + Rem + bbdoc: Create a TNumber widget. + returns: The created widget. + about: @gui is the @TGUIHandler object managing this wiget. @x and @y are its position. + about: @callback is called when the value changes. + EndRem + Function Create:TNumberInt(gui:TGUIHandler, x:Int, y:Int, callback(w:TWidget)=Null) + Local o:TNumberInt=New TNumberInt + o.enabled=True + o.value=0 + o.minval=0 + o.maxval=100 + o.change=10 + o.x=x + o.y=y + o.w=TGUIFont.font.MaxHeight()*2+8 + o.h=TGUIFont.font.MaxHeight()+2 + o.callback=callback + gui.Register(o) + Return o + End Function + + Method HandleClick() + Local old:Int=value + + If MouseX()<x+w/2 + value=Min(value+change,maxval) + Else + value=Max(value-change,minval) + EndIf + + If value<>old And callback<>Null + callback(Self) + EndIf + End Method + + Method Draw() + If mouse_over + If MouseX()<x+w/2 + SetColor(128,128,128) + DrawRect(x,y,w/2,h) + SetColor(64,64,64) + DrawRect(x+w/2,y,w/2,h) + Else + SetColor(64,64,64) + DrawRect(x,y,w/2,h) + SetColor(128,128,128) + DrawRect(x+w/2,y,w/2,h) + EndIf + Else + SetColor(64,64,64) + DrawRect(x,y,w,h) + EndIf + + Draw3DBox(x+2,y+2,h-4,h-4,False,1) + Draw3DBox(x+w-h,y+2,h-4,h-4,False,1) + + TGUIFont.font.Draw(value,x+w+2,y+1) + End Method +End Type + +Rem bbdoc: Handles the GUI. EndRem Type TGUIHandler |