1998-03-28 05:44:41 +03:00
|
|
|
|
/* -*- 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 )
|
|
|
|
|
//-----------------------------------
|
1998-06-03 01:00:07 +04:00
|
|
|
|
: LGAEditField( s )
|
1998-03-28 05:44:41 +03:00
|
|
|
|
, 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("@"))
|
|
|
|
|
// <20><><EFBFBD> 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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|