From 4a6c79ea46f3c830f39929964d220f168a2323de Mon Sep 17 00:00:00 2001 From: "Mr. eXoDia" Date: Tue, 7 Jul 2015 16:06:24 +0200 Subject: [PATCH] DBG: added gui message boxes to the script api --- x64_dbg_dbg/_scriptapi_gui.cpp | 104 +++++++++++---------- x64_dbg_dbg/_scriptapi_gui.h | 30 +++--- x64_dbg_gui/Project/Src/Gui/ScriptView.cpp | 2 +- 3 files changed, 76 insertions(+), 60 deletions(-) diff --git a/x64_dbg_dbg/_scriptapi_gui.cpp b/x64_dbg_dbg/_scriptapi_gui.cpp index 480b3259..92ba44b9 100644 --- a/x64_dbg_dbg/_scriptapi_gui.cpp +++ b/x64_dbg_dbg/_scriptapi_gui.cpp @@ -1,52 +1,5 @@ #include "_scriptapi_gui.h" -static inline int windowToBridge(Script::Gui::Window window) -{ - switch(window) - { - case Script::Gui::DisassemblyWindow: - return GUI_DISASSEMBLY; - case Script::Gui::DumpWindow: - return GUI_DUMP; - case Script::Gui::StackWindow: - return GUI_STACK; - default: - return GUI_DISASSEMBLY; - } -} - -SCRIPT_EXPORT bool Script::Gui::SelectionGet(Script::Gui::Window window, duint* start, duint* end) -{ - SELECTIONDATA selection; - if(!GuiSelectionGet(windowToBridge(window), &selection)) - return false; - if(start) - *start = selection.start; - if(end) - *end = selection.end; - return true; -} - -SCRIPT_EXPORT bool Script::Gui::SelectionSet(Script::Gui::Window window, duint start, duint end) -{ - SELECTIONDATA selection; - selection.start = start; - selection.end = end; - return GuiSelectionSet(windowToBridge(window), &selection); -} - -SCRIPT_EXPORT duint Script::Gui::SelectionGetStart(Script::Gui::Window window) -{ - duint start; - return Gui::SelectionGet(window, &start, nullptr) ? start : 0; -} - -SCRIPT_EXPORT duint Script::Gui::SelectionGetEnd(Script::Gui::Window window) -{ - duint end; - return Gui::SelectionGet(window, nullptr, &end) ? end : 0; -} - SCRIPT_EXPORT bool Script::Gui::Disassembly::SelectionGet(duint* start, duint* end) { return Gui::SelectionGet(DisassemblyWindow, start, end); @@ -105,4 +58,61 @@ SCRIPT_EXPORT duint Script::Gui::Stack::SelectionGetStart() SCRIPT_EXPORT duint Script::Gui::Stack::SelectionGetEnd() { return Gui::SelectionGetEnd(StackWindow); +} + +static inline int windowToBridge(Script::Gui::Window window) +{ + switch(window) + { + case Script::Gui::DisassemblyWindow: + return GUI_DISASSEMBLY; + case Script::Gui::DumpWindow: + return GUI_DUMP; + case Script::Gui::StackWindow: + return GUI_STACK; + default: + return GUI_DISASSEMBLY; + } +} + +SCRIPT_EXPORT bool Script::Gui::SelectionGet(Script::Gui::Window window, duint* start, duint* end) +{ + SELECTIONDATA selection; + if(!GuiSelectionGet(windowToBridge(window), &selection)) + return false; + if(start) + *start = selection.start; + if(end) + *end = selection.end; + return true; +} + +SCRIPT_EXPORT bool Script::Gui::SelectionSet(Script::Gui::Window window, duint start, duint end) +{ + SELECTIONDATA selection; + selection.start = start; + selection.end = end; + return GuiSelectionSet(windowToBridge(window), &selection); +} + +SCRIPT_EXPORT duint Script::Gui::SelectionGetStart(Script::Gui::Window window) +{ + duint start; + return Gui::SelectionGet(window, &start, nullptr) ? start : 0; +} + +SCRIPT_EXPORT duint Script::Gui::SelectionGetEnd(Script::Gui::Window window) +{ + duint end; + return Gui::SelectionGet(window, nullptr, &end) ? end : 0; +} + +SCRIPT_EXPORT void Script::Gui::Message(const char* message) +{ + GuiScriptMessage(message); +} + +SCRIPT_EXPORT bool Script::Gui::MessageYesNo(const char* message) +{ + return !!GuiScriptMsgyn(message); } \ No newline at end of file diff --git a/x64_dbg_dbg/_scriptapi_gui.h b/x64_dbg_dbg/_scriptapi_gui.h index 0e78cfb5..a5b2ecab 100644 --- a/x64_dbg_dbg/_scriptapi_gui.h +++ b/x64_dbg_dbg/_scriptapi_gui.h @@ -7,18 +7,6 @@ namespace Script { namespace Gui { -enum Window -{ - DisassemblyWindow, - DumpWindow, - StackWindow -}; - -SCRIPT_EXPORT bool SelectionGet(Window window, duint* start, duint* end); -SCRIPT_EXPORT bool SelectionSet(Window window, duint start, duint end); -SCRIPT_EXPORT duint SelectionGetStart(Window window); -SCRIPT_EXPORT duint SelectionGetEnd(Window window); - namespace Disassembly { SCRIPT_EXPORT bool SelectionGet(duint* start, duint* end); @@ -42,6 +30,24 @@ SCRIPT_EXPORT bool SelectionSet(duint start, duint end); SCRIPT_EXPORT duint SelectionGetStart(); SCRIPT_EXPORT duint SelectionGetEnd(); }; //Stack +}; //Gui + +namespace Gui +{ +enum Window +{ + DisassemblyWindow, + DumpWindow, + StackWindow +}; + +SCRIPT_EXPORT bool SelectionGet(Window window, duint* start, duint* end); +SCRIPT_EXPORT bool SelectionSet(Window window, duint start, duint end); +SCRIPT_EXPORT duint SelectionGetStart(Window window); +SCRIPT_EXPORT duint SelectionGetEnd(Window window); +SCRIPT_EXPORT void Message(const char* message); +SCRIPT_EXPORT bool MessageYesNo(const char* message); + }; //Gui }; //Script diff --git a/x64_dbg_gui/Project/Src/Gui/ScriptView.cpp b/x64_dbg_gui/Project/Src/Gui/ScriptView.cpp index e76ffa77..a8c59eba 100644 --- a/x64_dbg_gui/Project/Src/Gui/ScriptView.cpp +++ b/x64_dbg_gui/Project/Src/Gui/ScriptView.cpp @@ -579,7 +579,7 @@ void ScriptView::cmdExec() void ScriptView::message(QString message) { - QMessageBox msg(QMessageBox::Information, "Information", message); + QMessageBox msg(QMessageBox::Information, "Message", message); msg.setWindowIcon(QIcon(":/icons/images/information.png")); msg.setParent(this, Qt::Dialog); msg.setWindowFlags(msg.windowFlags() & (~Qt::WindowContextHelpButtonHint));