Fixed: Compilation of World Editor in Unicode

This commit is contained in:
kervala 2016-12-10 18:15:01 +01:00
parent 12f39043b0
commit 1ee5aa36bc
22 changed files with 288 additions and 396 deletions

View file

@ -233,7 +233,7 @@ bool CActionLigoResize::redo ()
// CActionImportPrimitive
// ***************************************************************************
CActionImportPrimitive::CActionImportPrimitive (const char *oldPrimFile)
CActionImportPrimitive::CActionImportPrimitive (const std::string &oldPrimFile)
{
_Filename = oldPrimFile;
_FirstLoad = true;
@ -549,7 +549,7 @@ bool CActionImportPrimitive::redo ()
// CActionLoadPrimitive
// ***************************************************************************
CActionLoadPrimitive::CActionLoadPrimitive (const char *oldPrimFile)
CActionLoadPrimitive::CActionLoadPrimitive(const std::string &oldPrimFile)
{
_Filename = oldPrimFile;
_FirstLoad = true;
@ -2156,7 +2156,7 @@ bool CActionDelete::redo ()
// CActionSetPrimitivePropertyString
// ***************************************************************************
CActionSetPrimitivePropertyString::CActionSetPrimitivePropertyString (const CDatabaseLocatorPointer &locator, const char *propertyName, const char *newValue, bool _default)
CActionSetPrimitivePropertyString::CActionSetPrimitivePropertyString(const CDatabaseLocatorPointer &locator, const std::string &propertyName, const std::string &newValue, bool _default)
{
_PropertyName = propertyName;
_PropertyNewValue = newValue;
@ -2238,7 +2238,7 @@ bool CActionSetPrimitivePropertyString::redo ()
// CActionSetPrimitivePropertyStringArray
// ***************************************************************************
CActionSetPrimitivePropertyStringArray::CActionSetPrimitivePropertyStringArray (const CDatabaseLocatorPointer &locator, const char *propertyName, const std::vector<std::string> &newValue, bool _default)
CActionSetPrimitivePropertyStringArray::CActionSetPrimitivePropertyStringArray (const CDatabaseLocatorPointer &locator, const std::string &propertyName, const std::vector<std::string> &newValue, bool _default)
{
_PropertyName = propertyName;
_PropertyNewValue = newValue;
@ -2312,7 +2312,7 @@ bool CActionSetPrimitivePropertyStringArray::redo ()
// CActionAddPrimitiveByClass
// ***************************************************************************
CActionAddPrimitiveByClass::CActionAddPrimitiveByClass (const CDatabaseLocator &locator, const char *className,
CActionAddPrimitiveByClass::CActionAddPrimitiveByClass (const CDatabaseLocator &locator, const std::string &className,
const NLMISC::CVector &initPos, float deltaPos,
const std::vector<CPrimitiveClass::CInitParameters> initParameters)
{
@ -2424,7 +2424,7 @@ bool CActionAddPrimitiveByClass::redo ()
// CActionAddLandscape
// ***************************************************************************
CActionAddLandscape::CActionAddLandscape (const char *filename)
CActionAddLandscape::CActionAddLandscape (const std::string &filename)
{
_FirstTime = true;
_Filename = filename;
@ -2469,7 +2469,7 @@ bool CActionAddLandscape::redo ()
if (_FirstTime)
{
// Load the file
getMainFrame ()->launchLoadingDialog (string("loading land ") + _Filename);
getMainFrame ()->launchLoadingDialog ("loading land " + _Filename);
try
{

View file

@ -54,7 +54,7 @@ class CActionAddLandscape : public IAction
{
public:
// Landscape name
CActionAddLandscape (const char *name);
CActionAddLandscape (const std::string &name);
private:
@ -150,7 +150,7 @@ class CActionImportPrimitive : public IAction
public:
// Constructor
CActionImportPrimitive (const char *oldPrimFile);
CActionImportPrimitive (const std::string &oldPrimFile);
private:
@ -169,7 +169,7 @@ class CActionLoadPrimitive : public IAction
public:
// Constructor
CActionLoadPrimitive (const char *oldPrimFile);
CActionLoadPrimitive (const std::string &oldPrimFile);
private:
@ -622,7 +622,7 @@ class CActionAddPrimitiveByClass : public IAction
public:
// Constructor
CActionAddPrimitiveByClass (const CDatabaseLocator &locator, const char *className, const NLMISC::CVector &initPos, float deltaPos,
CActionAddPrimitiveByClass (const CDatabaseLocator &locator, const std::string &className, const NLMISC::CVector &initPos, float deltaPos,
const std::vector<NLLIGO::CPrimitiveClass::CInitParameters> initParameters);
private:

View file

@ -698,7 +698,7 @@ uint32 CBuilderZone::countZones ()
}
// ---------------------------------------------------------------------------
void CBuilderZone::snapshot (const char *fileName, uint sizeSource, bool grayscale)
void CBuilderZone::snapshot (const std::string &fileName, uint sizeSource, bool grayscale)
{
const CZoneRegion *pBZR = &(getDocument ()->getZoneRegion (_ZoneRegionSelected));
sint32 nMinX = pBZR->getMinX();
@ -712,7 +712,7 @@ void CBuilderZone::snapshot (const char *fileName, uint sizeSource, bool graysca
}
// ---------------------------------------------------------------------------
void CBuilderZone::snapshotCustom (const char *fileName, uint width, uint height, bool keepRatio, uint sizeSource, bool grayscale)
void CBuilderZone::snapshotCustom (const std::string &fileName, uint width, uint height, bool keepRatio, uint sizeSource, bool grayscale)
{
if (_ZoneRegions.size() == 0)
return;

View file

@ -176,8 +176,8 @@ public:
void unload (uint32 i);
void move (sint32 x, sint32 y);
uint32 countZones ();
void snapshot (const char *fileName, uint sizeSource, bool grayscale);
void snapshotCustom (const char *fileName, uint width, uint height, bool keepRatio, uint sizeSource, bool grayscale);
void snapshot (const std::string &fileName, uint sizeSource, bool grayscale);
void snapshotCustom(const std::string &fileName, uint width, uint height, bool keepRatio, uint sizeSource, bool grayscale);
void add (const NLMISC::CVector &worldPos);
void addTransition (const NLMISC::CVector &worldPos);

View file

@ -915,11 +915,11 @@ bool CDialogProperties::CWidget::fromParameter (const IProperty *property, const
updateBoolean ();
break;
case CPrimitiveClass::CParameter::ConstString:
if (Parameter.Editable || ComboBox.SelectString(-1 ,propString->String.c_str ()) == CB_ERR)
if (Parameter.Editable || ComboBox.SelectString(-1, utf8ToTStr(propString->String)) == CB_ERR)
{
ComboBox.SetWindowText(propString->String.c_str ());
ComboBox.InsertString( -1, propString->String.c_str());
ComboBox.SelectString(-1 ,propString->String.c_str ());
ComboBox.SetWindowText(utf8ToTStr(propString->String));
ComboBox.InsertString( -1, utf8ToTStr(propString->String));
ComboBox.SelectString(-1, utf8ToTStr(propString->String));
}
OriginalString = propString->String.c_str();
updateCombo ();
@ -953,7 +953,7 @@ bool CDialogProperties::CWidget::fromParameter (const IProperty *property, const
updateBoolean ();
break;
case CPrimitiveClass::CParameter::ConstString:
ComboBox.SelectString(-1 ,result.c_str ());
ComboBox.SelectString(-1, utf8ToTStr(result));
OriginalString = result.c_str();
updateCombo ();
break;
@ -1159,18 +1159,14 @@ void CDialogProperties::CWidget::getValue (std::string &result) const
else if (Parameter.Type == CPrimitiveClass::CParameter::ConstString)
{
// Get the text
CString str;
getWindowTextUTF8 (ComboBox, str);
result = (const char*)str;
getWindowTextUTF8 (ComboBox, result);
}
else
{
nlassert (Parameter.Type == CPrimitiveClass::CParameter::String);
// Get the text
CString str;
getWindowTextUTF8 (EditBox, str);
result = (const char*)str;
getWindowTextUTF8 (EditBox, result);
}
}
@ -1183,29 +1179,23 @@ void CDialogProperties::CWidget::getValue (std::vector<std::string> &result) con
// Get the string
result.clear ();
CString str;
if (Parameter.Type == CPrimitiveClass::CParameter::StringArray)
{
getWindowTextUTF8 (MultiLineEditBox, str);
std::string temp;
getWindowTextUTF8 (MultiLineEditBox, temp);
// MultiLineEditBox.UnloadText(str);
const char *strP = str;
string dst;
while (*strP)
// remove \r
temp = removeSlashR(temp);
// append each line to result
explode(temp, std::string("\n"), result);
// remove the last line if empty
if (!result.empty() && result.back().empty())
{
// New line ?
if (*strP == '\n')
{
result.push_back (dst);
dst.clear();
result.resize(result.size() - 1);
}
else if (*strP != '\r')
{
dst += *strP;
}
strP++;
}
if (!dst.empty())
result.push_back (dst);
}
else
{
@ -1216,7 +1206,7 @@ void CDialogProperties::CWidget::getValue (std::vector<std::string> &result) con
{
CString str;
ListEditBox.GetText( i, str);
result[i] = (const char*)str;
result[i] = tStrToUtf8(str);
}
}
}
@ -1292,7 +1282,7 @@ void CDialogProperties::CWidget::updateCombo ()
DialogProperties->setDefaultValue (this, value);
if (value != "")
{
int index = ComboBox.FindString (-1, value.c_str());
int index = ComboBox.FindString (-1, utf8ToTStr(value));
if (index != CB_ERR)
ComboBox.SetCurSel (index);
}
@ -1370,9 +1360,9 @@ bool CDialogProperties::isModified()
// special case for editable combo box
if ((*iteWid).Parameter.Type == CPrimitiveClass::CParameter::ConstString)
{
CString text;
std::string text;
getWindowTextUTF8 ((*iteWid).ComboBox, text);
if ((*iteWid).OriginalString.c_str() != text)
if ((*iteWid).OriginalString != text)
{
return true;
}
@ -1631,17 +1621,22 @@ BOOL CDialogProperties::OnCommand(WPARAM wParam, LPARAM lParam)
/* todo hulud remove
CString oldValue;
widget->EditBox.GetWindowText (oldValue);*/
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("default"), TRUE, widget->Parameter.FileExtension.c_str (), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("default"), TRUE, utf8ToTStr(widget->Parameter.FileExtension), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
utf8ToTStr(widget->Parameter.FileExtension+" (*."+widget->Parameter.FileExtension+")|*."+widget->Parameter.FileExtension+"|All Files (*.*)|*.*||"), getMainFrame ());
if (widget->Parameter.Folder != "")
TCHAR temp[MAX_PATH];
if (!widget->Parameter.Folder.empty())
{
dialog.m_ofn.lpstrInitialDir = widget->Parameter.Folder.c_str();
_tcscpy_s(temp, MAX_PATH, utf8ToTStr(widget->Parameter.Folder));
dialog.m_ofn.lpstrInitialDir = temp;
}
if (dialog.DoModal() == IDOK)
{
CString str;
str = dialog.GetFileTitle();
setWindowTextUTF8 (widget->EditBox, str);
setWindowTextUTF8 (widget->EditBox, tStrToUtf8(str));
/* todo hulud remove
if ((const char*)oldValue != str)
@ -1708,15 +1703,15 @@ BOOL CDialogProperties::OnCommand(WPARAM wParam, LPARAM lParam)
if (!filename.empty ())
{
// Open the file
if (!openFile (filename.c_str ()))
if (!openDoc (filename))
// Error
theApp.errorMessage ("Can't open the file %s", filename.c_str ());
theApp.errorMessage ("Can't open the file %s", filename.c_str());
}
else
{
// Error
widget->getFilename (filename);
theApp.errorMessage ("Can't find the file %s", filename.c_str ());
theApp.errorMessage ("Can't find the file %s", filename.c_str());
}
}
}
@ -1772,9 +1767,9 @@ BOOL CDialogProperties::OnCommand(WPARAM wParam, LPARAM lParam)
widget->EditBox.GetWindowText (oldValue);*/
// String NULL ?
CString text;
std::string text;
getWindowTextUTF8 (widget->EditBox, text);
widget->Default = (text == "");
widget->Default = text.empty();
// Default ?
if (widget->Default)

View file

@ -318,7 +318,7 @@ void CDisplay::init (CMainFrame *pMF)
}
}
SetCurrentDirectory (pMF->_ExeDir.c_str());
SetCurrentDirectory (utf8ToTStr(pMF->_ExeDir));
}
// ***************************************************************************
@ -3554,7 +3554,7 @@ void CDisplay::DrawCollisionTexture(sint32 count, float x1, float y1)
string dir = getDocument ()->getDataDir ();
if (dir.empty()) dir = _MainFrame->_ExeDir;
dir += "\\collisionmap\\";
SetCurrentDirectory (dir.c_str());
SetCurrentDirectory (utf8ToTStr(dir));
if(NLMISC::CFile::fileExists(Name+".tga") || NLMISC::CFile::fileExists(Name+".png"))
{

View file

@ -886,7 +886,7 @@ CPrimBitmap::CPrimBitmap ()
// ***************************************************************************
void CPrimBitmap::init (const char *filename)
void CPrimBitmap::init (const std::string &filename)
{
// Set the name
removePropertyByName ("filename");
@ -926,12 +926,12 @@ NL3D::CTextureBlank *CPrimBitmap::getTexture () const
}
else
{
theApp.errorMessage ("Can't read bitmap %s", filename.c_str ());
theApp.errorMessage ("Can't read bitmap %s", filename.c_str());
}
}
catch (const Exception &e)
{
theApp.errorMessage ("Error reading bitmap %s : %s", filename.c_str (), e.what ());
theApp.errorMessage ("Error reading bitmap %s : %s", filename.c_str(), e.what ());
}
}
}

View file

@ -452,7 +452,7 @@ public:
CPrimBitmap ();
// Init
void init (const char *filename);
void init (const std::string &filename);
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimBitmap)

View file

@ -569,12 +569,10 @@ void CMainFrame::stopPositionControl(IPluginCallback *plugin)
}
// ***************************************************************************
void CMainFrame::setExeDir (const char* str)
void CMainFrame::setExeDir (const std::string &str)
{
// AFX_MANAGE_STATE (AfxGetStaticModuleState());
_ExeDir = str;
if ((str[strlen(str)-1] != '\\') || (str[strlen(str)-1] != '/'))
_ExeDir += "\\";
_ExeDir = CPath::standardizePath(str);
}
// ***************************************************************************
@ -761,11 +759,11 @@ void CMainFrame::displayStatusBarInfo ()
string text;
if (dispWnd->getActionHelp (text))
{
m_wndStatusBar.SetPaneText (0, text.c_str());
m_wndStatusBar.SetPaneText (0, utf8ToTStr(text));
}
else
{
m_wndStatusBar.SetPaneText (0, sTmp.c_str());
m_wndStatusBar.SetPaneText (0, utf8ToTStr(sTmp));
}
//for (uint32 i = sTmp.size(); i < 10; ++i)
// sTmp += " ";
@ -773,12 +771,12 @@ void CMainFrame::displayStatusBarInfo ()
// Write zone reference name
if (dispWnd->getActionText (text))
{
m_wndStatusBar.SetPaneText (1, text.c_str());
m_wndStatusBar.SetPaneText (1, utf8ToTStr(text));
}
else
{
sTmp = _ZoneBuilder->getZoneName (x, y);
m_wndStatusBar.SetPaneText (1, sTmp.c_str());
m_wndStatusBar.SetPaneText (1, utf8ToTStr(sTmp));
}
// Write coordinates
@ -786,15 +784,15 @@ void CMainFrame::displayStatusBarInfo ()
sprintf(temp, "(%.3f , %.3f)", v.x, v.y);
sTmp = temp;
// sTmp = "( " + toString(v.x) + " , " + toString(v.y) + " )";
m_wndStatusBar.SetPaneText (2, sTmp.c_str());
m_wndStatusBar.SetPaneText (2, utf8ToTStr(sTmp));
// Write rot
sTmp = "Rot(" + toString(_ZoneBuilder->getRot(x, y)) + ")";
m_wndStatusBar.SetPaneText (3, sTmp.c_str());
m_wndStatusBar.SetPaneText (3, utf8ToTStr(sTmp));
// Write flip
sTmp = "Flip(" + toString(_ZoneBuilder->getFlip(x, y)) + ")";
m_wndStatusBar.SetPaneText (4, sTmp.c_str());
m_wndStatusBar.SetPaneText (4, utf8ToTStr(sTmp));
// Write selection
if (Selection.size ())
@ -806,7 +804,7 @@ void CMainFrame::displayStatusBarInfo ()
}
else
sTmp = "No selected primitive";
m_wndStatusBar.SetPaneText (5, sTmp.c_str());
m_wndStatusBar.SetPaneText (5, utf8ToTStr(sTmp));
// Write path of selected primitive
if (Selection.size())
@ -814,14 +812,14 @@ void CMainFrame::displayStatusBarInfo ()
else
sTmp.clear();
m_wndStatusBar.SetPaneText (6, sTmp.c_str());
m_wndStatusBar.SetPaneText (6, utf8ToTStr(sTmp));
}
// ***************************************************************************
void CMainFrame::displayInfo (const char *info)
void CMainFrame::displayInfo (const std::string &info)
{
m_wndStatusBar.SetPaneText (6, info);
m_wndStatusBar.SetPaneText (6, utf8ToTStr(info));
}
// ***************************************************************************
@ -860,7 +858,7 @@ void CMainFrame::uninit ()
}
catch (const Exception& e)
{
MessageBox (e.what(), "Warning");
MessageBox (utf8ToTStr(e.what()), _T("Warning"));
}
}
@ -871,10 +869,10 @@ void CMainFrame::uninit ()
// ***************************************************************************
void CMainFrame::onMenuFileOpenLogic ()
{
CFileDialogEx dialog (BASE_REGISTRY_KEY, "prim", TRUE, "prim", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "Primitives Files (*.prim)|*.prim||", this);
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("prim"), TRUE, _T("prim"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("Primitives Files (*.prim)|*.prim||"), this);
if (dialog.DoModal() == IDOK)
{
launchLoadingDialog(string("loading prim zone ") + (LPCSTR)dialog.GetFileName());
launchLoadingDialog(string("loading prim zone ") + tStrToUtf8(dialog.GetFileName()));
// todo primitive load
primZoneModified ();
terminateLoadingDialog();
@ -1453,7 +1451,7 @@ struct CViewerConfig
if(f==NULL)
{
fprintf(stderr,"can't open file '%s'\n",configFileName);
fprintf(stderr,"can't open file '%s'\n",configFileName.c_str());
}
fprintf(f,"FullScreen = %d;\n",this->Windowed?0:1);
@ -1495,17 +1493,17 @@ struct CViewerConfig
fprintf(f,"Zones = {\n");
for (i = 0; i < Zones.size(); ++i)
if (i < (Zones.size()-1))
fprintf(f,"\"%s\",\n", Zones[i]);
fprintf(f,"\"%s\",\n", Zones[i].c_str());
else
fprintf(f,"\"%s\"\n", Zones[i]);
fprintf(f,"\"%s\"\n", Zones[i].c_str());
fprintf(f,"};\n");
fprintf(f,"Ig = {\n");
for (i = 0; i < Igs.size(); ++i)
if (i < (Igs.size()-1))
fprintf(f,"\"%s\",\n", Igs[i]);
fprintf(f,"\"%s\",\n", Igs[i].c_str());
else
fprintf(f,"\"%s\"\n", Igs[i]);
fprintf(f,"\"%s\"\n", Igs[i].c_str());
fprintf(f,"};\n");
fclose(f);
@ -1618,12 +1616,12 @@ void CMainFrame::viewLand(bool withIgs)
void CMainFrame::onProjectAddlandscape()
{
CFileDialogEx dialog (BASE_REGISTRY_KEY, "land", TRUE, "land", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "NeL Ligo Landscape Files (*.land)|*.land|All Files (*.*)|*.*||", this);
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("land"), TRUE, _T("land"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("NeL Ligo Landscape Files (*.land)|*.land|All Files (*.*)|*.*||"), this);
if (dialog.DoModal() == IDOK)
{
// Add the landscape in the project
getDocument ()->beginModification ();
getDocument ()->addModification (new CActionAddLandscape (dialog.GetPathName()));
getDocument ()->addModification (new CActionAddLandscape (tStrToUtf8(dialog.GetPathName())));
getDocument ()->endModification ();
// Update data
@ -1633,7 +1631,7 @@ void CMainFrame::onProjectAddlandscape()
if (getDocument()->getDataDir() != "")
return;
string path = dialog.GetPathName();
string path = tStrToUtf8(dialog.GetPathName());
uint pos = path.rfind("\\");
if (pos == string::npos)
@ -1750,9 +1748,9 @@ void CMainFrame::onProjectSettings()
// Get the new data path
std::string oldDataDir = standardizePath (getDocument ()->getDataDir ().c_str ());
std::string newDataDir = standardizePath (projectSettings.DataDirectory);
std::string newDataDir = standardizePath (tStrToUtf8(projectSettings.DataDirectory));
initLandscape |= (oldDataDir != newDataDir);
getDocument ()->setDataDir (projectSettings.DataDirectory);
getDocument ()->setDataDir (tStrToUtf8(projectSettings.DataDirectory));
// Init the landscape
if (initLandscape)
@ -1802,12 +1800,12 @@ void CMainFrame::OnUpdateEditLogic(CCmdUI* pCmdUI)
void CMainFrame::OnProjectImportPrim()
{
CFileDialogEx dialog (BASE_REGISTRY_KEY, "prim", TRUE, "prim", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "Old NeL Ligo Prim Files (*.prim)|*.prim|All Files (*.*)|*.*||", this);
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("prim"), TRUE, _T("prim"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("Old NeL Ligo Prim Files (*.prim)|*.prim|All Files (*.*)|*.*||"), this);
if (dialog.DoModal() == IDOK)
{
// Add the landscape in the project
getDocument ()->beginModification ();
getDocument ()->addModification (new CActionImportPrimitive (dialog.GetPathName()));
getDocument ()->addModification (new CActionImportPrimitive (tStrToUtf8(dialog.GetPathName())));
getDocument ()->endModification ();
// Update data
@ -1819,8 +1817,8 @@ void CMainFrame::OnProjectImportPrim()
void CMainFrame::OnProjectAddPrimitive()
{
static char buffer[32000];
CFileDialogEx dialog (BASE_REGISTRY_KEY, "primitive", TRUE, "primitive", NULL, OFN_ALLOWMULTISELECT|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "NeL Ligo Primitive Files (*.primitive)|*.primitive|All Files (*.*)|*.*||", this);
static TCHAR buffer[32000];
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("primitive"), TRUE, _T("primitive"), NULL, OFN_ALLOWMULTISELECT|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("NeL Ligo Primitive Files (*.primitive)|*.primitive|All Files (*.*)|*.*||"), this);
// increase result buffer size (for multi select)
memset(buffer, 0, 32000);
dialog.m_ofn.lpstrFile = buffer;
@ -1835,7 +1833,7 @@ void CMainFrame::OnProjectAddPrimitive()
while (pos!=NULL)
{
string path = dialog.GetNextPathName(pos);
string path = tStrToUtf8(dialog.GetNextPathName(pos));
if (!getDocument()->isPrimitiveLoaded(path))
getDocument ()->addModification (new CActionLoadPrimitive (path.c_str()));
else
@ -2209,7 +2207,7 @@ void CMainFrame::setTransformMode (TTransformMode mode)
// ***************************************************************************
void CMainFrame::deletePrimitive (bool subDelete, const char *actionName)
void CMainFrame::deletePrimitive (bool subDelete, const std::string &actionName)
{
list<NLLIGO::IPrimitive*> oldSelection;
@ -2629,7 +2627,7 @@ void CMainFrame::OnOpenFile (UINT nID)
nlassert (nID<files.size ());
// Open the file
if (!openFile (files[nID].c_str ()))
if (!openDoc (files[nID]))
theApp.errorMessage ("Can't open the file %s", files[nID].c_str ());
}
@ -2647,14 +2645,14 @@ void CMainFrame::createContextMenu (CWnd *parent, const CPoint &point, bool tran
if (_Mode == 1)
{
// Add commands
pMenu->AppendMenu (MF_STRING, ID_EDIT_SELECT, "&Select\tF5");
pMenu->AppendMenu (MF_STRING, ID_EDIT_TRANSLATE, "&Move\tF6");
pMenu->AppendMenu (MF_STRING, ID_EDIT_ROTATE, "&Rotate\tF7");
pMenu->AppendMenu (MF_STRING, ID_EDIT_TURN, "&Turn\tF8");
pMenu->AppendMenu (MF_STRING, ID_EDIT_SCALE, "&Scale\tF9");
pMenu->AppendMenu (MF_STRING, ID_EDIT_RADIUS, "&Radius\tF10");
pMenu->AppendMenu (MF_STRING, ID_EDIT_SELECT, _T("&Select\tF5"));
pMenu->AppendMenu (MF_STRING, ID_EDIT_TRANSLATE, _T("&Move\tF6"));
pMenu->AppendMenu (MF_STRING, ID_EDIT_ROTATE, _T("&Rotate\tF7"));
pMenu->AppendMenu (MF_STRING, ID_EDIT_TURN, _T("&Turn\tF8"));
pMenu->AppendMenu (MF_STRING, ID_EDIT_SCALE, _T("&Scale\tF9"));
pMenu->AppendMenu (MF_STRING, ID_EDIT_RADIUS, _T("&Radius\tF10"));
if (isSelectionLocked ())
pMenu->AppendMenu (MF_STRING, ID_EDIT_ADD_POINT, "&Add points\tF11");
pMenu->AppendMenu (MF_STRING, ID_EDIT_ADD_POINT, _T("&Add points\tF11"));
// Check the good one
pMenu->CheckMenuRadioItem (ID_EDIT_SELECT, isSelectionLocked ()?ID_EDIT_ADD_POINT:ID_EDIT_SCALE, ID_EDIT_SELECT+getTransformMode (),
@ -2666,35 +2664,35 @@ void CMainFrame::createContextMenu (CWnd *parent, const CPoint &point, bool tran
}
// Always a delete menu
pMenu->AppendMenu (MF_STRING, ID_EDIT_DELETE, "&Delete\tDel");
pMenu->AppendMenu (MF_STRING, ID_EDIT_DELETE, _T("&Delete\tDel"));
// Add properties menu
pMenu->AppendMenu (MF_STRING, ID_EDIT_PROPERTIES, "&Properties\tAlt+Enter");
pMenu->AppendMenu (MF_STRING, ID_EDIT_PROPERTIES, _T("&Properties\tAlt+Enter"));
// Select Children
pMenu->AppendMenu (MF_STRING, ID_EDIT_SELECT_CHILDREN, "&Select Children\tC");
pMenu->AppendMenu (MF_STRING, ID_EDIT_SELECT_CHILDREN, _T("&Select Children\tC"));
// Tree help
pMenu->AppendMenu (MF_STRING, ID_HELP_FINDER, "&Help\tF1");
pMenu->AppendMenu (MF_STRING, ID_HELP_FINDER, _T("&Help\tF1"));
// Add separator
pMenu->AppendMenu (MF_SEPARATOR);
pMenu->AppendMenu (MF_STRING, ID_RENAME_SELECTED, "&Rename All Selected");
pMenu->AppendMenu (MF_STRING, ID_REPAIR_SELECTED, "&Repair All Selected");
pMenu->AppendMenu (MF_STRING, ID_RENAME_SELECTED, _T("&Rename All Selected"));
pMenu->AppendMenu (MF_STRING, ID_REPAIR_SELECTED, _T("&Repair All Selected"));
// Add separator
pMenu->AppendMenu (MF_SEPARATOR);
// Add properties menu
pMenu->AppendMenu (MF_STRING, ID_VIEW_SHOW, "&Show\tS");
pMenu->AppendMenu (MF_STRING, ID_VIEW_HIDE, "&Hide\tH");
pMenu->AppendMenu (MF_STRING, ID_VIEW_SHOW, _T("&Show\tS"));
pMenu->AppendMenu (MF_STRING, ID_VIEW_HIDE, _T("&Hide\tH"));
// Add separator
pMenu->AppendMenu (MF_SEPARATOR);
// Add expand / collapse menu
pMenu->AppendMenu (MF_STRING, ID_EDIT_EXPAND, "&Expand\tE");
pMenu->AppendMenu (MF_STRING, ID_EDIT_COLLAPSE, "&Collapse\tR");
pMenu->AppendMenu (MF_STRING, ID_EDIT_EXPAND, _T("&Expand\tE"));
pMenu->AppendMenu (MF_STRING, ID_EDIT_COLLAPSE, _T("&Collapse\tR"));
// Only one selection ?
if (Selection.size () == 1)
@ -2712,7 +2710,7 @@ void CMainFrame::createContextMenu (CWnd *parent, const CPoint &point, bool tran
// For each child, add a create method
for (uint i=0; i<primClass->DynamicChildren.size (); i++)
{
pMenu->AppendMenu (MF_STRING, ID_EDIT_CREATE_BEGIN+i, ("Add "+primClass->DynamicChildren[i].ClassName).c_str ());
pMenu->AppendMenu (MF_STRING, ID_EDIT_CREATE_BEGIN+i, utf8ToTStr("Add " + primClass->DynamicChildren[i].ClassName));
}
}
@ -2725,7 +2723,7 @@ void CMainFrame::createContextMenu (CWnd *parent, const CPoint &point, bool tran
// For each child, add a create method
for (uint i=0; i<primClass->GeneratedChildren.size (); i++)
{
pMenu->AppendMenu (MF_STRING, ID_EDIT_GENERATE_BEGIN+i, ("Generate "+primClass->GeneratedChildren[i].ClassName).c_str ());
pMenu->AppendMenu (MF_STRING, ID_EDIT_GENERATE_BEGIN+i, utf8ToTStr("Generate "+primClass->GeneratedChildren[i].ClassName));
}
}
@ -2749,7 +2747,7 @@ void CMainFrame::createContextMenu (CWnd *parent, const CPoint &point, bool tran
for (i=0; i<filenames.size (); i++)
{
// Add a menu entry
pMenu->AppendMenu (MF_STRING, ID_EDIT_OPEN_FILE_BEGIN+i, ("Open "+NLMISC::CFile::getFilename (filenames[i])).c_str ());
pMenu->AppendMenu (MF_STRING, ID_EDIT_OPEN_FILE_BEGIN+i, utf8ToTStr("Open " + NLMISC::CFile::getFilename (filenames[i])));
}
}
}
@ -3375,9 +3373,9 @@ void CMainFrame::OnHelpFinder()
{
//string filename = theApp.ExePath+"doc/"+className+".html";
string filename = theApp.DocPath+"/"+className+".html";
if (!NLMISC::CFile::fileExists(filename) || !openFile (filename.c_str ()))
if (!NLMISC::CFile::fileExists(filename) || !openDoc (filename))
{
//openFile ((theApp.ExePath+"world_editor.html").c_str ());
//openDoc (theApp.ExePath+"world_editor.html");
theApp.errorMessage ("Can't open the file %s", filename.c_str ());
}
}
@ -3385,7 +3383,7 @@ void CMainFrame::OnHelpFinder()
}
else
{
openFile ((theApp.ExePath+"world_editor.html").c_str ());
openDoc((theApp.ExePath+"world_editor.html"));
}
}
@ -3719,7 +3717,7 @@ void CMainFrame::OnProjectForceiduniqueness()
// End modifications
doc->endModification ();
AfxMessageBox(NLMISC::toString("%u ids checked, %u non unique ID regenerated", ids.size()+nonUnique.size(), nonUnique.size()).c_str(), MB_OK);
AfxMessageBox(utf8ToTStr(NLMISC::toString("%u ids checked, %u non unique ID regenerated", ids.size()+nonUnique.size(), nonUnique.size())), MB_OK);
}
// ***************************************************************************
@ -3795,7 +3793,7 @@ void CMainFrame::OnViewCollisions()
// ***************************************************************************
// routines for the plugin
NLLIGO::IPrimitive *CMainFrame::createRootPluginPrimitive (const char *name)
NLLIGO::IPrimitive *CMainFrame::createRootPluginPrimitive (const std::string &name)
{
AFX_MANAGE_STATE(AfxGetAppModuleState());
@ -3861,8 +3859,8 @@ void CMainFrame::getAllRootPluginPrimitive (std::vector<NLLIGO::IPrimitive*> &pr
const NLLIGO::IPrimitive *CMainFrame::createPluginPrimitive
(
const char *className,
const char *primName,
const std::string &className,
const std::string &primName,
const NLMISC::CVector &initPos,
float deltaPos,
const std::vector<CPrimitiveClass::CInitParameters> &initParameters,
@ -3982,7 +3980,7 @@ void CMainFrame::getWindowCoordinates(NLMISC::CVector &vmin, NLMISC::CVector &vm
void CMainFrame::OnHelpHistory()
{
string filename = theApp.ExePath+"history.txt";
if (!openFile (filename.c_str()))
if (!openDoc(filename))
{
theApp.errorMessage ("Can't open the file %s", filename.c_str ());
}
@ -3995,13 +3993,13 @@ void CMainFrame::OnExportSnapshot()
CCustomSnapshot snapShot (this);
if (snapShot.DoModal () == IDOK)
{
CFileDialogEx dialog (BASE_REGISTRY_KEY, "image", FALSE, "tga", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "Targa Files (*.tga)|*.tga|All Files (*.*)|*.*||", this);
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("image"), FALSE, _T("tga"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("Targa Files (*.tga)|*.tga|All Files (*.*)|*.*||"), this);
if (dialog.DoModal() == IDOK)
{
if (snapShot.FixedSize == 0)
_ZoneBuilder->snapshot (dialog.GetPathName(), (uint)theApp.Config.CellSize, snapShot.OutputRGB == 1);
_ZoneBuilder->snapshot (tStrToUtf8(dialog.GetPathName()), (uint)theApp.Config.CellSize, snapShot.OutputRGB == 1);
else
_ZoneBuilder->snapshotCustom (dialog.GetPathName(), snapShot.Width, snapShot.Height, snapShot.KeepRatio != FALSE,
_ZoneBuilder->snapshotCustom (tStrToUtf8(dialog.GetPathName()), snapShot.Width, snapShot.Height, snapShot.KeepRatio != FALSE,
(uint)theApp.Config.CellSize, snapShot.OutputRGB == 1);
}
}
@ -4241,14 +4239,14 @@ void CMainFrame::OnSavePosition()
x = (sint32)floor(v.x / dispWnd->_CellSize);
y = (sint32)floor(v.y / dispWnd->_CellSize);
str.Format( "[%s] X = %.3f, Y = %.3f\r\n", t.Format( "%m/%d/%y, %H:%M:%S" ), v.x, v.y );
str.Format( _T("[%s] X = %.3f, Y = %.3f\r\n"), t.Format( "%m/%d/%y, %H:%M:%S" ), v.x, v.y );
file.Open( "position.txt", ::CFile::modeCreate|::CFile::modeNoTruncate|::CFile::modeWrite|::CFile::typeText );
file.Open( _T("position.txt"), ::CFile::modeCreate|::CFile::modeNoTruncate|::CFile::modeWrite|::CFile::typeText );
file.SeekToEnd();
file.WriteString( str );
file.Close();
MessageBox( "Current coordinates saved in file position.txt", "Position saved", MB_OK );
MessageBox( _T("Current coordinates saved in file position.txt"), _T("Position saved"), MB_OK );
}
// ***************************************************************************
@ -4266,9 +4264,9 @@ void CMainFrame::OnDropFiles(HDROP hDropInfo)
for (uint i=0 ; i<numFiles ; i++)
{
// Get the path of this file
char* pFilename = Filename.GetBuffer(_MAX_PATH);
TCHAR* pFilename = Filename.GetBuffer(_MAX_PATH);
DragQueryFile(hDropInfo, i, pFilename, _MAX_PATH);
string path(pFilename);
string path(tStrToUtf8(pFilename));
// Add it if it's a primitive not already loaded
if (path.find(".primitive") != string::npos)
@ -4330,11 +4328,11 @@ void CMainFrame::OnMissionCompiler()
if (files.size() > 0)
{
// use system temp directory
char tmpPath[MAX_PATH];
GetEnvironmentVariable("TMP", tmpPath, MAX_PATH);
strcat(tmpPath, "\\tmptool.txt");
TCHAR tmpPath[MAX_PATH];
GetEnvironmentVariable(_T("TMP"), tmpPath, MAX_PATH);
_tcscat(tmpPath, _T("\\tmptool.txt"));
FILE *f = nlfopen(tmpPath, "w");
FILE *f = nlfopen(tStrToUtf8(tmpPath), "w");
if (f==NULL)
infoMessage("Can't open file for writing !\n%s", tmpPath);
@ -4352,8 +4350,8 @@ void CMainFrame::OnMissionCompiler()
return;
}
char path[MAX_PATH];
strcpy(path, var->asString().c_str());
TCHAR path[MAX_PATH];
_tcscpy(path, utf8ToTStr(var->asString()));
SHELLEXECUTEINFO ExecuteInfo;
memset(&ExecuteInfo, 0, sizeof(ExecuteInfo));
@ -4361,8 +4359,8 @@ void CMainFrame::OnMissionCompiler()
ExecuteInfo.cbSize = sizeof(ExecuteInfo);
ExecuteInfo.fMask = 0;
ExecuteInfo.hwnd = 0;
ExecuteInfo.lpVerb = "open";
ExecuteInfo.lpFile = "mission_compiler_fe_r.exe";
ExecuteInfo.lpVerb = _T("open");
ExecuteInfo.lpFile = _T("mission_compiler_fe_r.exe");
ExecuteInfo.lpParameters = 0;
ExecuteInfo.lpDirectory = path;
ExecuteInfo.nShow = SW_SHOW;

View file

@ -207,13 +207,13 @@ public:
void setSelectionLocked (bool lock);
// Delete selected primitives
void deletePrimitive (bool subDelete, const char *actionName);
void deletePrimitive (bool subDelete, const std::string &actionName);
// Create a context menu for selection
void createContextMenu (CWnd *parent, const CPoint &point, bool transformMode);
// Display info in the status bar
void displayInfo (const char *info);
void displayInfo (const std::string &info);
// Disactive / enable interaction
void interaction (bool enable);
@ -258,8 +258,8 @@ public:
/// The controled position
NLMISC::CVector _PositionControl;
void setExeDir (const char* str);
void setDataDir (const char* str);
void setExeDir (const std::string &str);
void setDataDir (const std::string &str);
void uninitTools();
void initTools();
void invalidateLandscape ();
@ -293,7 +293,7 @@ public:
void startPositionControl(IPluginCallback *plugin, const NLMISC::CVector &initPos);
void stopPositionControl(IPluginCallback *plugin);
// functions to create/remove the Root Primitive for server actions
virtual NLLIGO::IPrimitive *createRootPluginPrimitive (const char *name);
virtual NLLIGO::IPrimitive *createRootPluginPrimitive (const std::string &name);
virtual void deleteRootPluginPrimitive (void);
virtual void getAllRootPluginPrimitive (std::vector<NLLIGO::IPrimitive*> &prims);
/*
@ -302,8 +302,8 @@ public:
*/
// Create a plugin primitive
const NLLIGO::IPrimitive *createPluginPrimitive (
const char *className,
const char *primName,
const std::string &className,
const std::string &primName,
const NLMISC::CVector &initPos,
float deltaPos,
const std::vector<NLLIGO::CPrimitiveClass::CInitParameters> &initParameters,

View file

@ -66,10 +66,10 @@ BOOL CMyListBox::OnCommand(WPARAM wParam, LPARAM lParam)
{
case CBN_SELENDOK:
{
CString str;
std::string str;
getWindowTextUTF8 (StringSelectComboBox, str);
DeleteString(_EditingItem);
InsertString(_EditingItem, str);
InsertString(_EditingItem, utf8ToTStr(str));
SetCurSel (_SelectAfter);
_EditingItem = LB_ERR;
notifyParent ();

View file

@ -85,7 +85,7 @@ public:
/* Functions to create/remove the Root Primitive for server actions
Returns the id of the root primitive
*/
virtual NLLIGO::IPrimitive *createRootPluginPrimitive (const char *name) = 0;
virtual NLLIGO::IPrimitive *createRootPluginPrimitive (const std::string &name) = 0;
virtual void deleteRootPluginPrimitive (void) = 0;
/// get all the current root primitve in the world editor. only the editable one are returned
virtual void getAllRootPluginPrimitive (std::vector<NLLIGO::IPrimitive*> &prims) = 0;
@ -95,8 +95,8 @@ public:
*/
// Create a plugin primitive
virtual const NLLIGO::IPrimitive *createPluginPrimitive (
const char *className,
const char *primName,
const std::string &className,
const std::string &primName,
const NLMISC::CVector &initPos,
float deltaPos,
const std::vector<NLLIGO::CPrimitiveClass::CInitParameters> &initParameters,

View file

@ -76,20 +76,20 @@ void CProjectSettings::OnBrowse()
UpdateData ();
BROWSEINFO bi;
char str[MAX_PATH];
TCHAR str[MAX_PATH];
ITEMIDLIST* pidl;
char sTemp[1024];
TCHAR sTemp[1024];
bi.hwndOwner = this->m_hWnd;
bi.pidlRoot = NULL;
bi.pidlRoot = NULL;
bi.pszDisplayName = sTemp;
bi.lpszTitle = "Choose the data directory for this project";
bi.lpszTitle = _T("Choose the data directory for this project");
bi.ulFlags = 0;
bi.lpfn = dataDirBrowseCallbackProc;
char sDir[512];
strcpy(sDir, DataDirectory);
TCHAR sDir[512];
_tcscpy(sDir, DataDirectory);
bi.lParam = (LPARAM)sDir;
bi.iImage = 0;
@ -114,9 +114,9 @@ void CProjectSettings::OnOK()
// Get the document
CWorldEditorDoc *doc = getDocument ();
CString str;
std::string str;
getWindowTextUTF8 (Context, str);
doc->setContext ((const char*)str);
doc->setContext (str);
}
// ***************************************************************************
@ -133,11 +133,11 @@ BOOL CProjectSettings::OnInitDialog()
for (uint i=0; i<contexts.size (); i++)
{
// Add the string
Context.InsertString (-1, contexts[i].c_str());
Context.InsertString (-1, utf8ToTStr(contexts[i]));
}
// Select the string
Context.SelectString (-1, doc->getContext ().c_str ());
Context.SelectString (-1, utf8ToTStr(doc->getContext ()));
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE

View file

@ -681,9 +681,9 @@ void CToolsLogicTree::OnMenuGroupCreatePoint()
dialog.MainFrame = _MainFrame;
if (dialog.DoModal () == IDOK)
if (strlen(dialog.Name) > 0)
if (_tcslen(dialog.Name) > 0)
{
HTREEITEM newItem = insertItemUTF8 (*this, dialog.Name, 2, 2, itemGroup);
HTREEITEM newItem = insertItemUTF8 (*this, tStrToUtf8(dialog.Name), 2, 2, itemGroup);
Expand (itemGroup, TVE_EXPAND);
// Create the newItem
for (i = 0; i < _RegionsInfo.size(); ++i)
@ -715,9 +715,9 @@ void CToolsLogicTree::OnMenuGroupCreatePath()
dialog.MainFrame = _MainFrame;
if (dialog.DoModal () == IDOK)
if (strlen(dialog.Name) > 0)
if (_tcslen(dialog.Name) > 0)
{
HTREEITEM newItem = insertItemUTF8 (*this, dialog.Name, 4, 4, itemGroup);
HTREEITEM newItem = insertItemUTF8 (*this, tStrToUtf8(dialog.Name), 4, 4, itemGroup);
Expand (itemGroup, TVE_EXPAND);
// Create the newItem
for (i = 0; i < _RegionsInfo.size(); ++i)
@ -749,9 +749,9 @@ void CToolsLogicTree::OnMenuGroupCreateZone()
dialog.MainFrame = _MainFrame;
if (dialog.DoModal () == IDOK)
if (strlen(dialog.Name) > 0)
if (_tcslen(dialog.Name) > 0)
{
HTREEITEM newItem = insertItemUTF8 (*this, dialog.Name, 6, 6, itemGroup);
HTREEITEM newItem = insertItemUTF8 (*this, tStrToUtf8(dialog.Name), 6, 6, itemGroup);
Expand (itemGroup, TVE_EXPAND);
// Create the newItem
for (i = 0; i < _RegionsInfo.size(); ++i)
@ -814,7 +814,7 @@ void CToolsLogicTree::OnMenuGroupProperties()
es.Name = GetItemText (hItem);
if (es.DoModal() == IDOK)
{
setItemTextUTF8 (*this, hItem, es.Name);
setItemTextUTF8 (*this, hItem, tStrToUtf8(es.Name));
HTREEITEM hChildItem = GetChildItem(hItem);
while (hChildItem != NULL)
@ -878,7 +878,7 @@ void CToolsLogicTree::OnMenuGroupTransfertAppend ()
{
HTREEITEM hNextItem = GetNextItem (hChildItem, TVGN_NEXT);
vTemp.push_back((LPCSTR)GetItemText(hChildItem));
vTemp.push_back(tStrToUtf8(GetItemText(hChildItem)));
hChildItem = hNextItem;
}
@ -898,7 +898,7 @@ void CToolsLogicTree::OnMenuGroupTransfertReplace ()
{
HTREEITEM hNextItem = GetNextItem (hChildItem, TVGN_NEXT);
vTemp.push_back((LPCSTR)GetItemText(hChildItem));
vTemp.push_back(tStrToUtf8(GetItemText(hChildItem)));
hChildItem = hNextItem;
}
@ -1198,9 +1198,9 @@ void CToolsLogic::OnNewGroup ()
void CToolsLogic::OnNewPatat ()
{
CComboBox *pCB = (CComboBox*)GetDlgItem(IDC_TYPE);
CString str;
std::string str;
getWindowTextUTF8 (*pCB, str);
string sStr = (LPCSTR)str;
// TODO: what to do with str?
}
// ***************************************************************************
@ -1231,7 +1231,7 @@ BOOL CCreateDialog::OnInitDialog ()
for (uint32 i = 0; i < TypesForInit->size(); ++i)
{
ComboType.InsertString (-1, TypesForInit->operator[](i).Name.c_str());
ComboType.InsertString (-1, utf8ToTStr(TypesForInit->operator[](i).Name));
}
if (TypesForInit->size()>0)
@ -1239,7 +1239,7 @@ BOOL CCreateDialog::OnInitDialog ()
if (ComboType.SelectString (0, LayerName) == CB_ERR)
ComboType.SetCurSel (0);
UpdateData();
if (strlen(Name) == 0)
if (_tcslen(Name) == 0)
OnSelChange();
}
@ -1264,16 +1264,16 @@ void CCreateDialog::OnOK()
UpdateData ();
// If the "region_" do not exist add it
if (strncmp(RegionPost.c_str(), Name, strlen(RegionPost.c_str())) != 0)
if (_tcsnccmp(utf8ToTStr(RegionPost), Name, strlen(RegionPost.c_str())) != 0)
{
char sTmp[128];
strcpy (sTmp, RegionPost.c_str());
strcat (sTmp, Name);
strcpy (Name, sTmp);
TCHAR sTmp[128];
_tcscpy (sTmp, utf8ToTStr(RegionPost));
_tcscat (sTmp, Name);
_tcscpy (Name, sTmp);
UpdateData (false);
}
if (strcmp(PropName.c_str(), Name) == 0)
if (PropName == tStrToUtf8(Name))
CDialog::OnOK();
CDialog::OnOK();
@ -1301,15 +1301,15 @@ void CCreateDialog::OnSelChange ()
CString sTmp;
ComboType.GetLBText (cs, sTmp);
if (PropType == (LPCSTR)sTmp)
if (PropType == tStrToUtf8(sTmp))
{
strcpy (Name, PropName.c_str());
_tcscpy (Name, utf8ToTStr(PropName));
}
else
{
strcpy (Name, RegionPost.c_str());
strcat (Name, (LPCSTR)sTmp);
strcat (Name, "-");
_tcscpy(Name, utf8ToTStr(RegionPost));
_tcscat (Name, (LPCTSTR)sTmp);
_tcscat (Name, _T("-"));
}
UpdateData (false);
@ -1617,7 +1617,7 @@ HTREEITEM CToolsLogic::addPrimitive (HTREEITEM parentItem, HTREEITEM lastBrother
const NLLIGO::CPrimitives *primitives = &(doc->getDatabaseElements (locator.getDatabaseIndex ()));
// Set the item data
_Tree->SetItemData (treeItem, (DWORD)new CPrimitiveTreeData (primitives, locator.Primitive));
_Tree->SetItemData (treeItem, (DWORD_PTR)new CPrimitiveTreeData (primitives, locator.Primitive));
// Expand parent ?
if (parentItem != TVI_ROOT)

View file

@ -196,7 +196,7 @@ class CCreateDialog : public CDialog
public:
char Name[128],
TCHAR Name[128],
LayerName[128];
std::vector<SType> *TypesForInit;

View file

@ -105,7 +105,7 @@ void CToolsZoneList::reset()
void CToolsZoneList::addItem (const string &itemName)
{
_ItemNames.push_back (itemName);
InsertString (-1, itemName.c_str());
InsertString (-1, utf8ToTStr(itemName));
}
// ---------------------------------------------------------------------------
@ -168,7 +168,7 @@ void CToolsZoneList::DrawItem (LPDRAWITEMSTRUCT lpDrawItemStruct)
}
// Draw the text.
dc.DrawText (lpszText, strlen(lpszText), &rectLeft, DT_CENTER|DT_SINGLELINE|DT_VCENTER);
dc.DrawText (lpszText, _tcslen(lpszText), &rectLeft, DT_CENTER|DT_SINGLELINE|DT_VCENTER);
// Reset the background color and the text color back to their original values.
dc.SetTextColor (crOldTextColor);
@ -261,13 +261,13 @@ void CToolsZone::addToAllCatTypeCB (const string &Name)
{
CComboBox* pCB;
pCB = (CComboBox*)GetDlgItem (IDC_CATTYPE1);
pCB->AddString (Name.c_str());
pCB->AddString (utf8ToTStr(Name));
pCB = (CComboBox*)GetDlgItem (IDC_CATTYPE2);
pCB->AddString (Name.c_str());
pCB->AddString (utf8ToTStr(Name));
pCB = (CComboBox*)GetDlgItem (IDC_CATTYPE3);
pCB->AddString (Name.c_str());
pCB->AddString (utf8ToTStr(Name));
pCB = (CComboBox*)GetDlgItem (IDC_CATTYPE4);
pCB->AddString (Name.c_str());
pCB->AddString (utf8ToTStr(Name));
}
// ---------------------------------------------------------------------------
@ -285,26 +285,26 @@ void CToolsZone::init (CMainFrame *pMF)
// Select right category types
CComboBox* pCB;
pCB = (CComboBox*)GetDlgItem (IDC_CATTYPE1);
pCB->SelectString (-1, _MainFrame->_ZoneBuilder->_FilterType1.c_str());
pCB->SelectString (-1, utf8ToTStr(_MainFrame->_ZoneBuilder->_FilterType1));
pCB = (CComboBox*)GetDlgItem (IDC_CATTYPE2);
pCB->SelectString (-1, _MainFrame->_ZoneBuilder->_FilterType2.c_str());
pCB->SelectString (-1, utf8ToTStr(_MainFrame->_ZoneBuilder->_FilterType2));
pCB = (CComboBox*)GetDlgItem (IDC_CATTYPE3);
pCB->SelectString (-1, _MainFrame->_ZoneBuilder->_FilterType3.c_str());
pCB->SelectString (-1, utf8ToTStr(_MainFrame->_ZoneBuilder->_FilterType3));
pCB = (CComboBox*)GetDlgItem (IDC_CATTYPE4);
pCB->SelectString (-1, _MainFrame->_ZoneBuilder->_FilterType4.c_str());
pCB->SelectString (-1, utf8ToTStr(_MainFrame->_ZoneBuilder->_FilterType4));
updateComboPairAndFilter (IDC_CATTYPE1, IDC_CATVALUE1, &_MainFrame->_ZoneBuilder->_FilterType1);
pCB = (CComboBox*)GetDlgItem (IDC_CATVALUE1);
pCB->SelectString (-1, _MainFrame->_ZoneBuilder->_FilterValue1.c_str());
pCB->SelectString (-1, utf8ToTStr(_MainFrame->_ZoneBuilder->_FilterValue1));
updateComboPairAndFilter (IDC_CATTYPE2, IDC_CATVALUE2, &_MainFrame->_ZoneBuilder->_FilterType2);
pCB = (CComboBox*)GetDlgItem (IDC_CATVALUE2);
pCB->SelectString (-1, _MainFrame->_ZoneBuilder->_FilterValue2.c_str());
pCB->SelectString (-1, utf8ToTStr(_MainFrame->_ZoneBuilder->_FilterValue2));
updateComboPairAndFilter (IDC_CATTYPE3, IDC_CATVALUE3, &_MainFrame->_ZoneBuilder->_FilterType3);
pCB = (CComboBox*)GetDlgItem (IDC_CATVALUE3);
pCB->SelectString (-1, _MainFrame->_ZoneBuilder->_FilterValue3.c_str());
pCB->SelectString (-1, utf8ToTStr(_MainFrame->_ZoneBuilder->_FilterValue3));
updateComboPairAndFilter (IDC_CATTYPE4, IDC_CATVALUE4, &_MainFrame->_ZoneBuilder->_FilterType4);
pCB = (CComboBox*)GetDlgItem (IDC_CATVALUE4);
pCB->SelectString (-1, _MainFrame->_ZoneBuilder->_FilterValue4.c_str());
pCB->SelectString (-1, utf8ToTStr(_MainFrame->_ZoneBuilder->_FilterValue4));
// Select right operators
CButton *pButAnd, *pButOr;
@ -432,11 +432,11 @@ void CToolsZone::OnPaint()
void CToolsZone::updateComboPairAndFilter (int CatTypeId, int CatValueId, string *pFilterType)
{
uint32 i;
char sTmp[256];
TCHAR sTmp[256];
CComboBox *pCBType, *pCBValue;
pCBType = (CComboBox*)GetDlgItem (CatTypeId);
pCBType->GetLBText (pCBType->GetCurSel(), sTmp);
*pFilterType = sTmp;
*pFilterType = tStrToUtf8(sTmp);
pCBValue = (CComboBox*)GetDlgItem (CatValueId);
pCBValue->ResetContent ();
@ -446,7 +446,7 @@ void CToolsZone::updateComboPairAndFilter (int CatTypeId, int CatValueId, string
vector<string> allCategoryValues;
_MainFrame->_ZoneBuilder->getZoneBank().getCategoryValues (*pFilterType, allCategoryValues);
for(i = 0; i < allCategoryValues.size(); ++i)
pCBValue->AddString (allCategoryValues[i].c_str());
pCBValue->AddString (utf8ToTStr(allCategoryValues[i]));
pCBValue->SetCurSel (0);
}
@ -485,40 +485,40 @@ void CToolsZone::OnSelectCatType4 ()
// ---------------------------------------------------------------------------
void CToolsZone::OnSelectCatValue1()
{
char sTmp[256];
TCHAR sTmp[256];
CComboBox *pCBValue = (CComboBox*)GetDlgItem (IDC_CATVALUE1);
pCBValue->GetLBText (pCBValue->GetCurSel(), sTmp);
_MainFrame->_ZoneBuilder->_FilterValue1 = sTmp;
_MainFrame->_ZoneBuilder->_FilterValue1 = tStrToUtf8(sTmp);
_MainFrame->_ZoneBuilder->updateToolsZone ();
}
// ---------------------------------------------------------------------------
void CToolsZone::OnSelectCatValue2()
{
char sTmp[256];
TCHAR sTmp[256];
CComboBox *pCBValue = (CComboBox*)GetDlgItem (IDC_CATVALUE2);
pCBValue->GetLBText (pCBValue->GetCurSel(), sTmp);
_MainFrame->_ZoneBuilder->_FilterValue2 = sTmp;
_MainFrame->_ZoneBuilder->_FilterValue2 = tStrToUtf8(sTmp);
_MainFrame->_ZoneBuilder->updateToolsZone ();
}
// ---------------------------------------------------------------------------
void CToolsZone::OnSelectCatValue3()
{
char sTmp[256];
TCHAR sTmp[256];
CComboBox *pCBValue = (CComboBox*)GetDlgItem (IDC_CATVALUE3);
pCBValue->GetLBText (pCBValue->GetCurSel(), sTmp);
_MainFrame->_ZoneBuilder->_FilterValue3 = sTmp;
_MainFrame->_ZoneBuilder->_FilterValue3 = tStrToUtf8(sTmp);
_MainFrame->_ZoneBuilder->updateToolsZone ();
}
// ---------------------------------------------------------------------------
void CToolsZone::OnSelectCatValue4()
{
char sTmp[256];
TCHAR sTmp[256];
CComboBox *pCBValue = (CComboBox*)GetDlgItem (IDC_CATVALUE4);
pCBValue->GetLBText (pCBValue->GetCurSel(), sTmp);
_MainFrame->_ZoneBuilder->_FilterValue4 = sTmp;
_MainFrame->_ZoneBuilder->_FilterValue4 = tStrToUtf8(sTmp);
_MainFrame->_ZoneBuilder->updateToolsZone ();
}

View file

@ -77,7 +77,7 @@ void CTypeManagerDlg::OnAddtype()
if (typeDlg.DoModal() == IDOK)
{
SType typeTmp;
typeTmp.Name = (LPCSTR)typeDlg.EditName;
typeTmp.Name = tStrToUtf8(typeDlg.EditName);
typeTmp.Color = typeDlg.ButtonColorValue;
// Check if the name of the new type is the same as an existing one
bool bFound = false;
@ -91,7 +91,7 @@ void CTypeManagerDlg::OnAddtype()
if (!bFound)
{
LocalTypes.push_back (typeTmp);
ListType.InsertString(-1, typeTmp.Name.c_str());
ListType.InsertString(-1, utf8ToTStr(typeTmp.Name));
}
}
}
@ -111,11 +111,11 @@ void CTypeManagerDlg::OnEdittype()
if (typeDlg.DoModal() == IDOK)
{
SType typeTmp;
typeTmp.Name = (LPCSTR)typeDlg.EditName;
typeTmp.Name = tStrToUtf8(typeDlg.EditName);
typeTmp.Color = typeDlg.ButtonColorValue;
LocalTypes[cursel] = typeTmp;
ListType.DeleteString (ListType.GetCurSel());
ListType.InsertString (cursel, typeTmp.Name.c_str());
ListType.InsertString (cursel, utf8ToTStr(typeTmp.Name));
}
}
@ -138,7 +138,7 @@ BOOL CTypeManagerDlg::OnInitDialog()
// TODO: Add extra initialization here
for (uint32 i = 0; i < LocalTypes.size(); ++i)
{
ListType.InsertString(-1, LocalTypes[i].Name.c_str());
ListType.InsertString(-1, utf8ToTStr(LocalTypes[i].Name));
}
return TRUE; // return TRUE unless you set the focus to a control

View file

@ -60,7 +60,7 @@ void CTypeSelDlg::OnOK()
CString sTmp;
TypeList.GetText(TypeList.GetCurSel(), sTmp);
_TypeSelected = (LPCSTR)sTmp;
_TypeSelected = tStrToUtf8(sTmp);
CDialog::OnOK();
}
@ -72,7 +72,7 @@ BOOL CTypeSelDlg::OnInitDialog()
// TODO: Add extra initialization here
for (uint32 i = 0; i < _TypesInit->size(); ++i)
{
TypeList.InsertString(-1, _TypesInit->operator[](i).Name.c_str());
TypeList.InsertString(-1, utf8ToTStr(_TypesInit->operator[](i).Name));
}
return TRUE; // return TRUE unless you set the focus to a control

View file

@ -128,7 +128,7 @@ BOOL CWorldEditorApp::InitInstance()
splashScreen.addLine(string("Exe path"));
// Exe path
ExePath = GetCommandLine ();
ExePath = tStrToUtf8(GetCommandLine ());
if (ExePath.size()>0)
{
if (ExePath[0] == '\"')
@ -170,7 +170,7 @@ BOOL CWorldEditorApp::InitInstance()
}
catch (const Exception& e)
{
::MessageBox (NULL, e.what(), "Warning", MB_OK|MB_ICONEXCLAMATION);
::MessageBox (NULL, utf8ToTStr(e.what()), _T("Warning"), MB_OK|MB_ICONEXCLAMATION);
// Can't found the module put some default values
Config.CellSize = 160.0f;
@ -218,7 +218,7 @@ BOOL CWorldEditorApp::InitInstance()
// Enable DDE Execute open
EnableShellOpen();
RegDeleteKey (HKEY_CLASSES_ROOT, "Worldeditor.Document\\DefaultIcon");
RegDeleteKey (HKEY_CLASSES_ROOT, _T("Worldeditor.Document\\DefaultIcon"));
RegisterShellFileTypes(TRUE);
// Parse command line for standard shell commands, DDE, file open
@ -286,13 +286,13 @@ BOOL CWorldEditorApp::InitInstance()
CMenu* menu = new CMenu();
menu->CreatePopupMenu();
dynamic_menu->InsertMenu(6, MF_BYPOSITION | MF_POPUP, (UINT)menu->GetSafeHmenu(), "Plugins");
dynamic_menu->InsertMenu(6, MF_BYPOSITION | MF_POPUP, (UINT_PTR)menu->GetSafeHmenu(), _T("Plugins"));
for(uint k=0;k<Plugins.size();k++)
{
IPluginCallback* test=Plugins[k];
string retest=test->getName();
menu->InsertMenu( k, MF_BYPOSITION | MF_POPUP, ID_WINDOWS_PLUGINS+1 + k, retest.c_str() );
menu->InsertMenu( k, MF_BYPOSITION | MF_POPUP, ID_WINDOWS_PLUGINS+1 + k, utf8ToTStr(retest) );
menu->CheckMenuItem(ID_WINDOWS_PLUGINS+1 +k, MF_CHECKED);
}
@ -444,7 +444,7 @@ bool CWorldEditorApp::yesNoMessage (const char *format, ... )
strcpy(buffer, "Unknown error");
}
return MessageBox (m_pMainWnd?m_pMainWnd->m_hWnd:NULL, buffer, "NeL World Editor", MB_YESNO|MB_ICONQUESTION) == IDYES;
return MessageBox (m_pMainWnd?m_pMainWnd->m_hWnd:NULL, utf8ToTStr(buffer), _T("NeL World Editor"), MB_YESNO|MB_ICONQUESTION) == IDYES;
}
void CWorldEditorApp::errorMessage (const char *format, ... )
@ -463,7 +463,7 @@ void CWorldEditorApp::errorMessage (const char *format, ... )
strcpy(buffer, "Unknown error");
}
MessageBox (m_pMainWnd?m_pMainWnd->m_hWnd:NULL, buffer, "NeL World Editor", MB_OK|MB_ICONEXCLAMATION);
MessageBox (m_pMainWnd?m_pMainWnd->m_hWnd:NULL, utf8ToTStr(buffer), _T("NeL World Editor"), MB_OK|MB_ICONEXCLAMATION);
}
void CWorldEditorApp::infoMessage (const char *format, ... )
@ -482,10 +482,10 @@ void CWorldEditorApp::infoMessage (const char *format, ... )
strcpy(buffer, "Unknown error");
}
MessageBox (m_pMainWnd?m_pMainWnd->m_hWnd:NULL, buffer, "NeL World Editor", MB_OK|MB_ICONINFORMATION);
MessageBox (m_pMainWnd?m_pMainWnd->m_hWnd:NULL, utf8ToTStr(buffer), _T("NeL World Editor"), MB_OK|MB_ICONINFORMATION);
}
void CWorldEditorApp::syntaxError (const char *filename, xmlNodePtr xmlNode, const char *format, ...)
void CWorldEditorApp::syntaxError (const std::string &filename, xmlNodePtr xmlNode, const char *format, ...)
{
char buffer[1024];
@ -501,10 +501,10 @@ void CWorldEditorApp::syntaxError (const char *filename, xmlNodePtr xmlNode, con
strcpy(buffer, "Unknown error");
}
errorMessage ("(%s), node (%s), line (%d) :\n%s", filename, xmlNode->name, (int)xmlNode->content, buffer);
errorMessage ("(%s), node (%s), line (%d) :\n%s", filename.c_str(), xmlNode->name, (int)xmlNode->line, buffer);
}
bool CWorldEditorApp::getPropertyString (std::string &result, const char *filename, xmlNodePtr xmlNode, const char *propName)
bool CWorldEditorApp::getPropertyString (std::string &result, const std::string &filename, xmlNodePtr xmlNode, const std::string &propName)
{
// Call the CIXml version
if (!CIXml::getPropertyString (result, xmlNode, propName))
@ -516,7 +516,7 @@ bool CWorldEditorApp::getPropertyString (std::string &result, const char *filena
return true;
}
bool CWorldEditorApp::initPath (const char *filename, CSplashScreen &splashScreen)
bool CWorldEditorApp::initPath (const std::string &filename, CSplashScreen &splashScreen)
{
// The context strings
set<string> contextStrings;
@ -630,16 +630,16 @@ class CMainFrame *getMainFrame ()
// ***************************************************************************
std::string standardizePath (const char *str)
std::string standardizePath (const std::string &str)
{
return NLMISC::strlwr (NLMISC::CPath::standardizePath (str, true));
return NLMISC::toLower(NLMISC::CPath::standardizePath (str, true));
}
// ***************************************************************************
std::string formatString (const char *str)
std::string formatString (const std::string &str)
{
string copy = NLMISC::strlwr (str);
string copy = NLMISC::toLower(str);
return copy;
}
@ -679,9 +679,9 @@ void invalidateLeftView ()
// ***************************************************************************
std::string numberize (const char *oldString, uint value)
std::string numberize (const std::string &oldString, uint value)
{
int i=strlen (oldString)-1;
int i = oldString.length()-1;
while ((i>=0) && (((oldString[i]<='9') && (oldString[i]>='0')) || (oldString[i]==' ')))
{
// again
@ -723,52 +723,6 @@ bool getZoneNameFromXY (sint32 x, sint32 y, std::string &zoneName)
return true;
}
// ***************************************************************************
bool openFile (const char *filename)
{
char key[MAX_PATH + MAX_PATH];
// Extension
string extension = NLMISC::CFile::getExtension (filename);
// First try ShellExecute()
HINSTANCE result = ShellExecute(NULL, "open", filename, NULL,NULL, SW_SHOW);
// If it failed, get the .htm regkey and lookup the program
if ((UINT)result <= HINSTANCE_ERROR)
{
if (getRegKey(HKEY_CLASSES_ROOT, ("."+extension).c_str (), key) == ERROR_SUCCESS)
{
lstrcat(key, "\\shell\\open\\command");
if (getRegKey(HKEY_CLASSES_ROOT,key,key) == ERROR_SUCCESS)
{
char *pos;
pos = strstr(key, "\"%1\"");
if (pos == NULL)
{ // No quotes found
pos = strstr(key, "%1"); // Check for %1, without quotes
if (pos == NULL) // No parameter at all...
pos = key+lstrlen(key)-1;
else
*pos = '\0'; // Remove the parameter
}
else
*pos = '\0'; // Remove the parameter
lstrcat(pos, " ");
lstrcat(pos, filename);
result = (HINSTANCE) WinExec(key, SW_SHOW);
return ((UINT)result) >= 31;
}
}
}
else
return true;
return false;
}
// ***************************************************************************
@ -780,7 +734,7 @@ uint getRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata)
if (retval == ERROR_SUCCESS)
{
long datasize = MAX_PATH;
char data[MAX_PATH];
TCHAR data[MAX_PATH];
RegQueryValue(hkey, NULL, data, &datasize);
lstrcpy(retdata,data);
RegCloseKey(hkey);
@ -832,21 +786,9 @@ void CMyLigoConfig::errorMessage (const char *format, ... )
// ***************************************************************************
void setEditTextMultiLine (CEdit &edit, const char *text)
void setEditTextMultiLine (CEdit &edit, const std::string &text)
{
string temp;
uint size = strlen (text);
temp.reserve (2*size);
bool previousR=false;
for (uint c=0; c<size; c++)
{
if ((text[c] == '\n') && (!previousR))
temp += "\r\n";
else
temp += text[c];
previousR = (text[c] == '\r');
}
setWindowTextUTF8 (edit, temp.c_str ());
setWindowTextUTF8(edit, NLMISC::addSlashR(text));
}
// ***************************************************************************
@ -864,45 +806,6 @@ void setEditTextMultiLine (CEdit &edit, const std::vector<std::string> &vect)
setEditTextMultiLine (edit, temp.c_str());
}
/*
void setEditTextMultiLine (ColorEditWnd &edit, const char *text)
{
string temp;
uint size = strlen (text);
temp.reserve (2*size);
bool previousR=false;
for (uint c=0; c<size; c++)
{
if ((text[c] == '\n') && (!previousR))
temp += "\r\n";
else
temp += text[c];
previousR = (text[c] == '\r');
}
edit.LoadText(CString(temp.c_str()));
}
void setEditTextMultiLine (ColorEditWnd &edit, const std::vector<std::string> &vect)
{
string temp;
uint i;
for (i=0; i<vect.size (); i++)
{
temp += vect[i];
if (i != (vect.size ()-1))
temp += "\n";
}
edit.LoadText(CString(temp.c_str()));
}
*/
// ***************************************************************************
/*void setEditTextMultiLine (CListBox &listBox, const char *text)
{
listBox.ResetContent();
nlverify (listBox.InsertString( -1, text) != LB_ERR);
}*/
// ***************************************************************************
void setEditTextMultiLine (CListBox &listBox, const std::vector<std::string> &vect)
@ -910,12 +813,12 @@ void setEditTextMultiLine (CListBox &listBox, const std::vector<std::string> &ve
listBox.ResetContent();
uint i;
for (i=0; i<vect.size (); i++)
nlverify (listBox.InsertString( -1, vect[i].c_str()) != LB_ERR);
nlverify (listBox.InsertString( -1, utf8ToTStr(vect[i])) != LB_ERR);
}
// ***************************************************************************
bool setWindowTextUTF8 (HWND hwnd, const char *textUtf8)
bool setWindowTextUTF8 (HWND hwnd, const std::string &textUtf8)
{
ucstring str;
@ -925,7 +828,7 @@ bool setWindowTextUTF8 (HWND hwnd, const char *textUtf8)
// ***************************************************************************
bool getWindowTextUTF8 (HWND hwnd, CString &textUtf8)
bool getWindowTextUTF8 (HWND hwnd, std::string &textUtf8)
{
ucstring text;
text.resize (GetWindowTextLengthW (hwnd));
@ -940,7 +843,7 @@ bool getWindowTextUTF8 (HWND hwnd, CString &textUtf8)
// ***************************************************************************
HTREEITEM insertItemUTF8 (HWND hwnd, const char *textUtf8, HTREEITEM hParent, HTREEITEM hInsertAfter)
HTREEITEM insertItemUTF8 (HWND hwnd, const std::string &textUtf8, HTREEITEM hParent, HTREEITEM hInsertAfter)
{
ucstring str;
str.fromUtf8 (textUtf8);
@ -954,7 +857,7 @@ HTREEITEM insertItemUTF8 (HWND hwnd, const char *textUtf8, HTREEITEM hParent, HT
// ***************************************************************************
HTREEITEM insertItemUTF8 (HWND hwnd, const char *textUtf8, int nImage, int nSelectedImage, HTREEITEM hParent, HTREEITEM hInsertAfter)
HTREEITEM insertItemUTF8 (HWND hwnd, const std::string &textUtf8, int nImage, int nSelectedImage, HTREEITEM hParent, HTREEITEM hInsertAfter)
{
ucstring str;
str.fromUtf8 (textUtf8);
@ -970,10 +873,10 @@ HTREEITEM insertItemUTF8 (HWND hwnd, const char *textUtf8, int nImage, int nSele
// ***************************************************************************
bool setItemTextUTF8 ( HWND hwnd, HTREEITEM hItem, LPCTSTR lpszItem )
bool setItemTextUTF8 ( HWND hwnd, HTREEITEM hItem, const std::string &sitem )
{
ucstring str;
str.fromUtf8 (lpszItem);
str.fromUtf8 (sitem);
TVITEMW item;
item.mask = TVIF_TEXT;
item.pszText = (WCHAR*)str.c_str();
@ -995,8 +898,8 @@ bool isPrimitiveVisible (const NLLIGO::IPrimitive *primitive)
void CWorldEditorApp::OnFileOpen()
{
static char BASED_CODE szFilter[] = "NeL World Editor Files (*.worldedit)|*.worldedit|All Files (*.*)|*.*||";
CFileDialogEx dialog (BASE_REGISTRY_KEY, "worldedit", TRUE, "worldedit", NULL, 0, szFilter);
static TCHAR BASED_CODE szFilter[] = _T("NeL World Editor Files (*.worldedit)|*.worldedit|All Files (*.*)|*.*||");
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("worldedit"), TRUE, _T("worldedit"), NULL, 0, szFilter);
if (dialog.DoModal() == IDOK)
{
CDocument &doc = *getDocument ();
@ -1024,8 +927,8 @@ void CWorldEditorApp::OnFileSave()
void CWorldEditorApp::OnFileSaveAs()
{
static char BASED_CODE szFilter[] = "NeL World Editor Files (*.worldedit)|*.worldedit|All Files (*.*)|*.*||";
CFileDialogEx dialog (BASE_REGISTRY_KEY, "worldedit", FALSE, "worldedit", NULL, 0, szFilter);
static TCHAR BASED_CODE szFilter[] = _T("NeL World Editor Files (*.worldedit)|*.worldedit|All Files (*.*)|*.*||");
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("worldedit"), FALSE, _T("worldedit"), NULL, 0, szFilter);
if (dialog.DoModal() == IDOK)
{
CWorldEditorDoc &doc = *getDocument ();

View file

@ -59,8 +59,8 @@ public:
bool yesNoMessage (const char *format, ... );
void errorMessage (const char *format, ... );
void infoMessage (const char *format, ... );
void syntaxError (const char *filename, xmlNodePtr, const char *format, ...);
bool getPropertyString (std::string &result, const char *filename, xmlNodePtr xmlNode, const char *propName);
void syntaxError (const std::string &filename, xmlNodePtr, const char *format, ...);
bool getPropertyString (std::string &result, const std::string &filename, xmlNodePtr xmlNode, const std::string &propName);
// The image list
CImageListEx ImageList;
@ -110,7 +110,7 @@ public:
private:
// Read the path config file
bool initPath (const char *filename, class CSplashScreen &splashScreen);
bool initPath (const std::string &filename, class CSplashScreen &splashScreen);
// Overrides
// ClassWizard generated virtual function overrides
@ -135,8 +135,8 @@ public:
extern CWorldEditorApp theApp;
class CMainFrame *getMainFrame ();
void invalidateLeftView ();
std::string standardizePath (const char *str);
std::string formatString (const char *str);
std::string standardizePath (const std::string &str);
std::string formatString (const std::string &str);
inline void transformVector (NLMISC::CVector &toTransform, float angle, const NLMISC::CVector &pivot)
{
float cosa = (float)cos (angle);
@ -147,21 +147,17 @@ inline void transformVector (NLMISC::CVector &toTransform, float angle, const NL
toTransform.x = temp;
toTransform += pivot;
}
std::string numberize (const char *oldString, uint value);
std::string numberize (const std::string &oldString, uint value);
bool getZoneNameFromXY (sint32 x, sint32 y, std::string &zoneName);
bool openFile (const char *url);
uint getRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata);
void setEditTextMultiLine (CEdit &edit, const char *text);
void setEditTextMultiLine (CEdit &edit, const std::string &text);
void setEditTextMultiLine (CEdit &edit, const std::vector<std::string> &vect);
//void setEditTextMultiLine (ColorEditWnd &edit, const char *text);
//void setEditTextMultiLine (ColorEditWnd &edit, const std::vector<std::string> &vect);
//void setEditTextMultiLine (CListBox &listBox, const char *text);
void setEditTextMultiLine (CListBox &listBox, const std::vector<std::string> &vect);
bool setWindowTextUTF8 (HWND hwnd, const char *textUtf8);
bool getWindowTextUTF8 (HWND hwnd, CString &textUtf8);
HTREEITEM insertItemUTF8 (HWND hwnd, const char *textUtf8, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST);
HTREEITEM insertItemUTF8 (HWND hwnd, const char *textUtf8, int nImage, int nSelectedImage, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST);
bool setItemTextUTF8 ( HWND hwnd, HTREEITEM hItem, LPCTSTR lpszItem );
bool setWindowTextUTF8 (HWND hwnd, const std::string &textUtf8);
bool getWindowTextUTF8 (HWND hwnd, std::string &textUtf8);
HTREEITEM insertItemUTF8 (HWND hwnd, const std::string &textUtf8, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST);
HTREEITEM insertItemUTF8 (HWND hwnd, const std::string &textUtf8, int nImage, int nSelectedImage, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST);
bool setItemTextUTF8 ( HWND hwnd, HTREEITEM hItem, const std::string &item );
bool isPrimitiveVisible (const NLLIGO::IPrimitive *primitive);
std::string getTextureFile(const std::string &filename);

View file

@ -172,7 +172,7 @@ BOOL CWorldEditorDoc::OnOpenDocument(LPCTSTR lpszPathName)
// Result
newDocument ();
bool res = loadDocument (lpszPathName) ? TRUE : FALSE;
bool res = loadDocument (tStrToUtf8(lpszPathName)) ? TRUE : FALSE;
// Timer enabled ?
getMainFrame ()->TimerEnabled = true;
@ -182,7 +182,7 @@ BOOL CWorldEditorDoc::OnOpenDocument(LPCTSTR lpszPathName)
// ***************************************************************************
bool CWorldEditorDoc::loadDocument (const char *filename)
bool CWorldEditorDoc::loadDocument (const std::string &filename)
{
bool result = true;
@ -346,7 +346,7 @@ bool CWorldEditorDoc::loadDocument (const char *filename)
// Not modified
_DataHierarchy[i].Modified = false;
getMainFrame()->launchLoadingDialog(toString("loading %s", _DataHierarchy[i].Filename.c_str()).c_str());
getMainFrame()->launchLoadingDialog("loading " + _DataHierarchy[i].Filename);
getMainFrame()->progressLoadingDialog(float(i+0.0001f)/_DataHierarchy.size());
// Landscape ?
if (_DataHierarchy[i].Type == CDatabaseElement::Landscape)
@ -504,7 +504,7 @@ BOOL CWorldEditorDoc::OnSaveDocument(LPCTSTR lpszPathName)
BOOL result = TRUE;
// Get path name
string path = NLMISC::CFile::getPath (lpszPathName);
string path = NLMISC::CFile::getPath (tStrToUtf8(lpszPathName));
// Backup current path
string backupPath = CPath::getCurrentPath ();
@ -522,7 +522,7 @@ BOOL CWorldEditorDoc::OnSaveDocument(LPCTSTR lpszPathName)
{
// Make path relative
string relativeFileName = _DataHierarchy[i].Filename;
CPath::makePathRelative (NLMISC::CFile::getPath (lpszPathName).c_str (), relativeFileName);
CPath::makePathRelative (NLMISC::CFile::getPath (tStrToUtf8(lpszPathName)), relativeFileName);
if (relativeFileName != _DataHierarchy[i].Filename)
{
_DataHierarchy[i].Filename = relativeFileName;
@ -541,10 +541,10 @@ BOOL CWorldEditorDoc::OnSaveDocument(LPCTSTR lpszPathName)
// Got a filename ?
if (_DataHierarchy[i].Filename.empty ())
{
CFileDialogEx dialog (BASE_REGISTRY_KEY, "land", FALSE, "land", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "NeL Ligo Landscape Files (*.land)|*.land|All Files (*.*)|*.*||", getMainFrame ());
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("land"), FALSE, _T("land"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("NeL Ligo Landscape Files (*.land)|*.land|All Files (*.*)|*.*||"), getMainFrame ());
if (dialog.DoModal() == IDOK)
{
_DataHierarchy[i].Filename = dialog.GetPathName();
_DataHierarchy[i].Filename = tStrToUtf8(dialog.GetPathName());
}
else
{
@ -594,10 +594,10 @@ BOOL CWorldEditorDoc::OnSaveDocument(LPCTSTR lpszPathName)
// Got a filename ?
if (_DataHierarchy[i].Filename.empty ())
{
CFileDialogEx dialog (BASE_REGISTRY_KEY, "primitive", FALSE, "primitive", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "NeL Ligo Primitive Files (*.primitive)|*.primitive|All Files (*.*)|*.*||", getMainFrame ());
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("primitive"), FALSE, _T("primitive"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, _T("NeL Ligo Primitive Files (*.primitive)|*.primitive|All Files (*.*)|*.*||"), getMainFrame ());
if (dialog.DoModal() == IDOK)
{
string pathFromDialog = dialog.GetPathName();
string pathFromDialog = tStrToUtf8(dialog.GetPathName());
// Remove uppercase in filename
string::size_type pos = pathFromDialog.rfind ("\\", 0);
@ -665,7 +665,7 @@ BOOL CWorldEditorDoc::OnSaveDocument(LPCTSTR lpszPathName)
{
// Save the document
COFile file;
if (file.open (lpszPathName, false, false, true))
if (file.open (tStrToUtf8(lpszPathName), false, false, true))
{
try
{
@ -708,7 +708,7 @@ BOOL CWorldEditorDoc::OnSaveDocument(LPCTSTR lpszPathName)
if (landscape)
{
node = xmlNewChild ( node, NULL, (const xmlChar*)"PRIMITIVES", NULL);
_DataHierarchy[i].Primitives.write (node, lpszPathName);
_DataHierarchy[i].Primitives.write (node, tStrToUtf8(lpszPathName));
}
}
}
@ -732,7 +732,7 @@ BOOL CWorldEditorDoc::OnSaveDocument(LPCTSTR lpszPathName)
result = FALSE;
}
_LastModifedTime = NLMISC::CFile::getFileModificationDate (lpszPathName);
_LastModifedTime = NLMISC::CFile::getFileModificationDate (tStrToUtf8(lpszPathName));
}
// No modification is for this level of undo
@ -826,11 +826,11 @@ void CWorldEditorDoc::updateModifiedState ()
}
else
{
string title = (const char*)GetTitle ();
string title = tStrToUtf8(GetTitle ());
if ( (title.size ()>=2) && (title[title.size()-1] == '*') && (title[title.size()-2] == ' ') )
{
title.resize (title.size () - 2);
SetTitle (title.c_str());
SetTitle (utf8ToTStr(title));
}
}
}
@ -912,12 +912,12 @@ const string &CWorldEditorDoc::getDataDir () const
void CWorldEditorDoc::getFilePath(uint primIndex,string & relativeFileName)
{
relativeFileName=_DataHierarchy[primIndex].Filename;
CPath::makePathRelative ((NLMISC::CFile::getPath ((LPCTSTR)CWorldEditorDoc::GetPathName())).c_str(), relativeFileName);
CPath::makePathRelative (NLMISC::CFile::getPath (tStrToUtf8(CWorldEditorDoc::GetPathName())), relativeFileName);
}
// ***************************************************************************
void CWorldEditorDoc::setDataDir (const char *dir)
void CWorldEditorDoc::setDataDir (const std::string &dir)
{
_DataDir = dir;
@ -1444,7 +1444,7 @@ void CWorldEditorDoc::initPrimitiveParameters (const CPrimitiveClass &primClass,
// ***************************************************************************
const NLLIGO::IPrimitive *CWorldEditorDoc::createPrimitive (const CDatabaseLocator &locator, const char *className, const char *primName,
const NLLIGO::IPrimitive *CWorldEditorDoc::createPrimitive (const CDatabaseLocator &locator, const std::string &className, const std::string &primName,
const CVector &initPos, float deltaPos,
const std::vector<CPrimitiveClass::CInitParameters> &initParameters)
{
@ -1532,12 +1532,12 @@ const NLLIGO::IPrimitive *CWorldEditorDoc::createPrimitive (const CDatabaseLocat
if (primClass->Type == CPrimitiveClass::Bitmap)
{
// Create a dialog file
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("image"), TRUE, primClass->FileExtension.c_str (), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
(primClass->FileType+" (*."+primClass->FileExtension+")|*."+primClass->FileExtension+"|All Files (*.*)|*.*||").c_str (), getMainFrame ());
CFileDialogEx dialog (BASE_REGISTRY_KEY, _T("image"), TRUE, utf8ToTStr(primClass->FileExtension), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
utf8ToTStr(toString("%s (*.%s)|*.%s|All Files (*.*)|*.*||", primClass->FileType.c_str(), primClass->FileExtension.c_str(), primClass->FileExtension.c_str())), getMainFrame ());
if (dialog.DoModal() == IDOK)
{
// Save filename
static_cast<CPrimBitmap*>(primitive)->init (dialog.GetPathName ());
static_cast<CPrimBitmap*>(primitive)->init (tStrToUtf8(dialog.GetPathName ()));
}
}
@ -1728,25 +1728,25 @@ void CWorldEditorDoc::updateFiles ()
}
// Check date
if (!checkFileDate (GetPathName (), _LastModifedTime))
if (!checkFileDate (tStrToUtf8(GetPathName ()), _LastModifedTime))
{
// Ask for reloading
if (theApp.yesNoMessage ("The file \"%s\" has been modified.\nReload it ?", (const char*)GetPathName ()))
if (theApp.yesNoMessage ("The file \"%s\" has been modified.\nReload it ?", tStrToUtf8(GetPathName ()).c_str()))
{
newDocument ();
loadDocument (GetPathName ());
loadDocument (tStrToUtf8(GetPathName ()));
}
else
{
// Get the new date
_LastModifedTime = NLMISC::CFile::getFileModificationDate ((const char*)GetPathName ());
_LastModifedTime = NLMISC::CFile::getFileModificationDate (tStrToUtf8(GetPathName()));
}
}
}
// ***************************************************************************
bool CWorldEditorDoc::checkFileDate (const char *filename, uint32 date)
bool CWorldEditorDoc::checkFileDate (const std::string &filename, uint32 date)
{
// File exist ?
if (!NLMISC::CFile::fileExists (filename))

View file

@ -158,7 +158,7 @@ public:
void getFilePath(uint primIndex,std::string&);
// Set the data directory
void setDataDir (const char *dir);
void setDataDir (const std::string &dir);
// Get the path of selected primitive
const std::string &getPathOfSelectedPrimitive() const;
@ -263,7 +263,7 @@ private:
void insertPrimitive (const CDatabaseLocator &locator, NLLIGO::IPrimitive *primitive);
// Create a primitive, for actions only
const NLLIGO::IPrimitive *createPrimitive (const CDatabaseLocator &locator, const char *className, const char *primName,
const NLLIGO::IPrimitive *createPrimitive (const CDatabaseLocator &locator, const std::string &className, const std::string &primName,
const NLMISC::CVector &initPos, float deltaPos, const std::vector<NLLIGO::CPrimitiveClass::CInitParameters> &initParameters);
// Init a primitive parameters
@ -279,7 +279,7 @@ public:
// *** File modification
void updateFiles ();
static bool checkFileDate (const char *filename, uint32 date);
static bool checkFileDate(const std::string &filename, uint32 date);
/* // Get ligo data at a specific locator
void getLigoData (CLigoData &data, const CDatabaseLocator &locator);
@ -294,7 +294,7 @@ public:
}
// Get document context
void setContext (const char *context)
void setContext (const std::string &context)
{
_Context = context;
}
@ -441,7 +441,7 @@ public:
private:
bool newDocument ();
bool loadDocument (const char *filename);
bool loadDocument (const std::string &filename);
// Implementation
public: