home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * The contents of this file are subject to the Netscape Public License
- * Version 1.0 (the "NPL"); you may not use this file except in
- * compliance with the NPL. You may obtain a copy of the NPL at
- * http://www.mozilla.org/NPL/
- *
- * Software distributed under the NPL is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
- * for the specific language governing rights and limitations under the
- * NPL.
- *
- * The Initial Developer of this code under the NPL is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All Rights
- * Reserved.
- */
-
- #include "CValidEditField.h"
-
- //-----------------------------------
- CValidEditField::CValidEditField( LStream* s )
- //-----------------------------------
- : LGAEditField( s )
- , mValidationFunc( nil )
- {
- }
-
- //-----------------------------------
- Boolean CValidEditField::AllowTargetSwitch( LCommander* /*newTarget*/ )
- //-----------------------------------
- {
- if ( mValidationFunc )
- return (*mValidationFunc )(this);
- return true;
- }
-
- //-----------------------------------
- void CValidEditField::SetValidationFunction( ValidationFunc validationFunc )
- //-----------------------------------
- {
- mValidationFunc = validationFunc;
- }
-
- /********************************************************************************
- * Validation Functions
- ********************************************************************************/
- #include "uprefd.h" // for constants used below.
- #include "uerrmgr.h"
- #include "resgui.h"
-
-
- Boolean ConstrainEditField( LEditField* whichField, long minValue, long maxValue )
- {
- long value;
- Boolean allowSwitch = TRUE;
-
- value = whichField->GetValue();
- if ( value > maxValue || value < minValue )
- {
- allowSwitch = FALSE;
- if ( value > maxValue )
- whichField->SetValue( maxValue );
- else
- whichField->SetValue( minValue );
- }
- return allowSwitch;
- }
-
- Boolean ValidateCacheSize( CValidEditField* bufferSize )
- {
- Boolean allowSwitch = TRUE;
-
- allowSwitch = ConstrainEditField( bufferSize, BUFFER_MIN / BUFFER_SCALE,
- BUFFER_MAX / BUFFER_SCALE );
- if ( !allowSwitch )
- {
- UDesktop::Deactivate();
- ::CautionAlert( 1063, NULL );
- UDesktop::Activate();
- }
-
- return allowSwitch;
- }
-
- Boolean ValidateNumberNewsArticles( CValidEditField* articles )
- {
- Boolean allowSwitch = TRUE;
-
- allowSwitch = ConstrainEditField( articles, NEWS_ARTICLES_MIN, NEWS_ARTICLES_MAX );
- if ( !allowSwitch )
- {
- UDesktop::Deactivate();
- ::CautionAlert( 1066, NULL );
- UDesktop::Activate();
- }
- return allowSwitch;
- }
-
- Boolean ValidateDaysTilExpire( CValidEditField* daysTilExpire )
- {
- Boolean allowSwitch = TRUE;
-
- allowSwitch = ConstrainEditField( daysTilExpire, EXPIRE_MIN, EXPIRE_MAX );
- if ( !allowSwitch )
- {
- UDesktop::Deactivate();
- ::CautionAlert( 1064, NULL );
- UDesktop::Activate();
- }
-
- return allowSwitch;
- }
-
- Boolean ValidateNumberConnections( CValidEditField* connections )
- {
- Boolean allowSwitch = TRUE;
-
- allowSwitch = ConstrainEditField( connections, CONNECTIONS_MIN, CONNECTIONS_MAX );
- if ( !allowSwitch )
- {
- UDesktop::Deactivate();
- ::CautionAlert( 1062, NULL );
- UDesktop::Activate();
- }
-
- return allowSwitch;
- }
-
- Boolean ValidatePopID( CValidEditField* connections )
- {
- CStr255 value;
- connections->GetDescriptor(value);
- if (value.Pos("@"))
- // ÑÑÑ FIX ME l10n
- {
- ErrorManager::PlainAlert(POP_USERNAME_ONLY);
- return FALSE;
- }
- else
- return TRUE;
- }
-
- void TargetOnEditField( LEditField* editField, Boolean doTarget )
- {
- if ( doTarget )
- {
- editField->Enable();
- editField->Refresh();
- // pkc -- Call SetLatentSub instead of SwitchTarget
- if( editField->GetSuperCommander() )
- (editField->GetSuperCommander())->SetLatentSub(editField);
- editField->SelectAll();
- }
- else
- {
- editField->Disable();
- editField->Refresh();
- // pkc -- Call SetLatentSub instead of SwitchTarget
- if( editField->GetSuperCommander() )
- (editField->GetSuperCommander())->SetLatentSub(editField);
- }
- }
-
-