]> git.saurik.com Git - wxWidgets.git/blame_incremental - src/univ/inpcons.cpp
fixed crash under GTK+ 2.0
[wxWidgets.git] / src / univ / inpcons.cpp
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: src/univ/inpcons.cpp
3// Purpose: wxInputConsumer: mix-in class for input handling
4// Author: Vadim Zeitlin
5// Modified by:
6// Created: 14.08.00
7// RCS-ID: $Id$
8// Copyright: (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
9// Licence: wxWindows license
10/////////////////////////////////////////////////////////////////////////////
11
12// ============================================================================
13// declarations
14// ============================================================================
15
16#ifdef __GNUG__
17 #pragma implementation "inpcons.h"
18#endif
19
20// ----------------------------------------------------------------------------
21// headers
22// ----------------------------------------------------------------------------
23
24#include "wx/wxprec.h"
25
26#ifdef __BORLANDC__
27 #pragma hdrstop
28#endif
29
30#include "wx/univ/renderer.h"
31#include "wx/univ/inphand.h"
32#include "wx/univ/theme.h"
33
34// ============================================================================
35// implementation
36// ============================================================================
37
38// ----------------------------------------------------------------------------
39// focus/activation handling
40// ----------------------------------------------------------------------------
41
42void wxInputConsumer::OnFocus(wxFocusEvent& event)
43{
44 if ( m_inputHandler && m_inputHandler->HandleFocus(this, event) )
45 GetInputWindow()->Refresh();
46 else
47 event.Skip();
48}
49
50void wxInputConsumer::OnActivate(wxActivateEvent& event)
51{
52 if ( m_inputHandler && m_inputHandler->HandleActivation(this, event.GetActive()) )
53 GetInputWindow()->Refresh();
54 else
55 event.Skip();
56}
57
58// ----------------------------------------------------------------------------
59// input processing
60// ----------------------------------------------------------------------------
61
62void wxInputConsumer::CreateInputHandler(const wxString& inphandler)
63{
64 m_inputHandler = wxTheme::Get()->GetInputHandler(inphandler);
65}
66
67void wxInputConsumer::OnKeyDown(wxKeyEvent& event)
68{
69 if ( !m_inputHandler || !m_inputHandler->HandleKey(this, event, TRUE) )
70 event.Skip();
71}
72
73void wxInputConsumer::OnKeyUp(wxKeyEvent& event)
74{
75 if ( !m_inputHandler || !m_inputHandler->HandleKey(this, event, FALSE) )
76 event.Skip();
77}
78
79void wxInputConsumer::OnMouse(wxMouseEvent& event)
80{
81 if ( m_inputHandler )
82 {
83 if ( event.Moving() || event.Entering() || event.Leaving() )
84 {
85 if ( m_inputHandler->HandleMouseMove(this, event) )
86 return;
87 }
88 else // a click action
89 {
90 if ( m_inputHandler->HandleMouse(this, event) )
91 return;
92 }
93 }
94
95 event.Skip();
96}
97
98// ----------------------------------------------------------------------------
99// the actions
100// ----------------------------------------------------------------------------
101
102bool wxInputConsumer::PerformAction(const wxControlAction& action,
103 long numArg,
104 const wxString& strArg)
105{
106 return FALSE;
107}
108