From 519caee4e3f6f74a2718cb2694f8143f7b62cdd8 Mon Sep 17 00:00:00 2001
From: Rudolf Polzer <divverent@alientrap.org>
Date: Sun, 16 Jan 2011 21:59:38 +0100
Subject: [PATCH] some panelhud dialogs

---
 qcsrc/menu/stringfilelist.txt                 |  8 --
 .../xonotic/dialog_hudpanel_healtharmor.c     | 82 +++--------------
 .../xonotic/dialog_hudpanel_infomessages.c    | 62 +------------
 qcsrc/menu/xonotic/dialog_hudpanel_modicons.c | 57 +-----------
 .../xonotic/dialog_hudpanel_notification.c    | 68 ++------------
 qcsrc/menu/xonotic/dialog_hudpanel_powerups.c | 82 +++--------------
 .../xonotic/dialog_hudpanel_pressedkeys.c     | 65 ++-----------
 .../menu/xonotic/dialog_hudpanel_racetimer.c  | 57 +-----------
 qcsrc/menu/xonotic/dialog_hudpanel_radar.c    | 91 +++++--------------
 qcsrc/menu/xonotic/util.qh                    |  8 +-
 10 files changed, 81 insertions(+), 499 deletions(-)

diff --git a/qcsrc/menu/stringfilelist.txt b/qcsrc/menu/stringfilelist.txt
index 9d2803528a..b3cb00e410 100644
--- a/qcsrc/menu/stringfilelist.txt
+++ b/qcsrc/menu/stringfilelist.txt
@@ -15,14 +15,6 @@ Guideline:
 
 List of files to do:
 
-./xonotic/dialog_hudpanel_healtharmor.c
-./xonotic/dialog_hudpanel_infomessages.c
-./xonotic/dialog_hudpanel_modicons.c
-./xonotic/dialog_hudpanel_notification.c
-./xonotic/dialog_hudpanel_powerups.c
-./xonotic/dialog_hudpanel_pressedkeys.c
-./xonotic/dialog_hudpanel_racetimer.c
-./xonotic/dialog_hudpanel_radar.c
 ./xonotic/dialog_hudpanel_score.c
 ./xonotic/dialog_hudpanel_timer.c
 ./xonotic/dialog_hudpanel_vote.c
diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c b/qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c
index 3e8a43aeb3..404e7bb658 100644
--- a/qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c
+++ b/qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c
@@ -1,7 +1,7 @@
 #ifdef INTERFACE
 CLASS(XonoticHUDHealthArmorDialog) EXTENDS(XonoticRootDialog)
 	METHOD(XonoticHUDHealthArmorDialog, fill, void(entity))
-	ATTRIB(XonoticHUDHealthArmorDialog, title, string, "Health/Armor Panel")
+	ATTRIB(XonoticHUDHealthArmorDialog, title, string, _("Health/Armor Panel"))
 	ATTRIB(XonoticHUDHealthArmorDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
 	ATTRIB(XonoticHUDHealthArmorDialog, intendedWidth, float, 0.4)
 	ATTRIB(XonoticHUDHealthArmorDialog, rows, float, 15)
@@ -17,84 +17,32 @@ void XonoticHUDHealthArmorDialog_fill(entity me)
 	string panelname = "healtharmor";
 	float i;
 
+	DIALOG_HUDPANEL_COMMON();
+
 	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor", "Enable panel"));
-	me.TR(me);
-		me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
-			me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
-		me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
-			setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
-				e.addValue(e, "Default", "");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.4);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
-				e.addValue(e, "Default", "");
-				for(i = 0; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_progressbar", "Enable status bar"));
+		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_progressbar", _("Enable status bar")));
 	me.TR(me);
-		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Status bar alignment:"));
+		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Status bar alignment:")));
 			setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
 	me.TR(me);
 		me.TDempty(me, 0.2);
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "0", "Left"));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "0", _("Left")));
 			setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "1", "Right"));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "1", _("Right")));
 			setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "3", "Inward"));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "3", _("Inward")));
 			setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "4", "Outward"));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_healtharmor_baralign", "4", _("Outward")));
 			setDependent(e, "hud_panel_healtharmor_progressbar", 1, 1);
 	me.TR(me);
-		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Icon alignment:"));
+		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Icon alignment:")));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "0", "Left"));
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "1", "Right"));
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "3", "Inward"));
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "4", "Outward"));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "0", _("Left")));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "1", _("Right")));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "3", _("Inward")));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_healtharmor_iconalign", "4", _("Outward")));
 	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_flip", "Flip health and armor positions"));
