1 #ifndef INCLUDE__Mainwindow_hxx_
2 #define INCLUDE__Mainwindow_hxx_
10 #include <QPushButton>
11 #include <QMainWindow>
12 #include <QTreeWidget>
13 #include <QStackedWidget>
15 #include <log4cxx/logger.h>
17 #include "core/events/NewFunctionEvent.hxx"
21 class InformationManager;
23 class BasicBlockWidget;
26 class Mainwindow : public QMainWindow {
29 Mainwindow(InformationManager* mgr);
32 void switchMainPlaneToAddress(uint64_t);
35 void requestNewFunctionByAddress(uint64_t address);
38 void addFunction(Function* fun);
39 void setGlobalHotkeys();
42 QPushButton *quitButton;
45 QTabWidget * tabwidget;
46 QTreeWidget * listWidget;
47 QStackedWidget * stackedWidget;
48 QDockWidget * dockWidget;
51 QTreeWidgetItem * external;
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;
64 InformationManager* manager;
65 log4cxx::LoggerPtr logger;
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);
79 void handleNewFunctionEvent(NewFunctionEvent event);
82 #endif /* INCLUDE__Mainwindow_hxx_ */