本文整理汇总了C++中CFX_RectF::Contains方法的典型用法代码示例。如果您正苦于以下问题:C++ CFX_RectF::Contains方法的具体用法?C++ CFX_RectF::Contains怎么用?C++ CFX_RectF::Contains使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFX_RectF
的用法示例。
在下文中一共展示了CFX_RectF::Contains方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetWidgetAtPoint
IFWL_Widget* CFWL_WidgetMgr::GetWidgetAtPoint(IFWL_Widget* parent,
FX_FLOAT x,
FX_FLOAT y) {
if (!parent)
return nullptr;
FX_FLOAT x1;
FX_FLOAT y1;
IFWL_Widget* child = GetLastChildWidget(parent);
while (child) {
if ((child->GetStates() & FWL_WGTSTATE_Invisible) == 0) {
x1 = x;
y1 = y;
CFX_Matrix matrixOnParent;
child->GetMatrix(matrixOnParent);
CFX_Matrix m;
m.SetIdentity();
m.SetReverse(matrixOnParent);
m.TransformPoint(x1, y1);
CFX_RectF bounds;
child->GetWidgetRect(bounds);
if (bounds.Contains(x1, y1)) {
x1 -= bounds.left;
y1 -= bounds.top;
return GetWidgetAtPoint(child, x1, y1);
}
}
child = GetPriorSiblingWidget(child);
}
return parent;
}
示例2: OnDropListMouseMove
void IFWL_ComboList::OnDropListMouseMove(CFWL_MsgMouse* pMsg) {
if (GetRTClient().Contains(pMsg->m_fx, pMsg->m_fy)) {
if (m_bNotifyOwner)
m_bNotifyOwner = false;
IFWL_ScrollBar* vertSB = GetVertScrollBar();
if (IsShowScrollBar(true) && vertSB) {
CFX_RectF rect;
vertSB->GetWidgetRect(rect);
if (rect.Contains(pMsg->m_fx, pMsg->m_fy))
return;
}
CFWL_ListItem* hItem = GetItemAtPoint(pMsg->m_fx, pMsg->m_fy);
if (!hItem)
return;
if (!m_pProperties->m_pDataProvider)
return;
IFWL_ListBoxDP* pData =
static_cast<IFWL_ListBoxDP*>(m_pProperties->m_pDataProvider);
ChangeSelected(pData->GetItemIndex(this, hItem));
} else if (m_bNotifyOwner) {
ClientToOuter(pMsg->m_fx, pMsg->m_fy);
IFWL_ComboBox* pOuter = static_cast<IFWL_ComboBox*>(m_pOuter);
pOuter->GetDelegate()->OnProcessMessage(pMsg);
}
}
示例3: DisForm_HitTest
FWL_WidgetHit IFWL_DateTimePicker::DisForm_HitTest(FX_FLOAT fx,
FX_FLOAT fy) const {
CFX_RectF rect;
rect.Set(0, 0, m_pProperties->m_rtWidget.width,
m_pProperties->m_rtWidget.height);
if (rect.Contains(fx, fy))
return FWL_WidgetHit::Edit;
if (DisForm_IsNeedShowButton())
rect.width += m_fBtn;
if (rect.Contains(fx, fy))
return FWL_WidgetHit::Client;
if (IsMonthCalendarVisible()) {
m_pMonthCal->GetWidgetRect(rect);
if (rect.Contains(fx, fy))
return FWL_WidgetHit::Client;
}
return FWL_WidgetHit::Unknown;
}
示例4: HitTest
FWL_WidgetHit IFWL_Widget::HitTest(FX_FLOAT fx, FX_FLOAT fy) {
CFX_RectF rtClient;
GetClientRect(rtClient);
if (rtClient.Contains(fx, fy))
return FWL_WidgetHit::Client;
if (HasEdge()) {
CFX_RectF rtEdge;
GetEdgeRect(rtEdge);
if (rtEdge.Contains(fx, fy))
return FWL_WidgetHit::Edge;
}
if (HasBorder()) {
CFX_RectF rtRelative;
GetRelativeRect(rtRelative);
if (rtRelative.Contains(fx, fy))
return FWL_WidgetHit::Border;
}
return FWL_WidgetHit::Unknown;
}
示例5: PtInActiveRect
FX_BOOL CXFA_FFComboBox::PtInActiveRect(FX_FLOAT fx, FX_FLOAT fy) {
if (!m_pNormalWidget) {
return FALSE;
}
CFX_RectF rtWidget;
((CFWL_ComboBox*)m_pNormalWidget)->GetBBox(rtWidget);
if (rtWidget.Contains(fx, fy)) {
return TRUE;
}
return FALSE;
}
示例6: PtInActiveRect
bool CXFA_FFComboBox::PtInActiveRect(FX_FLOAT fx, FX_FLOAT fy) {
if (!m_pNormalWidget) {
return false;
}
CFX_RectF rtWidget;
((CFWL_ComboBox*)m_pNormalWidget)->GetBBox(rtWidget);
if (rtWidget.Contains(fx, fy)) {
return true;
}
return false;
}
示例7: PtInActiveRect
bool CXFA_FFDateTimeEdit::PtInActiveRect(FX_FLOAT fx, FX_FLOAT fy) {
if (!m_pNormalWidget) {
return false;
}
CFX_RectF rtWidget;
((CFWL_DateTimePicker*)m_pNormalWidget)->GetBBox(rtWidget);
if (rtWidget.Contains(fx, fy)) {
return true;
}
return false;
}
示例8: PtInActiveRect
FX_BOOL CXFA_FFField::PtInActiveRect(FX_FLOAT fx, FX_FLOAT fy) {
if (!m_pNormalWidget) {
return FALSE;
}
CFX_RectF rtWidget;
m_pNormalWidget->GetWidgetRect(rtWidget);
if (rtWidget.Contains(fx, fy)) {
return TRUE;
}
return FALSE;
}
示例9: DisForm_HitTest
FX_DWORD CFWL_DateTimePickerImp::DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy) {
CFX_RectF rect;
rect.Set(0, 0, m_pProperties->m_rtWidget.width,
m_pProperties->m_rtWidget.height);
if (rect.Contains(fx, fy)) {
return FWL_WGTHITTEST_Edit;
}
if (DisForm_IsNeedShowButton()) {
rect.width += m_fBtn;
}
if (rect.Contains(fx, fy)) {
return FWL_WGTHITTEST_Client;
}
if (IsMonthCalendarShowed()) {
m_pMonthCal->GetWidgetRect(rect);
if (rect.Contains(fx, fy)) {
return FWL_WGTHITTEST_Client;
}
}
return FWL_WGTHITTEST_Unknown;
}
示例10: OnLButtonUpEx
void CFWL_DateTimeCalendarImpDelegate::OnLButtonUpEx(CFWL_MsgMouse* pMsg) {
if (m_pOwner->m_pWidgetMgr->IsFormDisabled()) {
return DisForm_OnLButtonUpEx(pMsg);
}
if (m_pOwner->m_rtLBtn.Contains(pMsg->m_fx, pMsg->m_fy)) {
m_pOwner->m_iLBtnPartStates = 0;
m_pOwner->Repaint(&m_pOwner->m_rtLBtn);
return;
}
if (m_pOwner->m_rtRBtn.Contains(pMsg->m_fx, pMsg->m_fy)) {
m_pOwner->m_iRBtnPartStates = 0;
m_pOwner->Repaint(&m_pOwner->m_rtRBtn);
return;
}
if (m_pOwner->m_rtToday.Contains(pMsg->m_fx, pMsg->m_fy)) {
return;
}
int32_t iOldSel = 0;
if (m_pOwner->m_arrSelDays.GetSize() > 0) {
iOldSel = m_pOwner->m_arrSelDays[0];
}
int32_t iCurSel = m_pOwner->GetDayAtPoint(pMsg->m_fx, pMsg->m_fy);
CFX_RectF rt;
IFWL_DateTimePicker* pIPicker =
static_cast<IFWL_DateTimePicker*>(m_pOwner->m_pOuter);
CFWL_DateTimePickerImp* pPicker =
static_cast<CFWL_DateTimePickerImp*>(pIPicker->GetImpl());
pPicker->m_pForm->GetWidgetRect(rt);
rt.Set(0, 0, rt.width, rt.height);
if (iCurSel > 0) {
LPDATEINFO lpDatesInfo =
(LPDATEINFO)m_pOwner->m_arrDates.GetAt(iCurSel - 1);
CFX_RectF rtInvalidate(lpDatesInfo->rect);
if (iOldSel > 0 && iOldSel <= m_pOwner->m_arrDates.GetSize()) {
lpDatesInfo = (LPDATEINFO)m_pOwner->m_arrDates.GetAt(iOldSel - 1);
rtInvalidate.Union(lpDatesInfo->rect);
}
m_pOwner->AddSelDay(iCurSel);
if (!m_pOwner->m_pOuter)
return;
pPicker->ProcessSelChanged(m_pOwner->m_iCurYear, m_pOwner->m_iCurMonth,
iCurSel);
pPicker->ShowMonthCalendar(FALSE);
} else if (m_bFlag && (!rt.Contains(pMsg->m_fx, pMsg->m_fy))) {
IFWL_DateTimePicker* pIPicker =
static_cast<IFWL_DateTimePicker*>(m_pOwner->m_pOuter);
CFWL_DateTimePickerImp* pPicker =
static_cast<CFWL_DateTimePickerImp*>(pIPicker->GetImpl());
pPicker->ShowMonthCalendar(FALSE);
}
m_bFlag = 0;
}
示例11: HitTest
FWL_WidgetHit IFWL_DateTimePicker::HitTest(FX_FLOAT fx, FX_FLOAT fy) {
if (m_pWidgetMgr->IsFormDisabled())
return DisForm_HitTest(fx, fy);
if (m_rtClient.Contains(fx, fy))
return FWL_WidgetHit::Client;
if (IsMonthCalendarVisible()) {
CFX_RectF rect;
m_pMonthCal->GetWidgetRect(rect);
if (rect.Contains(fx, fy))
return FWL_WidgetHit::Client;
}
return FWL_WidgetHit::Unknown;
}
示例12: DoMouseDown
void CFWL_ScrollBarImpDelegate::DoMouseDown(int32_t iItem,
const CFX_RectF& rtItem,
int32_t& iState,
FX_FLOAT fx,
FX_FLOAT fy) {
if (!rtItem.Contains(fx, fy)) {
return;
}
if (iState == FWL_PARTSTATE_SCB_Pressed) {
return;
}
iState = FWL_PARTSTATE_SCB_Pressed;
m_pOwner->Repaint(&rtItem);
}
示例13: DoMouseUp
void CFWL_ScrollBarImpDelegate::DoMouseUp(int32_t iItem,
const CFX_RectF& rtItem,
int32_t& iState,
FX_FLOAT fx,
FX_FLOAT fy) {
int32_t iNewState = rtItem.Contains(fx, fy) ? FWL_PARTSTATE_SCB_Hovered
: FWL_PARTSTATE_SCB_Normal;
if (iState == iNewState) {
return;
}
iState = iNewState;
m_pOwner->Repaint(&rtItem);
m_pOwner->OnScroll(FWL_SCBCODE_EndScroll, m_pOwner->m_fTrackPos);
}
示例14: OnHitTest
FWL_WidgetHit CXFA_FFSignature::OnHitTest(FX_FLOAT fx, FX_FLOAT fy) {
if (m_pNormalWidget) {
FX_FLOAT ffx = fx, ffy = fy;
FWLToClient(ffx, ffy);
if (m_pNormalWidget->HitTest(ffx, ffy) != FWL_WidgetHit::Unknown)
return FWL_WidgetHit::Client;
}
CFX_RectF rtBox;
GetRectWithoutRotate(rtBox);
if (!rtBox.Contains(fx, fy))
return FWL_WidgetHit::Unknown;
if (m_rtCaption.Contains(fx, fy))
return FWL_WidgetHit::Titlebar;
return FWL_WidgetHit::Client;
}
示例15: HitTest
FX_DWORD CFWL_DateTimePickerImp::HitTest(FX_FLOAT fx, FX_FLOAT fy) {
if (m_pWidgetMgr->IsFormDisabled()) {
return DisForm_HitTest(fx, fy);
}
if (m_rtClient.Contains(fx, fy)) {
return FWL_WGTHITTEST_Client;
}
if (IsMonthCalendarShowed()) {
CFX_RectF rect;
m_pMonthCal->GetWidgetRect(rect);
if (rect.Contains(fx, fy)) {
return FWL_WGTHITTEST_Client;
}
}
return FWL_WGTHITTEST_Unknown;
}