1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_UI_GTK_SAD_TAB_GTK_H_
6#define CHROME_BROWSER_UI_GTK_SAD_TAB_GTK_H_
7#pragma once
8
9typedef struct _GtkWidget GtkWidget;
10
11#include "chrome/browser/ui/gtk/owned_widget_gtk.h"
12#include "ui/base/gtk/gtk_signal.h"
13
14class TabContents;
15
16class SadTabGtk {
17 public:
18  enum Kind {
19    CRASHED,  // The tab crashed.  Display the "Aw, Snap!" page.
20    KILLED    // The tab was killed.  Display the killed tab page.
21  };
22
23  explicit SadTabGtk(TabContents* tab_contents, Kind kind);
24  virtual ~SadTabGtk();
25
26  GtkWidget* widget() const { return event_box_.get(); }
27
28 private:
29  CHROMEGTK_CALLBACK_0(SadTabGtk, void, OnLinkButtonClick);
30
31  void OnLinkButtonClick();
32
33  TabContents* tab_contents_;
34  OwnedWidgetGtk event_box_;
35  Kind kind_;
36
37  DISALLOW_COPY_AND_ASSIGN(SadTabGtk);
38};
39
40#endif  // CHROME_BROWSER_UI_GTK_SAD_TAB_GTK_H_
41