Develop and Download Open Source Software

Browse CVS Repository

Contents of /malonnote/mnTextCtrl.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download) (as text)
Thu Aug 11 07:19:39 2005 UTC (18 years, 7 months ago) by maloninc
Branch: MAIN
CVS Tags: dev-1_1-0007
File MIME type: text/x-c++src
add

1 #include "mnTextCtrl.h"
2
3 BEGIN_EVENT_TABLE(mnTextCtrl, wxTextCtrl)
4 EVT_KEY_DOWN(mnTextCtrl::handleKeyDown)
5 END_EVENT_TABLE()
6
7 void mnTextCtrl::handleKeyDown(wxKeyEvent& event)
8 {
9 long pos, x, y, oldY;
10 bool isLineUp = FALSE;
11 bool isLineDown = FALSE;
12
13 if(event.ControlDown()) {
14 pos = GetInsertionPoint();
15 PositionToXY(pos, &x, &y);
16
17 switch(event.GetKeyCode()){
18 case 'N': // Next line
19 oldY = y;
20 y++;
21 isLineDown = TRUE;
22 break;
23
24 case 'P': // Previous line
25 oldY = y;
26 y--;
27 isLineUp = TRUE;
28 break;
29
30 case 'F': // Forward
31 x++;
32 break;
33
34 case 'B': // Backward
35 x--;
36 break;
37
38 case 'E': // End of line
39 x = GetLineLength(y);
40 break;
41
42 case 'A': // Begin of line
43 x = 0;
44 break;
45
46 case 'H': // Backspace
47 Remove(pos-1, pos);
48 x--;
49 break;
50
51 case 'D': // Delete
52 Remove(pos, pos+1);
53 break;
54
55 default:
56 event.Skip();
57 return;
58 }
59
60 pos = XYToPosition(x, y);
61 if(isLineUp){
62 PositionToXY(pos, &x, &y);
63 if(y != oldY - 1){
64 pos = XYToPosition(GetLineLength(oldY-1), oldY-1);
65 }
66 }
67 else if(isLineDown) {
68 PositionToXY(pos, &x, &y);
69 if(y != oldY + 1) {
70 pos = XYToPosition(GetLineLength(oldY+1), oldY+1);
71 }
72 }
73 SetInsertionPoint(pos);
74 return;
75 }
76 event.Skip();
77 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26