diff options
Diffstat (limited to 'Preferences.mm')
-rw-r--r-- | Preferences.mm | 438 |
1 files changed, 0 insertions, 438 deletions
diff --git a/Preferences.mm b/Preferences.mm deleted file mode 100644 index f576193..0000000 --- a/Preferences.mm +++ /dev/null @@ -1,438 +0,0 @@ -/* Source {{{ */ -@interface Source : NSObject { - NSString *description_; - NSString *label_; - NSString *origin_; - - NSString *uri_; - NSString *distribution_; - NSString *type_; - - BOOL trusted_; -} - -- (void) dealloc; - -- (Source *) initWithMetaIndex:(metaIndex *)index; - -- (BOOL) trusted; - -- (NSString *) uri; -- (NSString *) distribution; -- (NSString *) type; - -- (NSString *) description; -- (NSString *) label; -- (NSString *) origin; -@end - -@implementation Source - -- (void) dealloc { - [uri_ release]; - [distribution_ release]; - [type_ release]; - - if (description_ != nil) - [description_ release]; - if (label_ != nil) - [label_ release]; - if (origin_ != nil) - [origin_ release]; - - [super dealloc]; -} - -- (Source *) initWithMetaIndex:(metaIndex *)index { - if ((self = [super init]) != nil) { - trusted_ = index->IsTrusted(); - - uri_ = [[NSString stringWithCString:index->GetURI().c_str()] retain]; - distribution_ = [[NSString stringWithCString:index->GetDist().c_str()] retain]; - type_ = [[NSString stringWithCString:index->GetType()] retain]; - - description_ = nil; - label_ = nil; - origin_ = nil; - - debReleaseIndex *dindex(dynamic_cast<debReleaseIndex *>(index)); - if (dindex != NULL) { - std::ifstream release(dindex->MetaIndexFile("Release").c_str()); - std::string line; - while (std::getline(release, line)) { - std::string::size_type colon(line.find(':')); - if (colon == std::string::npos) - continue; - - std::string name(line.substr(0, colon)); - std::string value(line.substr(colon + 1)); - while (!value.empty() && value[0] == ' ') - value = value.substr(1); - - if (name == "Description") - description_ = [[NSString stringWithCString:value.c_str()] retain]; - else if (name == "Label") - label_ = [[NSString stringWithCString:value.c_str()] retain]; - else if (name == "Origin") - origin_ = [[NSString stringWithCString:value.c_str()] retain]; - } - } - } return self; -} - -- (BOOL) trusted { - return trusted_; -} - -- (NSString *) uri { - return uri_; -} - -- (NSString *) distribution { - return distribution_; -} - -- (NSString *) type { - return type_; -} - -- (NSString *) description { - return description_; -} - -- (NSString *) label { - return label_; -} - -- (NSString *) origin { - return origin_; -} - -@end -/* }}} */ -/* Source Cell {{{ */ -@interface SourceCell : UITableCell { - UITextLabel *description_; - UIRightTextLabel *label_; - UITextLabel *origin_; -} - -- (void) dealloc; - -- (SourceCell *) initWithSource:(Source *)source; - -- (void) _setSelected:(float)fraction; -- (void) setSelected:(BOOL)selected; -- (void) setSelected:(BOOL)selected withFade:(BOOL)fade; -- (void) _setSelectionFadeFraction:(float)fraction; - -@end - -@implementation SourceCell - -- (void) dealloc { - [description_ release]; - [label_ release]; - [origin_ release]; - [super dealloc]; -} - -- (SourceCell *) initWithSource:(Source *)source { - if ((self = [super init]) != nil) { - GSFontRef bold = GSFontCreateWithName("Helvetica", kGSFontTraitBold, 20); - GSFontRef small = GSFontCreateWithName("Helvetica", kGSFontTraitNone, 14); - - CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB(); - float clear[] = {0, 0, 0, 0}; - - NSString *description = [source description]; - if (description == nil) - description = [source uri]; - - description_ = [[UITextLabel alloc] initWithFrame:CGRectMake(12, 7, 270, 25)]; - [description_ setBackgroundColor:CGColorCreate(space, clear)]; - [description_ setFont:bold]; - [description_ setText:description]; - - NSString *label = [source label]; - if (label == nil) - label = [source type]; - - label_ = [[UIRightTextLabel alloc] initWithFrame:CGRectMake(290, 32, 90, 25)]; - [label_ setBackgroundColor:CGColorCreate(space, clear)]; - [label_ setFont:small]; - [label_ setText:label]; - - NSString *origin = [source origin]; - if (origin == nil) - origin = [source distribution]; - - origin_ = [[UITextLabel alloc] initWithFrame:CGRectMake(13, 35, 315, 20)]; - [origin_ setBackgroundColor:CGColorCreate(space, clear)]; - [origin_ setFont:small]; - [origin_ setText:origin]; - - [self addSubview:description_]; - [self addSubview:label_]; - [self addSubview:origin_]; - - CFRelease(small); - CFRelease(bold); - } return self; -} - -- (void) _setSelected:(float)fraction { - CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB(); - - float black[] = { - interpolate(0.0, 1.0, fraction), - interpolate(0.0, 1.0, fraction), - interpolate(0.0, 1.0, fraction), - 1.0}; - - float blue[] = { - interpolate(0.2, 1.0, fraction), - interpolate(0.2, 1.0, fraction), - interpolate(1.0, 1.0, fraction), - 1.0}; - - float gray[] = { - interpolate(0.4, 1.0, fraction), - interpolate(0.4, 1.0, fraction), - interpolate(0.4, 1.0, fraction), - 1.0}; - - [description_ setColor:CGColorCreate(space, black)]; - [label_ setColor:CGColorCreate(space, blue)]; - [origin_ setColor:CGColorCreate(space, gray)]; -} - -- (void) setSelected:(BOOL)selected { - [self _setSelected:(selected ? 1.0 : 0.0)]; - [super setSelected:selected]; -} - -- (void) setSelected:(BOOL)selected withFade:(BOOL)fade { - if (!fade) - [self _setSelected:(selected ? 1.0 : 0.0)]; - [super setSelected:selected withFade:fade]; -} - -- (void) _setSelectionFadeFraction:(float)fraction { - [self _setSelected:fraction]; - [super _setSelectionFadeFraction:fraction]; -} - -@end -/* }}} */ - -/* Sources View {{{ */ -@interface SourcesView : UIView { - UISectionList *list_; - Database *database_; - id delegate_; - NSMutableArray *sources_; - UIActionSheet *alert_; -} - -- (int) numberOfSectionsInSectionList:(UISectionList *)list; -- (NSString *) sectionList:(UISectionList *)list titleForSection:(int)section; -- (int) sectionList:(UISectionList *)list rowForSection:(int)section; - -- (int) numberOfRowsInTable:(UITable *)table; -- (float) table:(UITable *)table heightForRow:(int)row; -- (UITableCell *) table:(UITable *)table cellForRow:(int)row column:(UITableColumn *)col; -- (BOOL) table:(UITable *)table showDisclosureForRow:(int)row; -- (void) tableRowSelected:(NSNotification*)notification; - -- (void) navigationBar:(UINavigationBar *)navbar buttonClicked:(int)button; - -- (void) dealloc; -- (id) initWithFrame:(CGRect)frame database:(Database *)database; -- (void) setDelegate:(id)delegate; -- (void) reloadData; -- (NSString *) leftTitle; -- (NSString *) rightTitle; -@end - -@implementation SourcesView - -- (int) numberOfSectionsInSectionList:(UISectionList *)list { - return 1; -} - -- (NSString *) sectionList:(UISectionList *)list titleForSection:(int)section { - return @"sources"; -} - -- (int) sectionList:(UISectionList *)list rowForSection:(int)section { - return 0; -} - -- (int) numberOfRowsInTable:(UITable *)table { - return [sources_ count]; -} - -- (float) table:(UITable *)table heightForRow:(int)row { - return 64; -} - -- (UITableCell *) table:(UITable *)table cellForRow:(int)row column:(UITableColumn *)col { - return [[[SourceCell alloc] initWithSource:[sources_ objectAtIndex:row]] autorelease]; -} - -- (BOOL) table:(UITable *)table showDisclosureForRow:(int)row { - return NO; -} - -- (void) tableRowSelected:(NSNotification*)notification { - UITable *table([list_ table]); - int row([table selectedRow]); - if (row == INT_MAX) - return; - - [table selectRow:-1 byExtendingSelection:NO withFade:YES]; -} - -- (void) alertSheet:(UIActionSheet *)sheet buttonClicked:(int)button { - [alert_ dismiss]; - [alert_ release]; - alert_ = nil; -} - -- (void) navigationBar:(UINavigationBar *)navbar buttonClicked:(int)button { - switch (button) { - case 0: - alert_ = [[UIActionSheet alloc] - initWithTitle:@"Unimplemented" - buttons:[NSArray arrayWithObjects:@"Okay", nil] - defaultButtonIndex:0 - delegate:self - context:self - ]; - - [alert_ setBodyText:@"This feature will be implemented soon. In the mean time, you may add sources by adding .list files to '/etc/apt/sources.list.d'. If you'd like to be in the default list, please contact the author of Packager."]; - [alert_ popupAlertAnimated:YES]; - break; - - case 1: - [delegate_ update]; - break; - } -} - -- (void) dealloc { - if (sources_ != nil) - [sources_ release]; - [list_ release]; - [super dealloc]; -} - -- (id) initWithFrame:(CGRect)frame database:(Database *)database { - if ((self = [super initWithFrame:frame]) != nil) { - database_ = database; - sources_ = nil; - - CGSize navsize = [UINavigationBar defaultSize]; - CGRect navrect = {{0, 0}, navsize}; - CGRect bounds = [self bounds]; - - navbar_ = [[UINavigationBar alloc] initWithFrame:navrect]; - [self addSubview:navbar_]; - - [navbar_ setBarStyle:1]; - [navbar_ setDelegate:self]; - - UINavigationItem *navitem = [[[UINavigationItem alloc] initWithTitle:@"Sources"] autorelease]; - [navbar_ pushNavigationItem:navitem]; - - list_ = [[UISectionList alloc] initWithFrame:CGRectMake( - 0, navsize.height, bounds.size.width, bounds.size.height - navsize.height - )]; - - [self addSubview:list_]; - - [list_ setDataSource:self]; - [list_ setShouldHideHeaderInShortLists:NO]; - - UITableColumn *column = [[UITableColumn alloc] - initWithTitle:@"Name" - identifier:@"name" - width:frame.size.width - ]; - - UITable *table = [list_ table]; - [table setSeparatorStyle:1]; - [table addTableColumn:column]; - [table setDelegate:self]; - } return self; -} - -- (void) setDelegate:(id)delegate { - delegate_ = delegate; -} - -- (void) reloadData { - pkgSourceList list; - _assert(list.ReadMainList()); - - if (sources_ != nil) - [sources_ release]; - - sources_ = [[NSMutableArray arrayWithCapacity:16] retain]; - for (pkgSourceList::const_iterator source = list.begin(); source != list.end(); ++source) - [sources_ addObject:[[[Source alloc] initWithMetaIndex:*source] autorelease]]; - - [list_ reloadData]; -} - -- (NSString *) leftTitle { - return @"Refresh All"; -} - -- (NSString *) rightTitle { - return @"Edit"; -} - -@end -/* }}} */ -/* Settings View {{{ */ -@interface SettingsView : ResetView { -} - -- (void) dealloc; -- (void) reloadData; -@end - -@implementation SettingsView - -- (void) dealloc { - [super dealloc]; -} - -- (id) initWithFrame:(CGRect)frame database:(Database *)database { - if ((self = [super initWithFrame:frame]) != nil) { - database_ = database; - sources_ = nil; - - CGSize navsize = [UINavigationBar defaultSize]; - CGRect navrect = {{0, 0}, navsize}; - CGRect bounds = [self bounds]; - - navbar_ = [[UINavigationBar alloc] initWithFrame:navrect]; - [self addSubview:navbar_]; - - [navbar_ setBarStyle:1]; - [navbar_ setDelegate:self]; - - UINavigationItem *navitem = [[[UINavigationItem alloc] initWithTitle:@"Settings"] autorelease]; - [navbar_ pushNavigationItem:navitem]; - } return self; -} - -- (void) reloadData { - [self resetView]; -} - -@end -/* }}} */ |