mirror of
https://github.com/usatiuk/dhfs.git
synced 2025-10-28 20:47:49 +01:00
something working?
This commit is contained in:
@@ -36,11 +36,12 @@ public:
|
||||
virtual void OnRead(std::string s) = 0;
|
||||
|
||||
protected:
|
||||
std::unique_ptr<wxProcess> process = std::make_unique<DhfsWxProcess>(*this);
|
||||
std::unique_ptr<DhfsWxProcess> process = std::make_unique<DhfsWxProcess>(*this);
|
||||
|
||||
private:
|
||||
DhfsInstanceState _state = DhfsInstanceState::STOPPED;
|
||||
std::thread _readThread;
|
||||
std::thread _readThreadErr;
|
||||
std::mutex _mutex;
|
||||
};
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ DhfsInstance::DhfsInstance() {
|
||||
}
|
||||
|
||||
DhfsInstance::~DhfsInstance() {
|
||||
stop();
|
||||
}
|
||||
|
||||
DhfsInstanceState DhfsInstance::state() {
|
||||
@@ -45,11 +46,24 @@ void DhfsInstance::start(DhfsStartOptions options) {
|
||||
throw Exception("Failed to start DHFS");
|
||||
}
|
||||
|
||||
OnRead("Started! " + std::to_string(ret) + " PID: " + std::to_string(process->GetPid()));
|
||||
OnRead("Started! " + std::to_string(ret) + " PID: " + std::to_string(process->GetPid()) + "\n");
|
||||
|
||||
_readThread = std::thread([&]() {
|
||||
auto stream = process->GetInputStream();
|
||||
while (!stream->Eof()) {
|
||||
while (!stream->Eof() || stream->CanRead()) {
|
||||
char buffer[1024];
|
||||
size_t bytesRead = stream->Read(buffer, sizeof(buffer) - 1).LastRead();
|
||||
if (bytesRead > 0) {
|
||||
buffer[bytesRead] = '\0'; // Null-terminate the string
|
||||
OnRead(std::string(buffer));
|
||||
} else if (bytesRead == 0) {
|
||||
break; // EOF reached
|
||||
}
|
||||
}
|
||||
});
|
||||
_readThreadErr = std::thread([&]() {
|
||||
auto stream = process->GetErrorStream();
|
||||
while (!stream->Eof() || stream->CanRead()) {
|
||||
char buffer[1024];
|
||||
size_t bytesRead = stream->Read(buffer, sizeof(buffer) - 1).LastRead();
|
||||
if (bytesRead > 0) {
|
||||
@@ -59,7 +73,6 @@ void DhfsInstance::start(DhfsStartOptions options) {
|
||||
break; // EOF reached
|
||||
}
|
||||
}
|
||||
OnRead("Stream end");
|
||||
});
|
||||
}
|
||||
|
||||
@@ -77,9 +90,11 @@ void DhfsInstance::stop() {
|
||||
_state = DhfsInstanceState::STOPPED;
|
||||
|
||||
int err = wxProcess::Kill(process->GetPid(), wxSIGTERM, wxKILL_CHILDREN);
|
||||
if (err != wxKILL_OK) {
|
||||
throw Exception("Failed to stop DHFS: " + std::to_string(err));
|
||||
}
|
||||
_readThread.join();
|
||||
OnRead("Stopped!");
|
||||
_readThreadErr.join();
|
||||
OnRead("Stopped!\n");
|
||||
if (err != wxKILL_OK) {
|
||||
OnRead("Failed to stop DHFS: " + std::to_string(err) + "\n");
|
||||
}
|
||||
OnTerminate(0, 0);
|
||||
}
|
||||
|
||||
@@ -16,9 +16,9 @@ std::vector<std::string> DhfsStartOptions::getOptions() {
|
||||
out.emplace_back("--add-exports");
|
||||
out.emplace_back("java.base/jdk.internal.access=ALL-UNNAMED");
|
||||
out.emplace_back("--add-opens=java.base/java.nio=ALL-UNNAMED");
|
||||
// out.emplace_back("-Dquarkus.http.host=0.0.0.0");
|
||||
// out.emplace_back("-Dquarkus.log.category.\"com.usatiuk\".level=INFO");
|
||||
// out.emplace_back("-Dquarkus.log.category.\"com.usatiuk.dhfs\".level=INFO");
|
||||
out.emplace_back("-Dquarkus.http.host=0.0.0.0");
|
||||
out.emplace_back("-Dquarkus.log.category.\"com.usatiuk\".level=INFO");
|
||||
out.emplace_back("-Dquarkus.log.category.\"com.usatiuk.dhfs\".level=INFO");
|
||||
out.emplace_back("-Ddhfs.fuse.root=" + mount_path);
|
||||
out.emplace_back("-Ddhfs.objects.persistence.root=" + data_path);
|
||||
out.emplace_back("-Ddhfs.webui.root=" + webui_path);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
MainFrame::MainFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxFrame( parent, id, title, pos, size, style, name )
|
||||
{
|
||||
this->SetSizeHints( wxSize( 100,50 ), wxDefaultSize );
|
||||
this->SetSizeHints( wxSize( 600,400 ), wxDefaultSize );
|
||||
|
||||
m_statusBar1 = this->CreateStatusBar( 1, wxSTB_SIZEGRIP, wxID_ANY );
|
||||
wxBoxSizer* bSizer3;
|
||||
@@ -53,7 +53,7 @@ MainFrame::MainFrame( wxWindow* parent, wxWindowID id, const wxString& title, co
|
||||
m_panel1->SetSizer( bSizer2 );
|
||||
m_panel1->Layout();
|
||||
bSizer2->Fit( m_panel1 );
|
||||
m_notebook1->AddPage( m_panel1, _("Info"), true );
|
||||
m_notebook1->AddPage( m_panel1, _("Info"), false );
|
||||
m_panel3 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||
wxGridSizer* gSizer1;
|
||||
gSizer1 = new wxGridSizer( 1, 1, 0, 0 );
|
||||
@@ -65,7 +65,7 @@ MainFrame::MainFrame( wxWindow* parent, wxWindowID id, const wxString& title, co
|
||||
m_panel3->SetSizer( gSizer1 );
|
||||
m_panel3->Layout();
|
||||
gSizer1->Fit( m_panel3 );
|
||||
m_notebook1->AddPage( m_panel3, _("Logs"), false );
|
||||
m_notebook1->AddPage( m_panel3, _("Logs"), true );
|
||||
m_panel2 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||
wxBoxSizer* bSizer5;
|
||||
bSizer5 = new wxBoxSizer( wxVERTICAL );
|
||||
@@ -111,9 +111,16 @@ MainFrame::MainFrame( wxWindow* parent, wxWindowID id, const wxString& title, co
|
||||
m_staticText6->Wrap( -1 );
|
||||
gbSizer3->Add( m_staticText6, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||
|
||||
m_mountPathDirPicker = new wxDirPickerCtrl( sbSizer41->GetStaticBox(), wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_DEFAULT_STYLE|wxDIRP_USE_TEXTCTRL );
|
||||
m_staticText61 = new wxStaticText( sbSizer41->GetStaticBox(), wxID_ANY, _("Data path"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText61->Wrap( -1 );
|
||||
gbSizer3->Add( m_staticText61, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||
|
||||
m_mountPathDirPicker = new wxDirPickerCtrl( sbSizer41->GetStaticBox(), wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_USE_TEXTCTRL );
|
||||
gbSizer3->Add( m_mountPathDirPicker, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
|
||||
|
||||
m_dataPathDirPicker = new wxDirPickerCtrl( sbSizer41->GetStaticBox(), wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_USE_TEXTCTRL );
|
||||
gbSizer3->Add( m_dataPathDirPicker, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
|
||||
|
||||
|
||||
gbSizer3->AddGrowableCol( 1 );
|
||||
|
||||
@@ -141,9 +148,12 @@ MainFrame::MainFrame( wxWindow* parent, wxWindowID id, const wxString& title, co
|
||||
this->Centre( wxBOTH );
|
||||
|
||||
// Connect Events
|
||||
m_notebook1->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( MainFrame::OnNotebookPageChanged ), NULL, this );
|
||||
m_notebook1->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, wxNotebookEventHandler( MainFrame::OnNotebookPageChanging ), NULL, this );
|
||||
m_startStopButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainFrame::OnStartStopButtonClick ), NULL, this );
|
||||
m_javaHomeDirPicker->Connect( wxEVT_COMMAND_DIRPICKER_CHANGED, wxFileDirPickerEventHandler( MainFrame::OnJavaHomeChanged ), NULL, this );
|
||||
m_mountPathDirPicker->Connect( wxEVT_COMMAND_DIRPICKER_CHANGED, wxFileDirPickerEventHandler( MainFrame::OnMountPathChanged ), NULL, this );
|
||||
m_dataPathDirPicker->Connect( wxEVT_COMMAND_DIRPICKER_CHANGED, wxFileDirPickerEventHandler( MainFrame::OnDataPathChanged ), NULL, this );
|
||||
}
|
||||
|
||||
MainFrame::~MainFrame()
|
||||
|
||||
@@ -52,19 +52,24 @@ class MainFrame : public wxFrame
|
||||
wxDirPickerCtrl* m_javaHomeDirPicker;
|
||||
wxStaticText* m_staticText2;
|
||||
wxStaticText* m_staticText6;
|
||||
wxStaticText* m_staticText61;
|
||||
wxDirPickerCtrl* m_mountPathDirPicker;
|
||||
wxDirPickerCtrl* m_dataPathDirPicker;
|
||||
wxPanel* m_panel4;
|
||||
wxPanel* m_panel5;
|
||||
|
||||
// Virtual event handlers, override them in your derived class
|
||||
virtual void OnNotebookPageChanged( wxNotebookEvent& event ) { event.Skip(); }
|
||||
virtual void OnNotebookPageChanging( wxNotebookEvent& event ) { event.Skip(); }
|
||||
virtual void OnStartStopButtonClick( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnJavaHomeChanged( wxFileDirPickerEvent& event ) { event.Skip(); }
|
||||
virtual void OnMountPathChanged( wxFileDirPickerEvent& event ) { event.Skip(); }
|
||||
virtual void OnDataPathChanged( wxFileDirPickerEvent& event ) { event.Skip(); }
|
||||
|
||||
|
||||
public:
|
||||
|
||||
MainFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("DHFS"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 499,341 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("DHFS") );
|
||||
MainFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("DHFS"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 600,400 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("DHFS") );
|
||||
|
||||
~MainFrame();
|
||||
|
||||
|
||||
@@ -12,15 +12,12 @@ LauncherAppMainFrame::LauncherAppMainFrame(wxWindow* parent)
|
||||
: MainFrame(parent) {
|
||||
m_javaHomeDirPicker->SetPath(wxFileConfig::Get()->Read(kJavaHomeSettingsKey));
|
||||
m_mountPathDirPicker->SetPath(wxFileConfig::Get()->Read(kMountPointSettingsKey));
|
||||
wxGridSizer* bSizer4;
|
||||
bSizer4 = new wxGridSizer(1, 0, 0);
|
||||
m_dataPathDirPicker->SetPath(wxFileConfig::Get()->Read(kDataDirSettingsKey));
|
||||
|
||||
m_panel5->SetSizer(bSizer4);
|
||||
m_webViewSizer = new wxGridSizer(1, 0, 0);
|
||||
m_panel5->SetSizer(m_webViewSizer);
|
||||
m_panel5->Layout();
|
||||
bSizer4->Fit(m_panel5);
|
||||
m_webView = wxWebView::New(m_panel5, wxID_ANY);
|
||||
bSizer4->Add(m_webView, 0, wxALL | wxEXPAND);
|
||||
m_webView->LoadURL("http://localhost:8080");
|
||||
m_webViewSizer->Fit(m_panel5);
|
||||
|
||||
Bind(NEW_LINE_OUTPUT_EVENT, &LauncherAppMainFrame::onNewLineOutput, this);
|
||||
Bind(SHUTDOWN_EVENT, &LauncherAppMainFrame::onShutdown, this);
|
||||
@@ -40,7 +37,6 @@ void LauncherAppMainFrame::updateState() {
|
||||
m_statusBar1->SetStatusText("Running", 0);
|
||||
break;
|
||||
case DhfsInstanceState::STOPPED: {
|
||||
// wxFileConfig::Get()->Read(kJavaHomeSettingsKey).ToStdString();
|
||||
m_statusText->SetLabel("Stopped");
|
||||
m_startStopButton->SetLabel("Start");
|
||||
m_statusBar1->SetStatusText("Stopped", 0);
|
||||
@@ -59,11 +55,12 @@ void LauncherAppMainFrame::OnStartStopButtonClick(wxCommandEvent& event) {
|
||||
case DhfsInstanceState::STOPPED: {
|
||||
DhfsStartOptions options;
|
||||
options.java_home = wxFileConfig::Get()->Read(kJavaHomeSettingsKey);
|
||||
options.xmx = "512m"; // Default memory allocation, can be changed
|
||||
options.xmx = "512m";
|
||||
options.mount_path = wxFileConfig::Get()->Read(kMountPointSettingsKey);
|
||||
options.data_path = "/Users/stepus53/dhfs_test/launcher/data";
|
||||
options.jar_path = "/Users/stepus53/projects/dhfs/dhfs-parent/dhfs-fuse/target/quarkus-app/quarkus-run.jar";
|
||||
options.webui_path = "/Users/stepus53/projects/dhfs/webui/dist";
|
||||
options.data_path = wxFileConfig::Get()->Read(kDataDirSettingsKey);
|
||||
std::string bundlePath = wxGetenv("DHFS_BUNDLE_PATH");
|
||||
options.jar_path = bundlePath + "/app/Server/quarkus-run.jar";
|
||||
options.webui_path = bundlePath + "/app/Webui";
|
||||
|
||||
_dhfsInstance.start(options);
|
||||
break;
|
||||
@@ -82,11 +79,37 @@ void LauncherAppMainFrame::OnMountPathChanged(wxFileDirPickerEvent& event) {
|
||||
wxFileConfig::Get()->Write(kMountPointSettingsKey, event.GetPath());
|
||||
}
|
||||
|
||||
void LauncherAppMainFrame::OnDataPathChanged(wxFileDirPickerEvent& event) {
|
||||
wxFileConfig::Get()->Write(kDataDirSettingsKey, event.GetPath());
|
||||
}
|
||||
|
||||
void LauncherAppMainFrame::onNewLineOutput(wxCommandEvent& event) {
|
||||
m_logOutputTextCtrl->AppendText(event.GetString());
|
||||
}
|
||||
|
||||
void LauncherAppMainFrame::OnNotebookPageChanged(wxBookCtrlEvent& event) {
|
||||
}
|
||||
|
||||
void LauncherAppMainFrame::OnNotebookPageChanging(wxBookCtrlEvent& event) {
|
||||
if (event.GetSelection() == 4) prepareWebview();
|
||||
else unloadWebview();
|
||||
}
|
||||
|
||||
void LauncherAppMainFrame::onShutdown(wxCommandEvent& event) {
|
||||
m_logOutputTextCtrl->AppendText("Shutdown");
|
||||
updateState();
|
||||
}
|
||||
|
||||
void LauncherAppMainFrame::unloadWebview() {
|
||||
if (m_webView != nullptr) {
|
||||
m_webViewSizer->Detach(m_webView);
|
||||
m_webView->Destroy();
|
||||
m_webView = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void LauncherAppMainFrame::prepareWebview() {
|
||||
m_webView = wxWebView::New(m_panel5, wxID_ANY);
|
||||
m_webViewSizer->Add(m_webView, 0, wxALL | wxEXPAND);
|
||||
m_webView->LoadURL("http://localhost:8080");
|
||||
m_panel5->Layout();
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ Subclass of MainFrame, which is generated by wxFormBuilder.
|
||||
|
||||
static constexpr auto kJavaHomeSettingsKey = "DHFS/JavaHome";
|
||||
static constexpr auto kMountPointSettingsKey = "DHFS/MountDir";
|
||||
static constexpr auto kDataDirSettingsKey = "DHFS/DataDir";
|
||||
|
||||
wxDECLARE_EVENT(NEW_LINE_OUTPUT_EVENT, wxCommandEvent);
|
||||
wxDECLARE_EVENT(SHUTDOWN_EVENT, wxCommandEvent);
|
||||
@@ -30,12 +31,21 @@ protected:
|
||||
|
||||
void OnMountPathChanged(wxFileDirPickerEvent& event) override;
|
||||
|
||||
void OnDataPathChanged(wxFileDirPickerEvent& event) override;
|
||||
|
||||
void OnNotebookPageChanged(wxNotebookEvent& event) override;
|
||||
|
||||
void OnNotebookPageChanging(wxNotebookEvent& event) override;
|
||||
|
||||
void onNewLineOutput(wxCommandEvent& event);
|
||||
|
||||
void onShutdown(wxCommandEvent& event);
|
||||
|
||||
void updateState();
|
||||
|
||||
void unloadWebview();
|
||||
void prepareWebview();
|
||||
|
||||
public:
|
||||
/** Constructor */
|
||||
LauncherAppMainFrame(wxWindow* parent);
|
||||
@@ -43,7 +53,8 @@ public:
|
||||
//// end generated class members
|
||||
|
||||
private:
|
||||
wxWebView* m_webView;
|
||||
wxWebView* m_webView = nullptr;
|
||||
wxGridSizer* m_webViewSizer;
|
||||
|
||||
DhfsGuiInstance _dhfsInstance{*this};
|
||||
};
|
||||
|
||||
@@ -47,10 +47,10 @@
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="minimum_size">100,50</property>
|
||||
<property name="minimum_size">600,400</property>
|
||||
<property name="name">MainFrame</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">499,341</property>
|
||||
<property name="size">600,400</property>
|
||||
<property name="style">wxDEFAULT_FRAME_STYLE</property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="title">DHFS</property>
|
||||
@@ -147,6 +147,8 @@
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnNotebookPageChanged">OnNotebookPageChanged</event>
|
||||
<event name="OnNotebookPageChanging">OnNotebookPageChanging</event>
|
||||
<object class="notebookpage" expanded="true">
|
||||
<property name="bitmap"></property>
|
||||
<property name="label">Info</property>
|
||||
@@ -402,7 +404,7 @@
|
||||
<object class="notebookpage" expanded="true">
|
||||
<property name="bitmap"></property>
|
||||
<property name="label">Logs</property>
|
||||
<property name="select">0</property>
|
||||
<property name="select">1</property>
|
||||
<object class="wxPanel" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
@@ -504,7 +506,7 @@
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_textCtrl2</property>
|
||||
<property name="name">m_logOutputTextCtrl</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
@@ -535,7 +537,7 @@
|
||||
<property name="bitmap"></property>
|
||||
<property name="label">Settings</property>
|
||||
<property name="select">0</property>
|
||||
<object class="wxPanel" expanded="false">
|
||||
<object class="wxPanel" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
@@ -587,16 +589,16 @@
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style">wxTAB_TRAVERSAL</property>
|
||||
<object class="wxBoxSizer" expanded="false">
|
||||
<object class="wxBoxSizer" expanded="true">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">bSizer5</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="false">
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxEXPAND|wxFIXED_MINSIZE</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxStaticBoxSizer" expanded="false">
|
||||
<object class="wxStaticBoxSizer" expanded="true">
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">JVM</property>
|
||||
<property name="minimum_size"></property>
|
||||
@@ -604,11 +606,11 @@
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="parent">1</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="false">
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxGridBagSizer" expanded="false">
|
||||
<object class="wxGridBagSizer" expanded="true">
|
||||
<property name="empty_cell_size"></property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols">1</property>
|
||||
@@ -847,11 +849,11 @@
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="false">
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxStaticBoxSizer" expanded="false">
|
||||
<object class="wxStaticBoxSizer" expanded="true">
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Paths</property>
|
||||
<property name="minimum_size"></property>
|
||||
@@ -859,11 +861,11 @@
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="parent">1</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="false">
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxGridBagSizer" expanded="false">
|
||||
<object class="wxGridBagSizer" expanded="true">
|
||||
<property name="empty_cell_size"></property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols">1</property>
|
||||
@@ -939,6 +941,71 @@
|
||||
<property name="wrap">-1</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="gbsizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="colspan">1</property>
|
||||
<property name="column">0</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||
<property name="row">1</property>
|
||||
<property name="rowspan">1</property>
|
||||
<object class="wxStaticText" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Data path</property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_staticText61</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<property name="wrap">-1</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="gbsizeritem" expanded="false">
|
||||
<property name="border">5</property>
|
||||
<property name="colspan">1</property>
|
||||
@@ -993,7 +1060,7 @@
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style">wxDIRP_DEFAULT_STYLE|wxDIRP_USE_TEXTCTRL</property>
|
||||
<property name="style">wxDIRP_USE_TEXTCTRL</property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
@@ -1008,6 +1075,75 @@
|
||||
<event name="OnDirChanged">OnMountPathChanged</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="gbsizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="colspan">1</property>
|
||||
<property name="column">1</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="row">1</property>
|
||||
<property name="rowspan">1</property>
|
||||
<object class="wxDirPickerCtrl" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="message">Select a folder</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_dataPathDirPicker</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style">wxDIRP_USE_TEXTCTRL</property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="value"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnDirChanged">OnDataPathChanged</event>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
@@ -1076,7 +1212,7 @@
|
||||
<object class="notebookpage" expanded="true">
|
||||
<property name="bitmap"></property>
|
||||
<property name="label">a page</property>
|
||||
<property name="select">1</property>
|
||||
<property name="select">0</property>
|
||||
<object class="wxPanel" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
|
||||
Reference in New Issue
Block a user