Blame FL/Fl_Input.H

Packit Service 9ac617
//
Packit Service 9ac617
// "$Id: Fl_Input.H 8864 2011-07-19 04:49:30Z greg.ercolano $"
Packit Service 9ac617
//
Packit Service 9ac617
// Input header file for the Fast Light Tool Kit (FLTK).
Packit Service 9ac617
//
Packit Service 9ac617
// Copyright 1998-2010 by Bill Spitzak and others.
Packit Service 9ac617
//
Packit Service 9ac617
// This library is free software. Distribution and use rights are outlined in
Packit Service 9ac617
// the file "COPYING" which should have been included with this file.  If this
Packit Service 9ac617
// file is missing or damaged, see the license at:
Packit Service 9ac617
//
Packit Service 9ac617
//     http://www.fltk.org/COPYING.php
Packit Service 9ac617
//
Packit Service 9ac617
// Please report all bugs and problems on the following page:
Packit Service 9ac617
//
Packit Service 9ac617
//     http://www.fltk.org/str.php
Packit Service 9ac617
//
Packit Service 9ac617
Packit Service 9ac617
/* \file
Packit Service 9ac617
   Fl_Input widget . */
Packit Service 9ac617
Packit Service 9ac617
#ifndef Fl_Input_H
Packit Service 9ac617
#define Fl_Input_H
Packit Service 9ac617
Packit Service 9ac617
#include "Fl_Input_.H"
Packit Service 9ac617
Packit Service 9ac617
/**
Packit Service 9ac617
  This is the FLTK text input widget. It displays a single line
Packit Service 9ac617
  of text and lets the user edit it. Normally it is drawn with an
Packit Service 9ac617
  inset box and a white background. The text may contain any
Packit Service 9ac617
  characters, and will correctly display any UTF text, using
Packit Service 9ac617
  ^X notation for unprintable control characters. It assumes the
Packit Service 9ac617
  font can draw any characters of the used scripts, which is true
Packit Service 9ac617
  for standard fonts under MSWindows and Mac OS X.
Packit Service 9ac617
  Characters can be input using the keyboard or the character palette/map.
Packit Service 9ac617
  Character composition is done using dead keys and/or a compose
Packit Service 9ac617
  key as defined by the operating system.
Packit Service 9ac617
  

Packit Service 9ac617
  
Packit Service 9ac617
    <CAPTION ALIGN=TOP>Fl_Input keyboard and mouse bindings.</CAPTION>
Packit Service 9ac617
    
Packit Service 9ac617
      Mouse button 1 
Packit Service 9ac617
    
Packit Service 9ac617
      Moves the cursor to this point. 
Packit Service 9ac617
      Drag selects characters. 
Packit Service 9ac617
      Double click selects words. 
Packit Service 9ac617
      Triple click selects all line.
Packit Service 9ac617
      Shift+click extends the selection.
Packit Service 9ac617
      When you select text it is automatically copied to the selection buffer.
Packit Service 9ac617
    
Packit Service 9ac617
      Mouse button 2 
Packit Service 9ac617
    
Packit Service 9ac617
      Insert the selection buffer at the point clicked.
Packit Service 9ac617
      You can also select a region and replace it with the selection buffer
Packit Service 9ac617
      by selecting the region with mouse button 2.
Packit Service 9ac617
    
Packit Service 9ac617
      Mouse button 3
Packit Service 9ac617
    
Packit Service 9ac617
      Currently acts like button 1.
Packit Service 9ac617
    
Packit Service 9ac617
      Backspace
Packit Service 9ac617
    
Packit Service 9ac617
      Deletes one character to the left, or deletes the selected region.
Packit Service 9ac617
    
Packit Service 9ac617
      Delete
Packit Service 9ac617
    
Packit Service 9ac617
      Deletes one character to the right, or deletes the selected region.
Packit Service 9ac617
      Combine with Shift for equivalent of ^X (copy+cut).
Packit Service 9ac617
    
Packit Service 9ac617
      Enter
Packit Service 9ac617
    
Packit Service 9ac617
      May cause the callback, see when().
Packit Service 9ac617
  
Packit Service 9ac617
Packit Service 9ac617
  

Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
    <CAPTION ALIGN=TOP>Fl_Input platform specific keyboard bindings.</CAPTION>
Packit Service 9ac617
  
Packit Service 9ac617
     Windows/Linux 
Packit Service 9ac617
     Mac 
Packit Service 9ac617
     Function 
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     ^A 
Packit Service 9ac617
     Command-A 
Packit Service 9ac617
    
Packit Service 9ac617
      Selects all text in the widget.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     ^C 
Packit Service 9ac617
     Command-C 
Packit Service 9ac617
    
Packit Service 9ac617
      Copy the current selection to the clipboard.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     ^I 
Packit Service 9ac617
     ^I 
Packit Service 9ac617
    
Packit Service 9ac617
      Insert a tab.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     ^J 
Packit Service 9ac617
     ^J 
Packit Service 9ac617
    
Packit Service 9ac617
      Insert a Line Feed. 
Packit Service 9ac617
      (Similar to literal 'Enter' character)
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     ^L 
Packit Service 9ac617
     ^L 
Packit Service 9ac617
    
Packit Service 9ac617
      Insert a Form Feed.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     ^M 
Packit Service 9ac617
     ^M 
Packit Service 9ac617
    
Packit Service 9ac617
      Insert a Carriage Return.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     ^V,
Shift-Insert
Packit Service 9ac617
     Command-V 
Packit Service 9ac617
    
Packit Service 9ac617
      Paste the clipboard. 
Packit Service 9ac617
      (Macs keyboards don't have "Insert" keys, 
Packit Service 9ac617
      but if they did, Shift-Insert would work)
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     ^X,
Shift-Delete
Packit Service 9ac617
     Command-X,
Shift-Delete
Packit Service 9ac617
    
Packit Service 9ac617
      Cut. 
Packit Service 9ac617
      Copy the selection to the clipboard and delete it.
Packit Service 9ac617
      (If there's no selection, Shift-Delete acts like Delete)
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     ^Z 
Packit Service 9ac617
     Command-Z 
Packit Service 9ac617
    
Packit Service 9ac617
      Undo. 
Packit Service 9ac617
      This is a single-level undo mechanism, but all adjacent 
Packit Service 9ac617
      deletions and insertions are concatenated into a single "undo".
Packit Service 9ac617
      Often this will undo a lot more than you expected. 
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     Shift-^Z 
Packit Service 9ac617
     Shift-Command-Z 
Packit Service 9ac617
    
Packit Service 9ac617
      Redo. 
Packit Service 9ac617
      Currently same behavior as ^Z. 
Packit Service 9ac617
      Reserved for future multilevel undo/redo.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     Arrow Keys 
Packit Service 9ac617
     Arrow Keys 
Packit Service 9ac617
    
Packit Service 9ac617
      Standard cursor movement. 
Packit Service 9ac617
      Can be combined with Shift to extend selection.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     Home 
Packit Service 9ac617
     Command-Up,
Command-Left
Packit Service 9ac617
    
Packit Service 9ac617
      Move to start of line. 
Packit Service 9ac617
      Can be combined with Shift to extend selection.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     End 
Packit Service 9ac617
     Command-Down,
Command-Right
Packit Service 9ac617
    
Packit Service 9ac617
      Move to end of line. 
Packit Service 9ac617
      Can be combined with Shift to extend selection.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
    Ctrl-Home
Packit Service 9ac617
    Command-Up,
Command-PgUp,
Ctrl-Left
Packit Service 9ac617
    
Packit Service 9ac617
      Move to top of document/field. 
Packit Service 9ac617
      In single line input, moves to start of line.
Packit Service 9ac617
      In multiline input, moves to start of top line.
Packit Service 9ac617
      Can be combined with Shift to extend selection.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     Ctrl-End 
Packit Service 9ac617
     Command-End,
Command-PgDn,
Ctrl-Right
Packit Service 9ac617
    
Packit Service 9ac617
      Move to bottom of document/field. 
Packit Service 9ac617
      In single line input, moves to end of line.
Packit Service 9ac617
      In multiline input, moves to end of last line.
Packit Service 9ac617
      Can be combined with Shift to extend selection.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     Ctrl-Left 
Packit Service 9ac617
     Alt-Left 
Packit Service 9ac617
    
Packit Service 9ac617
      Word left. 
Packit Service 9ac617
      Can be combined with Shift to extend selection.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     Ctrl-Right 
Packit Service 9ac617
     Alt-Right 
Packit Service 9ac617
    
Packit Service 9ac617
      Word right. 
Packit Service 9ac617
      Can be combined with Shift to extend selection.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     Ctrl-Backspace 
Packit Service 9ac617
     Alt-Backspace 
Packit Service 9ac617
    
Packit Service 9ac617
      Delete word left.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
     Ctrl-Delete 
Packit Service 9ac617
     Alt-Delete 
Packit Service 9ac617
    
Packit Service 9ac617
      Delete word right.
Packit Service 9ac617
Packit Service 9ac617
  
Packit Service 9ac617
  */
