renamed generic version to wxDatePickerCtrlGeneric to allow using it alongside the native one

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31538 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-01-21 13:44:01 +00:00
parent d98766152b
commit 7ae712f566
3 changed files with 100 additions and 70 deletions

View File

@@ -70,6 +70,26 @@ public:
#include "wx/msw/datectrl.h"
#else
#include "wx/generic/datectrl.h"
class WXDLLIMPEXP_ADV wxDatePickerCtrl : public wxDatePickerCtrlGeneric
{
public:
wxDatePickerCtrl() { }
wxDatePickerCtrl(wxWindow *parent,
wxWindowID id,
const wxDateTime& date = wxDefaultDateTime,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxDP_DEFAULT | wxDP_SHOWCENTURY,
const wxString& name = wxDatePickerCtrlNameStr)
: wxDatePickerCtrlGeneric(parent, id, date, pos, size, style, name)
{
}
private:
DECLARE_DYNAMIC_CLASS(wxDatePickerCtrl)
DECLARE_NO_COPY_CLASS(wxDatePickerCtrl)
};
#endif
#endif // _WX_DATECTRL_H_

View File

@@ -17,18 +17,23 @@ class WXDLLIMPEXP_ADV wxCalendarCtrl;
class WXDLLIMPEXP_ADV wxCalendarEvent;
class WXDLLIMPEXP_ADV wxPopupWindow;
class WXDLLIMPEXP_ADV wxDatePickerCtrl : public wxDatePickerCtrlBase
class WXDLLIMPEXP_ADV wxDatePickerCtrlGeneric : public wxDatePickerCtrlBase
{
public:
// creating the control
wxDatePickerCtrl() { Init(); }
wxDatePickerCtrl(wxWindow *parent,
wxWindowID id,
const wxDateTime& date = wxDefaultDateTime,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxDP_DEFAULT | wxDP_SHOWCENTURY,
const wxString& name = wxDatePickerCtrlNameStr);
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 wxString& name = wxDatePickerCtrlNameStr)
{
Init();
(void)Create(parent, id, date, pos, size, style, name);
}
bool Create(wxWindow *parent,
wxWindowID id,
@@ -87,9 +92,8 @@ private:
void OnKillFocus(wxFocusEvent &ev);
void OnChildSetFocus(wxChildFocusEvent &ev);
DECLARE_DYNAMIC_CLASS(wxDatePickerCtrl)
DECLARE_EVENT_TABLE()
DECLARE_NO_COPY_CLASS(wxDatePickerCtrl)
DECLARE_NO_COPY_CLASS(wxDatePickerCtrlGeneric)
};
#endif // _WX_GENERIC_DATECTRL_H_

View File

