libyui  3.3.1
YEventFilter.cc
1 /*
2  Copyright (C) 2000-2012 Novell, Inc
3  This library is free software; you can redistribute it and/or modify
4  it under the terms of the GNU Lesser General Public License as
5  published by the Free Software Foundation; either version 2.1 of the
6  License, or (at your option) version 3.0 of the License. This library
7  is distributed in the hope that it will be useful, but WITHOUT ANY
8  WARRANTY; without even the implied warranty of MERCHANTABILITY or
9  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
10  License for more details. You should have received a copy of the GNU
11  Lesser General Public License along with this library; if not, write
12  to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
13  Floor, Boston, MA 02110-1301 USA
14 */
15 
16 
17 /*-/
18 
19  File: YEventFilter.cc
20 
21  Author: Stefan Hundhammer <sh@suse.de>
22 
23 /-*/
24 
25 
26 #include "YEventFilter.h"
27 #include "YEvent.h"
28 #include "YDialog.h"
29 #include "YUIException.h"
30 
31 
33 {
34  YEventFilterPrivate( YDialog * dialog )
35  : dialog( dialog )
36  {}
37 
38  YDialog * dialog;
39 };
40 
41 
42 
43 
45  : priv( new YEventFilterPrivate( dialog ) )
46 {
47  YUI_CHECK_NEW( priv );
48 
49  if ( ! dialog )
50  priv->dialog = YDialog::currentDialog(); // throw if no dialog
51 
52  priv->dialog->addEventFilter( this );
53 }
54 
55 
57 {
58  priv->dialog->removeEventFilter( this );
59 }
60 
61 
62 YDialog *
64 {
65  return priv->dialog;
66 }
virtual ~YEventFilter()
Destructor.
Definition: YEventFilter.cc:56
YEventFilter(YDialog *dialog=0)
Constructor.
Definition: YEventFilter.cc:44
void removeEventFilter(YEventFilter *eventFilter)
Remove an event filter.
Definition: YDialog.cc:622
YDialog * dialog() const
Return the dialog this event filter belongs to.
Definition: YEventFilter.cc:63
static YDialog * currentDialog(bool doThrow=true)
Return the current (topmost) dialog.
Definition: YDialog.cc:531
void addEventFilter(YEventFilter *eventFilter)
Add an event filter.
Definition: YDialog.cc:600
A window in the desktop environment.
Definition: YDialog.h:47