Annotation of qemu/roms/openbios/arch/unix/gui_qt/gui-qt.cpp, revision 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.