// Copyright (c) 2009 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_VIEWS_OPTIONS_EXCEPTIONS_PAGE_VIEW_H_ #define CHROME_BROWSER_VIEWS_OPTIONS_EXCEPTIONS_PAGE_VIEW_H_ #pragma once #include #include "chrome/browser/views/options/options_page_view.h" #include "chrome/browser/views/options/passwords_page_view.h" #include "views/controls/table/table_view_observer.h" class Profile; /////////////////////////////////////////////////////////////////////////////// // ExceptionsTableModel class ExceptionsTableModel : public PasswordsTableModel { public: explicit ExceptionsTableModel(Profile* profile); virtual ~ExceptionsTableModel(); // TableModel methods. virtual std::wstring GetText(int row, int column); virtual int CompareValues(int row1, int row2, int col_id); // PasswordStoreConsumer implementation. virtual void OnPasswordStoreRequestDone( int handle, const std::vector& result); // Request all logins data. void GetAllExceptionsForProfile(); }; /////////////////////////////////////////////////////////////////////////////// // ExceptionsPageView class ExceptionsPageView : public OptionsPageView, public views::TableViewObserver, public views::ButtonListener, public PasswordsTableModelObserver { public: explicit ExceptionsPageView(Profile* profile); virtual ~ExceptionsPageView(); // views::TableViewObserverImplementation. virtual void OnSelectionChanged(); // views::ButtonListener implementation. virtual void ButtonPressed(views::Button* sender, const views::Event& event); // PasswordsTableModelObserver implementation. virtual void OnRowCountChanged(size_t rows); protected: virtual void InitControlLayout(); private: // Helper to configure our buttons and labels. void SetupButtons(); // Helper to configure our table view. void SetupTable(); ExceptionsTableModel table_model_; views::TableView* table_view_; // The buttons and labels. views::NativeButton remove_button_; views::NativeButton remove_all_button_; MultiLabelButtons show_button_; DISALLOW_COPY_AND_ASSIGN(ExceptionsPageView); }; #endif // CHROME_BROWSER_VIEWS_OPTIONS_EXCEPTIONS_PAGE_VIEW_H_