1
0
mirror of https://github.com/danog/Telegram.git synced 2024-12-03 09:57:46 +01:00
Telegram/Telegraph/TGTextSizeController.m
2014-07-10 18:11:09 +04:00

102 lines
3.2 KiB
Objective-C

/*
* This is the source code of Telegram for iOS v. 1.1
* It is licensed under GNU GPL v. 2 or later.
* You should have received a copy of the license in this archive (see LICENSE).
*
* Copyright Peter Iakovlev, 2013.
*/
#import "TGTextSizeController.h"
#import "TGHeaderCollectionItem.h"
#import "TGCheckCollectionItem.h"
@interface TGTextSizeController ()
{
NSArray *_textSizes;
}
@end
@implementation TGTextSizeController
- (id)initWithTextSize:(int)textSize
{
self = [super init];
if (self != nil)
{
[self setTitleText:TGLocalized(@"ChatSettings.TextSize")];
[self setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:TGLocalized(@"Common.Cancel") style:UIBarButtonItemStylePlain target:self action:@selector(cancelPressed)]];
[self setRightBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:TGLocalized(@"Common.Done") style:UIBarButtonItemStyleDone target:self action:@selector(donePressed)]];
_textSizes = @[@(16), @(18), @(20), @(24), @(32), @(40)];
NSMutableArray *textSizeSectionItems = [[NSMutableArray alloc] init];
for (NSNumber *nSize in _textSizes)
{
TGCheckCollectionItem *checkItem = [[TGCheckCollectionItem alloc] initWithTitle:[[NSString alloc] initWithFormat:@"%d%@", [nSize intValue], TGLocalized(@"ChatSettings.TextSizeUnits")] action:@selector(textSizeItemPressed:)];
[checkItem setIsChecked:[nSize intValue] == textSize];
[textSizeSectionItems addObject:checkItem];
}
TGCollectionMenuSection *textSizesSection = [[TGCollectionMenuSection alloc] initWithItems:textSizeSectionItems];
UIEdgeInsets topSectionInsets = textSizesSection.insets;
topSectionInsets.top = 32.0f;
textSizesSection.insets = topSectionInsets;
[self.menuSections addSection:textSizesSection];
}
return self;
}
- (void)cancelPressed
{
[self.presentingViewController dismissViewControllerAnimated:true completion:nil];
}
- (void)donePressed
{
id<TGTextSizeControllerDelegate> delegate = _delegate;
if ([delegate respondsToSelector:@selector(textSizeController:didFinishPickingWithTextSize:)])
[delegate textSizeController:self didFinishPickingWithTextSize:[self _selectedTextSize]];
[self.presentingViewController dismissViewControllerAnimated:true completion:nil];
}
- (int)_selectedTextSize
{
int index = -1;
for (id item in ((TGCollectionMenuSection *)self.menuSections.sections[0]).items)
{
if ([item isKindOfClass:[TGCheckCollectionItem class]])
{
index++;
if (((TGCheckCollectionItem *)item).isChecked)
return [_textSizes[index] intValue];
}
}
return 16;
}
- (void)textSizeItemPressed:(TGCheckCollectionItem *)checkItem
{
checkItem.isChecked = true;
int index = -1;
for (id item in ((TGCollectionMenuSection *)self.menuSections.sections[0]).items)
{
if ([item isKindOfClass:[TGCheckCollectionItem class]])
{
index++;
if (item != checkItem)
((TGCheckCollectionItem *)item).isChecked = false;
}
}
}
@end