f6bcfd974e
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
648 lines
18 KiB
C++
648 lines
18 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wxib.cpp
|
|
// Purpose: wxInstall Builder
|
|
// Author: Julian Smart
|
|
// Author: Brian Smith
|
|
// Modified by:
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// ============================================================================
|
|
// declarations
|
|
// ============================================================================
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// headers
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// For compilers that support precompilation, includes "wx/wx.h".
|
|
#include <wx/wxprec.h>
|
|
|
|
#ifdef __BORLANDC__
|
|
#pragma hdrstop
|
|
#endif
|
|
|
|
#ifndef WX_PRECOMP
|
|
#include <wx/wx.h>
|
|
#endif
|
|
|
|
#include <wx/toolbar.h>
|
|
#include <wx/log.h>
|
|
#include <wx/image.h>
|
|
|
|
// define this to 1 to use wxToolBarSimple instead of the native one
|
|
#define USE_GENERIC_TBAR 0
|
|
|
|
#if USE_GENERIC_TBAR
|
|
#if !wxUSE_TOOLBAR_SIMPLE
|
|
#error wxToolBarSimple is not compiled in, set wxUSE_TOOLBAR_SIMPLE \
|
|
to 1 in setup.h and recompile the library.
|
|
#else
|
|
#include <wx/tbarsmpl.h>
|
|
#endif
|
|
#endif // USE_GENERIC_TBAR
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// resources
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#if defined(__WXGTK__) || defined(__WXMOTIF__)
|
|
#include "mondrian.xpm"
|
|
#include "bitmaps/new.xpm"
|
|
#include "bitmaps/open.xpm"
|
|
#include "bitmaps/save.xpm"
|
|
#include "bitmaps/copy.xpm"
|
|
#include "bitmaps/cut.xpm"
|
|
#include "bitmaps/preview.xpm" // paste XPM
|
|
#include "bitmaps/print.xpm"
|
|
#include "bitmaps/help.xpm"
|
|
#endif // GTK or Motif
|
|
|
|
char appName[] = "wxInstall Builder";
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// classes
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// Define a new application
|
|
class MyApp : public wxApp
|
|
{
|
|
public:
|
|
bool OnInit();
|
|
};
|
|
|
|
// Define a new frame
|
|
class MyFrame: public wxFrame
|
|
{
|
|
public:
|
|
MyFrame(wxFrame *parent,
|
|
wxWindowID id = -1,
|
|
const wxString& title = "wxInstall Builder",
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxDEFAULT_FRAME_STYLE);
|
|
|
|
void RecreateToolbar();
|
|
|
|
void OnQuit(wxCommandEvent& event);
|
|
void OnAbout(wxCommandEvent& event);
|
|
|
|
void OnNewScript(wxCommandEvent& event);
|
|
void OnOpenScript(wxCommandEvent& event);
|
|
void OnSaveScript(wxCommandEvent& event);
|
|
void OnNewProject(wxCommandEvent& event);
|
|
void OnOpenProject(wxCommandEvent& event);
|
|
void OnSaveProject(wxCommandEvent& event);
|
|
|
|
void OnCut(wxCommandEvent& event);
|
|
void OnCopy(wxCommandEvent& event);
|
|
void OnPaste(wxCommandEvent& event);
|
|
|
|
void OnListBoxDoubleClick(wxCommandEvent& event);
|
|
|
|
#if USE_GENERIC_TBAR
|
|
virtual wxToolBar *OnCreateToolBar(long style,
|
|
wxWindowID id,
|
|
const wxString& name );
|
|
#endif // USE_GENERIC_TBAR
|
|
|
|
private:
|
|
bool m_smallToolbar,
|
|
m_horzToolbar;
|
|
size_t m_rows; // 1 or 2 only
|
|
|
|
wxTextCtrl* m_textWindow;
|
|
wxListBox* m_listBox;
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// constants
|
|
// ----------------------------------------------------------------------------
|
|
|
|
const int ID_TOOLBAR = 500;
|
|
|
|
enum
|
|
{
|
|
ID_COMBO = 1000,
|
|
ID_LISTBOX,
|
|
wxID_NEW_SCRIPT,
|
|
wxID_SAVE_SCRIPT,
|
|
wxID_OPEN_SCRIPT,
|
|
wxID_NEW_PROJECT,
|
|
wxID_SAVE_PROJECT,
|
|
wxID_OPEN_PROJECT
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// event tables
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// Notice that wxID_HELP will be processed for the 'About' menu and the toolbar
|
|
// help button.
|
|
|
|
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
|
|
EVT_MENU(wxID_HELP, MyFrame::OnAbout)
|
|
|
|
EVT_MENU(wxID_NEW_SCRIPT, MyFrame::OnNewScript)
|
|
EVT_MENU(wxID_OPEN_SCRIPT, MyFrame::OnOpenScript)
|
|
EVT_MENU(wxID_SAVE_SCRIPT, MyFrame::OnSaveScript)
|
|
EVT_MENU(wxID_NEW_PROJECT, MyFrame::OnNewProject)
|
|
EVT_MENU(wxID_OPEN_PROJECT, MyFrame::OnOpenProject)
|
|
EVT_MENU(wxID_SAVE_PROJECT, MyFrame::OnSaveProject)
|
|
|
|
EVT_MENU(wxID_CUT, MyFrame::OnCut)
|
|
EVT_MENU(wxID_COPY, MyFrame::OnCopy)
|
|
EVT_MENU(wxID_PASTE, MyFrame::OnPaste)
|
|
|
|
EVT_LISTBOX_DCLICK(ID_LISTBOX, MyFrame::OnListBoxDoubleClick)
|
|
END_EVENT_TABLE()
|
|
|
|
// ============================================================================
|
|
// implementation
|
|
// ============================================================================
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// MyApp
|
|
// ----------------------------------------------------------------------------
|
|
|
|
IMPLEMENT_APP(MyApp)
|
|
|
|
// The `main program' equivalent, creating the windows and returning the
|
|
// main frame
|
|
bool MyApp::OnInit()
|
|
{
|
|
// Create the main frame window
|
|
MyFrame* frame = new MyFrame((wxFrame *) NULL, -1,
|
|
"wxInstall Builder",
|
|
wxPoint(100, 100), wxSize(450, 300));
|
|
|
|
frame->SetAutoLayout(TRUE);
|
|
|
|
frame->Show(TRUE);
|
|
|
|
frame->SetStatusText("Welcome to wxWindows Install Builder");
|
|
|
|
SetTopWindow(frame);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void MyFrame::RecreateToolbar()
|
|
{
|
|
// delete and recreate the toolbar
|
|
wxToolBarBase *toolBar = GetToolBar();
|
|
delete toolBar;
|
|
|
|
SetToolBar(NULL);
|
|
|
|
long style = wxNO_BORDER | wxTB_FLAT | wxTB_DOCKABLE;
|
|
style |= m_horzToolbar ? wxTB_HORIZONTAL : wxTB_VERTICAL;
|
|
|
|
toolBar = CreateToolBar(style, ID_TOOLBAR);
|
|
toolBar->SetMargins( 4, 4 );
|
|
|
|
// Set up toolbar
|
|
wxBitmap toolBarBitmaps[8];
|
|
|
|
toolBarBitmaps[0] = wxBITMAP(new);
|
|
toolBarBitmaps[1] = wxBITMAP(open);
|
|
toolBarBitmaps[2] = wxBITMAP(save);
|
|
toolBarBitmaps[3] = wxBITMAP(copy);
|
|
toolBarBitmaps[4] = wxBITMAP(cut);
|
|
toolBarBitmaps[5] = wxBITMAP(paste);
|
|
toolBarBitmaps[6] = wxBITMAP(print);
|
|
toolBarBitmaps[7] = wxBITMAP(help);
|
|
|
|
if ( !m_smallToolbar )
|
|
{
|
|
int w = 2*toolBarBitmaps[0].GetWidth(),
|
|
h = 2*toolBarBitmaps[0].GetHeight();
|
|
for ( size_t n = 0; n < WXSIZEOF(toolBarBitmaps); n++ )
|
|
{
|
|
toolBarBitmaps[n] =
|
|
wxImage(toolBarBitmaps[n]).Scale(w, h).ConvertToBitmap();
|
|
}
|
|
|
|
toolBar->SetToolBitmapSize(wxSize(w, h));
|
|
}
|
|
|
|
#ifdef __WXMSW__
|
|
int width = 24;
|
|
#else
|
|
int width = 16;
|
|
#endif
|
|
|
|
int currentX = 5;
|
|
|
|
toolBar->AddTool(wxID_NEW_SCRIPT, toolBarBitmaps[0], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "New script");
|
|
currentX += width + 5;
|
|
toolBar->AddTool(wxID_OPEN_SCRIPT, toolBarBitmaps[1], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Open script");
|
|
|
|
// neither the generic nor Motif native toolbars really support this
|
|
currentX += width + 5;
|
|
toolBar->AddTool(wxID_SAVE_SCRIPT, toolBarBitmaps[2], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Save script");
|
|
currentX += width + 5;
|
|
toolBar->AddTool(wxID_COPY, toolBarBitmaps[3], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Copy");
|
|
currentX += width + 5;
|
|
toolBar->AddTool(wxID_CUT, toolBarBitmaps[4], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Cut");
|
|
currentX += width + 5;
|
|
toolBar->AddTool(wxID_PASTE, toolBarBitmaps[5], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Paste");
|
|
currentX += width + 5;
|
|
toolBar->AddSeparator();
|
|
toolBar->AddTool(wxID_HELP, toolBarBitmaps[7], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Help button");
|
|
|
|
// after adding the buttons to the toolbar, must call Realize() to reflect
|
|
// the changes
|
|
toolBar->Realize();
|
|
|
|
toolBar->SetRows(m_horzToolbar ? m_rows : 10 / m_rows);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// MyFrame
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// Define my frame constructor
|
|
MyFrame::MyFrame(wxFrame* parent,
|
|
wxWindowID id,
|
|
const wxString& title,
|
|
const wxPoint& pos,
|
|
const wxSize& size,
|
|
long style)
|
|
: wxFrame(parent, id, title, pos, size, style)
|
|
{
|
|
m_listBox = new wxListBox(this, ID_LISTBOX, wxPoint(0,0), wxSize(-1, -1));
|
|
|
|
m_listBox->Append("loadwxr");
|
|
m_listBox->Append("closeold");
|
|
m_listBox->Append("mleview");
|
|
m_listBox->Append("setbutton");
|
|
m_listBox->Append("getcheck");
|
|
m_listBox->Append("message");
|
|
m_listBox->Append("disable");
|
|
m_listBox->Append("settext");
|
|
m_listBox->Append("gettext");
|
|
m_listBox->Append("grabfile");
|
|
m_listBox->Append("remove");
|
|
m_listBox->Append("system");
|
|
m_listBox->Append("startinst");
|
|
|
|
wxLayoutConstraints *b1 = new wxLayoutConstraints;
|
|
b1->left.SameAs (this, wxLeft, 0);
|
|
b1->top.SameAs (this, wxTop, 0);
|
|
b1->width.PercentOf (this, wxWidth, 20);
|
|
b1->bottom.SameAs (this, wxBottom, 0);
|
|
m_listBox->SetConstraints(b1);
|
|
|
|
m_textWindow = new wxTextCtrl(this, -1, "", wxPoint(0,0), wxSize(-1, -1), wxTE_MULTILINE);
|
|
|
|
m_textWindow->AppendText("; Script generated by wxInstall Builder\n");
|
|
|
|
wxLayoutConstraints *b2 = new wxLayoutConstraints;
|
|
b2->top.SameAs (this, wxTop, 0);
|
|
b2->left.SameAs (m_listBox, wxRight, 0);
|
|
b2->width.PercentOf (this, wxWidth, 80);
|
|
b2->bottom.SameAs (this, wxBottom, 0);
|
|
m_textWindow->SetConstraints(b2);
|
|
|
|
m_smallToolbar = TRUE;
|
|
m_horzToolbar = TRUE;
|
|
m_rows = 1;
|
|
|
|
// Give it a status line
|
|
CreateStatusBar();
|
|
|
|
// Give it an icon
|
|
SetIcon(wxICON(mondrian));
|
|
|
|
wxMenu *fileMenu = new wxMenu;
|
|
fileMenu->Append(wxID_NEW_SCRIPT, "&New Script", "New wxInstall Script" );
|
|
fileMenu->Append(wxID_OPEN_SCRIPT, "&Open Script", "Open wxInstall Script" );
|
|
fileMenu->Append(wxID_SAVE_SCRIPT, "&Save Script", "Save wxInstall Script" );
|
|
fileMenu->AppendSeparator();
|
|
/*fileMenu->Append(wxID_NEW_PROJECT, "N&ew Project", "New wxInstall Project" );
|
|
fileMenu->Append(wxID_OPEN_PROJECT, "O&pen Project", "Open wxInstall Project" );
|
|
fileMenu->Append(wxID_SAVE_PROJECT, "S&ave Project", "Save wxInstall Project" );
|
|
fileMenu->AppendSeparator();*/
|
|
fileMenu->Append(wxID_EXIT, "E&xit", "Quit wxInstall Builder" );
|
|
|
|
wxMenu *helpMenu = new wxMenu;
|
|
helpMenu->Append(wxID_HELP, "&About", "About wxInstall Builder");
|
|
|
|
wxMenuBar* menuBar = new wxMenuBar( wxMB_DOCKABLE );
|
|
|
|
menuBar->Append(fileMenu, "&File");
|
|
menuBar->Append(helpMenu, "&Help");
|
|
|
|
// Associate the menu bar with the frame
|
|
SetMenuBar(menuBar);
|
|
|
|
// Create the toolbar
|
|
RecreateToolbar();
|
|
}
|
|
|
|
#if USE_GENERIC_TBAR
|
|
|
|
wxToolBar* MyFrame::OnCreateToolBar(long style,
|
|
wxWindowID id,
|
|
const wxString& name)
|
|
{
|
|
return (wxToolBar *)new wxToolBarSimple(this, id,
|
|
wxDefaultPosition, wxDefaultSize,
|
|
style, name);
|
|
}
|
|
|
|
#endif // USE_GENERIC_TBAR
|
|
|
|
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
|
|
{
|
|
Close(TRUE);
|
|
}
|
|
|
|
void MyFrame::OnCut(wxCommandEvent& WXUNUSED(event))
|
|
{
|
|
m_textWindow->Cut();
|
|
}
|
|
|
|
void MyFrame::OnCopy(wxCommandEvent& WXUNUSED(event))
|
|
{
|
|
m_textWindow->Copy();
|
|
}
|
|
|
|
void MyFrame::OnPaste(wxCommandEvent& WXUNUSED(event))
|
|
{
|
|
m_textWindow->Paste();
|
|
}
|
|
|
|
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
|
|
{
|
|
(void)wxMessageBox("wxInstall Builder by Brian Smith", "About wxInstall Builder");
|
|
}
|
|
|
|
void MyFrame::OnNewScript(wxCommandEvent& event)
|
|
{
|
|
m_textWindow->Clear();
|
|
m_textWindow->AppendText("; Script generated by wxInstall Builder\n");
|
|
}
|
|
|
|
void MyFrame::OnOpenScript(wxCommandEvent& event)
|
|
{
|
|
wxFileDialog dialog2(this, "Open Script", "", "", "*.ini", 0);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
m_textWindow->LoadFile(dialog2.GetPath());
|
|
}
|
|
|
|
void MyFrame::OnSaveScript(wxCommandEvent& event)
|
|
{
|
|
wxFileDialog dialog2(this, "Save Script", "", "", "*.ini", 0);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
m_textWindow->SaveFile(dialog2.GetPath());
|
|
}
|
|
|
|
void MyFrame::OnNewProject(wxCommandEvent& event)
|
|
{
|
|
}
|
|
|
|
void MyFrame::OnOpenProject(wxCommandEvent& event)
|
|
{
|
|
}
|
|
|
|
void MyFrame::OnSaveProject(wxCommandEvent& event)
|
|
{
|
|
}
|
|
|
|
void MyFrame::OnListBoxDoubleClick( wxCommandEvent &event )
|
|
{
|
|
int item;
|
|
|
|
item = m_listBox->GetSelection();
|
|
|
|
switch(item)
|
|
{
|
|
case 0:
|
|
{
|
|
wxFileDialog dialog2(this, "Choose wxr filename", "", "", "*.wxr", 0);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
char tempbuf[1024] = "DialogEd ";
|
|
wxString tmp = dialog2.GetFilename();
|
|
|
|
m_textWindow->WriteText("loadwxr,");
|
|
m_textWindow->WriteText(tmp);
|
|
m_textWindow->WriteText("\n");
|
|
|
|
strcat(tempbuf, tmp);
|
|
wxExecute(tempbuf);
|
|
}
|
|
}
|
|
break;
|
|
case 1:
|
|
{
|
|
m_textWindow->WriteText("closeold\n");
|
|
}
|
|
break;
|
|
case 2:
|
|
{
|
|
wxFileDialog dialog2(this, "Choose filename to view", "", "", "*.txt", 0);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
wxTextEntryDialog dialog3(this,
|
|
"Please enter name of the MLE widget",
|
|
appName,
|
|
"",
|
|
wxOK | wxCANCEL);
|
|
|
|
if (dialog3.ShowModal() == wxID_OK)
|
|
{
|
|
m_textWindow->WriteText("mleview,");
|
|
m_textWindow->WriteText(dialog3.GetValue());
|
|
m_textWindow->WriteText(",");
|
|
m_textWindow->WriteText(dialog2.GetFilename());
|
|
m_textWindow->WriteText("\n");
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 3:
|
|
{
|
|
wxFileDialog dialog2(this, "Choose script to attach to button", "", "", "*.ini", 0);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
wxTextEntryDialog dialog3(this,
|
|
"Please enter ID of the button",
|
|
appName,
|
|
"",
|
|
wxOK | wxCANCEL);
|
|
|
|
if (dialog3.ShowModal() == wxID_OK)
|
|
{
|
|
m_textWindow->WriteText("setbutton,");
|
|
m_textWindow->WriteText(dialog3.GetValue());
|
|
m_textWindow->WriteText(",");
|
|
m_textWindow->WriteText(dialog2.GetFilename());
|
|
m_textWindow->WriteText("\n");
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 4:
|
|
{
|
|
wxFileDialog dialog2(this, "Choose script to run if not checked", "", "", "*.ini", 0);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
wxTextEntryDialog dialog3(this,
|
|
"Please enter name of the checkbox widget",
|
|
appName,
|
|
"",
|
|
wxOK | wxCANCEL);
|
|
|
|
if (dialog3.ShowModal() == wxID_OK)
|
|
{
|
|
m_textWindow->WriteText("getcheck,");
|
|
m_textWindow->WriteText(dialog3.GetValue());
|
|
m_textWindow->WriteText(",");
|
|
m_textWindow->WriteText(dialog2.GetFilename());
|
|
m_textWindow->WriteText("\n");
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 5:
|
|
{
|
|
wxTextEntryDialog dialog2(this,
|
|
"Please enter the message to display to the user",
|
|
appName,
|
|
"",
|
|
wxOK | wxCANCEL);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
m_textWindow->WriteText("message,\"");
|
|
m_textWindow->WriteText(dialog2.GetValue());
|
|
m_textWindow->WriteText("\"\n");
|
|
}
|
|
}
|
|
break;
|
|
case 6:
|
|
{
|
|
wxTextEntryDialog dialog2(this,
|
|
"Please enter the widget name to disable",
|
|
appName,
|
|
"",
|
|
wxOK | wxCANCEL);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
m_textWindow->WriteText("disable,");
|
|
m_textWindow->WriteText(dialog2.GetValue());
|
|
m_textWindow->WriteText("\n");
|
|
}
|
|
}
|
|
break;
|
|
case 7:
|
|
{
|
|
wxTextEntryDialog dialog2(this,
|
|
"Please enter text widget name to set from",
|
|
appName,
|
|
"",
|
|
wxOK | wxCANCEL);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
m_textWindow->WriteText("settext,");
|
|
m_textWindow->WriteText(dialog2.GetValue());
|
|
m_textWindow->WriteText("\n");
|
|
}
|
|
}
|
|
break;
|
|
case 8:
|
|
{
|
|
wxTextEntryDialog dialog2(this,
|
|
"Please enter text widget name to get from",
|
|
appName,
|
|
"",
|
|
wxOK | wxCANCEL);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
m_textWindow->WriteText("gettext,");
|
|
m_textWindow->WriteText(dialog2.GetValue());
|
|
m_textWindow->WriteText("\n");
|
|
}
|
|
}
|
|
break;
|
|
case 9:
|
|
{
|
|
wxFileDialog dialog2(this, "Choose file to grab", "", "", "*", 0);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
m_textWindow->WriteText("grabfile,");
|
|
m_textWindow->WriteText(dialog2.GetFilename());
|
|
m_textWindow->WriteText("\n");
|
|
}
|
|
}
|
|
break;
|
|
case 10:
|
|
{
|
|
wxFileDialog dialog2(this, "Choose file to remove", "", "", "*", 0);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
m_textWindow->WriteText("remove,");
|
|
m_textWindow->WriteText(dialog2.GetFilename());
|
|
m_textWindow->WriteText("\n");
|
|
}
|
|
}
|
|
break;
|
|
case 11:
|
|
{
|
|
wxTextEntryDialog dialog2(this,
|
|
"Please enter the command to execute",
|
|
appName,
|
|
"",
|
|
wxOK | wxCANCEL);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
m_textWindow->WriteText("system,");
|
|
m_textWindow->WriteText(dialog2.GetValue());
|
|
m_textWindow->WriteText("\n");
|
|
}
|
|
}
|
|
break;
|
|
case 12:
|
|
{
|
|
wxFileDialog dialog2(this, "Choose script to run at installation completion", "", "", "*.ini", 0);
|
|
|
|
if (dialog2.ShowModal() == wxID_OK)
|
|
{
|
|
wxTextEntryDialog dialog3(this,
|
|
"Please enter name of the gauge widget",
|
|
appName,
|
|
"",
|
|
wxOK | wxCANCEL);
|
|
|
|
if (dialog3.ShowModal() == wxID_OK)
|
|
{
|
|
m_textWindow->WriteText("startinst,");
|
|
m_textWindow->WriteText(dialog3.GetValue());
|
|
m_textWindow->WriteText(",");
|
|
m_textWindow->WriteText(dialog2.GetFilename());
|
|
m_textWindow->WriteText("\n");
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|