Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions wxLua/bindings/genwxbind.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1197,6 +1197,7 @@ function InitKeywords()
preprocConditionTable["wxLUA_USE_wxWave"] = "wxLUA_USE_wxWave"
preprocConditionTable["wxLUA_USE_wxWindowList"] = "wxLUA_USE_wxWindowList"
preprocConditionTable["wxLUA_USE_wxWizard"] = "wxLUA_USE_wxWizard"
preprocConditionTable["wxLUA_USE_wxWebRequest"] = "wxLUA_USE_wxWebRequest"
preprocConditionTable["wxLUA_USE_wxXML"] = "wxLUA_USE_wxXML"
preprocConditionTable["wxLUA_USE_wxXRC"] = "wxLUA_USE_wxXRC"

Expand Down
8 changes: 8 additions & 0 deletions wxLua/bindings/wxwidgets/wxnet_override.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -135,3 +135,11 @@ static int LUACALL wxLua_wxSocketBase_WriteMsg(lua_State *L)
}
%end

%override wxLua_wxWebRequestEvent_GetData
static int LUACALL wxLua_wxWebRequestEvent_GetData(lua_State *L)
{
wxWebRequestEvent * self = (wxWebRequestEvent *)(wxluaT_getuserdatatype(L, 1, wxluatype_wxWebRequestEvent));
lua_pushlstring(L, (const char*)(self->GetDataBuffer()), self->GetDataSize());
return 1;
}
%end
3 changes: 2 additions & 1 deletion wxLua/bindings/wxwidgets/wxnet_rules.lua
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,8 @@ interface_filepath = wxlua_dir.."bindings/wxwidgets"
-- The files are loaded from the interface_filepath.
interface_fileTable =
{
"wxnet_net.i"
"wxnet_net.i",
"wxnet_webrequest.i",
}

-- ----------------------------------------------------------------------------
Expand Down
97 changes: 97 additions & 0 deletions wxLua/bindings/wxwidgets/wxnet_webrequest.i
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
// ===========================================================================
// Purpose: wxWebRequest library
// Author: Daniel Collins
// Created: 19/09/2025
// Copyright: (c) 2025 Daniel Collins. All rights reserved.
// Licence: wxWidgets licence
// ===========================================================================

#if wxLUA_USE_wxWebRequest && wxUSE_WEBREQUEST

#include "wx/webrequest.h"

class %delete wxWebResponse
{
wxWebResponse();

bool IsOk() const;
wxString GetURL() const;
wxString GetHeader(const wxString &name) const;
wxFileOffset GetContentLength() const;
wxString GetMimeType() const;
int GetStatus() const;
wxString GetStatusText() const;
wxInputStream *GetStream();
wxString GetSuggestedFileName() const;
wxString GetDataFile() const;
wxString AsString() const;
};

enum wxWebRequest::State
{
State_Idle,
State_Unauthorized,
State_Active,
State_Completed,
State_Failed,
State_Cancelled,
};

enum wxWebRequest::Storage
{
Storage_Memory,
Storage_File,
Storage_None,
};

class %delete wxWebRequest
{
wxWebRequest();

bool IsOk() const;
void Start();
void Cancel();
wxWebResponse GetResponse() const;
// wxWebAuthChallenge GetAuthChallenge () const
int GetId() const;

void SetHeader(const wxString &name, const wxString &value);
void SetMethod(const wxString &method);
void SetData(const wxString &text, const wxString &contentType); // , const wxMBConv &conv = wxConvUTF8);
bool SetData(wxInputStream *dataStream, const wxString &contentType, wxFileOffset dataSize = wxInvalidOffset);
void SetStorage(wxWebRequest::Storage storage);
void DisablePeerVerify(bool disable=true);
bool IsPeerVerifyDisabled() const;

wxWebRequest::State GetState() const;
wxFileOffset GetBytesSent() const;
wxFileOffset GetBytesExpectedToSend() const;
wxFileOffset GetBytesReceived() const;
wxFileOffset GetBytesExpectedToReceive() const;
};

class %delete wxWebRequestEvent: public wxEvent
{
wxWebRequest::State GetState() const;
const wxWebRequest &GetRequest() const;
const wxWebResponse &GetResponse() const;
const wxString &GetErrorDescription() const;
const wxString &GetDataFile() const;
wxString GetData() const;

%wxEventType wxEVT_WEBREQUEST_DATA
%wxEventType wxEVT_WEBREQUEST_STATE
};

class wxWebSession
{
static wxWebSession &GetDefault();

wxWebRequest CreateRequest(wxEvtHandler *handler, const wxString &url, int id = wxID_ANY);
void AddCommonHeader(const wxString &name, const wxString &value);
void SetTempDir (const wxString &dir);
wxString GetTempDir() const;
bool IsOpened() const;
};

#endif // wxLUA_USE_wxWebRequest && wxUSE_WEBREQUEST
11 changes: 11 additions & 0 deletions wxLua/modules/wxbind/include/wxnet_bind.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ extern WXDLLIMPEXP_BINDWXNET wxLuaBinding* wxLuaBinding_wxnet_init();
#include "wx/uri.h"
#endif // wxLUA_USE_wxSocket && wxUSE_SOCKETS

#if wxLUA_USE_wxWebRequest && wxUSE_WEBREQUEST
#include "wx/webrequest.h"
#endif // wxLUA_USE_wxWebRequest && wxUSE_WEBREQUEST

// ---------------------------------------------------------------------------
// Lua Tag Method Values and Tables for each Class
// ---------------------------------------------------------------------------
Expand Down Expand Up @@ -95,6 +99,13 @@ extern WXDLLIMPEXP_BINDWXNET wxLuaBinding* wxLuaBinding_wxnet_init();
extern WXDLLIMPEXP_DATA_BINDWXNET(int) wxluatype_wxURI;
#endif // wxLUA_USE_wxSocket && wxUSE_SOCKETS

#if wxLUA_USE_wxWebRequest && wxUSE_WEBREQUEST
extern WXDLLIMPEXP_DATA_BINDWXNET(int) wxluatype_wxWebRequest;
extern WXDLLIMPEXP_DATA_BINDWXNET(int) wxluatype_wxWebRequestEvent;
extern WXDLLIMPEXP_DATA_BINDWXNET(int) wxluatype_wxWebResponse;
extern WXDLLIMPEXP_DATA_BINDWXNET(int) wxluatype_wxWebSession;
#endif // wxLUA_USE_wxWebRequest && wxUSE_WEBREQUEST



#endif // __HOOK_WXLUA_wxnet_H__
Expand Down
4 changes: 4 additions & 0 deletions wxLua/modules/wxbind/setup/wxluasetup.h
Original file line number Diff line number Diff line change
Expand Up @@ -499,6 +499,10 @@
#define wxLUA_USE_wxSocket 1
#endif

#ifndef wxLUA_USE_wxWebRequest
#define wxLUA_USE_wxWebRequest 1
#endif

#ifndef wxLUA_USE_wxSpinButton
#define wxLUA_USE_wxSpinButton 1
#endif
Expand Down
Loading