// MouseDown void MultipleManipulatorState::MouseDown(BPoint where, uint32 buttons, uint32 clicks) { if (buttons & B_SECONDARY_MOUSE_BUTTON) { _ShowContextMenu(where); return; } if (clicks == 2 && fPreviousManipulator && fManipulators.HasItem(fPreviousManipulator)) { // valid double click (onto the same, still existing manipulator) if (fPreviousManipulator->TrackingBounds(fView).Contains(where) && fPreviousManipulator->DoubleClicked(where)) { // TODO: eat the click here or wait for MouseUp? fPreviousManipulator = NULL; return; } } int32 count = fManipulators.CountItems(); for (int32 i = count - 1; i >= 0; i--) { Manipulator* manipulator = (Manipulator*)fManipulators.ItemAtFast(i); if (manipulator->MouseDown(where)) { fCurrentManipulator = manipulator; break; } } fView->SetMouseEventMask(B_POINTER_EVENTS, B_LOCK_WINDOW_FOCUS); }
void PieView::MouseDown(BPoint where) { uint32 buttons; BMessage* current = Window()->CurrentMessage(); if (current->FindInt32("buttons", (int32*)&buttons) != B_OK) buttons = B_PRIMARY_MOUSE_BUTTON; FileInfo* info = _FileAt(where); if (info == NULL || info->pseudo) return; if (buttons & B_PRIMARY_MOUSE_BUTTON) { fClicked = true; fDragStart = where; fClickedFile = info; SetMouseEventMask(B_POINTER_EVENTS); } else if (buttons & B_SECONDARY_MOUSE_BUTTON) { where = ConvertToScreen(where); _ShowContextMenu(info, where); } }
HRESULT STDMETHODCALLTYPE Power_Message(_In_ CSysTray * pSysTray, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult) { TRACE("Power_Message uMsg=%d, wParam=%x, lParam=%x\n", uMsg, wParam, lParam); switch (uMsg) { case WM_USER + 220: TRACE("Power_Message: WM_USER+220\n"); if (wParam == POWER_SERVICE_FLAG) { if (lParam) { pSysTray->EnableService(POWER_SERVICE_FLAG, TRUE); return Power_Init(pSysTray); } else { pSysTray->EnableService(POWER_SERVICE_FLAG, FALSE); return Power_Shutdown(pSysTray); } } return S_FALSE; case WM_USER + 221: TRACE("Power_Message: WM_USER+221\n"); if (wParam == POWER_SERVICE_FLAG) { lResult = (LRESULT)pSysTray->IsServiceEnabled(POWER_SERVICE_FLAG); return S_OK; } return S_FALSE; case WM_TIMER: if (wParam == POWER_TIMER_ID) { KillTimer(pSysTray->GetHWnd(), POWER_TIMER_ID); ShowPowerSchemesPopupMenu(pSysTray); } break; case ID_ICON_POWER: Power_Update(pSysTray); switch (lParam) { case WM_LBUTTONDOWN: SetTimer(pSysTray->GetHWnd(), POWER_TIMER_ID, GetDoubleClickTime(), NULL); break; case WM_LBUTTONUP: break; case WM_LBUTTONDBLCLK: KillTimer(pSysTray->GetHWnd(), POWER_TIMER_ID); _RunPower(); break; case WM_RBUTTONDOWN: break; case WM_RBUTTONUP: _ShowContextMenu(pSysTray); break; case WM_RBUTTONDBLCLK: break; case WM_MOUSEMOVE: break; } return S_OK; default: TRACE("Power_Message received for unknown ID %d, ignoring.\n"); return S_FALSE; } return S_FALSE; }