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