зеркало из https://github.com/mozilla/gecko-dev.git
165 строки
4.0 KiB
C++
165 строки
4.0 KiB
C++
/* -*- 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("@"))
|
||
// <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);
|
||
}
|
||
}
|
||
|