summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/about_ipc_dialog.h
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-06 03:32:12 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-06 03:32:12 +0000
commit807e90d8ea383e85645ad33522e9f9e17a9f25f3 (patch)
treecdac30c9e09e0c4cacf9694eeabb650c6f5bcce1 /chrome/browser/views/about_ipc_dialog.h
parent260cdeef79ce2e2a641a981de51b6d35b758422a (diff)
downloadchromium_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.h78
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_