]> git.siccegge.de Git - frida/frida.git/blobdiff - src/gui/Mainwindow.hxx
Pass NewFunctionEvents as objects, not pointers
[frida/frida.git] / src / gui / Mainwindow.hxx
index a3bd4bdfa88ff354c0ee09a557ceb4d6d8c668c3..769ba6f0dd8bcb1a9a43ed4628cb6650985e2bba 100644 (file)
@@ -3,6 +3,8 @@
 
 #include <memory>
 #include <map>
+#include <vector>
+#include <string>
 
 #include <QTextEdit>
 #include <QPushButton>
 
 #include <log4cxx/logger.h>
 
+#include "core/events/NewFunctionEvent.hxx"
+
 class Disassembler;
 class Function;
 class InformationManager;
 class FunctionWidget;
 class BasicBlockWidget;
-class ScriptingDock;
+class FridaDock;
 
 class Mainwindow : public QMainWindow {
        Q_OBJECT
 public:
        Mainwindow(InformationManager* mgr);
 
-public Q_SLOTS:
+public slots:
        void switchMainPlaneToAddress(uint64_t);
+
+signals:
        void requestNewFunctionByAddress(uint64_t address);
 
 private:
@@ -40,28 +46,37 @@ private:
        QTreeWidget * listWidget;
        QStackedWidget * stackedWidget;
        QDockWidget * dockWidget;
-       ScriptingDock * scripting;
+       FridaDock * fdock;
+
+       QTreeWidgetItem * external;
 
        QAction *exitAction;
        QAction *openAction;
+       QAction *loadAction;
        QAction *saveAction;
 
        std::map<uint64_t, BasicBlockWidget*> blocks;
        std::map<uint64_t, Function*> functions;
        std::map<QTreeWidgetItem*, FunctionWidget*> objects_list;
        std::map<uint64_t, QTreeWidgetItem*> objects_list_by_address;
+       std::vector<QTreeWidgetItem*> group_list;
 
        InformationManager* manager;
        log4cxx::LoggerPtr logger;
 
-private Q_SLOTS:
+private slots:
        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);
+
+       void handleNewFunctionEvent(NewFunctionEvent event);
 };
 
 #endif /* INCLUDE__Mainwindow_hxx_ */