compilation fix for !WXWIN_COMPATIBILITY_2 and some code cleanup + smarter
code in wxDocManager::SelectViewType() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8709 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1437,63 +1437,94 @@ wxDocTemplate *wxDocManager::SelectDocumentPath(wxDocTemplate **templates,
|
|||||||
wxDocTemplate *wxDocManager::SelectDocumentType(wxDocTemplate **templates,
|
wxDocTemplate *wxDocManager::SelectDocumentType(wxDocTemplate **templates,
|
||||||
int noTemplates)
|
int noTemplates)
|
||||||
{
|
{
|
||||||
wxChar **strings = new wxChar *[noTemplates];
|
wxArrayString strings;
|
||||||
wxChar **data = new wxChar *[noTemplates];
|
wxDocTemplate **data = new wxDocTemplate *[noTemplates];
|
||||||
int i;
|
int i;
|
||||||
int n = 0;
|
int n = 0;
|
||||||
for (i = 0; i < noTemplates; i++)
|
for (i = 0; i < noTemplates; i++)
|
||||||
{
|
{
|
||||||
if (templates[i]->IsVisible())
|
if (templates[i]->IsVisible())
|
||||||
{
|
{
|
||||||
strings[n] = (wxChar *)templates[i]->m_description.c_str();
|
strings.Add(templates[i]->m_description);
|
||||||
data[n] = (wxChar *)templates[i];
|
data[n] = templates[i];
|
||||||
n ++;
|
n ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (n == 0)
|
|
||||||
|
wxDocTemplate *theTemplate;
|
||||||
|
|
||||||
|
switch ( n )
|
||||||
{
|
{
|
||||||
delete[] strings;
|
case 0:
|
||||||
delete[] data;
|
// no visible templates, hence nothing to choose from
|
||||||
return (wxDocTemplate *) NULL;
|
theTemplate = NULL;
|
||||||
}
|
break;
|
||||||
else if (n == 1)
|
|
||||||
{
|
case 1:
|
||||||
wxDocTemplate *temp = (wxDocTemplate *)data[0];
|
// don't propose the user to choose if he heas no choice
|
||||||
delete[] strings;
|
theTemplate = data[0];
|
||||||
delete[] data;
|
break;
|
||||||
return temp;
|
|
||||||
|
default:
|
||||||
|
// propose the user to choose one of several
|
||||||
|
theTemplate = (wxDocTemplate *)wxGetSingleChoiceData
|
||||||
|
(
|
||||||
|
_("Select a document template"),
|
||||||
|
_("Templates"),
|
||||||
|
strings,
|
||||||
|
(void **)data,
|
||||||
|
wxFindSuitableParent()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxWindow* parent = wxFindSuitableParent();
|
|
||||||
|
|
||||||
wxDocTemplate *theTemplate = (wxDocTemplate *)wxGetSingleChoiceData(_("Select a document template"), _("Templates"), n,
|
|
||||||
strings, (void **)data, parent);
|
|
||||||
delete[] strings;
|
|
||||||
delete[] data;
|
delete[] data;
|
||||||
|
|
||||||
return theTemplate;
|
return theTemplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDocTemplate *wxDocManager::SelectViewType(wxDocTemplate **templates,
|
wxDocTemplate *wxDocManager::SelectViewType(wxDocTemplate **templates,
|
||||||
int noTemplates)
|
int noTemplates)
|
||||||
{
|
{
|
||||||
wxChar **strings = new wxChar *[noTemplates];
|
wxArrayString strings;
|
||||||
wxChar **data = new wxChar *[noTemplates];
|
wxDocTemplate **data = new wxDocTemplate *[noTemplates];
|
||||||
int i;
|
int i;
|
||||||
int n = 0;
|
int n = 0;
|
||||||
for (i = 0; i < noTemplates; i++)
|
for (i = 0; i < noTemplates; i++)
|
||||||
{
|
{
|
||||||
if (templates[i]->IsVisible() && (templates[i]->GetViewName() != wxT("")))
|
wxDocTemplate *templ = templates[i];
|
||||||
|
if ( templ->IsVisible() && !templ->GetViewName().empty() )
|
||||||
{
|
{
|
||||||
strings[n] = (wxChar *)templates[i]->m_viewTypeName.c_str();
|
strings.Add(templ->m_viewTypeName);
|
||||||
data[n] = (wxChar *)templates[i];
|
data[n] = templ;
|
||||||
n ++;
|
n ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
wxWindow* parent = wxFindSuitableParent();
|
|
||||||
|
|
||||||
wxDocTemplate *theTemplate = (wxDocTemplate *)wxGetSingleChoiceData(_("Select a document view"), _("Views"), n,
|
wxDocTemplate *theTemplate;
|
||||||
strings, (void **)data, parent);
|
|
||||||
delete[] strings;
|
// the same logic as above
|
||||||
|
switch ( n )
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
theTemplate = (wxDocTemplate *)NULL;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
theTemplate = data[0];
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
theTemplate = (wxDocTemplate *)wxGetSingleChoiceData
|
||||||
|
(
|
||||||
|
_("Select a document view"),
|
||||||
|
_("Views"),
|
||||||
|
strings,
|
||||||
|
(void **)data,
|
||||||
|
wxFindSuitableParent()
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
delete[] data;
|
delete[] data;
|
||||||
return theTemplate;
|
return theTemplate;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user