Annotation of qemu/roms/openbios/arch/unix/gui_qt/gui-qt.cpp, revision 1.1.1.1

1.1       root        1: /* tag: qt user interface fb class
                      2:  *
                      3:  * Copyright (C) 2003-2004 Stefan Reinauer
                      4:  *
                      5:  * See the file "COPYING" for further information about
                      6:  * the copyright and warranty status of this work.
                      7:  */
                      8: 
                      9: #include "gui-qt.h"
                     10: #include "logo.xpm"
                     11: 
                     12: #include <iostream>
                     13: 
                     14: static const int sizex=640;
                     15: static const int sizey=480;
                     16: static const int depth=8;
                     17: 
                     18: static unsigned char color[256][3]={
                     19:        { 0x00, 0x00, 0x00 },
                     20:        { 0x00, 0x00, 0xaa },
                     21:        { 0x00, 0xaa, 0x00 },
                     22:        { 0x00, 0xaa, 0xaa },
                     23:        { 0xaa, 0x00, 0x00 },
                     24:        { 0xaa, 0x00, 0xaa },
                     25:        { 0xaa, 0x55, 0x00 },
                     26:        { 0xaa, 0xaa, 0xaa },
                     27:        { 0x55, 0x55, 0x55 },
                     28:        { 0x55, 0x55, 0xff },
                     29:        { 0x55, 0xff, 0x55 },
                     30:        { 0x55, 0xff, 0xff },
                     31:        { 0xff, 0x55, 0x55 },
                     32:        { 0xff, 0x55, 0xff },
                     33:        { 0xff, 0xff, 0x55 },
                     34:        { 0xff, 0xff, 0xff },
                     35: };
                     36: 
                     37: FrameBufferWidget::FrameBufferWidget(QWidget *parent, const char * name)
                     38: : QWidget(parent, name, Qt::WType_TopLevel)
                     39: {
                     40:        setCaption ("OpenBIOS");
                     41:        setIcon(QPixmap(logo));
                     42: 
                     43:        QPopupMenu *file = new QPopupMenu (this);
                     44: 
                     45:        file->insertItem( "E&xit",  this, SLOT(quit()), CTRL+Key_Q );
                     46: 
                     47:        QPopupMenu *help = new QPopupMenu( this );
                     48:        help->insertItem("&About OpenBIOS", this, SLOT(about()), CTRL+Key_H );
                     49:        help->insertItem( "About &Qt", this, SLOT(aboutQt()) );
                     50: 
                     51:        menu = new QMenuBar( this );
                     52:        Q_CHECK_PTR( menu );
                     53:        menu->insertItem( "&File", file );
                     54:        menu->insertSeparator();
                     55:        menu->insertItem( "&Help", help );
                     56:        menu->setSeparator( QMenuBar::InWindowsStyle );
                     57: 
                     58:        setFixedSize(sizex,sizey+menu->heightForWidth(sizex));
                     59: 
                     60:        buffer.create(sizex, sizey, depth, 256);
                     61: 
                     62:        for (int i=16; i < 256; i++) {
                     63:                color[i][0]=i;
                     64:                color[i][1]=i;
                     65:                color[i][2]=i;
                     66:        }
                     67: 
                     68:        for (int i=0; i< 256; i++)
                     69:                buffer.setColor(i, qRgb(color[i][0], color[i][1], color[i][2]));
                     70: 
                     71:        buffer.fill( 0 );
                     72: 
                     73:        updatetimer=new QTimer(this);
                     74:        connect( updatetimer, SIGNAL(timeout()), this, SLOT(update()) );
                     75:        updatetimer->start(200,FALSE);
                     76: 
                     77:        setMouseTracking( TRUE );
                     78: }
                     79: 
                     80: unsigned char * FrameBufferWidget::getFrameBuffer(void)
                     81: {
                     82:        return buffer.bits();
                     83: }
                     84: 
                     85: void FrameBufferWidget::paintEvent ( QPaintEvent * )
                     86: {
                     87:        QPainter p( this );
                     88:        p.drawImage(0,menu->heightForWidth(sizex),buffer, 0,0, sizex, sizey);
                     89: }
                     90: 
                     91: void FrameBufferWidget::about()
                     92: {
                     93:        QMessageBox::about( this, "About OpenBIOS",
                     94:                          "              Welcome to OpenBIOS 1.01\n"
                     95:                          "  IEEE 1275-1994 Open Firmware implementation\n\n"
                     96:                          "written by Stefan Reinauer <[email protected]>\n\n"
                     97:                          "                http://www.openbios.org/\n");
                     98: }
                     99: 
                    100: void FrameBufferWidget::aboutQt()
                    101: {
                    102:        QMessageBox::aboutQt( this, "OpenBIOS" );
                    103: }
                    104: 
                    105: void FrameBufferWidget::quit()
                    106: {
                    107:        extern volatile int gui_running;
                    108:        extern volatile int runforth;
                    109: 
                    110:        gui_running=0;
                    111:        interruptforth=1;
                    112: 
                    113:        qApp->quit();
                    114: }
                    115: 
                    116: void FrameBufferWidget::update()
                    117: {
                    118:        QPainter p( this );
                    119:        p.drawImage(0,menu->heightForWidth(sizex),buffer, 0,0, sizex, sizey);
                    120: }
                    121: 
                    122: void FrameBufferWidget::keyPressEvent(QKeyEvent * e)
                    123: {
                    124:        int a=e->ascii();
                    125:        if (a) {
                    126:                std::cout << " key '" << e->text() << "' pressed" << std::endl;
                    127:        }
                    128: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.