summaryrefslogtreecommitdiff
Side-by-side diff
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 @@
/* -------------------------------------------------------------------------- */
/* */
-/* [TECommon.h] Common Definitions */
+/* [Common.h] Common Definitions */
/* */
/* -------------------------------------------------------------------------- */
/* */
@@ -16,12 +16,12 @@
/* */
/* -------------------------------------------------------------------------- */
-/*! \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>
@@ -111,4 +111,4 @@ struct ColorEntry
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
@@ -76,7 +76,7 @@
*/
#include "emulation_layer.h"
-#include "widget.h"
+#include "widget_layer.h"
#include "screen.h"
#include <stdio.h>
#include <stdlib.h>
@@ -95,34 +95,34 @@
/*!
*/
-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)),
- this,SLOT(onImageSizeChange(int,int)));
- QObject::connect(gui,SIGNAL(changedHistoryCursor(int)),
- this,SLOT(onHistoryCursorChange(int)));
- QObject::connect(gui,SIGNAL(keyPressedSignal(QKeyEvent*)),
- this,SLOT(onKeyPress(QKeyEvent*)));
- QObject::connect(gui,SIGNAL(beginSelectionSignal(const int,const int)),
- this,SLOT(onSelectionBegin(const int,const int)) );
- QObject::connect(gui,SIGNAL(extendSelectionSignal(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()),
- this,SLOT(clearSelection()) );
+ QObject::connect(&bulk_timer, SIGNAL( timeout() ), this, SLOT( showBulk() ) );
+ QObject::connect(gui,SIGNAL( imageSizeChanged( int, int ) ),
+ this,SLOT( onImageSizeChange( int, int ) ) );
+ QObject::connect(gui,SIGNAL( changedHistoryCursor( int ) ),
+ this,SLOT( historyCursorChange( int ) ) );
+ QObject::connect(gui,SIGNAL( keyPressed( QKeyEvent* ) ),
+ this,SLOT( onKeyPress( QKeyEvent* ) ) );
+ QObject::connect(gui,SIGNAL( selectionBegin( const int, const int) ),
+ this,SLOT( onSelectionBegin( const int, const int ) ) );
+ QObject::connect(gui,SIGNAL( selectionExtended( const int, const int ) ),
+ this,SLOT( onSelectionExtend( const int,const int ) ) );
+ QObject::connect(gui,SIGNAL( selectionEnd( const bool ) ),
+ this,SLOT( setSelection( const bool ) ) );
+ QObject::connect(gui,SIGNAL( selectionCleared() ),
+ this,SLOT( clearSelection() ) );
}
/*!
@@ -197,7 +197,7 @@ void EmulationLayer::onRcvChar(int c)
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;
};
}
@@ -303,11 +303,11 @@ void EmulationLayer::showBulk()
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());
}
@@ -320,7 +320,7 @@ 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);
@@ -331,7 +331,7 @@ 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
@@ -38,7 +38,7 @@ class EmulationLayer : public QObject
public:
- EmulationLayer(Widget* gui);
+ EmulationLayer( WidgetLayer* gui );
~EmulationLayer();
public:
@@ -54,7 +54,7 @@ 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
@@ -106,7 +106,7 @@ public:
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
@@ -68,7 +68,7 @@ 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;
@@ -82,7 +82,7 @@ Screen::Screen(int lines, int columns)
Screen::~Screen()
{
- free(image);
+ delete image;
if (tabstops) free(tabstops);
}
@@ -394,7 +394,7 @@ 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();
@@ -418,7 +418,7 @@ void Screen::resizeImage(int new_lines, int new_columns)
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;
@@ -466,7 +466,7 @@ void Screen::resizeImage(int new_lines, int new_columns)
into RE_BOLD and RE_INTENSIVE.
*/
-void Screen::reverseRendition(Character* p)
+void Screen::reverseRendition(Character *p)
{ UINT8 f = p->f; UINT8 b = p->b;
p->f = b; p->b = f; //p->r &= ~RE_TRANSPARENT;
}
@@ -504,9 +504,9 @@ void Screen::effectiveRendition()
*/
-Character* Screen::getCookedImage()
+QArray<Character> Screen::getCookedImage()
{ int x,y;
- Character* merged = (Character*) malloc(lines*columns*sizeof(Character));
+ Character* merged = (Character*) malloc( lines * columns * sizeof( Character ) );
Character dft(' ',DEFAULT_FORE_COLOR,DEFAULT_BACK_COLOR,DEFAULT_RENDITION);
for (y = 0; (y < lines) && (y < (hist.getLines()-histCursor)); y++)
@@ -515,7 +515,7 @@ Character* Screen::getCookedImage()
int yp = y*columns;
int yq = (y+histCursor)*columns;
- hist.getCells(y+histCursor,0,len,merged+yp);
+ hist.getCells( y+histCursor, 0, len, merged+yp );
for (x = len; x < columns; x++) merged[yp+x] = dft;
for (x = 0; x < columns; x++)
{ int p=x + yp; int q=x + yq;
@@ -547,7 +547,9 @@ Character* Screen::getCookedImage()
}
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;
}
@@ -1159,7 +1161,7 @@ void Screen::addHistLine()
while (end >= 0 && image[end] == dft)
end -= 1;
- hist.addCells(image,end+1);
+ hist.addCells(image.data(), end+1);
hist.addLine();
// 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
//
void resizeImage(int new_lines, int new_columns);
//
- Character* getCookedImage();
+ QArray<Character> getCookedImage();
/*! return the number of lines. */
int getLines() { return lines; }
@@ -175,7 +175,7 @@ private: // helper
void initTabStops();
void effectiveRendition();
- void reverseRendition(Character* p);
+ void reverseRendition( Character *p );
private:
@@ -193,7 +193,7 @@ private:
int lines;
int columns;
- Character *image; // [lines][columns]
+ QArray<Character> image; // [lines][columns]
// 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
@@ -65,7 +65,7 @@
/*!
*/
-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)));
@@ -349,7 +349,7 @@ void Vt102Emulation::tau( int token, int p, int q )
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
@@ -737,11 +737,11 @@ void Vt102Emulation::onKeyPress( QKeyEvent* ev )
{
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;
@@ -924,7 +924,7 @@ 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();
@@ -943,7 +943,7 @@ 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);
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
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
@@ -106,6 +106,17 @@ 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:
/**