bool cWidgetComboBox::SliderLostFocus(iWidget *a_pWidget, cGuiMessageData &a_Data) { if (m_bMenuOpen && GetMouseIsOver() == false) CloseMenu(); return false; }
bool cWidgetComboBox::OnMouseMove(cGuiMessageData &aData) { if(mbMenuOpen==false) return false; if(GetMouseIsOver()==false) return false; cVector3f vLocalPos = WorldToLocalPosition(aData.mvPos); if(vLocalPos.y <= mpText->GetSize().y) return false; if(mpSlider->IsEnabled() && vLocalPos.x >= mvSize.x - 20) return false; float fToTextStart = 2 + mpText->GetSize().y + mvGfxCorners[0]->GetActiveSize().y; int lSelection = (int)(( vLocalPos.y - fToTextStart) / (mvDefaultFontSize.y+2)); if(lSelection <0) lSelection =0; lSelection = lSelection + mlFirstItem; if(lSelection >= (int)mvItems.size()) lSelection = (int)mvItems.size()-1; mlMouseOverSelection = lSelection; return true; }