Added 'Go' button for quickly saving setup or configure file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21207 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
d2739ea6db
commit
afc5159044
File diff suppressed because it is too large
Load Diff
@ -386,6 +386,8 @@ with files.
|
||||
\twocolitem{{\bf Save Setup.h...} (Ctrl+H)}{Saves the generated setup.h file in the specified location.}
|
||||
\twocolitem{{\bf Save Configure Script...} (Ctrl+G)}{Saves the generated script containing a configure command in the specified location.}
|
||||
\twocolitem{\hrule}{\htmlonly{\hrule}}
|
||||
\twocolitem{{\bf Go} (F5)}{Saves the generated setup.h file or configurewx.sh script (according to the default setting) in the last-saved.}
|
||||
\twocolitem{\hrule}{\htmlonly{\hrule}}
|
||||
\twocolitem{{\bf Exit} (Alt+F4)}{Exits the program.}
|
||||
\end{twocollist}
|
||||
|
||||
@ -494,6 +496,8 @@ commands.
|
||||
\twocolitem{\image{}{cut.png}{\bf Cut}}{Cuts the selected option and copies it to the internal clipboard..}
|
||||
\twocolitem{\image{}{paste.png}{\bf Paste}}{Pastes the option from the clipboard to the configuration tree.}
|
||||
\twocolitem{\hrule}{\htmlonly{\hrule}}
|
||||
\twocolitem{\image{}{go.png}{\bf Go}}{Saves the generated setup.h file or configurewx.sh script (according to the default setting) in the last-saved.}
|
||||
\twocolitem{\hrule}{\htmlonly{\hrule}}
|
||||
\twocolitem{\image{}{help.png}{\bf Help}}{Shows the wxWindows manual topic for the
|
||||
\twocolitem{\image{}{helpcs.png}{\bf Context Help}}{Shows a context-sensitive help
|
||||
cursor; click on a window to show brief help about that window.}
|
||||
@ -605,6 +609,11 @@ or group. For each radio option, all other mutually
|
||||
exclusive options need to be listed. See the
|
||||
{\bf Target} group for an example of this.
|
||||
|
||||
The results of these dependencies can be overridden by
|
||||
indeterminate-if, which is done last of all and can
|
||||
make the option user-selectable when otherwise it
|
||||
would be constrained to be enabled or disabled.
|
||||
|
||||
\section{How \ctshortname generates the configure commands}
|
||||
|
||||
If the {\bf configure} property isn't empty,
|
||||
@ -657,8 +666,8 @@ if the option is constrained to always be disabled
|
||||
or enabled in the current context, then it is greyed out
|
||||
(deactivated) to prevent the user from changing the state.
|
||||
|
||||
There are four kinds of dependencies: requires, precludes,
|
||||
enabled-if, and enabled-if-not. Each one represents a
|
||||
There are five kinds of dependencies: requires, precludes,
|
||||
enabled-if, enabled-if-not, and indeterminate-if. Each one represents a
|
||||
relationship between the current option (a) and one
|
||||
or more named options (b). For the sake of argument
|
||||
we will consider only one other option, but multiple
|
||||
@ -715,6 +724,24 @@ For example, wxUSE_TOOLBAR_SIMPLE enabled-if-not wxUSE_TOOLBAR_NATIVE.
|
||||
1 1
|
||||
\end{verbatim}
|
||||
|
||||
5. a {\bf indeterminate-if} b
|
||||
|
||||
For example, wxUSE_UNICODE indeterminate-if Custom.
|
||||
|
||||
\begin{verbatim}
|
||||
a b
|
||||
|
||||
? 1
|
||||
\end{verbatim}
|
||||
|
||||
This overrides all the other dependencies, and allows you
|
||||
to make an option user-choosable in some circumstances,
|
||||
when otherwise it would be constrained to be either enabled or
|
||||
disabled. You may need to use an intermediate option to
|
||||
make sensible use of this: for example make the intermediate
|
||||
option dependent on a number of factors, such as Unicode not being
|
||||
available on some platforms.
|
||||
|
||||
\section{How to specify platform-specific dependencies}\label{platformdependencies}
|
||||
|
||||
You can associate one or more options as part of the
|
||||
|
BIN
utils/configtool/docs/manual/go.png
Normal file
BIN
utils/configtool/docs/manual/go.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 261 B |
@ -75,6 +75,7 @@ ctSettings::ctSettings()
|
||||
m_frameworkDir = wxEmptyString;
|
||||
m_matchWholeWord = FALSE;
|
||||
m_matchCase = FALSE;
|
||||
m_defaultFileKind = wxT("Setup file");
|
||||
}
|
||||
|
||||
// Copy constructor
|
||||
@ -95,7 +96,7 @@ void ctSettings::operator = (const ctSettings& settings)
|
||||
|
||||
void ctSettings::Copy (const ctSettings& settings)
|
||||
{
|
||||
m_currentDocumentDir = settings.m_currentDocumentDir;
|
||||
m_lastSetupSaveDir = settings.m_lastSetupSaveDir;
|
||||
m_lastDocument = settings.m_lastDocument;
|
||||
m_showToolBar = settings.m_showToolBar;
|
||||
m_frameSize = settings.m_frameSize;
|
||||
@ -118,12 +119,13 @@ void ctSettings::Copy (const ctSettings& settings)
|
||||
m_frameworkDir = settings.m_frameworkDir;
|
||||
m_matchWholeWord = settings.m_matchWholeWord;
|
||||
m_matchCase = settings.m_matchCase;
|
||||
m_defaultFileKind = settings.m_defaultFileKind ;
|
||||
}
|
||||
|
||||
// Do some initialisation within stApp::OnInit
|
||||
bool ctSettings::Init()
|
||||
{
|
||||
m_currentDocumentDir = wxEmptyString;
|
||||
m_lastSetupSaveDir = wxEmptyString;
|
||||
if (m_userName.IsEmpty())
|
||||
m_userName = wxGetUserName();
|
||||
|
||||
@ -164,7 +166,7 @@ bool ctSettings::LoadConfig()
|
||||
wxConfig config(wxGetApp().GetSettings().GetAppName(), wxT("wxWindows"));
|
||||
|
||||
config.Read(wxT("Files/LastFile"), & m_lastFilename);
|
||||
config.Read(wxT("Files/DocumentDir"), & m_currentDocumentDir);
|
||||
config.Read(wxT("Files/LastSetupSaveDir"), & m_lastSetupSaveDir);
|
||||
config.Read(wxT("Files/ExportDir"), & m_exportDir);
|
||||
config.Read(wxT("Files/FrameworkDir"), & m_frameworkDir);
|
||||
config.Read(wxT("Files/UseEnvironmentVariable"), (bool*) & m_useEnvironmentVariable);
|
||||
@ -179,6 +181,7 @@ bool ctSettings::LoadConfig()
|
||||
config.Read(wxT("Misc/ShowTrayIcon"), (bool*) & m_showTrayIcon);
|
||||
config.Read(wxT("Misc/MatchWholeWord"), (bool*) & m_matchWholeWord);
|
||||
config.Read(wxT("Misc/MatchCase"), (bool*) & m_matchCase);
|
||||
config.Read(wxT("Misc/BuildMode"), & m_defaultFileKind );
|
||||
|
||||
m_noUses ++;
|
||||
|
||||
@ -224,7 +227,7 @@ bool ctSettings::SaveConfig()
|
||||
wxConfig config(wxGetApp().GetSettings().GetAppName(), wxT("wxWindows"));
|
||||
|
||||
config.Write(wxT("Files/LastFile"), m_lastFilename);
|
||||
config.Write(wxT("Files/DocumentDir"), m_currentDocumentDir);
|
||||
config.Write(wxT("Files/LastSetupSaveDir"), m_lastSetupSaveDir);
|
||||
config.Write(wxT("Files/ExportDir"), m_exportDir);
|
||||
config.Write(wxT("Files/FrameworkDir"), m_frameworkDir);
|
||||
config.Write(wxT("Files/UseEnvironmentVariable"), m_useEnvironmentVariable);
|
||||
@ -239,6 +242,7 @@ bool ctSettings::SaveConfig()
|
||||
config.Write(wxT("Misc/ShowTrayIcon"), (long) m_showTrayIcon);
|
||||
config.Write(wxT("Misc/MatchWholeWord"), (long) m_matchWholeWord);
|
||||
config.Write(wxT("Misc/MatchCase"), (long) m_matchCase);
|
||||
config.Write(wxT("Misc/BuildMode"), m_defaultFileKind);
|
||||
|
||||
config.Write(wxT("Windows/ShowToolBar"), m_showToolBar);
|
||||
config.Write(wxT("Windows/WindowX"), (long) m_frameSize.x);
|
||||
|
@ -87,7 +87,7 @@ public:
|
||||
bool GetFirstTimeRun() const { return m_firstTimeRun; }
|
||||
|
||||
public:
|
||||
wxString m_currentDocumentDir; // Not yet used
|
||||
wxString m_lastSetupSaveDir; // Not yet used
|
||||
wxString m_lastDocument; // Last document
|
||||
bool m_showToolBar;
|
||||
bool m_smallToolbar;
|
||||
@ -118,6 +118,9 @@ public:
|
||||
bool m_showTrayIcon;
|
||||
bool m_trayIconIsShown;
|
||||
|
||||
// "Setup file" or "Configure script"
|
||||
wxString m_defaultFileKind;
|
||||
|
||||
// Search settings
|
||||
bool m_matchCase;
|
||||
bool m_matchWholeWord;
|
||||
|
20
utils/configtool/src/bitmaps/go.xpm
Normal file
20
utils/configtool/src/bitmaps/go.xpm
Normal file
@ -0,0 +1,20 @@
|
||||
/* XPM */
|
||||
static char *go_xpm[] = {
|
||||
"16 15 2 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
" ",
|
||||
" .. ",
|
||||
" ... ",
|
||||
" .... ",
|
||||
" ..... ",
|
||||
" ...... ",
|
||||
" ....... ",
|
||||
" ........ ",
|
||||
" ....... ",
|
||||
" ...... ",
|
||||
" ..... ",
|
||||
" .... ",
|
||||
" ... ",
|
||||
" .. ",
|
||||
" "};
|
@ -220,6 +220,12 @@ void ctConfigItem::InitProperties()
|
||||
wxVariant(wxT(""), wxT("enabled-if-not")),
|
||||
wxT("configitems")));
|
||||
|
||||
m_properties.AddProperty(
|
||||
new ctProperty(
|
||||
wxT("<B>Indeterminate-if</B><P> When any of these settings are 1, this setting becomes active and indeterminate. Taking wxUSE_UNICODE as an example:<P>If Custom is 1, wxUSE_UNICODE is indeterminate."),
|
||||
wxVariant(wxT(""), wxT("indeterminate-if")),
|
||||
wxT("configitems")));
|
||||
|
||||
m_properties.AddProperty(
|
||||
new ctProperty(
|
||||
wxT("<B>Exclusivity</B><P> The settings that are mutually exclusive with this one."),
|
||||
@ -266,6 +272,7 @@ void ctConfigItem::ApplyProperty(ctProperty* prop, const wxVariant& oldValue)
|
||||
name == wxT("precludes") ||
|
||||
name == wxT("enabled-if") ||
|
||||
name == wxT("enabled-if-not") ||
|
||||
name == wxT("indeterminate-if") ||
|
||||
name == wxT("context"))
|
||||
{
|
||||
doc->RefreshDependencies();
|
||||
@ -481,11 +488,14 @@ bool ctConfigItem::IsInActiveContext()
|
||||
/// then this one is disabled (and inactive).
|
||||
void ctConfigItem::EvaluateDependencies()
|
||||
{
|
||||
// For debugging purposes
|
||||
wxString name = GetName();
|
||||
wxList items;
|
||||
wxString requires = GetPropertyString(wxT("requires"));
|
||||
wxString precludes = GetPropertyString(wxT("precludes"));
|
||||
wxString enabledIf = GetPropertyString(wxT("enabled-if"));
|
||||
wxString enabledIfNot = GetPropertyString(wxT("enabled-if-not"));
|
||||
wxString indeterminateIf = GetPropertyString(wxT("indeterminate-if"));
|
||||
|
||||
bool active = TRUE;
|
||||
bool enabled = IsEnabled();
|
||||
@ -581,6 +591,7 @@ void ctConfigItem::EvaluateDependencies()
|
||||
for ( wxNode* node = items.GetFirst(); node; node = node->GetNext() )
|
||||
{
|
||||
ctConfigItem* otherItem = (ctConfigItem*) node->GetData();
|
||||
wxString otherName = otherItem->GetName();
|
||||
|
||||
if (inActiveContext && otherItem->IsInActiveContext())
|
||||
{
|
||||
@ -608,6 +619,44 @@ void ctConfigItem::EvaluateDependencies()
|
||||
{
|
||||
StringToItems(GetDocument()->GetTopItem(), precludes, items);
|
||||
int enabledCount = 0;
|
||||
// int disabledCount = 0;
|
||||
int inContextCount = 0;
|
||||
|
||||
for ( wxNode* node = items.GetFirst(); node; node = node->GetNext() )
|
||||
{
|
||||
ctConfigItem* otherItem = (ctConfigItem*) node->GetData();
|
||||
|
||||
if (inActiveContext && otherItem->IsInActiveContext())
|
||||
{
|
||||
// Make this disabled and inactive, _unless_ it's
|
||||
// already been explicitly enabled in the previous
|
||||
// requires evaluation (it really _has_ to be on)
|
||||
// if (!otherItem->IsEnabled())
|
||||
if (otherItem->IsEnabled())
|
||||
{
|
||||
enabledCount ++;
|
||||
// disabledCount ++;
|
||||
}
|
||||
inContextCount ++;
|
||||
}
|
||||
}
|
||||
// Disable if there were no related items that were disabled
|
||||
if (inContextCount > 0 && (enabledCount > 0) && !explicitlyEnabled)
|
||||
// if (inContextCount > 0 && (disabledCount > 0) && !explicitlyEnabled)
|
||||
{
|
||||
enabled = FALSE;
|
||||
active = FALSE;
|
||||
explicitlyDisabled = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
// Indeterminate overrides the others, and
|
||||
// makes the item active.
|
||||
items.Clear();
|
||||
if (!indeterminateIf.IsEmpty())
|
||||
{
|
||||
StringToItems(GetDocument()->GetTopItem(), indeterminateIf, items);
|
||||
int enabledCount = 0;
|
||||
int inContextCount = 0;
|
||||
|
||||
for ( wxNode* node = items.GetFirst(); node; node = node->GetNext() )
|
||||
@ -616,20 +665,18 @@ void ctConfigItem::EvaluateDependencies()
|
||||
|
||||
if (inActiveContext && otherItem->IsInActiveContext())
|
||||
{
|
||||
// Make this enabled and inactive, _unless_ it's
|
||||
// already been explicitly disabled in the previous
|
||||
// requires evaluation (it really _has_ to be off)
|
||||
if (otherItem->IsEnabled())
|
||||
{
|
||||
enabledCount ++;
|
||||
}
|
||||
inContextCount ++;
|
||||
}
|
||||
}
|
||||
// Disable if there were no related items that were disabled
|
||||
if (inContextCount > 0 && (enabledCount == inContextCount) && !explicitlyEnabled)
|
||||
if (inContextCount > 0 && enabledCount > 0)
|
||||
{
|
||||
enabled = FALSE;
|
||||
active = FALSE;
|
||||
active = TRUE;
|
||||
explicitlyEnabled = FALSE;
|
||||
explicitlyDisabled = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@ -637,6 +684,13 @@ void ctConfigItem::EvaluateDependencies()
|
||||
// context is active. If not, make this inactive.
|
||||
if (!IsInActiveContext())
|
||||
active = FALSE;
|
||||
else
|
||||
{
|
||||
// If we didn't explicitly enable or disable it,
|
||||
// then we should make it active.
|
||||
if (!explicitlyEnabled && !explicitlyDisabled)
|
||||
active = TRUE;
|
||||
}
|
||||
|
||||
SetActive(active);
|
||||
|
||||
|
@ -575,6 +575,7 @@ void ctConfigToolDoc::RefreshDependencies(ctConfigItem* item)
|
||||
wxString precludes = item->GetPropertyString(wxT("precludes"));
|
||||
wxString enabledIf = item->GetPropertyString(wxT("enabled-if"));
|
||||
wxString enabledIfNot = item->GetPropertyString(wxT("enabled-if-not"));
|
||||
wxString indeterminateIf = item->GetPropertyString(wxT("indeterminate-if"));
|
||||
wxString context = item->GetPropertyString(wxT("context"));
|
||||
|
||||
if (!requires.IsEmpty())
|
||||
@ -589,6 +590,9 @@ void ctConfigToolDoc::RefreshDependencies(ctConfigItem* item)
|
||||
if (!enabledIf.IsEmpty())
|
||||
item->StringToArray(enabledIf, requiresArr);
|
||||
|
||||
if (!indeterminateIf.IsEmpty())
|
||||
item->StringToArray(indeterminateIf, requiresArr);
|
||||
|
||||
// Add the parent to the list of dependencies, if the
|
||||
// parent is a check or radio group.
|
||||
ctConfigItem* parent = item->GetParent();
|
||||
|
@ -91,6 +91,9 @@ BEGIN_EVENT_TABLE(ctConfigToolView, wxView)
|
||||
EVT_MENU(wxID_FIND, ctConfigToolView::OnFind)
|
||||
EVT_UPDATE_UI(wxID_FIND, ctConfigToolView::OnUpdateFind)
|
||||
|
||||
EVT_MENU(ctID_GO, ctConfigToolView::OnGo)
|
||||
EVT_UPDATE_UI(ctID_GO, ctConfigToolView::OnUpdateGo)
|
||||
|
||||
END_EVENT_TABLE()
|
||||
|
||||
ctConfigToolView::ctConfigToolView()
|
||||
@ -352,11 +355,17 @@ void ctConfigToolView::OnIconLeftDown(ctConfigTreeCtrl* treeControl, ctConfigIte
|
||||
SyncItem(treeControl, item);
|
||||
|
||||
wxList considered;
|
||||
item->PropagateChange(considered);
|
||||
if ((item->GetType() == ctTypeBoolRadio || item->GetType() == ctTypeRadioGroup) && item->IsEnabled())
|
||||
{
|
||||
item->PropagateRadioButton(considered);
|
||||
}
|
||||
item->PropagateChange(considered);
|
||||
|
||||
// Update the setup.h and configure text
|
||||
if (wxGetApp().GetMainFrame()->GetMainNotebook()->GetSelection() > 0)
|
||||
{
|
||||
RegenerateSetup();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -905,7 +914,9 @@ void ctConfigToolView::OnSaveSetupFile(wxCommandEvent& event)
|
||||
wxString setupStr = doc->GenerateSetup();
|
||||
|
||||
wxString filename = _T("setup.h");
|
||||
wxString path = doc->GetFrameworkDir(FALSE);
|
||||
wxString path = wxGetApp().GetSettings().m_lastSetupSaveDir;
|
||||
if (path.IsEmpty())
|
||||
path = doc->GetFrameworkDir(FALSE);
|
||||
wxString wildcard = _T("Header files (*.h)|*.h|All files (*.*)|*.*");
|
||||
|
||||
wxFileDialog dialog(wxTheApp->GetTopWindow(),
|
||||
@ -916,8 +927,7 @@ void ctConfigToolView::OnSaveSetupFile(wxCommandEvent& event)
|
||||
if (dialog.ShowModal() == wxID_OK)
|
||||
{
|
||||
wxString fullPath = dialog.GetPath();
|
||||
|
||||
// TODO: save last saved path in settings.
|
||||
wxGetApp().GetSettings().m_lastSetupSaveDir = wxPathOnly(fullPath);
|
||||
|
||||
wxFileOutputStream stream(fullPath);
|
||||
if (!stream.Ok())
|
||||
@ -936,7 +946,9 @@ void ctConfigToolView::OnSaveConfigureCommand(wxCommandEvent& event)
|
||||
wxString configureStr = doc->GenerateConfigureCommand();
|
||||
|
||||
wxString filename = _T("configurewx.sh");
|
||||
wxString path = doc->GetFrameworkDir(FALSE);
|
||||
wxString path = wxGetApp().GetSettings().m_lastSetupSaveDir;
|
||||
if (path.IsEmpty())
|
||||
path = doc->GetFrameworkDir(FALSE);
|
||||
wxString wildcard = _T("Shell script files (*.sh)|*.sh|All files (*.*)|*.*");
|
||||
|
||||
wxFileDialog dialog(wxTheApp->GetTopWindow(),
|
||||
@ -947,8 +959,7 @@ void ctConfigToolView::OnSaveConfigureCommand(wxCommandEvent& event)
|
||||
if (dialog.ShowModal() == wxID_OK)
|
||||
{
|
||||
wxString fullPath = dialog.GetPath();
|
||||
|
||||
// TODO: save last saved path in settings.
|
||||
wxGetApp().GetSettings().m_lastSetupSaveDir = wxPathOnly(fullPath);
|
||||
|
||||
wxFileOutputStream stream(fullPath);
|
||||
if (!stream.Ok())
|
||||
@ -1003,6 +1014,75 @@ void ctConfigToolView::OnUpdateFind(wxUpdateUIEvent& event)
|
||||
event.Enable(TRUE);
|
||||
}
|
||||
|
||||
/// Save default file type
|
||||
void ctConfigToolView::OnGo(wxCommandEvent& event)
|
||||
{
|
||||
ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument();
|
||||
wxString path = wxGetApp().GetSettings().m_lastSetupSaveDir;
|
||||
if (!path.IsEmpty())
|
||||
{
|
||||
if (wxGetApp().GetSettings().m_defaultFileKind == wxT("Setup file"))
|
||||
{
|
||||
// setup.h
|
||||
wxString setupStr = doc->GenerateSetup();
|
||||
|
||||
wxString fullPath = path + wxFILE_SEP_PATH + wxT("setup.h");
|
||||
if (wxFileExists(fullPath))
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf(wxT("Overwrite existing file %s?"), (const wxChar*) fullPath);
|
||||
int ans = wxMessageBox(msg, _("Save Setup File"), wxICON_QUESTION|wxYES_NO|wxCANCEL);
|
||||
if (ans == wxCANCEL)
|
||||
return;
|
||||
if (ans == wxNO)
|
||||
return;
|
||||
}
|
||||
wxFileOutputStream stream(fullPath);
|
||||
if (!stream.Ok())
|
||||
{
|
||||
wxMessageBox(_("Sorry, could not save this file."), _("Save Setup File"), wxICON_EXCLAMATION|wxOK);
|
||||
return;
|
||||
}
|
||||
stream << setupStr;
|
||||
}
|
||||
else if (wxGetApp().GetSettings().m_defaultFileKind == wxT("Configure script"))
|
||||
{
|
||||
// configurewx.sh
|
||||
wxString configureStr = doc->GenerateConfigureCommand();
|
||||
|
||||
wxString fullPath = path + wxFILE_SEP_PATH + wxT("configurewx.sh");
|
||||
if (wxFileExists(fullPath))
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf(wxT("Overwrite existing file %s?"), (const wxChar*) fullPath);
|
||||
int ans = wxMessageBox(msg, _("Save Configure Script"), wxICON_QUESTION|wxYES_NO|wxCANCEL);
|
||||
if (ans == wxCANCEL)
|
||||
return;
|
||||
if (ans == wxNO)
|
||||
return;
|
||||
}
|
||||
wxFileOutputStream stream(fullPath);
|
||||
if (!stream.Ok())
|
||||
{
|
||||
wxMessageBox(_("Sorry, could not save this file."), _("Save Configure Script"), wxICON_EXCLAMATION|wxOK);
|
||||
return;
|
||||
}
|
||||
stream << configureStr;
|
||||
}
|
||||
else
|
||||
{
|
||||
wxMessageBox(wxT("Unrecognised default file type."));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Update
|
||||
void ctConfigToolView::OnUpdateGo(wxUpdateUIEvent& event)
|
||||
{
|
||||
wxString path = wxGetApp().GetSettings().m_lastSetupSaveDir;
|
||||
event.Enable(!path.IsEmpty());
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// ctFindReplaceDialog
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -199,6 +199,14 @@ public:
|
||||
/// Update find text
|
||||
void OnUpdateFind(wxUpdateUIEvent& event);
|
||||
|
||||
// Go (now: save setup.h or configurewx.sh. later: invoke configure/make)
|
||||
|
||||
/// Save default file type
|
||||
void OnGo(wxCommandEvent& event);
|
||||
|
||||
/// Update
|
||||
void OnUpdateGo(wxUpdateUIEvent& event);
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
||||
protected:
|
||||
|
@ -46,6 +46,7 @@
|
||||
#include "bitmaps/undo.xpm"
|
||||
#include "bitmaps/redo.xpm"
|
||||
#include "bitmaps/helpcs.xpm"
|
||||
#include "bitmaps/go.xpm"
|
||||
|
||||
IMPLEMENT_CLASS(ctMainFrame, wxDocParentFrame)
|
||||
|
||||
@ -82,6 +83,8 @@ BEGIN_EVENT_TABLE(ctMainFrame, wxDocParentFrame)
|
||||
EVT_UPDATE_UI(ctID_SAVE_CONFIGURE_COMMAND, ctMainFrame::OnUpdateDisable)
|
||||
|
||||
EVT_UPDATE_UI(wxID_FIND, ctMainFrame::OnUpdateDisable)
|
||||
|
||||
EVT_UPDATE_UI(ctID_GO, ctMainFrame::OnUpdateDisable)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
// Define my frame constructor
|
||||
@ -222,7 +225,7 @@ void ctMainFrame::InitToolBar(wxToolBar* toolBar)
|
||||
toolBarBitmaps[3] = wxBitmap(copy_xpm);
|
||||
toolBarBitmaps[4] = wxBitmap(cut_xpm);
|
||||
toolBarBitmaps[5] = wxBitmap(paste_xpm);
|
||||
// toolBarBitmaps[6] = wxBitmap(print_xpm);
|
||||
toolBarBitmaps[6] = wxBitmap(go_xpm);
|
||||
toolBarBitmaps[7] = wxBitmap(help_xpm);
|
||||
toolBarBitmaps[10] = wxBitmap(undo_xpm);
|
||||
toolBarBitmaps[11] = wxBitmap(redo_xpm);
|
||||
@ -241,6 +244,8 @@ void ctMainFrame::InitToolBar(wxToolBar* toolBar)
|
||||
toolBar->AddTool(wxID_UNDO, toolBarBitmaps[10], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Undo"));
|
||||
toolBar->AddTool(wxID_REDO, toolBarBitmaps[11], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Redo"));
|
||||
toolBar->AddSeparator();
|
||||
toolBar->AddTool(ctID_GO, toolBarBitmaps[6], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Save setup.h or configurewx.sh"));
|
||||
toolBar->AddSeparator();
|
||||
toolBar->AddTool(ctID_ITEM_HELP, toolBarBitmaps[12], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Show help for this option"));
|
||||
toolBar->AddTool(wxID_HELP_CONTEXT, toolBarBitmaps[13], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Show help on the clicked item"));
|
||||
|
||||
@ -266,6 +271,8 @@ wxMenuBar* ctMainFrame::CreateMenuBar()
|
||||
fileMenu->Append(ctID_SAVE_SETUP_FILE, wxT("Save Setup.&h...\tCtrl+H"), wxT("Save the setup.h file"));
|
||||
fileMenu->Append(ctID_SAVE_CONFIGURE_COMMAND, wxT("Save Configure Script...\tCtrl+G"), wxT("Save the configure script file"));
|
||||
fileMenu->AppendSeparator();
|
||||
fileMenu->Append(ctID_GO, wxT("&Go\tF5"), wxT("Quick-save the setup.h or configure.sh file"));
|
||||
fileMenu->AppendSeparator();
|
||||
fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt+F4"), wxT("Exit the application"));
|
||||
|
||||
wxGetApp().GetDocManager()->FileHistoryUseMenu(fileMenu);
|
||||
|
@ -82,28 +82,28 @@ void ctSettingsDialog::CreateControls()
|
||||
wxNotebookSizer* item3Sizer = new wxNotebookSizer(item3);
|
||||
ctGeneralSettingsDialog* item4 = new ctGeneralSettingsDialog(item3, ID_GENERAL_SETTINGS_DIALOG, wxDefaultPosition, wxSize(100, 80), 0);
|
||||
item3->AddPage(item4, _("General"));
|
||||
ctLocationSettingsDialog* item9 = new ctLocationSettingsDialog(item3, ID_LOCATION_SETTINGS_DIALOG, wxDefaultPosition, wxSize(100, 80), 0);
|
||||
item3->AddPage(item9, _("Locations"));
|
||||
ctLocationSettingsDialog* item11 = new ctLocationSettingsDialog(item3, ID_LOCATION_SETTINGS_DIALOG, wxDefaultPosition, wxSize(100, 80), 0);
|
||||
item3->AddPage(item11, _("Locations"));
|
||||
item2->Add(item3Sizer, 0, wxGROW|wxALL, 5);
|
||||
|
||||
wxBoxSizer* item19 = new wxBoxSizer(wxHORIZONTAL);
|
||||
item2->Add(item19, 0, wxGROW|wxALL, 5);
|
||||
wxBoxSizer* item21 = new wxBoxSizer(wxHORIZONTAL);
|
||||
item2->Add(item21, 0, wxGROW|wxALL, 5);
|
||||
|
||||
item19->Add(5, 5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
item21->Add(5, 5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
wxButton* item21 = new wxButton(item1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item21->SetDefault();
|
||||
item19->Add(item21, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
wxButton* item23 = new wxButton(item1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item23->SetDefault();
|
||||
item21->Add(item23, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
wxButton* item22 = new wxButton(item1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item19->Add(item22, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
wxButton* item24 = new wxButton(item1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item21->Add(item24, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
wxButton* item23 = new wxButton(item1, wxID_HELP, _("&Help"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item19->Add(item23, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
wxButton* item25 = new wxButton(item1, wxID_HELP, _("&Help"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item21->Add(item25, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
#if defined(__WXGTK__) || defined(__WXMAC__)
|
||||
wxContextHelpButton* item24 = new wxContextHelpButton(item1, wxID_CONTEXT_HELP, wxDefaultPosition, wxSize(20, -1), wxBU_AUTODRAW);
|
||||
item19->Add(item24, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
wxContextHelpButton* item26 = new wxContextHelpButton(item1, wxID_CONTEXT_HELP, wxDefaultPosition, wxSize(20, -1), wxBU_AUTODRAW);
|
||||
item21->Add(item26, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
#endif
|
||||
|
||||
GetSizer()->Fit(this);
|
||||
@ -219,17 +219,38 @@ void ctGeneralSettingsDialog::CreateControls()
|
||||
|
||||
wxCheckBox* item7 = new wxCheckBox(item4, ID_LOAD_LAST_DOCUMENT, _("&Load last document"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item7->SetValue(FALSE);
|
||||
item7->SetHelpText(_("Check to load the last document on startup"));
|
||||
if (ShowToolTips())
|
||||
item7->SetToolTip(_("Check to load the last document on startup"));
|
||||
item6->Add(item7, 0, wxALIGN_LEFT|wxALL, 5);
|
||||
|
||||
wxCheckBox* item8 = new wxCheckBox(item4, ID_SHOW_TOOLTIPS, _("&Show tooltips"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item8->SetValue(FALSE);
|
||||
item8->SetHelpText(_("Check to show tooltips"));
|
||||
if (ShowToolTips())
|
||||
item8->SetToolTip(_("Check to show tooltips"));
|
||||
item6->Add(item8, 0, wxALIGN_LEFT|wxALL, 5);
|
||||
|
||||
wxStaticText* item9 = new wxStaticText(item4, wxID_STATIC, _("&Default file kind to save when using the Go command:"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item6->Add(item9, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||
|
||||
wxString item10Strings[] = {
|
||||
_("Setup file"),
|
||||
_("Configure script")
|
||||
};
|
||||
wxChoice* item10 = new wxChoice(item4, ID_DEFAULT_FILE_KIND, wxDefaultPosition, wxSize(200, -1), 2, item10Strings, 0);
|
||||
item10->SetStringSelection(_("Setup file"));
|
||||
item10->SetHelpText(_("Select the default kind of file to save using Go"));
|
||||
if (ShowToolTips())
|
||||
item10->SetToolTip(_("Select the default kind of file to save using Go"));
|
||||
item6->Add(item10, 0, wxGROW|wxALL, 5);
|
||||
|
||||
GetSizer()->Fit(this);
|
||||
////@end ctGeneralSettingsDialog content construction
|
||||
|
||||
FindWindow(ID_LOAD_LAST_DOCUMENT)->SetValidator(wxGenericValidator(& wxGetApp().GetSettings().m_loadLastDocument));
|
||||
FindWindow(ID_SHOW_TOOLTIPS)->SetValidator(wxGenericValidator(& wxGetApp().GetSettings().m_useToolTips));
|
||||
FindWindow(ID_DEFAULT_FILE_KIND)->SetValidator(wxGenericValidator(& wxGetApp().GetSettings().m_defaultFileKind));
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -282,36 +303,45 @@ void ctLocationSettingsDialog::CreateControls()
|
||||
{
|
||||
////@begin ctLocationSettingsDialog content construction
|
||||
|
||||
ctLocationSettingsDialog* item9 = this;
|
||||
ctLocationSettingsDialog* item11 = this;
|
||||
|
||||
wxBoxSizer* item10 = new wxBoxSizer(wxVERTICAL);
|
||||
item9->SetSizer(item10);
|
||||
item9->SetAutoLayout(TRUE);
|
||||
wxBoxSizer* item12 = new wxBoxSizer(wxVERTICAL);
|
||||
item11->SetSizer(item12);
|
||||
item11->SetAutoLayout(TRUE);
|
||||
|
||||
wxStaticBox* item11Static = new wxStaticBox(item9, -1, _("Locations"));
|
||||
wxStaticBoxSizer* item11 = new wxStaticBoxSizer(item11Static, wxVERTICAL);
|
||||
item10->Add(item11, 1, wxGROW|wxALL, 5);
|
||||
wxStaticBox* item13Static = new wxStaticBox(item11, -1, _("Locations"));
|
||||
wxStaticBoxSizer* item13 = new wxStaticBoxSizer(item13Static, wxVERTICAL);
|
||||
item12->Add(item13, 1, wxGROW|wxALL, 5);
|
||||
|
||||
wxStaticText* item12 = new wxStaticText(item9, wxID_STATIC, _("&wxWindows hierarchy:"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item11->Add(item12, 0, wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE, 5);
|
||||
wxStaticText* item14 = new wxStaticText(item11, wxID_STATIC, _("&wxWindows hierarchy:"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item13->Add(item14, 0, wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE, 5);
|
||||
|
||||
wxBoxSizer* item13 = new wxBoxSizer(wxHORIZONTAL);
|
||||
item11->Add(item13, 0, wxGROW, 5);
|
||||
wxBoxSizer* item15 = new wxBoxSizer(wxHORIZONTAL);
|
||||
item13->Add(item15, 0, wxGROW, 5);
|
||||
|
||||
wxTextCtrl* item14 = new wxTextCtrl(item9, ID_WXWIN_HIERARCHY, _(""), wxDefaultPosition, wxSize(200, -1), 0);
|
||||
item13->Add(item14, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
wxTextCtrl* item16 = new wxTextCtrl(item11, ID_WXWIN_HIERARCHY, _(""), wxDefaultPosition, wxSize(200, -1), 0);
|
||||
item16->SetHelpText(_("Enter the root path of the wxWindows hierarchy"));
|
||||
if (ShowToolTips())
|
||||
item16->SetToolTip(_("Enter the root path of the wxWindows hierarchy"));
|
||||
item15->Add(item16, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
wxButton* item15 = new wxButton(item9, ID_CHOOSE_WXWIN_HIERARCHY, _("&Choose..."), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item13->Add(item15, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
wxButton* item17 = new wxButton(item11, ID_CHOOSE_WXWIN_HIERARCHY, _("&Choose..."), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item17->SetHelpText(_("Click to choose the root path of the wxWindows hierarchy\\n"));
|
||||
if (ShowToolTips())
|
||||
item17->SetToolTip(_("Click to choose the root path of the wxWindows hierarchy\\n"));
|
||||
item15->Add(item17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
wxBoxSizer* item16 = new wxBoxSizer(wxHORIZONTAL);
|
||||
item11->Add(item16, 0, wxGROW, 5);
|
||||
wxBoxSizer* item18 = new wxBoxSizer(wxHORIZONTAL);
|
||||
item13->Add(item18, 0, wxGROW, 5);
|
||||
|
||||
item16->Add(60, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
item18->Add(60, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
wxCheckBox* item18 = new wxCheckBox(item9, ID_USE_WXWIN, _("&Use WXWIN environment variable"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item18->SetValue(FALSE);
|
||||
item16->Add(item18, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
wxCheckBox* item20 = new wxCheckBox(item11, ID_USE_WXWIN, _("&Use WXWIN environment variable"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
item20->SetValue(FALSE);
|
||||
item20->SetHelpText(_("Check to use the value of WXWIN instead"));
|
||||
if (ShowToolTips())
|
||||
item20->SetToolTip(_("Check to use the value of WXWIN instead"));
|
||||
item18->Add(item20, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||
|
||||
GetSizer()->Fit(this);
|
||||
////@end ctLocationSettingsDialog content construction
|
||||
|
@ -42,6 +42,7 @@ class ctLocationSettingsDialog;
|
||||
#define ID_GENERAL_SETTINGS_DIALOG 10005
|
||||
#define ID_LOAD_LAST_DOCUMENT 10006
|
||||
#define ID_SHOW_TOOLTIPS 10007
|
||||
#define ID_DEFAULT_FILE_KIND 10003
|
||||
#define ID_LOCATION_SETTINGS_DIALOG 10008
|
||||
#define ID_WXWIN_HIERARCHY 10010
|
||||
#define ID_CHOOSE_WXWIN_HIERARCHY 10011
|
||||
|
@ -136,6 +136,7 @@ DECLARE_APP(ctApp)
|
||||
// File menu ids
|
||||
#define ctID_SAVE_SETUP_FILE 1001
|
||||
#define ctID_SAVE_CONFIGURE_COMMAND 1002
|
||||
#define ctID_GO 1003
|
||||
|
||||
// Edit menu ids
|
||||
#define ctID_ADD_ITEM 1030
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user