/*************************************************************************** * Copyright (C) 2005 by Mark Six * * marksix@xs4all.nl * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef KSERIALVIEW_H #define KSERIALVIEW_H #include #include #include #include #include #include #include #include "kport.h" class KSerialWindow : public KTextEdit { TQ_OBJECT public: KSerialWindow( TQWidget *parent ) : KTextEdit( parent ) { setWrapColumnOrWidth( 80 ) ; // Serial window is a terminal setWrapPolicy( TQTextEdit::Anywhere ) ; setWordWrap( TQTextEdit::FixedColumnWidth ) ; setFont( TDEGlobalSettings::fixedFont() ) ; // Use default fixed font } virtual ~KSerialWindow() {} ; protected: virtual void keyPressEvent( TQKeyEvent *e ) { emit keyPressed( e->ascii() ) ; } virtual void mousePressEvent( TQMouseEvent *e ) { } virtual void mouseReleaseEvent( TQMouseEvent *e ) {} virtual TQPopupMenu *createPopupMenu( const TQPoint &pos ) { TQPopupMenu *menu = new TQPopupMenu( this ) ; menu->insertItem( "clear view", this, TQ_SLOT( clearView() ) ) ; return menu ; } public slots: void clearView() { clear() ; } signals: void keyPressed( int key ) ; } ; class KSerialView : public TQWidget { TQ_OBJECT public: KSerialView( CPicoBlaze *cpu, TQWidget *parent ); ~KSerialView(); KPort * rxPort, * txPort, * statusPort ; public slots: void transmit( unsigned char ) ; void receive() ; void keyPressed( int key ) ; protected: KSerialWindow *view ; unsigned char rxFifo[ 16 ] ; unsigned char fifoPtr ; unsigned char getReceiveFlags() ; unsigned char getTransmitFlags() ; void setStatusBits( unsigned char ) ; CPicoBlaze * m_cpu ; KLineEdit *txPortID, *rxPortID, *statusPortID ; TQCheckBox *m_statusBits[ 8 ] ; TQColor m_backgroundColor ; TQPushButton *m_clearButton ; public slots: void updateTxId( const TQString & ) ; void updateRxId( const TQString & ) ; void updateStatusId( const TQString & ) ; void txFlagsChanged( bool en ) ; }; #endif