]> git.siccegge.de Git - frida/frida.git/blob - src/gui/Mainwindow.hxx
3a3a94d3b2388377ea5de3317924fe7cca6f02c9
[frida/frida.git] / src / gui / Mainwindow.hxx
1 #ifndef INCLUDE__Mainwindow_hxx_
2 #define INCLUDE__Mainwindow_hxx_
3
4 #include <memory>
5 #include <map>
6 #include <vector>
7 #include <string>
8
9 #include <QTextEdit>
10 #include <QPushButton>
11 #include <QMainWindow>
12 #include <QTreeWidget>
13 #include <QStackedWidget>
14
15 #include <log4cxx/logger.h>
16
17 class Disassembler;
18 class Function;
19 class InformationManager;
20 class FunctionWidget;
21 class BasicBlockWidget;
22 class FridaDock;
23
24 class Mainwindow : public QMainWindow {
25 Q_OBJECT
26 public:
27 Mainwindow(InformationManager* mgr);
28
29 public slots:
30 void switchMainPlaneToAddress(uint64_t);
31
32 signals:
33 void requestNewFunctionByAddress(uint64_t address);
34
35 private:
36 void addFunction(Function* fun);
37 void setGlobalHotkeys();
38
39 QTextEdit *textEdit;
40 QPushButton *quitButton;
41 QMenu *fileMenu;
42
43 QTabWidget * tabwidget;
44 QTreeWidget * listWidget;
45 QStackedWidget * stackedWidget;
46 QDockWidget * dockWidget;
47 FridaDock * fdock;
48
49 QAction *exitAction;
50 QAction *openAction;
51 QAction *loadAction;
52 QAction *saveAction;
53
54 std::map<uint64_t, BasicBlockWidget*> blocks;
55 std::map<uint64_t, Function*> functions;
56 std::map<QTreeWidgetItem*, FunctionWidget*> objects_list;
57 std::map<uint64_t, QTreeWidgetItem*> objects_list_by_address;
58 std::vector<QTreeWidgetItem*> group_list;
59
60 InformationManager* manager;
61 log4cxx::LoggerPtr logger;
62
63 private slots:
64 void quit();
65 void open();
66 void load();
67 void save();
68 void switchMainPlane(QTreeWidgetItem* item);
69 void showListContextMenu(const QPoint&);
70 void requestNewFunction();
71 void requestNewGroup();
72 void renameFunction(Function* function);
73 void renameGroup(QTreeWidgetItem* item);
74 };
75
76 #endif /* INCLUDE__Mainwindow_hxx_ */