summaryrefslogtreecommitdiff
authoribotty <ibotty>2002-10-09 17:40:35 (UTC)
committer ibotty <ibotty>2002-10-09 17:40:35 (UTC)
commitc80818d8388c07c1606a70306aea0c9a1e17ea3c (patch) (unidiff)
treec010af190b398b698299a42ce06217c950d6525d
parente0b4cca74ec611583c38901a83c448592e8ebec6 (diff)
downloadopie-c80818d8388c07c1606a70306aea0c9a1e17ea3c.zip
opie-c80818d8388c07c1606a70306aea0c9a1e17ea3c.tar.gz
opie-c80818d8388c07c1606a70306aea0c9a1e17ea3c.tar.bz2
updated emulationLayer to use WidgetLayer (not Widget, which is b0rked)
default.cpp is broken, because there is still no new widget (coming soon...)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/common.h10
-rw-r--r--noncore/apps/opie-console/emulation_layer.cpp48
-rw-r--r--noncore/apps/opie-console/emulation_layer.h6
-rw-r--r--noncore/apps/opie-console/screen.cpp22
-rw-r--r--noncore/apps/opie-console/screen.h6
-rw-r--r--noncore/apps/opie-console/vt102emulation.cpp18
-rw-r--r--noncore/apps/opie-console/vt102emulation.h2
-rw-r--r--noncore/apps/opie-console/widget_layer.h11
8 files changed, 68 insertions, 55 deletions
diff --git a/noncore/apps/opie-console/common.h b/noncore/apps/opie-console/common.h
index 979c2bd..a621ff5 100644
--- a/noncore/apps/opie-console/common.h
+++ b/noncore/apps/opie-console/common.h
@@ -1,6 +1,6 @@
1/* -------------------------------------------------------------------------- */ 1/* -------------------------------------------------------------------------- */
2/* */ 2/* */
3/* [TECommon.h] Common Definitions */ 3/* [Common.h] Common Definitions */
4/* */ 4/* */
5/* -------------------------------------------------------------------------- */ 5/* -------------------------------------------------------------------------- */
6/* */ 6/* */
@@ -16,12 +16,12 @@
16/* */ 16/* */
17/* -------------------------------------------------------------------------- */ 17/* -------------------------------------------------------------------------- */
18 18
19/*! \file TECommon.h 19/*! \file Common.h
20 \brief Definitions shared between TEScreen and TEWidget. 20 \brief Definitions shared between TEScreen and TEWidget.
21*/ 21*/
22 22
23#ifndef TECOMMON_H 23#ifndef COMMON_H
24#define TECOMMON_H 24#define COMMON_H
25 25
26#include <qcolor.h> 26#include <qcolor.h>
27 27
@@ -111,4 +111,4 @@ struct ColorEntry
111 bool bold; // if used on fg 111 bool bold; // if used on fg
112}; 112};
113 113
114#endif // TECOMMON_H 114#endif // COMMON_H
diff --git a/noncore/apps/opie-console/emulation_layer.cpp b/noncore/apps/opie-console/emulation_layer.cpp
index 6c420e0..5baf05c 100644
--- a/noncore/apps/opie-console/emulation_layer.cpp
+++ b/noncore/apps/opie-console/emulation_layer.cpp
@@ -76,7 +76,7 @@
76*/ 76*/
77 77
78#include "emulation_layer.h" 78#include "emulation_layer.h"
79#include "widget.h" 79#include "widget_layer.h"
80#include "screen.h" 80#include "screen.h"
81#include <stdio.h> 81#include <stdio.h>
82#include <stdlib.h> 82#include <stdlib.h>
@@ -95,34 +95,34 @@
95/*! 95/*!
96*/ 96*/
97 97
98EmulationLayer::EmulationLayer(Widget* gui) 98EmulationLayer::EmulationLayer( WidgetLayer* gui )
99: decoder((QTextDecoder*)NULL) 99: decoder((QTextDecoder*)NULL)
100{ 100{
101 this->gui = gui; 101 this->gui = gui;
102 102
103 screen[0] = new Screen(gui->Lines(),gui->Columns()); 103 screen[0] = new Screen(gui->lines(),gui->columns());
104 screen[1] = new Screen(gui->Lines(),gui->Columns()); 104 screen[1] = new Screen(gui->lines(),gui->columns());
105 scr = screen[0]; 105 scr = screen[0];
106 106
107 bulk_nlcnt = 0; // reset bulk newline counter 107 bulk_nlcnt = 0; // reset bulk newline counter
108 bulk_incnt = 0; // reset bulk counter 108 bulk_incnt = 0; // reset bulk counter
109 connected = FALSE; 109 connected = FALSE;
110 110
111 QObject::connect(&bulk_timer, SIGNAL(timeout()), this, SLOT(showBulk()) ); 111 QObject::connect(&bulk_timer, SIGNAL( timeout() ), this, SLOT( showBulk() ) );
112 QObject::connect(gui,SIGNAL(changedImageSizeSignal(int,int)), 112 QObject::connect(gui,SIGNAL( imageSizeChanged( int, int ) ),
113 this,SLOT(onImageSizeChange(int,int))); 113 this,SLOT( onImageSizeChange( int, int ) ) );
114 QObject::connect(gui,SIGNAL(changedHistoryCursor(int)), 114 QObject::connect(gui,SIGNAL( changedHistoryCursor( int ) ),
115 this,SLOT(onHistoryCursorChange(int))); 115 this,SLOT( historyCursorChange( int ) ) );
116 QObject::connect(gui,SIGNAL(keyPressedSignal(QKeyEvent*)), 116 QObject::connect(gui,SIGNAL( keyPressed( QKeyEvent* ) ),
117 this,SLOT(onKeyPress(QKeyEvent*))); 117 this,SLOT( onKeyPress( QKeyEvent* ) ) );
118 QObject::connect(gui,SIGNAL(beginSelectionSignal(const int,const int)), 118 QObject::connect(gui,SIGNAL( selectionBegin( const int, const int) ),
119 this,SLOT(onSelectionBegin(const int,const int)) ); 119 this,SLOT( onSelectionBegin( const int, const int ) ) );
120 QObject::connect(gui,SIGNAL(extendSelectionSignal(const int,const int)), 120 QObject::connect(gui,SIGNAL( selectionExtended( const int, const int ) ),
121 this,SLOT(onSelectionExtend(const int,const int)) ); 121 this,SLOT( onSelectionExtend( const int,const int ) ) );
122 QObject::connect(gui,SIGNAL(endSelectionSignal(const BOOL)), 122 QObject::connect(gui,SIGNAL( selectionEnd( const bool ) ),
123 this,SLOT(setSelection(const BOOL)) ); 123 this,SLOT( setSelection( const bool ) ) );
124 QObject::connect(gui,SIGNAL(clearSelectionSignal()), 124 QObject::connect(gui,SIGNAL( selectionCleared() ),
125 this,SLOT(clearSelection()) ); 125 this,SLOT( clearSelection() ) );
126} 126}
127 127
128/*! 128/*!
@@ -197,7 +197,7 @@ void EmulationLayer::onRcvChar(int c)
197 case '\t' : scr->Tabulate(); break; 197 case '\t' : scr->Tabulate(); break;
198 case '\n' : scr->NewLine(); break; 198 case '\n' : scr->NewLine(); break;
199 case '\r' : scr->Return(); break; 199 case '\r' : scr->Return(); break;
200 case 0x07 : gui->Bell(); break; 200 case 0x07 : gui->bell(); break;
201 default : scr->ShowCharacter(c); break; 201 default : scr->ShowCharacter(c); break;
202 }; 202 };
203} 203}
@@ -303,11 +303,11 @@ void EmulationLayer::showBulk()
303 bulk_incnt = 0; // reset bulk counter 303 bulk_incnt = 0; // reset bulk counter
304 if (connected) 304 if (connected)
305 { 305 {
306 Character* image = scr->getCookedImage(); // get the image 306 QArray<Character> image = scr->getCookedImage(); // get the image
307 gui->setImage(image, 307 gui->setImage(image,
308 scr->getLines(), 308 scr->getLines(),
309 scr->getColumns()); // actual refresh 309 scr->getColumns()); // actual refresh
310 free(image); 310 delete image;
311 //FIXME: check that we do not trigger other draw event here. 311 //FIXME: check that we do not trigger other draw event here.
312 gui->setScroll(scr->getHistCursor(),scr->getHistLines()); 312 gui->setScroll(scr->getHistCursor(),scr->getHistLines());
313 } 313 }
@@ -320,7 +320,7 @@ void EmulationLayer::bulkStart()
320 320
321void EmulationLayer::bulkEnd() 321void EmulationLayer::bulkEnd()
322{ 322{
323 if ( bulk_nlcnt > gui->Lines() || bulk_incnt > 20 ) 323 if ( bulk_nlcnt > gui->lines() || bulk_incnt > 20 )
324 showBulk(); // resets bulk_??cnt to 0, too. 324 showBulk(); // resets bulk_??cnt to 0, too.
325 else 325 else
326 bulk_timer.start(BULK_TIMEOUT,TRUE); 326 bulk_timer.start(BULK_TIMEOUT,TRUE);
@@ -331,7 +331,7 @@ void EmulationLayer::setConnect(bool c)
331 connected = c; 331 connected = c;
332 if ( connected) 332 if ( connected)
333 { 333 {
334 onImageSizeChange(gui->Lines(), gui->Columns()); 334 onImageSizeChange(gui->lines(), gui->columns());
335 showBulk(); 335 showBulk();
336 } 336 }
337 else 337 else
diff --git a/noncore/apps/opie-console/emulation_layer.h b/noncore/apps/opie-console/emulation_layer.h
index 5781acc..91a4856 100644
--- a/noncore/apps/opie-console/emulation_layer.h
+++ b/noncore/apps/opie-console/emulation_layer.h
@@ -38,7 +38,7 @@ class EmulationLayer : public QObject
38 38
39public: 39public:
40 40
41 EmulationLayer(Widget* gui); 41 EmulationLayer( WidgetLayer* gui );
42 ~EmulationLayer(); 42 ~EmulationLayer();
43 43
44public: 44public:
@@ -54,7 +54,7 @@ public slots: // signals incoming from Widget
54 virtual void clearSelection(); 54 virtual void clearSelection();
55 virtual void onSelectionBegin(const int x, const int y); 55 virtual void onSelectionBegin(const int x, const int y);
56 virtual void onSelectionExtend(const int x, const int y); 56 virtual void onSelectionExtend(const int x, const int y);
57 virtual void setSelection(const BOOL preserve_line_breaks); 57 virtual void setSelection(const bool preserve_line_breaks);
58 58
59public slots: // signals incoming from data source 59public slots: // signals incoming from data source
60 60
@@ -106,7 +106,7 @@ public:
106 106
107protected: 107protected:
108 108
109 Widget* gui; 109 WidgetLayer* gui;
110 Screen* scr; // referes to one `screen' 110 Screen* scr; // referes to one `screen'
111 Screen* screen[2]; // 0 = primary, 1 = alternate 111 Screen* screen[2]; // 0 = primary, 1 = alternate
112 void setScreen(int n); // set `scr' to `screen[n]' 112 void setScreen(int n); // set `scr' to `screen[n]'
diff --git a/noncore/apps/opie-console/screen.cpp b/noncore/apps/opie-console/screen.cpp
index 8ebc47d..a796ba1 100644
--- a/noncore/apps/opie-console/screen.cpp
+++ b/noncore/apps/opie-console/screen.cpp
@@ -68,7 +68,7 @@ Screen::Screen(int lines, int columns)
68 this->lines = lines; 68 this->lines = lines;
69 this->columns = columns; 69 this->columns = columns;
70 70
71 image = (Character*) malloc(lines*columns*sizeof(Character)); 71 image = QArray<Character>( lines*columns );
72 tabstops = NULL; initTabStops(); 72 tabstops = NULL; initTabStops();
73 73
74 histCursor = 0; 74 histCursor = 0;
@@ -82,7 +82,7 @@ Screen::Screen(int lines, int columns)
82 82
83Screen::~Screen() 83Screen::~Screen()
84{ 84{
85 free(image); 85 delete image;
86 if (tabstops) free(tabstops); 86 if (tabstops) free(tabstops);
87} 87}
88 88
@@ -394,7 +394,7 @@ void Screen::resizeImage(int new_lines, int new_columns)
394 } 394 }
395 395
396 // make new image 396 // make new image
397 Character* newimg = (Character*) malloc(new_lines*new_columns*sizeof(Character)); 397 QArray<Character> newimg = QArray<Character>( new_lines * new_columns );
398 398
399 clearSelection(); 399 clearSelection();
400 400
@@ -418,7 +418,7 @@ void Screen::resizeImage(int new_lines, int new_columns)
418 newimg[y*new_columns+x].b = image[loc(x,y)].b; 418 newimg[y*new_columns+x].b = image[loc(x,y)].b;
419 newimg[y*new_columns+x].r = image[loc(x,y)].r; 419 newimg[y*new_columns+x].r = image[loc(x,y)].r;
420 } 420 }
421 free(image); 421 delete image;
422 image = newimg; 422 image = newimg;
423 lines = new_lines; 423 lines = new_lines;
424 columns = new_columns; 424 columns = new_columns;
@@ -466,7 +466,7 @@ void Screen::resizeImage(int new_lines, int new_columns)
466 into RE_BOLD and RE_INTENSIVE. 466 into RE_BOLD and RE_INTENSIVE.
467*/ 467*/
468 468
469void Screen::reverseRendition(Character* p) 469void Screen::reverseRendition(Character *p)
470{ UINT8 f = p->f; UINT8 b = p->b; 470{ UINT8 f = p->f; UINT8 b = p->b;
471 p->f = b; p->b = f; //p->r &= ~RE_TRANSPARENT; 471 p->f = b; p->b = f; //p->r &= ~RE_TRANSPARENT;
472} 472}
@@ -504,9 +504,9 @@ void Screen::effectiveRendition()
504 504
505*/ 505*/
506 506
507Character* Screen::getCookedImage() 507QArray<Character> Screen::getCookedImage()
508{ int x,y; 508{ int x,y;
509 Character* merged = (Character*) malloc(lines*columns*sizeof(Character)); 509 Character* merged = (Character*) malloc( lines * columns * sizeof( Character ) );
510 Character dft(' ',DEFAULT_FORE_COLOR,DEFAULT_BACK_COLOR,DEFAULT_RENDITION); 510 Character dft(' ',DEFAULT_FORE_COLOR,DEFAULT_BACK_COLOR,DEFAULT_RENDITION);
511 511
512 for (y = 0; (y < lines) && (y < (hist.getLines()-histCursor)); y++) 512 for (y = 0; (y < lines) && (y < (hist.getLines()-histCursor)); y++)
@@ -515,7 +515,7 @@ Character* Screen::getCookedImage()
515 int yp = y*columns; 515 int yp = y*columns;
516 int yq = (y+histCursor)*columns; 516 int yq = (y+histCursor)*columns;
517 517
518 hist.getCells(y+histCursor,0,len,merged+yp); 518 hist.getCells( y+histCursor, 0, len, merged+yp );
519 for (x = len; x < columns; x++) merged[yp+x] = dft; 519 for (x = len; x < columns; x++) merged[yp+x] = dft;
520 for (x = 0; x < columns; x++) 520 for (x = 0; x < columns; x++)
521 { int p=x + yp; int q=x + yq; 521 { int p=x + yp; int q=x + yq;
@@ -547,7 +547,9 @@ Character* Screen::getCookedImage()
547 } 547 }
548 if (getMode(MODE_Cursor) && (cuY+(hist.getLines()-histCursor) < lines)) // cursor visible 548 if (getMode(MODE_Cursor) && (cuY+(hist.getLines()-histCursor) < lines)) // cursor visible
549 reverseRendition(&merged[loc(cuX,cuY+(hist.getLines()-histCursor))]); 549 reverseRendition(&merged[loc(cuX,cuY+(hist.getLines()-histCursor))]);
550 return merged; 550 QArray<Character> res( sizeof( merged ) / sizeof( Character ) );
551 res.assign( merged, sizeof( merged ) / sizeof( Character ) );
552 return res;
551} 553}
552 554
553 555
@@ -1159,7 +1161,7 @@ void Screen::addHistLine()
1159 while (end >= 0 && image[end] == dft) 1161 while (end >= 0 && image[end] == dft)
1160 end -= 1; 1162 end -= 1;
1161 1163
1162 hist.addCells(image,end+1); 1164 hist.addCells(image.data(), end+1);
1163 hist.addLine(); 1165 hist.addLine();
1164 1166
1165 // adjust history cursor 1167 // adjust history cursor
diff --git a/noncore/apps/opie-console/screen.h b/noncore/apps/opie-console/screen.h
index cd7422a..38b84ab 100644
--- a/noncore/apps/opie-console/screen.h
+++ b/noncore/apps/opie-console/screen.h
@@ -136,7 +136,7 @@ public: // these are all `Screen' operations
136 // 136 //
137 void resizeImage(int new_lines, int new_columns); 137 void resizeImage(int new_lines, int new_columns);
138 // 138 //
139 Character* getCookedImage(); 139 QArray<Character> getCookedImage();
140 140
141 /*! return the number of lines. */ 141 /*! return the number of lines. */
142 int getLines() { return lines; } 142 int getLines() { return lines; }
@@ -175,7 +175,7 @@ private: // helper
175 void initTabStops(); 175 void initTabStops();
176 176
177 void effectiveRendition(); 177 void effectiveRendition();
178 void reverseRendition(Character* p); 178 void reverseRendition( Character *p );
179 179
180private: 180private:
181 181
@@ -193,7 +193,7 @@ private:
193 193
194 int lines; 194 int lines;
195 int columns; 195 int columns;
196 Character *image; // [lines][columns] 196 QArray<Character> image; // [lines][columns]
197 197
198 // history buffer --------------- 198 // history buffer ---------------
199 199
diff --git a/noncore/apps/opie-console/vt102emulation.cpp b/noncore/apps/opie-console/vt102emulation.cpp
index 2220f4e..7eecef3 100644
--- a/noncore/apps/opie-console/vt102emulation.cpp
+++ b/noncore/apps/opie-console/vt102emulation.cpp
@@ -65,7 +65,7 @@
65/*! 65/*!
66*/ 66*/
67 67
68Vt102Emulation::Vt102Emulation(Widget* gui) : EmulationLayer(gui) 68Vt102Emulation::Vt102Emulation(WidgetLayer* gui) : EmulationLayer(gui)
69{ 69{
70 QObject::connect(gui,SIGNAL(mouseSignal(int,int,int)), 70 QObject::connect(gui,SIGNAL(mouseSignal(int,int,int)),
71 this,SLOT(onMouse(int,int,int))); 71 this,SLOT(onMouse(int,int,int)));
@@ -349,7 +349,7 @@ void Vt102Emulation::tau( int token, int p, int q )
349 case TY_CTL___('D' ) : /* EOT: ignored */ break; 349 case TY_CTL___('D' ) : /* EOT: ignored */ break;
350 case TY_CTL___('E' ) : reportAnswerBack ( ); break; //VT100 350 case TY_CTL___('E' ) : reportAnswerBack ( ); break; //VT100
351 case TY_CTL___('F' ) : /* ACK: ignored */ break; 351 case TY_CTL___('F' ) : /* ACK: ignored */ break;
352 case TY_CTL___('G' ) : gui->Bell ( ); break; //VT100 352 case TY_CTL___('G' ) : gui->bell ( ); break; //VT100
353 case TY_CTL___('H' ) : scr->BackSpace ( ); break; //VT100 353 case TY_CTL___('H' ) : scr->BackSpace ( ); break; //VT100
354 case TY_CTL___('I' ) : scr->Tabulate ( ); break; //VT100 354 case TY_CTL___('I' ) : scr->Tabulate ( ); break; //VT100
355 case TY_CTL___('J' ) : scr->NewLine ( ); break; //VT100 355 case TY_CTL___('J' ) : scr->NewLine ( ); break; //VT100
@@ -737,11 +737,11 @@ void Vt102Emulation::onKeyPress( QKeyEvent* ev )
737 { 737 {
738 switch(cmd) // ... and execute if found. 738 switch(cmd) // ... and execute if found.
739 { 739 {
740 case CMD_emitSelection : gui->emitSelection(); return; 740 case CMD_emitSelection : gui->insertSelection(); return;
741 case CMD_scrollPageUp : gui->doScroll(-gui->Lines()/2); return; 741 case CMD_scrollPageUp : gui->scroll(-gui->lines()/2); return;
742 case CMD_scrollPageDown : gui->doScroll(+gui->Lines()/2); return; 742 case CMD_scrollPageDown : gui->scroll(+gui->lines()/2); return;
743 case CMD_scrollLineUp : gui->doScroll(-1 ); return; 743 case CMD_scrollLineUp : gui->scroll(-1 ); return;
744 case CMD_scrollLineDown : gui->doScroll(+1 ); return; 744 case CMD_scrollLineDown : gui->scroll(+1 ); return;
745 case CMD_send : sendString( txt ); return; 745 case CMD_send : sendString( txt ); return;
746 case CMD_prevSession : emit prevSession(); return; 746 case CMD_prevSession : emit prevSession(); return;
747 case CMD_nextSession : emit nextSession(); return; 747 case CMD_nextSession : emit nextSession(); return;
@@ -924,7 +924,7 @@ void Vt102Emulation::setMode(int m)
924 currParm.mode[m] = TRUE; 924 currParm.mode[m] = TRUE;
925 switch (m) 925 switch (m)
926 { 926 {
927 case MODE_Mouse1000 : gui->setMouseMarks(FALSE); 927 case MODE_Mouse1000 : //gui->setMouseMarks(FALSE);
928 break; 928 break;
929 case MODE_AppScreen : screen[1]->clearSelection(); 929 case MODE_AppScreen : screen[1]->clearSelection();
930 screen[1]->clearEntireScreen(); 930 screen[1]->clearEntireScreen();
@@ -943,7 +943,7 @@ void Vt102Emulation::resetMode(int m)
943 currParm.mode[m] = FALSE; 943 currParm.mode[m] = FALSE;
944 switch (m) 944 switch (m)
945 { 945 {
946 case MODE_Mouse1000 : gui->setMouseMarks(TRUE); 946 case MODE_Mouse1000 : //gui->setMouseMarks(TRUE);
947 break; 947 break;
948 case MODE_AppScreen : screen[0]->clearSelection(); 948 case MODE_AppScreen : screen[0]->clearSelection();
949 setScreen(0); 949 setScreen(0);
diff --git a/noncore/apps/opie-console/vt102emulation.h b/noncore/apps/opie-console/vt102emulation.h
index a3d0ae6..de4a62f 100644
--- a/noncore/apps/opie-console/vt102emulation.h
+++ b/noncore/apps/opie-console/vt102emulation.h
@@ -60,7 +60,7 @@ class Vt102Emulation: public EmulationLayer
60 60
61public: 61public:
62 62
63 Vt102Emulation(Widget* gui); 63 Vt102Emulation(WidgetLayer* gui);
64 ~Vt102Emulation(); 64 ~Vt102Emulation();
65 65
66public slots: // signals incoming from Widget 66public slots: // signals incoming from Widget
diff --git a/noncore/apps/opie-console/widget_layer.h b/noncore/apps/opie-console/widget_layer.h
index 6e2e61e..5bd2ef9 100644
--- a/noncore/apps/opie-console/widget_layer.h
+++ b/noncore/apps/opie-console/widget_layer.h
@@ -106,6 +106,17 @@ public:
106 virtual void reloadConfig() = 0; 106 virtual void reloadConfig() = 0;
107 107
108 108
109 /**
110 * sets the scrollbar (if implemented by successor of this class)
111 */
112 virtual void setScroll( int cursor, int slines );
113
114 /**
115 * scrolls (if implemented, by successor of this class)
116 * @param int value, how much the widget should scroll up (positive value) or down (negative value)
117 */
118 virtual void scroll( int value );
119
109signals: 120signals:
110 121
111 /** 122 /**