From 7cfcc9d09b96970dd362f04bdda222e8590f6b71 Mon Sep 17 00:00:00 2001 From: "pinkerton%netscape.com" Date: Thu, 30 May 2002 21:56:11 +0000 Subject: [PATCH] First checkin --- .../PreferencePanes/Navigation/Navigation.h | 44 ++++++ .../PreferencePanes/Navigation/Navigation.mm | 133 ++++++++++++++++++ .../Navigation/Navigation.tiff | Bin 0 -> 21680 bytes .../PreferencePanes/Navigation/Navigation.h | 44 ++++++ .../PreferencePanes/Navigation/Navigation.mm | 133 ++++++++++++++++++ .../Navigation/Navigation.tiff | Bin 0 -> 21680 bytes 6 files changed, 354 insertions(+) create mode 100644 camino/PreferencePanes/Navigation/Navigation.h create mode 100644 camino/PreferencePanes/Navigation/Navigation.mm create mode 100644 camino/PreferencePanes/Navigation/Navigation.tiff create mode 100644 chimera/PreferencePanes/Navigation/Navigation.h create mode 100644 chimera/PreferencePanes/Navigation/Navigation.mm create mode 100644 chimera/PreferencePanes/Navigation/Navigation.tiff diff --git a/camino/PreferencePanes/Navigation/Navigation.h b/camino/PreferencePanes/Navigation/Navigation.h new file mode 100644 index 000000000000..29dc68b6a281 --- /dev/null +++ b/camino/PreferencePanes/Navigation/Navigation.h @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- +* +* The contents of this file are subject to the Mozilla Public +* License Version 1.1 (the "License"); you may not use this file +* except in compliance with the License. You may obtain a copy of +* the License at http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS +* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +* implied. See the License for the specific language governing +* rights and limitations under the License. +* +* The Original Code is the Mozilla browser. +* +* The Initial Developer of the Original Code is Netscape +* Communications Corporation. Portions created by Netscape are +* Copyright (C) 2002 Netscape Communications Corporation. All +* Rights Reserved. +* +* Contributor(s): +* william@dell.wisner.name (William Dell Wisner) +*/ + +#import +#import + +class nsIPref; + +@interface OrgMozillaNavigatorPreferenceNavigation : NSPreferencePane +{ + IBOutlet NSButton *buttonSystemPreferences; + IBOutlet NSButton *checkboxNewTabBlank; + IBOutlet NSButton *checkboxNewWindowBlank; + IBOutlet NSButton *checkboxOpenTabs; + IBOutlet NSSlider *sliderHistoryDays; + IBOutlet NSTextField *textFieldHistoryDays; + + nsIPref* mPrefService; // strong, but can't use a comptr here +} +- (IBAction)buttonSystemPreferencesClicked:(id)sender; +- (IBAction)checkboxClicked:(id)sender; +- (IBAction)checkboxStartPageClicked:(id)sender; +- (IBAction)historyDaysModified:(id)sender; +@end diff --git a/camino/PreferencePanes/Navigation/Navigation.mm b/camino/PreferencePanes/Navigation/Navigation.mm new file mode 100644 index 000000000000..923a3db8bcfe --- /dev/null +++ b/camino/PreferencePanes/Navigation/Navigation.mm @@ -0,0 +1,133 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- +* +* The contents of this file are subject to the Mozilla Public +* License Version 1.1 (the "License"); you may not use this file +* except in compliance with the License. You may obtain a copy of +* the License at http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS +* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +* implied. See the License for the specific language governing +* rights and limitations under the License. +* +* The Original Code is the Mozilla browser. +* +* The Initial Developer of the Original Code is Netscape +* Communications Corporation. Portions created by Netscape are +* Copyright (C) 2002 Netscape Communications Corporation. All +* Rights Reserved. +* +* Contributor(s): +* william@dell.wisner.name (William Dell Wisner) +*/ + +#import "Navigation.h" +#include "nsIServiceManager.h" +#include "nsIPrefBranch.h" +#include "nsIPref.h" + +const int kDefaultExpireDays = 9; + +@implementation OrgMozillaNavigatorPreferenceNavigation + +- (void) dealloc +{ + NS_IF_RELEASE(mPrefService); +} + +- (id) initWithBundle:(NSBundle *) bundle +{ + self = [super initWithBundle:bundle] ; + + nsCOMPtr prefService ( do_GetService(NS_PREF_CONTRACTID) ); + NS_ASSERTION(prefService, "Could not get pref service, pref panel left uninitialized"); + mPrefService = prefService.get(); + NS_IF_ADDREF(mPrefService); + + return self; +} + +- (void)mainViewDidLoad +{ + if (!mPrefService) + return; + + PRBool boolPref; + PRInt32 intPref; + nsresult rv = mPrefService->GetIntPref("browser.startup.page", &intPref); + // Check for NS_FAILED because we don't want to falsely interpret + // a failure as a preference set to 0. + if (NS_SUCCEEDED(rv) && intPref == 0) + [checkboxNewWindowBlank setState:YES]; + + rv = mPrefService->GetIntPref("chimera.new_tab_page", &intPref); + if (NS_SUCCEEDED(rv) && intPref == 0) + [checkboxNewTabBlank setState:YES]; + + rv = mPrefService->GetIntPref("browser.history_expire_days", &intPref); + if (NS_FAILED(rv)) + intPref = kDefaultExpireDays; + [textFieldHistoryDays setIntValue:intPref]; + [sliderHistoryDays setIntValue:intPref]; + + rv = mPrefService->GetBoolPref("browser.tabs.opentabfor.middleclick", &boolPref); + if (NS_SUCCEEDED(rv) && boolPref == PR_TRUE) + [checkboxOpenTabs setState:YES]; +} + +- (IBAction)buttonSystemPreferencesClicked:(id)sender +{ + if ([[NSWorkspace sharedWorkspace] openFile:@"/System/Library/PreferencePanes/Internet.prefPane"] == NO) { + // XXXw. pop up a dialog warning that System Preferences couldn't be launched? + NSLog(@"Failed to launch System Preferences."); + } +} + +- (IBAction)checkboxClicked:(id)sender +{ + if (!mPrefService || sender != checkboxOpenTabs) + return; + + mPrefService->SetBoolPref("browser.tabs.opentabfor.middleclick", [sender state] ? PR_TRUE : PR_FALSE); +} + +- (IBAction)checkboxStartPageClicked:(id)sender +{ + if (!mPrefService) + return; + + char *prefName = NULL; + if (sender == checkboxNewTabBlank) + prefName = "chimera.new_tab_page"; + else if (sender == checkboxNewWindowBlank) + prefName = "browser.startup.page"; + else + return; + + if (prefName) + mPrefService->SetIntPref(prefName, [sender state] ? 0 : 1); +} + +- (IBAction)historyDaysModified:(id)sender +{ + if (!mPrefService) + return; + + if (sender == sliderHistoryDays) + [textFieldHistoryDays setIntValue:[sliderHistoryDays intValue]]; + else if (sender == textFieldHistoryDays) { + // If any non-numeric characters were entered make some noise and spit it out. + if (([[textFieldHistoryDays stringValue] rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]).length) { + PRInt32 intPref = kDefaultExpireDays; + mPrefService->GetIntPref("browser.history_expire_days", &intPref); + [textFieldHistoryDays setIntValue:intPref]; + NSBeep (); + return; + } else + [sliderHistoryDays setIntValue:[textFieldHistoryDays intValue]]; + } + + mPrefService->SetIntPref("browser.history_expire_days", [sender intValue]); +} + +@end diff --git a/camino/PreferencePanes/Navigation/Navigation.tiff b/camino/PreferencePanes/Navigation/Navigation.tiff new file mode 100644 index 0000000000000000000000000000000000000000..52b42df0d0ddd3d55385e7bb5f54ac69b0421c7d GIT binary patch literal 21680 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 literal 0 HcmV?d00001 diff --git a/chimera/PreferencePanes/Navigation/Navigation.h b/chimera/PreferencePanes/Navigation/Navigation.h new file mode 100644 index 000000000000..29dc68b6a281 --- /dev/null +++ b/chimera/PreferencePanes/Navigation/Navigation.h @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- +* +* The contents of this file are subject to the Mozilla Public +* License Version 1.1 (the "License"); you may not use this file +* except in compliance with the License. You may obtain a copy of +* the License at http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS +* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +* implied. See the License for the specific language governing +* rights and limitations under the License. +* +* The Original Code is the Mozilla browser. +* +* The Initial Developer of the Original Code is Netscape +* Communications Corporation. Portions created by Netscape are +* Copyright (C) 2002 Netscape Communications Corporation. All +* Rights Reserved. +* +* Contributor(s): +* william@dell.wisner.name (William Dell Wisner) +*/ + +#import +#import + +class nsIPref; + +@interface OrgMozillaNavigatorPreferenceNavigation : NSPreferencePane +{ + IBOutlet NSButton *buttonSystemPreferences; + IBOutlet NSButton *checkboxNewTabBlank; + IBOutlet NSButton *checkboxNewWindowBlank; + IBOutlet NSButton *checkboxOpenTabs; + IBOutlet NSSlider *sliderHistoryDays; + IBOutlet NSTextField *textFieldHistoryDays; + + nsIPref* mPrefService; // strong, but can't use a comptr here +} +- (IBAction)buttonSystemPreferencesClicked:(id)sender; +- (IBAction)checkboxClicked:(id)sender; +- (IBAction)checkboxStartPageClicked:(id)sender; +- (IBAction)historyDaysModified:(id)sender; +@end diff --git a/chimera/PreferencePanes/Navigation/Navigation.mm b/chimera/PreferencePanes/Navigation/Navigation.mm new file mode 100644 index 000000000000..923a3db8bcfe --- /dev/null +++ b/chimera/PreferencePanes/Navigation/Navigation.mm @@ -0,0 +1,133 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- +* +* The contents of this file are subject to the Mozilla Public +* License Version 1.1 (the "License"); you may not use this file +* except in compliance with the License. You may obtain a copy of +* the License at http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS +* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +* implied. See the License for the specific language governing +* rights and limitations under the License. +* +* The Original Code is the Mozilla browser. +* +* The Initial Developer of the Original Code is Netscape +* Communications Corporation. Portions created by Netscape are +* Copyright (C) 2002 Netscape Communications Corporation. All +* Rights Reserved. +* +* Contributor(s): +* william@dell.wisner.name (William Dell Wisner) +*/ + +#import "Navigation.h" +#include "nsIServiceManager.h" +#include "nsIPrefBranch.h" +#include "nsIPref.h" + +const int kDefaultExpireDays = 9; + +@implementation OrgMozillaNavigatorPreferenceNavigation + +- (void) dealloc +{ + NS_IF_RELEASE(mPrefService); +} + +- (id) initWithBundle:(NSBundle *) bundle +{ + self = [super initWithBundle:bundle] ; + + nsCOMPtr prefService ( do_GetService(NS_PREF_CONTRACTID) ); + NS_ASSERTION(prefService, "Could not get pref service, pref panel left uninitialized"); + mPrefService = prefService.get(); + NS_IF_ADDREF(mPrefService); + + return self; +} + +- (void)mainViewDidLoad +{ + if (!mPrefService) + return; + + PRBool boolPref; + PRInt32 intPref; + nsresult rv = mPrefService->GetIntPref("browser.startup.page", &intPref); + // Check for NS_FAILED because we don't want to falsely interpret + // a failure as a preference set to 0. + if (NS_SUCCEEDED(rv) && intPref == 0) + [checkboxNewWindowBlank setState:YES]; + + rv = mPrefService->GetIntPref("chimera.new_tab_page", &intPref); + if (NS_SUCCEEDED(rv) && intPref == 0) + [checkboxNewTabBlank setState:YES]; + + rv = mPrefService->GetIntPref("browser.history_expire_days", &intPref); + if (NS_FAILED(rv)) + intPref = kDefaultExpireDays; + [textFieldHistoryDays setIntValue:intPref]; + [sliderHistoryDays setIntValue:intPref]; + + rv = mPrefService->GetBoolPref("browser.tabs.opentabfor.middleclick", &boolPref); + if (NS_SUCCEEDED(rv) && boolPref == PR_TRUE) + [checkboxOpenTabs setState:YES]; +} + +- (IBAction)buttonSystemPreferencesClicked:(id)sender +{ + if ([[NSWorkspace sharedWorkspace] openFile:@"/System/Library/PreferencePanes/Internet.prefPane"] == NO) { + // XXXw. pop up a dialog warning that System Preferences couldn't be launched? + NSLog(@"Failed to launch System Preferences."); + } +} + +- (IBAction)checkboxClicked:(id)sender +{ + if (!mPrefService || sender != checkboxOpenTabs) + return; + + mPrefService->SetBoolPref("browser.tabs.opentabfor.middleclick", [sender state] ? PR_TRUE : PR_FALSE); +} + +- (IBAction)checkboxStartPageClicked:(id)sender +{ + if (!mPrefService) + return; + + char *prefName = NULL; + if (sender == checkboxNewTabBlank) + prefName = "chimera.new_tab_page"; + else if (sender == checkboxNewWindowBlank) + prefName = "browser.startup.page"; + else + return; + + if (prefName) + mPrefService->SetIntPref(prefName, [sender state] ? 0 : 1); +} + +- (IBAction)historyDaysModified:(id)sender +{ + if (!mPrefService) + return; + + if (sender == sliderHistoryDays) + [textFieldHistoryDays setIntValue:[sliderHistoryDays intValue]]; + else if (sender == textFieldHistoryDays) { + // If any non-numeric characters were entered make some noise and spit it out. + if (([[textFieldHistoryDays stringValue] rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]).length) { + PRInt32 intPref = kDefaultExpireDays; + mPrefService->GetIntPref("browser.history_expire_days", &intPref); + [textFieldHistoryDays setIntValue:intPref]; + NSBeep (); + return; + } else + [sliderHistoryDays setIntValue:[textFieldHistoryDays intValue]]; + } + + mPrefService->SetIntPref("browser.history_expire_days", [sender intValue]); +} + +@end diff --git a/chimera/PreferencePanes/Navigation/Navigation.tiff b/chimera/PreferencePanes/Navigation/Navigation.tiff new file mode 100644 index 0000000000000000000000000000000000000000..52b42df0d0ddd3d55385e7bb5f54ac69b0421c7d GIT binary patch literal 21680 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 literal 0 HcmV?d00001