Aggiunto menu alle TWindow e ampliati i TForm
git-svn-id: svn://10.65.10.50/trunk@810 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
6256d39aa6
commit
d100bb385b
@ -65,13 +65,6 @@ BEGIN
|
|||||||
HELP "Dimensioni del carattere di stampa"
|
HELP "Dimensioni del carattere di stampa"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN MSK_1_ISGRAPHICS
|
|
||||||
BEGIN
|
|
||||||
PROMPT 4 8 "Stampa elementi grafici"
|
|
||||||
HELP "Indicare se stampare elementi grafici (linee, box, logo) quando la stampante lo consente"
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
LIST MSK_1_LINES 3
|
LIST MSK_1_LINES 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 52 6 "Linee/Inch "
|
PROMPT 52 6 "Linee/Inch "
|
||||||
@ -104,7 +97,13 @@ BEGIN
|
|||||||
PROMPT 4 8 "Salva configurazione"
|
PROMPT 4 8 "Salva configurazione"
|
||||||
HELP "Indicare se stampare elementi grafici (linee, box, logo) quando la stampante lo consente"
|
HELP "Indicare se stampare elementi grafici (linee, box, logo) quando la stampante lo consente"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BOOLEAN MSK_1_ISGRAPHICS
|
||||||
|
BEGIN
|
||||||
|
PROMPT 4 9 "Stampa elementi grafici"
|
||||||
|
HELP "Indicare se stampare elementi grafici (linee, box, logo) quando la stampante lo consente"
|
||||||
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 74 4
|
GROUPBOX DLG_NULL 74 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 9 ""
|
PROMPT 1 9 ""
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
#ifndef __COLORS_H
|
#ifndef __COLORS_H
|
||||||
#define __COLORS_H
|
#define __COLORS_H
|
||||||
|
|
||||||
|
#ifndef XVT_INCL
|
||||||
|
#include <xvt.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern COLOR MASK_COLOR;
|
||||||
extern COLOR MASK_BACK_COLOR;
|
extern COLOR MASK_BACK_COLOR;
|
||||||
extern COLOR NORMAL_COLOR;
|
extern COLOR NORMAL_COLOR;
|
||||||
extern COLOR NORMAL_BACK_COLOR;
|
extern COLOR NORMAL_BACK_COLOR;
|
||||||
@ -9,5 +14,8 @@ extern COLOR DISABLED_BACK_COLOR;
|
|||||||
extern COLOR FOCUS_COLOR;
|
extern COLOR FOCUS_COLOR;
|
||||||
extern COLOR FOCUS_BACK_COLOR;
|
extern COLOR FOCUS_BACK_COLOR;
|
||||||
|
|
||||||
|
const COLOR COLOR_DKCYAN = MAKE_COLOR(0,128,128);
|
||||||
|
const COLOR COLOR_DKYELLOW = MAKE_COLOR(128,128, 0);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -118,34 +118,51 @@ bool TConfig::exist(const char* var, int index)
|
|||||||
return _data.is_key(vvar);
|
return _data.is_key(vvar);
|
||||||
}
|
}
|
||||||
|
|
||||||
TString& TConfig::get(const char* var, const char* section, int index)
|
TString& TConfig::get(const char* var, const char* section, int index, const char* def)
|
||||||
{
|
{
|
||||||
// ritorna valore di variabile nella sezione corrente o in
|
// ritorna valore di variabile nella sezione corrente o in
|
||||||
// quella specificata
|
// quella specificata
|
||||||
static TFixed_string s(__tmp_string, 256);
|
static TFixed_string s(__tmp_string, 256);
|
||||||
TString vvar(var); if (index != -1) vvar << '(' << index << ')';
|
TString80 vvar(var); if (index != -1) vvar << '(' << index << ')';
|
||||||
|
|
||||||
_check_paragraph(section);
|
_check_paragraph(section);
|
||||||
|
|
||||||
if (_data.is_key(vvar))
|
if (_data.is_key(vvar))
|
||||||
s = (TString&)_data[vvar];
|
s = (TString&)_data[vvar];
|
||||||
else
|
else
|
||||||
s = "";
|
s = def;
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
long TConfig::get_long(const char* var, const char* section, int index)
|
long TConfig::get_long(const char* var, const char* section, int index, long def)
|
||||||
{
|
{
|
||||||
return atol(get(var,section,index));
|
const char* n = get(var,section,index);
|
||||||
|
return *n ? atol(n) : def;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TConfig::get_bool(const char* var, const char* section, int index)
|
bool TConfig::get_bool(const char* var, const char* section, int index, bool def)
|
||||||
{
|
{
|
||||||
const TString& s = get(var, section, index).upper();
|
if (def) strcpy(__tmp_string, "X");
|
||||||
|
else *__tmp_string = '\0';
|
||||||
|
|
||||||
|
const TString& s = get(var, section, index, __tmp_string).upper();
|
||||||
return s != "" && (s == "X" || s == "ON" || s == "YES" || s == "OK" || s == "TRUE");
|
return s != "" && (s == "X" || s == "ON" || s == "YES" || s == "OK" || s == "TRUE");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
COLOR TConfig::get_color(const char* var, const char* section, int index, COLOR def)
|
||||||
|
{
|
||||||
|
const char* c = get(var, section, index);
|
||||||
|
if (*c)
|
||||||
|
{
|
||||||
|
TToken_string s(c, ',');
|
||||||
|
const int r = atoi(s.get());
|
||||||
|
const int g = atoi(s.get());
|
||||||
|
const int b = atoi(s.get());
|
||||||
|
def = MAKE_COLOR(r, g, b);
|
||||||
|
}
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
|
||||||
bool TConfig::set(const char* var, const char* value, const char* section,
|
bool TConfig::set(const char* var, const char* value, const char* section,
|
||||||
bool force, int index)
|
bool force, int index)
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
#ifndef __CONFIG_H
|
#ifndef __CONFIG_H
|
||||||
#define __CONFIG_H
|
#define __CONFIG_H
|
||||||
|
|
||||||
|
#ifndef XVT_INCL
|
||||||
|
#include <xvt.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef __ASSOC_H
|
#ifndef __ASSOC_H
|
||||||
#include <assoc.h>
|
#include <assoc.h>
|
||||||
@ -40,13 +44,15 @@ public:
|
|||||||
// quella specificata; se non c'e' ritorna ""
|
// quella specificata; se non c'e' ritorna ""
|
||||||
// passando index >=0 viene appeso al nome variabile per
|
// passando index >=0 viene appeso al nome variabile per
|
||||||
// implementare un mezzo cazzo di array
|
// implementare un mezzo cazzo di array
|
||||||
TString& get(const char* var, const char* section = NULL, int index = -1);
|
TString& get(const char* var, const char* section = NULL, int index = -1, const char* def = "");
|
||||||
|
|
||||||
// questa ritorna 0 se non c'e', il che e' un po' sfigotto
|
// questa ritorna 0 se non c'e', il che e' un po' sfigotto
|
||||||
long get_long(const char* var, const char* section = NULL, int index = -1);
|
long get_long(const char* var, const char* section = NULL, int index = -1, long def = 0L);
|
||||||
|
|
||||||
// questa ritorna FALSE se non c'e', il che e' ancora piu' sfigotto
|
// questa ritorna FALSE se non c'e', il che e' ancora piu' sfigotto
|
||||||
bool get_bool(const char* var, const char* section = NULL, int index = -1);
|
bool get_bool(const char* var, const char* section = NULL, int index = -1, bool def = FALSE);
|
||||||
|
|
||||||
|
COLOR get_color(const char* var, const char* section = NULL, int index = -1, COLOR def = 0);
|
||||||
|
|
||||||
// setta variabile nella sezione corrente o specificata
|
// setta variabile nella sezione corrente o specificata
|
||||||
// se force == TRUE crea la sezione/variabile se non esiste; altrimenti
|
// se force == TRUE crea la sezione/variabile se non esiste; altrimenti
|
||||||
|
2170
include/controls.cpp
2170
include/controls.cpp
File diff suppressed because it is too large
Load Diff
@ -60,8 +60,9 @@
|
|||||||
CHECK_FIELD esegue il check su di un altro campo
|
CHECK_FIELD esegue il check su di un altro campo
|
||||||
campo
|
campo
|
||||||
FILENAME_FUNC controlla se la stringa e' un nome di file
|
FILENAME_FUNC controlla se la stringa e' un nome di file
|
||||||
ZEROFILL_FUNC riempie di zeri i numeri fino a n caratteri
|
ZEROFILL_FUNC riempie di zeri i numeri fino a n caratteri
|
||||||
n.ro di caratteri
|
n.ro di caratteri
|
||||||
|
ALPHA_FUNC accetta solo caratteri alfabetici
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define EXPR_FUNC 0 2
|
#define EXPR_FUNC 0 2
|
||||||
@ -84,6 +85,7 @@
|
|||||||
#define CHECK_FIELD 17 1
|
#define CHECK_FIELD 17 1
|
||||||
#define FILENAME_FUNC 18 0
|
#define FILENAME_FUNC 18 0
|
||||||
#define ZEROFILL_FUNC 19 1
|
#define ZEROFILL_FUNC 19 1
|
||||||
|
#define ALPHA_FUNC 20 0
|
||||||
|
|
||||||
#define VALEXPR VALIDATE EXPR_FUNC
|
#define VALEXPR VALIDATE EXPR_FUNC
|
||||||
#define NUM_EXPR VALEXPR 0
|
#define NUM_EXPR VALEXPR 0
|
||||||
|
@ -152,6 +152,7 @@ public:
|
|||||||
void disable() { enable(FALSE); }
|
void disable() { enable(FALSE); }
|
||||||
|
|
||||||
TForm_item(TPrint_section* section);
|
TForm_item(TPrint_section* section);
|
||||||
|
virtual ~TForm_item() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -187,12 +188,11 @@ void TForm_item::print_on(ostream& out) const
|
|||||||
|
|
||||||
void TForm_item::print_body(ostream& out) const
|
void TForm_item::print_body(ostream& out) const
|
||||||
{
|
{
|
||||||
|
out << " KEY \"" << _desc << "\"\n";
|
||||||
|
|
||||||
if (_y >= 0)
|
if (_y >= 0)
|
||||||
out << " PROMPT " << _x << ' ' << _y << " \"" << _prompt << "\"\n";
|
out << " PROMPT " << _x << ' ' << _y << " \"" << _prompt << "\"\n";
|
||||||
|
|
||||||
if (_desc.not_empty())
|
|
||||||
out << " KEY \"" << _desc << "\"\n";
|
|
||||||
|
|
||||||
if (_group.ones())
|
if (_group.ones())
|
||||||
out << " GROUP " << _group << "\n";
|
out << " GROUP " << _group << "\n";
|
||||||
|
|
||||||
@ -466,6 +466,7 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
TForm_string(TPrint_section* section) : TForm_item(section) {}
|
TForm_string(TPrint_section* section) : TForm_item(section) {}
|
||||||
|
virtual ~TForm_string() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TForm_string::parse_item(TScanner& scanner)
|
bool TForm_string::parse_item(TScanner& scanner)
|
||||||
@ -597,6 +598,7 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
TForm_number(TPrint_section* section) : TForm_string(section) {}
|
TForm_number(TPrint_section* section) : TForm_string(section) {}
|
||||||
|
virtual ~TForm_number() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -634,6 +636,7 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
TForm_date(TPrint_section* section);
|
TForm_date(TPrint_section* section);
|
||||||
|
virtual ~TForm_date() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -678,6 +681,7 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
TForm_list(TPrint_section* section);
|
TForm_list(TPrint_section* section);
|
||||||
|
virtual ~TForm_list() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
TForm_list::TForm_list(TPrint_section* section)
|
TForm_list::TForm_list(TPrint_section* section)
|
||||||
@ -792,6 +796,21 @@ bool TForm_list::update()
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TForm_group
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TForm_group : public TForm_item
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual const char* class_name() const { return "GRUPPO"; }
|
||||||
|
virtual bool parse_head(TScanner&) { return TRUE; }
|
||||||
|
virtual bool update() { return TRUE; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
TForm_group(TPrint_section* section) : TForm_item(section) {};
|
||||||
|
virtual ~TForm_group() {}
|
||||||
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TPrint_section
|
// TPrint_section
|
||||||
@ -840,6 +859,8 @@ TForm_item* TPrint_section::parse_item(const TString& s)
|
|||||||
return new TForm_date(this);
|
return new TForm_date(this);
|
||||||
if (s == "LI")
|
if (s == "LI")
|
||||||
return new TForm_list(this);
|
return new TForm_list(this);
|
||||||
|
if (s == "GR")
|
||||||
|
return new TForm_group(this);
|
||||||
|
|
||||||
CHECKS(NULL, "Campo di stampa sconosciuto: ", (const char*)s);
|
CHECKS(NULL, "Campo di stampa sconosciuto: ", (const char*)s);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -119,11 +119,7 @@ void TMask::handler(WINDOW win, EVENT* ep)
|
|||||||
{
|
{
|
||||||
clear_window(win, MASK_BACK_COLOR);
|
clear_window(win, MASK_BACK_COLOR);
|
||||||
RCT r; get_client_rect(win, &r);
|
RCT r; get_client_rect(win, &r);
|
||||||
#ifdef __CTL3D__
|
xvt_draw_rect(win, r, MASK_COLOR, COLOR_GRAY, 1);
|
||||||
xvt_draw_rect(win, r, COLOR_WHITE, COLOR_GRAY, 1);
|
|
||||||
#else
|
|
||||||
xvt_draw_rect(win, r, COLOR_CYAN, COLOR_GRAY, 1);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else clear_window(win, COLOR_GRAY);
|
else clear_window(win, COLOR_GRAY);
|
||||||
#else
|
#else
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// $Id: maskfld.cpp,v 1.65 1994-12-28 11:01:21 guy Exp $
|
// $Id: maskfld.cpp,v 1.66 1995-01-02 09:32:42 guy Exp $
|
||||||
#include <xvt.h>
|
#include <xvt.h>
|
||||||
|
|
||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
@ -532,7 +532,7 @@ HIDDEN void modify_list(bool add, TMask_field& f, TToken_string& msg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Certified 90%
|
// Certified 99%
|
||||||
HIDDEN const char* copy_value(TToken_string& msg, const TString& val)
|
HIDDEN const char* copy_value(TToken_string& msg, const TString& val)
|
||||||
{
|
{
|
||||||
int from = msg.get_int()-1;
|
int from = msg.get_int()-1;
|
||||||
@ -542,6 +542,30 @@ HIDDEN const char* copy_value(TToken_string& msg, const TString& val)
|
|||||||
return val.sub(from, to);
|
return val.sub(from, to);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HIDDEN void run_app(const TMask& mask, TToken_string& msg)
|
||||||
|
{
|
||||||
|
TFilename a(msg.get(1));
|
||||||
|
|
||||||
|
for (const char* m = msg.get(); m; m = msg.get())
|
||||||
|
{
|
||||||
|
a << ' ';
|
||||||
|
for (const char* f = m; f; f++)
|
||||||
|
{
|
||||||
|
if (*f == '#')
|
||||||
|
{
|
||||||
|
const int id = atoi(++f);
|
||||||
|
a << mask.get(id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
a << *f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TExternal_app app(a);
|
||||||
|
app.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void TMask_field::send_key(KEY k, short to)
|
void TMask_field::send_key(KEY k, short to)
|
||||||
{
|
{
|
||||||
mask().send_key(k, to, this);
|
mask().send_key(k, to, this);
|
||||||
@ -551,7 +575,7 @@ void TMask_field::send_key(KEY k, short to)
|
|||||||
// Certified 90%
|
// Certified 90%
|
||||||
bool TMask_field::do_message(int num)
|
bool TMask_field::do_message(int num)
|
||||||
{
|
{
|
||||||
const int MAX_CMD = 14;
|
const int MAX_CMD = 15;
|
||||||
static const char* commands[MAX_CMD] =
|
static const char* commands[MAX_CMD] =
|
||||||
{
|
{
|
||||||
"ADD", // 0
|
"ADD", // 0
|
||||||
@ -566,8 +590,9 @@ bool TMask_field::do_message(int num)
|
|||||||
"HIDE", // 9
|
"HIDE", // 9
|
||||||
"PUSH", // 10
|
"PUSH", // 10
|
||||||
"RESET", // 11
|
"RESET", // 11
|
||||||
"SHOW", // 12
|
"RU", // 12
|
||||||
"UNDO" // 13
|
"SHOW", // 13
|
||||||
|
"UNDO" // 14
|
||||||
};
|
};
|
||||||
|
|
||||||
TToken_string* message = (TToken_string*)_message.objptr(num);
|
TToken_string* message = (TToken_string*)_message.objptr(num);
|
||||||
@ -607,7 +632,13 @@ bool TMask_field::do_message(int num)
|
|||||||
{
|
{
|
||||||
mask().stop_run(atoi(dlg));
|
mask().stop_run(atoi(dlg));
|
||||||
continue;
|
continue;
|
||||||
}
|
} else
|
||||||
|
if (cmd == 12)
|
||||||
|
{
|
||||||
|
run_app(mask(), msg);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
short fld = (dlg && dlg[0] > ' ') ? atodlg(dlg) : 0;
|
short fld = (dlg && dlg[0] > ' ') ? atodlg(dlg) : 0;
|
||||||
bool broadcast = dlg && strchr(dlg, '@');
|
bool broadcast = dlg && strchr(dlg, '@');
|
||||||
@ -636,9 +667,9 @@ bool TMask_field::do_message(int num)
|
|||||||
key = K_SPACE; break;
|
key = K_SPACE; break;
|
||||||
case 11:
|
case 11:
|
||||||
key = K_F2; break;
|
key = K_F2; break;
|
||||||
case 12:
|
|
||||||
key = 11000+'s'; break;
|
|
||||||
case 13:
|
case 13:
|
||||||
|
key = 11000+'s'; break;
|
||||||
|
case 14:
|
||||||
key = K_F3; break;
|
key = K_F3; break;
|
||||||
default:
|
default:
|
||||||
key = atoi(value);
|
key = atoi(value);
|
||||||
@ -774,6 +805,7 @@ bool TMask_field::on_key(KEY key)
|
|||||||
message_box(_help);
|
message_box(_help);
|
||||||
else
|
else
|
||||||
beep();
|
beep();
|
||||||
|
set_focus();
|
||||||
break;
|
break;
|
||||||
case K_F2:
|
case K_F2:
|
||||||
if (is_edit()) set("");
|
if (is_edit()) set("");
|
||||||
|
@ -1 +1 @@
|
|||||||
#define VERSION 1.2
|
#define VERSION 1.3
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// $Id: relapp.cpp,v 1.41 1994-12-27 14:59:08 guy Exp $
|
// $Id: relapp.cpp,v 1.42 1995-01-02 09:32:49 guy Exp $
|
||||||
#include <mailbox.h>
|
#include <mailbox.h>
|
||||||
#include <sheet.h>
|
#include <sheet.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
@ -794,7 +794,10 @@ bool TRelation_application::main_loop()
|
|||||||
if (relation_remove())
|
if (relation_remove())
|
||||||
query_mode();
|
query_mode();
|
||||||
if (_autoins_caller.not_empty())
|
if (_autoins_caller.not_empty())
|
||||||
|
{
|
||||||
|
if (_lnflag) _recins = 0;
|
||||||
k = K_QUIT;
|
k = K_QUIT;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case K_F9:
|
case K_F9:
|
||||||
if (save(TRUE))
|
if (save(TRUE))
|
||||||
|
@ -699,15 +699,15 @@ TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields,
|
|||||||
: TCursor_sheet(cursor, fields, title, head, buttons), _field(f)
|
: TCursor_sheet(cursor, fields, title, head, buttons), _field(f)
|
||||||
|
|
||||||
{
|
{
|
||||||
if (field().browse()->inputs() == 1)
|
if (field().browse()->inputs() == 1 && cursor->items() > 0)
|
||||||
{
|
{
|
||||||
#if XVT_OS == XVT_OS_WIN
|
#if XVT_OS == XVT_OS_SCOUNIX
|
||||||
xvt_create_control(WC_EDIT, 1, -3, f->size()+1, 1, f->get(), win(),
|
const int s = f->size()+2;
|
||||||
CTL_FLAG_DISABLED, 0L, 100);
|
#else
|
||||||
#else
|
const int s = f->size()+1;
|
||||||
xvt_create_control(WC_EDIT, 1, -3, f->size()+2, 1, f->get(), win(),
|
|
||||||
CTL_FLAG_DISABLED, 0L, 100);
|
|
||||||
#endif
|
#endif
|
||||||
|
xvt_create_control(WC_EDIT, 1, -3, s, 1, f->get(), win(),
|
||||||
|
CTL_FLAG_DISABLED, 0L, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s && s->items() > 2)
|
if (s && s->items() > 2)
|
||||||
@ -844,7 +844,7 @@ KEY TBrowse_sheet::run()
|
|||||||
|
|
||||||
const KEY key = TCursor_sheet::run();
|
const KEY key = TCursor_sheet::run();
|
||||||
|
|
||||||
if (key == K_ESC || key == K_F9 || key == K_INS)
|
if (key == K_ESC || key == K_INS || key >= K_CTRL)
|
||||||
{
|
{
|
||||||
field().set(old); // Restore field status
|
field().set(old); // Restore field status
|
||||||
field().set_dirty(spork);
|
field().set_dirty(spork);
|
||||||
|
@ -593,7 +593,20 @@ HIDDEN bool _zerofill_val(TEdit_field& f, KEY k)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAX_FUNC 20
|
HIDDEN bool _alpha_val(TEdit_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (f.to_check(k))
|
||||||
|
{
|
||||||
|
const TString& s = f.get();
|
||||||
|
for (int i = 0; s[i]; i++)
|
||||||
|
if (!isalpha(s[i]))
|
||||||
|
return error_box("Sono ammessi solo caratteri alfabetici");
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define MAX_FUNC 21
|
||||||
|
|
||||||
HIDDEN VAL_FUNC _global_val_func[MAX_FUNC] =
|
HIDDEN VAL_FUNC _global_val_func[MAX_FUNC] =
|
||||||
{
|
{
|
||||||
@ -616,7 +629,8 @@ HIDDEN VAL_FUNC _global_val_func[MAX_FUNC] =
|
|||||||
_onereq_val,
|
_onereq_val,
|
||||||
_chkfld_val,
|
_chkfld_val,
|
||||||
_filename_val,
|
_filename_val,
|
||||||
_zerofill_val
|
_zerofill_val,
|
||||||
|
_alpha_val
|
||||||
};
|
};
|
||||||
|
|
||||||
bool validate(int fn, TEdit_field& f, KEY k, const TArray& parms)
|
bool validate(int fn, TEdit_field& f, KEY k, const TArray& parms)
|
||||||
|
@ -196,7 +196,8 @@ long TWindow::window_handler(WINDOW win, EVENT* ep)
|
|||||||
|
|
||||||
|
|
||||||
WINDOW TWindow::create(short x, short y, short dx, short dy,
|
WINDOW TWindow::create(short x, short y, short dx, short dy,
|
||||||
const char* title, long flags, WIN_TYPE wt, WINDOW parent)
|
const char* title, long flags, WIN_TYPE wt,
|
||||||
|
WINDOW parent, int menu)
|
||||||
{
|
{
|
||||||
flags |= WSF_NO_MENUBAR;
|
flags |= WSF_NO_MENUBAR;
|
||||||
|
|
||||||
@ -206,8 +207,9 @@ WINDOW TWindow::create(short x, short y, short dx, short dy,
|
|||||||
_win = xvt_create_window(
|
_win = xvt_create_window(
|
||||||
wt,
|
wt,
|
||||||
x, y, dx, dy,
|
x, y, dx, dy,
|
||||||
title, parent,
|
title,
|
||||||
flags,
|
menu, parent,
|
||||||
|
flags,
|
||||||
window_handler,
|
window_handler,
|
||||||
PTR_LONG(this)
|
PTR_LONG(this)
|
||||||
);
|
);
|
||||||
@ -623,11 +625,11 @@ TScroll_window::TScroll_window()
|
|||||||
}
|
}
|
||||||
|
|
||||||
WINDOW TScroll_window::create(short x, short y, short dx, short dy,
|
WINDOW TScroll_window::create(short x, short y, short dx, short dy,
|
||||||
const char* title, long flags, WIN_TYPE wt, WINDOW parent)
|
const char* title, long flags, WIN_TYPE wt, WINDOW parent, int menu)
|
||||||
{
|
{
|
||||||
_has_hscroll = (flags & WSF_HSCROLL) != 0;
|
_has_hscroll = (flags & WSF_HSCROLL) != 0;
|
||||||
_has_vscroll = (flags & WSF_VSCROLL) != 0 ;
|
_has_vscroll = (flags & WSF_VSCROLL) != 0 ;
|
||||||
return TWindow::create(x, y, dx, dy, title, flags, wt, parent);
|
return TWindow::create(x, y, dx, dy, title, flags, wt, parent, menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
PNT TScroll_window::log2dev(long x, long y) const
|
PNT TScroll_window::log2dev(long x, long y) const
|
||||||
|
@ -68,7 +68,7 @@ protected:
|
|||||||
static long window_handler(WINDOW win, EVENT* ep);
|
static long window_handler(WINDOW win, EVENT* ep);
|
||||||
virtual WINDOW create(short x, short y, short dx, short dy,
|
virtual WINDOW create(short x, short y, short dx, short dy,
|
||||||
const char* title = "", long flags = WSF_NONE,
|
const char* title = "", long flags = WSF_NONE,
|
||||||
WIN_TYPE rt = W_DOC, WINDOW parent = NULL_WIN) ;
|
WIN_TYPE rt = W_DOC, WINDOW parent = NULL_WIN, int menu = 0) ;
|
||||||
|
|
||||||
void set_win(WINDOW w) { _win = w; } // Usare con cautela
|
void set_win(WINDOW w) { _win = w; } // Usare con cautela
|
||||||
|
|
||||||
@ -187,7 +187,8 @@ protected:
|
|||||||
// @FPROT
|
// @FPROT
|
||||||
virtual WINDOW create(short x, short y, short dx, short dy,
|
virtual WINDOW create(short x, short y, short dx, short dy,
|
||||||
const char* title = "", long flags = WSF_NONE,
|
const char* title = "", long flags = WSF_NONE,
|
||||||
WIN_TYPE rt = W_DOC, WINDOW parent = NULL_WIN) ; // Crea la finestra
|
WIN_TYPE rt = W_DOC, WINDOW parent = NULL_WIN,
|
||||||
|
int menu = 0) ; // Crea la finestra
|
||||||
|
|
||||||
virtual PNT log2dev(long x, long y) const;
|
virtual PNT log2dev(long x, long y) const;
|
||||||
virtual bool on_key(KEY key);
|
virtual bool on_key(KEY key);
|
||||||
|
@ -29,7 +29,7 @@ COLOR MASK_BACK_COLOR = COLOR_WHITE;
|
|||||||
COLOR NORMAL_COLOR = COLOR_BLACK;
|
COLOR NORMAL_COLOR = COLOR_BLACK;
|
||||||
COLOR NORMAL_BACK_COLOR = COLOR_WHITE;
|
COLOR NORMAL_BACK_COLOR = COLOR_WHITE;
|
||||||
COLOR DISABLED_COLOR = COLOR_GRAY;
|
COLOR DISABLED_COLOR = COLOR_GRAY;
|
||||||
COLOR DISABLED_BACK_COLOR = COLOR_WHITE;
|
COLOR DISABLED_BACK_COLOR = MASK_BACK_COLOR;
|
||||||
COLOR FOCUS_COLOR = COLOR_BLACK;
|
COLOR FOCUS_COLOR = COLOR_BLACK;
|
||||||
COLOR FOCUS_BACK_COLOR = COLOR_WHITE;
|
COLOR FOCUS_BACK_COLOR = COLOR_WHITE;
|
||||||
|
|
||||||
@ -74,30 +74,24 @@ HIDDEN HFONT NormalFont = NULL;
|
|||||||
HIDDEN LOGFONT LogFont;
|
HIDDEN LOGFONT LogFont;
|
||||||
HIDDEN int FontWeight;
|
HIDDEN int FontWeight;
|
||||||
|
|
||||||
#ifdef __CTL3D__
|
|
||||||
COLOR MASK_BACK_COLOR = COLOR_LTGRAY;
|
|
||||||
#else
|
|
||||||
COLOR MASK_BACK_COLOR = MAKE_COLOR(0,128,128);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
COLOR MASK_COLOR = COLOR_CYAN;
|
||||||
|
COLOR MASK_BACK_COLOR = COLOR_DKCYAN;
|
||||||
COLOR NORMAL_COLOR = COLOR_BLACK;
|
COLOR NORMAL_COLOR = COLOR_BLACK;
|
||||||
COLOR NORMAL_BACK_COLOR = COLOR_LTGRAY;
|
COLOR NORMAL_BACK_COLOR = COLOR_LTGRAY;
|
||||||
COLOR DISABLED_COLOR = COLOR_GRAY;
|
COLOR DISABLED_COLOR = COLOR_GRAY;
|
||||||
COLOR DISABLED_BACK_COLOR = MASK_BACK_COLOR;
|
COLOR DISABLED_BACK_COLOR = MASK_BACK_COLOR;
|
||||||
|
COLOR FOCUS_COLOR = NORMAL_COLOR;
|
||||||
|
COLOR FOCUS_BACK_COLOR = COLOR_CYAN;
|
||||||
|
|
||||||
HIDDEN COLORREF MaskColor = COLOR2RGB(MASK_BACK_COLOR);
|
HIDDEN COLORREF MaskColor = COLOR2RGB(MASK_BACK_COLOR);
|
||||||
HIDDEN HBRUSH MaskBrush = CreateSolidBrush(MaskColor);
|
HIDDEN HBRUSH MaskBrush = 0 ;
|
||||||
|
|
||||||
HIDDEN COLORREF FocusForeColor = COLOR2RGB(COLOR_BLACK);
|
|
||||||
HIDDEN COLORREF FocusBackColor = COLOR2RGB(COLOR_CYAN);
|
|
||||||
HIDDEN HBRUSH FocusBrush = CreateSolidBrush(FocusBackColor);
|
|
||||||
|
|
||||||
COLOR FOCUS_COLOR = RGB2COLOR(FocusForeColor);
|
|
||||||
COLOR FOCUS_BACK_COLOR = RGB2COLOR(FocusBackColor);
|
|
||||||
|
|
||||||
HIDDEN COLORREF NormalForeColor = COLOR2RGB(NORMAL_COLOR);
|
HIDDEN COLORREF NormalForeColor = COLOR2RGB(NORMAL_COLOR);
|
||||||
HIDDEN COLORREF NormalBackColor = COLOR2RGB(NORMAL_BACK_COLOR);
|
HIDDEN COLORREF NormalBackColor = COLOR2RGB(NORMAL_BACK_COLOR);
|
||||||
HIDDEN HBRUSH NormalBrush = CreateSolidBrush(NormalBackColor);
|
HIDDEN HBRUSH NormalBrush = 0;
|
||||||
|
HIDDEN COLORREF FocusForeColor = COLOR2RGB(FOCUS_COLOR);
|
||||||
|
HIDDEN COLORREF FocusBackColor = COLOR2RGB(FOCUS_BACK_COLOR);
|
||||||
|
HIDDEN HBRUSH FocusBrush = 0;
|
||||||
|
|
||||||
const word WM_WAKEUP = RegisterWindowMessage("WAKEUP");
|
const word WM_WAKEUP = RegisterWindowMessage("WAKEUP");
|
||||||
|
|
||||||
@ -493,7 +487,18 @@ void dispatch_e_scroll(WINDOW win, KEY key)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void customize_controls(bool on)
|
void customize_controls(bool on)
|
||||||
{
|
{
|
||||||
|
TConfig colors(CONFIG_GENERAL, "Colors");
|
||||||
|
|
||||||
|
MASK_COLOR = colors.get_color("Mask", NULL, -1, MASK_COLOR);
|
||||||
|
MASK_BACK_COLOR = colors.get_color("MaskBack", NULL, -1, MASK_BACK_COLOR);
|
||||||
|
NORMAL_COLOR = colors.get_color("Normal", NULL, -1, NORMAL_COLOR);
|
||||||
|
NORMAL_BACK_COLOR = colors.get_color("NormalBack", NULL, -1, NORMAL_BACK_COLOR);
|
||||||
|
DISABLED_COLOR = colors.get_color("Disabled", NULL, -1, DISABLED_COLOR);
|
||||||
|
DISABLED_BACK_COLOR = colors.get_color("DisabledBack", NULL, -1, DISABLED_BACK_COLOR);
|
||||||
|
FOCUS_COLOR = colors.get_color("Focus", NULL, -1, FOCUS_COLOR);
|
||||||
|
FOCUS_BACK_COLOR = colors.get_color("FocusBack", NULL, -1, FOCUS_BACK_COLOR);
|
||||||
|
|
||||||
#if XVTWS == WMWS
|
#if XVTWS == WMWS
|
||||||
if (on)
|
if (on)
|
||||||
{
|
{
|
||||||
@ -512,6 +517,17 @@ void customize_controls(bool on)
|
|||||||
HINSTANCE _hInstance = (HINSTANCE)get_value(NULL_WIN, ATTR_WIN_INSTANCE);
|
HINSTANCE _hInstance = (HINSTANCE)get_value(NULL_WIN, ATTR_WIN_INSTANCE);
|
||||||
Ctl3dRegister(_hInstance);
|
Ctl3dRegister(_hInstance);
|
||||||
Ctl3dAutoSubclass(_hInstance);
|
Ctl3dAutoSubclass(_hInstance);
|
||||||
|
#else
|
||||||
|
MaskColor = COLOR2RGB(MASK_BACK_COLOR);
|
||||||
|
MaskBrush = CreateSolidBrush(MaskColor);
|
||||||
|
|
||||||
|
NormalForeColor = COLOR2RGB(NORMAL_COLOR);
|
||||||
|
NormalBackColor = COLOR2RGB(NORMAL_BACK_COLOR);
|
||||||
|
NormalBrush = CreateSolidBrush(NormalBackColor);
|
||||||
|
|
||||||
|
FocusForeColor = COLOR2RGB(FOCUS_COLOR);
|
||||||
|
FocusBackColor = COLOR2RGB(FOCUS_BACK_COLOR);
|
||||||
|
FocusBrush = CreateSolidBrush(FocusBackColor);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -519,11 +535,12 @@ void customize_controls(bool on)
|
|||||||
#ifdef __CTL3D__
|
#ifdef __CTL3D__
|
||||||
HINSTANCE _hInstance = (HINSTANCE)get_value(NULL_WIN, ATTR_WIN_INSTANCE);
|
HINSTANCE _hInstance = (HINSTANCE)get_value(NULL_WIN, ATTR_WIN_INSTANCE);
|
||||||
Ctl3dUnregister(_hInstance);
|
Ctl3dUnregister(_hInstance);
|
||||||
#endif
|
#else
|
||||||
DeleteObject(NormalFont);
|
DeleteObject(NormalFont);
|
||||||
DeleteObject(MaskBrush);
|
DeleteObject(MaskBrush);
|
||||||
DeleteObject(NormalBrush);
|
DeleteObject(NormalBrush);
|
||||||
DeleteObject(FocusBrush);
|
DeleteObject(FocusBrush);
|
||||||
|
#endif
|
||||||
free_controls_bmp();
|
free_controls_bmp();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -547,9 +564,6 @@ void xvt_init_font()
|
|||||||
LogFont.lfWidth = (int)font.get_long("Width");
|
LogFont.lfWidth = (int)font.get_long("Width");
|
||||||
LogFont.lfWeight = FontWeight = (int)font.get_long("Weight");
|
LogFont.lfWeight = FontWeight = (int)font.get_long("Weight");
|
||||||
LogFont.lfCharSet = (int)font.get_long("CharSet");
|
LogFont.lfCharSet = (int)font.get_long("CharSet");
|
||||||
// LogFont.lfClipPrecision = (int)font.get_long("Clip");
|
|
||||||
// LogFont.lfOutPrecision = (int)font.get_long("Precision");
|
|
||||||
// LogFont.lfQuality = (int)font.get_long("Quality");;
|
|
||||||
LogFont.lfPitchAndFamily = (int)font.get_long("Pitch");
|
LogFont.lfPitchAndFamily = (int)font.get_long("Pitch");
|
||||||
strcpy(LogFont.lfFaceName, font.get("Name"));
|
strcpy(LogFont.lfFaceName, font.get("Name"));
|
||||||
}
|
}
|
||||||
@ -603,8 +617,11 @@ void xvt_set_font(WINDOW win, int family, int style, int dim)
|
|||||||
|
|
||||||
WINDOW xvt_create_window(WIN_TYPE wt,
|
WINDOW xvt_create_window(WIN_TYPE wt,
|
||||||
short x, short y, short dx, short dy,
|
short x, short y, short dx, short dy,
|
||||||
const char* caption, WINDOW parent,
|
const char* caption,
|
||||||
long flags, EVENT_HANDLER eh, long app_data
|
int menu,
|
||||||
|
WINDOW parent,
|
||||||
|
long flags,
|
||||||
|
EVENT_HANDLER eh, long app_data
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
RCT& rect = resize_rect(x, y, dx, dy, wt, parent);
|
RCT& rect = resize_rect(x, y, dx, dy, wt, parent);
|
||||||
@ -613,7 +630,7 @@ WINDOW xvt_create_window(WIN_TYPE wt,
|
|||||||
WINDOW win = create_window(wt,
|
WINDOW win = create_window(wt,
|
||||||
&rect,
|
&rect,
|
||||||
(char*)caption,
|
(char*)caption,
|
||||||
0, parent,
|
menu, parent,
|
||||||
flags,
|
flags,
|
||||||
EM_ALL, eh,
|
EM_ALL, eh,
|
||||||
app_data);
|
app_data);
|
||||||
@ -930,14 +947,19 @@ PAT_STYLE trans_brush(char p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
PEN_STYLE trans_pen(char p)
|
PEN_STYLE trans_pen(char p)
|
||||||
{
|
{
|
||||||
|
PEN_STYLE ps = P_SOLID;
|
||||||
switch (p)
|
switch (p)
|
||||||
{
|
{
|
||||||
case 'n' : return P_SOLID; break;
|
case 'n' :
|
||||||
case '.' : return P_DOT; break;
|
ps = P_SOLID; break;
|
||||||
case '-' : return P_DASH; break;
|
case '.' :
|
||||||
default: CHECK(0,"trans_pen: Undefined pattern"); break;
|
ps = P_DOT; break;
|
||||||
}
|
case '-' :
|
||||||
return P_SOLID;
|
ps = P_DASH; break;
|
||||||
|
default:
|
||||||
|
CHECK(0, "trans_pen: Undefined pattern"); break;
|
||||||
|
}
|
||||||
|
return ps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,8 @@ WINDOW xvt_create_window
|
|||||||
(
|
(
|
||||||
WIN_TYPE wt,
|
WIN_TYPE wt,
|
||||||
short x, short y, short dx, short dy,
|
short x, short y, short dx, short dy,
|
||||||
const char* caption, WINDOW parent,
|
const char* caption,
|
||||||
|
int menu, WINDOW parent,
|
||||||
long flags,
|
long flags,
|
||||||
EVENT_HANDLER eh,
|
EVENT_HANDLER eh,
|
||||||
long app_data
|
long app_data
|
||||||
@ -61,6 +62,7 @@ WINDOW xvt_create_window
|
|||||||
void xvt_check_radio_button(WINDOW win, const WINDOW* ctls, int count);
|
void xvt_check_radio_button(WINDOW win, const WINDOW* ctls, int count);
|
||||||
int xvt_get_checked_radio(const WINDOW* ctls, int count);
|
int xvt_get_checked_radio(const WINDOW* ctls, int count);
|
||||||
void xvt_change_page_tags(WINDOW pag, bool on, WINDOW tag, byte p);
|
void xvt_change_page_tags(WINDOW pag, bool on, WINDOW tag, byte p);
|
||||||
|
PICTURE xvt_picture_load(short id, bool convert_colors = FALSE);
|
||||||
|
|
||||||
bool xvt_test_menu_tag(MENU_TAG tag);
|
bool xvt_test_menu_tag(MENU_TAG tag);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user