summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/widget_layer.cpp11
-rw-r--r--noncore/apps/opie-console/widget_layer.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/noncore/apps/opie-console/widget_layer.cpp b/noncore/apps/opie-console/widget_layer.cpp
index 8d68857..3584d32 100644
--- a/noncore/apps/opie-console/widget_layer.cpp
+++ b/noncore/apps/opie-console/widget_layer.cpp
@@ -30,128 +30,139 @@ WidgetLayer::WidgetLayer( const Profile &config, QWidget *parent, const char *na
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
159
160/////////
161// special font characters
162/////////
163unsigned short vt100_graphics[32] =
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,
166 0x00b1, 0x2424, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c,
167 0xF800, 0xF801, 0x2500, 0xF803, 0xF804, 0x251c, 0x2524, 0x2534,
168 0x252c, 0x2502, 0x2264, 0x2265, 0x03C0, 0x2260, 0x00A3, 0x00b7
diff --git a/noncore/apps/opie-console/widget_layer.h b/noncore/apps/opie-console/widget_layer.h
index 01a4614..2ca0f88 100644
--- a/noncore/apps/opie-console/widget_layer.h
+++ b/noncore/apps/opie-console/widget_layer.h
@@ -1,164 +1,165 @@
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];
37 38
38class WidgetLayer : public QFrame 39class WidgetLayer : public QFrame
39{ Q_OBJECT 40{ Q_OBJECT
40 41
41public: 42public:
42 43
43 /** 44 /**
44 * constructor 45 * constructor
45 * @param const Profile &config, the configuration for this widget 46 * @param const Profile &config, the configuration for this widget
46 * @param QWidget *parent, the parent widget 47 * @param QWidget *parent, the parent widget
47 * @param const char *name, the name of the widget, defaults to "" 48 * @param const char *name, the name of the widget, defaults to ""
48 */ 49 */
49 WidgetLayer( const Profile& config, QWidget *parent=0, const char *name=0 ); 50 WidgetLayer( const Profile& config, QWidget *parent=0, const char *name=0 );
50 51
51 /** 52 /**
52 * destructor 53 * destructor
53 */ 54 */
54 virtual ~WidgetLayer(); 55 virtual ~WidgetLayer();
55 56
56public: 57public:
57 /** 58 /**
58 * sets the image 59 * sets the image
59 * @param QArray<Character> const newimg, the new image 60 * @param QArray<Character> const newimg, the new image
60 * @param int lines, lines count of newimg 61 * @param int lines, lines count of newimg
61 * @param int columns, columns count of newimg 62 * @param int columns, columns count of newimg
62 */ 63 */
63 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;
64 65
65 /** 66 /**
66 * annoy the user 67 * annoy the user
67 */ 68 */
68 void bell(); 69 void bell();
69 70
70 /** 71 /**
71 * @return int m_lines, the lines count 72 * @return int m_lines, the lines count
72 */ 73 */
73 int lines(){ return m_lines; } 74 int lines(){ return m_lines; }
74 75
75 /** 76 /**
76 * @return int m_columns, the columns count 77 * @return int m_columns, the columns count
77 */ 78 */
78 int columns(){ return m_columns; } 79 int columns(){ return m_columns; }
79 80
80 /** 81 /**
81 * insert current selection (currently this is only the clipboard) 82 * insert current selection (currently this is only the clipboard)
82 */ 83 */
83 void insertSelection(); 84 void insertSelection();
84 85
85 /** 86 /**
86 * insert text 87 * insert text
87 * @param QString text, the text to be inserted 88 * @param QString text, the text to be inserted
88 */ 89 */
89 void insertText( QString text ); 90 void insertText( QString text );
90 91
91 /** 92 /**
92 * set selection (clipboard) to text 93 * set selection (clipboard) to text
93 * @param const QString &text, the text to be selected 94 * @param const QString &text, the text to be selected
94 */ 95 */
95 void setSelection( const QString &text ); 96 void setSelection( const QString &text );
96 97
97 /** 98 /**
98 * paste content of clipboard 99 * paste content of clipboard
99 */ 100 */
100 void pasteClipboard(); 101 void pasteClipboard();
101 102
102 103
103 /** 104 /**
104 * reload configuration 105 * reload configuration
105 * @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)
106 */ 107 */
107 virtual void reloadConfig( const Profile& config ) = 0; 108 virtual void reloadConfig( const Profile& config ) = 0;
108 109
109 110
110 /** 111 /**
111 * sets the scrollbar (if implemented by successor of this class) 112 * sets the scrollbar (if implemented by successor of this class)
112 */ 113 */
113 virtual void setScroll( int cursor, int slines ); 114 virtual void setScroll( int cursor, int slines );
114 115
115 /** 116 /**
116 * scrolls (if implemented, by successor of this class) 117 * scrolls (if implemented, by successor of this class)
117 * @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)
118 */ 119 */
119 virtual void scroll( int value ); 120 virtual void scroll( int value );
120 121
121signals: 122signals:
122 123
123 /** 124 /**
124 * key was pressed 125 * key was pressed
125 */ 126 */
126 void keyPressed( QKeyEvent *e ); 127 void keyPressed( QKeyEvent *e );
127 128
128 /** 129 /**
129 * whenever Mouse selects something 130 * whenever Mouse selects something
130 * @param int button, the button that us pressed : 131 * @param int button, the button that us pressed :
131 * 0left Button 132 * 0left Button
132 * 3Button released 133 * 3Button released
133 * @param int x, x position 134 * @param int x, x position
134 * @param int y, y position 135 * @param int y, y position
135 * 136 *
136 * // numbering due to layout in old TEWidget 137 * // numbering due to layout in old TEWidget
137 */ 138 */
138 void mousePressed( int button, int x, int y ); 139 void mousePressed( int button, int x, int y );
139 140
140 /** 141 /**
141 * size of image changed 142 * size of image changed
142 * @param int lines, line count of new size 143 * @param int lines, line count of new size
143 * @param int columns, column count of new size 144 * @param int columns, column count of new size
144 */ 145 */
145 void imageSizeChanged( int lines, int columns ); 146 void imageSizeChanged( int lines, int columns );
146 147
147 /** 148 /**
148 * cursor in history changed 149 * cursor in history changed
149 * @param int value, value of history cursor 150 * @param int value, value of history cursor
150 */ 151 */
151 void historyCursorChanged( int value ); 152 void historyCursorChanged( int value );
152 153
153 /** 154 /**
154 * selection should be cleared 155 * selection should be cleared
155 */ 156 */
156 void selectionCleared(); 157 void selectionCleared();
157 158
158 /** 159 /**
159 * selection begin 160 * selection begin
160 * @param const int x, x position 161 * @param const int x, x position
161 * @param const int y, y position 162 * @param const int y, y position
162 */ 163 */
163 void selectionBegin( const int x, const int y ); 164 void selectionBegin( const int x, const int y );
164 165