7#ifndef XFA_FWL_CFWL_DATETIMEPICKER_H_
8#define XFA_FWL_CFWL_DATETIMEPICKER_H_
12#include "v8/include/cppgc/member.h"
13#include "xfa/fwl/cfwl_datetimeedit.h"
14#include "xfa/fwl/cfwl_event.h"
15#include "xfa/fwl/cfwl_monthcalendar.h"
16#include "xfa/fwl/cfwl_widget.h"
20#define FWL_STYLEEXT_DTP_ShortDateFormat (1L
<< 1
)
21#define FWL_STYLEEXT_DTP_EditHAlignMask (3L
<< 4
)
22#define FWL_STYLEEXT_DTP_EditHNear (0L
<< 4
)
23#define FWL_STYLEEXT_DTP_EditHCenter (1L
<< 4
)
24#define FWL_STYLEEXT_DTP_EditHFar (2L
<< 4
)
25#define FWL_STYLEEXT_DTP_EditVAlignMask (3L
<< 6
)
26#define FWL_STYLEEXT_DTP_EditVNear (0L
<< 6
)
27#define FWL_STYLEEXT_DTP_EditVCenter (1L
<< 6
)
28#define FWL_STYLEEXT_DTP_EditVFar (2L
<< 6
)
29#define FWL_STYLEEXT_DTP_EditJustified (1L
<< 8
)
31class CFWL_DateTimeEdit;
40 void Trace(cppgc::Visitor* visitor)
const override;
50 void GetCurSel(int32_t& iYear, int32_t& iMonth, int32_t& iDay);
51 void SetCurSel(int32_t iYear, int32_t iMonth, int32_t iDay);
63 return m_pEdit->GetSelection();
76 uint32_t dwStyleExtsRemoved);
84 explicit CFWL_DateTimePicker(CFWL_App* pApp);
88 WideString FormatDateString(int32_t iYear, int32_t iMonth, int32_t iDay);
89 void ResetEditAlignment();
90 void GetPopupPos(
float fMinHeight,
96 void OnLButtonDown(CFWL_MessageMouse* pMsg);
97 void OnLButtonUp(CFWL_MessageMouse* pMsg);
98 void OnMouseMove(CFWL_MessageMouse* pMsg);
99 void OnMouseLeave(CFWL_MessageMouse* pMsg);
100 bool NeedsToShowButton()
const;
101 void RepaintInflatedMonthCalRect();
103 bool m_bLBtnDown =
false;
105 int32_t m_iYear = -1;
106 int32_t m_iMonth = -1;
111 cppgc::Member<CFWL_DateTimeEdit>
const m_pEdit;
112 cppgc::Member<CFWL_MonthCalendar>
const m_pMonthCal;
118using pdfium::CFWL_DateTimePicker;
void Offset(float dx, float dy)
~CFWL_DateTimeEdit() override
void OnProcessMessage(CFWL_Message *pMessage) override
std::optional< WideString > Cut()
bool HasSelection() const
void ModifyEditStyleExts(uint32_t dwStyleExtsAdded, uint32_t dwStyleExtsRemoved)
void SetEditText(const WideString &wsText)
void GetCurSel(int32_t &iYear, int32_t &iMonth, int32_t &iDay)
void DrawWidget(CFGAS_GEGraphics *pGraphics, const CFX_Matrix &matrix) override
void ProcessSelChanged(int32_t iYear, int32_t iMonth, int32_t iDay)
void Trace(cppgc::Visitor *visitor) const override
~CFWL_DateTimePicker() override
void SetEditLimit(int32_t nLimit)
void OnDrawWidget(CFGAS_GEGraphics *pGraphics, const CFX_Matrix &matrix) override
bool IsMonthCalendarVisible() const
FWL_WidgetHit HitTest(const CFX_PointF &point) override
FWL_Type GetClassID() const override
std::pair< size_t, size_t > GetSelection() const
void PreFinalize() override
void SetCurSel(int32_t iYear, int32_t iMonth, int32_t iDay)
bool Paste(const WideString &wsPaste)
WideString GetEditText() const
CFX_RectF GetBBox() const
size_t GetEditTextLength() const
std::optional< WideString > Copy()
void OnProcessMessage(CFWL_Message *pMessage) override
void OnProcessMessage(CFWL_Message *pMessage) override
CFWL_Edit(CFWL_App *app, const Properties &properties, CFWL_Widget *pOuter)
const MouseCommand m_dwCmd
CFX_PTemplate< float > CFX_PointF
#define CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED
fxcrt::WideString WideString