void FE::Run(bool vanilla, const vector<string>& files) { NodePool::Init(); vm::VM vm; if (!vanilla) { RunFile("default-isynth.n", &vm); } for (size_t i = 0; i < files.size(); ++i) { RunFile(files[i], &vm); } NodePool::Release(); }
void FJavascriptEditorModule::StartupModule() { #if WITH_EDITOR auto Isolate = NewObject<UJavascriptIsolate>(); auto Context = Isolate->CreateContext(); JavascriptContext = Context; JavascriptContext->AddToRoot(); JavascriptContext->SetContextId(TEXT("Editor")); Tick = NewObject<UJavascriptEditorTick>(JavascriptContext); JavascriptContext->Expose(TEXT("Root"), Tick); Tick->AddToRoot(); if (!IsRunningCommandlet()) { FScopedTransaction Transaction(NSLOCTEXT("UnrealEd", "UnrealJS", "Javascript action")); FEditorScriptExecutionGuard ScriptGuard; Context->RunFile("editor.js"); } bRegistered = true; FCoreDelegates::OnPreExit.AddRaw(this, &FJavascriptEditorModule::Unregister); #endif }
void WaypointExternalFileListHandler::OnActivateItem(unsigned i) { auto file = waypoint.files_external.begin(); std::advance(file, i); RunFile(LocalPath(file->c_str()).c_str()); }
void WaypointExternalFileListHandler::OnActivateItem(unsigned i) { auto file = waypoint.files_external.begin(); std::advance(file, i); TCHAR path[MAX_PATH]; LocalPath(path, file->c_str()); RunFile(path); }
void PythonEngine::init() { Engine::out(Engine::ERROR) << "[PyScript] init:" << std::endl; //Py_SetProgramName(argv[0]); Py_Initialize(); PySys_SetPath( L".:res/scripting:/usr/lib64/python3.3" ); PyObject *module = PyImport_Import(PyUnicode_FromString("SBE")); RunFile("res/scripting/__init__.py"); Engine::out(Engine::ERROR) << "[PyScript] initialized." << std::endl; }
INT_PTR CDialogAbout::CTabVersion::OnNotify(WPARAM wParam, LPARAM lParam) { LPNMHDR nm = (LPNMHDR)lParam; switch (nm->code) { case NM_CLICK: RunFile(((PNMLINK)lParam)->item.szUrl); break; default: return FALSE; } return TRUE; }
bool Lua::StartFile(Path path, Error &error) { lua_State *L = Lua::NewFullState(); if (!RunFile(L, path, error)) { lua_close(L); return false; } if (IsPersistent(L)) AddBackground(L); else lua_close(L); return true; }
void RunCommand(std::wstring command) { std::wstring args; size_t notwhite = command.find_first_not_of(L" \t\r\n"); command.erase(0, notwhite); size_t quotePos = command.find(L'"'); if (quotePos == 0) { size_t quotePos2 = command.find(L'"', quotePos + 1); if (quotePos2 != std::wstring::npos) { args.assign(command, quotePos2 + 1, command.length() - (quotePos2 + 1)); command.assign(command, quotePos + 1, quotePos2 - quotePos - 1); } else { command.erase(0, 1); } } else { size_t spacePos = command.find(L' '); if (spacePos != std::wstring::npos) { args.assign(command, spacePos + 1, command.length() - (spacePos + 1)); command.erase(spacePos); } } if (!command.empty()) { RunFile(command.c_str(), args.c_str()); } }
INT_PTR CDialogManage::CTabSkins::OnCommand(WPARAM wParam, LPARAM lParam) { if (!m_HandleCommands) { // Values are being changed/reset, no need to apply changes return FALSE; } switch (LOWORD(wParam)) { case IDC_MANAGESKINS_ACTIVESKINS_BUTTON: { HMENU menu = CreatePopupMenu(); // Add active skins to menu std::map<std::wstring, CMeterWindow*>::const_iterator iter = Rainmeter->GetAllMeterWindows().begin(); int index = 0; for ( ; iter != Rainmeter->GetAllMeterWindows().end(); ++iter) { std::wstring name = ((*iter).second)->GetFolderPath() + L'\\'; name += ((*iter).second)->GetFileName(); InsertMenu(menu, index, MF_BYPOSITION, ID_CONFIG_FIRST + index, name.c_str()); ++index; } if (index > 0) { RECT r; GetWindowRect((HWND)lParam, &r); // Show context menu TrackPopupMenu( menu, TPM_RIGHTBUTTON | TPM_LEFTALIGN, (*GetString(ID_STR_ISRTL) == L'1') ? r.right : r.left, --r.bottom, 0, m_Window, NULL ); } DestroyMenu(menu); } break; case IDC_MANAGESKINS_CREATEPACKAGE_BUTTON: { std::wstring file = Rainmeter->GetPath() + L"SkinInstaller.exe"; RunFile(file.c_str(), L"/Packager"); } break; case IDC_MANAGESKINS_LOAD_BUTTON: { if (!m_SkinWindow) { // Skin not active, load std::pair<int, int> indexes = Rainmeter->GetMeterWindowIndex(m_SkinFolderPath, m_SkinFileName); if (indexes.first != -1 && indexes.second != -1) { Rainmeter->ActivateSkin(indexes.first, indexes.second); // Fake selection change to update controls NMHDR nm; nm.code = TVN_SELCHANGED; nm.idFrom = IDC_MANAGESKINS_SKINS_TREEVIEW; nm.hwndFrom = GetDlgItem(m_Window, IDC_MANAGESKINS_SKINS_TREEVIEW); OnNotify(0, (LPARAM)&nm); } } else { m_HandleCommands = false; Rainmeter->DeactivateSkin(m_SkinWindow, -1); } } break; case IDC_MANAGESKINS_REFRESH_BUTTON: if (m_SkinWindow) { m_SkinWindow->Refresh(false); } break; case IDC_MANAGESKINS_EDIT_BUTTON: Rainmeter->EditSkinFile(m_SkinFolderPath, m_SkinFileName); break; case IDC_MANAGESKINS_X_TEXT: if (HIWORD(wParam) == EN_CHANGE) { WCHAR buffer[32]; m_IgnoreUpdate = true; int x = (GetWindowText((HWND)lParam, buffer, 32) > 0) ? _wtoi(buffer) : 0; m_SkinWindow->MoveWindow(x, m_SkinWindow->GetY()); if (x > m_SkinWindow->GetX()) { _itow_s(m_SkinWindow->GetX(), buffer, 10); Edit_SetText((HWND)lParam, buffer); } } break; case IDC_MANAGESKINS_Y_TEXT: if (HIWORD(wParam) == EN_CHANGE) { WCHAR buffer[32]; m_IgnoreUpdate = true; int y = (GetWindowText((HWND)lParam, buffer, 32) > 0) ? _wtoi(buffer) : 0; m_SkinWindow->MoveWindow(m_SkinWindow->GetX(), y); if (y > m_SkinWindow->GetY()) { _itow_s(m_SkinWindow->GetY(), buffer, 10); Edit_SetText((HWND)lParam, buffer); } } break; case IDC_MANAGESKINS_LOADORDER_TEXT: if (HIWORD(wParam) == EN_CHANGE) { if (m_IgnoreUpdate) { // To avoid infinite loop after setting value below m_IgnoreUpdate = false; } else { // Convert text to number and set it to get rid of extra chars WCHAR buffer[32]; int len = GetWindowText((HWND)lParam, buffer, 32); if ((len == 0) || (len == 1 && buffer[0] == L'-')) { // Ignore if empty or if - is only char break; } // Get selection DWORD sel = Edit_GetSel((HWND)lParam); // Reset value (to get rid of invalid chars) m_IgnoreUpdate = true; int value = _wtoi(buffer); _itow_s(value, buffer, 10); SetWindowText((HWND)lParam, buffer); // Reset selection Edit_SetSel((HWND)lParam, LOWORD(sel), HIWORD(sel)); WritePrivateProfileString(m_SkinFolderPath.c_str(), L"LoadOrder", buffer, Rainmeter->GetIniFile().c_str()); std::pair<int, int> indexes = Rainmeter->GetMeterWindowIndex(m_SkinWindow); if (indexes.first != -1) { Rainmeter->SetLoadOrder(indexes.first, value); std::multimap<int, CMeterWindow*> windows; Rainmeter->GetMeterWindowsByLoadOrder(windows); CSystem::PrepareHelperWindow(); // Reorder window z-position to reflect load order std::multimap<int, CMeterWindow*>::const_iterator iter = windows.begin(); for ( ; iter != windows.end(); ++iter) { CMeterWindow* mw = (*iter).second; mw->ChangeZPos(mw->GetWindowZPosition(), true); } } } } break; case IDC_MANAGESKINS_DISPLAYMONITOR_BUTTON: { HMENU menu = LoadMenu(Rainmeter->GetResourceInstance(), MAKEINTRESOURCE(IDR_SKIN_MENU)); if (menu) { HMENU subMenu = GetSubMenu(menu, 0); // Skin menu subMenu = GetSubMenu(subMenu, 4); // Settings menu subMenu = GetSubMenu(subMenu, 0); // Position menu subMenu = GetSubMenu(subMenu, 0); // Display monitor menu Rainmeter->CreateMonitorMenu(subMenu, m_SkinWindow); RECT r; GetWindowRect((HWND)lParam, &r); // Show context menu TrackPopupMenu( subMenu, TPM_RIGHTBUTTON | TPM_LEFTALIGN, (*GetString(ID_STR_ISRTL) == L'1') ? r.right : r.left, --r.bottom, 0, m_Window, NULL ); DestroyMenu(menu); } } break; case IDC_MANAGESKINS_DRAGGABLE_CHECKBOX: m_IgnoreUpdate = true; m_SkinWindow->SetWindowDraggable(!m_SkinWindow->GetWindowDraggable()); break; case IDC_MANAGESKINS_CLICKTHROUGH_CHECKBOX: m_IgnoreUpdate = true; m_SkinWindow->SetClickThrough(!m_SkinWindow->GetClickThrough()); break; case IDC_MANAGESKINS_KEEPONSCREEN_CHECKBOX: m_IgnoreUpdate = true; m_SkinWindow->SetKeepOnScreen(!m_SkinWindow->GetKeepOnScreen()); break; case IDC_MANAGESKINS_SAVEPOSITION_CHECKBOX: m_IgnoreUpdate = true; m_SkinWindow->SetSavePosition(!m_SkinWindow->GetSavePosition()); break; case IDC_MANAGESKINS_SNAPTOEDGES_CHECKBOX: m_IgnoreUpdate = true; m_SkinWindow->SetSnapEdges(!m_SkinWindow->GetSnapEdges()); break; case IDC_MANAGESKINS_ZPOSITION_COMBOBOX: if (HIWORD(wParam) == CBN_SELCHANGE) { m_IgnoreUpdate = true; ZPOSITION zpos = (ZPOSITION)(ComboBox_GetCurSel((HWND)lParam) - 2); m_SkinWindow->SetWindowZPosition(zpos); } break; case IDC_MANAGESKINS_TRANSPARENCY_COMBOBOX: if (HIWORD(wParam) == CBN_SELCHANGE) { m_IgnoreUpdate = true; int sel = ComboBox_GetCurSel((HWND)lParam) + IDM_SKIN_TRANSPARENCY_0; SendMessage(m_SkinWindow->GetWindow(), WM_COMMAND, sel, 0); } break; case IDC_MANAGESKINS_ONHOVER_COMBOBOX: if (HIWORD(wParam) == CBN_SELCHANGE) { m_IgnoreUpdate = true; HIDEMODE hide = (HIDEMODE)ComboBox_GetCurSel((HWND)lParam); m_SkinWindow->SetWindowHide(hide); } break; case IDM_MANAGESKINSMENU_EXPAND: { HWND tree = GetDlgItem(m_Window, IDC_MANAGESKINS_SKINS_TREEVIEW); HTREEITEM item = TreeView_GetSelection(tree); TreeView_Expand(tree, item, TVE_TOGGLE); } break; case IDM_MANAGESKINSMENU_OPENFOLDER: { HWND tree = GetDlgItem(m_Window, IDC_MANAGESKINS_SKINS_TREEVIEW); Rainmeter->OpenSkinFolder(GetTreeSelectionPath(tree)); } break; default: if (wParam >= ID_CONFIG_FIRST && wParam <= ID_CONFIG_LAST) { std::map<std::wstring, CMeterWindow*>::const_iterator iter = Rainmeter->GetAllMeterWindows().begin(); int index = (int)wParam - ID_CONFIG_FIRST; int i = 0; for ( ; iter != Rainmeter->GetAllMeterWindows().end(); ++iter) { if (i == index) { std::wstring name = ((*iter).second)->GetFolderPath() + L'\\'; name += ((*iter).second)->GetFileName(); HWND item = GetDlgItem(m_Window, IDC_MANAGESKINS_SKINS_TREEVIEW); SelectTreeItem(item, TreeView_GetRoot(item), name.c_str()); break; } ++i; } } else if (wParam == IDM_SKIN_MONITOR_AUTOSELECT || wParam == IDM_SKIN_MONITOR_PRIMARY || wParam >= ID_MONITOR_FIRST && wParam <= ID_MONITOR_LAST) { if (m_SkinWindow) { SendMessage(m_SkinWindow->GetWindow(), WM_COMMAND, wParam, 0); } break; } return 1; } return 0; }
INT_PTR CDialogManage::CTabThemes::OnCommand(WPARAM wParam, LPARAM lParam) { switch (LOWORD(wParam)) { case IDC_MANAGETHEMES_EMPTYTHEME_CHECKBOX: { BOOL state = !(Button_GetCheck((HWND)lParam) == BST_CHECKED); HWND item = GetDlgItem(m_Window, IDC_MANAGETHEMES_UNUSEDSKINS_CHECKBOX); EnableWindow(item, state); Button_SetCheck(item, BST_UNCHECKED); item = GetDlgItem(m_Window, IDC_MANAGETHEMES_WALLPAPER_CHECKBOX); EnableWindow(item, state); Button_SetCheck(item, BST_UNCHECKED); } break; case IDC_MANAGETHEMES_NAME_TEXT: if (HIWORD(wParam) == EN_CHANGE) { WCHAR buffer[32]; int len = Edit_GetText((HWND)lParam, buffer, 32); // Disable save button if no text or if backup BOOL state = (len > 0 && _wcsicmp(buffer, L"@Backup") != 0); EnableWindow(GetDlgItem(m_Window, IDC_MANAGETHEMES_SAVE_BUTTON), state); } break; case IDC_MANAGETHEMES_LIST: if (HIWORD(wParam) == LBN_SELCHANGE) { // Ignore clicks that don't hit items if (ListBox_GetCurSel((HWND)lParam) != LB_ERR) { HWND item = GetDlgItem(m_Window, IDC_MANAGETHEMES_LOAD_BUTTON); EnableWindow(item, TRUE); item = GetDlgItem(m_Window, IDC_MANAGETHEMES_DELETE_BUTTON); EnableWindow(item, TRUE); item = GetDlgItem(m_Window, IDC_MANAGETHEMES_EDIT_BUTTON); EnableWindow(item, TRUE); const std::vector<std::wstring>& themes = Rainmeter->GetAllThemes(); item = GetDlgItem(m_Window, IDC_MANAGETHEMES_LIST); int sel = ListBox_GetCurSel(item); item = GetDlgItem(m_Window, IDC_MANAGETHEMES_NAME_TEXT); Edit_SetText(item, themes[sel].c_str()); } } break; case IDC_MANAGETHEMES_SAVE_BUTTON: { WCHAR buffer[MAX_PATH]; HWND item = GetDlgItem(m_Window, IDC_MANAGETHEMES_NAME_TEXT); Edit_GetText(item, buffer, MAX_PATH); std::wstring theme = buffer; std::wstring path = Rainmeter->GetThemePath(); CreateDirectory(path.c_str(), 0); path += theme; bool alreadyExists = (_waccess(path.c_str(), 0) != -1); if (alreadyExists) { std::wstring text = GetFormattedString(ID_STR_THEMEALREADYEXISTS, theme.c_str()); if (Rainmeter->ShowMessage(m_Window, text.c_str(), MB_ICONWARNING | MB_YESNO) != IDYES) { // Cancel break; } } else { // Make sure path exists CreateDirectory(path.c_str(), NULL); } path += L"\\Rainmeter.thm"; item = GetDlgItem(m_Window, IDC_MANAGETHEMES_EMPTYTHEME_CHECKBOX); if (Button_GetCheck(item) != BST_CHECKED) { if (!CSystem::CopyFiles(Rainmeter->GetIniFile(), path)) { std::wstring text = GetFormattedString(ID_STR_THEMESAVEFAIL, path.c_str()); Rainmeter->ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONERROR); break; } // Exclude unused skins item = GetDlgItem(m_Window, IDC_MANAGETHEMES_UNUSEDSKINS_CHECKBOX); if (Button_GetCheck(item) == BST_CHECKED) { CConfigParser parser; parser.Initialize(path); // Remove sections with Active=0 std::list<std::wstring>::const_iterator iter = parser.GetSections().begin(); for ( ; iter != parser.GetSections().end(); ++iter) { if (parser.GetValue(*iter, L"Active", L"") == L"0") { WritePrivateProfileString((*iter).c_str(), NULL, NULL, path.c_str()); } } } // Save wallpaper item = GetDlgItem(m_Window, IDC_MANAGETHEMES_WALLPAPER_CHECKBOX); if (Button_GetCheck(item) == BST_CHECKED) { // Get current wallpaper if (SystemParametersInfo(SPI_GETDESKWALLPAPER, MAX_PATH, &buffer, 0)) { std::wstring::size_type pos = path.find_last_of(L'\\'); path.replace(pos + 1, path.length() - pos - 1, L"RainThemes.bmp"); CSystem::CopyFiles((std::wstring)buffer, path); } } } else { // Create empty theme HANDLE file = CreateFile(path.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (file == INVALID_HANDLE_VALUE) { std::wstring text = GetFormattedString(ID_STR_THEMESAVEFAIL, path.c_str()); Rainmeter->ShowMessage(m_Window, text.c_str(), MB_OK | MB_ICONERROR); break; } CloseHandle(file); } if (!alreadyExists) { item = GetDlgItem(m_Window, IDC_MANAGETHEMES_LIST); ListBox_AddString(item, theme.c_str()); Rainmeter->ScanForThemes(); } } break; case IDC_MANAGETHEMES_LOAD_BUTTON: { HWND item = GetDlgItem(m_Window, IDC_MANAGETHEMES_LIST); int sel = ListBox_GetCurSel(item); Rainmeter->LoadTheme(Rainmeter->m_Themes[sel]); } break; case IDC_MANAGETHEMES_EDIT_BUTTON: { HWND item = GetDlgItem(m_Window, IDC_MANAGETHEMES_LIST); int sel = ListBox_GetCurSel(item); const std::vector<std::wstring>& themes = Rainmeter->GetAllThemes(); std::wstring args = Rainmeter->GetThemePath(); args += themes[sel]; args += L"\\Rainmeter.thm"; RunFile(Rainmeter->GetSkinEditor().c_str(), args.c_str()); } break; case IDC_MANAGETHEMES_DELETE_BUTTON: { HWND item = GetDlgItem(m_Window, IDC_MANAGETHEMES_LIST); int sel = ListBox_GetCurSel(item); std::vector<std::wstring>& themes = const_cast<std::vector<std::wstring>&>(Rainmeter->GetAllThemes()); std::wstring text = GetFormattedString(ID_STR_THEMEDELETE, themes[sel].c_str()); if (Rainmeter->ShowMessage(m_Window, text.c_str(), MB_ICONQUESTION | MB_YESNO) != IDYES) { // Cancel break; } std::wstring folder = Rainmeter->GetThemePath(); folder += themes[sel]; if (CSystem::RemoveFolder(folder)) { ListBox_DeleteString(item, sel); // Remove theme from vector std::vector<std::wstring>::iterator iter = themes.begin(); for ( ; iter != themes.end(); ++iter) { if (wcscmp(themes[sel].c_str(), (*iter).c_str()) == 0) { themes.erase(iter); break; } } EnableWindow(GetDlgItem(m_Window, IDC_MANAGETHEMES_LOAD_BUTTON), FALSE); EnableWindow(GetDlgItem(m_Window, IDC_MANAGETHEMES_DELETE_BUTTON), FALSE); EnableWindow(GetDlgItem(m_Window, IDC_MANAGETHEMES_EDIT_BUTTON), FALSE); } } break; default: return 1; } return 0; }
void Run (CUniverse &Universe, CXMLElement *pCmdLine) { ALERROR error; int i; CCodeChain &CC = g_pUniverse->GetCC(); bool bNoLogo = pCmdLine->GetAttributeBool(NO_LOGO_SWITCH); // Prepare the universe CTopologyNode *pNode = g_pUniverse->GetFirstTopologyNode(); if (pNode == NULL) { printf("ERROR: No topology node found.\n"); return; } CSystem *pSystem; if (error = g_pUniverse->CreateStarSystem(pNode, &pSystem)) { printf("ERROR: Unable to create star system.\n"); return; } // Set the POV CSpaceObject *pPOV = pSystem->GetObject(0); g_pUniverse->SetPOV(pPOV); pSystem->SetPOVLRS(pPOV); // Prepare system g_pUniverse->UpdateExtended(); g_pUniverse->GarbageCollectLibraryBitmaps(); CString sCommand = pCmdLine->GetAttribute(RUN_SWITCH); CString sRunFile = pCmdLine->GetAttribute(RUN_FILE_SWITCH); // If this is a run file, then we parse it and run it if (!sRunFile.IsBlank() && !strEquals(sRunFile, CONSTLIT("true"))) { TArray<CString> Files; ParseStringList(sRunFile, PSL_FLAG_ALLOW_WHITESPACE, &Files); for (i = 0; i < Files.GetCount(); i++) RunFile(Files[i], bNoLogo); } // If we have a command, invoke it else if (!sCommand.IsBlank() && !strEquals(sCommand, CONSTLIT("True"))) { CCodeChainCtx Ctx; ICCItem *pCode = Ctx.Link(sCommand, 0, NULL); ICCItem *pResult = Ctx.Run(pCode); CString sOutput; if (pResult->IsIdentifier()) sOutput = pResult->Print(&CC, PRFLAG_NO_QUOTES | PRFLAG_ENCODE_FOR_DISPLAY); else sOutput = CC.Unlink(pResult); Ctx.Discard(pResult); Ctx.Discard(pCode); // Output result printf("%s\n", sOutput.GetASCIIZPointer()); } // Otherwise, we enter a command loop else { // Welcome if (!bNoLogo) { printf("(help) for function help.\n"); printf("\\q to quit.\n\n"); } // Loop while (true) { char szBuffer[1024]; if (!bNoLogo) printf(": "); gets_s(szBuffer, sizeof(szBuffer)-1); CString sCommand(szBuffer); // Escape codes if (*sCommand.GetASCIIZPointer() == '\\') { // Quit command if (strStartsWith(sCommand, CONSTLIT("\\q"))) break; else if (strStartsWith(sCommand, CONSTLIT("\\?")) || strStartsWith(sCommand, CONSTLIT("\\h"))) { printf("TLisp Shell\n\n"); printf("\\h Show this help\n"); printf("\\q Quit\n"); printf("\n(help) for function help.\n"); } } // Null command else if (sCommand.IsBlank()) NULL; // Command else { CCodeChainCtx Ctx; ICCItem *pCode = Ctx.Link(sCommand, 0, NULL); ICCItem *pResult = Ctx.Run(pCode); CString sOutput; if (pResult->IsIdentifier()) sOutput = pResult->Print(&CC, PRFLAG_NO_QUOTES | PRFLAG_ENCODE_FOR_DISPLAY); else sOutput = CC.Unlink(pResult); Ctx.Discard(pResult); Ctx.Discard(pCode); // Output result printf("%s\n", sOutput.GetASCIIZPointer()); } } } }
int c4s_checkfile(const char *filename) { return RunFile(filename, true); }
int c4s_runfile(const char *filename) { return RunFile(filename, false); }