Fixed: Compilation of Tiles Editor MFC version

--HG--
branch : develop
This commit is contained in:
kervala 2018-01-03 18:05:54 +01:00
parent 2502e10592
commit c41b20c9e9
8 changed files with 130 additions and 94 deletions

View file

@ -64,8 +64,8 @@ void GetVal::OnOK()
CString rString;
EditStr->GetWindowText( rString );
int size = rString.GetLength();
name = new char[size+1];
strcpy (name, rString);
name = new TCHAR[size+1];
_tcscpy(name, rString);
/**((short*)name)=size;
EditStr->GetLine(0,name,size);
for (int i=0;i<size;i++)

View file

@ -31,7 +31,7 @@ class GetVal : public CDialog
{
// Construction
public:
char *name;
TCHAR *name;
int NameOk;
GetVal(CWnd* pParent = NULL); // standard constructor

View file

@ -98,12 +98,12 @@ void SelectionTerritoire::OnAddTerritoire()
CListBox *list=(CListBox*)GetDlgItem(IDC_LIST_TERRITOIRE);
if (list->FindStringExact(0,GetStr.name)!=LB_ERR)
{
MessageBox(_T("Ce nom existe deja","Error"), MB_ICONERROR);
MessageBox(_T("Ce nom existe deja"), _T("Error"), MB_ICONERROR);
}
else
{
list->InsertString(-1, GetStr.name);
tileBank.addLand (GetStr.name);
tileBank.addLand (tStrToUtf8(GetStr.name));
}
}
}
@ -119,14 +119,14 @@ private:
virtual void OnInit ()
{
UpdateData ();
char sTitle[512];
sprintf (sTitle, "Tile sets use by %s", tileBank.getLand(_land)->getName().c_str());
TCHAR sTitle[512];
_stprintf(sTitle, _T("Tile sets use by %s"), utf8ToTStr(tileBank.getLand(_land)->getName()));
SetWindowText (sTitle);
for (int i=0; i<tileBank.getTileSetCount(); i++)
{
m_ctrlCombo.InsertString (-1, tileBank.getTileSet(i)->getName().c_str());
m_ctrlCombo.InsertString (-1, utf8ToTStr(tileBank.getTileSet(i)->getName()));
if (tileBank.getLand(_land)->isTileSet (tileBank.getTileSet(i)->getName()))
m_ctrlList.InsertString (-1, tileBank.getTileSet(i)->getName().c_str());
m_ctrlList.InsertString (-1, utf8ToTStr(tileBank.getTileSet(i)->getName()));
}
UpdateData (FALSE);
}
@ -143,7 +143,7 @@ private:
{
CString rString;
m_ctrlList.GetText(i, rString);
tileBank.getLand(_land)->addTileSet ((const char*)rString);
tileBank.getLand(_land)->addTileSet (tStrToUtf8(rString));
}
UpdateData (FALSE);
}
@ -202,7 +202,7 @@ void SelectionTerritoire::OnAddTileSet()
else
{
list->InsertString(-1, GetStr.name);
tileBank.addTileSet (GetStr.name);
tileBank.addTileSet (tStrToUtf8(GetStr.name));
}
}
}
@ -218,16 +218,18 @@ private:
virtual void OnInit ()
{
UpdateData ();
char sTitle[512];
sprintf (sTitle, "Children of the tile set %s", tileBank.getTileSet(_tileSet)->getName().c_str());
TCHAR sTitle[512];
_stprintf(sTitle, _T("Children of the tile set %s"), utf8ToTStr(tileBank.getTileSet(_tileSet)->getName()));
SetWindowText (sTitle);
for (int i=0; i<tileBank.getTileSetCount(); i++)
{
if (i!=_tileSet)
m_ctrlCombo.InsertString (-1, tileBank.getTileSet(i)->getName().c_str());
m_ctrlCombo.InsertString (-1, utf8ToTStr(tileBank.getTileSet(i)->getName()));
if (tileBank.getTileSet(_tileSet)->isChild (tileBank.getTileSet(i)->getName()))
m_ctrlList.InsertString (-1, tileBank.getTileSet(i)->getName().c_str());
m_ctrlList.InsertString (-1, utf8ToTStr(tileBank.getTileSet(i)->getName()));
}
UpdateData (FALSE);
}
virtual void OnOk ()
@ -243,7 +245,7 @@ private:
{
CString rString;
m_ctrlList.GetText(i, rString);
tileBank.getTileSet(_tileSet)->addChild ((const char*)rString);
tileBank.getTileSet(_tileSet)->addChild (tStrToUtf8(rString));
}
UpdateData (FALSE);
}
@ -433,12 +435,12 @@ void SelectionTerritoire::OnSave()
Save (str, tileBank);
}
void SelectionTerritoire::Save(const char* path, CTileBank &toSave)
void SelectionTerritoire::Save(const TCHAR* path, CTileBank &toSave)
{
// TODO: Add extra validation here
{
COFile stream;
if (stream.open ((const char*)path))
if (stream.open (tStrToUtf8(path)))
{
toSave.serial (stream);
}
@ -452,7 +454,7 @@ void SelectionTerritoire::OnSaveAs()
CFileDialog sFile(false, _T("bank"), DefautPath+MainFileName, 0, szFilter, this);
if (sFile.DoModal()==IDOK)
{
Save (tStrToUtf8(sFile.GetPathName()).c_str(), tileBank);
Save (sFile.GetPathName(), tileBank);
MainFileOk = 1;
CButton *button = (CButton*)GetDlgItem(IDC_ADD_TERRITOIRE);
button->EnableWindow(true);
@ -480,27 +482,26 @@ void SelectionTerritoire::OnCancel()
}
}
bool CheckPath (const std::string& path, const char* absolutePathToRemplace)
bool CheckPath (const std::string& path, const std::string &absolutePathToRemplace)
{
// Look for absolute path in path
if (strnicmp (path.c_str(), absolutePathToRemplace, strlen (absolutePathToRemplace))==0)
if (strnicmp(path.c_str(), absolutePathToRemplace.c_str(), absolutePathToRemplace.length()) == 0)
return true;
else
return false;
return false;
}
bool RemovePath (std::string& path, const char* absolutePathToRemplace)
bool RemovePath (std::string& path, const std::string &absolutePathToRemplace)
{
// Look for absolute path in path
if (strnicmp (path.c_str(), absolutePathToRemplace, strlen (absolutePathToRemplace))==0)
if (strnicmp(path.c_str(), absolutePathToRemplace.c_str(), absolutePathToRemplace.length())==0)
{
// New path
std::string toto=path;
path=toto.c_str()+strlen (absolutePathToRemplace);
path = path.substr(absolutePathToRemplace.length());
return true;
}
else
return false;
return false;
}
void SelectionTerritoire::OnPath()
@ -508,12 +509,12 @@ void SelectionTerritoire::OnPath()
// TODO: Add your control notification handler code here
// Select a directory.
char path[MAX_PATH];
TCHAR path[MAX_PATH];
// Build the struct
BROWSEINFO info;
memset (&info, 0, sizeof (BROWSEINFO));
info.lpszTitle="Select the absolute base path of the bank";
info.lpszTitle = _T("Select the absolute base path of the bank");
info.ulFlags=BIF_RETURNONLYFSDIRS;
// Select the path
@ -525,16 +526,17 @@ void SelectionTerritoire::OnPath()
nlassert (bRet);
// Add a final back slash
if (strcmp (path, "")!=0)
if (_tcscmp(path, _T("")) != 0)
{
// Add a '\' at the end
if (path[strlen (path)-1]!='\\')
strcat (path, "\\");
if (path[_tcslen(path)-1] != _T('\\'))
_tcscat(path, _T("\\"));
}
// Last check
char msg[512];
sprintf (msg, "Do you really want to set %s as base path of the bank ?", path);
TCHAR msg[512];
_stprintf(msg, _T("Do you really want to set %s as base path of the bank ?"), path);
if (MessageBox (msg, _T("TileEdit"), MB_YESNO|MB_ICONQUESTION)==IDYES)
{
// Set as default path..
@ -574,13 +576,13 @@ void SelectionTerritoire::OnPath()
if (!bitmapPath.empty())
{
// Check the path
if (CheckPath (bitmapPath, path)==false)
if (CheckPath (bitmapPath, tStrToUtf8(path))==false)
{
// Bad path
goodPath=false;
// Make a message
sprintf (msg, "Path '%s' can't be found in bitmap '%s'. Continue ?", path, bitmapPath.c_str());
_stprintf(msg, _T("Path '%s' can't be found in bitmap '%s'. Continue ?"), path, utf8ToTStr(bitmapPath));
// Message
if (MessageBox (msg, _T("TileEdit"), MB_YESNO|MB_ICONQUESTION)==IDNO)
@ -603,13 +605,13 @@ void SelectionTerritoire::OnPath()
if (strcmp (bitmapPath, "")!=0)
{
// Check the path
if (CheckPath (bitmapPath, path)==false)
if (CheckPath (bitmapPath, tStrToUtf8(path))==false)
{
// Bad path
goodPath=false;
// Make a message
sprintf (msg, "Path '%s' can't be found in bitmap '%s'. Continue ?", path, bitmapPath);
_stprintf(msg, _T("Path '%s' can't be found in bitmap '%s'. Continue ?"), path, utf8ToTStr(bitmapPath));
// Message
if (MessageBox (msg, _T("TileEdit"), MB_YESNO|MB_ICONQUESTION)==IDNO)
@ -645,7 +647,7 @@ void SelectionTerritoire::OnPath()
if (!bitmapPath.empty())
{
// Remove the absolute path
bool res=RemovePath (bitmapPath, path);
bool res=RemovePath (bitmapPath, tStrToUtf8(path));
nlassert (res);
// Set the bitmap
@ -665,7 +667,7 @@ void SelectionTerritoire::OnPath()
if (!bitmapPath.empty())
{
// Remove the absolute path
bool res=RemovePath (bitmapPath, path);
bool res=RemovePath (bitmapPath, tStrToUtf8(path));
nlassert (res);
// Set the bitmap
@ -683,7 +685,7 @@ void SelectionTerritoire::OnPath()
if (goodPath)
{
// Change the abs path of the bank
tileBank.setAbsPath (path);
tileBank.setAbsPath (tStrToUtf8(path));
// Change the bouton text
GetDlgItem (IDC_PATH)->SetWindowText (path);
@ -698,9 +700,10 @@ void SelectionTerritoire::OnPath()
void SelectionTerritoire::OnExport()
{
// TODO: Add your control notification handler code here
static TCHAR BASED_CODE szFilter[] =
_T("NeL tile bank files (*.smallbank)|*.smallbank|All Files (*.*)|*.*||");
CFileDialog sFile(false, _T("*.smallbank"), DefautPath+ _T("*.smallbank"), 0, szFilter, this);
static TCHAR BASED_CODE szFilter[] = _T("NeL tile bank files (*.smallbank)|*.smallbank|All Files (*.*)|*.*||");
CFileDialog sFile(false, _T("*.smallbank"), DefautPath+ _T("*.smallbank"), 0, szFilter, this);
if (sFile.DoModal()==IDOK)
{
// Copy the bank

View file

@ -86,7 +86,7 @@ protected:
afx_msg void OnSelchangeTileSet();
virtual BOOL OnInitDialog();
//}}AFX_MSG
void Save(const char* path, NL3D::CTileBank &toSave);
void Save(const TCHAR* path, NL3D::CTileBank &toSave);
DECLARE_MESSAGE_MAP()
};

View file

@ -227,7 +227,7 @@ int TileList::addTile256 ()
return index;
}
bool RemovePath (std::string& path, const char* absolutePathToRemplace);
bool RemovePath (std::string& path, const std::string &absolutePathToRemplace);
int TileList::setTile128 (int tile, const std::string& name, NL3D::CTile::TBitmap type)
{
@ -240,7 +240,9 @@ int TileList::setTile128 (int tile, const std::string& name, NL3D::CTile::TBitma
uint Height;
if (!loadPic(tileBank2.getAbsPath ()+troncated, tampon, Width, Height))
{
return (int)(MessageBox (NULL, ((tileBank2.getAbsPath ()+troncated)+"\nContinue ?").c_str(), _T("Can't load bitmap."), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
std::string msg = tileBank2.getAbsPath() + troncated + "\nContinue ?";
return (int)(MessageBox (NULL, utf8ToTStr(msg), _T("Can't load bitmap."), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
}
else
{
@ -256,10 +258,10 @@ int TileList::setTile128 (int tile, const std::string& name, NL3D::CTile::TBitma
error=tileBank2.getTileSet(_tileSet)->checkTile128 (type, border, pixel, composante);
if ((error!=CTileSet::ok)&&(error!=CTileSet::addFirstA128128)&&!zouille ())
{
char sTmp[512];
static const char* comp[]={"Red", "Green", "Blue", "Alpha", ""};
sprintf (sTmp, "%s\nPixel: %d (%s)", CTileSet::getErrorMessage (error), pixel, comp[composante]);
return (int)(MessageBox (NULL, (std::string(sTmp)+"\nContinue ?").c_str(), _T("Can't add tile"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
std::string msg = NLMISC::toString("%s\nPixel: %d (%s)\nContinue ?", CTileSet::getErrorMessage (error), pixel, comp[composante]);
return (int)(MessageBox (NULL, utf8ToTStr(msg), _T("Can't add tile"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
}
else
{
@ -286,9 +288,8 @@ int TileList::setTile128 (int tile, const std::string& name, NL3D::CTile::TBitma
else
{
// Error: bitmap not in the absolute path..
char msg[512];
sprintf (msg, "The bitmap %s is not in the absolute path %s.", name.c_str(), tileBank2.getAbsPath ().c_str());
return (int)(MessageBox (NULL, (std::string (msg)+"\nContinue ?").c_str(), _T("Load error"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
std::string msg = NLMISC::toString("The bitmap %s is not in the absolute path %s.\nContinue ?", name.c_str(), tileBank2.getAbsPath ().c_str());
return (int)(MessageBox (NULL, utf8ToTStr(msg), _T("Load error"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
}
return 1;
@ -305,7 +306,8 @@ int TileList::setTile256 (int tile, const std::string& name, NL3D::CTile::TBitma
uint Height;
if (!loadPic(tileBank2.getAbsPath ()+troncated, tampon, Width, Height))
{
return (int)(MessageBox (NULL, ((tileBank2.getAbsPath ()+troncated)+"\nContinue ?").c_str(), _T("Can't load bitmap."), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
std::string msg = tileBank2.getAbsPath() + troncated + "\nContinue ?";
return (int)(MessageBox (NULL, utf8ToTStr(msg), _T("Can't load bitmap."), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
}
else
{
@ -322,10 +324,9 @@ int TileList::setTile256 (int tile, const std::string& name, NL3D::CTile::TBitma
error=tileBank2.getTileSet(_tileSet)->checkTile256 (type, border, pixel, composante);
if ((error!=CTileSet::ok)&&!zouille())
{
char sTmp[512];
static const char* comp[]={"Red", "Green", "Blue", "Alpha", ""};
sprintf (sTmp, "%s\nPixel: %d (%s)", CTileSet::getErrorMessage (error), pixel, comp[composante]);
return (int)(MessageBox (NULL, (std::string(sTmp)+"\nContinue ?").c_str(), _T("Can't add tile"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
static const char* comp[] = { "Red", "Green", "Blue", "Alpha", "" };
std::string msg = NLMISC::toString("%s\nPixel: %d (%s)\nContinue ?", CTileSet::getErrorMessage (error), pixel, comp[composante]);
return (int)(MessageBox (NULL, utf8ToTStr(msg), _T("Can't add tile"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
}
else
{
@ -349,9 +350,8 @@ int TileList::setTile256 (int tile, const std::string& name, NL3D::CTile::TBitma
else
{
// Error: bitmap not in the absolute path..
char msg[512];
sprintf (msg, "The bitmap %s is not in the absolute path %s.", name.c_str(), tileBank2.getAbsPath ().c_str());
return (int)(MessageBox (NULL, (std::string (msg)+"\nContinue ?").c_str(), _T("Load error"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
std::string msg = NLMISC::toString("The bitmap %s is not in the absolute path %s.\nContinue ?", name.c_str(), tileBank2.getAbsPath ().c_str());
return (int)(MessageBox (NULL, utf8ToTStr(msg), _T("Load error"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
}
return 1;
@ -371,7 +371,8 @@ int TileList::setTileTransition (int tile, const std::string& name, NL3D::CTile:
uint Height;
if (!loadPic(tileBank2.getAbsPath ()+troncated, tampon, Width, Height))
{
return (int)(MessageBox (NULL, ((tileBank2.getAbsPath ()+troncated)+"\nContinue ?").c_str(), _T("Can't load bitmap."), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
std::string msg = tileBank2.getAbsPath() + troncated + "\nContinue ?";
return (int)(MessageBox (NULL, utf8ToTStr(msg), _T("Can't load bitmap."), MB_YESNO|MB_ICONEXCLAMATION)==IDYES);
}
else
{
@ -387,10 +388,9 @@ int TileList::setTileTransition (int tile, const std::string& name, NL3D::CTile:
error=tileBank2.getTileSet(_tileSet)->checkTile128 (type, border, pixel, composante);
if ((error!=CTileSet::ok)&&(error!=CTileSet::addFirstA128128)&&!zouille ())
{
char sTmp[512];
static const char* comp[]={"Red", "Green", "Blue", "Alpha", ""};
sprintf (sTmp, "%s\nPixel: %d (%s)", CTileSet::getErrorMessage (error), pixel, comp[composante]);
return MessageBox (NULL, (std::string(sTmp)+"\nContinue ?").c_str(), _T("Can't add tile"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES;
std::string msg = NLMISC::toString("%s\nPixel: %d (%s)\nContinue ?", CTileSet::getErrorMessage(error), pixel, comp[composante]);
return MessageBox (NULL, utf8ToTStr(msg), _T("Can't add tile"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES;
}
else
{
@ -437,14 +437,17 @@ int TileList::setDisplacement (int tile, const std::string& name)
theListDisplacement[tile].loaded=0;
if (!_LoadBitmap(tileBank2.getAbsPath() + troncated, &theListDisplacement[tile].BmpInfo, theListDisplacement[tile].Bits, NULL, 0))
MessageBox (NULL, (tileBank2.getAbsPath() + troncated).c_str(), _T("Can't load file"), MB_OK|MB_ICONEXCLAMATION);
{
std::string msg = tileBank2.getAbsPath() + troncated;
MessageBox(NULL, utf8ToTStr(msg), _T("Can't load file"), MB_OK | MB_ICONEXCLAMATION);
}
else
{
// Check the size
if ((theListDisplacement[tile].BmpInfo.bmiHeader.biWidth!=32)||(-theListDisplacement[tile].BmpInfo.bmiHeader.biHeight!=32))
{
// Error message
MessageBox (NULL, _T("Invalid size: displacement map must be 32x32 8 bits."), troncated.c_str(),
MessageBox (NULL, _T("Invalid size: displacement map must be 32x32 8 bits."), utf8ToTStr(troncated),
MB_OK|MB_ICONEXCLAMATION);
// Free the bitmap
@ -464,9 +467,8 @@ int TileList::setDisplacement (int tile, const std::string& name)
else
{
// Error: bitmap not in the absolute path..
char msg[512];
sprintf (msg, "The bitmap %s is not in the absolute path %s.", name.c_str(), tileBank2.getAbsPath ().c_str());
MessageBox (NULL, msg, _T("Load error"), MB_OK|MB_ICONEXCLAMATION);
std::string msg = NLMISC::toString("The bitmap %s is not in the absolute path %s.", name.c_str(), tileBank2.getAbsPath ().c_str());
MessageBox (NULL, utf8ToTStr(msg), _T("Load error"), MB_OK|MB_ICONEXCLAMATION);
}
return 1;
@ -483,7 +485,8 @@ int TileList::setTileTransitionAlpha (int tile, const std::string& name, int rot
uint Height;
if (!loadPic(tileBank2.getAbsPath ()+troncated, tampon, Width, Height))
{
return MessageBox (NULL, ((tileBank2.getAbsPath ()+troncated)+"\nContinue ?").c_str(), _T("Can't load bitmap."), MB_YESNO|MB_ICONEXCLAMATION)==IDYES;
std::string msg = tileBank2.getAbsPath() + troncated + "\nContinue ?";
return MessageBox (NULL, utf8ToTStr(msg), _T("Can't load bitmap."), MB_YESNO|MB_ICONEXCLAMATION)==IDYES;
}
else
{
@ -505,23 +508,27 @@ int TileList::setTileTransitionAlpha (int tile, const std::string& name, int rot
if (((error=tileBank2.getTileSet(_tileSet)->checkTileTransition ((CTileSet::TTransition)tile, CTile::alpha, border, indexError,
pixel, composante))!=CTileSet::ok)&&!zouille ())
{
char sMsg[512];
std::string msg;
if ((error==CTileSet::topInterfaceProblem)||(error==CTileSet::bottomInterfaceProblem)||(error==CTileSet::leftInterfaceProblem)
||(error==CTileSet::rightInterfaceProblem)||(error==CTileSet::topBottomNotTheSame)||(error==CTileSet::rightLeftNotTheSame)
||(error==CTileSet::topInterfaceProblem))
{
static const char* comp[]={"Red", "Green", "Blue", "Alpha", ""};
if (indexError!=-1)
sprintf (sMsg, "%s\nIncompatible with tile nb %d\nPixel: %d (%s)", CTileSet::getErrorMessage (error), indexError,
msg = NLMISC::toString("%s\nIncompatible with tile nb %d\nPixel: %d (%s)", CTileSet::getErrorMessage (error), indexError,
pixel, comp[composante]);
else
sprintf (sMsg, "%s\nIncompatible with the 128x128 tile\nPixel: %d (%s)", CTileSet::getErrorMessage (error),
msg = NLMISC::toString("%s\nIncompatible with the 128x128 tile\nPixel: %d (%s)", CTileSet::getErrorMessage (error),
pixel, comp[composante]);
}
else
sprintf (sMsg, "%s\nIncompatible filled tile", CTileSet::getErrorMessage (error));
{
msg = NLMISC::toString("%s\nIncompatible filled tile", CTileSet::getErrorMessage(error));
}
msg += "\nContinue ?";
return MessageBox (NULL, (std::string(sMsg)+"\nContinue ?").c_str(), _T("Can't add tile"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES;
return MessageBox (NULL, utf8ToTStr(msg), _T("Can't add tile"), MB_YESNO|MB_ICONEXCLAMATION)==IDYES;
}
else
{
@ -534,8 +541,8 @@ int TileList::setTileTransitionAlpha (int tile, const std::string& name, int rot
else
{
// Error: bitmap not in the absolute path..
char msg[512];
sprintf (msg, "The bitmap %s is not in the absolute path %s.", name.c_str(), tileBank2.getAbsPath ().c_str());
TCHAR msg[512];
_stprintf(msg, _T("The bitmap %s is not in the absolute path %s."), utf8ToTStr(name), utf8ToTStr(tileBank2.getAbsPath ()));
MessageBox (NULL, msg, _T("Load error"), MB_OK|MB_ICONEXCLAMATION);
}

View file

@ -19,10 +19,36 @@
#include "ViewColumn.h"
#include "Browse.h"
char *WndRegKeys[4][5] = {{"POPUP BOTTOM RX","POPUP BOTTOM RY","POPUP BOTTOM CX","POPUP BOTTOM CY","POPUP BOTTOM N"},
{"POPUP TOP RX","POPUP TOP RY","POPUP TOP CX","POPUP TOP CY","POPUP TOP N"},
{"POPUP LEFT RX","POPUP LEFT RY","POPUP LEFT CX","POPUP LEFT CY","POPUP LEFT N"},
{"POPUP RIGHT RX","POPUP RIGHT RY","POPUP RIGHT CX","POPUP RIGHT CY","POPUP RIGHT N"}};
TCHAR *WndRegKeys[4][5] = {
{
_T("POPUP BOTTOM RX"),
_T("POPUP BOTTOM RY"),
_T("POPUP BOTTOM CX"),
_T("POPUP BOTTOM CY"),
_T("POPUP BOTTOM N")
},
{
_T("POPUP TOP RX"),
_T("POPUP TOP RY"),
_T("POPUP TOP CX"),
_T("POPUP TOP CY"),
_T("POPUP TOP N")
},
{
_T("POPUP LEFT RX"),
_T("POPUP LEFT RY"),
_T("POPUP LEFT CX"),
_T("POPUP LEFT CY"),
_T("POPUP LEFT N")
},
{
_T("POPUP RIGHT RX"),
_T("POPUP RIGHT RY"),
_T("POPUP RIGHT CX"),
_T("POPUP RIGHT CY"),
_T("POPUP RIGHT N")
}
};
/////////////////////////////////////////////////////////////////////////////
// ViewColumn dialog
@ -164,11 +190,11 @@ BOOL ViewColumn::OnInitDialog()
if (RegOpenKey(HKEY_CURRENT_USER,REGKEY_TILEDIT,&regkey)==ERROR_SUCCESS)
{
unsigned long value;
RegQueryValueEx(regkey,WndRegKeys[pos&3][0],0,&value,(unsigned char *)&rx,&value);
RegQueryValueEx(regkey,WndRegKeys[pos&3][1],0,&value,(unsigned char *)&ry,&value);
RegQueryValueEx(regkey,WndRegKeys[pos&3][2],0,&value,(unsigned char *)&cx,&value);
RegQueryValueEx(regkey,WndRegKeys[pos&3][3],0,&value,(unsigned char *)&cy,&value);
RegQueryValueEx(regkey,WndRegKeys[pos&3][4],0,&value,(unsigned char *)&nTileInWnd,&value);
RegQueryValueEx(regkey, WndRegKeys[pos&3][0], 0, &value, (LPBYTE)&rx, &value);
RegQueryValueEx(regkey, WndRegKeys[pos&3][1], 0, &value, (LPBYTE)&ry, &value);
RegQueryValueEx(regkey, WndRegKeys[pos&3][2], 0, &value, (LPBYTE)&cx, &value);
RegQueryValueEx(regkey, WndRegKeys[pos&3][3], 0, &value, (LPBYTE)&cy, &value);
RegQueryValueEx(regkey, WndRegKeys[pos&3][4], 0, &value, (LPBYTE)&nTileInWnd, &value);
RegCloseKey(regkey);
}
EnableScrollBar(SB_VERT);
@ -378,9 +404,9 @@ void ViewColumn::OnRButtonDown(UINT nFlags, CPoint point)
// TODO: Add your message handler code here and/or call default
CMenu popup;
popup.CreatePopupMenu();
popup.AppendMenu(MF_STRING | (nTileInWnd==1?MF_CHECKED:0),10,"*1");
popup.AppendMenu(MF_STRING | (nTileInWnd==4?MF_CHECKED:0),12,"*4");
popup.AppendMenu(MF_STRING,13,"Replace window");
popup.AppendMenu(MF_STRING | (nTileInWnd == 1 ? MF_CHECKED:0), 10, _T("*1"));
popup.AppendMenu(MF_STRING | (nTileInWnd == 4 ? MF_CHECKED:0), 12, _T("*4"));
popup.AppendMenu(MF_STRING, 13, _T("Replace window"));
RECT rect; GetWindowRect(&rect);
popup.TrackPopupMenu(TPM_LEFTALIGN,MousePos.x+rect.left,MousePos.y+rect.top,this,NULL);

View file

@ -23,7 +23,7 @@
// ViewColumn.h : header file
//
extern char *WndRegKeys[4][5];
extern TCHAR *WndRegKeys[4][5];
#include "View.h"

View file

@ -97,7 +97,7 @@ LRESULT Custom::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
CString str;
clist->GetLBText(i+2,str);
buttonList[i].Create((LPCSTR)str,BS_CHECKBOX,button,this,i+10);
buttonList[i].Create(str,BS_CHECKBOX,button,this,i+10);
buttonList[i].SetFont(&font,1);
buttonList[i].ModifyStyle(0,WS_VISIBLE);
/* RECT st = button; st.left+=20; st.right = client.right - 90; st.top -= 3;