1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
/*
* Copyright (c) 1994 Vectaport Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the names of the copyright holders not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The copyright holders make
* no representations about the suitability of this software for any purpose.
* It is provided "as is" without express or implied warranty.
*
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL,
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
#include <IVGlyph/charfield.h>
#include <InterViews/event.h>
CharFieldEditor::CharFieldEditor(const String& sample, WidgetKit* wk,
Style* s, FieldEditorAction* a)
: FieldEditor(sample, wk, s, a)
{
action_ = a;
}
void CharFieldEditor::keystroke(const Event& e) {
FieldEditor::keystroke(e);
char c;
if (action_ && e.type() == Event::key && e.mapkey(&c, 1) != 0) {
if (c != '\r' && c != '\007' && c != '\033')
action_->accept(this);
}
}
void CharFieldEditor::focus_out() {
FieldEditor::focus_out();
if (action_)
action_->accept(this);
}
|