Packit Service 9ac617
class FL_EXPORT Fl_Input : public Fl_Input_ {
Packit Service 9ac617
  int handle_key();
Packit Service 9ac617
  int shift_position(int p);
Packit Service 9ac617
  int shift_up_down_position(int p);
Packit Service 9ac617
  void handle_mouse(int keepmark=0);
Packit Service 9ac617
Packit Service 9ac617
  // Private keyboard functions
Packit Service 9ac617
  int kf_lines_up(int repeat_num);
Packit Service 9ac617
  int kf_lines_down(int repeat_num);
Packit Service 9ac617
  int kf_page_up();
Packit Service 9ac617
  int kf_page_down();
Packit Service 9ac617
  int kf_insert_toggle();
Packit Service 9ac617
  int kf_delete_word_right();
Packit Service 9ac617
  int kf_delete_word_left();
Packit Service 9ac617
  int kf_delete_sol();
Packit Service 9ac617
  int kf_delete_eol();
Packit Service 9ac617
  int kf_delete_char_right();
Packit Service 9ac617
  int kf_delete_char_left();
Packit Service 9ac617
  int kf_move_sol();
Packit Service 9ac617
  int kf_move_eol();
Packit Service 9ac617
  int kf_clear_eol();
Packit Service 9ac617
  int kf_move_char_left();
Packit Service 9ac617
  int kf_move_char_right();
Packit Service 9ac617
  int kf_move_word_left();
Packit Service 9ac617
  int kf_move_word_right();
Packit Service 9ac617
  int kf_move_up_and_sol();
Packit Service 9ac617
  int kf_move_down_and_eol();
Packit Service 9ac617
  int kf_top();
Packit Service 9ac617
  int kf_bottom();
Packit Service 9ac617
  int kf_select_all();
Packit Service 9ac617
  int kf_undo();
Packit Service 9ac617
  int kf_redo();
Packit Service 9ac617
  int kf_copy();
Packit Service 9ac617
  int kf_paste();
Packit Service 9ac617
  int kf_copy_cut();
Packit Service 9ac617
Packit Service 9ac617
protected:
Packit Service 9ac617
  void draw();
Packit Service 9ac617
public:
Packit Service 9ac617
  int handle(int);
Packit Service 9ac617
  Fl_Input(int,int,int,int,const char * = 0);
Packit Service 9ac617
};
Packit Service 9ac617
Packit Service 9ac617
#endif 
Packit Service 9ac617
Packit Service 9ac617
//
Packit Service 9ac617
// End of "$Id: Fl_Input.H 8864 2011-07-19 04:49:30Z greg.ercolano $".
Packit Service 9ac617
//