+		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_healtharmor_flip", _("Flip health and armor positions")));
 }
 #endif
diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c b/qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c
index d8534a20e9..187b9181dc 100644
--- a/qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c
+++ b/qcsrc/menu/xonotic/dialog_hudpanel_infomessages.c
@@ -1,7 +1,7 @@
 #ifdef INTERFACE
 CLASS(XonoticHUDInfoMessagesDialog) EXTENDS(XonoticRootDialog)
 	METHOD(XonoticHUDInfoMessagesDialog, fill, void(entity))
-	ATTRIB(XonoticHUDInfoMessagesDialog, title, string, "Info Messages Panel")
+	ATTRIB(XonoticHUDInfoMessagesDialog, title, string, _("Info Messages Panel"))
 	ATTRIB(XonoticHUDInfoMessagesDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
 	ATTRIB(XonoticHUDInfoMessagesDialog, intendedWidth, float, 0.4)
 	ATTRIB(XonoticHUDInfoMessagesDialog, rows, float, 15)
@@ -17,64 +17,12 @@ void XonoticHUDInfoMessagesDialog_fill(entity me)
 	string panelname = "infomessages";
 	float i;
 
+	DIALOG_HUDPANEL_COMMON();
+
 	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_infomessages", "Enable panel"));
-	me.TR(me);
-		me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
-			me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
-		me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
-			setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
-				e.addValue(e, "Default", "");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.4);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
-				e.addValue(e, "Default", "");
-				for(i = 0; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Info messages:"));
+		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Info messages:")));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_infomessages_flip", "Flip align"));
+		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_infomessages_flip", _("Flip align")));
 }
 #endif
diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_modicons.c b/qcsrc/menu/xonotic/dialog_hudpanel_modicons.c
index d60a72473f..05ec1f5b8c 100644
--- a/qcsrc/menu/xonotic/dialog_hudpanel_modicons.c
+++ b/qcsrc/menu/xonotic/dialog_hudpanel_modicons.c
@@ -1,7 +1,7 @@
 #ifdef INTERFACE
 CLASS(XonoticHUDModIconsDialog) EXTENDS(XonoticRootDialog)
 	METHOD(XonoticHUDModIconsDialog, fill, void(entity))
-	ATTRIB(XonoticHUDModIconsDialog, title, string, "Mod Icons Panel")
+	ATTRIB(XonoticHUDModIconsDialog, title, string, _("Mod Icons Panel"))
 	ATTRIB(XonoticHUDModIconsDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
 	ATTRIB(XonoticHUDModIconsDialog, intendedWidth, float, 0.4)
 	ATTRIB(XonoticHUDModIconsDialog, rows, float, 15)
@@ -17,59 +17,6 @@ void XonoticHUDModIconsDialog_fill(entity me)
 	string panelname = "modicons";
 	float i;
 
-	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_modicons", "Enable panel"));
-	me.TR(me);
-		me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
-			me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
-		me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
-			setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
-				e.addValue(e, "Default", "");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.4);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
-				e.addValue(e, "Default", "");
-				for(i = 0; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
-				e.configureXonoticTextSliderValues(e);
+	DIALOG_HUDPANEL_COMMON();
 }
 #endif
diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_notification.c b/qcsrc/menu/xonotic/dialog_hudpanel_notification.c
index b0752664f2..59590e32bb 100644
--- a/qcsrc/menu/xonotic/dialog_hudpanel_notification.c
+++ b/qcsrc/menu/xonotic/dialog_hudpanel_notification.c
@@ -1,7 +1,7 @@
 #ifdef INTERFACE
 CLASS(XonoticHUDNotificationDialog) EXTENDS(XonoticRootDialog)
 	METHOD(XonoticHUDNotificationDialog, fill, void(entity))
-	ATTRIB(XonoticHUDNotificationDialog, title, string, "Notification Panel")
+	ATTRIB(XonoticHUDNotificationDialog, title, string, _("Notification Panel"))
 	ATTRIB(XonoticHUDNotificationDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
 	ATTRIB(XonoticHUDNotificationDialog, intendedWidth, float, 0.4)
 	ATTRIB(XonoticHUDNotificationDialog, rows, float, 15)
@@ -17,75 +17,23 @@ void XonoticHUDNotificationDialog_fill(entity me)
 	string panelname = "notify";
 	float i;
 
+	DIALOG_HUDPANEL_COMMON();
+
 	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify", "Enable panel"));
-	me.TR(me);
-		me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
-			me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
-		me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
-			setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
-				e.addValue(e, "Default", "");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.4);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
-				e.addValue(e, "Default", "");
-				for(i = 0; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Notifications:"));
+		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Notifications:")));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify_print", "Also print notifications to the console"));
+		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify_print", _("Also print notifications to the console")));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify_flip", "Flip notify order"));
+		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_notify_flip", _("Flip notify order")));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Entry lifetime:"));
+		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Entry lifetime:")));
 			me.TD(me, 1, 2.6, e = makeXonoticSlider(3, 15, 1, "hud_panel_notify_time"));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Entry fadetime:"));
