| 1244 | } |
| 1245 | |
| 1246 | bool CStatus::ProcessStatusMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, POINT ptCurClient, LRESULT& lResult) |
| 1247 | { |
| 1248 | if (!gpSet->isStatusBarShow) |
| 1249 | return false; // Разрешить дальнейшую обработку |
| 1250 | |
| 1251 | lResult = 0; |
| 1252 | |
| 1253 | if (gpConEmu->isSizing() || !PtInRect(&mrc_LastStatus, ptCurClient)) |
| 1254 | { |
| 1255 | //bool bWasClick = mb_WasClick; |
| 1256 | //mb_WasClick = false; |
| 1257 | if (m_ClickedItemDesc != csi_Last) |
| 1258 | { |
| 1259 | m_ClickedItemDesc = csi_Last; |
| 1260 | UpdateStatusBar(true); |
| 1261 | } |
| 1262 | return false; //bWasClick; |
| 1263 | } |
| 1264 | |
| 1265 | CVConGuard VCon; |
| 1266 | |
| 1267 | switch (uMsg) |
| 1268 | { |
| 1269 | case WM_LBUTTONDOWN: |
| 1270 | case WM_LBUTTONDBLCLK: |
| 1271 | case WM_MOUSEMOVE: |
| 1272 | case WM_RBUTTONDOWN: |
| 1273 | case WM_RBUTTONUP: |
| 1274 | { |
| 1275 | RECT rcClient = {}; |
| 1276 | bool bFound = false; |
| 1277 | for (size_t i = 0; i < countof(m_Items); i++) |
| 1278 | { |
| 1279 | if (m_Items[i].bShow && PtInRect(&m_Items[i].rcClient, ptCurClient)) |
| 1280 | { |
| 1281 | bFound = true; |
| 1282 | |
| 1283 | // правый клик был на колонке "Info" |
| 1284 | if (i == 0) |
| 1285 | { |
| 1286 | // и координата не правее середины колонки |
| 1287 | // (ну так, на всякий случай, чтобы и статусное меню можно было показать) |
| 1288 | if (ptCurClient.x <= std::min<LONG>(80, (m_Items[0].rcClient.right/2))) |
| 1289 | { |
| 1290 | _ASSERTE(m_Items[i].nID == csi_Info); |
| 1291 | SetClickedItemDesc(csi_Info); |
| 1292 | } |
| 1293 | else |
| 1294 | { |
| 1295 | SetClickedItemDesc(csi_Last); |
| 1296 | } |
| 1297 | } |
| 1298 | else |
| 1299 | { |
| 1300 | SetClickedItemDesc(m_Items[i].nID); |
| 1301 | } |
| 1302 | rcClient = m_Items[i].rcClient; |
| 1303 | break; |
no test coverage detected