1///////////////////////////////////////////////////////////////////////////////
2// Name:        msw/caret.h
3// Purpose:     wxCaret class - the MSW implementation of wxCaret
4// Author:      Vadim Zeitlin
5// Modified by:
6// Created:     23.05.99
7// RCS-ID:      $Id: caret.h 35650 2005-09-23 12:56:45Z MR $
8// Copyright:   (c) wxWidgets team
9// Licence:     wxWindows licence
10///////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_CARET_H_
13#define _WX_CARET_H_
14
15class WXDLLEXPORT wxCaret : public wxCaretBase
16{
17public:
18    wxCaret() { Init(); }
19        // create the caret of given (in pixels) width and height and associate
20        // with the given window
21    wxCaret(wxWindow *window, int width, int height)
22    {
23        Init();
24
25        (void)Create(window, width, height);
26    }
27        // same as above
28    wxCaret(wxWindowBase *window, const wxSize& size)
29    {
30        Init();
31
32        (void)Create(window, size);
33    }
34
35    // process wxWindow notifications
36    virtual void OnSetFocus();
37    virtual void OnKillFocus();
38
39protected:
40    void Init()
41    {
42        wxCaretBase::Init();
43
44        m_hasCaret = false;
45    }
46
47    // override base class virtuals
48    virtual void DoMove();
49    virtual void DoShow();
50    virtual void DoHide();
51    virtual void DoSize();
52
53    // helper function which creates the system caret
54    bool MSWCreateCaret();
55
56private:
57    bool m_hasCaret;
58
59    DECLARE_NO_COPY_CLASS(wxCaret)
60};
61
62#endif // _WX_CARET_H_
63
64
65