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