void MainWindow:: ShowContextMenu(const QPoint& pos) { QMenu contextMenu(tr("Context menu"), this); QAction action1("Add New Script", this); connect(&action1, SIGNAL(triggered()), this, SLOT(InsertScript())); contextMenu.addAction(&action1); QAction *separator = new QAction(this); separator->setSeparator(true); contextMenu.addAction(separator); QAction action3("Delete Script", this); connect(&action3, SIGNAL(triggered()), this, SLOT(DeleteScript())); contextMenu.addAction(&action3); contextMenu.exec(mapToGlobal(pos)); }
LRESULT MainWindowPageScripts::MainWindowPageProc(UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_SETFOCUS: { CHARRANGE cr = { 0, 0 }; ::SendMessage(hWndPageItems[REDT_SCRIPTS_ERRORS], EM_EXSETSEL, 0, (LPARAM)&cr); ::SetFocus(hWndPageItems[REDT_SCRIPTS_ERRORS]); return 0; } case WM_WINDOWPOSCHANGED: { RECT rcMain = { 0, 0, ((WINDOWPOS*)lParam)->cx, ((WINDOWPOS*)lParam)->cy }; SetSplitterRect(&rcMain); return 0; } case WM_COMMAND: switch(LOWORD(wParam)) { case BTN_OPEN_SCRIPT_EDITOR: { OpenScriptEditor(); return 0; } case BTN_REFRESH_SCRIPTS: RefreshScripts(); return 0; case BTN_MOVE_UP: MoveUp(); return 0; case BTN_MOVE_DOWN: MoveDown(); return 0; case BTN_RESTART_SCRIPTS: RestartScripts(); return 0; case IDC_OPEN_IN_EXT_EDITOR: OpenInExternalEditor(); return 0; case IDC_OPEN_IN_SCRIPT_EDITOR: OpenInScriptEditor(); return 0; case IDC_DELETE_SCRIPT: DeleteScript(); return 0; } if(RichEditCheckMenuCommands(hWndPageItems[REDT_SCRIPTS_ERRORS], LOWORD(wParam)) == true) { return 0; } break; case WM_CONTEXTMENU: OnContextMenu((HWND)wParam, lParam); break; case WM_NOTIFY: if(((LPNMHDR)lParam)->hwndFrom == hWndPageItems[LV_SCRIPTS]) { if(((LPNMHDR)lParam)->code == LVN_ITEMCHANGED) { OnItemChanged((LPNMLISTVIEW)lParam); } else if(((LPNMHDR)lParam)->code == NM_DBLCLK) { if(((LPNMITEMACTIVATE)lParam)->iItem == -1) { break; } OnDoubleClick((LPNMITEMACTIVATE)lParam); return 0; } } else if(((LPNMHDR)lParam)->hwndFrom == hWndPageItems[REDT_SCRIPTS_ERRORS] && ((LPNMHDR)lParam)->code == EN_LINK) { if(((ENLINK *)lParam)->msg == WM_LBUTTONUP) { RichEditOpenLink(pMainWindowPageScripts->hWndPageItems[MainWindowPageScripts::REDT_SCRIPTS_ERRORS], (ENLINK *)lParam); return 1; } } break; case WM_DESTROY: g_GuiSettingManager->SetInteger(GUISETINT_SCRIPTS_SPLITTER, iPercentagePos); g_GuiSettingManager->SetInteger(GUISETINT_SCRIPT_NAMES, (int)::SendMessage(hWndPageItems[LV_SCRIPTS], LVM_GETCOLUMNWIDTH, 0, 0)); g_GuiSettingManager->SetInteger(GUISETINT_SCRIPT_MEMORY_USAGES, (int)::SendMessage(hWndPageItems[LV_SCRIPTS], LVM_GETCOLUMNWIDTH, 1, 0)); break; } if(BasicSplitterProc(uMsg, wParam, lParam) == true) { return 0; } return ::DefWindowProc(m_hWnd, uMsg, wParam, lParam); }