Home | History | Annotate | Download | only in views
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      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 
     16 #include "base/memory/singleton.h"
     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_
     80