I have a suggestion for the GUI to make it more customizable by each user ... First we break every GUI element into separate objects and each element of that main element into another object. Lets take the EXP bar as a case in point (or HP or MP bars) ... It is made out of several elements: the actual bar, the two numerical displays (current value, maximum value), as well as some non-displayed elements like an icon, a title (the word "EXP"), the current percentage, the needed percentage, etc. We give each of these elements an object name that can be addressed in a client-side XML file that configures the GUI. Then we lay out each of these elements in a variety of windows (each "window" has an option to actually display the window or not, like in the case of the EXP bar which is actually displayed in an invisible window as opposed to the item list that is in a window). Each of these window's elements (which can be any element from the wide array of all elements) is displayed in a way defined by a master XML file. Example:
Code: Select all
<window name="EXP" titlebar="no" width="" height="" x="" y=""> // window name displayed in the title bar of the window (h,w,x,y are self explanatory)
<background="invisible"> // invisible means no window displayed, background element can be an image if you want
<quickkey="none"> // a key that toggles the display of this window, always displayed
<element type="EXP_bar_border">
<element type="EXP_bar" />
<element type="EXP_current_needed_percent" justification="center" separator="|"> // displays the current and needed percent separated by "|" as opposed to using EXP_current_needed_value which displays values
</element> // example of a nested element or element within an element
</window>
Just an example ... If this idea is implemented we'll need to hash out all of the element names and all of the options needed for each element.