Chromium Code Reviews| Index: chrome/browser/ui/cocoa/omnibox/omnibox_popup_matrix.h |
| diff --git a/chrome/browser/ui/cocoa/omnibox/omnibox_popup_matrix.h b/chrome/browser/ui/cocoa/omnibox/omnibox_popup_matrix.h |
| index 2ce61674c6b3890e773de072237ebebe06a5aae6..22e3996b54842bc7f1c8f8cea95493acc60adf72 100644 |
| --- a/chrome/browser/ui/cocoa/omnibox/omnibox_popup_matrix.h |
| +++ b/chrome/browser/ui/cocoa/omnibox/omnibox_popup_matrix.h |
| @@ -10,37 +10,62 @@ |
| #import "ui/base/cocoa/tracking_area.h" |
| #include "ui/base/window_open_disposition.h" |
| -@class OmniboxPopupMatrix; |
| +@class OmniboxPopupCell; |
| -class OmniboxPopupMatrixDelegate { |
| +@interface OmniboxPopupTableController |
| + : NSViewController<NSTableViewDelegate, NSTableViewDataSource> { |
| + @private |
| + NSMutableArray* array_; |
|
Scott Hess - ex-Googler
2015/04/25 06:04:27
Should this be a scoped_nsobject<NSMutableArray>?
dschuyler
2015/05/01 21:50:53
Done.
|
| +}; |
| + |
| +// Allocate or free cells so that count are available. |
| +// Also sets up default settings such as selecting the first cell. |
| +- (void)setCellCount:(NSUInteger)count; |
| + |
| +// Get an immutable version of the array. |
| +- (NSArray*)getCellArray; |
| + |
| +@end |
| + |
| +@class OmniboxPopupTableView; |
| + |
| +class OmniboxPopupTableDelegate { |
| public: |
| - // Called when the selection in the matrix changes. |
| - virtual void OnMatrixRowSelected(OmniboxPopupMatrix* matrix, size_t row) = 0; |
| + // Called when the selection in the table changes. |
| + virtual void OnTableRowSelected(OmniboxPopupTableView* table_view, |
| + size_t row) = 0; |
| // Called when the user clicks on a row. |
| - virtual void OnMatrixRowClicked(OmniboxPopupMatrix* matrix, size_t row) = 0; |
| + virtual void OnTableRowClicked(OmniboxPopupTableView* table_view, |
| + size_t row) = 0; |
| // Called when the user middle clicks on a row. |
| - virtual void OnMatrixRowMiddleClicked(OmniboxPopupMatrix* matrix, |
| - size_t row) = 0; |
| + virtual void OnTableRowMiddleClicked(OmniboxPopupTableView* table_view, |
| + size_t row) = 0; |
| }; |
| -// Sets up a tracking area to implement hover by highlighting the cell the mouse |
| -// is over. |
| -@interface OmniboxPopupMatrix : NSMatrix { |
| - OmniboxPopupMatrixDelegate* delegate_; // weak |
| +@interface OmniboxPopupTableView : NSTableView { |
| + OmniboxPopupTableDelegate* delegate_; // weak |
| ui::ScopedCrTrackingArea trackingArea_; |
| + OmniboxPopupTableController* controller_; |
|
Scott Hess - ex-Googler
2015/04/25 06:04:27
scoped_nsobject<>? Someone needs to own it.
dschuyler
2015/05/01 21:50:53
Would the super own it with the setDelegate or set
Scott Hess - ex-Googler
2015/05/04 19:40:20
Usually, delegates are not owned pointers. I beli
|
| } |
| -// Create a zero-size matrix. |
| -- (id)initWithDelegate:(OmniboxPopupMatrixDelegate*)delegate; |
| +// Create a zero-size table. |
| +- (id)initWithDelegate:(OmniboxPopupTableDelegate*)delegate; |
| // Sets the delegate. |
| -- (void)setDelegate:(OmniboxPopupMatrixDelegate*)delegate; |
| +- (void)setCppDelegate:(OmniboxPopupTableDelegate*)delegate; |
|
Scott Hess - ex-Googler
2015/04/25 06:04:27
I think that's a reasonable change, if clunky (but
dschuyler
2015/05/01 21:50:53
Done.
|
| // Return the currently highlighted row. Returns -1 if no row is highlighted. |
| - (NSInteger)highlightedRow; |
| +// Allocate or free cells so that count are available. |
| +// Also sets up default settings such as selecting the first cell. |
| +- (void)setCellCount:(NSUInteger)count; |
| + |
| +// Fetch a cell with limit checks on the array. |
| +- (OmniboxPopupCell*)cellAtRow:(NSUInteger)row; |
|
Scott Hess - ex-Googler
2015/04/25 06:04:27
I can see why you did this for convenience sake, b
dschuyler
2015/05/01 21:50:53
Done.
|
| + |
| @end |
| #endif // CHROME_BROWSER_UI_COCOA_OMNIBOX_OMNIBOX_POPUP_MATRIX_H_ |