#include <wx/wxprec.h>
#include <wx/wx.h>
#include "../include/wxdragon.h"
#include <wx/spinctrl.h>
WXD_EXPORTED wxd_SpinCtrl_t* wxd_SpinCtrl_Create(
wxd_Window_t* parent,
wxd_Id id,
const char* value, wxd_Point pos,
wxd_Size size,
wxd_Style_t style,
int min_val, int max_val,
int initial_val
) {
wxWindow* parentWin = reinterpret_cast<wxWindow*>(parent);
wxSpinCtrl* spinCtrl = new wxSpinCtrl(
parentWin,
id,
wxString::FromUTF8(value ? value : ""), wxPoint(pos.x, pos.y), wxSize(size.width, size.height), style,
min_val,
max_val,
initial_val );
return reinterpret_cast<wxd_SpinCtrl_t*>(spinCtrl);
}
WXD_EXPORTED int wxd_SpinCtrl_GetValue(wxd_SpinCtrl_t* self) {
wxSpinCtrl* spinCtrl = reinterpret_cast<wxSpinCtrl*>(self);
if (!spinCtrl) return 0; return spinCtrl->GetValue();
}
WXD_EXPORTED void wxd_SpinCtrl_SetValue(wxd_SpinCtrl_t* self, int value) {
wxSpinCtrl* spinCtrl = reinterpret_cast<wxSpinCtrl*>(self);
if (spinCtrl) {
spinCtrl->SetValue(value);
}
}
WXD_EXPORTED void wxd_SpinCtrl_SetRange(wxd_SpinCtrl_t* self, int minVal, int maxVal) {
wxSpinCtrl* spinCtrl = reinterpret_cast<wxSpinCtrl*>(self);
if (spinCtrl) {
spinCtrl->SetRange(minVal, maxVal);
}
}
WXD_EXPORTED int wxd_SpinCtrl_GetMin(wxd_SpinCtrl_t* self) {
wxSpinCtrl* spinCtrl = reinterpret_cast<wxSpinCtrl*>(self);
if (!spinCtrl) return 0; return spinCtrl->GetMin();
}
WXD_EXPORTED int wxd_SpinCtrl_GetMax(wxd_SpinCtrl_t* self) {
wxSpinCtrl* spinCtrl = reinterpret_cast<wxSpinCtrl*>(self);
if (!spinCtrl) return 0; return spinCtrl->GetMax();
}