wxdragon-sys 0.9.0

Raw FFI bindings to libwxdragon (which statically links wxWidgets).
#ifndef WXD_PICKERS_H
#define WXD_PICKERS_H

#include "../wxdragon.h"

// --- ColourPickerCtrl ---
WXD_EXPORTED wxd_ColourPickerCtrl_t* wxd_ColourPickerCtrl_Create(wxd_Window_t* parent, wxd_Id id, wxd_Colour_t initial_colour, wxd_Point pos, wxd_Size size, wxd_Style_t style);
WXD_EXPORTED wxd_Colour_t wxd_ColourPickerCtrl_GetColour(wxd_ColourPickerCtrl_t* self);
WXD_EXPORTED void wxd_ColourPickerCtrl_SetColour(wxd_ColourPickerCtrl_t* self, wxd_Colour_t colour);

// --- DatePickerCtrl ---
WXD_EXPORTED wxd_DatePickerCtrl_t* wxd_DatePickerCtrl_Create(wxd_Window_t* parent, wxd_Id id, const wxd_DateTime_t* dt, wxd_Point pos, wxd_Size size, wxd_Style_t style);
WXD_EXPORTED wxd_DateTime_t wxd_DatePickerCtrl_GetValue(wxd_DatePickerCtrl_t* self);
WXD_EXPORTED void wxd_DatePickerCtrl_SetValue(wxd_DatePickerCtrl_t* self, const wxd_DateTime_t* dt);
WXD_EXPORTED bool wxd_DatePickerCtrl_GetRange(wxd_DatePickerCtrl_t* self, wxd_DateTime_t* dt1, wxd_DateTime_t* dt2);
WXD_EXPORTED void wxd_DatePickerCtrl_SetRange(wxd_DatePickerCtrl_t* self, const wxd_DateTime_t* dt1, const wxd_DateTime_t* dt2);

// --- TimePickerCtrl ---
WXD_EXPORTED wxd_TimePickerCtrl_t* wxd_TimePickerCtrl_Create(wxd_Window_t* parent, wxd_Id id, const wxd_DateTime_t* dt, wxd_Point pos, wxd_Size size, wxd_Style_t style);
WXD_EXPORTED wxd_DateTime_t wxd_TimePickerCtrl_GetValue(wxd_TimePickerCtrl_t* self);
WXD_EXPORTED void wxd_TimePickerCtrl_SetValue(wxd_TimePickerCtrl_t* self, const wxd_DateTime_t* dt);

// --- FilePickerCtrl ---
WXD_EXPORTED wxd_FilePickerCtrl_t* wxd_FilePickerCtrl_Create(
    wxd_Window_t* parent, 
    wxd_Id id, 
    const char* message, 
    const char* wildcard, 
    const char* path, 
    wxd_Point pos, 
    wxd_Size size, 
    wxd_Style_t style
);
WXD_EXPORTED const char* wxd_FilePickerCtrl_GetPath(wxd_FilePickerCtrl_t* self);
WXD_EXPORTED void wxd_FilePickerCtrl_SetPath(wxd_FilePickerCtrl_t* self, const char* path);

// --- DirPickerCtrl ---
WXD_EXPORTED wxd_DirPickerCtrl_t* wxd_DirPickerCtrl_Create(
    wxd_Window_t* parent, 
    wxd_Id id, 
    const char* message, // wxWidgets calls this 'message' but it's the label for the dialog
    const char* path,    // Initial path
    wxd_Point pos, 
    wxd_Size size, 
    wxd_Style_t style
);
WXD_EXPORTED const char* wxd_DirPickerCtrl_GetPath(wxd_DirPickerCtrl_t* self);
WXD_EXPORTED void wxd_DirPickerCtrl_SetPath(wxd_DirPickerCtrl_t* self, const char* path);

// --- FontPickerCtrl ---
WXD_EXPORTED wxd_FontPickerCtrl_t* wxd_FontPickerCtrl_Create(
    wxd_Window_t* parent,
    wxd_Id id,
    const wxd_Font_t* initial_font, // Can be NULL for default
    wxd_Point pos,
    wxd_Size size,
    wxd_Style_t style
);
WXD_EXPORTED wxd_Font_t* wxd_FontPickerCtrl_GetSelectedFont(wxd_FontPickerCtrl_t* self);
WXD_EXPORTED void wxd_FontPickerCtrl_SetSelectedFont(wxd_FontPickerCtrl_t* self, const wxd_Font_t* font);

#endif // WXD_PICKERS_H