From 6dbc88911dc753204f935a2f3a95ec2a88f7ffb7 Mon Sep 17 00:00:00 2001 From: Linventif Date: Sun, 15 Sep 2024 16:42:39 +0000 Subject: [PATCH] Feat: add discord context menu shortcut --- .../client/cl_context_menu.lua | 12 +++++++ .../client/cl_screenshots.lua | 34 +++++++++++++++++- .../gmod_integration/logo_context_screen.png | Bin 0 -> 5287 bytes 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 materials/gmod_integration/logo_context_screen.png diff --git a/lua/gmod_integration/client/cl_context_menu.lua b/lua/gmod_integration/client/cl_context_menu.lua index 40241be..ae7ea02 100644 --- a/lua/gmod_integration/client/cl_context_menu.lua +++ b/lua/gmod_integration/client/cl_context_menu.lua @@ -22,4 +22,16 @@ list.Set("DesktopWindows", "GmodIntegration:DesktopWindows:ReportBug", { window:Close() gmInte.openReportBug() end +}) + +list.Set("DesktopWindows", "GmodIntegration:DesktopWindows:SendScreen", { + icon = "gmod_integration/logo_context_screen.png", + title = "Dsc Screen", + width = 960, + height = 700, + onewindow = true, + init = function(icon, window) + window:Close() + gmInte.contextScreenshot() + end }) \ No newline at end of file diff --git a/lua/gmod_integration/client/cl_screenshots.lua b/lua/gmod_integration/client/cl_screenshots.lua index c90a37d..a767b64 100644 --- a/lua/gmod_integration/client/cl_screenshots.lua +++ b/lua/gmod_integration/client/cl_screenshots.lua @@ -57,4 +57,36 @@ hook.Add("OnPlayerChat", "gmInteChatCommands", function(ply, text, teamChat, isD gmInte.takeScreenShot() return true end -end) \ No newline at end of file +end) + +local contextMenuOpen = false +local contextClick = false +hook.Add("OnContextMenuOpen", "gmInte:ContextScreen:ContextMenu:Open", function() contextMenuOpen = true end) +hook.Add("OnContextMenuClose", "gmInte:ContextScreen:ContextMenu:Close", function() contextMenuOpen = false end) +hook.Add("HUDPaint", "gmInte:ContextScreen:Screenshot", function() + if !contextClick then return end + if !contextMenuOpen then return end + surface.SetDrawColor(230, 230, 230) + surface.DrawRect(0, 0, ScrW(), 3) + surface.DrawRect(0, 0, 3, ScrH()) + surface.DrawRect(ScrW() - 3, 0, 3, ScrH()) + surface.DrawRect(0, ScrH() - 3, ScrW(), 3) + surface.DrawRect(ScrW() / 2 - 10, ScrH() / 2 - 1, 20, 2) + surface.DrawRect(ScrW() / 2 - 1, ScrH() / 2 - 10, 2, 20) + surface.SetDrawColor(0, 0, 0, 50) + surface.DrawRect(0, 0, ScrW(), ScrH()) + draw.SimpleText(gmInte.getTranslation("report_bug.context_menu.screen_capture", "Close the context menu to take the screenshot that will be send to Discord."), "Trebuchet24", ScrW() / 2, ScrH() / 2 + 40, Color(255, 255, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) +end) + +function gmInte.contextScreenshot() + if ScreenshotRequested then return end + contextClick = true + local timerName = "gmInte:ContextScreen:Screenshot:Open" + gmInte.showScreenshotInfo = true + timer.Create(timerName, 0.2, 0, function() + if contextMenuOpen then return end + contextClick = false + timer.Remove(timerName) + timer.Simple(0.5, gmInte.takeScreenShot) + end) +end \ No newline at end of file diff --git a/materials/gmod_integration/logo_context_screen.png b/materials/gmod_integration/logo_context_screen.png new file mode 100644 index 0000000000000000000000000000000000000000..9b2291757f7677ca3d50997c6a063077f3c58734 GIT binary patch literal 5287 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 literal 0 HcmV?d00001