| Index: ui/linux_ui/status_icon_linux.h
|
| diff --git a/ui/linux_ui/status_icon_linux.h b/ui/linux_ui/status_icon_linux.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0ad6df5eb92b6dcaf2a6a2bad1d7022493d6376a
|
| --- /dev/null
|
| +++ b/ui/linux_ui/status_icon_linux.h
|
| @@ -0,0 +1,48 @@
|
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef UI_LINUX_UI_STATUS_ICON_LINUX_H_
|
| +#define UI_LINUX_UI_STATUS_ICON_LINUX_H_
|
| +
|
| +#include "base/strings/string16.h"
|
| +
|
| +namespace gfx {
|
| +class ImageSkia;
|
| +}
|
| +
|
| +namespace ui {
|
| +class MenuModel;
|
| +} // namespace ui
|
| +
|
| +// Since liblinux_ui cannot have dependencies on any chrome browser components
|
| +// we cannot inherit from StatusIcon. So we implement the necessary methods
|
| +// and let a wrapper class implement the StatusIcon interface and defer the
|
| +// callbacks to a delegate.
|
| +class StatusIconLinux {
|
| + public:
|
| + class Delegate {
|
| + public:
|
| + virtual void OnClick() = 0;
|
| + };
|
| +
|
| + virtual ~StatusIconLinux() {}
|
| +
|
| + virtual void SetImage(const gfx::ImageSkia& image) = 0;
|
| + virtual void SetPressedImage(const gfx::ImageSkia& image) = 0;
|
| + virtual void SetToolTip(const string16& tool_tip) = 0;
|
| + virtual void SetClickActionLabel(const string16& label) = 0;
|
| +
|
| + // Invoked after a call to SetContextMenu() to let the platform-specific
|
| + // subclass update the native context menu based on the new model. If NULL is
|
| + // passed, subclass should destroy the native context menu.
|
| + virtual void UpdatePlatformContextMenu(ui::MenuModel* model) = 0;
|
| +
|
| + Delegate* delegate() { return delegate_; }
|
| + void set_delegate(Delegate* delegate) { delegate_ = delegate; }
|
| +
|
| + private:
|
| + Delegate* delegate_;
|
| +};
|
| +
|
| +#endif // UI_LINUX_UI_STATUS_ICON_LINUX_H_
|
|
|