aboutsummaryrefslogtreecommitdiff
path: root/src/jin/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/jin/main.cpp')
-rw-r--r--src/jin/main.cpp110
1 files changed, 55 insertions, 55 deletions
diff --git a/src/jin/main.cpp b/src/jin/main.cpp
index 6bcfaec..abcefb6 100644
--- a/src/jin/main.cpp
+++ b/src/jin/main.cpp
@@ -2,9 +2,9 @@
#include "libjin/jin.h"
#ifdef _WIN32
- #include <Windows.h>
- #include <shlobj.h>
- #include <wchar.h>
+ #include <Windows.h>
+ #include <shlobj.h>
+ #include <wchar.h>
#endif
#define EXECUTABLE_DIR "./"
@@ -15,76 +15,76 @@ using namespace JinEngine::Filesystem;
static void load(const char* cwd)
{
- jin_log_info("Currrent working directory is %s", cwd);
- // Main thread lua state.
- lua_State* L = luax_newstate();
- luax_openlibs(L);
- JinEngine::Lua::open(L);
- JinEngine::Lua::boot(L, cwd);
- luax_close(L);
+ jin_log_info("Currrent working directory is %s", cwd);
+ // Main thread lua state.
+ lua_State* L = luax_newstate();
+ luax_openlibs(L);
+ JinEngine::Lua::open(L);
+ JinEngine::Lua::boot(L, cwd);
+ luax_close(L);
}
#ifdef _WIN32
// WChar to string.
std::string wstrtostr(const std::wstring &wstr)
{
- std::string strTo;
- char *szTo = new char[wstr.length() + 1];
- szTo[wstr.size()] = '\0';
- WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), -1, szTo, (int)wstr.length(), NULL, NULL);
- strTo = szTo;
- delete[] szTo;
- return strTo;
+ std::string strTo;
+ char *szTo = new char[wstr.length() + 1];
+ szTo[wstr.size()] = '\0';
+ WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), -1, szTo, (int)wstr.length(), NULL, NULL);
+ strTo = szTo;
+ delete[] szTo;
+ return strTo;
}
#endif
bool BrowseFolder(string& cwd)
{
#ifdef _WIN32
- IFileDialog* pfd = NULL;
- DWORD dwFlags;
- IShellItem* pItem = NULL;
- HRESULT hr = CoInitialize(NULL);
- if (FAILED(hr)) return false;
- hr = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_ALL,
- IID_IFileOpenDialog, reinterpret_cast<void**>(&pfd));
- if (FAILED(hr)) return false;
- pfd->SetTitle(DIALOG_TITLE);
- hr = pfd->GetOptions(&dwFlags);
- if (FAILED(hr)) return false;
- hr = pfd->SetOptions(dwFlags | FOS_PICKFOLDERS);
- if (FAILED(hr)) return false;
- hr = pfd->Show(NULL);
- if (hr == HRESULT_FROM_WIN32(ERROR_CANCELLED))
- return false;
- hr = pfd->GetResult(&pItem);
- if (FAILED(hr)) return false;
- LPWSTR filePath;
- hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &filePath);
- if (FAILED(hr)) return false;
- cwd = wstrtostr(filePath);
- CoTaskMemFree(filePath);
- pfd->Release();
- pItem->Release();
- CoUninitialize();
- return true;
+ IFileDialog* pfd = NULL;
+ DWORD dwFlags;
+ IShellItem* pItem = NULL;
+ HRESULT hr = CoInitialize(NULL);
+ if (FAILED(hr)) return false;
+ hr = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_ALL,
+ IID_IFileOpenDialog, reinterpret_cast<void**>(&pfd));
+ if (FAILED(hr)) return false;
+ pfd->SetTitle(DIALOG_TITLE);
+ hr = pfd->GetOptions(&dwFlags);
+ if (FAILED(hr)) return false;
+ hr = pfd->SetOptions(dwFlags | FOS_PICKFOLDERS);
+ if (FAILED(hr)) return false;
+ hr = pfd->Show(NULL);
+ if (hr == HRESULT_FROM_WIN32(ERROR_CANCELLED))
+ return false;
+ hr = pfd->GetResult(&pItem);
+ if (FAILED(hr)) return false;
+ LPWSTR filePath;
+ hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &filePath);
+ if (FAILED(hr)) return false;
+ cwd = wstrtostr(filePath);
+ CoTaskMemFree(filePath);
+ pfd->Release();
+ pItem->Release();
+ CoUninitialize();
+ return true;
#endif
}
int main(int argc, char* args[])
{
- string cwd = EXECUTABLE_DIR;
+ string cwd = EXECUTABLE_DIR;
#ifdef _WIN32
- if (argc > 1)
- cwd = args[1];
+ if (argc > 1)
+ cwd = args[1];
#endif
- else
- {
- if (!BrowseFolder(cwd))
- return 0;
- }
- if (!cwd.empty())
- load(cwd.c_str());
+ else
+ {
+ if (!BrowseFolder(cwd))
+ return 0;
+ }
+ if (!cwd.empty())
+ load(cwd.c_str());
- return 0;
+ return 0;
} \ No newline at end of file