OpenCores
URL https://opencores.org/ocsvn/ezidebug/ezidebug/trunk

Subversion Repositories ezidebug

[/] [ezidebug/] [trunk/] [EziDebug_src/] [toolwindow.h] - Rev 2

Compare with Previous | Blame | View Log

#ifndef TOOLWINDOW_H
#define TOOLWINDOW_H
 
#include <QWidget>
#include <QSystemTrayIcon>
 
#include "miniwindow.h"
#include "listwindow.h"
//#include "ezidebugprj.h"
#include "projectsetwizard.h"
 
 
QT_BEGIN_NAMESPACE
class QAction;
class QLabel;
class Button;
class QProgressBar;
class QMenu;
class QSystemTrayIcon;
class EziDebugPrj ;
class QTimer ;
QT_END_NAMESPACE
 
class ToolWindow : public QWidget
{
    Q_OBJECT
public:
 
    explicit ToolWindow(QWidget *parent = 0);
//    bool eventFilter(QObject *, QEvent *);
    ~ToolWindow();
 
//    //列表窗口是否隐藏
//    void setListWindowHiddenFlag(bool flag);
//    bool getListWindowHiddenFlag();
//    //列表窗口是否吸附在工具栏窗口
      void  setListWindowAdsorbedFlag(bool flag);
      const EziDebugPrj* getCurrentProject(void) const; // 获取当前工程指针
      void  setCurrentProject(EziDebugPrj*);  // 设置当前工程指针
      void  listwindowInfoInit(void) ;
 
 
//    bool getListWindowAdsorbedFlag();
    //void getListWindowPointer(QWidget *listWindow);
 
signals:
     void updateTreeView(EziDebugInstanceTreeItem* item);
    //void closeToolWindow();//关闭本窗口
    //void hideListWindow();
    //void showListWindow();
    //void moveListWindow(const QPoint &p, QPoint bottomLeft, QPoint bottomRight);//移动ListWindow到点p
    //void toMiniMode();  //普通模式转换到迷你模式
 
public slots:
    //右上角标题栏按钮
    void minimize();    //最小化
    void toMiniMode();  //转换到迷你模式
    void close();       //关闭
    void updateIndicate(); // 更新提示
    void fastUpdate();    // 快速更新
    void changeUpdatePic() ;
    void changeProgressBar(int value) ;
 
    void about();//关于
    void help();//帮助
 
    //从最小化还原
    void showNormal();
    //右侧中部按钮,打开toolwindow下方的列表窗口
    void showListWindow();
    //系统托盘相关函数
    void iconActivated(QSystemTrayIcon::ActivationReason reason);
 
    //迷你模式
    void toNormalMode();//转换到普通模式
    void miniWindowMinimized();//最小化时修改相应菜单选项
    void proSetting(); // 工程设置
    void proUpdate() ; // 工程更新
    //void proPartlyUpdate();// 工程部分更新
    int  deleteScanChain(); // 删除一条扫描链
    void addScanChain();    // 添加一条扫描链
    int  deleteAllChain();  // 删除所有扫描链
    void undoOperation(); // 取消上一步操作
    void testbenchGeneration(); // 生成testbench
 
    //    改为由listWindow中的slot执行//四个工程操作对应的按钮
    //    void proSetting();
    //    void proUpdate();
    //    void deleteChain();
    //    void testbenchGeneration();
 
 
 
    void progressBarDemo();//进度条演示
    void listWindowMouseReleased(const QRect rect);//listWindow的窗口移动或缩放后,判断listWindow是否吸附
 
protected:
 
 
private:
    void createActions();   //创建右键菜单的选项
    void createButtons();   //创建按钮
    Button *createToolButton(const QString &toolTip, const QString &iconstr,
                             const QSize &size, const QObject * receiver, const char *member);
    void contextMenuEvent(QContextMenuEvent *event);//自定义右键菜单
    void mousePressEvent(QMouseEvent *);        //自定义一个鼠标点击事件函数
    void mouseMoveEvent(QMouseEvent *);         //自定义一个鼠标拖动事件函数
    void paintEvent(QPaintEvent *);             //自定义一个刷屏事件函数
    void showEvent(QShowEvent*);                //自定义一个窗口显示事件函数
    void readSetting();                         //读取上次软件保存的工程信息
    void writeSetting();                        //保存软件打开工程的信息
 
 
    //系统托盘相关函数
    void CreatTrayMenu();
    void creatTrayIcon();
    void closeEvent(QCloseEvent *event);
 
 
 
    //另外两个窗口
    MiniWindow *miniWindow;//迷你模式下的主窗口和状态栏
    ListWindow *listWindow;//普通模式下的工具栏窗口
    ProjectSetWizard * m_proSetWiz;//工程设置向导
//  EziDebugPrj* m_pcurrentPrj ;
 
    //系统托盘及其菜单
    QSystemTrayIcon *myTrayIcon;
    QAction *miniSizeAction;
    QAction *maxSizeAction;
    QAction *restoreWinAction;
    QAction *quitAction;
    QAction *aboutAction;
    QAction *helpAction;
    QMenu *myMenu;
 
 
 
    //右键菜单的选项
    QAction *exitAct;//退出
    QAction *minimizeAct;   //最小化
    QAction *toMiniModeAct; //转换到迷你模式模式
    QAction *aboutAct;
    QAction *helpAct;
 
    //工具栏按钮
    Button *proSettingButton;  //工程设置
    Button *proUpdateButton;   //更新
    Button *proPartlyUpdateButton;   //部分更新
    Button *deleteChainButton; //删除
    Button *testbenchGenerationButton;//testbench生成
    Button *proUndoButton;   //撤销(undo)
    QPushButton *updatehintButton ; // 提示更新按钮
    QLabel * m_iplogolabel ;  // 放logo
 
    EziDebugPrj *currentPrj ;
 
 
    //右上角标题栏按钮
    Button *minimizeButton;   //最小化
    Button *miniModeButton;//迷你模式
    Button *exitButton;  //退出
 
    //进度条
    QProgressBar *progressBar ;
 
    //打开ListWindow
    Button *showListWindowButton;
 
    //定义一个QPoint的成员变量,记录窗口移动的位置
    QPoint dragPosition;
    QPoint oriGlobalPos;//鼠标左键按下的位置
 
//    bool isNormalListWindowHidden;//普通模式下,ToolWindow不隐藏时,列表窗口是否隐藏
    bool isListWindowAdsorbed;//普通模式下,列表界面是否吸附在工具栏窗口的下方
//    QWidget *listWindowPointer;//指向ListWindow的指针
    bool isNormalMode;//true--Normal Mode,false--Mini Mode
    bool isNeededUpdate ;
 
    QTimer *iChangeUpdateButtonTimer ;
 
 
 
};
 
#endif // TOOLWINDOW_H
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.