-rw-r--r-- | noncore/apps/opie-console/common.h | 10 | ||||
-rw-r--r-- | noncore/apps/opie-console/emulation_layer.cpp | 34 | ||||
-rw-r--r-- | noncore/apps/opie-console/emulation_layer.h | 6 | ||||
-rw-r--r-- | noncore/apps/opie-console/screen.cpp | 16 | ||||
-rw-r--r-- | noncore/apps/opie-console/screen.h | 4 | ||||
-rw-r--r-- | noncore/apps/opie-console/vt102emulation.cpp | 18 | ||||
-rw-r--r-- | noncore/apps/opie-console/vt102emulation.h | 2 | ||||
-rw-r--r-- | noncore/apps/opie-console/widget_layer.h | 11 |
8 files changed, 57 insertions, 44 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,7 +1,7 @@ /* -------------------------------------------------------------------------- */ /* */ -/* [TECommon.h] Common Definitions */ +/* [Common.h] Common Definitions */ /* */ /* -------------------------------------------------------------------------- */ /* */ /* Copyright (c) 1997,1998 by Lars Doelle <lars.doelle@on-line.de> */ @@ -15,14 +15,14 @@ /* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ /* */ /* -------------------------------------------------------------------------- */ -/*! \file TECommon.h +/*! \file Common.h \brief Definitions shared between TEScreen and TEWidget. */ -#ifndef TECOMMON_H -#define TECOMMON_H +#ifndef COMMON_H +#define COMMON_H #include <qcolor.h> #ifndef BOOL @@ -110,5 +110,5 @@ struct ColorEntry bool transparent; // if used on bg bool bold; // if used on fg }; -#endif // TECOMMON_H +#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 @@ -75,9 +75,9 @@ - evtl. the bulk operations could be made more transparent. */ #include "emulation_layer.h" -#include "widget.h" +#include "widget_layer.h" #include "screen.h" #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -94,35 +94,35 @@ /*! */ -EmulationLayer::EmulationLayer(Widget* gui) +EmulationLayer::EmulationLayer( WidgetLayer* gui ) : decoder((QTextDecoder*)NULL) { this->gui = gui; - screen[0] = new Screen(gui->Lines(),gui->Columns()); - screen[1] = new Screen(gui->Lines(),gui->Columns()); + screen[0] = new Screen(gui->lines(),gui->columns()); + screen[1] = new Screen(gui->lines(),gui->columns()); scr = screen[0]; bulk_nlcnt = 0; // reset bulk newline counter bulk_incnt = 0; // reset bulk counter connected = FALSE; QObject::connect(&bulk_timer, SIGNAL(timeout()), this, SLOT(showBulk()) ); - QObject::connect(gui,SIGNAL(changedImageSizeSignal(int,int)), + QObject::connect(gui,SIGNAL( imageSizeChanged( int, int ) ), this,SLOT(onImageSizeChange(int,int))); QObject::connect(gui,SIGNAL(changedHistoryCursor(int)), - this,SLOT(onHistoryCursorChange(int))); - QObject::connect(gui,SIGNAL(keyPressedSignal(QKeyEvent*)), + this,SLOT( historyCursorChange( int ) ) ); + QObject::connect(gui,SIGNAL( keyPressed( QKeyEvent* ) ), this,SLOT(onKeyPress(QKeyEvent*))); - QObject::connect(gui,SIGNAL(beginSelectionSignal(const int,const int)), + QObject::connect(gui,SIGNAL( selectionBegin( const int, const int) ), this,SLOT(onSelectionBegin(const int,const int)) ); - QObject::connect(gui,SIGNAL(extendSelectionSignal(const int,const int)), + QObject::connect(gui,SIGNAL( selectionExtended( const int, const int ) ), this,SLOT(onSelectionExtend(const int,const int)) ); - QObject::connect(gui,SIGNAL(endSelectionSignal(const BOOL)), - this,SLOT(setSelection(const BOOL)) ); - QObject::connect(gui,SIGNAL(clearSelectionSignal()), + QObject::connect(gui,SIGNAL( selectionEnd( const bool ) ), + this,SLOT( setSelection( const bool ) ) ); + QObject::connect(gui,SIGNAL( selectionCleared() ), this,SLOT(clearSelection()) ); } /*! @@ -196,9 +196,9 @@ void EmulationLayer::onRcvChar(int c) case '\b' : scr->BackSpace(); break; case '\t' : scr->Tabulate(); break; case '\n' : scr->NewLine(); break; case '\r' : scr->Return(); break; - case 0x07 : gui->Bell(); break; + case 0x07 : gui->bell(); break; default : scr->ShowCharacter(c); break; }; } @@ -302,13 +302,13 @@ void EmulationLayer::showBulk() bulk_nlcnt = 0; // reset bulk newline counter bulk_incnt = 0; // reset bulk counter if (connected) { - Character* image = scr->getCookedImage(); // get the image + QArray<Character> image = scr->getCookedImage(); // get the image gui->setImage(image, scr->getLines(), scr->getColumns()); // actual refresh - free(image); + delete image; //FIXME: check that we do not trigger other draw event here. gui->setScroll(scr->getHistCursor(),scr->getHistLines()); } } @@ -319,9 +319,9 @@ void EmulationLayer::bulkStart() } void EmulationLayer::bulkEnd() { - if ( bulk_nlcnt > gui->Lines() || bulk_incnt > 20 ) + if ( bulk_nlcnt > gui->lines() || bulk_incnt > 20 ) showBulk(); // resets bulk_??cnt to 0, too. else bulk_timer.start(BULK_TIMEOUT,TRUE); } @@ -330,9 +330,9 @@ void EmulationLayer::setConnect(bool c) { connected = c; if ( connected) { - onImageSizeChange(gui->Lines(), gui->Columns()); + onImageSizeChange(gui->lines(), gui->columns()); showBulk(); } 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 @@ -37,9 +37,9 @@ class EmulationLayer : public QObject { Q_OBJECT public: - EmulationLayer(Widget* gui); + EmulationLayer( WidgetLayer* gui ); ~EmulationLayer(); public: virtual void setHistory(bool on); @@ -53,9 +53,9 @@ public slots: // signals incoming from Widget virtual void clearSelection(); virtual void onSelectionBegin(const int x, const int y); virtual void onSelectionExtend(const int x, const int y); - virtual void setSelection(const BOOL preserve_line_breaks); + virtual void setSelection(const bool preserve_line_breaks); public slots: // signals incoming from data source /** @@ -105,9 +105,9 @@ public: void setKeytrans(const char * no); protected: - Widget* gui; + WidgetLayer* gui; Screen* scr; // referes to one `screen' Screen* screen[2]; // 0 = primary, 1 = alternate 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 @@ -67,9 +67,9 @@ Screen::Screen(int lines, int columns) { this->lines = lines; this->columns = columns; - image = (Character*) malloc(lines*columns*sizeof(Character)); + image = QArray<Character>( lines*columns ); tabstops = NULL; initTabStops(); histCursor = 0; @@ -81,9 +81,9 @@ Screen::Screen(int lines, int columns) */ Screen::~Screen() { - free(image); + delete image; if (tabstops) free(tabstops); } /* ------------------------------------------------------------------------- */ @@ -393,9 +393,9 @@ void Screen::resizeImage(int new_lines, int new_columns) } } // make new image - Character* newimg = (Character*) malloc(new_lines*new_columns*sizeof(Character)); + QArray<Character> newimg = QArray<Character>( new_lines * new_columns ); clearSelection(); // clear new image @@ -417,9 +417,9 @@ void Screen::resizeImage(int new_lines, int new_columns) newimg[y*new_columns+x].f = image[loc(x,y)].f; newimg[y*new_columns+x].b = image[loc(x,y)].b; newimg[y*new_columns+x].r = image[loc(x,y)].r; } - free(image); + delete image; image = newimg; lines = new_lines; columns = new_columns; cuX = QMIN(cuX,columns-1); @@ -503,9 +503,9 @@ void Screen::effectiveRendition() freed. */ -Character* Screen::getCookedImage() +QArray<Character> Screen::getCookedImage() { int x,y; Character* merged = (Character*) malloc(lines*columns*sizeof(Character)); Character dft(' ',DEFAULT_FORE_COLOR,DEFAULT_BACK_COLOR,DEFAULT_RENDITION); @@ -546,9 +546,11 @@ Character* Screen::getCookedImage() reverseRendition(&merged[i]); // for reverse display } if (getMode(MODE_Cursor) && (cuY+(hist.getLines()-histCursor) < lines)) // cursor visible reverseRendition(&merged[loc(cuX,cuY+(hist.getLines()-histCursor))]); - return merged; + QArray<Character> res( sizeof( merged ) / sizeof( Character ) ); + res.assign( merged, sizeof( merged ) / sizeof( Character ) ); + return res; } /*! @@ -1158,9 +1160,9 @@ void Screen::addHistLine() int end = columns-1; while (end >= 0 && image[end] == dft) end -= 1; - hist.addCells(image,end+1); + hist.addCells(image.data(), end+1); hist.addLine(); // adjust history cursor histCursor += (hist.getLines()-1 == histCursor); 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 @@ -135,9 +135,9 @@ public: // these are all `Screen' operations void ShowCharacter(unsigned short c); // void resizeImage(int new_lines, int new_columns); // - Character* getCookedImage(); + QArray<Character> getCookedImage(); /*! return the number of lines. */ int getLines() { return lines; } /*! return the number of columns. */ @@ -192,9 +192,9 @@ private: // screen image ---------------- int lines; int columns; - Character *image; // [lines][columns] + QArray<Character> image; // [lines][columns] // history buffer --------------- int histCursor; // display position relative to start of the history buffer 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 @@ -64,9 +64,9 @@ /*! */ -Vt102Emulation::Vt102Emulation(Widget* gui) : EmulationLayer(gui) +Vt102Emulation::Vt102Emulation(WidgetLayer* gui) : EmulationLayer(gui) { QObject::connect(gui,SIGNAL(mouseSignal(int,int,int)), this,SLOT(onMouse(int,int,int))); initTokenizer(); @@ -348,9 +348,9 @@ void Vt102Emulation::tau( int token, int p, int q ) case TY_CTL___('C' ) : /* ETX: ignored */ break; case TY_CTL___('D' ) : /* EOT: ignored */ break; case TY_CTL___('E' ) : reportAnswerBack ( ); break; //VT100 case TY_CTL___('F' ) : /* ACK: ignored */ break; - case TY_CTL___('G' ) : gui->Bell ( ); break; //VT100 + case TY_CTL___('G' ) : gui->bell ( ); break; //VT100 case TY_CTL___('H' ) : scr->BackSpace ( ); break; //VT100 case TY_CTL___('I' ) : scr->Tabulate ( ); break; //VT100 case TY_CTL___('J' ) : scr->NewLine ( ); break; //VT100 case TY_CTL___('K' ) : scr->NewLine ( ); break; //VT100 @@ -736,13 +736,13 @@ void Vt102Emulation::onKeyPress( QKeyEvent* ev ) //printf("cmd: %d, %s, %d\n",cmd,txt,len); { switch(cmd) // ... and execute if found. { - case CMD_emitSelection : gui->emitSelection(); return; - case CMD_scrollPageUp : gui->doScroll(-gui->Lines()/2); return; - case CMD_scrollPageDown : gui->doScroll(+gui->Lines()/2); return; - case CMD_scrollLineUp : gui->doScroll(-1 ); return; - case CMD_scrollLineDown : gui->doScroll(+1 ); return; + case CMD_emitSelection : gui->insertSelection(); return; + case CMD_scrollPageUp : gui->scroll(-gui->lines()/2); return; + case CMD_scrollPageDown : gui->scroll(+gui->lines()/2); return; + case CMD_scrollLineUp : gui->scroll(-1 ); return; + case CMD_scrollLineDown : gui->scroll(+1 ); return; case CMD_send : sendString( txt ); return; case CMD_prevSession : emit prevSession(); return; case CMD_nextSession : emit nextSession(); return; } @@ -923,9 +923,9 @@ void Vt102Emulation::setMode(int m) { currParm.mode[m] = TRUE; switch (m) { - case MODE_Mouse1000 : gui->setMouseMarks(FALSE); + case MODE_Mouse1000 : //gui->setMouseMarks(FALSE); break; case MODE_AppScreen : screen[1]->clearSelection(); screen[1]->clearEntireScreen(); setScreen(1); @@ -942,9 +942,9 @@ void Vt102Emulation::resetMode(int m) { currParm.mode[m] = FALSE; switch (m) { - case MODE_Mouse1000 : gui->setMouseMarks(TRUE); + case MODE_Mouse1000 : //gui->setMouseMarks(TRUE); break; case MODE_AppScreen : screen[0]->clearSelection(); setScreen(0); break; 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 @@ -59,9 +59,9 @@ class Vt102Emulation: public EmulationLayer { Q_OBJECT public: - Vt102Emulation(Widget* gui); + Vt102Emulation(WidgetLayer* gui); ~Vt102Emulation(); public 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 @@ -105,8 +105,19 @@ public: */ virtual void reloadConfig() = 0; + /** + * sets the scrollbar (if implemented by successor of this class) + */ + virtual void setScroll( int cursor, int slines ); + + /** + * scrolls (if implemented, by successor of this class) + * @param int value, how much the widget should scroll up (positive value) or down (negative value) + */ + virtual void scroll( int value ); + signals: /** * key was pressed |