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

Subversion Repositories ezidebug

[/] [ezidebug/] [trunk/] [EziDebug_src/] [listwindow.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 EziDebug
#ifndef LISTWINDOW_H
2
#define LISTWINDOW_H
3
 
4
#include <QWidget>
5
 
6
//#include "toolwindow.h"
7
//#include "miniwindow.h"
8
#include "listwindow.h"
9
#include "projectsetwizard.h"
10
#include "finddialog.h"
11
 
12
#include "button.h"
13
 
14
#include "titlebar.h"
15
#include "menubar.h"
16
#include "splitter.h"
17
#include "treemodel.h"
18
 
19
 
20
QT_BEGIN_NAMESPACE
21
class QAction;
22
class QActionGroup;
23
class QLabel;
24
class QMenu;
25
class QMenuBar;
26
class QPushButton;
27
class QSplitter;
28
class QTreeWidget;
29
class QImage;
30
class TreeView;
31
class EziDebugTreeModel ;
32
class QStandardItemModel ;
33
class QStandardItem ;
34
class EziDebugPrj ;
35
//class FindDialog;
36
QT_END_NAMESPACE
37
 
38
class ListWindow : public QWidget
39
{
40
    Q_OBJECT
41
public:
42
    explicit ListWindow(QWidget *parent = 0, Qt::WindowFlags f = 0 );
43
    ~ListWindow();
44
    QStandardItem *addMessage(const QString &type ,const QString &message,QStandardItem *parentitem = NULL) ;
45
    //列表窗口是否隐藏
46
    bool isListWindowHidden();
47
    void setListWindowHidden(bool flag);
48
    void enterEvent(QEvent * event);
49
    void leaveEvent(QEvent * event);
50
    void setChainActEnable(bool addenable,bool delenable);
51
    EziDebugInstanceTreeItem * getCurrentTreeItem(void);
52
    void setCurrentTreeItem(EziDebugInstanceTreeItem * item);
53
    void clearTreeView(void) ;
54
    void welcomeinfoinit(EziDebugPrj *prj) ;
55
 
56
    //列表窗口是否吸附在工具栏窗口
57
    //bool isListWindowAdsorbed();
58
    //获取ToolWindow的指针,以获取其位置等信息
59
    void getToolWindowPointer(QWidget *toolWin);
60
    bool windowIsStick(void) const
61
    {
62
        return isStick;
63
    }
64
    void setWindowStick(bool stick)
65
    {
66
        isStick = stick ;
67
    }
68
 
69
 
70
    enum enum_Direction{
71
        eNone = 0,
72
        eTop,
73
        eBottom,
74
        eRight,
75
        eLeft,
76
        eTopRight,
77
        eBottomLeft,
78
        eRightBottom,
79
        eLeftTop
80
    };
81
 
82
 
83
signals:
84
    void mouseReleased(const QRect rect);//窗口移动后,将listWindow的窗口位置发送给toolWindow
85
 
86
public slots:
87
    //右上角标题栏按钮
88
    void close();//仅隐藏列表窗口
89
 
90
    //算法中用到的槽
91
    //void proSetting();
92
    //void proUpdate();
93
    //void deleteChain();
94
    void testbenchGeneration();
95
 
96
private slots:
97
 
98
//    //其它窗口和本窗口有关的标题栏按钮
99
//    void closeAll();//迷你模式和工具栏窗口关闭时,触发该槽,关闭所有窗口
100
//    void toMiniMode();  //普通模式转换到迷你模式
101
//    void toNormalMode();//迷你模式转换到普通模式
102
    //void moveListWindow(const QPoint &p, QPoint bottomLeft, QPoint bottomRight);//移动ListWindow到点p
103
 
104
 
105
 
106
 
107
    void find();
108
    void about();
109
    void show_contextmenu(const QPoint& pos) ;
110
    void generateTreeView(EziDebugInstanceTreeItem* item);
111
 
112
 
113
 
114
private:
115
    void createActions();   //创建选项
116
    void createMenus();     //创建菜单
117
    void createButtons();   //创建按钮
118
    //listwindow中现无button,该函数现已不用,关闭按钮在类titlebar中实现
119
    QPushButton *createToolButton(const QString &toolTip, const QIcon &icon, const QSize &size, const char *member);
120
    void mousePressEvent(QMouseEvent *);        //自定义一个鼠标点击事件函数
121
    void mouseMoveEvent(QMouseEvent *);         //自定义一个鼠标拖动事件函数
122
    void mouseReleaseEvent(QMouseEvent *);
123
    void moveEvent(QMoveEvent *);  // 窗体移动事件
124
//    void paintEvent(QPaintEvent *);             //自定义一个刷屏事件函数
125
    void resizeEvent(QResizeEvent *event);      //自定义一个改变窗口大小事件函数,随着窗体变化而设置背景
126
 
127
    void mouseDoubleClickEvent(QMouseEvent *event);//自定义一个鼠标双击事件函数
128
    void SetCursorStyle(enum_Direction direction);//设置鼠标样式
129
    int PointValid(int x, int y);//判断鼠标所在位置在当前窗口的哪个边界(上下左右)上
130
    void SetDrayMove(int nXGlobal,int nYGlobal,enum_Direction direction);//设置鼠标拖动的窗口位置信息
131
    void magneticMove(const QRect &bechmarkRect, const QRect &targetRect) ;
132
 
133
    //菜单
134
    MenuBar *menuBar;
135
    QMenu *addMenu;
136
    QMenu *checkMenu;
137
    QMenu *sortMenu;
138
    QMenu *findMenu;
139
    QMenu *helpMenu;
140
    QMenu * m_pcontextMenu ;
141
 
142
 
143
    QAction *proSettingWizardAct;   //工程设置向导
144
    QAction *setProPathAct;     //设置工程目录
145
    QAction *setRegNumACt;      //设置每条链的寄存器个数
146
    QAction *useVerilogAct;    //使用verilog语言
147
    QAction *useVHDLAct;        //使用VHDL语言
148
    QAction *useMixeLanguagedAct;    //使用混合语言
149
    QAction *setSlotAct;        //设置计时器的时钟
150
    QAction *useAlteraAct;      //使用Altera
151
    QAction *useXilinxAct;      //使用Xilinx
152
    QAction *exitAct;           //退出
153
 
154
    QAction *rankAfterFileNameAct;  //按文件名
155
    QAction *rankAfterPathNameAct;  //按路径名
156
 
157
    QAction *fastOrientAct; //快速定位
158
    QAction *findAct;       //查找
159
    QAction *findNextAct;   //查找下一个
160
 
161
    QAction *aboutEziDebugAct;  //关于
162
    QAction *helpFileAct;   //帮助文件
163
 
164
    QAction *m_paddChainAct ;  // 添加链
165
    QAction *m_pdeleteChainAct ; // 删除链
166
 
167
    //右上角标题栏按钮
168
    //QPushButton *exitButton;  //退出
169
    Button * closeButton ;
170
    QPushButton * button1 ;
171
 
172
    Splitter *mainSplitter;
173
    QTreeWidget *modulesTreeWidget;
174
    QTreeWidget *chainsTreeWidget;
175
    TreeItem*  m_ptestTreeItem ; // 测试存放右键点击获得的树状节点
176
    EziDebugInstanceTreeItem * m_ptreeItem ; //
177
    TreeModel *moduleTree;//存放各个module及其相互关系的树型列表
178
    EziDebugTreeModel * m_peziDebugTreeModel ;
179
    TreeView *moduleTreeView;  //显示module树的view
180
    TreeView *m_pmessageTreeView ;
181
    QStandardItemModel *m_iShowMessageModel ;
182
 
183
 
184
    //窗口缩放需要的变量
185
    TitleBar *titleBar;//标题栏
186
    QPoint pointPressGlobal;//记录按下鼠标左键时的全局位置
187
    QPoint pointMove;//记录鼠标移动后的全局位置
188
    QRect rectRestoreWindow;//记录当前窗口的大小和位置
189
    bool isLeftButtonPress;//是否点击鼠标左键
190
    bool isMaxWin;//该窗口是否最大化
191
    bool isStick;
192
    bool isDrag;
193
 
194
 
195
    QPoint oldPointGlobal;
196
    QPoint NewPointGlobal;
197
    QPoint oldWindowPoint ;
198
    QPoint mousePressPoint ;  //记录鼠标按下时的相对坐标
199
    QPoint mouseMovePoint ;  // 记录鼠标移动中的相对坐标
200
    QRect  parentRect ; // 记录父窗口的坐标
201
    QPoint diffPos;    // 相对坐标差
202
 
203
    enum_Direction eDirection;//记录鼠标在那个方向
204
 
205
    QWidget *toolWindow;//指向ToolWindow的指针
206
 
207
 
208
    bool isListWindowHiddenFlag;//普通模式下,ToolWindow不隐藏时,列表窗口是否隐藏
209
    //bool isListWindowAdsorbedFlag;//普通模式下,列表界面是否吸附在工具栏窗口的下方
210
 
211
 
212
 
213
    //定义一个QPoint的成员变量,记录窗口移动的位置
214
    QPoint dragPosition;
215
 
216
    //窗口背景图片
217
    QPixmap listBackground;
218
 
219
    //各个Action和Button调用的对话框
220
 
221
    FindDialog *findDialog;//查找
222
 
223
    //算法中用到的参数
224
    QString proPathStr;         //工程目录
225
    QVector<int> regNumVector;  //每条链的寄存器个数
226
    bool isUseVerilog;          //使用verilog语言
227
    bool isUseVHDL;             //使用VHDL语言
228
    int slot;                   //计时器的时钟
229
    bool isUseAlteraAct;        //使用Altera
230
    bool isUseXilinxAct;        //使用Xilinx
231
 
232
    //QList<QStandardItem*> m_iitemList ;
233
};
234
 
235
#endif // LISTWINDOW_H

powered by: WebSVN 2.1.0

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