-rw-r--r-- | noncore/apps/opie-console/widget_layer.cpp | 26 | ||||
-rw-r--r-- | noncore/apps/opie-console/widget_layer.h | 27 |
2 files changed, 36 insertions, 17 deletions
diff --git a/noncore/apps/opie-console/widget_layer.cpp b/noncore/apps/opie-console/widget_layer.cpp index 28227e4..f428ed4 100644 --- a/noncore/apps/opie-console/widget_layer.cpp +++ b/noncore/apps/opie-console/widget_layer.cpp @@ -22,6 +22,4 @@ -#define loc(X,Y) ((Y)*m_columns+(X)) - -WidgetLayer::WidgetLayer( QObject *parent, const char *name ) : QObject( parent, name ) +WidgetLayer::WidgetLayer( QWidget *parent, const char *name ) : QFrame( parent, name ) { @@ -39,8 +37,13 @@ WidgetLayer::WidgetLayer( QObject *parent, const char *name ) : QObject( parent - m_image = QArray<Character>(); + // just for demonstrating + //m_image = QArray<Character>( m_lines * m_columns ); + m_image = QArray<Character>( 1 ); + } + WidgetLayer::~WidgetLayer() { - // clean up! + // clean up + delete m_image; } @@ -60,3 +63,3 @@ void WidgetLayer::propagateSize() { - QArray<Character> oldimage = m_image; + QArray<Character> oldimage = m_image.copy(); int oldlines = m_lines; @@ -67,6 +70,4 @@ void WidgetLayer::propagateSize() // copy old image, to reduce flicker - if ( oldimage ) + if ( ! oldimage.isEmpty() ) { - //FIXME: is it possible to do this with QArray.dublicate()? - int lins = QMIN( oldlines, m_lines ); @@ -79,3 +80,2 @@ void WidgetLayer::propagateSize() } - //free( oldimage ); } @@ -84,2 +84,4 @@ void WidgetLayer::propagateSize() + delete oldimage; + m_resizing = true; @@ -92,4 +94,4 @@ void WidgetLayer::makeImage() calcGeometry(); - m_image = QArray<Character>(); - clearImage(); + m_image = QArray<Character>( m_columns * m_lines ); + clearImage(); } diff --git a/noncore/apps/opie-console/widget_layer.h b/noncore/apps/opie-console/widget_layer.h index 07ec12a..99d248e 100644 --- a/noncore/apps/opie-console/widget_layer.h +++ b/noncore/apps/opie-console/widget_layer.h @@ -17,2 +17,4 @@ #include <qapplication.h> +#include <qframe.h> +#include <qarray.h> #include <qtimer.h> @@ -26,3 +28,12 @@ -class WidgetLayer : public QObject +/* + * given a pseudo location ( column, line ), + * returns the actual index, in the QArray<Character> + */ +#define loc(X,Y) ((Y)*m_columns+(X)) + + + + +class WidgetLayer : public QFrame { Q_OBJECT @@ -34,3 +45,3 @@ public: */ - WidgetLayer( QObject *parent=0, const char *name=0 ); + WidgetLayer( QWidget *parent=0, const char *name=0 ); @@ -45,3 +56,3 @@ public: */ - virtual void setImage( const Character* const newimg, int lines, int colums ) = 0; + virtual void setImage( QArray<Character> const newimg, int lines, int colums ); @@ -143,3 +154,3 @@ protected: /** - * + *determines count of lines and columns */ @@ -175,2 +186,8 @@ protected: * current character image + * + * a Character at loc( column, line ) + * has the actual index: + * ix = line * m_columns + column; + * + * use loc( x, y ) macro to access. */ @@ -194,3 +211,3 @@ protected: /** - * whether widget was resized + * whether widget is resizing */ |