Aggiunti i Flags # trimma a destra e @ trimma a sinistra ai campi
git-svn-id: svn://10.65.10.50/trunk@2603 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
54e3d10ba0
commit
7bd4ee2f23
@ -1,3 +1,5 @@
|
|||||||
|
#define STRICT
|
||||||
|
#define XVT_INCL_NATIVE
|
||||||
#include <xvt.h>
|
#include <xvt.h>
|
||||||
|
|
||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
@ -17,12 +19,34 @@
|
|||||||
#include <xvtility.h>
|
#include <xvtility.h>
|
||||||
#include <text.h>
|
#include <text.h>
|
||||||
|
|
||||||
#if XVT_OS == XVT_OS_WIN
|
|
||||||
#include <windows.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
HIDDEN TString256 fpark;
|
HIDDEN TString256 fpark;
|
||||||
|
|
||||||
|
// @doc INTERNAL
|
||||||
|
|
||||||
|
// @mfunc Elimina gli spazi iniziali e/o finali da un stringa
|
||||||
|
|
||||||
|
HIDDEN void smart_trim(
|
||||||
|
TString & s, // @parm Stringa
|
||||||
|
byte mode // @parm operazione da effettuare ( 0 = nessuna operazione
|
||||||
|
// 1 = trimma a sinistra
|
||||||
|
// 2 = trimma a destra
|
||||||
|
// 3 = trimma da entrambi i lati
|
||||||
|
)
|
||||||
|
|
||||||
|
{
|
||||||
|
switch (mode)
|
||||||
|
{
|
||||||
|
case 1 :
|
||||||
|
s.ltrim(); break;
|
||||||
|
case 2 :
|
||||||
|
s.rtrim(); break;
|
||||||
|
case 3 :
|
||||||
|
s.trim(); break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Field Flags
|
// Field Flags
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -39,7 +63,7 @@ TMask_field::TField_Flags::TField_Flags()
|
|||||||
roman = exchange = FALSE;
|
roman = exchange = FALSE;
|
||||||
firm = ghost = FALSE;
|
firm = ghost = FALSE;
|
||||||
password = FALSE;
|
password = FALSE;
|
||||||
trim = TRUE;
|
trim = 3;
|
||||||
pipeallowed = FALSE;
|
pipeallowed = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,9 +73,13 @@ char TMask_field::TField_Flags::update(const char* f)
|
|||||||
for (const char* s = f; *s; s++)
|
for (const char* s = f; *s; s++)
|
||||||
switch(toupper(*s))
|
switch(toupper(*s))
|
||||||
{
|
{
|
||||||
|
case '#':
|
||||||
|
trim = 2; break;
|
||||||
|
case '@':
|
||||||
|
trim = 1; break;
|
||||||
case ' ':
|
case ' ':
|
||||||
case '_':
|
case '_':
|
||||||
trim = FALSE; break;
|
trim = 0; break;
|
||||||
case '*':
|
case '*':
|
||||||
password = TRUE; break;
|
password = TRUE; break;
|
||||||
case 'A':
|
case 'A':
|
||||||
@ -353,7 +381,7 @@ int TMask_field::create_prompt(
|
|||||||
{
|
{
|
||||||
const long flags = default_flags() & (~CTL_FLAG_DISABLED); // Static controls shouldn't be grayed
|
const long flags = default_flags() & (~CTL_FLAG_DISABLED); // Static controls shouldn't be grayed
|
||||||
|
|
||||||
#if XVT_OS == XVT_OS_WIN
|
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT
|
||||||
const int k = _prompt.find('~');
|
const int k = _prompt.find('~');
|
||||||
if (k >= 0) _prompt[k] = '&';
|
if (k >= 0) _prompt[k] = '&';
|
||||||
#endif
|
#endif
|
||||||
@ -523,7 +551,7 @@ const char* TMask_field::picture_data(
|
|||||||
if (video)
|
if (video)
|
||||||
{
|
{
|
||||||
fpark = data;
|
fpark = data;
|
||||||
fpark.trim();
|
smart_trim(fpark, (byte) _flags.trim);
|
||||||
if (_flags.uppercase)
|
if (_flags.uppercase)
|
||||||
fpark.upper();
|
fpark.upper();
|
||||||
return fpark;
|
return fpark;
|
||||||
@ -600,8 +628,8 @@ TString& TMask_field::get() const
|
|||||||
gpark = get_window_data();
|
gpark = get_window_data();
|
||||||
else
|
else
|
||||||
gpark = get_field_data();
|
gpark = get_field_data();
|
||||||
|
|
||||||
if (_flags.trim) gpark.trim();
|
smart_trim(gpark,(byte) _flags.trim);
|
||||||
return gpark;
|
return gpark;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -932,7 +960,7 @@ bool TMask_field::on_key(KEY key)
|
|||||||
send_key(key, 0);
|
send_key(key, 0);
|
||||||
break;
|
break;
|
||||||
case K_F1:
|
case K_F1:
|
||||||
#if XVT_OS == XVT_OS_WIN
|
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT
|
||||||
if (fexist("prassi.hlp"))
|
if (fexist("prassi.hlp"))
|
||||||
{
|
{
|
||||||
struct MULTIGUY
|
struct MULTIGUY
|
||||||
@ -2127,7 +2155,8 @@ void TEdit_field::create(WINDOW parent)
|
|||||||
|
|
||||||
_x += len;
|
_x += len;
|
||||||
|
|
||||||
#if XVTWS == WMWS
|
|
||||||
|
#if XVT_OS == XVT_OS_SCOUNIX
|
||||||
const int delta = 2;
|
const int delta = 2;
|
||||||
#else
|
#else
|
||||||
const int delta = 1;
|
const int delta = 1;
|
||||||
@ -2135,7 +2164,7 @@ void TEdit_field::create(WINDOW parent)
|
|||||||
|
|
||||||
wincreate(WC_EDIT, _width+delta, 1, _str, parent, bandiere);
|
wincreate(WC_EDIT, _width+delta, 1, _str, parent, bandiere);
|
||||||
|
|
||||||
#if XVT_OS == XVT_OS_WIN
|
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT
|
||||||
HWND hwnd = (HWND)xvt_vobj_get_attr(win(), ATTR_NATIVE_WINDOW);
|
HWND hwnd = (HWND)xvt_vobj_get_attr(win(), ATTR_NATIVE_WINDOW);
|
||||||
SendMessage(hwnd, EM_LIMITTEXT, _size, 0L); // Limita il testo
|
SendMessage(hwnd, EM_LIMITTEXT, _size, 0L); // Limita il testo
|
||||||
#endif
|
#endif
|
||||||
@ -2191,8 +2220,8 @@ const char* TEdit_field::get_field_data() const
|
|||||||
|
|
||||||
const char* TEdit_field::format(const char* d) const
|
const char* TEdit_field::format(const char* d) const
|
||||||
{
|
{
|
||||||
fpark = d;
|
fpark = d;
|
||||||
if (_flags.trim) fpark.trim();
|
smart_trim(fpark, (byte) _flags.trim);
|
||||||
|
|
||||||
if (fpark.not_empty())
|
if (fpark.not_empty())
|
||||||
{
|
{
|
||||||
@ -2235,7 +2264,8 @@ const char* TEdit_field::format(const char* d) const
|
|||||||
const char* TEdit_field::picture_data(const char* data, bool video) const
|
const char* TEdit_field::picture_data(const char* data, bool video) const
|
||||||
{
|
{
|
||||||
fpark = video ? data : format(data);
|
fpark = video ? data : format(data);
|
||||||
if (_flags.trim) fpark.trim();
|
smart_trim(fpark, (byte) _flags.trim);
|
||||||
|
|
||||||
return fpark;
|
return fpark;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3403,7 +3433,7 @@ bool TList_field::on_key(KEY key)
|
|||||||
CHECK(index >= 0, "List with no selection!");
|
CHECK(index >= 0, "List with no selection!");
|
||||||
int newindex = -1;
|
int newindex = -1;
|
||||||
|
|
||||||
#if XVTWS == WMWS
|
#if XVT_OS == XVT_OS_SCOUNIX
|
||||||
if (key >= 'A' && key <= 'z')
|
if (key >= 'A' && key <= 'z')
|
||||||
{
|
{
|
||||||
for (int i = index+1; i != index; i++)
|
for (int i = index+1; i != index; i++)
|
||||||
@ -3452,7 +3482,7 @@ bool TList_field::on_key(KEY key)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
#if XVTWS == VMWS
|
#if XVT_OS == XVT_OS_SCOUNIX
|
||||||
if (key == K_TAB && class_id() == CLASS_LIST_FIELD)
|
if (key == K_TAB && class_id() == CLASS_LIST_FIELD)
|
||||||
dispacth_e_char(win(), K_F9);
|
dispacth_e_char(win(), K_F9);
|
||||||
#endif
|
#endif
|
||||||
@ -3916,7 +3946,7 @@ void TZoom_field::create(WINDOW parent)
|
|||||||
{
|
{
|
||||||
TEdit_field::create( parent );
|
TEdit_field::create( parent );
|
||||||
|
|
||||||
#if XVTWS == WMWS
|
#if XVT_OS == XVT_OS_SCOUNIX
|
||||||
int delta = 2;
|
int delta = 2;
|
||||||
#else
|
#else
|
||||||
int delta = 1;
|
int delta = 1;
|
||||||
|
@ -121,11 +121,12 @@ protected:
|
|||||||
bool roman : 1; // Is a Roman number ?
|
bool roman : 1; // Is a Roman number ?
|
||||||
bool shown : 1; // Is visible
|
bool shown : 1; // Is visible
|
||||||
bool show_default : 1;
|
bool show_default : 1;
|
||||||
bool trim : 1; // Trim the string
|
byte trim : 2; // Trim the string
|
||||||
bool uppercase : 1;
|
bool uppercase : 1;
|
||||||
bool exchange : 1; // Value exchange
|
bool exchange : 1; // Value exchange
|
||||||
bool zerofilled : 1;
|
bool zerofilled : 1;
|
||||||
bool pipeallowed : 1;
|
bool pipeallowed : 1;
|
||||||
|
|
||||||
|
|
||||||
TField_Flags();
|
TField_Flags();
|
||||||
char update(const char*);
|
char update(const char*);
|
||||||
@ -395,7 +396,7 @@ public:
|
|||||||
|
|
||||||
// @struct TField_Flags | Flag indicante il settaggio del campo
|
// @struct TField_Flags | Flag indicante il settaggio del campo
|
||||||
// @comm ATTENZIONE: Questa struttura e' definita ed utilizzata unicamente nella classe
|
// @comm ATTENZIONE: Questa struttura e' definita ed utilizzata unicamente nella classe
|
||||||
// <c TMask_field>
|
// <c TMask_field>
|
||||||
// @field bool | automagic: 1 | Indica se il campo e' automagic
|
// @field bool | automagic: 1 | Indica se il campo e' automagic
|
||||||
// @field bool | dirty: 2 | Indica se il campo e' stato modificato
|
// @field bool | dirty: 2 | Indica se il campo e' stato modificato
|
||||||
// @field bool | enabled: 1 | Indica se il campo e' editabile
|
// @field bool | enabled: 1 | Indica se il campo e' editabile
|
||||||
|
Loading…
x
Reference in New Issue
Block a user