//
//  PRCTraceEdges.m
//  PRICE
//
//  Created by Riccardo Mottola on Wed Jan 14 2004.
//  Copyright (c) 2004 Carduus. All rights reserved.
//
// This program is free software; you can redistribute it and/or modify it under the terms of the version 2 of the GNU General Public License as published by the Free Software Foundation.
// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.


#import "PRCTraceEdges.h"
#import "MyDocument.h"


@implementation PRCTraceEdges

- (IBAction)showEdges:(id)sender
{
    if (!edgeWindow)
        [NSBundle loadNibNamed:@"TraceEdges" owner:self];
    [edgeWindow makeKeyAndOrderFront:nil];

    if ([thresholdCheck state] == NSOnState)
    {
        [thresholdSlider setEnabled:YES];
        [thresholdField setEnabled:YES];
        thresholdOn = YES;
        if ([[filterType selectedItem] tag] >= 7)
            [zeroCrossCheck setEnabled:YES];
    } else
    {
        [thresholdSlider setEnabled:NO];
        [thresholdField setEnabled:NO];
        thresholdOn = NO;
        [zeroCrossCheck setEnabled:NO];
    }
    thresholdLevel = [thresholdField floatValue];
}

- (IBAction)edgeOK:(id)sender
{
    BOOL zeroCrossOn;
    
    if ([zeroCrossCheck state] == NSOnState)
        zeroCrossOn = YES;
    else
        zeroCrossOn = NO;
        
    if ([[filterType selectedItem] tag] < 7)
    {
        [zeroCrossCheck setState:NO];
        zeroCrossOn = NO;
    }
        
    [[[NSDocumentController sharedDocumentController] currentDocument] makeTraceEdges  :[[filterType selectedItem] tag]:thresholdOn :thresholdLevel :zeroCrossOn];
    
    if ([[NSApp delegate] prefClosePanels])
        [edgeWindow performClose:nil];
}

- (IBAction)edgeCancel:(id)sender
{
    [edgeWindow performClose:nil];
}

- (IBAction)thresholdToggle:(id)sender
{
    thresholdOn = !thresholdOn;
    if (thresholdOn)
    {
        [thresholdSlider setEnabled:YES];
        [thresholdField setEnabled:YES];
        if ([[filterType selectedItem] tag] >= 7)
            [zeroCrossCheck setEnabled:YES];
    } else
    {
        [thresholdSlider setEnabled:NO];
        [thresholdField setEnabled:NO];
        [zeroCrossCheck setEnabled:NO];
    }
}

- (IBAction)changeThreshold:(id)sender
{
    thresholdLevel = [sender floatValue];
    [thresholdField setFloatValue:thresholdLevel];
}


- (IBAction)filterTypeToggle:(id)sender
{
    if ([[filterType selectedItem] tag] >= 7)
        [zeroCrossCheck setEnabled:YES];
    else
        [zeroCrossCheck setEnabled:NO];
}

@end
