include('wintools') include("wincontrolworks") func doMaximum(_data) println(ispin + '->SetRange(',ispin + '->GetMin(), ', e_int(_data), ');') end func doMinimum(_data) println(ispin + '->SetRange(', e_int(_data), ', ', ispin+'->GetMax());') end func _create(_data) var(ctrl) fvar(style_) beginStyle('wxSP_ARROW_KEYS') addStyle(isndef(Wrap), 'wxSP_WRAP') style_ = endStyle() println(ispin, ' = new wxSpinCtrl(this, ID_'+upper(ispin)+', wxEmptyString, wxPoint', Left, ', ', Top, '), wxSize(', Width, ', ', Height, '), wxSP_ARROW_KEYS, ', Maximum, ', ', Minimum, ', ', Value, ', 'style_, ');') ctrl = ispin registerId(ctrl) if(linked(onValueChanged)) createEventExArg1(ctrl, 'EVT_SPINCTRL', 'wxSpinEvent', 'onValueChanged', 'event.GetPosition()'@int) end end func initFree() _create('') end func init() lng.decl_priv_var(ispin, 'wxSpinCtrl*') if(not linked(doCreate)) fvar(old) old = block.select(BLK_BODY) _create('') block.select(old) end end func doCreate(data) _create(data) end func doValue(_data) println(ispin + '->SetPosition(', Value, ');') end func CurrentValue() return(ispin + '->GetPosition()') end