/*************************************************************************** * Copyright (C) 2006 Nicolas Hadacek * * * * 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. * ***************************************************************************/ #ifndef PIC_REGISTER_VIEW_H #define PIC_REGISTER_VIEW_H #include class TQPushButton; class TQCheckBox; class TQLabel; class TQComboBox; #include "devices/gui/register_view.h" #include "devices/pic/base/pic.h" #include "devices/pic/base/pic_register.h" class PopupButton; namespace Device { class RegisterHexWordEditor; } namespace Pic { //----------------------------------------------------------------------------- class BankWidget : public TQFrame { TQ_OBJECT public: BankWidget(uint bank, TQWidget *parent); void updateView(); private slots: void buttonActivated(int id); void write(); void bankChanged(); private: enum Id { ReadId, EditId, WatchId }; class Data { public: Data() : label(0), button(0), edit(0) {} uint address; TQLabel *alabel, *label; PopupButton *button; Register::LineEdit *edit; }; uint _bindex; TQComboBox *_bankCombo; TQValueVector _registers; uint bank() const; uint nbRegisters() const; uint indexOffset() const; void updateRegisterAddresses(); }; //----------------------------------------------------------------------------- class RegisterView : public Register::View { TQ_OBJECT public: RegisterView(TQWidget *parent); virtual void updateView(); private slots: void stopWatchAllRegisters(); private: TQPushButton *_readAllButton, *_clearAllButton; TQValueVector _banks; }; //----------------------------------------------------------------------------- class RegisterListViewItem : public Register::ListViewItem { public: RegisterListViewItem(const Register::TypeData &data, TDEListViewItem *parent); private: virtual uint nbCharsAddress() const; virtual TQString label() const; }; } // namespace #endif