// Copyright (c) 2011 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_ABOUT_IPC_DIALOG_H_ #define CHROME_BROWSER_UI_VIEWS_ABOUT_IPC_DIALOG_H_ #pragma once #if defined(OS_WIN) && defined(IPC_MESSAGE_LOG_ENABLED) #include <atlbase.h> #include <atlapp.h> #include <atlwin.h> #include <atlctrls.h> #include "base/memory/singleton.h" #include "ipc/ipc_logging.h" #include "views/controls/button/button.h" #include "views/controls/table/table_view.h" #include "views/window/dialog_delegate.h" class Profile; namespace views { class NativeViewHost; class TextButton; } // namespace views class AboutIPCDialog : public views::DialogDelegate, public views::ButtonListener, public IPC::Logging::Consumer, public views::View { public: // This dialog is a singleton. If the dialog is already opened, it won't do // anything, so you can just blindly call this function all you want. static void RunDialog(); virtual ~AboutIPCDialog(); private: friend struct DefaultSingletonTraits<AboutIPCDialog>; AboutIPCDialog(); // Sets up all UI controls for the dialog. void SetupControls(); // views::View overrides. virtual gfx::Size GetPreferredSize(); virtual views::View* GetContentsView(); virtual int GetDialogButtons() const; virtual std::wstring GetWindowTitle() const; virtual void Layout(); // IPC::Logging::Consumer implementation. virtual void Log(const IPC::LogData& data); // views::WindowDelegate (via view::DialogDelegate). virtual bool CanResize() const; // views::ButtonListener. virtual void ButtonPressed(views::Button* button, const views::Event& event); WTL::CListViewCtrl message_list_; views::TextButton* track_toggle_; views::TextButton* clear_button_; views::TextButton* filter_button_; views::NativeViewHost* table_; // Set to true when we're tracking network status. bool tracking_; DISALLOW_COPY_AND_ASSIGN(AboutIPCDialog); }; #endif // OS_WIN && IPC_MESSAGE_LOG_ENABLED #endif // CHROME_BROWSER_UI_VIEWS_ABOUT_IPC_DIALOG_H_