summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/views/clear_browsing_data.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/views/clear_browsing_data.h')
-rw-r--r--chrome/browser/ui/views/clear_browsing_data.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/chrome/browser/ui/views/clear_browsing_data.h b/chrome/browser/ui/views/clear_browsing_data.h
new file mode 100644
index 0000000..8b1359e
--- /dev/null
+++ b/chrome/browser/ui/views/clear_browsing_data.h
@@ -0,0 +1,128 @@
+// Copyright (c) 2006-2008 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_UI_VIEWS_CLEAR_BROWSING_DATA_H_
+#define CHROME_BROWSER_UI_VIEWS_CLEAR_BROWSING_DATA_H_
+#pragma once
+
+#include "app/combobox_model.h"
+#include "chrome/browser/browsing_data_remover.h"
+#include "views/controls/button/button.h"
+#include "views/controls/combobox/combobox.h"
+#include "views/controls/label.h"
+#include "views/controls/link.h"
+#include "views/view.h"
+#include "views/window/dialog_delegate.h"
+
+namespace views {
+class Checkbox;
+class Label;
+class Throbber;
+class Window;
+}
+
+class Profile;
+class MessageLoop;
+
+////////////////////////////////////////////////////////////////////////////////
+//
+// The ClearBrowsingData class is responsible for drawing the UI controls of the
+// dialog that allows the user to select what to delete (history, downloads,
+// etc).
+//
+////////////////////////////////////////////////////////////////////////////////
+class ClearBrowsingDataView : public views::View,
+ public views::DialogDelegate,
+ public views::ButtonListener,
+ public ComboboxModel,
+ public views::Combobox::Listener,
+ public BrowsingDataRemover::Observer,
+ public views::LinkController {
+ public:
+ explicit ClearBrowsingDataView(Profile* profile);
+ virtual ~ClearBrowsingDataView(void);
+
+ // Initialize the controls on the dialog.
+ void Init();
+
+ // Overridden from views::View:
+ virtual gfx::Size GetPreferredSize();
+ virtual void Layout();
+
+ // Overridden from views::DialogDelegate:
+ virtual int GetDefaultDialogButton() const;
+ virtual std::wstring GetDialogButtonLabel(
+ MessageBoxFlags::DialogButton button) const;
+ virtual bool IsDialogButtonEnabled(
+ MessageBoxFlags::DialogButton button) const;
+ virtual bool CanResize() const;
+ virtual bool CanMaximize() const;
+ virtual bool IsAlwaysOnTop() const;
+ virtual bool HasAlwaysOnTopMenu() const;
+ virtual bool IsModal() const;
+ virtual std::wstring GetWindowTitle() const;
+ virtual bool Accept();
+ virtual views::View* GetContentsView();
+ views::ClientView* CreateClientView(views::Window* window);
+ virtual views::View* GetExtraView() { return throbber_view_; }
+ virtual bool GetSizeExtraViewHeightToButtons() { return true; }
+ virtual views::View* GetInitiallyFocusedView();
+
+ // Overridden from ComboboxModel:
+ virtual int GetItemCount();
+ virtual string16 GetItemAt(int index);
+
+ // Overridden from views::Combobox::Listener:
+ virtual void ItemChanged(views::Combobox* sender, int prev_index,
+ int new_index);
+
+ // Overridden from views::ButtonListener:
+ virtual void ButtonPressed(views::Button* sender, const views::Event& event);
+
+ // Overriden from views::LinkController:
+ virtual void LinkActivated(views::Link* source, int event_flags);
+
+ private:
+ // Adds a new check-box as a child to the view.
+ views::Checkbox* AddCheckbox(const std::wstring& text, bool checked);
+
+ // Sets the controls on the UI to be enabled/disabled depending on whether we
+ // have a delete operation in progress or not.
+ void UpdateControlEnabledState();
+
+ // Starts the process of deleting the browsing data depending on what the
+ // user selected.
+ void OnDelete();
+
+ // Callback from BrowsingDataRemover. Closes the dialog.
+ virtual void OnBrowsingDataRemoverDone();
+
+ // UI elements we add to the parent view.
+ views::View* throbber_view_;
+ views::Throbber* throbber_;
+ views::Label* status_label_;
+ // Other UI elements.
+ views::Label* delete_all_label_;
+ views::Checkbox* del_history_checkbox_;
+ views::Checkbox* del_downloads_checkbox_;
+ views::Checkbox* del_cache_checkbox_;
+ views::Checkbox* del_cookies_checkbox_;
+ views::Checkbox* del_passwords_checkbox_;
+ views::Checkbox* del_form_data_checkbox_;
+ views::Label* time_period_label_;
+ views::Combobox* time_period_combobox_;
+
+ // Used to signal enabled/disabled state for controls in the UI.
+ bool delete_in_progress_;
+
+ Profile* profile_;
+
+ // If non-null it means removal is in progress. BrowsingDataRemover takes care
+ // of deleting itself when done.
+ BrowsingDataRemover* remover_;
+
+ DISALLOW_COPY_AND_ASSIGN(ClearBrowsingDataView);
+};
+
+#endif // CHROME_BROWSER_UI_VIEWS_CLEAR_BROWSING_DATA_H_