gecko-dev/cmd/winfe/dateedit.h
1998-03-28 02:44:41 +00:00

98 lines
2.6 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _DateEdit_h
#define _DateEdit_h
// Requires
#include "widgetry.h"
/////////////////////////////////////////////////////////////////////////////
// CNSDateEdit window
class CNSDateSubedit : public CEdit
{
public:
CNSDateSubedit();
virtual ~CNSDateSubedit();
int SetValue( int nNewValue );
int GetValue( void );
protected:
BOOL PreTranslateMessage( MSG* pMsg );
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnSetFocus(CWnd* pOldWnd);
DECLARE_MESSAGE_MAP()
};
#define NSDE_RELAYEVENT (WM_USER+1)
class CNSDateEdit: public CStatic
{
friend CNSDateSubedit;
public:
CNSDateEdit();
virtual ~CNSDateEdit();
BOOL SetDate( CTime &d );
BOOL SetDate( int nYear, int nMonth, int nDay );
// These two methods return FALSE if the current date is invalid
BOOL GetDate( CTime &d );
BOOL GetDate( int &nYear, int &nMonth, int &nDay );
protected:
void CreateSubWindows( );
void LayoutSubWindows( RECT *pRect );
BOOL OnKeyPress( UINT nKey, UINT nRepCnt, UINT nFlags );
BOOL Validate();
int m_nDay, m_nMonth, m_nYear;
BOOL m_bNeedControls;
CNSDateSubedit m_DayField;
CNSDateSubedit m_MonthField;
CNSDateSubedit m_YearField;
CNSDateSubedit *m_pFields[3];
CSpinButtonCtrl m_wndSpin;
int m_iCurrentField;
CRect m_Sep1;
CRect m_Sep2;
afx_msg void OnPaint();
afx_msg void OnSetFocus(CWnd* pOldWnd);
afx_msg void OnSize( UINT nType, int cx, int cy );
afx_msg void OnEnable( BOOL bEnable );
afx_msg void OnMaxText();
afx_msg void OnFocusDay();
afx_msg void OnFocusMonth();
afx_msg void OnFocusYear();
afx_msg void OnKillFocusDay();
afx_msg void OnKillFocusMonth();
afx_msg void OnKillFocusYear();
afx_msg LRESULT OnRelayEvent(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
#endif