@@ -1,6 +1,6 @@
/////////////////////////////////////////////////////////////////////////////
// Name: generic/datectlg.cpp
// Purpose: generic wxDatePickerCtrl implementation
// Purpose: generic wxDatePickerCtrlGeneric implementation
// Author: Andreas Pflug
// Modified by:
// Created: 2005-01-19
@@ -23,6 +23,16 @@
#pragma hdrstop
#endif
#if wxUSE_DATEPICKCTRL
#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
#define HAS_NATIVE_VERSION
#endif
// use this version if we're explicitly requested to do it or if it's the only
// one we have
#if wxUSE_DATEPICKCTRL_GENERIC || !defined(HAS_NATIVE_VERSION)
#ifndef WX_PRECOMP
#include "wx/bmpbuttn.h"
#include "wx/dialog.h"
@@ -32,7 +42,11 @@
#include "wx/valtext.h"
#endif
#define _WX_DEFINE_DATE_EVENTS_
// otherwise it's defined in the native version implementation
#ifndef HAS_NATIVE_VERSION
#define _WX_DEFINE_DATE_EVENTS_
#endif
#include "wx/dateevt.h"
#include "wx/datectrl.h"
@@ -56,13 +70,13 @@ enum
#endif
// ============================================================================
// wxDatePickerCtrl implementation
// wxDatePickerCtrlGeneric implementation
// ============================================================================
BEGIN_EVENT_TABLE(wxDatePickerCtrl, wxDatePickerCtrlBase)
EVT_BUTTON(CTRLID_BTN, wxDatePickerCtrl::OnClick)
EVT_TEXT(CTRLID_TXT, wxDatePickerCtrl::OnText)
EVT_CHILD_FOCUS(wxDatePickerCtrl::OnChildSetFocus)
BEGIN_EVENT_TABLE(wxDatePickerCtrlGeneric, wxDatePickerCtrlBase)
EVT_BUTTON(CTRLID_BTN, wxDatePickerCtrlGeneric::OnClick)
EVT_TEXT(CTRLID_TXT, wxDatePickerCtrlGeneric::OnText)
EVT_CHILD_FOCUS(wxDatePickerCtrlGeneric::OnChildSetFocus)
END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS(wxDatePickerCtrl, wxDatePickerCtrlBase)
@@ -71,26 +85,13 @@ IMPLEMENT_DYNAMIC_CLASS(wxDatePickerCtrl, wxDatePickerCtrlBase)
// creation
// ----------------------------------------------------------------------------
wxDatePickerCtrl::wxDatePickerCtrl(wxWindow *parent,
wxWindowID id,
const wxDateTime& date,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString& name)
{
Init();
Create(parent, id, date, pos, size, style, name);
}
bool wxDatePickerCtrl::Create(wxWindow *parent,
wxWindowID id,
const wxDateTime& date,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString& name)
bool wxDatePickerCtrlGeneric::Create(wxWindow *parent,
wxWindowID id,
const wxDateTime& date,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString& name)
{
wxASSERT_MSG( !(style & wxDP_SPIN),
_T("wxDP_SPIN style not supported, use wxDP_DEFAULT") );
@@ -124,10 +125,10 @@ bool wxDatePickerCtrl::Create(wxWindow *parent,
m_txt=new wxTextCtrl(this, CTRLID_TXT);
m_txt->Connect(wxID_ANY, wxID_ANY, wxEVT_KEY_DOWN,
(wxObjectEventFunction)&wxDatePickerCtrl::OnEditKey,
(wxObjectEventFunction)&wxDatePickerCtrlGeneric::OnEditKey,
0, this);
m_txt->Connect(wxID_ANY, wxID_ANY, wxEVT_KILL_FOCUS,
(wxObjectEventFunction)&wxDatePickerCtrl::OnKillFocus,
(wxObjectEventFunction)&wxDatePickerCtrlGeneric::OnKillFocus,
0, this);
m_btn = new wxBitmapButton(this, CTRLID_BTN, bmp);
@@ -142,28 +143,28 @@ bool wxDatePickerCtrl::Create(wxWindow *parent,
wxPoint(0,0), wxDefaultSize,
wxCAL_SHOW_HOLIDAYS | wxSUNKEN_BORDER);
m_cal->Connect(CTRLID_CAL, CTRLID_CAL, wxEVT_CALENDAR_SEL_CHANGED,
(wxObjectEventFunction)&wxDatePickerCtrl::OnSelChange,
(wxObjectEventFunction)&wxDatePickerCtrlGeneric::OnSelChange,
0, this);
m_cal->Connect(wxID_ANY, wxID_ANY, wxEVT_KEY_DOWN,
(wxObjectEventFunction)&wxDatePickerCtrl::OnCalKey,
(wxObjectEventFunction)&wxDatePickerCtrlGeneric::OnCalKey,
0, this);
m_cal->Connect(CTRLID_CAL, CTRLID_CAL, wxEVT_CALENDAR_DOUBLECLICKED,
(wxObjectEventFunction)&wxDatePickerCtrl::OnSelChange,
(wxObjectEventFunction)&wxDatePickerCtrlGeneric::OnSelChange,
0, this);
m_cal->Connect(CTRLID_CAL, CTRLID_CAL, wxEVT_CALENDAR_DAY_CHANGED,
(wxObjectEventFunction)&wxDatePickerCtrl::OnSelChange,
(wxObjectEventFunction)&wxDatePickerCtrlGeneric::OnSelChange,
0, this);
m_cal->Connect(CTRLID_CAL, CTRLID_CAL, wxEVT_CALENDAR_MONTH_CHANGED,
(wxObjectEventFunction)&wxDatePickerCtrl::OnSelChange,
(wxObjectEventFunction)&wxDatePickerCtrlGeneric::OnSelChange,
0, this);
m_cal->Connect(CTRLID_CAL, CTRLID_CAL, wxEVT_CALENDAR_YEAR_CHANGED,
(wxObjectEventFunction)&wxDatePickerCtrl::OnSelChange,
(wxObjectEventFunction)&wxDatePickerCtrlGeneric::OnSelChange,
0, this);
wxWindow *yearControl = m_cal->GetYearControl();
Connect(wxID_ANY, wxID_ANY, wxEVT_SET_FOCUS,
(wxObjectEventFunction)&wxDatePickerCtrl::OnSetFocus);
(wxObjectEventFunction)&wxDatePickerCtrlGeneric::OnSetFocus);
wxClientDC dc(yearControl);
dc.SetFont(m_font);
@@ -214,7 +215,7 @@ bool wxDatePickerCtrl::Create(wxWindow *parent,
}
void wxDatePickerCtrl::Init()
void wxDatePickerCtrlGeneric::Init()
{
m_popup = NULL;
m_txt = NULL;
@@ -226,7 +227,7 @@ void wxDatePickerCtrl::Init()
}
bool wxDatePickerCtrl::Destroy()
bool wxDatePickerCtrlGeneric::Destroy()
{
if (m_cal)
m_cal->Destroy();
@@ -249,7 +250,7 @@ bool wxDatePickerCtrl::Destroy()
// overridden base class methods
// ----------------------------------------------------------------------------
void wxDatePickerCtrl::DoMoveWindow(int x, int y, int w, int h)
void wxDatePickerCtrlGeneric::DoMoveWindow(int x, int y, int w, int h)
{
wxControl::DoMoveWindow(x, y, w, h);
wxSize bs=m_btn->GetBestSize();
@@ -262,7 +263,7 @@ void wxDatePickerCtrl::DoMoveWindow(int x, int y, int w, int h)
DropDown();
}
wxSize wxDatePickerCtrl::DoGetBestSize() const
wxSize wxDatePickerCtrlGeneric::DoGetBestSize() const
{
int bh=m_btn->GetBestSize().y;
int eh=m_txt->GetBestSize().y;
@@ -270,7 +271,7 @@ wxSize wxDatePickerCtrl::DoGetBestSize() const
}
bool wxDatePickerCtrl::Show(bool show)
bool wxDatePickerCtrlGeneric::Show(bool show)
{
if ( !wxControl::Show(show) )
{
@@ -290,7 +291,7 @@ bool wxDatePickerCtrl::Show(bool show)
}
bool wxDatePickerCtrl::Enable(bool enable)
bool wxDatePickerCtrlGeneric::Enable(bool enable)
{
if ( !wxControl::Enable(enable) )
{
@@ -308,17 +309,17 @@ bool wxDatePickerCtrl::Enable(bool enable)
}
// ----------------------------------------------------------------------------
// wxDatePickerCtrl API
// wxDatePickerCtrlGeneric API
// ----------------------------------------------------------------------------
bool
wxDatePickerCtrl::SetDateRange(const wxDateTime& lowerdate,
const wxDateTime& upperdate)
wxDatePickerCtrlGeneric::SetDateRange(const wxDateTime& lowerdate,
const wxDateTime& upperdate)
{
return m_cal->SetDateRange(lowerdate, upperdate);
}
bool wxDatePickerCtrl::SetFormat(const wxChar *fmt)
bool wxDatePickerCtrlGeneric::SetFormat(const wxChar *fmt)
{
wxString currentText;
wxDateTime currentDate;
@@ -388,7 +389,7 @@ bool wxDatePickerCtrl::SetFormat(const wxChar *fmt)
}
wxDateTime wxDatePickerCtrl::GetValue() const
wxDateTime wxDatePickerCtrlGeneric::GetValue() const
{
wxDateTime dt;
wxString txt=m_txt->GetValue();
@@ -400,7 +401,7 @@ wxDateTime wxDatePickerCtrl::GetValue() const
}
void wxDatePickerCtrl::SetValue(const wxDateTime& date)
void wxDatePickerCtrlGeneric::SetValue(const wxDateTime& date)
{
if (m_cal)
{
@@ -412,7 +413,7 @@ void wxDatePickerCtrl::SetValue(const wxDateTime& date)
}
bool wxDatePickerCtrl::GetRange(wxDateTime *dt1, wxDateTime *dt2) const
bool wxDatePickerCtrlGeneric::GetRange(wxDateTime *dt1, wxDateTime *dt2) const
{
if (dt1)
*dt1 = m_cal->GetLowerDateLimit();
@@ -422,7 +423,8 @@ bool wxDatePickerCtrl::GetRange(wxDateTime *dt1, wxDateTime *dt2) const
}
void wxDatePickerCtrl::SetRange(const wxDateTime &dt1, const wxDateTime &dt2)
void
wxDatePickerCtrlGeneric::SetRange(const wxDateTime &dt1, const wxDateTime &dt2)
{
m_cal->SetDateRange(dt1, dt2);
}
@@ -431,7 +433,7 @@ void wxDatePickerCtrl::SetRange(const wxDateTime &dt1, const wxDateTime &dt2)
// event handlers
// ----------------------------------------------------------------------------
void wxDatePickerCtrl::DropDown(bool down)
void wxDatePickerCtrlGeneric::DropDown(bool down)
{
if (m_popup)
{
@@ -461,7 +463,7 @@ void wxDatePickerCtrl::DropDown(bool down)
}
void wxDatePickerCtrl::OnChildSetFocus(wxChildFocusEvent &ev)
void wxDatePickerCtrlGeneric::OnChildSetFocus(wxChildFocusEvent &ev)
{
ev.Skip();
m_ignoreDrop = false;
@@ -483,7 +485,7 @@ void wxDatePickerCtrl::OnChildSetFocus(wxChildFocusEvent &ev)
}
void wxDatePickerCtrl::OnClick(wxCommandEvent& event)
void wxDatePickerCtrlGeneric::OnClick(wxCommandEvent& event)
{
if (m_ignoreDrop)
{
@@ -498,7 +500,7 @@ void wxDatePickerCtrl::OnClick(wxCommandEvent& event)
}
void wxDatePickerCtrl::OnSetFocus(wxFocusEvent &ev)
void wxDatePickerCtrlGeneric::OnSetFocus(wxFocusEvent &ev)
{
if (m_txt)
{
@@ -508,7 +510,7 @@ void wxDatePickerCtrl::OnSetFocus(wxFocusEvent &ev)
}
void wxDatePickerCtrl::OnKillFocus(wxFocusEvent &ev)
void wxDatePickerCtrlGeneric::OnKillFocus(wxFocusEvent &ev)
{
ev.Skip();
@@ -521,7 +523,7 @@ void wxDatePickerCtrl::OnKillFocus(wxFocusEvent &ev)
}
void wxDatePickerCtrl::OnSelChange(wxCalendarEvent &ev)
void wxDatePickerCtrlGeneric::OnSelChange(wxCalendarEvent &ev)
{
if (m_cal)
{
@@ -538,7 +540,7 @@ void wxDatePickerCtrl::OnSelChange(wxCalendarEvent &ev)
}
void wxDatePickerCtrl::OnText(wxCommandEvent &ev)
void wxDatePickerCtrlGeneric::OnText(wxCommandEvent &ev)
{
ev.SetEventObject(this);
ev.SetId(GetId());
@@ -564,7 +566,7 @@ void wxDatePickerCtrl::OnText(wxCommandEvent &ev)
}
void wxDatePickerCtrl::OnEditKey(wxKeyEvent & ev)
void wxDatePickerCtrlGeneric::OnEditKey(wxKeyEvent & ev)
{
if (ev.GetKeyCode() == WXK_DOWN && !ev.HasModifiers())
DropDown();
@@ -573,7 +575,7 @@ void wxDatePickerCtrl::OnEditKey(wxKeyEvent & ev)
}
void wxDatePickerCtrl::OnCalKey(wxKeyEvent & ev)
void wxDatePickerCtrlGeneric::OnCalKey(wxKeyEvent & ev)
{
if (ev.GetKeyCode() == WXK_ESCAPE && !ev.HasModifiers())
DropDown(false);
@@ -581,3 +583,7 @@ void wxDatePickerCtrl::OnCalKey(wxKeyEvent & ev)
ev.Skip();
}
#endif // wxUSE_DATEPICKCTRL_GENERIC
#endif // wxUSE_DATEPICKCTRL