GUI: Support styles in xml to reduce xml file size

Also allow sliders to have their own text label instead of
requiring a whole separate text object for the label in the xml.

Change-Id: I6e314efb4bb454d496555ff7e003d743063a1308
diff --git a/gui/fileselector.cpp b/gui/fileselector.cpp
index 5c287c3..2602eb2 100644
--- a/gui/fileselector.cpp
+++ b/gui/fileselector.cpp
@@ -70,8 +70,10 @@
 		if (attr)
 			mPathVar = attr->value();
 		attr = child->first_attribute("default");
-		if (attr)
+		if (attr) {
+			mPathDefault = attr->value();
 			DataManager::SetValue(mPathVar, attr->value());
+		}
 	}
 
 	// Handle the result variable
@@ -168,6 +170,8 @@
 		} else {
 			// Reset the list to the top
 			SetVisibleListLocation(0);
+			if (value.empty())
+				DataManager::SetValue(mPathVar, mPathDefault);
 		}
 		updateFileList = true;
 		mUpdate = 1;
@@ -288,6 +292,10 @@
 {
 	GUIScrollList::SetPageFocus(inFocus);
 	if (inFocus) {
+		std::string value;
+		DataManager::GetValue(mPathVar, value);
+		if (value.empty())
+			DataManager::SetValue(mPathVar, mPathDefault);
 		updateFileList = true;
 		mUpdate = 1;
 	}