summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/widget_layer.cpp2
-rw-r--r--noncore/apps/opie-console/widget_layer.h2
2 files changed, 3 insertions, 1 deletions
diff --git a/noncore/apps/opie-console/widget_layer.cpp b/noncore/apps/opie-console/widget_layer.cpp
index 3584d32..c00871f 100644
--- a/noncore/apps/opie-console/widget_layer.cpp
+++ b/noncore/apps/opie-console/widget_layer.cpp
@@ -1,168 +1,170 @@
1/* ------------------------------------------------------------------------- */ 1/* ------------------------------------------------------------------------- */
2/* */ 2/* */
3/* widget_layer.cpp Widget Layer */ 3/* widget_layer.cpp Widget Layer */
4/* */ 4/* */
5/* opie developers <opie@handhelds.org> */ 5/* opie developers <opie@handhelds.org> */
6/* */ 6/* */
7/* ------------------------------------------------------------------------- */ 7/* ------------------------------------------------------------------------- */
8 8
9 9
10 10
11#include "widget_layer.h" 11#include "widget_layer.h"
12 12
13#include <qclipboard.h> 13#include <qclipboard.h>
14#include <qregexp.h> 14#include <qregexp.h>
15#include <qglobal.h> 15#include <qglobal.h>
16 16
17#include <string.h> 17#include <string.h>
18//#include < 18//#include <
19 19
20#include "common.h" 20#include "common.h"
21 21
22 22
23 23
24WidgetLayer::WidgetLayer( const Profile &config, QWidget *parent, const char *name ) : QFrame( parent, name ) 24WidgetLayer::WidgetLayer( const Profile &config, QWidget *parent, const char *name ) : QFrame( parent, name )
25{ 25{
26 // get the clipboard 26 // get the clipboard
27 m_clipboard = QApplication::clipboard(); 27 m_clipboard = QApplication::clipboard();
28 28
29 // when data on clipboard changes, clear selection 29 // when data on clipboard changes, clear selection
30 QObject::connect( (QObject*) m_clipboard, SIGNAL( dataChanged() ), 30 QObject::connect( (QObject*) m_clipboard, SIGNAL( dataChanged() ),
31 (QObject*)this, SLOT( onClearSelection() ) ); 31 (QObject*)this, SLOT( onClearSelection() ) );
32 32
33 // initialize vars: 33 // initialize vars:
34 m_lines = 1; 34 m_lines = 1;
35 m_columns = 1; 35 m_columns = 1;
36 m_resizing = false; 36 m_resizing = false;
37 37
38 // just for demonstrating 38 // just for demonstrating
39 //m_image = QArray<Character>( m_lines * m_columns ); 39 //m_image = QArray<Character>( m_lines * m_columns );
40 m_image = QArray<Character>( 1 ); 40 m_image = QArray<Character>( 1 );
41 41
42} 42}
43 43
44 44
45WidgetLayer::~WidgetLayer() 45WidgetLayer::~WidgetLayer()
46{ 46{
47 // clean up 47 // clean up
48 delete m_image; 48 delete m_image;
49} 49}
50 50
51/* --------------------------------- audio ---------------------------------- */ 51/* --------------------------------- audio ---------------------------------- */
52 52
53void WidgetLayer::bell() 53void WidgetLayer::bell()
54{ 54{
55 QApplication::beep(); 55 QApplication::beep();
56} 56}
57 57
58 58
59/* --------------------------------- screen --------------------------------- */ 59/* --------------------------------- screen --------------------------------- */
60 60
61 61
62void WidgetLayer::propagateSize() 62void WidgetLayer::propagateSize()
63{ 63{
64 QArray<Character> oldimage = m_image.copy(); 64 QArray<Character> oldimage = m_image.copy();
65 int oldlines = m_lines; 65 int oldlines = m_lines;
66 int oldcolumns = m_columns; 66 int oldcolumns = m_columns;
67 67
68 makeImage(); 68 makeImage();
69 69
70 // copy old image, to reduce flicker 70 // copy old image, to reduce flicker
71 if ( ! oldimage.isEmpty() ) 71 if ( ! oldimage.isEmpty() )
72 { 72 {
73 int lins = QMIN( oldlines, m_lines ); 73 int lins = QMIN( oldlines, m_lines );
74 int cols = QMIN( oldcolumns, m_columns ); 74 int cols = QMIN( oldcolumns, m_columns );
75 for ( int lin = 0; lin < lins; ++lin ) 75 for ( int lin = 0; lin < lins; ++lin )
76 { 76 {
77 memcpy( (void*) &m_image[m_columns*lin], 77 memcpy( (void*) &m_image[m_columns*lin],
78 (void*) &oldimage[oldcolumns*lin], 78 (void*) &oldimage[oldcolumns*lin],
79 cols*sizeof( Character ) ); 79 cols*sizeof( Character ) );
80 } 80 }
81 } 81 }
82 else 82 else
83 clearImage(); 83 clearImage();
84 84
85 delete oldimage; 85 delete oldimage;
86 86
87 m_resizing = true; 87 m_resizing = true;
88 emit imageSizeChanged( m_lines, m_columns ); 88 emit imageSizeChanged( m_lines, m_columns );
89 m_resizing = false; 89 m_resizing = false;
90} 90}
91 91
92void WidgetLayer::makeImage() 92void WidgetLayer::makeImage()
93{ 93{
94 calcGeometry(); 94 calcGeometry();
95 m_image = QArray<Character>( m_columns * m_lines ); 95 m_image = QArray<Character>( m_columns * m_lines );
96 clearImage(); 96 clearImage();
97} 97}
98 98
99void WidgetLayer::clearImage() 99void WidgetLayer::clearImage()
100{ 100{
101 //should this belong here?? 101 //should this belong here??
102 for ( int y = 0; y < m_lines; y++ ) 102 for ( int y = 0; y < m_lines; y++ )
103 for ( int x = 0; x < m_columns; x++ ) 103 for ( int x = 0; x < m_columns; x++ )
104 { 104 {
105 m_image[loc(x,y)].c = 0xff; 105 m_image[loc(x,y)].c = 0xff;
106 m_image[loc(x,y)].f = 0xff; 106 m_image[loc(x,y)].f = 0xff;
107 m_image[loc(x,y)].b = 0xff; 107 m_image[loc(x,y)].b = 0xff;
108 m_image[loc(x,y)].r = 0xff; 108 m_image[loc(x,y)].r = 0xff;
109 } 109 }
110} 110}
111 111
112/* --------------------------------- selection ------------------------------ */ 112/* --------------------------------- selection ------------------------------ */
113 113
114void WidgetLayer::pasteClipboard() 114void WidgetLayer::pasteClipboard()
115{ 115{
116 insertSelection(); 116 insertSelection();
117} 117}
118 118
119 119
120void WidgetLayer::insertSelection() 120void WidgetLayer::insertSelection()
121{ 121{
122 QString text = QApplication::clipboard()->text(); 122 QString text = QApplication::clipboard()->text();
123 if ( ! text.isNull() ) 123 if ( ! text.isNull() )
124 { 124 {
125 text.replace( QRegExp( "\n" ), "\r" ); 125 text.replace( QRegExp( "\n" ), "\r" );
126 insertText( text ); 126 insertText( text );
127 // selection should be unselected 127 // selection should be unselected
128 emit selectionCleared(); 128 emit selectionCleared();
129 } 129 }
130} 130}
131 131
132void WidgetLayer::insertText( QString text ) 132void WidgetLayer::insertText( QString text )
133{ 133{
134 // text is inserted as key event 134 // text is inserted as key event
135 QKeyEvent e( QEvent::KeyPress, 0, -1, 0, text); 135 QKeyEvent e( QEvent::KeyPress, 0, -1, 0, text);
136 emit keyPressed( &e ); 136 emit keyPressed( &e );
137} 137}
138 138
139void WidgetLayer::onClearSelection() 139void WidgetLayer::onClearSelection()
140{ 140{
141 emit selectionCleared(); 141 emit selectionCleared();
142} 142}
143 143
144void WidgetLayer::setSelection( const QString& text ) 144void WidgetLayer::setSelection( const QString& text )
145{ 145{
146 // why get the clipboard, we have it as instance var... 146 // why get the clipboard, we have it as instance var...
147 QObject *m_clipboard = QApplication::clipboard(); 147 QObject *m_clipboard = QApplication::clipboard();
148 148
149 // we know, that cliboard changes, when we change clipboard 149 // we know, that cliboard changes, when we change clipboard
150 QObject::disconnect( (QObject*) m_clipboard, SIGNAL( dataChanged() ), 150 QObject::disconnect( (QObject*) m_clipboard, SIGNAL( dataChanged() ),
151 (QObject*) this, SLOT( selectionCleared() ) ); 151 (QObject*) this, SLOT( selectionCleared() ) );
152 152
153 QApplication::clipboard()->setText( text ); 153 QApplication::clipboard()->setText( text );
154 154
155 QObject::connect( (QObject*) m_clipboard, SIGNAL( dataChanged() ), 155 QObject::connect( (QObject*) m_clipboard, SIGNAL( dataChanged() ),
156 (QObject*) this, SLOT( selectionCleared() ) ); 156 (QObject*) this, SLOT( selectionCleared() ) );
157} 157}
158 158
159 159
160///////// 160/////////
161// special font characters 161// special font characters
162///////// 162/////////
163unsigned short vt100_graphics[32] = 163unsigned short vt100_graphics[32] =
164{ // 0/8 1/9 2/10 3/11 4/12 5/13 6/14 7/15 164{ // 0/8 1/9 2/10 3/11 4/12 5/13 6/14 7/15
165 0x0020, 0x25C6, 0x2592, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0, 165 0x0020, 0x25C6, 0x2592, 0x2409, 0x240c, 0x240d, 0x240a, 0x00b0,
166 0x00b1, 0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, 166 0x00b1, 0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c,
167 0xF800, 0xF801, 0x2500, 0xF803, 0xF804, 0x251c, 0x2524, 0x2534, 167 0xF800, 0xF801, 0x2500, 0xF803, 0xF804, 0x251c, 0x2524, 0x2534,
168 0x252c, 0x2502, 0x2264, 0x2265, 0x03C0, 0x2260, 0x00A3, 0x00b7 168 0x252c, 0x2502, 0x2264, 0x2265, 0x03C0, 0x2260, 0x00A3, 0x00b7
169};
170
diff --git a/noncore/apps/opie-console/widget_layer.h b/noncore/apps/opie-console/widget_layer.h
index 2ca0f88..014d507 100644
--- a/noncore/apps/opie-console/widget_layer.h
+++ b/noncore/apps/opie-console/widget_layer.h
@@ -1,256 +1,256 @@
1/* -------------------------------------------------------------------------- */ 1/* -------------------------------------------------------------------------- */
2/* */ 2/* */
3/* [widget_layer.h] Widget Layer */ 3/* [widget_layer.h] Widget Layer */
4/* */ 4/* */
5/* -------------------------------------------------------------------------- */ 5/* -------------------------------------------------------------------------- */
6 6
7// proposal of a widget Layer in opie-console 7// proposal of a widget Layer in opie-console
8// 8//
9// fellow devels: 9// fellow devels:
10// just mail me (ibotty@web.de), what you additionally need from the main widget 10// just mail me (ibotty@web.de), what you additionally need from the main widget
11// (or say in chat) 11// (or say in chat)
12 12
13#ifndef WIDGET_LAYER_H 13#ifndef WIDGET_LAYER_H
14#define WIDGET_LAYER_H 14#define WIDGET_LAYER_H
15 15
16// qt includes 16// qt includes
17#include <qapplication.h> 17#include <qapplication.h>
18#include <qframe.h> 18#include <qframe.h>
19#include <qarray.h> 19#include <qarray.h>
20#include <qtimer.h> 20#include <qtimer.h>
21#include <qkeycode.h> 21#include <qkeycode.h>
22#include <qclipboard.h> 22#include <qclipboard.h>
23 23
24 24
25// opie-console includes 25// opie-console includes
26#include "session.h" 26#include "session.h"
27#include "common.h" 27#include "common.h"
28#include "profile.h" 28#include "profile.h"
29/* 29/*
30 * given a pseudo location ( column, line ), 30 * given a pseudo location ( column, line ),
31 * returns the actual index, in the QArray<Character> 31 * returns the actual index, in the QArray<Character>
32 */ 32 */
33#define loc(X,Y) ((Y)*m_columns+(X)) 33#define loc(X,Y) ((Y)*m_columns+(X))
34 34
35 35
36 36
37unsigned short vt100_graphics[32]; 37extern unsigned short vt100_graphics[32];
38 38
39class WidgetLayer : public QFrame 39class WidgetLayer : public QFrame
40{ Q_OBJECT 40{ Q_OBJECT
41 41
42public: 42public:
43 43
44 /** 44 /**
45 * constructor 45 * constructor
46 * @param const Profile &config, the configuration for this widget 46 * @param const Profile &config, the configuration for this widget
47 * @param QWidget *parent, the parent widget 47 * @param QWidget *parent, the parent widget
48 * @param const char *name, the name of the widget, defaults to "" 48 * @param const char *name, the name of the widget, defaults to ""
49 */ 49 */
50 WidgetLayer( const Profile& config, QWidget *parent=0, const char *name=0 ); 50 WidgetLayer( const Profile& config, QWidget *parent=0, const char *name=0 );
51 51
52 /** 52 /**
53 * destructor 53 * destructor
54 */ 54 */
55 virtual ~WidgetLayer(); 55 virtual ~WidgetLayer();
56 56
57public: 57public:
58 /** 58 /**
59 * sets the image 59 * sets the image
60 * @param QArray<Character> const newimg, the new image 60 * @param QArray<Character> const newimg, the new image
61 * @param int lines, lines count of newimg 61 * @param int lines, lines count of newimg
62 * @param int columns, columns count of newimg 62 * @param int columns, columns count of newimg
63 */ 63 */
64 virtual void setImage( QArray<Character> const newimg, int lines, int colums ) = 0; 64 virtual void setImage( QArray<Character> const newimg, int lines, int colums ) = 0;
65 65
66 /** 66 /**
67 * annoy the user 67 * annoy the user
68 */ 68 */
69 void bell(); 69 void bell();
70 70
71 /** 71 /**
72 * @return int m_lines, the lines count 72 * @return int m_lines, the lines count
73 */ 73 */
74 int lines(){ return m_lines; } 74 int lines(){ return m_lines; }
75 75
76 /** 76 /**
77 * @return int m_columns, the columns count 77 * @return int m_columns, the columns count
78 */ 78 */
79 int columns(){ return m_columns; } 79 int columns(){ return m_columns; }
80 80
81 /** 81 /**
82 * insert current selection (currently this is only the clipboard) 82 * insert current selection (currently this is only the clipboard)
83 */ 83 */
84 void insertSelection(); 84 void insertSelection();
85 85
86 /** 86 /**
87 * insert text 87 * insert text
88 * @param QString text, the text to be inserted 88 * @param QString text, the text to be inserted
89 */ 89 */
90 void insertText( QString text ); 90 void insertText( QString text );
91 91
92 /** 92 /**
93 * set selection (clipboard) to text 93 * set selection (clipboard) to text
94 * @param const QString &text, the text to be selected 94 * @param const QString &text, the text to be selected
95 */ 95 */
96 void setSelection( const QString &text ); 96 void setSelection( const QString &text );
97 97
98 /** 98 /**
99 * paste content of clipboard 99 * paste content of clipboard
100 */ 100 */
101 void pasteClipboard(); 101 void pasteClipboard();
102 102
103 103
104 /** 104 /**
105 * reload configuration 105 * reload configuration
106 * @param const Profile& config, the config to be used (may be the same as in constructor) 106 * @param const Profile& config, the config to be used (may be the same as in constructor)
107 */ 107 */
108 virtual void reloadConfig( const Profile& config ) = 0; 108 virtual void reloadConfig( const Profile& config ) = 0;
109 109
110 110
111 /** 111 /**
112 * sets the scrollbar (if implemented by successor of this class) 112 * sets the scrollbar (if implemented by successor of this class)
113 */ 113 */
114 virtual void setScroll( int cursor, int slines ); 114 virtual void setScroll( int cursor, int slines );
115 115
116 /** 116 /**
117 * scrolls (if implemented, by successor of this class) 117 * scrolls (if implemented, by successor of this class)
118 * @param int value, how much the widget should scroll up (positive value) or down (negative value) 118 * @param int value, how much the widget should scroll up (positive value) or down (negative value)
119 */ 119 */
120 virtual void scroll( int value ); 120 virtual void scroll( int value );
121 121
122signals: 122signals:
123 123
124 /** 124 /**
125 * key was pressed 125 * key was pressed
126 */ 126 */
127 void keyPressed( QKeyEvent *e ); 127 void keyPressed( QKeyEvent *e );
128 128
129 /** 129 /**
130 * whenever Mouse selects something 130 * whenever Mouse selects something
131 * @param int button, the button that us pressed : 131 * @param int button, the button that us pressed :
132 * 0left Button 132 * 0left Button
133 * 3Button released 133 * 3Button released
134 * @param int x, x position 134 * @param int x, x position
135 * @param int y, y position 135 * @param int y, y position
136 * 136 *
137 * // numbering due to layout in old TEWidget 137 * // numbering due to layout in old TEWidget
138 */ 138 */
139 void mousePressed( int button, int x, int y ); 139 void mousePressed( int button, int x, int y );
140 140
141 /** 141 /**
142 * size of image changed 142 * size of image changed
143 * @param int lines, line count of new size 143 * @param int lines, line count of new size
144 * @param int columns, column count of new size 144 * @param int columns, column count of new size
145 */ 145 */
146 void imageSizeChanged( int lines, int columns ); 146 void imageSizeChanged( int lines, int columns );
147 147
148 /** 148 /**
149 * cursor in history changed 149 * cursor in history changed
150 * @param int value, value of history cursor 150 * @param int value, value of history cursor
151 */ 151 */
152 void historyCursorChanged( int value ); 152 void historyCursorChanged( int value );
153 153
154 /** 154 /**
155 * selection should be cleared 155 * selection should be cleared
156 */ 156 */
157 void selectionCleared(); 157 void selectionCleared();
158 158
159 /** 159 /**
160 * selection begin 160 * selection begin
161 * @param const int x, x position 161 * @param const int x, x position
162 * @param const int y, y position 162 * @param const int y, y position
163 */ 163 */
164 void selectionBegin( const int x, const int y ); 164 void selectionBegin( const int x, const int y );
165 165
166 /** 166 /**
167 * selection extended 167 * selection extended
168 * (from begin (s.a.) to x, y) 168 * (from begin (s.a.) to x, y)
169 * @param const int x, x position 169 * @param const int x, x position
170 * @param const int y, y position 170 * @param const int y, y position
171 */ 171 */
172 void selectionExtended( const int x, const int y ); 172 void selectionExtended( const int x, const int y );
173 173
174 /** 174 /**
175 * selection end 175 * selection end
176 * @param const bool lineBreakPreserve, preserve line breaks in selection 176 * @param const bool lineBreakPreserve, preserve line breaks in selection
177 */ 177 */
178 void selectionEnd( const bool lineBreakPreserve ); 178 void selectionEnd( const bool lineBreakPreserve );
179 179
180 180
181 181
182// protected methods 182// protected methods
183protected: 183protected:
184 184
185 // image operations 185 // image operations
186 186
187 /** 187 /**
188 * changes image, to suit new size 188 * changes image, to suit new size
189 * TODO: find meaningful name! 189 * TODO: find meaningful name!
190 */ 190 */
191 void propagateSize(); 191 void propagateSize();
192 192
193 /** 193 /**
194 *determines count of lines and columns 194 *determines count of lines and columns
195 */ 195 */
196 virtual void calcGeometry() = 0; 196 virtual void calcGeometry() = 0;
197 197
198 /** 198 /**
199 * makes an empty image 199 * makes an empty image
200 */ 200 */
201 void makeImage(); 201 void makeImage();
202 202
203 /** 203 /**
204 * clears the image 204 * clears the image
205 */ 205 */
206 void clearImage(); 206 void clearImage();
207 207
208protected slots: 208protected slots:
209 209
210 /** 210 /**
211 * clear selection 211 * clear selection
212 */ 212 */
213 void onClearSelection(); 213 void onClearSelection();
214 214
215 215
216// protected vars 216// protected vars
217protected: 217protected:
218 218
219 /** 219 /**
220 * current Session 220 * current Session
221 */ 221 */
222 Session *m_session; 222 Session *m_session;
223 223
224 /** 224 /**
225 * current character image 225 * current character image
226 * 226 *
227 * a Character at loc( column, line ) 227 * a Character at loc( column, line )
228 * has the actual index: 228 * has the actual index:
229 * ix = line * m_columns + column; 229 * ix = line * m_columns + column;
230 * 230 *
231 * use loc( x, y ) macro to access. 231 * use loc( x, y ) macro to access.
232 */ 232 */
233 QArray<Character> m_image; 233 QArray<Character> m_image;
234 234
235 /** 235 /**
236 * lines count 236 * lines count
237 */ 237 */
238 int m_lines; 238 int m_lines;
239 239
240 /** 240 /**
241 * columns count 241 * columns count
242 */ 242 */
243 int m_columns; 243 int m_columns;
244 244
245 /** 245 /**
246 * clipboard 246 * clipboard
247 */ 247 */
248 QClipboard* m_clipboard; 248 QClipboard* m_clipboard;
249 249
250 /** 250 /**
251 * whether widget is resizing 251 * whether widget is resizing
252 */ 252 */
253 bool m_resizing; 253 bool m_resizing;
254}; 254};
255 255
256#endif // WIDGET_LAYER_H 256#endif // WIDGET_LAYER_H