void CountingBangRunner::RunNext(int nr) { counter++; if (counter != nr && nr >= 0) { _LSLogPrintf(LOG_NOTICE, szLogName, "(+) Counted bang nr different from requested: c %d r %d (changing to requested)", counter, nr); counter = nr; } // check if there is a bang command for this count and the run it BangMap::iterator find = numberedCommands.find(counter); if (find != numberedCommands.end()) { _LSLogPrintf(LOG_DEBUG, szLogName, "Executing nr %d: \"%s\" ", counter, (*find).second.char_str()); LSExecute(executingHWND, (*find).second.char_str(), NULL); } // run "on add" command if (onAddCommand.length() > 0) { _LSLogPrintf(LOG_DEBUG, szLogName, "Executing std add: \"%s\" ", onAddCommand.char_str()); LSExecute(executingHWND, onAddCommand.char_str(), NULL); } }
HINSTANCE LSUtils::_LSExecute(HWND Owner, SafeString& sCommand, int nShowCmd) { return LSExecute(Owner, sCommand.char_str(), 0); }
HINSTANCE LSUtils::LoggedLSExecute(LPCTSTR szLogName, HWND Owner, LPCTSTR szCommand, int nShowCmd) { _LSLogPrintf(LOG_DEBUG, szLogName, "Running Bang: %s", szCommand); return LSExecute(Owner, szCommand, nShowCmd); }
/************************************************************************************************** This function handles events. **************************************************************************************************/ void CGroup::HandleEvent(UINT uEvent) { if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_NONE) == 0) { return; } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_RENAME) == 0) { ListView_EditLabel(m_hwndListView, ListView_GetNextItem(m_hwndListView, -1, LVNI_FOCUSED)); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_EXECUTE) == 0) { if (ListView_GetSelectedCount(m_hwndListView) == 1) { int iItem = ListView_GetNextItem(m_hwndListView, -1, LVNI_SELECTED); char szFileName[MAX_PATH]; if (GetNameFromId(iItem, szFileName, sizeof(szFileName))) { if (utils::Is_Directory(szFileName)) { if (m_bInlineBrowsing) { return ChangeDir(".selected"); } else if (m_bExplicitCalls) { LSExecuteEx(NULL, "open", "explorer.exe", szFileName, NULL, SW_SHOWNORMAL); return; } } } } CallWindowProc(m_wpOrigListViewProc, m_hwndListView, WM_KEYDOWN, VK_RETURN, NULL); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_DELETE) == 0) { DeleteFiles(); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_PASTE) == 0) { DoPaste(); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_UNDO) == 0) { // TODO::Add support for this } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_COPY) == 0) { CopyFiles(false); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_CUT) == 0) { CopyFiles(true); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_SELECTALL) == 0) { ListView_SetItemState(m_hwndListView, -1, LVIS_SELECTED, LVIS_SELECTED); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_REFRESH) == 0) { SaveState(); m_pView2->Refresh(); RestoreState(); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_UP) == 0) { ChangeDir(".up"); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_CHANGEDIR) == 0) { ChangeDir(".selected"); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_DOWNKEY) == 0) { CallWindowProc(m_wpOrigListViewProc, m_hwndListView, WM_KEYDOWN, VK_DOWN, NULL); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_UPKEY) == 0) { CallWindowProc(m_wpOrigListViewProc, m_hwndListView, WM_KEYDOWN, VK_UP, NULL); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_LEFTKEY) == 0) { CallWindowProc(m_wpOrigListViewProc, m_hwndListView, WM_KEYDOWN, VK_LEFT, NULL); } else if (_stricmp(m_szEventCommand[uEvent], EVENT_ACTION_RIGHTKEY) == 0) { CallWindowProc(m_wpOrigListViewProc, m_hwndListView, WM_KEYDOWN, VK_RIGHT, NULL); } else { LSExecute(m_hwndListView, m_szEventCommand[uEvent], SW_SHOWNORMAL); } }