+		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Entry fadetime:")));
 			me.TD(me, 1, 2.6, e = makeXonoticSlider(0.5, 5, 0.5, "hud_panel_notify_fadetime"));
 }
 #endif
diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_powerups.c b/qcsrc/menu/xonotic/dialog_hudpanel_powerups.c
index 5d4e14c08b..54f5ee2eb3 100644
--- a/qcsrc/menu/xonotic/dialog_hudpanel_powerups.c
+++ b/qcsrc/menu/xonotic/dialog_hudpanel_powerups.c
@@ -1,7 +1,7 @@
 #ifdef INTERFACE
 CLASS(XonoticHUDPowerupsDialog) EXTENDS(XonoticRootDialog)
 	METHOD(XonoticHUDPowerupsDialog, fill, void(entity))
-	ATTRIB(XonoticHUDPowerupsDialog, title, string, "Powerups Panel")
+	ATTRIB(XonoticHUDPowerupsDialog, title, string, _("Powerups Panel"))
 	ATTRIB(XonoticHUDPowerupsDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
 	ATTRIB(XonoticHUDPowerupsDialog, intendedWidth, float, 0.4)
 	ATTRIB(XonoticHUDPowerupsDialog, rows, float, 15)
@@ -17,84 +17,32 @@ void XonoticHUDPowerupsDialog_fill(entity me)
 	string panelname = "powerups";
 	float i;
 
+	DIALOG_HUDPANEL_COMMON();
+
 	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups", "Enable panel"));
-	me.TR(me);
-		me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
-			me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
-		me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
-			setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
-				e.addValue(e, "Default", "");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.4);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
-				e.addValue(e, "Default", "");
-				for(i = 0; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups_progressbar", "Enable status bar"));
+		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups_progressbar", _("Enable status bar")));
 	me.TR(me);
-		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Status bar alignment:"));
+		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Status bar alignment:")));
 			setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
 	me.TR(me);
 		me.TDempty(me, 0.2);
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "0", "Left"));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "0", _("Left")));
 			setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "1", "Right"));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "1", _("Right")));
 			setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "3", "Inward"));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "3", _("Inward")));
 			setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "4", "Outward"));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(2, "hud_panel_powerups_baralign", "4", _("Outward")));
 			setDependent(e, "hud_panel_powerups_progressbar", 1, 1);
 	me.TR(me);
-		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Icon alignment:"));
+		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Icon alignment:")));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "0", "Left"));
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "1", "Right"));
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "3", "Inward"));
-			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "4", "Outward"));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "0", _("Left")));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "1", _("Right")));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "3", _("Inward")));
+			me.TD(me, 1, 0.95, e = makeXonoticRadioButton(3, "hud_panel_powerups_iconalign", "4", _("Outward")));
 	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups_flip", "Flip strength and shield positions"));
+		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_powerups_flip", _("Flip strength and shield positions")));
 }
 #endif
diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c b/qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c
index 30f6bfc1f2..ad7cae5c25 100644
--- a/qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c
+++ b/qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c
@@ -1,7 +1,7 @@
 #ifdef INTERFACE
 CLASS(XonoticHUDPressedKeysDialog) EXTENDS(XonoticRootDialog)
 	METHOD(XonoticHUDPressedKeysDialog, fill, void(entity))
