rodocop
I had planned something about skins, and the files which control/define them. I just have not found the time to do. Unfortunately, I don't see any time for this in the near term.
I had no idea we could now call K-Meleon from K-Meleon.
Skin.cfg is a non-strict file of type 'json'. The following is a defination of json that I found on the net somewhere.
JavaScript Object Notation
http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf
Insignificant whitespace is allowed before or after any token. The whitespace characters are: character
tabulation (U+0009), line feed (U+000A), carriage return (U+000D), and space (U+0020). Whitespace is not
allowed within any token, except that space is allowed in strings.
tokens structural
[ U+005B left square bracket
{ U+007B left curly bracket
] U+005D right square bracket
} U+007D right curly bracket
: U+003A colon
, U+002C comma
tokens literal
true U+0074 U+0072 U+0075 U+0065
false U+0066 U+0061 U+006c U+0073 U+0065
null U+006E U+0075 U+006C U+006C
6 Objects
An object structure is represented as a pair of curly bracket tokens surrounding zero or more name/value pairs.
A name is a string. A single colon token follows each name, separating the name from the value. A single
comma token separates a value from a following name.
{ : } value string
object
,
7 Arrays
An array structure is a pair of square bracket tokens surrounding zero or more values. The values are
separated by commas. The order of the values is significant.
Numbers
Numbers are base 10 without leading zeros. Numbers may be preceded with a + or - symbol
Strings are a series of code points enclosed with " quotation marks
Skin.cfg sets the size and assigns commands to images.
In the code below, the first four lines say the size is 21x21 because that is the size of my throbber. Line 5 says there will be at least one list. Lines 6 and 31 define a single list pair. Line 7 and lines 8 through 30 are list items and while 'images' is small enough to fit on one line, 'commands' requires many lines.
Everything is pairs in the form of name : value. Images has three pairs while commands only has one. That one pair for commands, lists the commands, sometimes multiple, which are associated with each image on the tools0.bmp file. The assignment is from left to right. Lines 13 and 14 are for a single image so they are within brackets. Some images in tools0.bmp have no command assigned, so they require placeholders in the form "",.
I hope this makes sense. I rushed it.
{
"version":1,
"width":21,
"height":21,
"lists": [
{
"images":[ { "name": "tools0.bmp", "width":16, "height":16 } ],
"commands": [
"navBack",
"navForward",
"navStop",
"navReload",
["macros(Home)", "navHome"],
["navSearch","macros(Search)"],
"filePrint",
["bookmarks(Edit)", "favorites(Edit)", "hotlist(Edit)",
"bookmarks(Add)", "bookmarks(AddLink)",
"favorites(AddLink)", "hotlist(AddLink)"],
"",
"",
"",
"",
"macros(Places_History)",
["macros(Mail_ReadMail)", "&Mail And News"],
"",
"",
["macros(Go_Selected)", "navGo"],
"macros(Go_Up)",
"appExit"
]
},