Reorganize project structure for clarity
- Rename tests/wasm-app/ to tests/apps/ for brevity - Move lib/gl_immediate_shim.js to wasm/shims/ (consolidates WASM files) - Delete docs/ directory (outdated Nov 2024 research docs) - Delete patches/ directory (already applied to fork submodules) - Delete wasm/patches/ and wasm/config/ (empty/unused) - Update all file references in scripts, configs, and documentation - Update .gitignore for new tests/apps/ paths Verified both build workflows pass: - wxWidgets tests: 255 passed - Docker KiCad build: completed successfully 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
c4cd69f28d
commit
a26b40c063
78 changed files with 38 additions and 128055 deletions
143
tests/apps/standalone/aui/aui_test.cpp
Normal file
143
tests/apps/standalone/aui/aui_test.cpp
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
// wxAuiManager Test - Tests AUI docking functionality in WASM
|
||||
// KiCad uses AUI extensively for dockable panels
|
||||
|
||||
#include "wx/wxprec.h"
|
||||
|
||||
#ifndef WX_PRECOMP
|
||||
#include "wx/wx.h"
|
||||
#endif
|
||||
|
||||
#include "wx/aui/aui.h"
|
||||
|
||||
#ifdef __EMSCRIPTEN__
|
||||
#include <emscripten/emscripten.h>
|
||||
#endif
|
||||
|
||||
class AuiTestApp : public wxApp
|
||||
{
|
||||
public:
|
||||
virtual bool OnInit() override;
|
||||
};
|
||||
|
||||
class AuiTestFrame : public wxFrame
|
||||
{
|
||||
public:
|
||||
AuiTestFrame();
|
||||
~AuiTestFrame();
|
||||
|
||||
private:
|
||||
wxAuiManager m_mgr;
|
||||
wxTextCtrl* m_log;
|
||||
|
||||
void LogEvent(const wxString& msg);
|
||||
void OnPaneClose(wxAuiManagerEvent& evt);
|
||||
|
||||
wxDECLARE_EVENT_TABLE();
|
||||
};
|
||||
|
||||
wxBEGIN_EVENT_TABLE(AuiTestFrame, wxFrame)
|
||||
EVT_AUI_PANE_CLOSE(AuiTestFrame::OnPaneClose)
|
||||
wxEND_EVENT_TABLE()
|
||||
|
||||
wxIMPLEMENT_APP(AuiTestApp);
|
||||
|
||||
bool AuiTestApp::OnInit()
|
||||
{
|
||||
if (!wxApp::OnInit())
|
||||
return false;
|
||||
|
||||
AuiTestFrame* frame = new AuiTestFrame();
|
||||
frame->Show(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
AuiTestFrame::AuiTestFrame()
|
||||
: wxFrame(nullptr, wxID_ANY, "wxAuiManager WASM Test",
|
||||
wxDefaultPosition, wxSize(800, 600))
|
||||
{
|
||||
m_mgr.SetManagedWindow(this);
|
||||
|
||||
// Create center pane with event log
|
||||
m_log = new wxTextCtrl(this, wxID_ANY, "",
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
wxTE_MULTILINE | wxTE_READONLY);
|
||||
m_mgr.AddPane(m_log, wxAuiPaneInfo().Name("log").Caption("Event Log")
|
||||
.Center().CloseButton(false));
|
||||
|
||||
// Create left panel (like KiCad's properties panel)
|
||||
wxPanel* leftPanel = new wxPanel(this);
|
||||
leftPanel->SetBackgroundColour(*wxLIGHT_GREY);
|
||||
wxBoxSizer* leftSizer = new wxBoxSizer(wxVERTICAL);
|
||||
leftSizer->Add(new wxStaticText(leftPanel, wxID_ANY, "Properties Panel"), 0, wxALL, 10);
|
||||
leftSizer->Add(new wxStaticText(leftPanel, wxID_ANY, "Like KiCad's"), 0, wxALL, 5);
|
||||
leftSizer->Add(new wxStaticText(leftPanel, wxID_ANY, "property editor"), 0, wxALL, 5);
|
||||
leftPanel->SetSizer(leftSizer);
|
||||
|
||||
m_mgr.AddPane(leftPanel, wxAuiPaneInfo().Name("properties").Caption("Properties")
|
||||
.Left().Layer(1).Position(1).CloseButton(true).MaximizeButton(true)
|
||||
.MinSize(150, 200));
|
||||
|
||||
// Create right panel (like KiCad's layer manager)
|
||||
wxPanel* rightPanel = new wxPanel(this);
|
||||
rightPanel->SetBackgroundColour(wxColour(240, 240, 255));
|
||||
wxBoxSizer* rightSizer = new wxBoxSizer(wxVERTICAL);
|
||||
rightSizer->Add(new wxStaticText(rightPanel, wxID_ANY, "Layers Panel"), 0, wxALL, 10);
|
||||
rightSizer->Add(new wxStaticText(rightPanel, wxID_ANY, "Like KiCad's"), 0, wxALL, 5);
|
||||
rightSizer->Add(new wxStaticText(rightPanel, wxID_ANY, "layer manager"), 0, wxALL, 5);
|
||||
rightPanel->SetSizer(rightSizer);
|
||||
|
||||
m_mgr.AddPane(rightPanel, wxAuiPaneInfo().Name("layers").Caption("Layers")
|
||||
.Right().Layer(1).Position(1).CloseButton(true).MaximizeButton(true)
|
||||
.MinSize(150, 200));
|
||||
|
||||
// Create bottom panel (like KiCad's message panel)
|
||||
wxPanel* bottomPanel = new wxPanel(this);
|
||||
bottomPanel->SetBackgroundColour(wxColour(255, 255, 240));
|
||||
wxBoxSizer* bottomSizer = new wxBoxSizer(wxVERTICAL);
|
||||
bottomSizer->Add(new wxStaticText(bottomPanel, wxID_ANY,
|
||||
"Message Panel - Like KiCad's message area"), 0, wxALL, 5);
|
||||
bottomPanel->SetSizer(bottomSizer);
|
||||
|
||||
m_mgr.AddPane(bottomPanel, wxAuiPaneInfo().Name("messages").Caption("Messages")
|
||||
.Bottom().Layer(0).Position(1).CloseButton(true)
|
||||
.MinSize(-1, 80));
|
||||
|
||||
m_mgr.Update();
|
||||
|
||||
CreateStatusBar();
|
||||
SetStatusText("AUI Manager ready - try dragging and docking panels");
|
||||
|
||||
LogEvent("AUI test app started");
|
||||
LogEvent("Created dockable panels: Properties, Layers, Messages");
|
||||
|
||||
#ifdef __EMSCRIPTEN__
|
||||
EM_ASM({
|
||||
console.log('[AUI_TEST] wxAuiManager test app started successfully');
|
||||
});
|
||||
#endif
|
||||
}
|
||||
|
||||
AuiTestFrame::~AuiTestFrame()
|
||||
{
|
||||
m_mgr.UnInit();
|
||||
}
|
||||
|
||||
void AuiTestFrame::LogEvent(const wxString& msg)
|
||||
{
|
||||
m_log->AppendText(msg + "\n");
|
||||
SetStatusText(msg);
|
||||
|
||||
#ifdef __EMSCRIPTEN__
|
||||
EM_ASM({
|
||||
console.log('[AUI_EVENT] ' + UTF8ToString($0));
|
||||
}, msg.c_str().AsChar());
|
||||
#endif
|
||||
}
|
||||
|
||||
void AuiTestFrame::OnPaneClose(wxAuiManagerEvent& evt)
|
||||
{
|
||||
wxAuiPaneInfo* pane = evt.GetPane();
|
||||
if (pane) {
|
||||
LogEvent(wxString::Format("Pane closing: %s", pane->name));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue