LRESULT ScriptEditorDialog::ScriptEditorDialogProc(UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_WINDOWPOSCHANGED: { RECT rcParent; ::GetClientRect(m_hWndWindowItems[WINDOW_HANDLE], &rcParent); ::SetWindowPos(m_hWndWindowItems[BTN_SAVE_SCRIPT], nullptr, (rcParent.right / 3) * 2, rcParent.bottom - GuiSettingManager::m_iEditHeight - 2, rcParent.right - ((rcParent.right / 3) * 2) - 2, GuiSettingManager::m_iEditHeight, SWP_NOZORDER); ::SetWindowPos(m_hWndWindowItems[BTN_CHECK_SYNTAX], nullptr, (rcParent.right / 3) + 1, rcParent.bottom - GuiSettingManager::m_iEditHeight - 2, (rcParent.right / 3) - 2, GuiSettingManager::m_iEditHeight, SWP_NOZORDER); ::SetWindowPos(m_hWndWindowItems[BTN_LOAD_SCRIPT], nullptr, 2, rcParent.bottom - GuiSettingManager::m_iEditHeight - 2, (rcParent.right / 3) - 2, GuiSettingManager::m_iEditHeight, SWP_NOZORDER); ::SetWindowPos(m_hWndWindowItems[REDT_SCRIPT], nullptr, 0, 0, rcParent.right - ScaleGui(40), rcParent.bottom - GuiSettingManager::m_iEditHeight - 4, SWP_NOMOVE | SWP_NOZORDER); return 0; } case WM_COMMAND: switch(LOWORD(wParam)) { case (REDT_SCRIPT+100): if(HIWORD(wParam) == EN_UPDATE) { OnUpdate(); } break; case (BTN_LOAD_SCRIPT+100): OnLoadScript(); return 0; case BTN_CHECK_SYNTAX: OnCheckSyntax(); return 0; case BTN_SAVE_SCRIPT: OnSaveScript(); return 0; case IDOK: case IDCANCEL: ::PostMessage(m_hWndWindowItems[WINDOW_HANDLE], WM_CLOSE, 0, 0); return 0; } if(RichEditCheckMenuCommands(m_hWndWindowItems[REDT_SCRIPT], LOWORD(wParam)) == true) { return 0; } break; case WM_CONTEXTMENU: OnContextMenu((HWND)wParam, lParam); break; case WM_NOTIFY: if(((LPNMHDR)lParam)->hwndFrom == m_hWndWindowItems[REDT_SCRIPT] && ((LPNMHDR)lParam)->code == EN_LINK) { if(((ENLINK *)lParam)->msg == WM_LBUTTONUP) { RichEditOpenLink(m_hWndWindowItems[REDT_SCRIPT], (ENLINK *)lParam); } } break; case WM_GETMINMAXINFO: { MINMAXINFO *mminfo = (MINMAXINFO*)lParam; mminfo->ptMinTrackSize.x = ScaleGui(443); mminfo->ptMinTrackSize.y = ScaleGui(454); return 0; } case WM_CLOSE: ::EnableWindow(::GetParent(m_hWndWindowItems[WINDOW_HANDLE]), TRUE); ServerManager::m_hWndActiveDialog = nullptr; break; case WM_NCDESTROY: { HWND hWnd = m_hWndWindowItems[WINDOW_HANDLE]; delete this; return ::DefWindowProc(hWnd, uMsg, wParam, lParam); } case WM_SETFOCUS: { CHARRANGE cr = { 0, 0 }; ::SendMessage(m_hWndWindowItems[REDT_SCRIPT], EM_EXSETSEL, 0, (LPARAM)&cr); ::SetFocus(m_hWndWindowItems[REDT_SCRIPT]); return 0; } } return ::DefWindowProc(m_hWndWindowItems[WINDOW_HANDLE], uMsg, wParam, lParam); }
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); }