X-Git-Url: https://git.siccegge.de//index.cgi?a=blobdiff_plain;f=src%2Fgui%2FMainwindow.hxx;h=769ba6f0dd8bcb1a9a43ed4628cb6650985e2bba;hb=217321b48c503edd5b35f35158ba68a04d81ecd3;hp=a78b44617f5ee7d4f8db3238045fb366d3362125;hpb=954fbc0a236ead64f568e9f591a5248c742084a0;p=frida%2Ffrida.git diff --git a/src/gui/Mainwindow.hxx b/src/gui/Mainwindow.hxx index a78b446..769ba6f 100644 --- a/src/gui/Mainwindow.hxx +++ b/src/gui/Mainwindow.hxx @@ -3,58 +3,80 @@ #include #include -#include +#include +#include #include #include #include -#include +#include #include #include -#include "disassembler/Disassembler.hxx" -#include "widgets/BasicBlockWidget.hxx" -#include "widgets/ScriptingDock.hxx" -#include "core/InformationManager.hxx" +#include "core/events/NewFunctionEvent.hxx" + +class Disassembler; +class Function; +class InformationManager; +class FunctionWidget; +class BasicBlockWidget; +class FridaDock; class Mainwindow : public QMainWindow { Q_OBJECT public: Mainwindow(InformationManager* mgr); +public slots: + void switchMainPlaneToAddress(uint64_t); + +signals: + void requestNewFunctionByAddress(uint64_t address); + private: void addFunction(Function* fun); + void setGlobalHotkeys(); QTextEdit *textEdit; QPushButton *quitButton; QMenu *fileMenu; QTabWidget * tabwidget; - QListWidget * listWidget; + QTreeWidget * listWidget; QStackedWidget * stackedWidget; QDockWidget * dockWidget; - ScriptingDock * scripting; + FridaDock * fdock; + + QTreeWidgetItem * external; QAction *exitAction; QAction *openAction; + QAction *loadAction; + QAction *saveAction; std::map blocks; - std::map objects_list; - std::map objects_list_by_address; - std::set functions; - InformationManager* manager; + std::map functions; + std::map objects_list; + std::map objects_list_by_address; + std::vector group_list; + InformationManager* manager; log4cxx::LoggerPtr logger; -public Q_SLOTS: - void switchMainPlaneToAddress(uint64_t); -private Q_SLOTS: + +private slots: void quit(); void open(); - void switchMainPlane(int); + void load(); + void save(); + void switchMainPlane(QTreeWidgetItem* item); void showListContextMenu(const QPoint&); void requestNewFunction(); - void renameFunction(QListWidgetItem * item); + void requestNewGroup(); + void renameFunction(Function* function); + void renameGroup(QTreeWidgetItem* item); + + void handleNewFunctionEvent(NewFunctionEvent event); }; #endif /* INCLUDE__Mainwindow_hxx_ */