69 lines
1.7 KiB
C
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_
|