[email protected] | 3b63f8f4 | 2011-03-28 01:54:15 | [diff] [blame^] | 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
[email protected] | 213dac2 | 2010-11-09 07:35:32 | [diff] [blame] | 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_VIEWS_ABOUT_IPC_DIALOG_H_ |
| 6 | #define CHROME_BROWSER_UI_VIEWS_ABOUT_IPC_DIALOG_H_ |
| 7 | #pragma once |
| 8 | |
| 9 | #if defined(OS_WIN) && defined(IPC_MESSAGE_LOG_ENABLED) |
| 10 | |
| 11 | #include <atlbase.h> |
| 12 | #include <atlapp.h> |
| 13 | #include <atlwin.h> |
| 14 | #include <atlctrls.h> |
| 15 | |
[email protected] | 3b63f8f4 | 2011-03-28 01:54:15 | [diff] [blame^] | 16 | #include "base/memory/singleton.h" |
[email protected] | 213dac2 | 2010-11-09 07:35:32 | [diff] [blame] | 17 | #include "ipc/ipc_logging.h" |
| 18 | #include "views/controls/button/button.h" |
| 19 | #include "views/controls/table/table_view.h" |
| 20 | #include "views/window/dialog_delegate.h" |
| 21 | |
| 22 | |
| 23 | class Profile; |
| 24 | namespace views { |
| 25 | class NativeViewHost; |
| 26 | class TextButton; |
| 27 | } // namespace views |
| 28 | |
| 29 | class AboutIPCDialog : public views::DialogDelegate, |
| 30 | public views::ButtonListener, |
| 31 | public IPC::Logging::Consumer, |
| 32 | public views::View { |
| 33 | public: |
| 34 | // This dialog is a singleton. If the dialog is already opened, it won't do |
| 35 | // anything, so you can just blindly call this function all you want. |
| 36 | static void RunDialog(); |
| 37 | |
| 38 | virtual ~AboutIPCDialog(); |
| 39 | |
| 40 | private: |
| 41 | friend struct DefaultSingletonTraits<AboutIPCDialog>; |
| 42 | |
| 43 | AboutIPCDialog(); |
| 44 | |
| 45 | // Sets up all UI controls for the dialog. |
| 46 | void SetupControls(); |
| 47 | |
| 48 | // views::View overrides. |
| 49 | virtual gfx::Size GetPreferredSize(); |
| 50 | virtual views::View* GetContentsView(); |
| 51 | virtual int GetDialogButtons() const; |
| 52 | virtual std::wstring GetWindowTitle() const; |
| 53 | virtual void Layout(); |
| 54 | |
| 55 | // IPC::Logging::Consumer implementation. |
| 56 | virtual void Log(const IPC::LogData& data); |
| 57 | |
| 58 | // views::WindowDelegate (via view::DialogDelegate). |
| 59 | virtual bool CanResize() const; |
| 60 | |
| 61 | // views::ButtonListener. |
| 62 | virtual void ButtonPressed(views::Button* button, const views::Event& event); |
| 63 | |
| 64 | WTL::CListViewCtrl message_list_; |
| 65 | |
| 66 | views::TextButton* track_toggle_; |
| 67 | views::TextButton* clear_button_; |
| 68 | views::TextButton* filter_button_; |
| 69 | views::NativeViewHost* table_; |
| 70 | |
| 71 | // Set to true when we're tracking network status. |
| 72 | bool tracking_; |
| 73 | |
| 74 | DISALLOW_COPY_AND_ASSIGN(AboutIPCDialog); |
| 75 | }; |
| 76 | |
| 77 | #endif // OS_WIN && IPC_MESSAGE_LOG_ENABLED |
| 78 | |
| 79 | #endif // CHROME_BROWSER_UI_VIEWS_ABOUT_IPC_DIALOG_H_ |