diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-15 22:15:08 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-15 22:15:08 +0000 |
commit | cd073bdf61a4a9d7819042d0db793d77ecedc7b1 (patch) | |
tree | de2d99d351494b31dcc1411612d2586f5bd3a872 | |
parent | 9a7268095cbce32b2caa141ffd2e3097b63069d7 (diff) | |
download | chromium_src-cd073bdf61a4a9d7819042d0db793d77ecedc7b1.zip chromium_src-cd073bdf61a4a9d7819042d0db793d77ecedc7b1.tar.gz chromium_src-cd073bdf61a4a9d7819042d0db793d77ecedc7b1.tar.bz2 |
Some scaffolding for the task manager.
BUG=13156
TEST=Connect view->task manager to first responder's commandDispatch: and give the menu item the tag 40005. Now clicking that menu item should bring up a completely unfunctional task manager window (but it has a localized title and button).
Review URL: http://codereview.chromium.org/200094
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26278 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | base/process_util_mac.mm | 11 | ||||
-rw-r--r-- | chrome/app/nibs/TaskManager.xib | 686 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_cocoa.mm | 3 | ||||
-rw-r--r-- | chrome/browser/cocoa/task_manager_mac.h | 54 | ||||
-rw-r--r-- | chrome/browser/cocoa/task_manager_mac.mm | 74 | ||||
-rw-r--r-- | chrome/browser/cocoa/task_manager_mac_unittest.mm | 32 | ||||
-rw-r--r-- | chrome/chrome.gyp | 5 |
7 files changed, 864 insertions, 1 deletions
diff --git a/base/process_util_mac.mm b/base/process_util_mac.mm index da0b200..183fe31 100644 --- a/base/process_util_mac.mm +++ b/base/process_util_mac.mm @@ -199,6 +199,17 @@ size_t ProcessMetrics::GetPeakWorkingSetSize() const { return 0; } +size_t ProcessMetrics::GetPrivateBytes() const { + return 0; +} + +void ProcessMetrics::GetCommittedKBytes(CommittedKBytes* usage) const { +} + +bool ProcessMetrics::GetWorkingSetKBytes(WorkingSetKBytes* ws_usage) const { + return false; +} + // ------------------------------------------------------------------------ } // namespace base diff --git a/chrome/app/nibs/TaskManager.xib b/chrome/app/nibs/TaskManager.xib new file mode 100644 index 0000000..375598e --- /dev/null +++ b/chrome/app/nibs/TaskManager.xib @@ -0,0 +1,686 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03"> + <data> + <int key="IBDocument.SystemTarget">1050</int> + <string key="IBDocument.SystemVersion">9L31a</string> + <string key="IBDocument.InterfaceBuilderVersion">677</string> + <string key="IBDocument.AppKitVersion">949.54</string> + <string key="IBDocument.HIToolboxVersion">353.00</string> + <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="2"/> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomObject" id="1001"> + <string key="NSClassName">TaskManagerWindowController</string> + </object> + <object class="NSCustomObject" id="1003"> + <string key="NSClassName">FirstResponder</string> + </object> + <object class="NSCustomObject" id="1004"> + <string key="NSClassName">NSApplication</string> + </object> + <object class="NSWindowTemplate" id="1005"> + <int key="NSWindowStyleMask">15</int> + <int key="NSWindowBacking">2</int> + <string key="NSWindowRect">{{196, 240}, {480, 270}}</string> + <int key="NSWTFlags">536870912</int> + <string key="NSWindowTitle">^IDS_TASK_MANAGER_TITLE</string> + <string key="NSWindowClass">NSWindow</string> + <nil key="NSViewClass"/> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <object class="NSView" key="NSWindowView" id="1006"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSScrollView" id="69694332"> + <reference key="NSNextResponder" ref="1006"/> + <int key="NSvFlags">268</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSClipView" id="591559926"> + <reference key="NSNextResponder" ref="69694332"/> + <int key="NSvFlags">2304</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTableView" id="573715149"> + <reference key="NSNextResponder" ref="591559926"/> + <int key="NSvFlags">256</int> + <string key="NSFrameSize">{423, 157}</string> + <reference key="NSSuperview" ref="591559926"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTableHeaderView" key="NSHeaderView" id="518410225"> + <reference key="NSNextResponder" ref="309854133"/> + <int key="NSvFlags">256</int> + <string key="NSFrameSize">{423, 17}</string> + <reference key="NSSuperview" ref="309854133"/> + <reference key="NSTableView" ref="573715149"/> + </object> + <object class="_NSCornerView" key="NSCornerView" id="704068535"> + <reference key="NSNextResponder" ref="69694332"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{424, 0}, {16, 17}}</string> + <reference key="NSSuperview" ref="69694332"/> + </object> + <object class="NSMutableArray" key="NSTableColumns"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTableColumn" id="694001717"> + <double key="NSWidth">1.010000e+02</double> + <double key="NSMinWidth">4.000000e+01</double> + <double key="NSMaxWidth">1.000000e+03</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628032</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents"/> + <object class="NSFont" key="NSSupport" id="26"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.100000e+01</double> + <int key="NSfFlags">3100</int> + </object> + <object class="NSColor" key="NSBackgroundColor" id="685047776"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes> + </object> + <object class="NSColor" key="NSTextColor" id="990616000"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">headerTextColor</string> + <object class="NSColor" key="NSColor" id="1024652796"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> + </object> + </object> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="517523641"> + <int key="NSCellFlags">337772096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">Text Cell</string> + <object class="NSFont" key="NSSupport" id="746983650"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.300000e+01</double> + <int key="NSfFlags">1044</int> + </object> + <reference key="NSControlView" ref="573715149"/> + <object class="NSColor" key="NSBackgroundColor" id="456292161"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlBackgroundColor</string> + <object class="NSColor" key="NSColor" id="1010533372"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor" id="1040882968"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlTextColor</string> + <reference key="NSColor" ref="1024652796"/> + </object> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <bool key="NSIsEditable">YES</bool> + <reference key="NSTableView" ref="573715149"/> + </object> + <object class="NSTableColumn" id="95821798"> + <double key="NSWidth">3.160000e+02</double> + <double key="NSMinWidth">4.000000e+01</double> + <double key="NSMaxWidth">1.000000e+03</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628032</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="26"/> + <reference key="NSBackgroundColor" ref="685047776"/> + <reference key="NSTextColor" ref="990616000"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="137828506"> + <int key="NSCellFlags">337772096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">Text Cell</string> + <reference key="NSSupport" ref="746983650"/> + <reference key="NSControlView" ref="573715149"/> + <reference key="NSBackgroundColor" ref="456292161"/> + <reference key="NSTextColor" ref="1040882968"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <bool key="NSIsEditable">YES</bool> + <reference key="NSTableView" ref="573715149"/> + </object> + </object> + <double key="NSIntercellSpacingWidth">3.000000e+00</double> + <double key="NSIntercellSpacingHeight">2.000000e+00</double> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + </object> + <object class="NSColor" key="NSGridColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">gridColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC41AA</bytes> + </object> + </object> + <double key="NSRowHeight">1.700000e+01</double> + <int key="NSTvFlags">-700448768</int> + <int key="NSColumnAutoresizingStyle">4</int> + <int key="NSDraggingSourceMaskForLocal">15</int> + <int key="NSDraggingSourceMaskForNonLocal">0</int> + <bool key="NSAllowsTypeSelect">YES</bool> + </object> + </object> + <string key="NSFrame">{{1, 17}, {423, 157}}</string> + <reference key="NSSuperview" ref="69694332"/> + <reference key="NSNextKeyView" ref="573715149"/> + <reference key="NSDocView" ref="573715149"/> + <reference key="NSBGColor" ref="456292161"/> + <int key="NScvFlags">4</int> + </object> + <object class="NSScroller" id="820842366"> + <reference key="NSNextResponder" ref="69694332"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{424, 17}, {15, 157}}</string> + <reference key="NSSuperview" ref="69694332"/> + <reference key="NSTarget" ref="69694332"/> + <string key="NSAction">_doScroller:</string> + <double key="NSCurValue">3.700000e+01</double> + <double key="NSPercent">1.947368e-01</double> + </object> + <object class="NSScroller" id="974910523"> + <reference key="NSNextResponder" ref="69694332"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{1, 174}, {423, 15}}</string> + <reference key="NSSuperview" ref="69694332"/> + <int key="NSsFlags">1</int> + <reference key="NSTarget" ref="69694332"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">5.714286e-01</double> + </object> + <object class="NSClipView" id="309854133"> + <reference key="NSNextResponder" ref="69694332"/> + <int key="NSvFlags">2304</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="518410225"/> + </object> + <string key="NSFrame">{{1, 0}, {423, 17}}</string> + <reference key="NSSuperview" ref="69694332"/> + <reference key="NSNextKeyView" ref="518410225"/> + <reference key="NSDocView" ref="518410225"/> + <reference key="NSBGColor" ref="456292161"/> + <int key="NScvFlags">4</int> + </object> + <reference ref="704068535"/> + </object> + <string key="NSFrame">{{20, 60}, {440, 190}}</string> + <reference key="NSSuperview" ref="1006"/> + <reference key="NSNextKeyView" ref="591559926"/> + <int key="NSsFlags">50</int> + <reference key="NSVScroller" ref="820842366"/> + <reference key="NSHScroller" ref="974910523"/> + <reference key="NSContentView" ref="591559926"/> + <reference key="NSHeaderClipView" ref="309854133"/> + <reference key="NSCornerView" ref="704068535"/> + <bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes> + </object> + <object class="NSTextField" id="976181670"> + <reference key="NSNextResponder" ref="1006"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{17, 22}, {77, 17}}</string> + <reference key="NSSuperview" ref="1006"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="699552686"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents">TODO: Link</string> + <reference key="NSSupport" ref="746983650"/> + <reference key="NSControlView" ref="976181670"/> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlColor</string> + <reference key="NSColor" ref="1010533372"/> + </object> + <reference key="NSTextColor" ref="1040882968"/> + </object> + </object> + <object class="NSCustomView" id="369147393"> + <reference key="NSNextResponder" ref="1006"/> + <int key="NSvFlags">289</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSButton" id="310898064"> + <reference key="NSNextResponder" ref="369147393"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{14, 12}, {96, 32}}</string> + <reference key="NSSuperview" ref="369147393"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="1069566772"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents">^IDS_TASK_MANAGER_KILL</string> + <reference key="NSSupport" ref="746983650"/> + <reference key="NSControlView" ref="310898064"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">129</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + </object> + <string key="NSFrame">{{356, 0}, {124, 60}}</string> + <reference key="NSSuperview" ref="1006"/> + <string key="NSClassName">GTMWidthBasedTweaker</string> + </object> + </object> + <string key="NSFrameSize">{480, 270}</string> + <reference key="NSSuperview"/> + </object> + <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + </object> + <object class="NSCustomObject" id="680042460"> + <string key="NSClassName">ChromeUILocalizer</string> + </object> + <object class="NSCustomObject" id="902501233"> + <string key="NSClassName">GTMUILocalizerAndLayoutTweaker</string> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">window</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="1005"/> + </object> + <int key="connectionID">16</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">localizer_</string> + <reference key="source" ref="902501233"/> + <reference key="destination" ref="680042460"/> + </object> + <int key="connectionID">20</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">uiObject_</string> + <reference key="source" ref="902501233"/> + <reference key="destination" ref="1005"/> + </object> + <int key="connectionID">21</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <object class="NSArray" key="object" id="1002"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="1001"/> + <reference key="parent" ref="1002"/> + <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="1003"/> + <reference key="parent" ref="1002"/> + <string key="objectName">First Responder</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-3</int> + <reference key="object" ref="1004"/> + <reference key="parent" ref="1002"/> + <string key="objectName">Application</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">1</int> + <reference key="object" ref="1005"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1006"/> + </object> + <reference key="parent" ref="1002"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">2</int> + <reference key="object" ref="1006"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="69694332"/> + <reference ref="976181670"/> + <reference ref="369147393"/> + </object> + <reference key="parent" ref="1005"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">3</int> + <reference key="object" ref="69694332"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="820842366"/> + <reference ref="974910523"/> + <reference ref="573715149"/> + <reference ref="518410225"/> + </object> + <reference key="parent" ref="1006"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">4</int> + <reference key="object" ref="820842366"/> + <reference key="parent" ref="69694332"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">5</int> + <reference key="object" ref="974910523"/> + <reference key="parent" ref="69694332"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">6</int> + <reference key="object" ref="573715149"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="694001717"/> + <reference ref="95821798"/> + </object> + <reference key="parent" ref="69694332"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">7</int> + <reference key="object" ref="518410225"/> + <reference key="parent" ref="69694332"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">8</int> + <reference key="object" ref="694001717"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="517523641"/> + </object> + <reference key="parent" ref="573715149"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">9</int> + <reference key="object" ref="95821798"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="137828506"/> + </object> + <reference key="parent" ref="573715149"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">10</int> + <reference key="object" ref="137828506"/> + <reference key="parent" ref="95821798"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">11</int> + <reference key="object" ref="517523641"/> + <reference key="parent" ref="694001717"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">14</int> + <reference key="object" ref="976181670"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="699552686"/> + </object> + <reference key="parent" ref="1006"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">15</int> + <reference key="object" ref="699552686"/> + <reference key="parent" ref="976181670"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">17</int> + <reference key="object" ref="680042460"/> + <reference key="parent" ref="1002"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">18</int> + <reference key="object" ref="369147393"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="310898064"/> + </object> + <reference key="parent" ref="1006"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">12</int> + <reference key="object" ref="310898064"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1069566772"/> + </object> + <reference key="parent" ref="369147393"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">13</int> + <reference key="object" ref="1069566772"/> + <reference key="parent" ref="310898064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">19</int> + <reference key="object" ref="902501233"/> + <reference key="parent" ref="1002"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.IBPluginDependency</string> + <string>-2.IBPluginDependency</string> + <string>-3.IBPluginDependency</string> + <string>1.IBEditorWindowLastContentRect</string> + <string>1.IBPluginDependency</string> + <string>1.IBWindowTemplateEditedContentRect</string> + <string>1.NSWindowTemplate.visibleAtLaunch</string> + <string>1.WindowOrigin</string> + <string>1.editorWindowContentRectSynchronizationRect</string> + <string>10.IBPluginDependency</string> + <string>11.IBPluginDependency</string> + <string>12.IBPluginDependency</string> + <string>13.IBPluginDependency</string> + <string>14.IBPluginDependency</string> + <string>15.IBPluginDependency</string> + <string>17.IBPluginDependency</string> + <string>19.IBPluginDependency</string> + <string>2.IBPluginDependency</string> + <string>3.IBPluginDependency</string> + <string>4.IBPluginDependency</string> + <string>5.IBPluginDependency</string> + <string>6.IBPluginDependency</string> + <string>7.IBPluginDependency</string> + <string>8.IBPluginDependency</string> + <string>9.IBPluginDependency</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{63, 495}, {480, 270}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{63, 495}, {480, 270}}</string> + <integer value="1"/> + <string>{196, 240}</string> + <string>{{357, 418}, {480, 270}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="sourceID"/> + <int key="maxID">21</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"> + <object class="NSMutableArray" key="referencedPartialClassDescriptions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">ChromeUILocalizer</string> + <string key="superclassName">GTMUILocalizer</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/ui_localizer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">GTMUILocalizer</string> + <string key="superclassName">NSObject</string> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>otherObjectToLocalize_</string> + <string>owner_</string> + <string>yetAnotherObjectToLocalize_</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">../third_party/GTM/AppKit/GTMUILocalizer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">GTMUILocalizerAndLayoutTweaker</string> + <string key="superclassName">NSObject</string> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>localizerOwner_</string> + <string>localizer_</string> + <string>uiObject_</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>GTMUILocalizer</string> + <string>id</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1070061944"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">../third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">GTMWidthBasedTweaker</string> + <string key="superclassName">NSView</string> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>viewToResize_</string> + <string>viewToSlideAndResize_</string> + <string>viewToSlide_</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>NSView</string> + <string>NSView</string> + </object> + </object> + <reference key="sourceIdentifier" ref="1070061944"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/status_bubble_mac.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/tab_strip_model_observer_bridge.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">TaskManagerWindowController</string> + <string key="superclassName">NSWindowController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/task_manager_mac.h</string> + </object> + </object> + </object> + </object> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.LastKnownRelativeProjectPath">../../chrome.xcodeproj</string> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + </data> +</archive> diff --git a/chrome/browser/cocoa/browser_window_cocoa.mm b/chrome/browser/cocoa/browser_window_cocoa.mm index b51ab8c..73a74a0 100644 --- a/chrome/browser/cocoa/browser_window_cocoa.mm +++ b/chrome/browser/cocoa/browser_window_cocoa.mm @@ -11,6 +11,7 @@ #import "chrome/browser/cocoa/clear_browsing_data_controller.h" #import "chrome/browser/cocoa/download_shelf_controller.h" #include "chrome/browser/cocoa/page_info_window_mac.h" +#include "chrome/browser/cocoa/task_manager_mac.h" #include "chrome/browser/browser.h" #include "chrome/browser/download/download_shelf.h" #include "chrome/common/notification_service.h" @@ -201,7 +202,7 @@ void BrowserWindowCocoa::ShowAboutChromeDialog() { } void BrowserWindowCocoa::ShowTaskManager() { - NOTIMPLEMENTED(); + TaskManagerMac::Show(); } void BrowserWindowCocoa::ShowBookmarkManager() { diff --git a/chrome/browser/cocoa/task_manager_mac.h b/chrome/browser/cocoa/task_manager_mac.h new file mode 100644 index 0000000..dbf34f9 --- /dev/null +++ b/chrome/browser/cocoa/task_manager_mac.h @@ -0,0 +1,54 @@ +// 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_COCOA_TASK_MANAGER_MAC_H_ +#define CHROME_BROWSER_COCOA_TASK_MANAGER_MAC_H_ + +#import <Cocoa/Cocoa.h> +#include "base/scoped_nsobject.h" +#include "chrome/browser/task_manager.h" + +// This class is responsible for loading the task manager window and for +// managing it. +@interface TaskManagerWindowController : NSWindowController { +} + +// Creates and shows the task manager's window. +- (id)init; +@end + +// This class listens to task changed events sent by chrome. +class TaskManagerMac : public TaskManagerModelObserver { + public: + TaskManagerMac(); + virtual ~TaskManagerMac(); + + // TaskManagerModelObserver + virtual void OnModelChanged(); + virtual void OnItemsChanged(int start, int length); + virtual void OnItemsAdded(int start, int length); + virtual void OnItemsRemoved(int start, int length); + + // Creates the task manager if it doesn't exist; otherwise, it activates the + // existing task manager window. + static void Show(); + + private: + // The task manager. + TaskManager* task_manager_; // weak + + // Our model. + TaskManagerModel* model_; // weak + + // Controller of our window. + scoped_nsobject<TaskManagerWindowController> window_controller_; + + // An open task manager window. There can only be one open at a time. This + // is reset to NULL when the window is closed. + static TaskManagerMac* instance_; + + DISALLOW_COPY_AND_ASSIGN(TaskManagerMac); +}; + +#endif // CHROME_BROWSER_COCOA_TASK_MANAGER_MAC_H_ diff --git a/chrome/browser/cocoa/task_manager_mac.mm b/chrome/browser/cocoa/task_manager_mac.mm new file mode 100644 index 0000000..b282dad --- /dev/null +++ b/chrome/browser/cocoa/task_manager_mac.mm @@ -0,0 +1,74 @@ +// 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. + +#include "chrome/browser/cocoa/task_manager_mac.h" + +#include <algorithm> +#include <vector> + +#include "base/mac_util.h" + +//////////////////////////////////////////////////////////////////////////////// +// TaskManagerWindowController implementation: + +@implementation TaskManagerWindowController + +- (id)init { + NSString* nibpath = [mac_util::MainAppBundle() + pathForResource:@"TaskManager" + ofType:@"nib"]; + if ((self = [super initWithWindowNibPath:nibpath owner:self])) { + [[self window] makeKeyAndOrderFront:self]; + } + return self; +} + +@end + +//////////////////////////////////////////////////////////////////////////////// +// TaskManagerMac implementation: + +TaskManagerMac::TaskManagerMac() + : task_manager_(TaskManager::GetInstance()), + model_(TaskManager::GetInstance()->model()) { + window_controller_.reset([[TaskManagerWindowController alloc] init]); +} + +// static +TaskManagerMac* TaskManagerMac::instance_ = NULL; + +TaskManagerMac::~TaskManagerMac() { + task_manager_->OnWindowClosed(); + model_->RemoveObserver(this); +} + +//////////////////////////////////////////////////////////////////////////////// +// TaskManagerMac, TaskManagerModelObserver implementation: + +void TaskManagerMac::OnModelChanged() { +} + +void TaskManagerMac::OnItemsChanged(int start, int length) { +} + +void TaskManagerMac::OnItemsAdded(int start, int length) { +} + +void TaskManagerMac::OnItemsRemoved(int start, int length) { +} + +//////////////////////////////////////////////////////////////////////////////// +// TaskManagerMac, public: + +// static +void TaskManagerMac::Show() { + if (instance_) { + // If there's a Task manager window open already, just activate it. + [[instance_->window_controller_ window] + makeKeyAndOrderFront:instance_->window_controller_]; + } else { + instance_ = new TaskManagerMac; + instance_->model_->StartUpdating(); + } +} diff --git a/chrome/browser/cocoa/task_manager_mac_unittest.mm b/chrome/browser/cocoa/task_manager_mac_unittest.mm new file mode 100644 index 0000000..2bb73ce --- /dev/null +++ b/chrome/browser/cocoa/task_manager_mac_unittest.mm @@ -0,0 +1,32 @@ +// 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. + +#import <Cocoa/Cocoa.h> + +#include "base/scoped_nsobject.h" +#import "chrome/browser/cocoa/task_manager_mac.h" +#import "chrome/browser/cocoa/cocoa_test_helper.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "testing/platform_test.h" + +namespace { + +class TaskManagerWindowControllerTest : public PlatformTest { + public: + TaskManagerWindowControllerTest() { + controller_.reset([[TaskManagerWindowController alloc] init]); + } + + scoped_nsobject<TaskManagerWindowController> controller_; + CocoaTestHelper cocoa_helper_; // Inits Cocoa, creates window, etc... +}; + +// Test creation, to ensure nothing leaks or crashes +TEST_F(TaskManagerWindowControllerTest, Init) { +} + +// TODO(thakis): Add tests for more methods as they become implemented +// (TaskManager::Show() etc). + +} // namespace diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp index 7dc3b72..e3ce12c 100644 --- a/chrome/chrome.gyp +++ b/chrome/chrome.gyp @@ -1035,6 +1035,8 @@ 'browser/cocoa/tab_view.mm', 'browser/cocoa/tab_window_controller.h', 'browser/cocoa/tab_window_controller.mm', + 'browser/cocoa/task_manager_mac.h', + 'browser/cocoa/task_manager_mac.mm', 'browser/cocoa/throbber_view.h', 'browser/cocoa/throbber_view.mm', 'browser/cocoa/toolbar_button_cell.h', @@ -2363,6 +2365,7 @@ 'app/nibs/MainMenu.xib', 'app/nibs/SaveAccessoryView.xib', 'app/nibs/TabView.xib', + 'app/nibs/TaskManager.xib', 'app/nibs/Toolbar.xib', ], }, @@ -3053,6 +3056,7 @@ 'app/nibs/SaveAccessoryView.xib', 'app/nibs/TabContents.xib', 'app/nibs/TabView.xib', + 'app/nibs/TaskManager.xib', 'app/nibs/Toolbar.xib', 'app/theme/alert_small.png', 'app/theme/back_Template.pdf', @@ -4077,6 +4081,7 @@ 'browser/cocoa/tab_strip_controller_unittest.mm', 'browser/cocoa/tab_strip_view_unittest.mm', 'browser/cocoa/tab_view_unittest.mm', + 'browser/cocoa/task_manager_mac_unittest.mm', 'browser/cocoa/test_event_utils.h', 'browser/cocoa/test_event_utils.mm', 'browser/cocoa/throbber_view_unittest.mm', |