]> git.siccegge.de Git - frida/frida.git/blobdiff - src/gui/Mainwindow.hxx
Add log widget to lower dock
[frida/frida.git] / src / gui / Mainwindow.hxx
index efc7d99bd10facf51483c8ba5d3831fad4f427c6..cfdbaaa152e21ccb124d261e477db4604c30c70c 100644 (file)
@@ -3,54 +3,74 @@
 
 #include <memory>
 #include <map>
-#include <set>
+#include <vector>
+#include <string>
 
 #include <QTextEdit>
 #include <QPushButton>
 #include <QMainWindow>
-#include <QListWidget>
+#include <QTreeWidget>
 #include <QStackedWidget>
 
 #include <log4cxx/logger.h>
 
-#include "disassembler/Disassembler.hxx"
-#include "widgets/BasicBlockWidget.hxx"
-#include "widgets/ScriptingDock.hxx"
-#include "core/InformationManager.hxx"
+class Disassembler;
+class Function;
+class InformationManager;
+class FunctionWidget;
+class BasicBlockWidget;
+class FridaDock;
+class Interpreter;
 
 class Mainwindow : public QMainWindow {
        Q_OBJECT
 public:
        Mainwindow(InformationManager* mgr);
 
+public Q_SLOTS:
+       void switchMainPlaneToAddress(uint64_t);
+       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;
 
        QAction *exitAction;
        QAction *openAction;
+       QAction *loadAction;
+       QAction *saveAction;
 
        std::map<uint64_t, BasicBlockWidget*> blocks;
-       std::map<QListWidgetItem*, QWidget*> objects_list;
-       std::set<Function*> functions;
-       InformationManager* manager;
+       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;
+       std::map<std::string, Interpreter*> interpreter;
 
+       InformationManager* manager;
        log4cxx::LoggerPtr logger;
+
 private Q_SLOTS:
        void quit();
        void open();
-       void switchMainPlane(int);
+       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_ */