| Index: chrome/browser/chromeos/ui/echo_dialog_view.h
|
| diff --git a/chrome/browser/chromeos/ui/echo_dialog_view.h b/chrome/browser/chromeos/ui/echo_dialog_view.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9dc7aa3206a9467ff628d78b6b9c9464d026e75b
|
| --- /dev/null
|
| +++ b/chrome/browser/chromeos/ui/echo_dialog_view.h
|
| @@ -0,0 +1,83 @@
|
| +// Copyright 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 CHROME_BROWSER_CHROMEOS_UI_ECHO_DIALOG_VIEW_H_
|
| +#define CHROME_BROWSER_CHROMEOS_UI_ECHO_DIALOG_VIEW_H_
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "base/compiler_specific.h"
|
| +#include "ui/views/controls/styled_label_listener.h"
|
| +#include "ui/views/window/dialog_delegate.h"
|
| +
|
| +namespace views {
|
| +class StyledLabel;
|
| +}
|
| +
|
| +namespace chromeos {
|
| +
|
| +class EchoDialogListener;
|
| +
|
| +// Dialog shown by echoPrivate extension API when getUserConsent function is
|
| +// called. The API is used by echo extension when an offer from a service is
|
| +// being redeemed. The dialog is shown to get an user consent. If the echo
|
| +// extension is not allowed by policy to redeem offers, the dialog informs user
|
| +// about this.
|
| +class EchoDialogView : public views::DialogDelegateView,
|
| + public views::StyledLabelListener {
|
| + public:
|
| + explicit EchoDialogView(EchoDialogListener* listener);
|
| + virtual ~EchoDialogView();
|
| +
|
| + // Initializes dialog layout that will be showed when echo extension is
|
| + // allowed to redeem offers. |service_name| is the name of the service that
|
| + // requests user consent to redeem an offer. |origin| is the service's origin
|
| + // url. Service name should be underlined in the dialog, and hovering over its
|
| + // label should display tooltip containing |origin|.
|
| + // The dialog will have both OK and Cancel buttons.
|
| + void InitForEnabledEcho(const string16& service_name, const string16& origin);
|
| +
|
| + // Initializes dialog layout that will be shown when echo extension is not
|
| + // allowed to redeem offers. The dialog will be showing a message that the
|
| + // offer redeeming is disabled by policy.
|
| + // The dialog will have only Cancel button.
|
| + void InitForDisabledEcho();
|
| +
|
| + // Shows the dialog.
|
| + void Show(gfx::NativeWindow parent);
|
| +
|
| + private:
|
| + // views::DialogDelegate overrides.
|
| + virtual int GetDialogButtons() const OVERRIDE;
|
| + virtual int GetDefaultDialogButton() const OVERRIDE;
|
| + virtual string16 GetDialogButtonLabel(ui::DialogButton button) const OVERRIDE;
|
| + virtual bool Cancel() OVERRIDE;
|
| + virtual bool Accept() OVERRIDE;
|
| +
|
| + // views::WidgetDelegate overrides.
|
| + virtual ui::ModalType GetModalType() const OVERRIDE;
|
| + virtual bool ShouldShowWindowTitle() const OVERRIDE;
|
| + virtual bool ShouldShowWindowIcon() const OVERRIDE;
|
| +
|
| + // views::LinkListener override.
|
| + virtual void StyledLabelLinkClicked(const ui::Range& range,
|
| + int event_flags) OVERRIDE;
|
| +
|
| + // views::View override.
|
| + virtual gfx::Size GetPreferredSize() OVERRIDE;
|
| +
|
| + // Sets the border and bounds for the styled label containing the dialog
|
| + // text.
|
| + void SetLabelBorderAndBounds();
|
| +
|
| + views::StyledLabel* label_;
|
| + EchoDialogListener* listener_;
|
| + int ok_button_label_id_;
|
| + int cancel_button_label_id_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(EchoDialogView);
|
| +};
|
| +
|
| +} // namespace chromeos
|
| +
|
| +#endif // CHROME_BROWSER_CHROMEOS_UI_ECHO_DIALOG_VIEW_H_
|
|
|