]> git.siccegge.de Git - frida/frida.git/blob - src/gui/Mainwindow.hxx
Add doc repo as submodule
[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 #include "core/events/NewFunctionEvent.hxx"
18
19 class Disassembler;
20 class Function;
21 class InformationManager;
22 class FunctionWidget;
23 class BasicBlockWidget;
24 class FridaDock;
25
26 class Mainwindow : public QMainWindow {
27 Q_OBJECT
28 public:
29 Mainwindow(InformationManager* mgr);
30
31 public slots:
32 void switchMainPlaneToAddress(uint64_t);
33
34 signals:
35 void requestNewFunctionByAddress(uint64_t address);
36
37 private:
38 void addFunction(Function* fun);
39 void setGlobalHotkeys();
40
41 QTextEdit *textEdit;
42 QPushButton *quitButton;
43 QMenu *fileMenu;
44
45 QTabWidget * tabwidget;
46 QTreeWidget * listWidget;
47 QStackedWidget * stackedWidget;
48 QDockWidget * dockWidget;
49 FridaDock * fdock;
50
51 QTreeWidgetItem * external;
52
53 QAction *exitAction;
54 QAction *openAction;
55 QAction *loadAction;
56 QAction *saveAction;
57
58 std::map<uint64_t, BasicBlockWidget*> blocks;
59 std::map<uint64_t, Function*> functions;
60 std::map<QTreeWidgetItem*, FunctionWidget*> objects_list;
61 std::map<uint64_t, QTreeWidgetItem*> objects_list_by_address;
62 std::vector<QTreeWidgetItem*> group_list;
63
64 InformationManager* manager;
65 log4cxx::LoggerPtr logger;
66
67 private slots:
68 void quit();
69 void open();
70 void load();
71 void save();
72 void switchMainPlane(QTreeWidgetItem* item);
73 void showListContextMenu(const QPoint&);
74 void requestNewFunction();
75 void requestNewGroup();
76 void renameFunction(Function* function);
77 void renameGroup(QTreeWidgetItem* item);
78
79 void handleNewFunctionEvent(NewFunctionEvent event);
80 };
81
82 #endif /* INCLUDE__Mainwindow_hxx_ */