void CMLuaOptions::OnScriptListClick(CCtrlListView::TEventInfo *evt) { LVITEM lvi = { 0 }; lvi.iItem = evt->nmlvia->iItem; if (lvi.iItem == -1) return; lvi.pszText = (LPTSTR)mir_calloc(MAX_PATH * sizeof(TCHAR)); lvi.cchTextMax = MAX_PATH; lvi.mask = LVIF_GROUPID | LVIF_TEXT | LVIF_PARAM; evt->treeviewctrl->GetItem(&lvi); lvi.iSubItem = evt->nmlvia->iSubItem; CMLuaScript* script = (CMLuaScript*)lvi.lParam; switch (lvi.iSubItem) { case 1: ShellExecute(m_hwnd, _T("Open"), script->GetFilePath(), NULL, NULL, SW_SHOWNORMAL); break; case 2: //m_scripts.DeleteItem(evt->nmlvia->iItem); script->Unload(); script->Load(); lvi.mask = LVIF_IMAGE; lvi.iSubItem = 0; lvi.iImage = script->GetStatus() - 1; ListView_SetItem(m_scripts.GetHwnd(), &lvi); m_scripts.Update(evt->nmlvia->iItem); break; } mir_free(lvi.pszText); }
void CMLuaOptions::LoadScripts() { for (int i = 0; i < g_mLua->Scripts.getCount(); i++) { CMLuaScript *script = g_mLua->Scripts[i]; TCHAR *fileName = NEWTSTR_ALLOCA(script->GetFileName()); int iIcon = script->GetStatus() - 1; int iItem = m_scripts.AddItem(fileName, iIcon, (LPARAM)script); if (db_get_b(NULL, MODULE, _T2A(fileName), 1)) m_scripts.SetCheckState(iItem, TRUE); m_scripts.SetItem(iItem, 1, TranslateT("Open"), 2); m_scripts.SetItem(iItem, 2, TranslateT("Reload"), 3); } }