summaryrefslogtreecommitdiffstats
path: root/comm/mail/components/extensions/schemas/spacesToolbar.json
blob: 50beab13679fae25f6e070c700da4c712901dc48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
[
  {
    "namespace": "spacesToolbar",
    "max_manifest_version": 2,
    "types": [
      {
        "id": "ButtonProperties",
        "type": "object",
        "properties": {
          "badgeBackgroundColor": {
            "choices": [
              {
                "type": "string"
              },
              {
                "$ref": "ColorArray"
              }
            ],
            "optional": true,
            "description": "Sets the background color of the badge. Can be specified as an array of four integers in the range [0,255] that make up the RGBA color of the badge. For example, opaque red is <value>[255, 0, 0, 255]</value>. Can also be a string with an HTML color name (<value>red</value>) or a HEX color value (<value>#FF0000</value> or <value>#F00</value>). Reset when set to an empty string."
          },
          "badgeText": {
            "type": "string",
            "optional": true,
            "description": "Sets the badge text for the spaces toolbar button. The badge is displayed on top of the icon. Any number of characters can be set, but only about four can fit in the space. Removed when set to an empty string."
          },
          "defaultIcons": {
            "choices": [
              {
                "type": "string"
              },
              {
                "$ref": "manifest.IconPath"
              }
            ],
            "optional": true,
            "description": "The paths to one or more icons for the button in the spaces toolbar. Defaults to the extension icon, if set to an empty string."
          },
          "themeIcons": {
            "type": "array",
            "optional": true,
            "items": {
              "$ref": "manifest.ThemeIcons"
            },
            "description": "Specifies dark and light icons for the spaces toolbar button to be used with themes: The ``light`` icons will be used on dark backgrounds and vice versa. At least the set for <em>16px</em> icons should be specified. The set for <em>32px</em> icons will be used on screens with a very high pixel density, if specified."
          },
          "title": {
            "type": "string",
            "optional": true,
            "description": "The title for the spaces toolbar button, used in the tooltip of the button and as the displayed name in the overflow menu. Defaults to the name of the extension, if set to an empty string."
          },
          "url": {
            "type": "string",
            "optional": true,
            "description": "The page url, loaded into a tab when the button is clicked. Supported are <value>https://</value> and <value>http://</value> links, as well as links to WebExtension pages."
          }
        }
      },
      {
        "id": "ColorArray",
        "description": "An array of four integers in the range [0,255] that make up the RGBA color. For example, opaque red is <value>[255, 0, 0, 255]</value>.",
        "type": "array",
        "items": {
          "type": "integer",
          "minimum": 0,
          "maximum": 255
        },
        "minItems": 4,
        "maxItems": 4
      }
    ],
    "functions": [
      {
        "name": "addButton",
        "type": "function",
        "description": "Adds a new button to the spaces toolbar. Throws an exception, if the used ``id`` is not unique within the extension.",
        "async": "callback",
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "pattern": "^[a-zA-Z0-9_]+$",
            "description": "The unique id to assign to this button. May only contain alphanumeric characters and underscores."
          },
          {
            "name": "properties",
            "description": "Properties of the new button. The ``url`` is mandatory.",
            "$ref": "spacesToolbar.ButtonProperties"
          },
          {
            "type": "function",
            "name": "callback",
            "optional": true,
            "parameters": [
              {
                "name": "spaceId",
                "type": "integer",
                "description": "The id of the space belonging to the newly created button, as used by the tabs API.",
                "minimum": 1,
                "optional": true
              }
            ]
          }
        ]
      },
      {
        "name": "removeButton",
        "type": "function",
        "description": "Removes the specified button from the spaces toolbar. Throws an exception if the requested spaces toolbar button does not exist or was not created by this extension. If the tab of this button is currently open, it will be closed.",
        "async": true,
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "pattern": "^[a-zA-Z0-9_]+$",
            "description": "The id of the spaces toolbar button, which is to be removed. May only contain alphanumeric characters and underscores."
          }
        ]
      },
      {
        "name": "updateButton",
        "type": "function",
        "description": "Updates properties of the specified spaces toolbar button. Throws an exception if the requested spaces toolbar button does not exist or was not created by this extension.",
        "async": true,
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "description": "The id of the spaces toolbar button, which is to be updated. May only contain alphanumeric characters and underscores.",
            "pattern": "^[a-zA-Z0-9_]+$"
          },
          {
            "name": "properties",
            "description": "Only specified properties will be updated.",
            "$ref": "spacesToolbar.ButtonProperties"
          }
        ]
      },
      {
        "name": "clickButton",
        "type": "function",
        "description": "Trigger a click on the specified spaces toolbar button. Throws an exception if the requested spaces toolbar button does not exist or was not created by this extension.",
        "async": "callback",
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "description": "The id of the spaces toolbar button. May only contain alphanumeric characters and underscores.",
            "pattern": "^[a-zA-Z0-9_]+$"
          },
          {
            "name": "windowId",
            "type": "integer",
            "minimum": -2,
            "optional": true,
            "description": "The id of the normal window, where the spaces toolbar button should be clicked. Defaults to the most recent normal window."
          },
          {
            "type": "function",
            "name": "callback",
            "optional": true,
            "parameters": [
              {
                "name": "tab",
                "$ref": "tabs.Tab",
                "optional": true,
                "description": "Details about the opened or activated tab."
              }
            ]
          }
        ]
      }
    ]
  }
]