| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "ios/chrome/browser/ui/bookmarks/bookmark_menu_view.h" | 5 #import "ios/chrome/browser/ui/bookmarks/bookmark_menu_view.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/mac/foundation_util.h" | 9 #include "base/mac/foundation_util.h" |
| 10 #include "base/mac/objc_property_releaser.h" | 10 #include "base/mac/objc_release_properties.h" |
| 11 #include "base/mac/scoped_nsobject.h" | 11 #include "base/mac/scoped_nsobject.h" |
| 12 #include "components/bookmarks/browser/bookmark_model.h" | 12 #include "components/bookmarks/browser/bookmark_model.h" |
| 13 #include "components/bookmarks/browser/bookmark_model_observer.h" | 13 #include "components/bookmarks/browser/bookmark_model_observer.h" |
| 14 #include "ios/chrome/browser/bookmarks/bookmark_model_factory.h" | 14 #include "ios/chrome/browser/bookmarks/bookmark_model_factory.h" |
| 15 #include "ios/chrome/browser/bookmarks/bookmarks_utils.h" | 15 #include "ios/chrome/browser/bookmarks/bookmarks_utils.h" |
| 16 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" | 16 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" |
| 17 #include "ios/chrome/browser/experimental_flags.h" | 17 #include "ios/chrome/browser/experimental_flags.h" |
| 18 #import "ios/chrome/browser/ui/bookmarks/bookmark_menu_cell.h" | 18 #import "ios/chrome/browser/ui/bookmarks/bookmark_menu_cell.h" |
| 19 #import "ios/chrome/browser/ui/bookmarks/bookmark_menu_item.h" | 19 #import "ios/chrome/browser/ui/bookmarks/bookmark_menu_item.h" |
| 20 #include "ios/chrome/browser/ui/bookmarks/bookmark_model_bridge_observer.h" | 20 #include "ios/chrome/browser/ui/bookmarks/bookmark_model_bridge_observer.h" |
| 21 #import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" | 21 #import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" |
| 22 #include "ios/chrome/browser/ui/ui_util.h" | 22 #include "ios/chrome/browser/ui/ui_util.h" |
| 23 #import "ios/chrome/browser/ui/uikit_ui_util.h" | 23 #import "ios/chrome/browser/ui/uikit_ui_util.h" |
| 24 #include "ios/chrome/grit/ios_strings.h" | 24 #include "ios/chrome/grit/ios_strings.h" |
| 25 #import "ios/third_party/material_components_ios/src/components/Ink/src/Material
Ink.h" | 25 #import "ios/third_party/material_components_ios/src/components/Ink/src/Material
Ink.h" |
| 26 #include "ui/base/l10n/l10n_util.h" | 26 #include "ui/base/l10n/l10n_util.h" |
| 27 #include "ui/base/models/tree_node_iterator.h" | 27 #include "ui/base/models/tree_node_iterator.h" |
| 28 | 28 |
| 29 using bookmarks::BookmarkNode; | 29 using bookmarks::BookmarkNode; |
| 30 | 30 |
| 31 @interface BookmarkMenuView ()<BookmarkModelBridgeObserver, | 31 @interface BookmarkMenuView ()<BookmarkModelBridgeObserver, |
| 32 MDCInkTouchControllerDelegate, | 32 MDCInkTouchControllerDelegate, |
| 33 UITableViewDataSource, | 33 UITableViewDataSource, |
| 34 UITableViewDelegate> { | 34 UITableViewDelegate> { |
| 35 // A bridge to receive bookmark model observer callbacks. | 35 // A bridge to receive bookmark model observer callbacks. |
| 36 std::unique_ptr<bookmarks::BookmarkModelBridge> _modelBridge; | 36 std::unique_ptr<bookmarks::BookmarkModelBridge> _modelBridge; |
| 37 | |
| 38 base::mac::ObjCPropertyReleaser _propertyReleaser_BookmarkMenuView; | |
| 39 } | 37 } |
| 40 @property(nonatomic, assign) bookmarks::BookmarkModel* bookmarkModel; | 38 @property(nonatomic, assign) bookmarks::BookmarkModel* bookmarkModel; |
| 41 // This array directly represents the rows that show up in the table. | 39 // This array directly represents the rows that show up in the table. |
| 42 @property(nonatomic, retain) NSMutableArray* menuItems; | 40 @property(nonatomic, retain) NSMutableArray* menuItems; |
| 43 // The primary menu item is blue instead of gray. | 41 // The primary menu item is blue instead of gray. |
| 44 @property(nonatomic, retain) BookmarkMenuItem* primaryMenuItem; | 42 @property(nonatomic, retain) BookmarkMenuItem* primaryMenuItem; |
| 45 @property(nonatomic, assign) ios::ChromeBrowserState* browserState; | 43 @property(nonatomic, assign) ios::ChromeBrowserState* browserState; |
| 46 @property(nonatomic, retain) UITableView* tableView; | 44 @property(nonatomic, retain) UITableView* tableView; |
| 47 @property(nonatomic, retain) MDCInkTouchController* inkTouchController; | 45 @property(nonatomic, retain) MDCInkTouchController* inkTouchController; |
| 48 | 46 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 65 | 63 |
| 66 - (id)initWithFrame:(CGRect)frame { | 64 - (id)initWithFrame:(CGRect)frame { |
| 67 NOTREACHED(); | 65 NOTREACHED(); |
| 68 return nil; | 66 return nil; |
| 69 } | 67 } |
| 70 | 68 |
| 71 - (instancetype)initWithBrowserState:(ios::ChromeBrowserState*)browserState | 69 - (instancetype)initWithBrowserState:(ios::ChromeBrowserState*)browserState |
| 72 frame:(CGRect)frame { | 70 frame:(CGRect)frame { |
| 73 self = [super initWithFrame:frame]; | 71 self = [super initWithFrame:frame]; |
| 74 if (self) { | 72 if (self) { |
| 75 _propertyReleaser_BookmarkMenuView.Init(self, [BookmarkMenuView class]); | |
| 76 | |
| 77 _browserState = browserState; | 73 _browserState = browserState; |
| 78 | 74 |
| 79 // Set up connection to the BookmarkModel. | 75 // Set up connection to the BookmarkModel. |
| 80 _bookmarkModel = | 76 _bookmarkModel = |
| 81 ios::BookmarkModelFactory::GetForBrowserState(_browserState); | 77 ios::BookmarkModelFactory::GetForBrowserState(_browserState); |
| 82 // Set up observers. | 78 // Set up observers. |
| 83 _modelBridge.reset( | 79 _modelBridge.reset( |
| 84 new bookmarks::BookmarkModelBridge(self, _bookmarkModel)); | 80 new bookmarks::BookmarkModelBridge(self, _bookmarkModel)); |
| 85 | 81 |
| 86 self.menuItems = [NSMutableArray array]; | 82 self.menuItems = [NSMutableArray array]; |
| 87 | 83 |
| 88 [self createViews]; | 84 [self createViews]; |
| 89 } | 85 } |
| 90 return self; | 86 return self; |
| 91 } | 87 } |
| 92 | 88 |
| 93 - (void)dealloc { | 89 - (void)dealloc { |
| 94 self.tableView.delegate = nil; | 90 self.tableView.delegate = nil; |
| 95 self.tableView.dataSource = nil; | 91 self.tableView.dataSource = nil; |
| 92 base::mac::ReleaseProperties(self); |
| 96 [super dealloc]; | 93 [super dealloc]; |
| 97 } | 94 } |
| 98 | 95 |
| 99 - (void)createViews { | 96 - (void)createViews { |
| 100 // Make the table view. | 97 // Make the table view. |
| 101 self.tableView = base::scoped_nsobject<UITableView>( | 98 self.tableView = base::scoped_nsobject<UITableView>( |
| 102 [[UITableView alloc] initWithFrame:self.bounds]); | 99 [[UITableView alloc] initWithFrame:self.bounds]); |
| 103 [self addSubview:self.tableView]; | 100 [self addSubview:self.tableView]; |
| 104 self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; | 101 self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; |
| 105 self.tableView.delegate = self; | 102 self.tableView.delegate = self; |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 | 417 |
| 421 self.primaryMenuItem = menuItem; | 418 self.primaryMenuItem = menuItem; |
| 422 [self.tableView reloadData]; | 419 [self.tableView reloadData]; |
| 423 } | 420 } |
| 424 | 421 |
| 425 - (void)setScrollsToTop:(BOOL)scrollsToTop { | 422 - (void)setScrollsToTop:(BOOL)scrollsToTop { |
| 426 self.tableView.scrollsToTop = scrollsToTop; | 423 self.tableView.scrollsToTop = scrollsToTop; |
| 427 } | 424 } |
| 428 | 425 |
| 429 @end | 426 @end |
| OLD | NEW |