1865f88afc0d59d886fb2ad50429e584ecf17fa81Brian// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2865f88afc0d59d886fb2ad50429e584ecf17fa81Brian// Use of this source code is governed by a BSD-style license that can be
3827e72de7537e62cac9652f8b7344ff356de9bb1Brian// found in the LICENSE file.
4865f88afc0d59d886fb2ad50429e584ecf17fa81Brian
5827e72de7537e62cac9652f8b7344ff356de9bb1Brian// Custom binding for the systemIndicator API.
6865f88afc0d59d886fb2ad50429e584ecf17fa81Brian// TODO(dewittj) Refactor custom binding to reduce redundancy between the
7865f88afc0d59d886fb2ad50429e584ecf17fa81Brian// extension action APIs.
8865f88afc0d59d886fb2ad50429e584ecf17fa81Brian
9865f88afc0d59d886fb2ad50429e584ecf17fa81Brianvar binding = require('binding').Binding.create('systemIndicator');
10865f88afc0d59d886fb2ad50429e584ecf17fa81Brian
11865f88afc0d59d886fb2ad50429e584ecf17fa81Brianvar setIcon = require('setIcon').setIcon;
12865f88afc0d59d886fb2ad50429e584ecf17fa81Brianvar sendRequest = require('sendRequest').sendRequest;
13865f88afc0d59d886fb2ad50429e584ecf17fa81Brian
14865f88afc0d59d886fb2ad50429e584ecf17fa81Brianbinding.registerCustomHook(function(bindingsAPI) {
15865f88afc0d59d886fb2ad50429e584ecf17fa81Brian  var apiFunctions = bindingsAPI.apiFunctions;
16865f88afc0d59d886fb2ad50429e584ecf17fa81Brian
17865f88afc0d59d886fb2ad50429e584ecf17fa81Brian  apiFunctions.setHandleRequest('setIcon', function(details, callback) {
18865f88afc0d59d886fb2ad50429e584ecf17fa81Brian    setIcon(details, function(args) {
19865f88afc0d59d886fb2ad50429e584ecf17fa81Brian      sendRequest(this.name, [args, callback], this.definition.parameters);
20865f88afc0d59d886fb2ad50429e584ecf17fa81Brian    }.bind(this));
21865f88afc0d59d886fb2ad50429e584ecf17fa81Brian  });
22865f88afc0d59d886fb2ad50429e584ecf17fa81Brian});
23865f88afc0d59d886fb2ad50429e584ecf17fa81Brian
24865f88afc0d59d886fb2ad50429e584ecf17fa81Brianexports.binding = binding.generate();
25c223c6b663cd5db39ba19c2be74b88cc3b8f53f3Brian