X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fgui%2FMainwindow.hxx;h=1b497dfce301d3d2d2015d3b0dce96cf4b64cd5d;hp=032cabd8e0cfdb354fa59f58142635ec74c95351;hb=057e0e59829f19ee4d9a550f2d3dc9fe9df5c92c;hpb=9f0c6d8fbed0f25248f28acced4c7372dd259d7a diff --git a/src/gui/Mainwindow.hxx b/src/gui/Mainwindow.hxx index 032cabd..1b497df 100644 --- a/src/gui/Mainwindow.hxx +++ b/src/gui/Mainwindow.hxx @@ -1,40 +1,74 @@ +#ifndef INCLUDE__Mainwindow_hxx_ +#define INCLUDE__Mainwindow_hxx_ + #include #include +#include +#include + #include #include #include -#include +#include #include -#include "disassembler/Disassembler.hxx" -#include "widgets/BasicBlockWidget.hxx" -#include "widgets/ScriptingDock.hxx" +#include + +class Disassembler; +class Function; +class InformationManager; +class FunctionWidget; +class BasicBlockWidget; +class FridaDock; class Mainwindow : public QMainWindow { - Q_OBJECT + Q_OBJECT public: - Mainwindow(const std::string& filename = ""); -private: - void openBinary(const std::string& filename); + Mainwindow(InformationManager* mgr); - void populateSymbolInformation(Function * fun); +public slots: + void switchMainPlaneToAddress(uint64_t); + void requestNewFunctionByAddress(uint64_t address); - QTextEdit *textEdit; - QPushButton *quitButton; - QMenu *fileMenu; +private: + void addFunction(Function* fun); + void setGlobalHotkeys(); - QTabWidget * tabwidget; - QListWidget * listWidget; - QStackedWidget * stackedWidget; - QDockWidget * dockWidget; - ScriptingDock * scripting; + QTextEdit *textEdit; + QPushButton *quitButton; + QMenu *fileMenu; - QAction *exitAction; - QAction *openAction; + QTabWidget * tabwidget; + QTreeWidget * listWidget; + QStackedWidget * stackedWidget; + QDockWidget * dockWidget; + FridaDock * fdock; + + QAction *exitAction; + QAction *openAction; + QAction *loadAction; + QAction *saveAction; - std::shared_ptr disassembler; std::map blocks; + std::map functions; + std::map objects_list; + std::map objects_list_by_address; + std::vector group_list; + + InformationManager* manager; + log4cxx::LoggerPtr logger; + private slots: - void quit(); - void open(); + void quit(); + void open(); + void load(); + void save(); + void switchMainPlane(QTreeWidgetItem* item); + void showListContextMenu(const QPoint&); + void requestNewFunction(); + void requestNewGroup(); + void renameFunction(Function* function); + void renameGroup(QTreeWidgetItem* item); }; + +#endif /* INCLUDE__Mainwindow_hxx_ */