2 // $Date: 2009-07-28 20:04:15 +0300 $
3 // TODO: try jsdoc-toolkit on this json (!)
6 * The list of available languages. This associated language IDs to their
12 // Besides the language title, you may also tell the file name. The 'file'
13 // property needs to be relative to the PaintWeb baseFolder. If no 'file' is
14 // given, then the 'en.json' file name is used, and the file will be loaded
15 // from the 'langFolder' you specify below.
16 "en": { "title": "English" }
20 * The default language.
28 * The folder which holds the language files.
36 * The graphical user interface you want to use.
44 * The folder contains all the interfaces.
47 * @default "interfaces"
49 "interfacesFolder": "interfaces",
52 * The interface markup file. The file must be an XHTML valid document.
55 * @default "layout.xhtml"
57 "guiMarkup": "layout.xhtml",
60 * The interface style file.
63 * @default "style.css"
65 "guiStyle": "style.css",
68 * The interface script file.
73 "guiScript": "script.js",
78 * <p>Note: the GUI implementation might ignore this value.
88 * <p>Note: the GUI implementation might ignore this value.
93 "viewportHeight": 400,
96 * Image save quality for the JPEG format.
101 "jpegSaveQuality": 0.9,
104 * The default image width.
112 * The default image width.
120 * Image preload. The image you want to display when PaintWeb loads. This must
121 * be a reference to an HTML Image element.
123 * @type HTMLImageElement
126 "imagePreload": null,
129 * Default background color.
134 "backgroundColor": "#fff",
137 * Default fill style.
139 * @type CSS3Color-rgba functional notation
140 * @default "rgba(0,0,0,1)"
142 "fillStyle": "rgba(0,0,0,1)",
145 * Default stroke style.
147 * @type CSS3Color-rgba functional notation
148 * @default "rgba(0,0,255,1)"
150 "strokeStyle": "rgba(0,0,255,1)",
153 * GUI placeholder element. This element will hold all the PaintWeb interface
156 * <p>For a successful initialization of PaintWeb, you must define this
157 * configuration value programatically from your scripts.
162 "guiPlaceholder": null,
165 * Shape drawing "type": filled, only stroke, or both. Possible values:
166 * "filled", "stroke" or "both".
174 * Number of available history steps.
182 * Zoom factor when the user increases/decreases the image zoom level.
187 // 0.05 means 5% zoom.
188 "imageZoomStep": 0.05,
191 * The maximum allowed image zoom level.
196 // 4 means 400% zoom.
200 * The minimum allowed image zoom level.
205 // 0.2 means 20% zoom.
209 * The image zoom control keys, for zoom in, zoom out and zoom reset.
219 * Holds the list of drawing tools you want to load.
222 "tools": ["selection", "hand", "rectangle", "ellipse", "polygon", "line", "text", "bcurve", "insertimg", "pencil", "cpicker", "eraser"],
229 "toolsFolder": "tools",
232 * The default tool ID.
236 * @see this.tools The array holding the list of drawing tools you want
239 "toolDefault": "line",
242 * Tool drawing delay. Some tools delay their drawing operations for
243 * performance reasons.
251 * Holds the list of extensions you want to load.
254 "extensions": ["colormixer", "mousekeys"],
260 * @default "extensions"
262 "extensionsFolder": "extensions",
265 * @namespace Line tool options.
269 * Line cap. Possible values: "butt", "round", "square".
277 * Line join. Possible values: "round", "bevel", "miter".
302 * @namespace Shadow options.
306 * Tells if a shadow should render or not.
316 * @type CSS3Color-rgba() functional notation
317 * @default "rgba(0,0,0,1)"
319 "shadowColor": "rgba(0,0,0,1)",
347 * @namespace Selection tool options.
351 * Selection transformation mode. This tells if any drag/resize would also
352 * affect the selected pixels or not.
360 * Transparent selection.
368 * Selection marquee border width.
376 * Keyboard shortcuts for several selection-related commands.
380 "selectionCrop": "Control K",
381 "selectionDelete": "Delete",
382 "selectionDrop": "Escape",
383 "selectionFill": "Alt Backspace",
384 "transformToggle": "Enter"
397 * The default list of font families available in font family drop-down.
400 "fontFamilies": ["sans-serif", "serif", "cursive", "fantasy", "monospace"],
403 * The font family used for rendering the text.
405 * @default "sans-serif"
407 "fontFamily": "sans-serif",
412 * Horizontal text alignment. Possible values: "left", "center", "right".
414 * <p>Note that the Canvas Text API also defines the "start" and "end"
415 * values, which are not "supported" by PaintWeb.
423 * Vertical text alignment. Possible values: "top", "hanging", "middle",
424 * "alphabetic", "ideographic", or "bottom".
427 * @default "alphabetic"
429 "textBaseline": "top"
433 * @namespace Color Mixer extension configuration.
437 * Holds the minimum and maximum value for each color channel input field.
438 * The value incrementation step is also included - this is used the user
439 * presses the up/down arrow keys in the input of the color channel.
445 // order: minimum, maximum, step
447 "green": [0, 255, 1],
456 // CMYK - all are percentages
458 "magenta": [0, 100, 1],
459 "yellow": [0, 100, 1],
460 "black": [0, 100, 1],
463 // cie_l = Lightness, it's a percentage value
464 // cie_a and cie_b are the color-opponent dimensions
465 "cie_l": [ 0, 100, 1],
466 "cie_a": [ -86, 98, 1],
467 "cie_b": [-107, 94, 1],
473 * CIE Lab configuration.
477 // The RGB working space is sRGB which has the reference white point of
479 // These are the chromaticity coordinates for the red, green and blue
488 // Standard observer: D65 (daylight), 2° (CIE 1931).
489 // Chromaticity coordinates.
493 // This is the calculated reference white point (xyY to XYZ) for D65, also
494 // known as the reference illuminant tristimulus.
495 // These values are updated based on chromaticity coordinates, during
501 // The 3x3 matrix used for multiplying the RGB values when converting RGB
503 // These values are updated based on the chromaticity coordinates, during
505 "m": [ 0.412424, 0.212656, 0.0193324,
506 0.357579, 0.715158, 0.119193,
507 0.180464, 0.0721856, 0.950444],
509 // The same matrix, but inverted. This is used for the XYZ to RGB conversion.
510 "m_i": [ 3.24071, -0.969258, 0.0556352,
511 -1.53726, 1.87599, -0.203996,
512 -0.498571, 0.0415557, 1.05707]
516 * Slider width. This value must be relative to the color space
517 * visualisation canvas element: 1 means full width, 0.5 means half width,
521 * @default 0.10 (which is 10% of the canvas element width)
526 * Spacing between the slider and the color chart.
529 * @default 0.03 (which is 3% of the canvas element width)
531 "sliderSpacing": 0.03,
534 * Holds the list of color palettes.
539 // Color values are: red, green, blue. All three channels have values
540 // ranging between 0 and 1.
541 "colors" : [[1,1,1], [1,1,0], [1,0,1], [0,1,1], [1,0,0], [0,1,0], [0,0,1], [0,0,0]]
544 "file" : "colors/windows.json"
547 "file" : "colors/macos.json"
550 "file" : "colors/web.json"
554 "paletteDefault": "windows"
558 * @namespace Holds the MouseKeys extension options.
562 * The mouse keys movement acceleration.
566 * @see PaintMouseKeys The MouseKeys extension.
571 * Holds the list of actions, associated to keyboard shortcuts.
575 // We make sure the number keys on the NumPad also work when the Shift key
590 You might want Shift+NumPad keys as well ...
591 Shift+Arrows breaks spatial navigation in Opera.
592 "ButtonToggle": [0, "Shift Insert"],
593 "SouthWest": [1, "Shift End"],
594 "South": [2, "Shift Down"],
595 "SouthEast": [3, "Shift PageDown"],
596 "West": [4, "Shift Left"],
597 "ButtonClick": [5, "Shift Clear"],
598 "East": [6, "Shift Right"],
599 "NorthWest": [7, "Shift Home"],
600 "North": [8, "Shift Up"],
601 "NorthEast": [9, "Shift PageUp"]
607 * Keyboard shortcuts associated to drawing tools and other actions.
610 * @see PaintTools The object holding all the drawing tools.
613 // Use "command": "id" to execute some command.
614 "Control Z": { "command": "historyUndo" },
615 "Control Y": { "command": "historyRedo" },
617 "Control N": { "command": "imageClear" },
618 "Control S": { "command": "imageSave" },
620 "Control A": { "command": "selectAll" },
621 "Control X": { "command": "selectionCut" },
622 "Shift Delete": { "command": "selectionCut" },
623 "Control C": { "command": "selectionCopy" },
624 "Control V": { "command": "clipboardPaste" },
626 // Use "toolActivate": "id" to activate the tool with the given ID.
627 "C": { "toolActivate": "cpicker" },
628 "E": { "toolActivate": "ellipse" },
629 "G": { "toolActivate": "polygon" },
630 "H": { "toolActivate": "hand" },
631 "I": { "toolActivate": "insertimg" },
632 "L": { "toolActivate": "line" },
633 "O": { "toolActivate": "eraser" },
634 "P": { "toolActivate": "pencil" },
635 "R": { "toolActivate": "rectangle" },
636 "S": { "toolActivate": "selection" },
637 "T": { "toolActivate": "text" },
638 "V": { "toolActivate": "bcurve" },
640 // Miscellaneous commands.
641 "X": { "command": "swapFillStroke" },
642 "F1": { "command": "about" },
645 // vim:set spell spl=en fo=wan1croql tw=80 ts=2 sw=2 sts=2 sta et ai cin fenc=utf-8 ff=unix ft=javascript: