Repo created
This commit is contained in:
parent
4af19165ec
commit
68073add76
12458 changed files with 12350765 additions and 2 deletions
|
|
@ -0,0 +1,99 @@
|
|||
#import "MWMOpeningHoursDaysSelectorTableViewCell.h"
|
||||
#import "SwiftBridge.h"
|
||||
|
||||
@interface MWMOpeningHoursDaysSelectorTableViewCell ()
|
||||
|
||||
@property (nonatomic) IBOutletCollection(UIButton) NSArray * buttons;
|
||||
@property (nonatomic) IBOutletCollection(UILabel) NSArray * labels;
|
||||
@property (nonatomic) IBOutletCollection(UIImageView) NSArray * images;
|
||||
|
||||
@property (nonatomic) NSUInteger firstWeekday;
|
||||
|
||||
@end
|
||||
|
||||
using namespace osmoh;
|
||||
|
||||
@implementation MWMOpeningHoursDaysSelectorTableViewCell
|
||||
|
||||
+ (CGFloat)heightForWidth:(CGFloat)width
|
||||
{
|
||||
return 76.0;
|
||||
}
|
||||
|
||||
- (void)awakeFromNib
|
||||
{
|
||||
[super awakeFromNib];
|
||||
NSCalendar * cal = NSCalendar.currentCalendar;
|
||||
cal.locale = NSLocale.currentLocale;
|
||||
self.firstWeekday = cal.firstWeekday;
|
||||
NSArray<NSString *> * weekdaySymbols = cal.shortStandaloneWeekdaySymbols;
|
||||
for (UILabel * label in self.labels)
|
||||
{
|
||||
label.text = weekdaySymbols[[self tag2SymbolIndex:label.tag]];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSUInteger)tag2SymbolIndex:(NSUInteger)tag
|
||||
{
|
||||
NSUInteger idx = tag + self.firstWeekday - 1;
|
||||
NSUInteger const weekDaysCount = 7;
|
||||
if (idx >= weekDaysCount)
|
||||
idx -= weekDaysCount;
|
||||
return idx;
|
||||
}
|
||||
|
||||
- (Weekday)tag2Weekday:(NSUInteger)tag
|
||||
{
|
||||
return static_cast<Weekday>([self tag2SymbolIndex:tag] + 1);
|
||||
}
|
||||
|
||||
- (void)makeDay:(NSUInteger)tag selected:(BOOL)selected refresh:(BOOL)refresh
|
||||
{
|
||||
if (refresh)
|
||||
{
|
||||
Weekday const wd = [self tag2Weekday:tag];
|
||||
MWMOpeningHoursSection * section = self.section;
|
||||
if (selected)
|
||||
[section addSelectedDay:wd];
|
||||
else
|
||||
[section removeSelectedDay:wd];
|
||||
}
|
||||
for (UIButton * btn in self.buttons)
|
||||
{
|
||||
if (btn.tag == tag)
|
||||
btn.selected = selected;
|
||||
}
|
||||
for (UILabel * label in self.labels)
|
||||
{
|
||||
if (label.tag == tag)
|
||||
label.textColor = (selected ? [UIColor blackPrimaryText] : [UIColor blackHintText]);
|
||||
}
|
||||
for (UIImageView * image in self.images)
|
||||
{
|
||||
if (image.tag == tag)
|
||||
{
|
||||
image.image = [UIImage imageNamed:selected ? @"radioBtnOn" : @"radioBtnOff"];
|
||||
[image setStyleNameAndApply: selected ? @"MWMBlue" : @"MWMGray"];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)refresh
|
||||
{
|
||||
[super refresh];
|
||||
for (UILabel * label in self.labels)
|
||||
{
|
||||
NSUInteger const tag = label.tag;
|
||||
BOOL const selected = [self.section containsSelectedDay:[self tag2Weekday:tag]];
|
||||
[self makeDay:tag selected:selected refresh:NO];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Actions
|
||||
|
||||
- (IBAction)selectDay:(UIButton *)sender
|
||||
{
|
||||
[self makeDay:sender.tag selected:!sender.isSelected refresh:YES];
|
||||
}
|
||||
|
||||
@end
|
||||
Loading…
Add table
Add a link
Reference in a new issue