diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-06 03:32:12 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-06 03:32:12 +0000 |
commit | 807e90d8ea383e85645ad33522e9f9e17a9f25f3 (patch) | |
tree | cdac30c9e09e0c4cacf9694eeabb650c6f5bcce1 /chrome/browser/views/about_ipc_dialog.h | |
parent | 260cdeef79ce2e2a641a981de51b6d35b758422a (diff) | |
download | chromium_src-807e90d8ea383e85645ad33522e9f9e17a9f25f3.zip chromium_src-807e90d8ea383e85645ad33522e9f9e17a9f25f3.tar.gz chromium_src-807e90d8ea383e85645ad33522e9f9e17a9f25f3.tar.bz2 |
Move the about:ipc tab to a dialog. This patch is kind of a hack, the Windows
specific code for the settings dialog and the table view are just copied from
the old dialog. I tried to change as little as possible. The only significant
change should be that I commented out saving the settings in the profile.
This is a re-land of my previous patch which didn't ifdef the code based on the
IPC logging preprocessor define.
Previous review URL: http://codereview.chromium.org/19741
Review URL: http://codereview.chromium.org/20033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9303 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/about_ipc_dialog.h')
-rw-r--r-- | chrome/browser/views/about_ipc_dialog.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/chrome/browser/views/about_ipc_dialog.h b/chrome/browser/views/about_ipc_dialog.h new file mode 100644 index 0000000..0aa6b06 --- /dev/null +++ b/chrome/browser/views/about_ipc_dialog.h @@ -0,0 +1,78 @@ +// 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_ABOUT_IPC_DIALOG_H_ +#define CHROME_BROWSER_VIEWS_ABOUT_IPC_DIALOG_H_ + +#include <atlbase.h> +#include <atlapp.h> +#include <atlcrack.h> +#include <atlctrls.h> +#include <atlmisc.h> + +#include "base/singleton.h" +#include "chrome/common/ipc_logging.h" +#include "chrome/views/base_button.h" +#include "chrome/views/dialog_delegate.h" +#include "chrome/views/table_view.h" + +#if defined(OS_WIN) && defined(IPC_MESSAGE_LOG_ENABLED) + +class Profile; +namespace views { +class TextButton; +class HWNDView; +} // namespace views + +class AboutIPCDialog : public views::DialogDelegate, + public views::BaseButton::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::BaseButton::ButtonListener. + virtual void ButtonPressed(views::BaseButton* button); + + CListViewCtrl message_list_; + + views::TextButton* track_toggle_; + views::TextButton* clear_button_; + views::TextButton* filter_button_; + views::HWNDView* 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_VIEWS_ABOUT_IPC_DIALOG_H_ |