File: timespin.h

package info (click to toggle)
pgadmin3 1.20.0~beta2-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 73,704 kB
  • ctags: 18,591
  • sloc: cpp: 193,786; ansic: 18,736; sh: 5,154; pascal: 1,120; yacc: 927; makefile: 516; lex: 421; xml: 126; perl: 40
file content (135 lines) | stat: -rw-r--r-- 3,378 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// timespin.h - timeSpan SpinCtrl
//
//////////////////////////////////////////////////////////////////////////

#ifndef _WX_TIMESPIN_H_
#define _WX_TIMESPIN_H_

#include "wx/datetime.h"
#include "wx/spinbutt.h"


class wxTimeSpinCtrl : public wxControl
{
public:
	wxTimeSpinCtrl()
	{
		Init();
	}
	wxTimeSpinCtrl(wxWindow *parent,
	               wxWindowID id,
	               const wxPoint &pos = wxDefaultPosition,
	               const wxSize &size = wxDefaultSize,
	               long style = wxWANTS_CHARS, const wxString &name = wxT("wxTimeSpinCtrl"));

	bool Create(wxWindow *parent,
	            wxWindowID id,
	            const wxPoint &pos = wxDefaultPosition,
	            const wxSize &size = wxDefaultSize,
	            long style = wxWANTS_CHARS, const wxString &name = wxT("wxTimeSpinCtrl"));

	bool Destroy();
	bool Enable(bool enable = true);

	void SetMax(long seconds, bool useDay = false);
	bool SetValue(const wxTimeSpan &span);
	bool SetTime(const wxDateTime &time);
	wxTimeSpan GetValue();

private:
	void Init();

	void OnSpinUp(wxSpinEvent &ev);
	void OnSpinDown(wxSpinEvent &ev);
	void OnSpin(wxSpinEvent &ev);
	void OnText(wxCommandEvent &ev);
	void OnSetFocus(wxFocusEvent &ev);
	void OnKillFocus(wxFocusEvent &ev);
	void OnEditKey(wxKeyEvent &ev);
	void OnNavigate(wxNavigationKeyEvent &ev);

	long GetTextTime();
	int  GetTimePart();
	void DoSpin(int diff);
	void Highlight(int tp);

	wxTextCtrl *m_txt;
	wxSpinButton *m_spn;
	wxString m_format;
	long spinValue, maxSpinValue;
	bool canWrap, hasDay;

	wxSize DoGetBestSize() const;
	void OnSize(wxSizeEvent &event);

	DECLARE_DYNAMIC_CLASS(wxTimeSpinCtrl)
	DECLARE_EVENT_TABLE()
	DECLARE_NO_COPY_CLASS(wxTimeSpinCtrl)
};


#if 0
class wxTimeSpinCtrl : public wxSpinCtrl //wxControl
{
public:
	wxTimeSpinCtrl() { }
	wxTimeSpinCtrl(wxWindow *parent,
	               wxWindowID id,
	               const wxDateTime &date = wxDefaultDateTime,
	               const wxPoint &pos = wxDefaultPosition,
	               const wxSize &size = wxDefaultSize,
	               long style = wxWANTS_CHARS, const wxString &name = wxT("wxTimeSpinCtrl"));

	bool Destroy();


	bool Create(wxWindow *parent,
	            wxWindowID id,
	            const wxDateTime &date,
	            const wxPoint &pos,
	            const wxSize &size,
	            long style,
	            const wxString &name);

	bool SetValue(const wxTimeSpan &span);
	wxTimeSpan GetValue();

	virtual bool Enable(bool enable = true);
	virtual bool Show(bool show = true);
	virtual void DoMoveWindow(int x, int y, int width, int height);

private:
	wxTextCtrl *m_txt;
	wxSpinCtrl *m_spn;
	wxButton *m_btn;
	wxString m_format;

	bool m_dropped, m_processing;

	void Init();
	void DropDown(bool down = true);

	void OnEditKey(wxKeyEvent &event);
	void OnCalKey(wxKeyEvent &event);
	void OnClick(wxMouseEvent &ev);
	void OnSelChange(wxCalendarEvent &ev);
	void OnActivate(wxActivateEvent &ev);
	void OnSetFocus(wxFocusEvent &ev);
	void OnKillFocus(wxFocusEvent &ev);

	DECLARE_DYNAMIC_CLASS(wxTimeSpinCtrl)
	DECLARE_EVENT_TABLE()
	DECLARE_NO_COPY_CLASS(wxTimeSpinCtrl)
};
#endif


#endif // _WX_TIMESPIN_H_