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