diff --git a/frontends/gnustep/BrowserWindowController.m b/frontends/gnustep/BrowserWindowController.m index 0eaaa48d6..fab1622b7 100644 --- a/frontends/gnustep/BrowserWindowController.m +++ b/frontends/gnustep/BrowserWindowController.m @@ -66,6 +66,7 @@ static id newTabTarget; -(Website*)currentWebsiteForTab: (id)tab; -(void)updateTabsVisibility; -(void)onPreferencesUpdated: (id)sender; +-(void)reconfigureUrlBarButtons; @end @implementation BrowserWindowController @@ -533,11 +534,28 @@ static id newTabTarget; currentTabLocation = location; } +-(void)reconfigureUrlBarButtons { + NSLog(@"reconfigure url bar buttons"); + UrlBarButtonType buttonType = [[Preferences defaultPreferences] urlBarButtonType]; + NSLog(@"type: %d", buttonType); + switch (buttonType) { + case UrlBarButtonTypeImage: + [backButton setImage: [NSImage imageNamed: @"back"]]; + break; + case UrlBarButtonTypeText: + break; + default: + break; + } +} + -(void)onPreferencesUpdated: (id)sender { id dict = [sender object]; PreferenceType type = (PreferenceType)[[dict objectForKey: @"type"] integerValue]; if (type == PreferenceTypeAlwaysShowTabs || type == PreferenceTypeTabLocation) { [self updateTabsVisibility]; + } else if (type == PreferenceTypeUrlBarButtonType) { + [self reconfigureUrlBarButtons]; } } diff --git a/frontends/gnustep/Makefile b/frontends/gnustep/Makefile index 73a37241e..4e88fe1e7 100644 --- a/frontends/gnustep/Makefile +++ b/frontends/gnustep/Makefile @@ -102,6 +102,10 @@ E_RESOURCES := \ internal.css \ quirks.css \ SearchEngines \ + forward.png \ + back.png \ + refresh.png \ + search.png \ E_RESOURCES := $(addprefix resources/,$(E_RESOURCES)) diff --git a/frontends/gnustep/Preferences.h b/frontends/gnustep/Preferences.h index ebbb2e44d..ed13f63c4 100644 --- a/frontends/gnustep/Preferences.h +++ b/frontends/gnustep/Preferences.h @@ -15,12 +15,18 @@ typedef NS_ENUM(NSInteger, TabLocation) { TabLocationNone }; +typedef NS_ENUM(NSInteger, UrlBarButtonType) { + UrlBarButtonTypeText = 0, + UrlBarButtonTypeImage +}; + // Certain preferences will notify that they have been updated using this key. #define PreferencesUpdatedNotificationName @"PreferencesUpdatedNotification" typedef NS_ENUM(NSInteger, PreferenceType) { PreferenceTypeAlwaysShowTabs = 0, PreferenceTypeTabLocation, - PreferenceTypeShowUrlSuggestions + PreferenceTypeShowUrlSuggestions, + PreferenceTypeUrlBarButtonType }; @interface Preferences: NSObject { @@ -63,5 +69,8 @@ typedef NS_ENUM(NSInteger, PreferenceType) { -(BOOL)showUrlSuggestions; -(void)setShowUrlSuggestions: (BOOL)value; +-(UrlBarButtonType)urlBarButtonType; +-(void)setUrlBarButtonType: (UrlBarButtonType)buttonType; + +(Preferences*)defaultPreferences; @end diff --git a/frontends/gnustep/Preferences.m b/frontends/gnustep/Preferences.m index b1ac36c43..4fab4818e 100644 --- a/frontends/gnustep/Preferences.m +++ b/frontends/gnustep/Preferences.m @@ -14,6 +14,7 @@ #define KEY_TAB_LOCATION @"tab_location" #define KEY_DEVELOPER_VIEW_LOCATION @"developer_view_location" #define KEY_SHOW_URL_SUGGESTIONS @"show_url_suggestions" +#define KEY_URL_BAR_BUTTON_TYPE @"url_bar_button_type" @interface Preferences (Private) @@ -186,6 +187,21 @@ [self notifyPreferenceUpdated: PreferenceTypeShowUrlSuggestions]; } +-(UrlBarButtonType)urlBarButtonType { + if ([defaults objectForKey: KEY_URL_BAR_BUTTON_TYPE] != nil) { + return (UrlBarButtonType)[defaults integerForKey: + KEY_URL_BAR_BUTTON_TYPE]; + } else { + return UrlBarButtonTypeText; + } +} + +-(void)setUrlBarButtonType: (UrlBarButtonType)buttonType { + [defaults setInteger: (NSInteger)buttonType forKey: + KEY_URL_BAR_BUTTON_TYPE]; + [self notifyPreferenceUpdated: PreferenceTypeUrlBarButtonType]; +} + +(Preferences*)defaultPreferences { static Preferences *prefs; if (prefs == nil) { diff --git a/frontends/gnustep/PreferencesWindowController.m b/frontends/gnustep/PreferencesWindowController.m index cb9bb2368..949560917 100644 --- a/frontends/gnustep/PreferencesWindowController.m +++ b/frontends/gnustep/PreferencesWindowController.m @@ -211,6 +211,8 @@ [developerViewsButton selectItemAtIndex: (NSInteger)viewLocation]; [urlSuggestionsButton setState: [[Preferences defaultPreferences] showUrlSuggestions] ? NSOnState : NSOffState]; + UrlBarButtonType buttonType = [[Preferences defaultPreferences] urlBarButtonType]; + [urlBarButtonsTypeButton selectItemAtIndex: (NSInteger)buttonType]; } -(void)didPickDeveloperViews: (id)sender { @@ -251,6 +253,9 @@ -(void)didPickUrlButtonsType: (id)sender { NSLog(@"didPickUrlButtonsType"); + UrlBarButtonType buttonType = (UrlBarButtonType)[sender indexOfItem: [sender + selectedItem]]; + [[Preferences defaultPreferences] setUrlBarButtonType: buttonType]; } @end diff --git a/resources/back.png b/resources/back.png new file mode 100644 index 000000000..35ae31bfe Binary files /dev/null and b/resources/back.png differ diff --git a/resources/forward.png b/resources/forward.png new file mode 100644 index 000000000..a88025c76 Binary files /dev/null and b/resources/forward.png differ diff --git a/resources/refresh.png b/resources/refresh.png new file mode 100644 index 000000000..91836ca91 Binary files /dev/null and b/resources/refresh.png differ diff --git a/resources/search.png b/resources/search.png new file mode 100644 index 000000000..30c21c89e Binary files /dev/null and b/resources/search.png differ