wxdragon-sys 0.9.16

Raw FFI bindings to libwxdragon (which statically links wxWidgets).
Documentation
#include <wx/wxprec.h>
#include <wx/wx.h>
#include <wx/mdi.h>
#include "../include/wxdragon.h"
#include "wxd_utils.h"

extern "C" {

WXD_EXPORTED wxd_Frame_t*
wxd_MDIParentFrame_Create(wxd_Window_t* parent, wxd_Id id, const char* title, wxd_Point pos,
                          wxd_Size size, wxd_Style_t style, const char* name)
{
    wxMDIParentFrame* frame = new wxMDIParentFrame(
        reinterpret_cast<wxWindow*>(parent), id, 
        wxString::FromUTF8(title ? title : ""),
        wxd_cpp_utils::to_wx(pos), wxd_cpp_utils::to_wx(size),
        style, wxString::FromUTF8(name ? name : "")
    );
    return reinterpret_cast<wxd_Frame_t*>(frame);
}

WXD_EXPORTED wxd_Frame_t*
wxd_MDIChildFrame_Create(wxd_Frame_t* parent, wxd_Id id, const char* title, wxd_Point pos,
                         wxd_Size size, wxd_Style_t style, const char* name)
{
    wxMDIParentFrame* parentFrame = reinterpret_cast<wxMDIParentFrame*>(parent);
    wxMDIChildFrame* frame = new wxMDIChildFrame(
        parentFrame, id, 
        wxString::FromUTF8(title ? title : ""),
        wxd_cpp_utils::to_wx(pos), wxd_cpp_utils::to_wx(size),
        style, wxString::FromUTF8(name ? name : "")
    );
    return reinterpret_cast<wxd_Frame_t*>(frame);
}

WXD_EXPORTED wxd_Window_t*
wxd_MDIParentFrame_GetClientWindow(wxd_Frame_t* frame)
{
    wxMDIParentFrame* mdiParent = reinterpret_cast<wxMDIParentFrame*>(frame);
    if (mdiParent) {
        return reinterpret_cast<wxd_Window_t*>(mdiParent->GetClientWindow());
    }
    return nullptr;
}

}