value wx_window_create(value inParams) { CreationParams params(inParams); wxWindow *window = new wxWindow(params.parent,params.id, params.position,params.size,params.flags); return WXToValue(window); }
value wx_window_get_effective_min_size(value inWindow) { wxWindow *window; if (ValueToWX(inWindow,window)) return WXToValue(window->GetEffectiveMinSize()); return alloc_null(); }
value wx_dir_dialog_show(value ioData) { wxWindow *parent = 0; wxString message; wxString directory; int style; wxPoint position; wxSize size; ValueToWX(val_field(ioData,val_id("parent")),parent); ValueToWX(val_field(ioData,val_id("message")),message); ValueToWX(val_field(ioData,val_id("directory")),directory); ValueToWX(val_field(ioData,val_id("style")),style); ValueToWX(val_field(ioData,val_id("size")),size); wxDirDialog *dlg = new wxDirDialog(parent,message,directory,style,position,size); bool result = dlg->ShowModal()==wxID_OK; if (result) { alloc_field(ioData,val_id("directory"), WXToValue(dlg->GetPath())); } dlg->Destroy(); return alloc_bool(result); }
value wx_frame_create(value inParams) { CreationParams params(inParams,wxDEFAULT_FRAME_STYLE); wxFrame *frame = new wxFrame(params.parent,params.id,params.text, params.position,params.size,params.flags); return WXToValue(frame); }
value wx_static_box_create(value inParams) { CreationParams params(inParams); wxStaticBox *window = new wxStaticBox(params.parent,params.id,params.text, params.position,params.size,params.flags); return WXToValue(window); }
value wx_button_create(value inParams) { CreationParams params(inParams); wxButton *window = new wxButton(params.parent,params.id,params.text, params.position,params.size,params.flags); return WXToValue(window); }
value wx_notebook_create(value inParams) { CreationParams params(inParams); wxNotebook *window = new wxNotebook(params.parent,params.id, params.position,params.size,params.flags); return WXToValue(window); }
value wx_scintilla_create(value inParams) { CreationParams params(inParams); wxStyledTextCtrl *window = new wxStyledTextCtrl(params.parent,params.id, params.position,params.size,params.flags); return WXToValue(window); }
value wx_scintilla_get_value(value inSci) { wxStyledTextCtrl *sci; if (ValueToWX(inSci, sci)) return WXToValue( sci->GetText( ) ); return alloc_null(); }
value wx_text_ctrl_create(value inParams) { CreationParams params(inParams); wxTextCtrl *window = new wxTextCtrl(params.parent,params.id,params.text, params.position,params.size,params.flags); return WXToValue(window); }
value wx_choice_create(value inParams, value inChoices) { CreationParams params(inParams); wxArrayString choices; Val2ArrayString(inChoices, choices); wxChoice *window = new wxChoice(params.parent, params.id, params.text, params.position, params.size, choices, params.flags); return WXToValue(window); }
value wx_dialog_create(value inParams) { CreationParams params(inParams,wxDEFAULT_DIALOG_STYLE); wxDialog *frame = new wxDialog(params.parent,params.id,params.text, params.position,params.size,params.flags); frame->Show(); wxTheApp->SetTopWindow( frame ); return WXToValue(frame); }
value wx_file_dialog_show(value ioData) { wxWindow *parent = 0; wxString message; wxString directory; wxString file; wxString filter; int style; wxPoint position; wxSize size; ValueToWX(val_field(ioData,val_id("parent")),parent); ValueToWX(val_field(ioData,val_id("message")),message); ValueToWX(val_field(ioData,val_id("directory")),directory); ValueToWX(val_field(ioData,val_id("file")),file); ValueToWX(val_field(ioData,val_id("filter")),filter); ValueToWX(val_field(ioData,val_id("style")),style); ValueToWX(val_field(ioData,val_id("size")),size); wxFileDialog *dlg = new wxFileDialog(parent,message,directory,file,filter,style,position,size); bool result = dlg->ShowModal()==wxID_OK; if (result) { alloc_field(ioData,val_id("file"), WXToValue(dlg->GetFilename())); alloc_field(ioData,val_id("directory"), WXToValue(dlg->GetDirectory())); wxArrayString files; dlg->GetFilenames(files); value array = val_field(ioData,val_id("files")); for(int i=0;i<files.size();i++) val_array_push(array,WXToValue(files[i])); } dlg->Destroy(); return alloc_bool(result); }
value wx_frame_create(value inParams) { CreationParams params(inParams,wxDEFAULT_FRAME_STYLE); wxFrame *frame = new wxFrame(params.parent,params.id,params.text, params.position,params.size,params.flags); if (!params.parent && params.size!=wxDefaultSize) { // Adjust for borders int w = 0; int h = 0; frame->GetClientSize(&w,&h); int dx = params.size.x - w; int dy = params.size.y - h; if ( dx!=0 || dy!=0) frame->SetSize( params.size.x + dx, params.size.y+dy ); } return WXToValue(frame); }
value wx_menu_bar_create() { return WXToValue( new wxMenuBar() ); }
value wx_menu_create(value inTitle, value inFlags) { wxMenu *menu = new wxMenu( Val2Str(inTitle), val_int(inFlags) ); return WXToValue( menu ); }