本文整理汇总了C++中IFWL_Widget类的典型用法代码示例。如果您正苦于以下问题:C++ IFWL_Widget类的具体用法?C++ IFWL_Widget怎么用?C++ IFWL_Widget使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IFWL_Widget类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetLastChildWidget
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: OnProcessMessageToForm
void CFWL_WidgetMgrDelegate::OnProcessMessageToForm(CFWL_Message* pMessage) {
if (!pMessage)
return;
if (!pMessage->m_pDstTarget)
return;
IFWL_Widget* pDstWidget = pMessage->m_pDstTarget;
IFWL_App* pApp = pDstWidget->GetOwnerApp();
if (!pApp)
return;
CFWL_NoteDriver* pNoteDriver =
static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver());
if (!pNoteDriver)
return;
if (m_pWidgetMgr->IsThreadEnabled())
pMessage = static_cast<CFWL_Message*>(pMessage->Clone());
if (m_pWidgetMgr->IsFormDisabled())
pNoteDriver->ProcessMessage(pMessage);
else
pNoteDriver->QueueMessage(pMessage);
#if (_FX_OS_ == _FX_MACOSX_)
CFWL_NoteLoop* pTopLoop = pNoteDriver->GetTopLoop();
if (pTopLoop)
pNoteDriver->UnqueueMessage(pTopLoop);
#endif
if (m_pWidgetMgr->IsThreadEnabled())
pMessage->Release();
return;
}
示例3: DoDeactivate
FX_BOOL CFWL_NoteDriver::DoDeactivate(CFWL_MsgDeactivate* pMsg,
IFWL_Widget* pMessageForm) {
if (m_bFullScreen) {
return FALSE;
}
int32_t iTrackLoop = m_noteLoopQueue.GetSize();
if (iTrackLoop <= 0)
return FALSE;
if (iTrackLoop == 1) {
if (pMessageForm->IsInstance(FX_WSTRC(L"FWL_FORMPROXY"))) {
return FALSE;
}
if (pMsg->m_pSrcTarget &&
pMsg->m_pSrcTarget->IsInstance(FX_WSTRC(L"FWL_FORMPROXY"))) {
return FALSE;
}
if (pMsg->m_pSrcTarget && pMsg->m_pSrcTarget->GetClassID() == 1111984755) {
return FALSE;
}
return TRUE;
}
IFWL_Widget* pDst = pMsg->m_pDstTarget;
if (!pDst)
return FALSE;
#if (_FX_OS_ == _FX_MACOSX_)
if (pDst == pMessageForm && pDst->IsInstance(L"FWL_FORMPROXY")) {
return TRUE;
}
#endif
return pDst != pMessageForm &&
!pDst->IsInstance(FX_WSTRC(L"FWL_FORMPROXY")) &&
!pMessageForm->IsInstance(FX_WSTRC(L"FWL_FORMPROXY"));
}
示例4: CFWL_DateTimePicker
bool CXFA_FFDateTimeEdit::LoadWidget() {
CFWL_DateTimePicker* pWidget = new CFWL_DateTimePicker(GetFWLApp());
pWidget->Initialize();
m_pNormalWidget = pWidget;
m_pNormalWidget->SetLayoutItem(this);
IFWL_Widget* pIWidget = m_pNormalWidget->GetWidget();
CFWL_NoteDriver* pNoteDriver = pIWidget->GetOwnerApp()->GetNoteDriver();
pNoteDriver->RegisterEventTarget(pIWidget, pIWidget);
m_pOldDelegate = m_pNormalWidget->GetDelegate();
m_pNormalWidget->SetDelegate(this);
m_pNormalWidget->LockUpdate();
CFX_WideString wsText;
m_pDataAcc->GetValue(wsText, XFA_VALUEPICTURE_Display);
pWidget->SetEditText(wsText);
if (CXFA_Value value = m_pDataAcc->GetFormValue()) {
switch (value.GetChildValueClassID()) {
case XFA_Element::Date: {
if (!wsText.IsEmpty()) {
CXFA_LocaleValue lcValue = XFA_GetLocaleValue(m_pDataAcc);
CFX_Unitime date = lcValue.GetDate();
if ((FX_UNITIME)date != 0) {
pWidget->SetCurSel(date.GetYear(), date.GetMonth(), date.GetDay());
}
}
} break;
default:
break;
}
}
UpdateWidgetProperty();
m_pNormalWidget->UnlockUpdate();
return CXFA_FFField::LoadWidget();
}
示例5: CFWL_ComboBox
bool CXFA_FFComboBox::LoadWidget() {
CFWL_ComboBox* pComboBox = new CFWL_ComboBox(GetFWLApp());
pComboBox->Initialize();
m_pNormalWidget = (CFWL_Widget*)pComboBox;
m_pNormalWidget->SetLayoutItem(this);
IFWL_Widget* pWidget = m_pNormalWidget->GetWidget();
CFWL_NoteDriver* pNoteDriver = pWidget->GetOwnerApp()->GetNoteDriver();
pNoteDriver->RegisterEventTarget(pWidget, pWidget);
m_pOldDelegate = m_pNormalWidget->GetDelegate();
m_pNormalWidget->SetDelegate(this);
m_pNormalWidget->LockUpdate();
CFX_WideStringArray wsLabelArray;
m_pDataAcc->GetChoiceListItems(wsLabelArray, false);
int32_t iItems = wsLabelArray.GetSize();
for (int32_t i = 0; i < iItems; i++) {
pComboBox->AddString(wsLabelArray[i].AsStringC());
}
CFX_Int32Array iSelArray;
m_pDataAcc->GetSelectedItems(iSelArray);
int32_t iSelCount = iSelArray.GetSize();
if (iSelCount > 0) {
pComboBox->SetCurSel(iSelArray[0]);
} else {
CFX_WideString wsText;
m_pDataAcc->GetValue(wsText, XFA_VALUEPICTURE_Raw);
pComboBox->SetEditText(wsText);
}
UpdateWidgetProperty();
m_pNormalWidget->UnlockUpdate();
return CXFA_FFField::LoadWidget();
}
示例6: GetParent
void IFWL_Widget::GetMatrix(CFX_Matrix& matrix, bool bGlobal) {
if (!m_pProperties)
return;
if (!bGlobal) {
matrix.SetIdentity();
return;
}
IFWL_Widget* parent = GetParent();
CFX_ArrayTemplate<IFWL_Widget*> parents;
while (parent) {
parents.Add(parent);
parent = parent->GetParent();
}
matrix.SetIdentity();
CFX_Matrix ctmOnParent;
CFX_RectF rect;
int32_t count = parents.GetSize();
for (int32_t i = count - 2; i >= 0; i--) {
parent = parents.GetAt(i);
parent->GetMatrix(ctmOnParent, false);
parent->GetWidgetRect(rect);
matrix.Concat(ctmOnParent, true);
matrix.Translate(rect.left, rect.top, true);
}
CFX_Matrix m;
m.SetIdentity();
matrix.Concat(m, true);
parents.RemoveAll();
}
示例7: DoMouseEx
FX_BOOL CFWL_NoteDriver::DoMouseEx(CFWL_MsgMouse* pMsg,
IFWL_Widget* pMessageForm) {
CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr());
if (!pWidgetMgr)
return FALSE;
IFWL_Widget* pTarget = NULL;
if (m_pGrab)
pTarget = m_pGrab;
if (!pTarget) {
pTarget =
pWidgetMgr->GetWidgetAtPoint(pMessageForm, pMsg->m_fx, pMsg->m_fy);
while (pTarget && pTarget->GetClassID() == FWL_CLASSHASH_Grid) {
pTarget = pTarget->GetParent();
}
}
if (pTarget) {
if (pMessageForm != pTarget) {
pMessageForm->TransformTo(pTarget, pMsg->m_fx, pMsg->m_fy);
}
}
if (!pTarget)
return FALSE;
pMsg->m_pDstTarget = pTarget;
return TRUE;
}
示例8: rect
FWL_Error CFWL_WidgetMgr::RepaintWidget(IFWL_Widget* pWidget,
const CFX_RectF* pRect) {
if (!m_pAdapter)
return FWL_Error::Indefinite;
IFWL_Widget* pNative = pWidget;
CFX_RectF rect(*pRect);
if (IsFormDisabled()) {
IFWL_Widget* pOuter = pWidget->GetOuter();
while (pOuter) {
CFX_RectF rtTemp;
pNative->GetWidgetRect(rtTemp);
rect.left += rtTemp.left;
rect.top += rtTemp.top;
pNative = pOuter;
pOuter = pOuter->GetOuter();
}
} else if (!IsAbleNative(pWidget)) {
pNative = GetSystemFormWidget(pWidget);
if (!pNative)
return FWL_Error::Indefinite;
pWidget->TransformTo(pNative, rect.left, rect.top);
}
AddRedrawCounts(pNative);
return m_pAdapter->RepaintWidget(pNative, &rect);
}
示例9: GetOwner
void IFWL_ComboList::ClientToOuter(FX_FLOAT& fx, FX_FLOAT& fy) {
fx += m_pProperties->m_rtWidget.left, fy += m_pProperties->m_rtWidget.top;
IFWL_Widget* pOwner = GetOwner();
if (!pOwner)
return;
pOwner->TransformTo(m_pOuter, fx, fy);
}
示例10: MouseSecondary
void CFWL_NoteDriver::MouseSecondary(CFWL_MsgMouse* pMsg) {
IFWL_Widget* pTarget = pMsg->m_pDstTarget;
if (pTarget == m_pHover) {
return;
}
if (m_pHover) {
CFWL_MsgMouse msLeave;
msLeave.m_pDstTarget = m_pHover;
msLeave.m_fx = pMsg->m_fx;
msLeave.m_fy = pMsg->m_fy;
pTarget->TransformTo(m_pHover, msLeave.m_fx, msLeave.m_fy);
msLeave.m_dwFlags = 0;
msLeave.m_dwCmd = FWL_MSGMOUSECMD_MouseLeave;
DispatchMessage(&msLeave, NULL);
}
if (pTarget->GetClassID() == FWL_CLASSHASH_Form) {
m_pHover = NULL;
return;
}
m_pHover = pTarget;
CFWL_MsgMouse msHover;
msHover.m_pDstTarget = pTarget;
msHover.m_fx = pMsg->m_fx;
msHover.m_fy = pMsg->m_fy;
msHover.m_dwFlags = 0;
msHover.m_dwCmd = FWL_MSGMOUSECMD_MouseHover;
DispatchMessage(&msHover, NULL);
}
示例11:
CXFA_FFListBox::~CXFA_FFListBox() {
if (m_pNormalWidget) {
IFWL_Widget* pWidget = m_pNormalWidget->GetWidget();
CFWL_NoteDriver* pNoteDriver = pWidget->GetOwnerApp()->GetNoteDriver();
pNoteDriver->UnregisterEventTarget(pWidget);
}
}
示例12: XFA_ThemeGetOuterWidget
CXFA_FFWidget* XFA_ThemeGetOuterWidget(IFWL_Widget* pWidget) {
IFWL_Widget* pOuter = pWidget;
while (pOuter && pOuter->GetOuter())
pOuter = pOuter->GetOuter();
return pOuter ? static_cast<CXFA_FFWidget*>(pOuter->GetLayoutItem())
: nullptr;
}
示例13: while
IFWL_Widget* IFWL_Widget::GetRootOuter() {
IFWL_Widget* pRet = m_pOuter;
if (!pRet)
return nullptr;
while (IFWL_Widget* pOuter = pRet->GetOuter())
pRet = pOuter;
return pRet;
}
示例14: FWL_SetChildThemeID
static void FWL_SetChildThemeID(IFWL_Widget* pParent, uint32_t dwThemeID) {
CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance();
IFWL_Widget* pChild = pWidgetMgr->GetFirstChildWidget(pParent);
while (pChild) {
IFWL_ThemeProvider* pTheme = pChild->GetThemeProvider();
if (pTheme) {
pTheme->SetThemeID(pChild, dwThemeID, FALSE);
}
FWL_SetChildThemeID(pChild, dwThemeID);
pChild = pWidgetMgr->GetNextSiblingWidget(pChild);
}
}
示例15: while
void CFWL_WidgetMgrDelegate::DrawChild(IFWL_Widget* parent,
const CFX_RectF& rtClip,
CFX_Graphics* pGraphics,
const CFX_Matrix* pMatrix) {
if (!parent)
return;
FX_BOOL bFormDisable = m_pWidgetMgr->IsFormDisabled();
IFWL_Widget* pNextChild = m_pWidgetMgr->GetFirstChildWidget(parent);
while (pNextChild) {
IFWL_Widget* child = pNextChild;
pNextChild = m_pWidgetMgr->GetNextSiblingWidget(child);
if (child->GetStates() & FWL_WGTSTATE_Invisible)
continue;
CFX_RectF rtWidget;
child->GetWidgetRect(rtWidget);
if (rtWidget.IsEmpty())
continue;
CFX_Matrix widgetMatrix;
CFX_RectF clipBounds(rtWidget);
if (!bFormDisable)
child->GetMatrix(widgetMatrix, TRUE);
if (pMatrix)
widgetMatrix.Concat(*pMatrix);
if (!bFormDisable) {
widgetMatrix.TransformPoint(clipBounds.left, clipBounds.top);
clipBounds.Intersect(rtClip);
if (clipBounds.IsEmpty())
continue;
pGraphics->SaveGraphState();
pGraphics->SetClipRect(clipBounds);
}
widgetMatrix.Translate(rtWidget.left, rtWidget.top, TRUE);
IFWL_WidgetDelegate* pDelegate = child->SetDelegate(nullptr);
if (pDelegate) {
if (m_pWidgetMgr->IsFormDisabled() ||
IsNeedRepaint(child, &widgetMatrix, rtClip)) {
pDelegate->OnDrawWidget(pGraphics, &widgetMatrix);
}
}
if (!bFormDisable)
pGraphics->RestoreGraphState();
DrawChild(child, clipBounds, pGraphics,
bFormDisable ? &widgetMatrix : pMatrix);
child = m_pWidgetMgr->GetNextSiblingWidget(child);
}
}