void BC_TextBox::default_keypress(int &dispatch_event, int &result)
{
int key = top_level->get_keypress(), len;
- if( (key == RETURN) || ( key >= 32 && key <= 255 ) ||
- (key >= KP1 && key <= KP9) || key == KPINS ) {
- wchar_t *wkeys = top_level->get_wkeystring(&len);
- switch( key ) {
- case RETURN: key = '\n'; goto kpchr;
- case KPINS: key = '0'; goto kpchr;
- case KP1: case KP2: case KP3: case KP4: case KP5:
- case KP6: case KP7: case KP8: case KP9:
- key = key - KP1 + '1';
- kpchr:
- wkeys[0] = key; wkeys[1] = 0; len = 1;
- break;
- }
- insert_text(wkeys, len);
- find_ibeam(1);
- draw(1);
- dispatch_event = 1;
- result = 1;
- }
+ wchar_t *wkeys = top_level->get_wkeystring(&len);
+ switch( key ) {
+ case KPENTER: key = '\n'; goto kpchr;
+ case KPMINUS: key = '-'; goto kpchr;
+ case KPPLUS: key = '+'; goto kpchr;
+ case KPDEL: key = '.'; goto kpchr;
+ case RETURN: key = '\n'; goto kpchr;
+ case KPINS: key = '0'; goto kpchr;
+ case KP1: case KP2: case KP3: case KP4: case KP5:
+ case KP6: case KP7: case KP8: case KP9:
+ key = key - KP1 + '1'; goto kpchr;
+ default:
+ if( key < 32 || key > 255 ) return;
+ kpchr: {
+ wkeys[0] = key; wkeys[1] = 0; len = 1;
+ break; }
+ }
+ insert_text(wkeys, len);
+ find_ibeam(1);
+ draw(1);
+ dispatch_event = 1;
+ result = 1;
}
int BC_TextBox::keypress_event()