-	ATTRIB(XonoticHUDPressedKeysDialog, title, string, "Pressed Keys Panel")
+	ATTRIB(XonoticHUDPressedKeysDialog, title, string, _("Pressed Keys Panel"))
 	ATTRIB(XonoticHUDPressedKeysDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
 	ATTRIB(XonoticHUDPressedKeysDialog, intendedWidth, float, 0.4)
 	ATTRIB(XonoticHUDPressedKeysDialog, rows, float, 15)
@@ -19,65 +19,16 @@ void XonoticHUDPressedKeysDialog_fill(entity me)
 
 	me.TR(me);
 		me.TD(me, 1, 2, e = makeXonoticTextSlider("hud_panel_pressedkeys"));
-			e.addValue(e, "Panel disabled", "0");
-			e.addValue(e, "Panel enabled when spectating", "1");
-			e.addValue(e, "Panel always enabled", "2");
+			e.addValue(e, _("Panel disabled"), "0");
+			e.addValue(e, _("Panel enabled when spectating"), "1");
+			e.addValue(e, _("Panel always enabled"), "2");
 			e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
-			me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
-		me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
-			setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
-				e.addValue(e, "Default", "");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.4);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
-				e.addValue(e, "Default", "");
-				for(i = 0; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
-				e.configureXonoticTextSliderValues(e);
+
+	DIALOG_HUDPANEL_COMMON_NOTOGGLE();
+
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Forced aspect:"));
+		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Forced aspect:")));
 			me.TD(me, 1, 2.6, e = makeXonoticSlider(0.2, 4, 0.1, "hud_panel_pressedkeys_aspect"));
 }
 #endif
diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c b/qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c
index 35fdc55f3c..ee12b8d9c0 100644
--- a/qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c
+++ b/qcsrc/menu/xonotic/dialog_hudpanel_racetimer.c
@@ -1,7 +1,7 @@
 #ifdef INTERFACE
 CLASS(XonoticHUDRaceTimerDialog) EXTENDS(XonoticRootDialog)
 	METHOD(XonoticHUDRaceTimerDialog, fill, void(entity))
-	ATTRIB(XonoticHUDRaceTimerDialog, title, string, "Race Timer Panel")
+	ATTRIB(XonoticHUDRaceTimerDialog, title, string, _("Race Timer Panel"))
 	ATTRIB(XonoticHUDRaceTimerDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
 	ATTRIB(XonoticHUDRaceTimerDialog, intendedWidth, float, 0.4)
 	ATTRIB(XonoticHUDRaceTimerDialog, rows, float, 15)
@@ -17,59 +17,6 @@ void XonoticHUDRaceTimerDialog_fill(entity me)
 	string panelname = "racetimer";
 	float i;
 
-	me.TR(me);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_panel_racetimer", "Enable panel"));
-	me.TR(me);
-		me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
-			me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
-		me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
-			setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
-				e.addValue(e, "Default", "");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.4);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
-				e.addValue(e, "Default", "");
-				for(i = 0; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
-				e.configureXonoticTextSliderValues(e);
+	DIALOG_HUDPANEL_COMMON();
 }
 #endif
diff --git a/qcsrc/menu/xonotic/dialog_hudpanel_radar.c b/qcsrc/menu/xonotic/dialog_hudpanel_radar.c
index d1202846e2..03c17025d0 100644
--- a/qcsrc/menu/xonotic/dialog_hudpanel_radar.c
+++ b/qcsrc/menu/xonotic/dialog_hudpanel_radar.c
@@ -1,7 +1,7 @@
 #ifdef INTERFACE
 CLASS(XonoticHUDRadarDialog) EXTENDS(XonoticRootDialog)
 	METHOD(XonoticHUDRadarDialog, fill, void(entity))
-	ATTRIB(XonoticHUDRadarDialog, title, string, "Radar Panel")
+	ATTRIB(XonoticHUDRadarDialog, title, string, _("Radar Panel"))
 	ATTRIB(XonoticHUDRadarDialog, color, vector, SKINCOLOR_DIALOG_TEAMSELECT)
 	ATTRIB(XonoticHUDRadarDialog, intendedWidth, float, 0.4)
 	ATTRIB(XonoticHUDRadarDialog, rows, float, 15)
@@ -19,90 +19,41 @@ void XonoticHUDRadarDialog_fill(entity me)
 
 	me.TR(me);
 		me.TD(me, 1, 2, e = makeXonoticTextSlider("hud_panel_radar"));
-			e.addValue(e, "Panel disabled", "0");
-			e.addValue(e, "Panel enabled in teamgames", "1");
-			e.addValue(e, "Panel always enabled", "2");
+			e.addValue(e, _("Panel disabled"), "0");
+			e.addValue(e, _("Panel enabled in teamgames"), "1");
+			e.addValue(e, _("Panel always enabled"), "2");
 			e.configureXonoticTextSliderValues(e);
+
+	DIALOG_HUDPANEL_COMMON_NOTOGGLE();
+
 	me.TR(me);
