From 1dbe7dd5f9e65c9fb4fd32ffe3388ff8cf63e957 Mon Sep 17 00:00:00 2001
From: Thomas Goyne <plorkyeran@aegisub.org>
Date: Sun, 2 Mar 2014 07:24:06 -0800
Subject: [PATCH] Return a rgba string for coloralpha lua controls

---
 aegisub/libaegisub/common/color.cpp           | 4 +++-
 aegisub/libaegisub/include/libaegisub/color.h | 2 +-
 aegisub/src/auto4_lua_dialog.cpp              | 4 ++--
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/aegisub/libaegisub/common/color.cpp b/aegisub/libaegisub/common/color.cpp
index 182277911..027632eff 100644
--- a/aegisub/libaegisub/common/color.cpp
+++ b/aegisub/libaegisub/common/color.cpp
@@ -43,7 +43,9 @@ std::string Color::GetSsaFormatted() const {
 	return boost::lexical_cast<std::string>((a << 24) + (b << 16) + (g << 8) + r);
 }
 
-std::string Color::GetHexFormatted() const {
+std::string Color::GetHexFormatted(bool rgba) const {
+	if (rgba)
+		return str(boost::format("#%02X%02X%02X%02X") % (int)r % (int)g % (int)b % (int)a);
 	return str(boost::format("#%02X%02X%02X") % (int)r % (int)g % (int)b);
 }
 
diff --git a/aegisub/libaegisub/include/libaegisub/color.h b/aegisub/libaegisub/include/libaegisub/color.h
index b45b58fb9..7b415b0ea 100644
--- a/aegisub/libaegisub/include/libaegisub/color.h
+++ b/aegisub/libaegisub/include/libaegisub/color.h
@@ -33,7 +33,7 @@ namespace agi {
 		std::string GetAssStyleFormatted() const;
 		std::string GetAssOverrideFormatted() const;
 		std::string GetSsaFormatted() const;
-		std::string GetHexFormatted() const;
+		std::string GetHexFormatted(bool rgba=false) const;
 		std::string GetRgbFormatted() const;
 
 		operator std::string() const { return GetRgbFormatted(); }
diff --git a/aegisub/src/auto4_lua_dialog.cpp b/aegisub/src/auto4_lua_dialog.cpp
index 2b60282c8..2ae6d3fd2 100644
--- a/aegisub/src/auto4_lua_dialog.cpp
+++ b/aegisub/src/auto4_lua_dialog.cpp
@@ -206,7 +206,7 @@ namespace Automation4 {
 			}
 
 			bool CanSerialiseValue() const override { return true; }
-			std::string SerialiseValue() const override { return inline_string_encode(color.GetHexFormatted()); }
+			std::string SerialiseValue() const override { return inline_string_encode(color.GetHexFormatted(alpha)); }
 			void UnserialiseValue(const std::string &serialised) override { color = inline_string_decode(serialised); }
 
 			wxControl *Create(wxWindow *parent) override {
@@ -216,7 +216,7 @@ namespace Automation4 {
 			}
 
 			void LuaReadBack(lua_State *L) override {
-				lua_pushstring(L, color.GetHexFormatted().c_str());
+				lua_pushstring(L, color.GetHexFormatted(alpha).c_str());
 			}
 		};
 
-- 
GitLab