コード例 #1
0
// 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);
}
コード例 #2
0
ファイル: PieView.cpp プロジェクト: ysei/haiku
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);
	}
}
コード例 #3
0
ファイル: power.cpp プロジェクト: Moteesh/reactos
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;
}