diff options
Diffstat (limited to 'iphone/Maps/Classes/MWMPlacePageButtonCell.mm')
-rw-r--r-- | iphone/Maps/Classes/MWMPlacePageButtonCell.mm | 61 |
1 files changed, 54 insertions, 7 deletions
diff --git a/iphone/Maps/Classes/MWMPlacePageButtonCell.mm b/iphone/Maps/Classes/MWMPlacePageButtonCell.mm index 5b0f81416a..203bc3bfbd 100644 --- a/iphone/Maps/Classes/MWMPlacePageButtonCell.mm +++ b/iphone/Maps/Classes/MWMPlacePageButtonCell.mm @@ -1,7 +1,9 @@ +#import "Common.h" #import "MWMPlacePageButtonCell.h" #import "MWMFrameworkListener.h" #import "MWMPlacePageViewManager.h" #import "UIColor+MapsMeColor.h" +#import "MWMPlacePageProtocol.h" @interface MWMPlacePageButtonCell ()<MWMFrameworkStorageObserver> @@ -10,6 +12,8 @@ @property(nonatomic) MWMPlacePageCellType type; @property(nonatomic) storage::TCountryId countryId; +@property(weak, nonatomic) id<MWMPlacePageButtonsProtocol> delegate; +@property(nonatomic) place_page::ButtonsRows rowType; @end @implementation MWMPlacePageButtonCell @@ -22,16 +26,59 @@ [self refreshButtonEnabledState]; } +- (void)setEnabled:(BOOL)enabled +{ + self.titleButton.enabled = enabled; +} + +- (BOOL)isEnabled +{ + return self.titleButton.isEnabled; +} + +- (void)configForRow:(place_page::ButtonsRows)row withDelegate:(id<MWMPlacePageButtonsProtocol>)delegate +{ + self.delegate = delegate; + self.rowType = row; + switch(row) + { + case place_page::ButtonsRows::AddPlace: + [self.titleButton setTitle:L(@"placepage_add_place_button") forState:UIControlStateNormal]; + break; + case place_page::ButtonsRows::EditPlace: + [self.titleButton setTitle:L(@"edit_place") forState:UIControlStateNormal]; + break; + case place_page::ButtonsRows::AddBusiness: + [self.titleButton setTitle:L(@"placepage_add_business_button") forState:UIControlStateNormal]; + break; + case place_page::ButtonsRows::HotelDescription: + [self.titleButton setTitle:L(@"details") forState:UIControlStateNormal]; + break; + } +} + - (IBAction)buttonTap { - MWMPlacePageViewManager * manager = self.manager; - switch (self.type) + if (IPAD) + { + switch (self.type) + { + case MWMPlacePageCellTypeEditButton: [self.manager editPlace]; break; + case MWMPlacePageCellTypeAddBusinessButton: [self.manager addBusiness]; break; + case MWMPlacePageCellTypeAddPlaceButton: [self.manager addPlace]; break; + case MWMPlacePageCellTypeBookingMore: [self.manager book:YES]; break; + default: NSAssert(false, @"Incorrect cell type!"); break; + } + return; + } + + using namespace place_page; + switch (self.rowType) { - case MWMPlacePageCellTypeEditButton: [manager editPlace]; break; - case MWMPlacePageCellTypeAddBusinessButton: [manager addBusiness]; break; - case MWMPlacePageCellTypeAddPlaceButton: [manager addPlace]; break; - case MWMPlacePageCellTypeBookingMore: [manager book:YES]; break; - default: NSAssert(false, @"Incorrect cell type!"); break; + case ButtonsRows::AddPlace: [self.delegate addPlace]; break; + case ButtonsRows::EditPlace: [self.delegate editPlace]; break; + case ButtonsRows::AddBusiness: [self.delegate addBusiness]; break; + case ButtonsRows::HotelDescription: [self.delegate book:YES]; break; } } |