
Jaakko Salli This patch modifies datectlg.cpp's wxDropdownButton in such manner that it should be much easier to convert it into a generic drop button class. Also, it is now more universal in the respect that it should work on platforms other than wxMSW and wxGTK (wxBitmapButton being prime prerequisite). Plus there are some bug fixes for wxDatePickerCtrlGeneric. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33652 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
112 lines
3.6 KiB
C++
112 lines
3.6 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: generic/datectrl.h
|
|
// Purpose: generic wxDatePickerCtrl implementation
|
|
// Author: Andreas Pflug
|
|
// Modified by:
|
|
// Created: 2005-01-19
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) 2005 Andreas Pflug <pgadmin@pse-consulting.de>
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GENERIC_DATECTRL_H_
|
|
#define _WX_GENERIC_DATECTRL_H_
|
|
|
|
class WXDLLIMPEXP_ADV wxButton;
|
|
class WXDLLIMPEXP_ADV wxCalendarDateAttr;
|
|
class WXDLLIMPEXP_ADV wxCalendarCtrl;
|
|
class WXDLLIMPEXP_ADV wxCalendarEvent;
|
|
class WXDLLIMPEXP_ADV wxDatePopup;
|
|
class WXDLLIMPEXP_ADV wxTextCtrl;
|
|
|
|
class WXDLLIMPEXP_ADV wxDatePopupInternal;
|
|
|
|
class WXDLLIMPEXP_ADV wxDatePickerCtrlGeneric : public wxDatePickerCtrlBase
|
|
{
|
|
public:
|
|
// creating the control
|
|
wxDatePickerCtrlGeneric() { Init(); }
|
|
wxDatePickerCtrlGeneric(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxDateTime& date = wxDefaultDateTime,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxDP_DEFAULT | wxDP_SHOWCENTURY,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxDatePickerCtrlNameStr)
|
|
{
|
|
Init();
|
|
|
|
(void)Create(parent, id, date, pos, size, style, validator, name);
|
|
}
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxDateTime& date = wxDefaultDateTime,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxDP_DEFAULT | wxDP_SHOWCENTURY,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxDatePickerCtrlNameStr);
|
|
|
|
// wxDatePickerCtrl methods
|
|
void SetValue(const wxDateTime& date);
|
|
wxDateTime GetValue() const;
|
|
|
|
bool GetRange(wxDateTime *dt1, wxDateTime *dt2) const;
|
|
void SetRange(const wxDateTime &dt1, const wxDateTime &dt2);
|
|
|
|
bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime,
|
|
const wxDateTime& upperdate = wxDefaultDateTime);
|
|
|
|
// extra methods available only in this (generic) implementation
|
|
bool SetFormat(const wxChar *fmt);
|
|
wxCalendarCtrl *GetCalendar() const { return m_cal; }
|
|
|
|
|
|
// implementation only from now on
|
|
// -------------------------------
|
|
|
|
// overridden base class methods
|
|
virtual bool Destroy();
|
|
|
|
virtual bool Enable(bool enable = true);
|
|
virtual bool Show(bool show = true);
|
|
|
|
protected:
|
|
virtual wxSize DoGetBestSize() const;
|
|
virtual void DoMoveWindow(int x, int y, int width, int height);
|
|
|
|
private:
|
|
void Init();
|
|
void DropDown(bool down = true);
|
|
|
|
void OnText(wxCommandEvent &event);
|
|
void OnEditKey(wxKeyEvent & event);
|
|
void OnCalKey(wxKeyEvent & event);
|
|
void OnClick(wxCommandEvent &event);
|
|
void OnSelChange(wxCalendarEvent &event);
|
|
void OnSetFocus(wxFocusEvent &event);
|
|
void OnKillFocus(wxFocusEvent &event);
|
|
void OnChildSetFocus(wxChildFocusEvent &event);
|
|
void OnSize(wxSizeEvent& event);
|
|
|
|
|
|
wxDatePopupInternal *m_popup;
|
|
wxTextCtrl *m_txt;
|
|
wxCalendarCtrl *m_cal;
|
|
wxButton *m_btn;
|
|
wxString m_format;
|
|
wxDateTime m_currentDate;
|
|
|
|
bool m_dropped,
|
|
m_ignoreDrop;
|
|
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
DECLARE_NO_COPY_CLASS(wxDatePickerCtrlGeneric)
|
|
};
|
|
|
|
#endif // _WX_GENERIC_DATECTRL_H_
|
|
|