Skip to content

Commit e8f45b6

Browse files
authored
Merge pull request #1575 from nicolasnoble/more-gui-extra
Adding some more Lua bindings for UI
2 parents acd34c5 + 59c9fba commit e8f45b6

File tree

4 files changed

+22
-3
lines changed

4 files changed

+22
-3
lines changed

src/gui/gui.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ void PCSX::GUI::glErrorCallback(GLenum source, GLenum type, GLuint id, GLenum se
285285
void PCSX::GUI::setLua(Lua L) {
286286
setLuaCommon(L);
287287
LoadImguiBindings(L.getState());
288-
LuaFFI::open_imguiextra(L);
288+
LuaFFI::open_imguiextra(this, L);
289289
LuaFFI::open_gl(L);
290290
LuaFFI::open_nvg(L);
291291
{

src/gui/imguiextraffi.lua

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ void imguiGetViewportSize(unsigned id, ImVec2*);
2626
void imguiGetViewportWorkPos(unsigned id, ImVec2*);
2727
void imguiGetViewportWorkSize(unsigned id, ImVec2*);
2828
float imguiGetViewportDpiScale(unsigned id);
29+
void imguiLogText(const char* text);
30+
void guiUseMainFont();
31+
void guiUseMonoFont();
2932
]]
3033

3134
local C = ffi.load 'IMGUIEXTRA'
@@ -63,6 +66,10 @@ imgui.extra = {
6366
return ret[0]
6467
end,
6568
getViewportDpiScale = C.imguiGetViewportDpiScale,
69+
logText = C.imguiLogText,
6670
}
6771

72+
PCSX.GUI.useMainFont = C.guiUseMainFont
73+
PCSX.GUI.useMonoFont = C.guiUseMonoFont
74+
6875
-- )EOF"

src/gui/luaimguiextra.cc

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,15 @@
1919

2020
#include "gui/luaimguiextra.h"
2121

22+
#include "gui/gui.h"
2223
#include "imgui/imgui.h"
2324
#include "imgui_stdlib.h"
2425
#include "lua/luawrapper.h"
2526

2627
namespace {
2728

29+
PCSX::GUI* s_gui = nullptr;
30+
2831
unsigned imguiGetCurrentViewportId() { return ImGui::GetWindowViewport()->ID; }
2932
unsigned imguiGetViewportFlags(unsigned id) { return ImGui::FindViewportByID(id)->Flags; }
3033
void imguiSetViewportFlags(unsigned id, unsigned flags) { ImGui::FindViewportByID(id)->Flags = flags; }
@@ -33,6 +36,9 @@ void imguiGetViewportSize(unsigned id, ImVec2* ret) { *ret = ImGui::FindViewport
3336
void imguiGetViewportWorkPos(unsigned id, ImVec2* ret) { *ret = ImGui::FindViewportByID(id)->WorkPos; }
3437
void imguiGetViewportWorkSize(unsigned id, ImVec2* ret) { *ret = ImGui::FindViewportByID(id)->WorkSize; }
3538
float imguiGetViewportDpiScale(unsigned id) { return ImGui::FindViewportByID(id)->DpiScale; }
39+
void imguiLogText(const char* text) { ImGui::LogText("%s", text); }
40+
void guiUseMainFont() { s_gui->useMainFont(); }
41+
void guiUseMonoFont() { s_gui->useMonoFont(); }
3642

3743
template <typename T, size_t S>
3844
void registerSymbol(PCSX::Lua L, const char (&name)[S], const T ptr) {
@@ -56,14 +62,18 @@ void registerAllSymbols(PCSX::Lua L) {
5662
REGISTER(L, imguiGetViewportWorkPos);
5763
REGISTER(L, imguiGetViewportWorkSize);
5864
REGISTER(L, imguiGetViewportDpiScale);
65+
REGISTER(L, imguiLogText);
66+
REGISTER(L, guiUseMainFont);
67+
REGISTER(L, guiUseMonoFont);
5968

6069
L.settable();
6170
L.pop();
6271
}
6372

6473
} // namespace
6574

66-
void PCSX::LuaFFI::open_imguiextra(Lua L) {
75+
void PCSX::LuaFFI::open_imguiextra(GUI* gui, Lua L) {
76+
s_gui = gui;
6777
registerAllSymbols(L);
6878
static int lualoader = 2;
6979
static const char* imguiextra = (

src/gui/luaimguiextra.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@
2323

2424
namespace PCSX {
2525

26+
class GUI;
27+
2628
namespace LuaFFI {
2729

28-
void open_imguiextra(Lua L);
30+
void open_imguiextra(GUI*, Lua L);
2931

3032
}
3133

0 commit comments

Comments
 (0)