wxWidgets/include/wx/generic/caret.h
1999-05-25 18:01:48 +00:00

69 lines
1.7 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: generic/caret.h
// Purpose: generic wxCaret class
// Author: Vadim Zeitlin (original code by Robert Roebling)
// Modified by:
// Created: 25.05.99
// RCS-ID: $Id$
// Copyright: (c) wxWindows team
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#if 0 //def __GNUG__
#pragma implementation "caret.h"
#endif
#ifndef _WX_CARET_H_
#define _WX_CARET_H_
#include "wx/timer.h"
class wxCaret : public wxCaretBase
{
public:
// ctors
// -----
// default - use Create()
wxCaret() : m_timer(this) { InitGeneric(); }
// creates a block caret associated with the given window
wxCaret(wxWindowBase *window, int width, int height)
: wxCaretBase(window, width, height), m_timer(this) { InitGeneric(); }
wxCaret(wxWindowBase *window, const wxSize& size)
: wxCaretBase(window, size), m_timer(this) { InitGeneric(); }
virtual ~wxCaret();
// implementation
// --------------
// blink the caret once
void Blink();
protected:
virtual void DoShow();
virtual void DoHide();
virtual void DoMove();
// draw the caret on the given DC
void DoDraw(wxDC *dc);
private:
// GTK specific initialization
void InitGeneric();
class CaretTimer : public wxTimer
{
public:
CaretTimer(wxCaret *caret) { m_caret = caret; }
virtual void Notify() { m_caret->Blink(); }
private:
wxCaret *m_caret;
} m_timer;
bool m_blinkedOut; // TRUE => caret hidden right now
};
#endif // _WX_CARET_H_