Adding keyboard shortcut to Fl_Value_Input and Fl_Text_Editor
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6111 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
8d6b757bfe
commit
8683ea2c81
3
CHANGES
3
CHANGES
@ -1,6 +1,7 @@
|
|||||||
CHANGES IN FLTK 1.3.0
|
CHANGES IN FLTK 1.3.0
|
||||||
|
|
||||||
- added support for shortcuts for Fl_Input_ derived
|
- added support for shortcuts for Fl_Input_,
|
||||||
|
Fl_Value_Input, and Fl_Text_Display derived
|
||||||
widgets (STR #1770)
|
widgets (STR #1770)
|
||||||
- initial setup (STR #1904)
|
- initial setup (STR #1904)
|
||||||
|
|
||||||
|
@ -119,6 +119,9 @@ class FL_EXPORT Fl_Text_Display: public Fl_Group {
|
|||||||
int position_style(int lineStartPos, int lineLen, int lineIndex,
|
int position_style(int lineStartPos, int lineLen, int lineIndex,
|
||||||
int dispIndex);
|
int dispIndex);
|
||||||
|
|
||||||
|
int shortcut() const {return shortcut_;}
|
||||||
|
void shortcut(int s) {shortcut_ = s;}
|
||||||
|
|
||||||
Fl_Font textfont() const {return (Fl_Font)textfont_;}
|
Fl_Font textfont() const {return (Fl_Font)textfont_;}
|
||||||
void textfont(uchar s) {textfont_ = s;}
|
void textfont(uchar s) {textfont_ = s;}
|
||||||
uchar textsize() const {return textsize_;}
|
uchar textsize() const {return textsize_;}
|
||||||
@ -280,6 +283,8 @@ class FL_EXPORT Fl_Text_Display: public Fl_Group {
|
|||||||
int display_insert_position_hint;
|
int display_insert_position_hint;
|
||||||
struct { int x, y, w, h; } text_area;
|
struct { int x, y, w, h; } text_area;
|
||||||
|
|
||||||
|
int shortcut_;
|
||||||
|
|
||||||
uchar textfont_;
|
uchar textfont_;
|
||||||
uchar textsize_;
|
uchar textsize_;
|
||||||
unsigned textcolor_;
|
unsigned textcolor_;
|
||||||
|
@ -47,6 +47,9 @@ public:
|
|||||||
void soft(char s) {soft_ = s;}
|
void soft(char s) {soft_ = s;}
|
||||||
char soft() const {return soft_;}
|
char soft() const {return soft_;}
|
||||||
|
|
||||||
|
int shortcut() const {return input.shortcut();}
|
||||||
|
void shortcut(int s) {input.shortcut(s);}
|
||||||
|
|
||||||
Fl_Font textfont() const {return input.textfont();}
|
Fl_Font textfont() const {return input.textfont();}
|
||||||
void textfont(uchar s) {input.textfont(s);}
|
void textfont(uchar s) {input.textfont(s);}
|
||||||
uchar textsize() const {return input.textsize();}
|
uchar textsize() const {return input.textsize();}
|
||||||
|
@ -78,6 +78,7 @@ class.
|
|||||||
<LI><A HREF="#Fl_Text_Editor.kf_up">kf_up</A></LI>
|
<LI><A HREF="#Fl_Text_Editor.kf_up">kf_up</A></LI>
|
||||||
<LI><A HREF="#Fl_Text_Editor.remove_all_key_bindings">remove_all_key_bindings</A></LI>
|
<LI><A HREF="#Fl_Text_Editor.remove_all_key_bindings">remove_all_key_bindings</A></LI>
|
||||||
<LI><A HREF="#Fl_Text_Editor.remove_key_binding">remove_key_binding</A></LI>
|
<LI><A HREF="#Fl_Text_Editor.remove_key_binding">remove_key_binding</A></LI>
|
||||||
|
<LI><A href="#Fl_Text_Editor.shortcut">shortcut</A></LI>
|
||||||
|
|
||||||
</UL></TD></TR>
|
</UL></TD></TR>
|
||||||
</TABLE>
|
</TABLE>
|
||||||
@ -217,5 +218,10 @@ void remove_key_binding(int key, int state);</A></H4>
|
|||||||
|
|
||||||
<P>Removes a single key binding from the text editor or list.
|
<P>Removes a single key binding from the text editor or list.
|
||||||
|
|
||||||
|
<H4><A name="Fl_Text_Editor.shortcut">ulong Fl_Text_Editor::shortcut() const
|
||||||
|
<BR> void Fl_Text_Editor::shortcut(ulong key)</A></H4>
|
||||||
|
The first form returns the current shortcut key for the editor.
|
||||||
|
<P>The second form sets the shortcut key to <TT>key</TT>.
|
||||||
|
|
||||||
</BODY>
|
</BODY>
|
||||||
</HTML>
|
</HTML>
|
||||||
|
@ -59,6 +59,7 @@ ALT="Fl_Value_Input widget."></P>
|
|||||||
<LI><A href="#Fl_Value_Input.Fl_Value_Input">Fl_Value_Input</A></LI>
|
<LI><A href="#Fl_Value_Input.Fl_Value_Input">Fl_Value_Input</A></LI>
|
||||||
<LI><A href="#Fl_Value_Input.~Fl_Value_Input">~Fl_Value_Input</A></LI>
|
<LI><A href="#Fl_Value_Input.~Fl_Value_Input">~Fl_Value_Input</A></LI>
|
||||||
<LI><A href="#Fl_Value_Input.cursor_color">cursor_color</A></LI>
|
<LI><A href="#Fl_Value_Input.cursor_color">cursor_color</A></LI>
|
||||||
|
<LI><A href="#Fl_Value_Input.shortcut">shortcut</A></LI>
|
||||||
<LI><A href="#Fl_Value_Input.soft">soft</A></LI>
|
<LI><A href="#Fl_Value_Input.soft">soft</A></LI>
|
||||||
<LI><A href="#Fl_Value_Input.textcolor">textcolor</A></LI>
|
<LI><A href="#Fl_Value_Input.textcolor">textcolor</A></LI>
|
||||||
<LI><A href="#Fl_Value_Input.textfont">textfont</A></LI>
|
<LI><A href="#Fl_Value_Input.textfont">textfont</A></LI>
|
||||||
@ -85,6 +86,23 @@ void Fl_Value_Input::cursor_color(Fl_Color)</A></H4>
|
|||||||
<P>Get or set the color of the text cursor. The text cursor is
|
<P>Get or set the color of the text cursor. The text cursor is
|
||||||
black by default.
|
black by default.
|
||||||
|
|
||||||
|
<H4><A name="Fl_Value_Input.shortcut">ulong Fl_Value_Input::shortcut() const
|
||||||
|
<BR> void Fl_Value_Input::shortcut(ulong key)</A></H4>
|
||||||
|
The first form returns the current shortcut key for the Input.
|
||||||
|
<P>The second form sets the shortcut key to <TT>key</TT>. Setting this
|
||||||
|
overrides the use of '&' in the <TT>label()</TT>. The value is a bitwise
|
||||||
|
OR of a key and a set of shift flags, for example <CODE>FL_ALT | 'a'</CODE>
|
||||||
|
, <CODE>FL_ALT | (FL_F + 10)</CODE>, or just <CODE>'a'</CODE>. A value
|
||||||
|
of 0 disables the shortcut. </P>
|
||||||
|
<P>The key can be any value returned by <A href="Fl.html#Fl.event_key">
|
||||||
|
<TT>Fl::event_key()</TT></A>, but will usually be an ASCII letter. Use
|
||||||
|
a lower-case letter unless you require the shift key to be held down. </P>
|
||||||
|
<P>The shift flags can be any set of values accepted by <A href="Fl.html#Fl.event_state">
|
||||||
|
<TT>Fl::event_state()</TT></A>. If the bit is on that shift key must
|
||||||
|
be pushed. Meta, Alt, Ctrl, and Shift must be off if they are not in
|
||||||
|
the shift flags (zero for the other bits indicates a "don't care"
|
||||||
|
setting). </P>
|
||||||
|
|
||||||
<H4><A name="Fl_Value_Input.soft">uchar Fl_Value_Input::soft() const<BR>
|
<H4><A name="Fl_Value_Input.soft">uchar Fl_Value_Input::soft() const<BR>
|
||||||
void Fl_Value_Input::soft(uchar)</A></H4>
|
void Fl_Value_Input::soft(uchar)</A></H4>
|
||||||
|
|
||||||
|
@ -37,6 +37,8 @@
|
|||||||
#include <FL/fl_message.H>
|
#include <FL/fl_message.H>
|
||||||
#include <FL/Fl_Menu_.H>
|
#include <FL/Fl_Menu_.H>
|
||||||
#include <FL/Fl_Button.H>
|
#include <FL/Fl_Button.H>
|
||||||
|
#include <FL/Fl_Value_Input.H>
|
||||||
|
#include <FL/Fl_Text_Display.H>
|
||||||
#include "../src/flstring.h"
|
#include "../src/flstring.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -589,14 +591,19 @@ int Shortcut_Button::handle(int e) {
|
|||||||
|
|
||||||
void shortcut_in_cb(Shortcut_Button* i, void* v) {
|
void shortcut_in_cb(Shortcut_Button* i, void* v) {
|
||||||
if (v == LOAD) {
|
if (v == LOAD) {
|
||||||
if ( !current_widget->is_button() && !current_widget->is_input() ) {
|
|
||||||
i->hide(); return;
|
|
||||||
}
|
|
||||||
i->show();
|
|
||||||
if (current_widget->is_button())
|
if (current_widget->is_button())
|
||||||
i->svalue = ((Fl_Button*)(current_widget->o))->shortcut();
|
i->svalue = ((Fl_Button*)(current_widget->o))->shortcut();
|
||||||
else if (current_widget->is_input())
|
else if (current_widget->is_input())
|
||||||
i->svalue = ((Fl_Input_*)(current_widget->o))->shortcut();
|
i->svalue = ((Fl_Input_*)(current_widget->o))->shortcut();
|
||||||
|
else if (current_widget->is_value_input())
|
||||||
|
i->svalue = ((Fl_Value_Input*)(current_widget->o))->shortcut();
|
||||||
|
else if (current_widget->is_text_display())
|
||||||
|
i->svalue = ((Fl_Text_Display*)(current_widget->o))->shortcut();
|
||||||
|
else {
|
||||||
|
i->hide();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
i->show();
|
||||||
i->redraw();
|
i->redraw();
|
||||||
} else {
|
} else {
|
||||||
int mod = 0;
|
int mod = 0;
|
||||||
@ -606,11 +613,18 @@ void shortcut_in_cb(Shortcut_Button* i, void* v) {
|
|||||||
if (b->shortcut()!=i->svalue) mod = 1;
|
if (b->shortcut()!=i->svalue) mod = 1;
|
||||||
b->shortcut(i->svalue);
|
b->shortcut(i->svalue);
|
||||||
if (o->is_menu_item()) ((Fl_Widget_Type*)o)->redraw();
|
if (o->is_menu_item()) ((Fl_Widget_Type*)o)->redraw();
|
||||||
}
|
} else if (o->selected && o->is_input()) {
|
||||||
else if (o->selected && o->is_input()) {
|
|
||||||
Fl_Input_* b = (Fl_Input_*)(((Fl_Widget_Type*)o)->o);
|
Fl_Input_* b = (Fl_Input_*)(((Fl_Widget_Type*)o)->o);
|
||||||
if (b->shortcut()!=i->svalue) mod = 1;
|
if (b->shortcut()!=i->svalue) mod = 1;
|
||||||
b->shortcut(i->svalue);
|
b->shortcut(i->svalue);
|
||||||
|
} else if (o->selected && o->is_value_input()) {
|
||||||
|
Fl_Value_Input* b = (Fl_Value_Input*)(((Fl_Widget_Type*)o)->o);
|
||||||
|
if (b->shortcut()!=i->svalue) mod = 1;
|
||||||
|
b->shortcut(i->svalue);
|
||||||
|
} else if (o->selected && o->is_text_display()) {
|
||||||
|
Fl_Text_Display* b = (Fl_Text_Display*)(((Fl_Widget_Type*)o)->o);
|
||||||
|
if (b->shortcut()!=i->svalue) mod = 1;
|
||||||
|
b->shortcut(i->svalue);
|
||||||
}
|
}
|
||||||
if (mod) set_modflag(1);
|
if (mod) set_modflag(1);
|
||||||
}
|
}
|
||||||
|
@ -629,6 +629,8 @@ int Fl_Type::is_valuator() const {return 0;}
|
|||||||
int Fl_Type::is_spinner() const {return 0;}
|
int Fl_Type::is_spinner() const {return 0;}
|
||||||
int Fl_Type::is_button() const {return 0;}
|
int Fl_Type::is_button() const {return 0;}
|
||||||
int Fl_Type::is_input() const {return 0;}
|
int Fl_Type::is_input() const {return 0;}
|
||||||
|
int Fl_Type::is_value_input() const {return 0;}
|
||||||
|
int Fl_Type::is_text_display() const {return 0;}
|
||||||
int Fl_Type::is_menu_item() const {return 0;}
|
int Fl_Type::is_menu_item() const {return 0;}
|
||||||
int Fl_Type::is_menu_button() const {return 0;}
|
int Fl_Type::is_menu_button() const {return 0;}
|
||||||
int Fl_Type::is_group() const {return 0;}
|
int Fl_Type::is_group() const {return 0;}
|
||||||
|
@ -132,6 +132,8 @@ public:
|
|||||||
virtual int is_widget() const;
|
virtual int is_widget() const;
|
||||||
virtual int is_button() const;
|
virtual int is_button() const;
|
||||||
virtual int is_input() const;
|
virtual int is_input() const;
|
||||||
|
virtual int is_value_input() const;
|
||||||
|
virtual int is_text_display() const;
|
||||||
virtual int is_valuator() const;
|
virtual int is_valuator() const;
|
||||||
virtual int is_spinner() const;
|
virtual int is_spinner() const;
|
||||||
virtual int is_menu_item() const;
|
virtual int is_menu_item() const;
|
||||||
|
@ -2162,30 +2162,26 @@ void Fl_Widget_Type::write_widget_code() {
|
|||||||
write_c("%s%s->type(%d);\n", indent(), var, o->type());
|
write_c("%s%s->type(%d);\n", indent(), var, o->type());
|
||||||
if (o->box() != tplate->box() || subclass())
|
if (o->box() != tplate->box() || subclass())
|
||||||
write_c("%s%s->box(FL_%s);\n", indent(), var, boxname(o->box()));
|
write_c("%s%s->box(FL_%s);\n", indent(), var, boxname(o->box()));
|
||||||
if (is_input()) {
|
|
||||||
Fl_Input_* b = (Fl_Input_*)o;
|
// write shortcut command if needed
|
||||||
if (b->shortcut()) {
|
int shortcut = 0;
|
||||||
int s = b->shortcut();
|
if (is_button()) shortcut = ((Fl_Button*)o)->shortcut();
|
||||||
if (use_FL_COMMAND && (s & (FL_CTRL|FL_META))) {
|
else if (is_input()) shortcut = ((Fl_Input_*)o)->shortcut();
|
||||||
write_c("%s%s->shortcut(FL_COMMAND|0x%x);\n", indent(), var, s & ~(FL_CTRL|FL_META));
|
else if (is_value_input()) shortcut = ((Fl_Value_Input*)o)->shortcut();
|
||||||
|
else if (is_text_display()) shortcut = ((Fl_Text_Display*)o)->shortcut();
|
||||||
|
if (shortcut) {
|
||||||
|
if (use_FL_COMMAND && (shortcut & (FL_CTRL|FL_META))) {
|
||||||
|
write_c("%s%s->shortcut(FL_COMMAND|0x%x);\n", indent(), var, shortcut & ~(FL_CTRL|FL_META));
|
||||||
} else {
|
} else {
|
||||||
write_c("%s%s->shortcut(0x%x);\n", indent(), var, s);
|
write_c("%s%s->shortcut(0x%x);\n", indent(), var, shortcut);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_button()) {
|
if (is_button()) {
|
||||||
Fl_Button* b = (Fl_Button*)o;
|
Fl_Button* b = (Fl_Button*)o;
|
||||||
if (b->down_box()) write_c("%s%s->down_box(FL_%s);\n", indent(), var,
|
if (b->down_box()) write_c("%s%s->down_box(FL_%s);\n", indent(), var,
|
||||||
boxname(b->down_box()));
|
boxname(b->down_box()));
|
||||||
if (b->value()) write_c("%s%s->value(1);\n", indent(), var);
|
if (b->value()) write_c("%s%s->value(1);\n", indent(), var);
|
||||||
if (b->shortcut()) {
|
|
||||||
int s = b->shortcut();
|
|
||||||
if (use_FL_COMMAND && (s & (FL_CTRL|FL_META))) {
|
|
||||||
write_c("%s%s->shortcut(FL_COMMAND|0x%x);\n", indent(), var, s & ~(FL_CTRL|FL_META));
|
|
||||||
} else {
|
|
||||||
write_c("%s%s->shortcut(0x%x);\n", indent(), var, s);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (!strcmp(type_name(), "Fl_Input_Choice")) {
|
} else if (!strcmp(type_name(), "Fl_Input_Choice")) {
|
||||||
Fl_Input_Choice* b = (Fl_Input_Choice*)o;
|
Fl_Input_Choice* b = (Fl_Input_Choice*)o;
|
||||||
if (b->down_box()) write_c("%s%s->down_box(FL_%s);\n", indent(), var,
|
if (b->down_box()) write_c("%s%s->down_box(FL_%s);\n", indent(), var,
|
||||||
@ -2348,6 +2344,14 @@ void Fl_Widget_Type::write_properties() {
|
|||||||
Fl_Input_* b = (Fl_Input_*)o;
|
Fl_Input_* b = (Fl_Input_*)o;
|
||||||
if (b->shortcut()) write_string("shortcut 0x%x", b->shortcut());
|
if (b->shortcut()) write_string("shortcut 0x%x", b->shortcut());
|
||||||
}
|
}
|
||||||
|
if (is_value_input()) {
|
||||||
|
Fl_Value_Input* b = (Fl_Value_Input*)o;
|
||||||
|
if (b->shortcut()) write_string("shortcut 0x%x", b->shortcut());
|
||||||
|
}
|
||||||
|
if (is_text_display()) {
|
||||||
|
Fl_Text_Display* b = (Fl_Text_Display*)o;
|
||||||
|
if (b->shortcut()) write_string("shortcut 0x%x", b->shortcut());
|
||||||
|
}
|
||||||
if (is_button()) {
|
if (is_button()) {
|
||||||
Fl_Button* b = (Fl_Button*)o;
|
Fl_Button* b = (Fl_Button*)o;
|
||||||
if (b->down_box()) {
|
if (b->down_box()) {
|
||||||
@ -2537,10 +2541,12 @@ void Fl_Widget_Type::read_property(const char *c) {
|
|||||||
hotspot(1);
|
hotspot(1);
|
||||||
} else if (!strcmp(c,"class")) {
|
} else if (!strcmp(c,"class")) {
|
||||||
subclass(read_word());
|
subclass(read_word());
|
||||||
} else if (is_button() && !strcmp(c,"shortcut")) {
|
} else if (!strcmp(c,"shortcut")) {
|
||||||
((Fl_Button*)o)->shortcut(strtol(read_word(),0,0));
|
int shortcut = strtol(read_word(),0,0);
|
||||||
} else if (is_input() && !strcmp(c,"shortcut")) {
|
if (is_button()) ((Fl_Button*)o)->shortcut(shortcut);
|
||||||
((Fl_Input_*)o)->shortcut(strtol(read_word(),0,0));
|
else if (is_input()) ((Fl_Input_*)o)->shortcut(shortcut);
|
||||||
|
else if (is_value_input()) ((Fl_Value_Input*)o)->shortcut(shortcut);
|
||||||
|
else if (is_text_display()) ((Fl_Text_Display*)o)->shortcut(shortcut);
|
||||||
} else {
|
} else {
|
||||||
if (!strncmp(c,"code",4)) {
|
if (!strncmp(c,"code",4)) {
|
||||||
int n = atoi(c+4);
|
int n = atoi(c+4);
|
||||||
@ -2717,6 +2723,18 @@ void Fl_Widget_Type::copy_properties() {
|
|||||||
d->shortcut(s->shortcut());
|
d->shortcut(s->shortcut());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// copy all attributes specific to widgets derived from Fl_Value_Input
|
||||||
|
if (is_value_input()) {
|
||||||
|
Fl_Value_Input* d = (Fl_Value_Input*)live_widget, *s = (Fl_Value_Input*)o;
|
||||||
|
d->shortcut(s->shortcut());
|
||||||
|
}
|
||||||
|
|
||||||
|
// copy all attributes specific to widgets derived from Fl_Text_Display
|
||||||
|
if (is_text_display()) {
|
||||||
|
Fl_Text_Display* d = (Fl_Text_Display*)live_widget, *s = (Fl_Text_Display*)o;
|
||||||
|
d->shortcut(s->shortcut());
|
||||||
|
}
|
||||||
|
|
||||||
// copy all attributes specific to Fl_Valuator and derived classes
|
// copy all attributes specific to Fl_Valuator and derived classes
|
||||||
if (is_valuator()) {
|
if (is_valuator()) {
|
||||||
Fl_Valuator* d = (Fl_Valuator*)live_widget, *s = (Fl_Valuator*)o;
|
Fl_Valuator* d = (Fl_Valuator*)live_widget, *s = (Fl_Valuator*)o;
|
||||||
|
@ -533,6 +533,7 @@ public:
|
|||||||
if (w < 50) w = 50;
|
if (w < 50) w = 50;
|
||||||
}
|
}
|
||||||
virtual const char *type_name() {return "Fl_Text_Display";}
|
virtual const char *type_name() {return "Fl_Text_Display";}
|
||||||
|
int is_text_display() const {return 1;}
|
||||||
Fl_Widget *widget(int x,int y,int w,int h) {
|
Fl_Widget *widget(int x,int y,int w,int h) {
|
||||||
Fl_Text_Display *myo = new Fl_Text_Display(x,y,w,h);
|
Fl_Text_Display *myo = new Fl_Text_Display(x,y,w,h);
|
||||||
return myo;
|
return myo;
|
||||||
@ -573,6 +574,7 @@ public:
|
|||||||
if (w < 50) w = 50;
|
if (w < 50) w = 50;
|
||||||
}
|
}
|
||||||
virtual const char *type_name() {return "Fl_Text_Editor";}
|
virtual const char *type_name() {return "Fl_Text_Editor";}
|
||||||
|
int is_text_display() const {return 1;}
|
||||||
Fl_Widget *widget(int x,int y,int w,int h) {
|
Fl_Widget *widget(int x,int y,int w,int h) {
|
||||||
Fl_Text_Editor *myo = new Fl_Text_Editor(x,y,w,h);
|
Fl_Text_Editor *myo = new Fl_Text_Editor(x,y,w,h);
|
||||||
return myo;
|
return myo;
|
||||||
@ -793,6 +795,7 @@ public:
|
|||||||
virtual const char *type_name() {return "Fl_Value_Input";}
|
virtual const char *type_name() {return "Fl_Value_Input";}
|
||||||
int textstuff(int w, Fl_Font& f, int& s, Fl_Color& c);
|
int textstuff(int w, Fl_Font& f, int& s, Fl_Color& c);
|
||||||
int is_valuator() const {return 1;}
|
int is_valuator() const {return 1;}
|
||||||
|
int is_value_input() const {return 1;}
|
||||||
Fl_Widget *widget(int x,int y,int w,int h) {
|
Fl_Widget *widget(int x,int y,int w,int h) {
|
||||||
Fl_Value_Input *myo = new Fl_Value_Input(x,y,w,h,"value:");
|
Fl_Value_Input *myo = new Fl_Value_Input(x,y,w,h,"value:");
|
||||||
return myo;
|
return myo;
|
||||||
|
@ -85,12 +85,14 @@ Fl_Text_Display::Fl_Text_Display(int X, int Y, int W, int H, const char* l)
|
|||||||
damage_range2_start = damage_range2_end = -1;
|
damage_range2_start = damage_range2_end = -1;
|
||||||
dragPos = dragType = dragging = 0;
|
dragPos = dragType = dragging = 0;
|
||||||
display_insert_position_hint = 0;
|
display_insert_position_hint = 0;
|
||||||
|
shortcut_ = 0;
|
||||||
|
|
||||||
color(FL_BACKGROUND2_COLOR, FL_SELECTION_COLOR);
|
color(FL_BACKGROUND2_COLOR, FL_SELECTION_COLOR);
|
||||||
box(FL_DOWN_FRAME);
|
box(FL_DOWN_FRAME);
|
||||||
textsize((uchar)FL_NORMAL_SIZE);
|
textsize((uchar)FL_NORMAL_SIZE);
|
||||||
textcolor(FL_FOREGROUND_COLOR);
|
textcolor(FL_FOREGROUND_COLOR);
|
||||||
textfont(FL_HELVETICA);
|
textfont(FL_HELVETICA);
|
||||||
|
set_flag(SHORTCUT_LABEL);
|
||||||
|
|
||||||
text_area.x = 0;
|
text_area.x = 0;
|
||||||
text_area.y = 0;
|
text_area.y = 0;
|
||||||
@ -3261,6 +3263,14 @@ int Fl_Text_Display::handle(int event) {
|
|||||||
if (mHScrollBar->handle(event)) return 1;
|
if (mHScrollBar->handle(event)) return 1;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case FL_SHORTCUT:
|
||||||
|
if (!(shortcut() ? Fl::test_shortcut(shortcut()) : test_shortcut()))
|
||||||
|
return 0;
|
||||||
|
if (Fl::visible_focus() && handle(FL_FOCUS))
|
||||||
|
Fl::focus(this);
|
||||||
|
return 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -482,6 +482,13 @@ int Fl_Text_Editor::handle(int event) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case FL_SHORTCUT:
|
||||||
|
if (!(shortcut() ? Fl::test_shortcut(shortcut()) : test_shortcut()))
|
||||||
|
return 0;
|
||||||
|
if (Fl::visible_focus() && handle(FL_FOCUS))
|
||||||
|
Fl::focus(this);
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Fl_Text_Display::handle(event);
|
return Fl_Text_Display::handle(event);
|
||||||
|
@ -106,6 +106,8 @@ int Fl_Value_Input::handle(int event) {
|
|||||||
return 1;
|
return 1;
|
||||||
case FL_FOCUS:
|
case FL_FOCUS:
|
||||||
return input.take_focus();
|
return input.take_focus();
|
||||||
|
case FL_SHORTCUT:
|
||||||
|
return input.handle(event);
|
||||||
default:
|
default:
|
||||||
DEFAULT:
|
DEFAULT:
|
||||||
input.type(((step() - floor(step()))>0.0 || step() == 0.0) ? FL_FLOAT_INPUT : FL_INT_INPUT);
|
input.type(((step() - floor(step()))>0.0 || step() == 0.0) ? FL_FLOAT_INPUT : FL_INT_INPUT);
|
||||||
@ -126,6 +128,7 @@ Fl_Value_Input::Fl_Value_Input(int X, int Y, int W, int H, const char* l)
|
|||||||
selection_color(input.selection_color());
|
selection_color(input.selection_color());
|
||||||
align(FL_ALIGN_LEFT);
|
align(FL_ALIGN_LEFT);
|
||||||
value_damage();
|
value_damage();
|
||||||
|
set_flag(SHORTCUT_LABEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user