-		me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, "Background:"));
-			me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				e.addValue(e, strzone(strcat("border_", panelname)), strzone(strcat("border_", panelname)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Color:"));
-		me.TD(me, 2, 2.4, e = makeXonoticColorpickerString(strzone(strcat("hud_panel_", panelname, "_bg_color")), "hud_panel_bg_color"));
-			setDependentStringNotEqual(e, strzone(strcat("hud_panel_", panelname, "_bg_color")), "");
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticCheckBoxString("", "1 1 1", strzone(strcat("hud_panel_", panelname, "_bg_color")), "Use default"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Border size:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_border"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i * 2, 0)), strzone(ftos(i * 2)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_alpha"))));
-				e.addValue(e, "Default", "");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Team Color:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_color_team"))));
-				e.addValue(e, "Default", "");
-				e.addValue(e, "Disable", "0");
-				for(i = 1; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i/10, 1)), strzone(ftos(i/10)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TDempty(me, 0.4);
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_configure_teamcolorforced", "Test the team color in HUD configure mode"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Padding:"));
-			me.TD(me, 1, 2.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg_padding"))));
-				e.addValue(e, "Default", "");
-				for(i = 0; i <= 10; ++i)
-					e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
-				e.configureXonoticTextSliderValues(e);
-	me.TR(me);
-		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, "Radar:"));
+		me.TD(me, 1, 2, e = makeXonoticTextLabel(0, _("Radar:")));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Alpha:"));
+		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Alpha:")));
 		me.TD(me, 1, 2.6, e = makeXonoticSlider(0.1, 1, 0.1, "hud_panel_radar_foreground_alpha"));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Rotation:"));
+		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Rotation:")));
 			me.TD(me, 1, 2.6, e = makeXonoticTextSlider("hud_panel_radar_rotation"));
-				e.addValue(e, "Forward", "0");
-				e.addValue(e, "West", "1");
-				e.addValue(e, "South", "2");
-				e.addValue(e, "East", "3");
-				e.addValue(e, "North", "4");
+				e.addValue(e, _("Forward"), "0");
+				e.addValue(e, _("West"), "1");
+				e.addValue(e, _("South"), "2");
+				e.addValue(e, _("East"), "3");
+				e.addValue(e, _("North"), "4");
 				e.configureXonoticTextSliderValues(e);
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Scale:"));
+		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Scale:")));
 		me.TD(me, 1, 2.6, e = makeXonoticSlider(1024, 8192, 512, "hud_panel_radar_scale"));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, "Zoom mode:"));
+		me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Zoom mode:")));
 			me.TD(me, 1, 1.6, e = makeXonoticTextSlider("hud_panel_radar_zoommode"));
-				e.addValue(e, "Zoomed in", "0");
-				e.addValue(e, "Zoomed out", "1");
-				e.addValue(e, "Always zoomed", "2");
-				e.addValue(e, "Never zoomed", "3");
+				e.addValue(e, _("Zoomed in"), "0");
+				e.addValue(e, _("Zoomed out"), "1");
+				e.addValue(e, _("Always zoomed"), "2");
+				e.addValue(e, _("Never zoomed"), "3");
 				e.configureXonoticTextSliderValues(e);
 }
 #endif
diff --git a/qcsrc/menu/xonotic/util.qh b/qcsrc/menu/xonotic/util.qh
index 85babe9b4b..df1287ac0a 100644
--- a/qcsrc/menu/xonotic/util.qh
+++ b/qcsrc/menu/xonotic/util.qh
@@ -41,9 +41,7 @@ float GameType_GetID(float cnt);
 string GameType_GetName(float cnt);
 float GameType_GetCount();
 
-#define DIALOG_HUDPANEL_COMMON() \
-	me.TR(me); \
-		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, strzone(strcat("hud_panel_", hudpanel)), _("Enable panel"))); \
+#define DIALOG_HUDPANEL_COMMON_NOTOGGLE() \
 	me.TR(me); \
 		me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Background:"))); \
 			me.TD(me, 1, 1.6, e = makeXonoticTextSlider(strzone(strcat("hud_panel_", panelname, "_bg")))); \
@@ -96,3 +94,7 @@ float GameType_GetCount();
 				for(i = 0; i <= 10; ++i) \
 					e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5))); \
 				e.configureXonoticTextSliderValues(e)
+#define DIALOG_HUDPANEL_COMMON() \
+	me.TR(me); \
+		me.TD(me, 1, 3, e = makeXonoticCheckBox(0, strzone(strcat("hud_panel_", hudpanel)), _("Enable panel"))); \
+	DIALOG_HUDPANEL_COMMON_NOTOGGLE()
-- 
2.39.5