dev.stuconnolly.com / svn / safaritabs

  1. /*
  2.  *  $Id: STPreferences.m 198 2010-01-06 23:05:30Z stuart $
  3.  *
  4.  *  SafariTabs
  5.  *  http://stuconnolly.com/projects/safaritabs/
  6.  *
  7.  *  Copyright (c) 2010 Stuart Connolly. All rights reserved.
  8.  *
  9.  *  This program is free software: you can redistribute it and/or modify
  10.  *  it under the terms of the GNU General Public License as published by
  11.  *  the Free Software Foundation, either version 3 of the License, or
  12.  *  (at your option) any later version.
  13.  *
  14.  *  This program is distributed in the hope that it will be useful,
  15.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17.  *  GNU General Public License for more details.
  18.  *
  19.  *  You should have received a copy of the GNU General Public License
  20.  *  along with this program. If not, see <http://www.gnu.org/licenses/>.
  21.  */
  22.  
  23. #import "STPreferences.h"
  24. #import "STPreferenceController.h"
  25.  
  26. #import "STUtilities.h"
  27. #import "STConstants.h"
  28.  
  29. static BOOL added = NO;
  30.  
  31. @interface STPreferences (DeclaredAPI)
  32.  
  33. - (void)safari_setupUI;
  34. - (void)addPreferenceNamed:(NSString *)name owner:(id)owner;
  35.  
  36. @end
  37.  
  38. @implementation STPreferences
  39.  
  40. /*!
  41.  * This is the re-implementation of Safari's swizzled _setupUI: method, which allows us to add our own custom
  42.  * preference pane to Safari's preferences window.
  43.  */
  44. - (void)st_setupUI
  45. {                  
  46.     if ((self) && (!added)) {
  47.         added = YES;
  48.         [self addPreferenceNamed:@"SafariTabs" owner:[STPreferenceController sharedInstance]];
  49.     }
  50.    
  51.     [self safari_setupUI];
  52. }
  53.  
  54. @end
  55.