Chromium Code Reviews| Index: chrome/browser/printing/print_preview_tab_controller.h |
| =================================================================== |
| --- chrome/browser/printing/print_preview_tab_controller.h (revision 71104) |
| +++ chrome/browser/printing/print_preview_tab_controller.h (working copy) |
| @@ -1,4 +1,4 @@ |
| -// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| +// 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. |
| @@ -7,7 +7,7 @@ |
| // printing operation while the first print preview tab is still open, that PP |
| // tab is focused/activated. There may be more than one PP tab open. There is a |
| // 1:1 relationship between PP tabs and initiating tabs. This class manages PP |
| -// tabs and initiator tabs. |
| +// tabs, and the associated initiator tabs and print preview data. |
|
James Hawkins
2011/01/13 06:43:27
This really feels shoe-horned in here. The name o
|
| #ifndef CHROME_BROWSER_PRINTING_PRINT_PREVIEW_TAB_CONTROLLER_H_ |
| #define CHROME_BROWSER_PRINTING_PRINT_PREVIEW_TAB_CONTROLLER_H_ |
| @@ -22,36 +22,58 @@ |
| class Browser; |
| class TabContents; |
| +namespace base { |
| +class SharedMemory; |
| +} |
| + |
| namespace printing { |
| class PrintPreviewTabController |
| : public base::RefCounted<PrintPreviewTabController>, |
| public NotificationObserver { |
| public: |
| + typedef std::pair<base::SharedMemory*, uint32> PrintPreviewData; |
| + |
| PrintPreviewTabController(); |
| virtual ~PrintPreviewTabController(); |
| static PrintPreviewTabController* GetInstance(); |
| + // Returns true if |tab| is a print preview tab. |
| + static bool IsPrintPreviewTab(TabContents* tab); |
| + |
| // Get/Create the print preview tab for |initiator_tab|. |
| // |browser_window_id| is the browser window containing |initiator_tab|. |
| TabContents* GetOrCreatePreviewTab( |
| TabContents* initiator_tab, int browser_window_id); |
| + // Get the print preview |data| for |preview_tab|. The data is valid as long |
| + // as |preview_tab| is valid and SetPrintPreviewData() does not get called. |
| + bool GetPrintPreviewData(TabContents* preview_tab, PrintPreviewData* data); |
| + |
| + // Save the print preview |data| for |preview_tab|. PrintPreviewTabController |
| + // owns the data and is responsible for freeing it when either: |
| + // a) there is new data. |
| + // b) when |preview_tab| goes away. |
| + bool SetPrintPreviewData(TabContents* preview_tab, |
| + const PrintPreviewData& data); |
| + |
| // Notification observer implementation. |
| virtual void Observe(NotificationType type, |
| const NotificationSource& source, |
| const NotificationDetails& details); |
| - // Returns true if |tab| is a print preview tab. |
| - static bool IsPrintPreviewTab(TabContents* tab); |
| - |
| private: |
| friend class base::RefCounted<PrintPreviewTabController>; |
| + // 1:1 relationship between print preview tab and its print preview data. |
| + // Key: Print preview tab. |
| + // Value: Print preview data. |
| + typedef std::map<TabContents*, PrintPreviewData> PrintPreviewDataMap; |
| + |
| // 1:1 relationship between initiator tab and print preview tab. |
| - // Key: Preview tab. |
| + // Key: Print preview tab. |
| // Value: Initiator tab. |
| typedef std::map<TabContents*, TabContents*> PrintPreviewTabMap; |
| @@ -72,6 +94,7 @@ |
| void AddObservers(TabContents* tab); |
| void RemoveObservers(TabContents* tab); |
| + PrintPreviewDataMap preview_data_map_; |
| PrintPreviewTabMap preview_tab_map_; |
| // A registrar for listening notifications. |