void OpenResourceDlg::OnDVItemActivated(wxDataViewEvent& event)
{
    SetSelectedItem(DoGetItemData(event.GetItem()));
    EndModal(wxID_OK);
}
void CTSKTabManager::OnItemClick(CTSKTabManagerItem* pItem)
{
	SetSelectedItem(pItem);
}
// Handle mouse events
//-----------------------------------------------------------------------------
CPUTEventHandledCode CPUTDropdown::HandleMouseEvent(int x, int y, int wheel, CPUTMouseState state)
{
    UNREFERENCED_PARAMETER(wheel);
    CPUTEventHandledCode handledCode = CPUT_EVENT_UNHANDLED;

    // just return if the control is disabled or invisible
    if((CPUT_CONTROL_INACTIVE == mControlState) || (false == mControlVisible) )
    {
        mbMouseInside = false;
        return handledCode;
    }

    // tray is down, commence to selecting
    if(CPUT_DROPDOWN_GUI_MOUSE_PRESSED == mControlGuiState) 
    {
        if(ContainsPointTrayArea(x, y))
        {
            // tray is open
            // float the selection up/down based on mouse position, making
            // whichever item the mouse is over the selected item
            CPUT_RECT inner, outer;
            CalculateTrayRect(inner, outer);
            if( (x>outer.x) && (x<outer.x+outer.width) &&
                (y>inner.y) && (y<inner.y+inner.height))
            {
                // figure out which one was selected
                int itemWidth, itemHeight;
                CalculateMaxItemSize(itemWidth, itemHeight);
                int itemSelect = (int)( (y - inner.y)  / (float)(itemHeight+2*CPUT_DROPDOWN_TEXT_PADDING));
                SetSelectedItem(itemSelect+1);
            }

            if( CPUT_MOUSE_LEFT_DOWN == state )
            {
                mbStartedClickInsideTray = true;
            }

            // released the left-down button, but there was a click started here
            if( !(CPUT_MOUSE_LEFT_DOWN == state) && (true == mbStartedClickInsideTray) )
            {
                // mark click start as no longer active
                mbStartedClickInsideTray = false;

                // close the tray
                //mControlState = CPUT_CONTROL_ACTIVE;
                mControlGuiState = CPUT_DROPDOWN_GUI_MOUSE_NEUTRAL;
                Recalculate();

                // fire callback
                mpCallbackHandler->HandleCallbackEvent(1, mcontrolID, (CPUTControl*) this);

                // remember this item as the last selected item
                GetSelectedItem(mRevertItem);
            }

            // anything in the tray counts as handling the mouse event
            return CPUT_EVENT_HANDLED;
        }
    }

    // handle just the readout area
    if(ContainsPointReadoutArea(x,y))
    {
        // click started outside this control - ignore it
        if( (false == mbMouseInside ) && (CPUT_MOUSE_LEFT_DOWN == state) )
        {
            return handledCode;
        }

        // clicked and dragging around inside the control itself - ignore
        if( (true == mbStartedClickInside ) && (CPUT_MOUSE_LEFT_DOWN == state) )
        {
            return CPUT_EVENT_HANDLED;
        }

        mbMouseInside = true;
        if( !(CPUT_MOUSE_LEFT_DOWN == state))
        {
            mbStartedClickInside = false;
            mbStartedClickInsideTray = false;
        }

        if( CPUT_MOUSE_LEFT_DOWN == state )
        {
            if(CPUT_DROPDOWN_GUI_MOUSE_NEUTRAL == mControlGuiState) 
            {
                mbStartedClickInside = true;
                mbStartedClickInsideTray = true;

                // get the item to revert to
                GetSelectedItem(mRevertItem);

                // toggle tray state
                mControlGuiState = CPUT_DROPDOWN_GUI_MOUSE_PRESSED;
                Recalculate();

            }
            else
            {
                mbStartedClickInside = true;
                mbStartedClickInsideTray = true;
                //mControlState = CPUT_CONTROL_ACTIVE;
                mControlGuiState = CPUT_DROPDOWN_GUI_MOUSE_NEUTRAL;
                SetSelectedItem(mRevertItem);
                mRevertItem=(UINT)-1;
                Recalculate();
            }

            return CPUT_EVENT_HANDLED;
        }
    }
    else if(CPUT_MOUSE_LEFT_DOWN == state)
    {
        // clicked outside the control
        // if tray is down, restore previous selection and disable
        // display of the tray
        if(CPUT_DROPDOWN_GUI_MOUSE_NEUTRAL != mControlGuiState)
        {
            mControlGuiState = CPUT_DROPDOWN_GUI_MOUSE_NEUTRAL;
            SetSelectedItem(mRevertItem);
            mRevertItem=(UINT)-1;
            Recalculate();
        }
        
        mbStartedClickInside = false;
        mbMouseInside = false;
        return CPUT_EVENT_UNHANDLED;
    }
    return handledCode;
}
Beispiel #4
0
void Sidebar::SetMultipleSelection()
{
    SetSelectedItem(nullptr, nullptr);
}
void FMODSoundBrowser::OnRejected()
{
    SetSelectedItem(0);
}
Beispiel #6
0
void GridList::MoveUp()
{
	SetSelectedItem(SelectedItem == 0 ? ItemCount - 1 : SelectedItem - 1);
}
Beispiel #7
0
void GridList::MoveDown()
{
	SetSelectedItem(SelectedItem == (ItemCount - 1) ? 0 : SelectedItem + 1);
}