// Copyright (c) 2002, Peter Bentley // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // // The name Peter Bentley may not be used to endorse or promote // products derived from this software without specific prior // written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // #import "OmdDebugController.h" #import "PreferenceController.h" CVSID( "$Id: OmdDebugController.m,v 1.2 2003/04/08 19:15:36 pete Exp $" ); @implementation OmdDebugController - (id) init { self = [super initWithWindowNibName: @"Debug"]; [self prefsChanged: nil]; // Read level from prefs [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(prefsChanged:) name: OmdPrefsChangedNotification object: OmdDebugLevelKey]; return self; } - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; [super dealloc]; } - (void) windowDidLoad { slog( LOG_DEBUG, "Debug NIB loaded" ); } - (int) getLevel { return level; } - (void) setLevel: (int) l { slog( LOG_INFO, "New debug output level %d", l ); level = l; } - (void) prefsChanged: (NSNotification *) notification { // NSLog( @"Debug level prefs changed: %@", [notification object] ); [self setLevel: [[NSUserDefaults standardUserDefaults] integerForKey: OmdDebugLevelKey]]; } - (void) addLine: (NSString *) str atLevel: (int) l { if( l < level ) { return; } [self addLine: str]; } - (void) addLine: (NSString *) str { NSTextStorage *store = [textView textStorage]; [textView replaceCharactersInRange: NSMakeRange( [store length], 0) withString: str]; [textView replaceCharactersInRange: NSMakeRange( [store length], 0) withString: @"\n"]; [textView scrollRangeToVisible: NSMakeRange([store length], 0) ]; [textView displayIfNeeded]; } @end