FWL_ERR CFWL_DateTimePickerImp::DisForm_Update() { if (m_iLock) { return FWL_ERR_Indefinite; } if (!m_pProperties->m_pThemeProvider) { m_pProperties->m_pThemeProvider = GetAvailableTheme(); } m_pEdit->SetThemeProvider(m_pProperties->m_pThemeProvider); GetClientRect(m_rtClient); m_pEdit->SetWidgetRect(m_rtClient); ReSetEditAlignment(); m_pEdit->Update(); if (m_pMonthCal->GetThemeProvider() == NULL) { m_pMonthCal->SetThemeProvider(m_pProperties->m_pThemeProvider); } if (m_pProperties->m_pDataProvider) { IFWL_DateTimePickerDP* pData = static_cast<IFWL_DateTimePickerDP*>(m_pProperties->m_pDataProvider); pData->GetToday(m_pInterface, m_MonthCalendarDP.m_iCurYear, m_MonthCalendarDP.m_iCurMonth, m_MonthCalendarDP.m_iCurDay); } FX_FLOAT* pWidth = static_cast<FX_FLOAT*>(GetThemeCapacity(FWL_WGTCAPACITY_ScrollBarWidth)); if (!pWidth) return 0; m_fBtn = *pWidth; CFX_RectF rtMonthCal; m_pMonthCal->GetWidgetRect(rtMonthCal, TRUE); CFX_RectF rtPopUp; rtPopUp.Set(rtMonthCal.left, rtMonthCal.top + FWL_DTP_HEIGHT, rtMonthCal.width, rtMonthCal.height); m_pMonthCal->SetWidgetRect(rtPopUp); m_pMonthCal->Update(); return FWL_ERR_Succeeded; }
FWL_ERR CFWL_PushButtonImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { if (bAutoSize) { rect.Set(0, 0, 0, 0); if (m_pProperties->m_pThemeProvider == NULL) { m_pProperties->m_pThemeProvider = GetAvailableTheme(); } CFX_WideString wsCaption; IFWL_PushButtonDP* pData = static_cast<IFWL_PushButtonDP*>(m_pProperties->m_pDataProvider); if (pData) { pData->GetCaption(m_pInterface, wsCaption); } int32_t iLen = wsCaption.GetLength(); if (iLen > 0) { CFX_SizeF sz = CalcTextSize(wsCaption, m_pProperties->m_pThemeProvider); rect.Set(0, 0, sz.x, sz.y); } FX_FLOAT* fcaption = static_cast<FX_FLOAT*>(GetThemeCapacity(FWL_WGTCAPACITY_PSB_Margin)); rect.Inflate(*fcaption, *fcaption); CFWL_WidgetImp::GetWidgetRect(rect, TRUE); } else { rect = m_pProperties->m_rtWidget; } return FWL_ERR_Succeeded; }
FX_FLOAT IFWL_Widget::GetBorderSize(bool bCX) { FX_FLOAT* pfBorder = static_cast<FX_FLOAT*>(GetThemeCapacity( bCX ? CFWL_WidgetCapacity::CXBorder : CFWL_WidgetCapacity::CYBorder)); if (!pfBorder) return 0; return *pfBorder; }
void IFWL_DateTimePicker::DisForm_Update() { if (m_iLock) return; if (!m_pProperties->m_pThemeProvider) m_pProperties->m_pThemeProvider = GetAvailableTheme(); m_pEdit->SetThemeProvider(m_pProperties->m_pThemeProvider); GetClientRect(m_rtClient); m_pEdit->SetWidgetRect(m_rtClient); ResetEditAlignment(); m_pEdit->Update(); if (!m_pMonthCal->GetThemeProvider()) m_pMonthCal->SetThemeProvider(m_pProperties->m_pThemeProvider); if (m_pProperties->m_pDataProvider) { IFWL_DateTimePickerDP* pData = static_cast<IFWL_DateTimePickerDP*>(m_pProperties->m_pDataProvider); pData->GetToday(this, m_iCurYear, m_iCurMonth, m_iCurDay); } FX_FLOAT* pWidth = static_cast<FX_FLOAT*>( GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth)); if (!pWidth) return; m_fBtn = *pWidth; CFX_RectF rtMonthCal; m_pMonthCal->GetWidgetRect(rtMonthCal, true); CFX_RectF rtPopUp; rtPopUp.Set(rtMonthCal.left, rtMonthCal.top + kDateTimePickerHeight, rtMonthCal.width, rtMonthCal.height); m_pMonthCal->SetWidgetRect(rtPopUp); m_pMonthCal->Update(); }
FWL_ERR CFWL_PushButtonImp::Update() { if (IsLocked()) { return FWL_ERR_Indefinite; } if (!m_pProperties->m_pThemeProvider) { m_pProperties->m_pThemeProvider = GetAvailableTheme(); } UpdateTextOutStyles(); GetClientRect(m_rtClient); m_rtCaption = m_rtClient; FX_FLOAT* fcaption = static_cast<FX_FLOAT*>(GetThemeCapacity(FWL_WGTCAPACITY_PSB_Margin)); m_rtCaption.Inflate(-*fcaption, -*fcaption); return FWL_ERR_Succeeded; }
FWL_ERR CFWL_ScrollBarImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { if (bAutoSize) { rect.Set(0, 0, 0, 0); FX_FLOAT* pfMinWidth = static_cast<FX_FLOAT*>( GetThemeCapacity(FWL_WGTCAPACITY_ScrollBarWidth)); if (!pfMinWidth) return FWL_ERR_Indefinite; if (IsVertical()) { rect.Set(0, 0, (*pfMinWidth), (*pfMinWidth) * 3); } else { rect.Set(0, 0, (*pfMinWidth) * 3, (*pfMinWidth)); } CFWL_WidgetImp::GetWidgetRect(rect, TRUE); } else { rect = m_pProperties->m_rtWidget; } return FWL_ERR_Succeeded; }
FX_FLOAT IFWL_Widget::GetEdgeWidth() { CFWL_WidgetCapacity dwCapacity = CFWL_WidgetCapacity::None; switch (m_pProperties->m_dwStyles & FWL_WGTSTYLE_EdgeMask) { case FWL_WGTSTYLE_EdgeFlat: { dwCapacity = CFWL_WidgetCapacity::EdgeFlat; break; } case FWL_WGTSTYLE_EdgeRaised: { dwCapacity = CFWL_WidgetCapacity::EdgeRaised; break; } case FWL_WGTSTYLE_EdgeSunken: { dwCapacity = CFWL_WidgetCapacity::EdgeSunken; break; } } if (dwCapacity != CFWL_WidgetCapacity::None) { FX_FLOAT* fRet = static_cast<FX_FLOAT*>(GetThemeCapacity(dwCapacity)); return fRet ? *fRet : 0; } return 0; }