Added wxDllWidget from Vaclav Slavik which allows wx widgets derived
from wxWindow to be loaded from a C++ .dll (or .so) and be used in a wxPython program, without the widget having to be SWIGged first. Various updates for distribs git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
54
wxPython/demo/dllwidget/test_dll.cpp
Normal file
54
wxPython/demo/dllwidget/test_dll.cpp
Normal file
@@ -0,0 +1,54 @@
|
||||
|
||||
#include <wx/defs.h>
|
||||
#include <wx/window.h>
|
||||
#include <wx/msgdlg.h>
|
||||
|
||||
#include "../dllwidget.h"
|
||||
|
||||
class TestWindow : public wxWindow
|
||||
{
|
||||
public:
|
||||
TestWindow(wxWindow *parent, long style)
|
||||
: wxWindow(parent, -1)
|
||||
{
|
||||
SetBackgroundColour(wxColour("white"));
|
||||
}
|
||||
|
||||
int HandleCommand(int cmd, const wxString& param)
|
||||
{
|
||||
if (cmd == 1)
|
||||
{
|
||||
SetBackgroundColour(wxColour("red"));
|
||||
Refresh();
|
||||
}
|
||||
|
||||
if (cmd == 2)
|
||||
{
|
||||
SetBackgroundColour(wxColour(param));
|
||||
Refresh();
|
||||
}
|
||||
|
||||
else if (cmd == 3)
|
||||
{
|
||||
wxMessageBox("Message from embedded widget:\n\n" + param);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
private:
|
||||
DECLARE_ABSTRACT_CLASS(TestWindow)
|
||||
};
|
||||
|
||||
IMPLEMENT_ABSTRACT_CLASS(TestWindow, wxWindow)
|
||||
|
||||
|
||||
//DECLARE_DLL_WIDGET(TestWindow)
|
||||
static int SendCommandToTestWindow(wxWindow *wnd, int cmd, const wxString& param)
|
||||
{
|
||||
return wxStaticCast(wnd, TestWindow)->HandleCommand(cmd, param);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_WIDGET_LIBRARY()
|
||||
REGISTER_WIDGET(TestWindow)
|
||||
END_WIDGET_LIBRARY()
|
Reference in New Issue
Block a user