Skip to content

Commit 9ed12f0

Browse files
committed
Merge pull request x64dbg#513 from lynnux/master
add new API: GuiGetFocusedCPUWindow
2 parents 089c07a + 5628594 commit 9ed12f0

File tree

6 files changed

+41
-4
lines changed

6 files changed

+41
-4
lines changed

src/bridge/bridgemain.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1235,4 +1235,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
12351235
{
12361236
hInst = hinstDLL;
12371237
return TRUE;
1238-
}
1238+
}
1239+
1240+
BRIDGE_IMPEXP int GuiGetFocusedCPUWindow()
1241+
{
1242+
return (int)(duint)_gui_sendmessage(GUI_GET_FOCUSED_CPUWINDOW, nullptr, nullptr);
1243+
}

src/bridge/bridgemain.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -779,7 +779,8 @@ typedef enum
779779
GUI_SET_GLOBAL_NOTES, // param1=const char* text, param2=unused
780780
GUI_GET_GLOBAL_NOTES, // param1=char** text, param2=unused
781781
GUI_SET_DEBUGGEE_NOTES, // param1=const char* text, param2=unused
782-
GUI_GET_DEBUGGEE_NOTES // param1=char** text, param2=unused
782+
GUI_GET_DEBUGGEE_NOTES, // param1=char** text, param2=unused
783+
GUI_GET_FOCUSED_CPUWINDOW // param1=unused, param2=unused
783784
} GUIMSG;
784785

785786
//GUI Typedefs
@@ -877,6 +878,7 @@ BRIDGE_IMPEXP void GuiSetGlobalNotes(const char* text);
877878
BRIDGE_IMPEXP void GuiGetGlobalNotes(char** text);
878879
BRIDGE_IMPEXP void GuiSetDebuggeeNotes(const char* text);
879880
BRIDGE_IMPEXP void GuiGetDebuggeeNotes(char** text);
881+
BRIDGE_IMPEXP int GuiGetFocusedCPUWindow();
880882

881883
#ifdef __cplusplus
882884
}

src/gui/Src/Bridge/Bridge.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,15 @@ void* Bridge::processMessage(GUIMSG type, void* param1, void* param2)
518518
result.Wait();
519519
}
520520
break;
521+
522+
case GUI_GET_FOCUSED_CPUWINDOW:
523+
{
524+
BridgeResult result;
525+
emit getFocusedCPUWindow();
526+
return (void*)result.Wait();
527+
}
528+
break;
529+
521530
}
522531
return nullptr;
523532
}

src/gui/Src/Bridge/Bridge.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class Bridge : public QObject
113113
void getGlobalNotes(void* text);
114114
void setDebuggeeNotes(const QString text);
115115
void getDebuggeeNotes(void* text);
116-
116+
void getFocusedCPUWindow();
117117
private:
118118
QMutex* mBridgeMutex;
119119
dsint bridgeResult;

src/gui/Src/Gui/CPUWidget.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ CPUWidget::CPUWidget(QWidget* parent) : QWidget(parent), ui(new Ui::CPUWidget)
1313
connect(mDisas, SIGNAL(selectionChanged(dsint)), mSideBar, SLOT(setSelection(dsint)));
1414
connect(Bridge::getBridge(), SIGNAL(dbgStateChanged(DBGSTATE)), mSideBar, SLOT(debugStateChangedSlot(DBGSTATE)));
1515
connect(Bridge::getBridge(), SIGNAL(updateSideBar()), mSideBar, SLOT(repaint()));
16+
connect(Bridge::getBridge(), SIGNAL(getFocusedCPUWindow()), this, SLOT(getFocusedCPUWindow()));
1617

1718
QSplitter* splitter = new QSplitter(this);
1819
splitter->addWidget(mSideBar);
@@ -146,3 +147,22 @@ CPUStack* CPUWidget::getStackWidget()
146147
{
147148
return mStack;
148149
}
150+
151+
void CPUWidget::getFocusedCPUWindow()
152+
{
153+
QWidget* w = QApplication::focusWidget();
154+
int r = -1;
155+
if(w == mDisas)
156+
{
157+
r = GUI_DISASSEMBLY;
158+
}
159+
else if(w == mDump)
160+
{
161+
r = GUI_DUMP;
162+
}
163+
else if(w == mStack)
164+
{
165+
r = GUI_STACK;
166+
}
167+
Bridge::getBridge()->setResult(r);
168+
}

src/gui/Src/Gui/CPUWidget.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ class CPUWidget : public QWidget
4747
CPUStack* mStack;
4848
RegistersView* mGeneralRegs;
4949
CPUInfoBox* mInfo;
50-
50+
private slots:
51+
void getFocusedCPUWindow();
5152
private:
5253
Ui::CPUWidget* ui;
5354
};

0 commit comments

Comments
 (0)