From 173adff74f8ce5b10686e7d0a1e377ac0835834e Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Thu, 26 Jul 2012 19:10:20 +0200 Subject: [PATCH] Customize Settings view colors --- Classes/HistoryDetailsViewController.xib | 14 +-- Classes/LinphoneUI/UILinphone.h | 3 + Classes/SettingsViewController.m | 114 ++++++++++++++++--- Classes/SettingsViewController.xib | 88 ++++++++------ Resources/history_details_bar_background.png | Bin 0 -> 161 bytes Resources/settings_bar_background.png | Bin 0 -> 161 bytes linphone.xcodeproj/project.pbxproj | 12 ++ 7 files changed, 174 insertions(+), 57 deletions(-) create mode 100644 Resources/history_details_bar_background.png create mode 100644 Resources/settings_bar_background.png diff --git a/Classes/HistoryDetailsViewController.xib b/Classes/HistoryDetailsViewController.xib index 7deedb7e5..6e340bd86 100644 --- a/Classes/HistoryDetailsViewController.xib +++ b/Classes/HistoryDetailsViewController.xib @@ -3,19 +3,19 @@ 1296 11E53 - 2182 + 2549 1138.47 569.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 1181 + 1498 + IBProxyObject IBUIButton IBUIImageView - IBUIView IBUILabel - IBProxyObject + IBUIView com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -53,7 +53,7 @@ IBCocoaTouchFramework NSImage - contact_bar_background.png + history_details_bar_background.png @@ -896,12 +896,12 @@ {131, 131} {550, 101} {550, 101} - {5, 117} {320, 117} {320, 117} {320, 117} {320, 117} + {5, 117} - 1181 + 1498 diff --git a/Classes/LinphoneUI/UILinphone.h b/Classes/LinphoneUI/UILinphone.h index 42fc6c2ba..8b84d01f5 100644 --- a/Classes/LinphoneUI/UILinphone.h +++ b/Classes/LinphoneUI/UILinphone.h @@ -20,6 +20,9 @@ #ifndef UILINPHONE_H #define UILINPHONE_H + +#define LINPHONE_MAIN_COLOR [UIColor colorWithRed:207.0f/255.0f green:76.0f/255.0f blue:41.0f/255.0f alpha:1.0f] #define LINPHONE_TABLE_CELL_BACKGROUND_COLOR [UIColor colorWithRed:207.0f/255.0f green:76.0f/255.0f blue:41.0f/255.0f alpha:1.0f] + #endif diff --git a/Classes/SettingsViewController.m b/Classes/SettingsViewController.m index 69f5085d6..6aa413b11 100644 --- a/Classes/SettingsViewController.m +++ b/Classes/SettingsViewController.m @@ -19,6 +19,105 @@ #import "SettingsViewController.h" #import "LinphoneManager.h" +#import "UILinphone.h" + +static void removeTableBackground(UIView* view) { + if([view isKindOfClass:[UITableView class]]) { + [view setBackgroundColor:[UIColor clearColor]]; + } + for(UIView *subview in [view subviews]) { + removeTableBackground(subview); + } +} + +@interface UINavigationBarEx: UINavigationBar { + +} +@end + +@implementation UINavigationBarEx + + +#pragma mark - Lifecycle Functions + +- (void)initUINavigationBarEx { + [self setTintColor:LINPHONE_MAIN_COLOR]; +} + +- (id)init { + self = [super init]; + if (self) { + [self initUINavigationBarEx]; + } + return self; +} + +- (id)initWithCoder:(NSCoder *)aDecoder { + self = [super initWithCoder:aDecoder]; + if (self) { + [self initUINavigationBarEx]; + } + return self; +} + +- (id)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initUINavigationBarEx]; + } + return self; +} + +- (void)drawRect:(CGRect)rect { + UIImage *img = [UIImage imageNamed:@"settings_bar_background.png"]; + [img drawInRect:rect]; +} + +@end + +@interface UINavigationControllerEx : UINavigationController + +@end + +@implementation UINavigationControllerEx + +- (id)initWithRootViewController:(UIViewController *)rootViewController { + removeTableBackground(rootViewController.view); + return [super initWithRootViewController:rootViewController]; +} + +- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated { + removeTableBackground(viewController.view); + + UILabel *labelTitleView = [[UILabel alloc] init]; + labelTitleView.backgroundColor = [UIColor clearColor]; + labelTitleView.textColor = [UIColor colorWithRed:0x41/255.0f green:0x48/255.0f blue:0x4f/255.0f alpha:1.0]; + labelTitleView.shadowColor = [UIColor colorWithWhite:1.0 alpha:0.5]; + labelTitleView.font = [UIFont boldSystemFontOfSize:20]; + labelTitleView.shadowOffset = CGSizeMake(0,1); + labelTitleView.textAlignment = UITextAlignmentCenter; + labelTitleView.text = viewController.navigationItem.title; + [labelTitleView sizeToFit]; + viewController.navigationItem.titleView = labelTitleView; + + [super pushViewController:viewController animated:animated]; +} + +- (void)setViewControllers:(NSArray *)viewControllers { + for(UIViewController *controller in viewControllers) { + removeTableBackground(controller.view); + } + [super setViewControllers:viewControllers]; +} + +- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated { + for(UIViewController *controller in viewControllers) { + removeTableBackground(controller.view); + } + [super setViewControllers:viewControllers animated:animated]; +} + +@end @implementation SettingsViewController @@ -59,17 +158,6 @@ static UICompositeViewDescription *compositeDescription = nil; } -#pragma mark - - -+ (void)removeBackground:(UIView*)view { - if([view isKindOfClass:[UITableView class]]) { - [view setBackgroundColor:[UIColor clearColor]]; - } - for(UIView *subview in [view subviews]) { - [SettingsViewController removeBackground:subview]; - } -} - #pragma mark - ViewController Functions - (void)viewDidLoad { @@ -82,8 +170,8 @@ static UICompositeViewDescription *compositeDescription = nil; settingsController.settingsStore = [[LinphoneManager instance] settingsStore]; navigationController.view.frame = self.view.frame; - [SettingsViewController removeBackground:navigationController.view]; - [SettingsViewController removeBackground:settingsController.view]; + removeTableBackground(navigationController.view); + [navigationController pushViewController:settingsController animated:FALSE]; [self.view addSubview: navigationController.view]; } diff --git a/Classes/SettingsViewController.xib b/Classes/SettingsViewController.xib index 4d1cbfb30..9c69905bb 100644 --- a/Classes/SettingsViewController.xib +++ b/Classes/SettingsViewController.xib @@ -3,20 +3,20 @@ 1296 11E53 - 2182 + 2549 1138.47 569.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 1181 + 1498 - IBUINavigationBar - IBUINavigationItem - IBUIViewController - IBUIView - IBUINavigationController IBProxyObject + IBUINavigationBar + IBUINavigationController + IBUINavigationItem + IBUIView + IBUIViewController com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -48,6 +48,20 @@ IBCocoaTouchFramework + + NO + + Settings + IBCocoaTouchFramework + + + + 1 + 1 + + IBCocoaTouchFramework + NO + @@ -67,24 +81,7 @@ YES IBCocoaTouchFramework - - - NO - - - Settings - IBCocoaTouchFramework - - - - - 1 - 1 - - IBCocoaTouchFramework - NO - - + @@ -97,14 +94,6 @@ 9 - - - settingsController - - - - 8 - navigationController @@ -113,12 +102,20 @@ 15 + + + settingsController + + + + 8 + 0 - + @@ -144,7 +141,6 @@ - navigationController @@ -161,7 +157,7 @@ - + settingsController @@ -177,7 +173,9 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin UIResponder com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UINavigationControllerEx com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UINavigationBarEx com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -233,6 +231,22 @@ ./Classes/SettingsViewController.h + + UINavigationBarEx + UINavigationBar + + IBProjectSource + ./Classes/UINavigationBarEx.h + + + + UINavigationControllerEx + UINavigationController + + IBProjectSource + ./Classes/UINavigationControllerEx.h + + 0 @@ -243,6 +257,6 @@ YES 3 - 1181 + 1498 diff --git a/Resources/history_details_bar_background.png b/Resources/history_details_bar_background.png new file mode 100644 index 0000000000000000000000000000000000000000..e3638e1976b397c669e71c428631487b600fe13e GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^tUz4K!2~2Z_4gEmr~;2jAk8fd!i)^F=12eq*-Jcq zUD@xjb8+$VX`9TE0SY;Ix;TbdoKF7p|Gz!6P(qRe>*7CwcBVgdST0F(cfOn$^x0#o ze8y*uQ2QHS`gf%#TxQ;T*?R5U#SymKSBR)Sm1em7dBT_DR>iJBvlu*G{an^LB{Ts5 D?eH-_ literal 0 HcmV?d00001 diff --git a/Resources/settings_bar_background.png b/Resources/settings_bar_background.png new file mode 100644 index 0000000000000000000000000000000000000000..e3638e1976b397c669e71c428631487b600fe13e GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^tUz4K!2~2Z_4gEmr~;2jAk8fd!i)^F=12eq*-Jcq zUD@xjb8+$VX`9TE0SY;Ix;TbdoKF7p|Gz!6P(qRe>*7CwcBVgdST0F(cfOn$^x0#o ze8y*uQ2QHS`gf%#TxQ;T*?R5U#SymKSBR)Sm1em7dBT_DR>iJBvlu*G{an^LB{Ts5 D?eH-_ literal 0 HcmV?d00001 diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index d1eef5517..b018832b9 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -666,6 +666,10 @@ D3A8BB7F15A6CC3200F96BE5 /* setup_back_disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D3A8BB7815A6CC3200F96BE5 /* setup_back_disabled.png */; }; D3A8BB8115A6CC3200F96BE5 /* setup_cancel_disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D3A8BB7915A6CC3200F96BE5 /* setup_cancel_disabled.png */; }; D3A8BB8315A6CC3200F96BE5 /* setup_start_disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D3A8BB7A15A6CC3200F96BE5 /* setup_start_disabled.png */; }; + D3B82A0215C18A710036C93E /* history_details_bar_background.png in Resources */ = {isa = PBXBuildFile; fileRef = D3B82A0015C18A710036C93E /* history_details_bar_background.png */; }; + D3B82A0315C18A710036C93E /* history_details_bar_background.png in Resources */ = {isa = PBXBuildFile; fileRef = D3B82A0015C18A710036C93E /* history_details_bar_background.png */; }; + D3B82A0415C18A710036C93E /* settings_bar_background.png in Resources */ = {isa = PBXBuildFile; fileRef = D3B82A0115C18A710036C93E /* settings_bar_background.png */; }; + D3B82A0515C18A710036C93E /* settings_bar_background.png in Resources */ = {isa = PBXBuildFile; fileRef = D3B82A0115C18A710036C93E /* settings_bar_background.png */; }; D3B9A3DF15A58C450096EA4E /* chat_field.png in Resources */ = {isa = PBXBuildFile; fileRef = D3B9A3DA15A58C440096EA4E /* chat_field.png */; }; D3B9A3E115A58C450096EA4E /* chat_ok_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3B9A3DB15A58C440096EA4E /* chat_ok_default.png */; }; D3B9A3E315A58C450096EA4E /* chat_ok_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3B9A3DC15A58C440096EA4E /* chat_ok_over.png */; }; @@ -1412,6 +1416,8 @@ D3A8BB7815A6CC3200F96BE5 /* setup_back_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = setup_back_disabled.png; path = Resources/setup_back_disabled.png; sourceTree = ""; }; D3A8BB7915A6CC3200F96BE5 /* setup_cancel_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = setup_cancel_disabled.png; path = Resources/setup_cancel_disabled.png; sourceTree = ""; }; D3A8BB7A15A6CC3200F96BE5 /* setup_start_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = setup_start_disabled.png; path = Resources/setup_start_disabled.png; sourceTree = ""; }; + D3B82A0015C18A710036C93E /* history_details_bar_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_details_bar_background.png; path = Resources/history_details_bar_background.png; sourceTree = ""; }; + D3B82A0115C18A710036C93E /* settings_bar_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = settings_bar_background.png; path = Resources/settings_bar_background.png; sourceTree = ""; }; D3B9A3DA15A58C440096EA4E /* chat_field.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = chat_field.png; path = Resources/chat_field.png; sourceTree = ""; }; D3B9A3DB15A58C440096EA4E /* chat_ok_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = chat_ok_default.png; path = Resources/chat_ok_default.png; sourceTree = ""; }; D3B9A3DC15A58C440096EA4E /* chat_ok_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = chat_ok_over.png; path = Resources/chat_ok_over.png; sourceTree = ""; }; @@ -2343,6 +2349,7 @@ D3157A8915B4466F00DD8C4C /* history_details_add_over.png */, D3157A8E15B446CB00DD8C4C /* history_details_back_default.png */, D3157A8F15B446CB00DD8C4C /* history_details_back_over.png */, + D3B82A0015C18A710036C93E /* history_details_bar_background.png */, D3ED3E9415872EF1006C0DE4 /* history_edit_default.png */, D3ED3E9515872EF1006C0DE4 /* history_edit_over.png */, D3ED3E9715872EF1006C0DE4 /* history_missed_default.png */, @@ -2437,6 +2444,7 @@ D3D6A3A5159B0EFE005F692C /* security_ko.png */, D3D6A3A7159B0EFE005F692C /* security_ok.png */, D3D6A3A6159B0EFE005F692C /* security_pending.png */, + D3B82A0115C18A710036C93E /* settings_bar_background.png */, D38327EF1580FE3A00FA0D23 /* settings_default.png */, D38327FE158100E400FA0D23 /* settings_over.png */, D38327F01580FE3A00FA0D23 /* settings_selected.png */, @@ -3032,6 +3040,8 @@ D3C31A8215BD8DED008ED271 /* video_on_default_landscape.png in Resources */, D3C31A8415BD8DED008ED271 /* video_on_disabled_landscape.png in Resources */, D3C31A8615BD8DED008ED271 /* video_on_over_landscape.png in Resources */, + D3B82A0215C18A710036C93E /* history_details_bar_background.png in Resources */, + D3B82A0415C18A710036C93E /* settings_bar_background.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3336,6 +3346,8 @@ D34BD74115C13E250070C209 /* Localizable.strings in Resources */, D34BD74215C13E350070C209 /* untitled.plist in Resources */, D34BD74315C13ED70070C209 /* DialerViewController.xib in Resources */, + D3B82A0315C18A710036C93E /* history_details_bar_background.png in Resources */, + D3B82A0515C18A710036C93E /* settings_bar_background.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; };