You've already forked rdsspy-lua-host
mirror of
https://github.com/KubaPro010/rdsspy-lua-host.git
synced 2026-02-26 18:35:01 +01:00
window sticking
This commit is contained in:
@@ -576,6 +576,9 @@ local function render_menu()
|
|||||||
else out = out .. string.format("RDS-System time offset: ~0\r\n") end
|
else out = out .. string.format("RDS-System time offset: ~0\r\n") end
|
||||||
out = out .. string.format("Local time: %s\r\n", time_display_local)
|
out = out .. string.format("Local time: %s\r\n", time_display_local)
|
||||||
out = out .. string.format("UTC time: %s\r\n", time_display_utc)
|
out = out .. string.format("UTC time: %s\r\n", time_display_utc)
|
||||||
|
elseif current_menu == event_count then
|
||||||
|
out = out .. "Toggled windows stickness"
|
||||||
|
set_window_stick(not get_window_stick())
|
||||||
end
|
end
|
||||||
|
|
||||||
local hash = crc(out)
|
local hash = crc(out)
|
||||||
|
|||||||
37
plugin.c
37
plugin.c
@@ -80,8 +80,9 @@ static const unsigned char EBU[127] = {
|
|||||||
0x00, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE6, 0x9C, 0x9F, 0x00
|
0x00, 0x00, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE6, 0x9C, 0x9F, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
static unsigned int console_mode = 0;
|
static unsigned short console_mode = 0;
|
||||||
static unsigned int stop_execution = 0;
|
static unsigned short stop_execution = 0;
|
||||||
|
static unsigned short sticky = 0;
|
||||||
|
|
||||||
const char* int_to_string(int value) {
|
const char* int_to_string(int value) {
|
||||||
static char buffer[16];
|
static char buffer[16];
|
||||||
@@ -227,6 +228,17 @@ int lua_set_console_mode(lua_State* localL) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int lua_set_window_stick(lua_State* localL) {
|
||||||
|
if (!lua_isboolean(localL, 1)) return luaL_error(localL, "boolean expected, got %s", luaL_typename(localL, 1));
|
||||||
|
sticky = lua_toboolean(localL, 1);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int lua_get_window_stick(lua_State* localL) {
|
||||||
|
lua_pushboolean(localL, sticky);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int lua_set_font_size(lua_State* localL) {
|
int lua_set_font_size(lua_State* localL) {
|
||||||
int size = luaL_checkinteger(localL, 1);
|
int size = luaL_checkinteger(localL, 1);
|
||||||
|
|
||||||
@@ -552,8 +564,7 @@ __declspec(dllexport) void WINAPI Command(const char* Cmd, const char* Param) {
|
|||||||
lua_close(L);
|
lua_close(L);
|
||||||
L = NULL;
|
L = NULL;
|
||||||
}
|
}
|
||||||
} else if (_stricmp(Cmd, "CONFIGURE") == 0) ShowWindow(hWnd, SW_SHOW);
|
} else if (_stricmp(Cmd, "CONFIGURE") == 0 || _stricmp(Cmd, "SHOW") == 0) ShowWindow(hWnd, SW_SHOW);
|
||||||
else if (_stricmp(Cmd, "SHOW") == 0) ShowWindow(hWnd, SW_SHOW);
|
|
||||||
else if (_stricmp(Cmd, "MINIMIZE") == 0) ShowWindow(hWnd, SW_MINIMIZE);
|
else if (_stricmp(Cmd, "MINIMIZE") == 0) ShowWindow(hWnd, SW_MINIMIZE);
|
||||||
else if (_stricmp(Cmd, "RESTORE") == 0) ShowWindow(hWnd, SW_RESTORE);
|
else if (_stricmp(Cmd, "RESTORE") == 0) ShowWindow(hWnd, SW_RESTORE);
|
||||||
else if (_stricmp(Cmd, "OPENWORKSPACE") == 0) {
|
else if (_stricmp(Cmd, "OPENWORKSPACE") == 0) {
|
||||||
@@ -565,6 +576,7 @@ __declspec(dllexport) void WINAPI Command(const char* Cmd, const char* Param) {
|
|||||||
int y = GetPrivateProfileIntA("luahost", "Top", 240, Param);
|
int y = GetPrivateProfileIntA("luahost", "Top", 240, Param);
|
||||||
SetWindowPos(hWnd, NULL, x, y, 0, 0, SWP_NOSIZE);
|
SetWindowPos(hWnd, NULL, x, y, 0, 0, SWP_NOSIZE);
|
||||||
}
|
}
|
||||||
|
sticky = GetPrivateProfileIntA("luahost", "Stick", 0, Param);
|
||||||
lua_call_command(Cmd, Param); // still call
|
lua_call_command(Cmd, Param); // still call
|
||||||
} else if (_stricmp(Cmd, "SAVEWORKSPACE") == 0) {
|
} else if (_stricmp(Cmd, "SAVEWORKSPACE") == 0) {
|
||||||
if(hWnd != NULL) {
|
if(hWnd != NULL) {
|
||||||
@@ -573,6 +585,7 @@ __declspec(dllexport) void WINAPI Command(const char* Cmd, const char* Param) {
|
|||||||
WritePrivateProfileStringA("luahost", "Left", int_to_string(rect.left), Param);
|
WritePrivateProfileStringA("luahost", "Left", int_to_string(rect.left), Param);
|
||||||
WritePrivateProfileStringA("luahost", "Top", int_to_string(rect.top), Param);
|
WritePrivateProfileStringA("luahost", "Top", int_to_string(rect.top), Param);
|
||||||
}
|
}
|
||||||
|
WritePrivateProfileStringA("luahost", "Stick", (sticky != 0) ? "1" : "0", Param);
|
||||||
WritePrivateProfileStringA("luahost", "Visible", IsWindowVisible(hWnd) ? "1" : "0", Param);
|
WritePrivateProfileStringA("luahost", "Visible", IsWindowVisible(hWnd) ? "1" : "0", Param);
|
||||||
}
|
}
|
||||||
lua_call_command(Cmd, Param); // still call
|
lua_call_command(Cmd, Param); // still call
|
||||||
@@ -582,13 +595,27 @@ __declspec(dllexport) void WINAPI Command(const char* Cmd, const char* Param) {
|
|||||||
snprintf(msg_buffer, sizeof(msg_buffer), "Lua error loading file: %s\r\n", lua_tostring(L, -1));
|
snprintf(msg_buffer, sizeof(msg_buffer), "Lua error loading file: %s\r\n", lua_tostring(L, -1));
|
||||||
AppendText(msg_buffer);
|
AppendText(msg_buffer);
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1);
|
||||||
|
stop_execution = 1;
|
||||||
} else {
|
} else {
|
||||||
if (lua_pcall(L, 0, 0, 0) != LUA_OK) {
|
if (lua_pcall(L, 0, 0, 0) != LUA_OK) {
|
||||||
snprintf(msg_buffer, sizeof(msg_buffer), "Init error: %s\r\n", lua_tostring(L, -1));
|
snprintf(msg_buffer, sizeof(msg_buffer), "Init error: %s\r\n", lua_tostring(L, -1));
|
||||||
AppendText(msg_buffer);
|
AppendText(msg_buffer);
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1);
|
||||||
|
stop_execution = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if(_stricmp(Cmd, "MOVEX") == 0) {
|
||||||
|
if(sticky != 0) {
|
||||||
|
RECT rect; // get rect
|
||||||
|
if (GetWindowRect(hWnd, &rect)) SetWindowPos(hWnd, NULL, rect.left+atoi(Param), rect.top, 0, 0, SWP_NOSIZE);
|
||||||
|
}
|
||||||
|
lua_call_command(Cmd, Param);
|
||||||
|
} else if(_stricmp(Cmd, "MOVEY") == 0) {
|
||||||
|
if(sticky != 0) {
|
||||||
|
RECT rect; // get rect
|
||||||
|
if (GetWindowRect(hWnd, &rect)) SetWindowPos(hWnd, NULL, rect.left, rect.top+atoi(Param), 0, 0, SWP_NOSIZE);
|
||||||
|
}
|
||||||
|
lua_call_command(Cmd, Param);
|
||||||
} else lua_call_command(Cmd, Param);
|
} else lua_call_command(Cmd, Param);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -606,6 +633,8 @@ void InitLua() {
|
|||||||
lua_register(L, "log", lua_log);
|
lua_register(L, "log", lua_log);
|
||||||
lua_register(L, "set_console", lua_set_console);
|
lua_register(L, "set_console", lua_set_console);
|
||||||
lua_register(L, "set_console_mode", lua_set_console_mode);
|
lua_register(L, "set_console_mode", lua_set_console_mode);
|
||||||
|
lua_register(L, "set_window_stick", lua_set_window_stick);
|
||||||
|
lua_register(L, "get_window_stick", lua_get_window_stick);
|
||||||
|
|
||||||
lua_pushinteger(L, BUTTON_COUNT);
|
lua_pushinteger(L, BUTTON_COUNT);
|
||||||
lua_setglobal(L, "event_count");
|
lua_setglobal(L, "event_count");
|
||||||
|
|||||||
@@ -51,6 +51,12 @@ function set_console(data) end
|
|||||||
---@param mode boolean
|
---@param mode boolean
|
||||||
function set_console_mode(mode) end
|
function set_console_mode(mode) end
|
||||||
|
|
||||||
|
---Settings this on makes the window move with the main RDS Spy window regardless the console is
|
||||||
|
---@param stick boolean
|
||||||
|
function set_window_stick(stick) end
|
||||||
|
---@return boolean
|
||||||
|
function get_window_stick() end
|
||||||
|
|
||||||
db = {}
|
db = {}
|
||||||
|
|
||||||
---@param key string
|
---@param key string
|
||||||
|
|||||||
Reference in New Issue
Block a user