summaryrefslogtreecommitdiff
path: root/noncore
authorzecke <zecke>2002-10-14 13:16:07 (UTC)
committer zecke <zecke>2002-10-14 13:16:07 (UTC)
commit17e4897122da8089fadb05496d09fb196919f674 (patch) (unidiff)
tree5445c6761d4215bc1c532407c79ab3fbbae6b551 /noncore
parent767d7347ce002e7633278d66758e17d49f40b0f0 (diff)
downloadopie-17e4897122da8089fadb05496d09fb196919f674.zip
opie-17e4897122da8089fadb05496d09fb196919f674.tar.gz
opie-17e4897122da8089fadb05496d09fb196919f674.tar.bz2
Hi Murphy!
One ColorEntry *color_table in the class and one color table at the end of the file Which one does the Compiler pick? Fix crashes! ColorEntry use bitfields
Diffstat (limited to 'noncore') (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-console/common.h4
-rw-r--r--noncore/apps/opie-console/emulation_widget.cpp35
-rw-r--r--noncore/apps/opie-console/emulation_widget.h2
3 files changed, 23 insertions, 18 deletions
diff --git a/noncore/apps/opie-console/common.h b/noncore/apps/opie-console/common.h
index a621ff5..645d5c5 100644
--- a/noncore/apps/opie-console/common.h
+++ b/noncore/apps/opie-console/common.h
@@ -98,17 +98,17 @@ inline BOOL operator != (Character a, Character b)
98/*! 98/*!
99*/ 99*/
100struct ColorEntry 100struct ColorEntry
101{ 101{
102 ColorEntry(QColor c, bool tr, bool b) : color(c), transparent(tr), bold(b) {} 102 ColorEntry(QColor c, bool tr, bool b) : color(c), transparent(tr), bold(b) {}
103 ColorEntry() : transparent(false), bold(false) {} // default constructors 103 ColorEntry() : transparent(false), bold(false) {} // default constructors
104 void operator=(const ColorEntry& rhs) { 104 void operator=(const ColorEntry& rhs) {
105 color = rhs.color; 105 color = rhs.color;
106 transparent = rhs.transparent; 106 transparent = rhs.transparent;
107 bold = rhs.bold; 107 bold = rhs.bold;
108 } 108 }
109 QColor color; 109 QColor color;
110 bool transparent; // if used on bg 110 bool transparent : 1; // if used on bg
111 bool bold; // if used on fg 111 bool bold : 1; // if used on fg
112}; 112};
113 113
114#endif // COMMON_H 114#endif // COMMON_H
diff --git a/noncore/apps/opie-console/emulation_widget.cpp b/noncore/apps/opie-console/emulation_widget.cpp
index 5a02fac..9138f29 100644
--- a/noncore/apps/opie-console/emulation_widget.cpp
+++ b/noncore/apps/opie-console/emulation_widget.cpp
@@ -8,24 +8,40 @@
8#include <qwidget.h> 8#include <qwidget.h>
9#include <qarray.h> 9#include <qarray.h>
10#include <qstring.h> 10#include <qstring.h>
11#include <qpainter.h> 11#include <qpainter.h>
12#include <qrect.h> 12#include <qrect.h>
13#include <qscrollbar.h> 13#include <qscrollbar.h>
14 14
15#define rimX 0 // left/right rim width 15#define rimX 0 // left/right rim width
16#define rimY 0 // top/bottom rim high 16#define rimY 0 // top/bottom rim high
17 17
18#define SCRWIDTH 16 // width of scrollbar 18#define SCRWIDTH 16 // width of scrollbar
19 19
20
21static const ColorEntry color_table[TABLE_COLORS] =
22{
23 ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 1, 0 ), // Dfore, Dback
24 ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0x18), 0, 0 ), // Black, Red
25 ColorEntry(QColor(0x18,0xB2,0x18), 0, 0 ), ColorEntry( QColor(0xB2,0x68,0x18), 0, 0 ), // Green, Yellow
26 ColorEntry(QColor(0x18,0x18,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ), // Blue, Magenta
27 ColorEntry(QColor(0x18,0xB2,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 0, 0 ), // Cyan, White
28 // intensiv
29 ColorEntry(QColor(0x00,0x00,0x00), 0, 1 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 1, 0 ),
30 ColorEntry(QColor(0x68,0x68,0x68), 0, 0 ), ColorEntry( QColor(0xFF,0x54,0x54), 0, 0 ),
31 ColorEntry(QColor(0x54,0xFF,0x54), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0x54), 0, 0 ),
32 ColorEntry(QColor(0x54,0x54,0xFF), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ),
33 ColorEntry(QColor(0x54,0xFF,0xFF), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 0, 0 )
34};
35
20EmulationWidget::EmulationWidget( const Profile& config, QWidget *parent, const char* name ) : WidgetLayer( config, parent, name ) 36EmulationWidget::EmulationWidget( const Profile& config, QWidget *parent, const char* name ) : WidgetLayer( config, parent, name )
21{ 37{
22 38
23 // initialize font attributes 39 // initialize font attributes
24 QFontMetrics fm( font() ); 40 QFontMetrics fm( font() );
25 f_height = fm.height(); 41 f_height = fm.height();
26 f_width = fm.maxWidth(); 42 f_width = fm.maxWidth();
27 f_ascent = fm.ascent(); 43 f_ascent = fm.ascent();
28 44
29 // initialize scrollbar related vars 45 // initialize scrollbar related vars
30 m_scrollbar = new QScrollBar( this ); 46 m_scrollbar = new QScrollBar( this );
31 m_scrollbar->setCursor( arrowCursor ); 47 m_scrollbar->setCursor( arrowCursor );
@@ -196,25 +212,25 @@ void EmulationWidget::paintEvent( QPaintEvent* pe )
196 int cb = m_image[loc(x,y)].b; 212 int cb = m_image[loc(x,y)].b;
197 int cr = m_image[loc(x,y)].r; 213 int cr = m_image[loc(x,y)].r;
198 while (x+len <= rlx && 214 while (x+len <= rlx &&
199 m_image[loc(x+len,y)].f == cf && 215 m_image[loc(x+len,y)].f == cf &&
200 m_image[loc(x+len,y)].b == cb && 216 m_image[loc(x+len,y)].b == cb &&
201 m_image[loc(x+len,y)].r == cr ) 217 m_image[loc(x+len,y)].r == cr )
202 { 218 {
203 disstrU[len] = vt100extended(m_image[loc(x+len,y)].c); 219 disstrU[len] = vt100extended(m_image[loc(x+len,y)].c);
204 len += 1; 220 len += 1;
205 } 221 }
206 QString unistr(disstrU,len); 222 QString unistr(disstrU,len);
207 223
208 drawAttrString( unistr, painter, QRect( m_blX+tLx+f_width*x,m_bY+tLy+f_height*y,f_width*len,f_height ), m_image[loc(x ,y )], pm != NULL, false ); 224 drawAttrString( unistr, painter, QRect( m_blX+tLx+f_width*x,m_bY+tLy+f_height*y,f_width*len,f_height ), m_image[loc(x ,y )], pm != 0l, false );
209 x +=len -1; 225 x +=len -1;
210 } 226 }
211 delete [] disstrU; 227 delete [] disstrU;
212 drawFrame( &painter ); 228 drawFrame( &painter );
213 painter.end(); 229 painter.end();
214} 230}
215 231
216void EmulationWidget::calcGeometry() 232void EmulationWidget::calcGeometry()
217{ 233{
218 m_scrollbar->resize(QApplication::style().scrollBarExtent().width(), contentsRect().height() ); 234 m_scrollbar->resize(QApplication::style().scrollBarExtent().width(), contentsRect().height() );
219 235
220 switch( scrollLoc ) 236 switch( scrollLoc )
@@ -238,37 +254,39 @@ void EmulationWidget::calcGeometry()
238 m_brX = m_blX; 254 m_brX = m_blX;
239 m_scrollbar->move( contentsRect().topRight() - QPoint (m_scrollbar->width()-1,0 ) ); 255 m_scrollbar->move( contentsRect().topRight() - QPoint (m_scrollbar->width()-1,0 ) );
240 m_scrollbar->show(); 256 m_scrollbar->show();
241 break; 257 break;
242 } 258 }
243 259
244 m_lines = ( contentsRect().height() - 2 * rimY ) / f_height; 260 m_lines = ( contentsRect().height() - 2 * rimY ) / f_height;
245 m_bY = ( contentsRect().height() - (m_lines * f_height ) ) / 2; 261 m_bY = ( contentsRect().height() - (m_lines * f_height ) ) / 2;
246} 262}
247 263
248void EmulationWidget::drawAttrString( QString& string, QPainter &painter, QRect rect, Character attr, bool usePixmap, bool clear ) 264void EmulationWidget::drawAttrString( QString& string, QPainter &painter, QRect rect, Character attr, bool usePixmap, bool clear )
249{ 265{
266 qWarning("Color1 %s", color_table[attr.b].color.name().latin1() );
250 if ( usePixmap && color_table[attr.b].transparent ) 267 if ( usePixmap && color_table[attr.b].transparent )
251 { 268 {
252 painter.setBackgroundMode( TransparentMode ); 269 painter.setBackgroundMode( TransparentMode );
253 if ( clear ) 270 if ( clear )
254 erase( rect ); 271 erase( rect );
255 } 272 }
256 else 273 else
257 { 274 {
258 if ( blinking ) 275 if ( blinking )
259 painter.fillRect( rect, color_table[attr.b].color ); 276 painter.fillRect( rect, color_table[attr.b].color );
260 else 277 else
261 { 278 {
262 painter.setBackgroundMode( OpaqueMode ); 279 painter.setBackgroundMode( OpaqueMode );
280 qWarning("Color %s", color_table[attr.b].color.name().latin1() );
263 painter.setBackgroundColor( color_table[attr.b].color ); 281 painter.setBackgroundColor( color_table[attr.b].color );
264 } 282 }
265 } 283 }
266 if ( color_table[attr.f].bold ) 284 if ( color_table[attr.f].bold )
267 painter.setPen( QColor( 0x8F, 0x00, 0x00 ) ); 285 painter.setPen( QColor( 0x8F, 0x00, 0x00 ) );
268 else 286 else
269 painter.setPen( color_table[attr.f].color ); 287 painter.setPen( color_table[attr.f].color );
270 painter.drawText( rect.x(), rect.y() + f_ascent, string ); 288 painter.drawText( rect.x(), rect.y() + f_ascent, string );
271 289
272} 290}
273 291
274 292
@@ -276,26 +294,13 @@ void EmulationWidget::drawAttrString( QString& string, QPainter &painter, QRect
276// scrollbar 294// scrollbar
277// //////////////////// 295// ////////////////////
278 296
279void EmulationWidget::scroll( int value ) 297void EmulationWidget::scroll( int value )
280{ 298{
281} 299}
282 300
283void EmulationWidget::setScroll( int cursor, int slines ) 301void EmulationWidget::setScroll( int cursor, int slines )
284{ 302{
285} 303}
286 304
287 305
288static const ColorEntry color_table[TABLE_COLORS] = 306
289{
290 ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 1, 0 ), // Dfore, Dback
291 ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0x18), 0, 0 ), // Black, Red
292 ColorEntry(QColor(0x18,0xB2,0x18), 0, 0 ), ColorEntry( QColor(0xB2,0x68,0x18), 0, 0 ), // Green, Yellow
293 ColorEntry(QColor(0x18,0x18,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ), // Blue, Magenta
294 ColorEntry(QColor(0x18,0xB2,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 0, 0 ), // Cyan, White
295 // intensiv
296 ColorEntry(QColor(0x00,0x00,0x00), 0, 1 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 1, 0 ),
297 ColorEntry(QColor(0x68,0x68,0x68), 0, 0 ), ColorEntry( QColor(0xFF,0x54,0x54), 0, 0 ),
298 ColorEntry(QColor(0x54,0xFF,0x54), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0x54), 0, 0 ),
299 ColorEntry(QColor(0x54,0x54,0xFF), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ),
300 ColorEntry(QColor(0x54,0xFF,0xFF), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 0, 0 )
301};
diff --git a/noncore/apps/opie-console/emulation_widget.h b/noncore/apps/opie-console/emulation_widget.h
index d050681..f12b961 100644
--- a/noncore/apps/opie-console/emulation_widget.h
+++ b/noncore/apps/opie-console/emulation_widget.h
@@ -101,16 +101,16 @@ protected:
101 int f_width; 101 int f_width;
102 int f_ascent; 102 int f_ascent;
103 int m_blX; 103 int m_blX;
104 int m_blY; 104 int m_blY;
105 int m_brX; 105 int m_brX;
106 106
107 int m_bY; 107 int m_bY;
108 int m_bX; 108 int m_bX;
109 QScrollBar* m_scrollbar; 109 QScrollBar* m_scrollbar;
110 110
111 ScrollLocation scrollLoc; 111 ScrollLocation scrollLoc;
112 112
113 ColorEntry* color_table; 113 //ColorEntry* color_table;
114 114
115 bool blinking; 115 bool blinking;
116}; 116};