Make Fl_Input::handle_key() protected (#203)

... as requested in this comment:
https://github.com/fltk/fltk/issues/211#issuecomment-814235771
This commit is contained in:
Albrecht Schlosser 2021-04-07 19:14:25 +02:00
parent 7f969b5496
commit 22cb8a7fdb
2 changed files with 16 additions and 7 deletions

View File

@ -1,7 +1,7 @@
//
// Input header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2010 by Bill Spitzak and others.
// Copyright 1998-2021 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@ -220,7 +220,6 @@
class FL_EXPORT Fl_Input : public Fl_Input_ {
friend class Fl_Screen_Driver;
friend class Fl_Cocoa_Screen_Driver; // Not ideal, but probably no other platform will use it
int handle_key();
int shift_position(int p);
int shift_up_down_position(int p);
void handle_mouse(int keepmark=0);
@ -257,6 +256,8 @@ class FL_EXPORT Fl_Input : public Fl_Input_ {
protected:
void draw();
int handle_key();
public:
int handle(int);
Fl_Input(int,int,int,int,const char * = 0);

View File

@ -1,7 +1,7 @@
//
// Input widget for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2020 by Bill Spitzak and others.
// Copyright 1998-2021 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@ -300,9 +300,17 @@ int Fl_Input::kf_copy_cut() {
return cut();
}
// Handle a keystroke.
// Returns 1 if handled by us, 0 if not.
//
/** Handles a keystroke.
This \p protected method handles a keystroke in an Fl_Input or derived
class. It handles compose key sequences and can also be used e.g. in
Fl_Multiline_Input, Fl_Float_Input and several more derived classes.
The details are way too complicated to be documented here and can be
changed as required. If in doubt, please consult the source code.
\returns 1 if the keystroke is handled by us, 0 if not.
*/
int Fl_Input::handle_key() {
char ascii = Fl::event_text()[0];