/*
Copyright 2011 WebDriver committers
Copyright 2011 Google Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Author: timothe@google.com
*/

#ifndef IBUSUTILS_H_
#define IBUSUTILS_H_

#include "imeutils.h"

/*
 * Implementation of the utility class for ibus as defined in the ImeUtils
 * class.
 */
class IBusUtils : public ImeUtils {
 public:
  IBusUtils();
  virtual ~IBusUtils() {}
 private:
  DISALLOW_COPY_AND_ASSIGN(IBusUtils);
};

#endif  // IBUSUTILS_H_
