SXPanda wrote:Hi Kaelri, I am the developer of Rainpad. Could you please give me a few pointers on where I could improve the program for the next version? Any feedback would be greatly appreciated.
Well, let me give you some examples. I apologize if some of these sound like nitpicking, but in a programming context, it's very important to be clear about concepts and consistent with terminology.
First, let me start with the "template" skin that appears when Rainpad is loaded. Your default [Rainmeter] section includes some invalid options.
Code: Select all
[Rainmeter]
Author =
Update =
SkinPath =
Version =
"Update" is fine.
SkinPath, however, is
not an option related to skins. It's an option in the user's
settings file, and is not allowed to be changed by an individual skin. Likewise, the
Author and
Version tags belong to the
[Metadata] section, and should not be placed in [Rainmeter]. (The change to "Author" was very recent, so I don't blame you for this.) I would strongly encourage you to read through our
documentation, including the
Getting Started guide, to make sure that you are clear on the way Rainmeter's settings, layout and skin files are structured.
Second, I do not think that your "Variables" template is appropriate for a general-purpose skin editor:
Screenshot5.png
To a new Rainmeter author, this interface would imply that the only things variables are used for are fonts and colors. I think this is a misleading way to present the concept of
variables, which are simply strings of text that can be used for virtually any purpose. Variables are used to reference file paths, URLs, mathematical formulas, and many other kinds of information.
(In addition, your "colors" column is labeled "hex codes only," which is not true - Rainmeter's
color options support both hexadecimal and comma-separated color values.)
Third: I think your "meter" macros are problematic in the way that they constrain and obfuscate the mechanics of meters and measures. Take your "Time" meter as an example:
Screenshot6.png
- The "Format" buttons offer a few basic formats, which is fine; but they hide the actual
format codes from the user, and offer no guidance with regard to additional combinations. Likewise, the Alignment option below offers only three choices - "left," "right" and "center" - and omits the
full range of StringAlign values.
- The X and Y fields are described as "Screen position," which is not correct. A meter's X/Y values describe its position
within the skin "window". Since skins can be clicked and dragged, the meter's X/Y rarely if ever matches its position on the screen. So again, while this may seem like a minor point, it's related to a very common point of confusion for many users, and an editing tool like yours needs to be clear in its meaning.
- The option names in this dialog do not match the real option names. "Alignment" should be
StringAlign; "Text Effect" should be
StringEffect; "Suffix" should be
Postfix; etc. I understand that you probably wanted to "translate" these terms into more user-friendly terms. But if the options in your interface don't match the options that appear in the actual code, it's only going to be another point of misunderstanding, and a definite inhibition for someone who wants to move on to more advanced uses.
- The way that font and color options are tied to variables in this interface is very limiting, and has some inappropriate consequences. For example, if I type "Trebuchet MS" into the "Font" option, the code that your tool outputs is
FontFace = #Trebuchet MS#, which is obviously not what the user's intention would be in this context.
- If used with a "bar" or "roundline" meter, this tool will produce invalid code. For example, this is the output of the tool without any other options selected:
Code: Select all
-------------------------------------------Time meter/measure-------------------------------------
[MeasureTime]
Measure = Time
Format = %H:%M:%S
UpdateDivider = 1
MinValue = 0
MaxValue = 60
[MeterTime]
Meter = Bar
MeasureName = MeasureTime
X = 0
Y = 0
W =
H =
BarOrientation =
BarImage =
The problem here is that with the "format" option, the Time measure provides a "string" value, in the format of
%H:%M:%S, such as "10:36:05". This is not a format that can be used by a Bar or Roundline meter, which require raw "number" values without any string formatting. The
separation between "string" and "number" values is one of the many reasons that measures and meters are defined as separate, individual objects in the skin code, not combined as you have them here. (In addition, that
MaxValue=60 will not give you the results you were expecting with a Time measure. You were probably thinking of
ValueRemainder, which is an option for Roundline and Rotator meters that allows cyclical values like minutes and seconds to "loop" around.)
Fourth: your documentation uses some incorrect terminology and information: For instance, you frequently refer to "your Rainmeter." We use the word "Rainmeter" to refer to the application itself, or the platform more broadly; an individual project module is known as a
Rainmeter skin.
There are other issues that I could point out, but I chose these examples because they touch on some of the most fundamental aspects of how Rainmeter works. I certainly don't want to discourage you from working on this project in any way. But if you intend for this to be used as a tool by other Rainmeter users, these issues are important.