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"
|
||||
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
|
||||
BEGIN
|
||||
PROMPT 52 6 "Linee/Inch "
|
||||
@ -104,7 +97,13 @@ BEGIN
|
||||
PROMPT 4 8 "Salva configurazione"
|
||||
HELP "Indicare se stampare elementi grafici (linee, box, logo) quando la stampante lo consente"
|
||||
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
|
||||
BEGIN
|
||||
PROMPT 1 9 ""
|
||||
|
@ -1,6 +1,11 @@
|
||||
#ifndef __COLORS_H
|
||||
#define __COLORS_H
|
||||
|
||||
#ifndef XVT_INCL
|
||||
#include <xvt.h>
|
||||
#endif
|
||||
|
||||
extern COLOR MASK_COLOR;
|
||||
extern COLOR MASK_BACK_COLOR;
|
||||
extern COLOR NORMAL_COLOR;
|
||||
extern COLOR NORMAL_BACK_COLOR;
|
||||
@ -9,5 +14,8 @@ extern COLOR DISABLED_BACK_COLOR;
|
||||
extern COLOR FOCUS_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
|
||||
|
||||
|
@ -118,34 +118,51 @@ bool TConfig::exist(const char* var, int index)
|
||||
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
|
||||
// quella specificata
|
||||
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);
|
||||
|
||||
if (_data.is_key(vvar))
|
||||
s = (TString&)_data[vvar];
|
||||
else
|
||||
s = "";
|
||||
s = def;
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
long TConfig::get_long(const char* var, const char* section, int index)
|
||||
{
|
||||
return atol(get(var,section,index));
|
||||
long TConfig::get_long(const char* var, const char* section, int index, long def)
|
||||
{
|
||||
const char* n = get(var,section,index);
|
||||
return *n ? atol(n) : def;
|
||||
}
|
||||
|
||||
bool TConfig::get_bool(const char* var, const char* section, int index)
|
||||
{
|
||||
const TString& s = get(var, section, index).upper();
|
||||
bool TConfig::get_bool(const char* var, const char* section, int index, bool def)
|
||||
{
|
||||
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");
|
||||
}
|
||||
|
||||
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 force, int index)
|
||||
|
@ -1,5 +1,9 @@
|
||||
#ifndef __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
#define __CONFIG_H
|
||||
|
||||
#ifndef XVT_INCL
|
||||
#include <xvt.h>
|
||||
#endif
|
||||
|
||||
#ifndef __ASSOC_H
|
||||
#include <assoc.h>
|
||||
@ -40,13 +44,15 @@ public:
|
||||
// quella specificata; se non c'e' ritorna ""
|
||||
// passando index >=0 viene appeso al nome variabile per
|
||||
// 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
|
||||
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
|
||||
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
|
||||
// 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
|
||||
campo
|
||||
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
|
||||
ALPHA_FUNC accetta solo caratteri alfabetici
|
||||
*/
|
||||
|
||||
#define EXPR_FUNC 0 2
|
||||
@ -84,6 +85,7 @@
|
||||
#define CHECK_FIELD 17 1
|
||||
#define FILENAME_FUNC 18 0
|
||||
#define ZEROFILL_FUNC 19 1
|
||||
#define ALPHA_FUNC 20 0
|
||||
|
||||
#define VALEXPR VALIDATE EXPR_FUNC
|
||||
#define NUM_EXPR VALEXPR 0
|
||||
|
@ -152,6 +152,7 @@ public:
|
||||
void disable() { enable(FALSE); }
|
||||
|
||||
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
|
||||
{
|
||||
out << " KEY \"" << _desc << "\"\n";
|
||||
|
||||
if (_y >= 0)
|
||||
out << " PROMPT " << _x << ' ' << _y << " \"" << _prompt << "\"\n";
|
||||
|
||||
if (_desc.not_empty())
|
||||
out << " KEY \"" << _desc << "\"\n";
|
||||
|
||||
if (_group.ones())
|
||||
out << " GROUP " << _group << "\n";
|
||||
|
||||
@ -466,6 +466,7 @@ protected:
|
||||
|
||||
public:
|
||||
TForm_string(TPrint_section* section) : TForm_item(section) {}
|
||||
virtual ~TForm_string() {}
|
||||
};
|
||||
|
||||
bool TForm_string::parse_item(TScanner& scanner)
|
||||
@ -597,6 +598,7 @@ protected:
|
||||
|
||||
public:
|
||||
TForm_number(TPrint_section* section) : TForm_string(section) {}
|
||||
virtual ~TForm_number() {}
|
||||
};
|
||||
|
||||
|
||||
@ -634,6 +636,7 @@ protected:
|
||||
|
||||
public:
|
||||
TForm_date(TPrint_section* section);
|
||||
virtual ~TForm_date() {}
|
||||
};
|
||||
|
||||
|
||||
@ -678,6 +681,7 @@ protected:
|
||||
|
||||
public:
|
||||
TForm_list(TPrint_section* section);
|
||||
virtual ~TForm_list() {}
|
||||
};
|
||||
|
||||
TForm_list::TForm_list(TPrint_section* section)
|
||||
@ -792,6 +796,21 @@ bool TForm_list::update()
|
||||
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
|
||||
@ -840,6 +859,8 @@ TForm_item* TPrint_section::parse_item(const TString& s)
|
||||
return new TForm_date(this);
|
||||
if (s == "LI")
|
||||
return new TForm_list(this);
|
||||
if (s == "GR")
|
||||
return new TForm_group(this);
|
||||
|
||||
CHECKS(NULL, "Campo di stampa sconosciuto: ", (const char*)s);
|
||||
return NULL;
|
||||
|
@ -119,11 +119,7 @@ void TMask::handler(WINDOW win, EVENT* ep)
|
||||
{
|
||||
clear_window(win, MASK_BACK_COLOR);
|
||||
RCT r; get_client_rect(win, &r);
|
||||
#ifdef __CTL3D__
|
||||
xvt_draw_rect(win, r, COLOR_WHITE, COLOR_GRAY, 1);
|
||||
#else
|
||||
xvt_draw_rect(win, r, COLOR_CYAN, COLOR_GRAY, 1);
|
||||
#endif
|
||||
xvt_draw_rect(win, r, MASK_COLOR, COLOR_GRAY, 1);
|
||||
}
|
||||
else clear_window(win, COLOR_GRAY);
|
||||
#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 <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)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
mask().send_key(k, to, this);
|
||||
@ -551,7 +575,7 @@ void TMask_field::send_key(KEY k, short to)
|
||||
// Certified 90%
|
||||
bool TMask_field::do_message(int num)
|
||||
{
|
||||
const int MAX_CMD = 14;
|
||||
const int MAX_CMD = 15;
|
||||
static const char* commands[MAX_CMD] =
|
||||
{
|
||||
"ADD", // 0
|
||||
@ -566,8 +590,9 @@ bool TMask_field::do_message(int num)
|
||||
"HIDE", // 9
|
||||
"PUSH", // 10
|
||||
"RESET", // 11
|
||||
"SHOW", // 12
|
||||
"UNDO" // 13
|
||||
"RU", // 12
|
||||
"SHOW", // 13
|
||||
"UNDO" // 14
|
||||
};
|
||||
|
||||
TToken_string* message = (TToken_string*)_message.objptr(num);
|
||||
@ -607,7 +632,13 @@ bool TMask_field::do_message(int num)
|
||||
{
|
||||
mask().stop_run(atoi(dlg));
|
||||
continue;
|
||||
}
|
||||
} else
|
||||
if (cmd == 12)
|
||||
{
|
||||
run_app(mask(), msg);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
short fld = (dlg && dlg[0] > ' ') ? atodlg(dlg) : 0;
|
||||
bool broadcast = dlg && strchr(dlg, '@');
|
||||
@ -636,9 +667,9 @@ bool TMask_field::do_message(int num)
|
||||
key = K_SPACE; break;
|
||||
case 11:
|
||||
key = K_F2; break;
|
||||
case 12:
|
||||
key = 11000+'s'; break;
|
||||
case 13:
|
||||
key = 11000+'s'; break;
|
||||
case 14:
|
||||
key = K_F3; break;
|
||||
default:
|
||||
key = atoi(value);
|
||||
@ -774,6 +805,7 @@ bool TMask_field::on_key(KEY key)
|
||||
message_box(_help);
|
||||
else
|
||||
beep();
|
||||
set_focus();
|
||||
break;
|
||||
case K_F2:
|
||||
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 <sheet.h>
|
||||
#include <urldefid.h>
|
||||
@ -794,7 +794,10 @@ bool TRelation_application::main_loop()
|
||||
if (relation_remove())
|
||||
query_mode();
|
||||
if (_autoins_caller.not_empty())
|
||||
{
|
||||
if (_lnflag) _recins = 0;
|
||||
k = K_QUIT;
|
||||
}
|
||||
break;
|
||||
case K_F9:
|
||||
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)
|
||||
|
||||
{
|
||||
if (field().browse()->inputs() == 1)
|
||||
{
|
||||
#if XVT_OS == XVT_OS_WIN
|
||||
xvt_create_control(WC_EDIT, 1, -3, f->size()+1, 1, f->get(), win(),
|
||||
CTL_FLAG_DISABLED, 0L, 100);
|
||||
#else
|
||||
xvt_create_control(WC_EDIT, 1, -3, f->size()+2, 1, f->get(), win(),
|
||||
CTL_FLAG_DISABLED, 0L, 100);
|
||||
if (field().browse()->inputs() == 1 && cursor->items() > 0)
|
||||
{
|
||||
#if XVT_OS == XVT_OS_SCOUNIX
|
||||
const int s = f->size()+2;
|
||||
#else
|
||||
const int s = f->size()+1;
|
||||
#endif
|
||||
xvt_create_control(WC_EDIT, 1, -3, s, 1, f->get(), win(),
|
||||
CTL_FLAG_DISABLED, 0L, 100);
|
||||
}
|
||||
|
||||
if (s && s->items() > 2)
|
||||
@ -844,7 +844,7 @@ KEY TBrowse_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_dirty(spork);
|
||||
|
@ -593,7 +593,20 @@ HIDDEN bool _zerofill_val(TEdit_field& f, KEY k)
|
||||
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] =
|
||||
{
|
||||
@ -616,7 +629,8 @@ HIDDEN VAL_FUNC _global_val_func[MAX_FUNC] =
|
||||
_onereq_val,
|
||||
_chkfld_val,
|
||||
_filename_val,
|
||||
_zerofill_val
|
||||
_zerofill_val,
|
||||
_alpha_val
|
||||
};
|
||||
|
||||
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,
|
||||
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;
|
||||
|
||||
@ -206,8 +207,9 @@ WINDOW TWindow::create(short x, short y, short dx, short dy,
|
||||
_win = xvt_create_window(
|
||||
wt,
|
||||
x, y, dx, dy,
|
||||
title, parent,
|
||||
flags,
|
||||
title,
|
||||
menu, parent,
|
||||
flags,
|
||||
window_handler,
|
||||
PTR_LONG(this)
|
||||
);
|
||||
@ -623,11 +625,11 @@ TScroll_window::TScroll_window()
|
||||
}
|
||||
|
||||
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_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
|
||||
|
@ -68,7 +68,7 @@ protected:
|
||||
static long window_handler(WINDOW win, EVENT* ep);
|
||||
virtual WINDOW create(short x, short y, short dx, short dy,
|
||||
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
|
||||
|
||||
@ -187,7 +187,8 @@ protected:
|
||||
// @FPROT
|
||||
virtual WINDOW create(short x, short y, short dx, short dy,
|
||||
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 bool on_key(KEY key);
|
||||
|
@ -29,7 +29,7 @@ COLOR MASK_BACK_COLOR = COLOR_WHITE;
|
||||
COLOR NORMAL_COLOR = COLOR_BLACK;
|
||||
COLOR NORMAL_BACK_COLOR = COLOR_WHITE;
|
||||
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_BACK_COLOR = COLOR_WHITE;
|
||||
|
||||
@ -74,30 +74,24 @@ HIDDEN HFONT NormalFont = NULL;
|
||||
HIDDEN LOGFONT LogFont;
|
||||
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_BACK_COLOR = COLOR_LTGRAY;
|
||||
COLOR DISABLED_COLOR = COLOR_GRAY;
|
||||
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 HBRUSH MaskBrush = CreateSolidBrush(MaskColor);
|
||||
|
||||
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 HBRUSH MaskBrush = 0 ;
|
||||
HIDDEN COLORREF NormalForeColor = COLOR2RGB(NORMAL_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");
|
||||
|
||||
@ -493,7 +487,18 @@ void dispatch_e_scroll(WINDOW win, KEY key)
|
||||
}
|
||||
|
||||
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 (on)
|
||||
{
|
||||
@ -512,6 +517,17 @@ void customize_controls(bool on)
|
||||
HINSTANCE _hInstance = (HINSTANCE)get_value(NULL_WIN, ATTR_WIN_INSTANCE);
|
||||
Ctl3dRegister(_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
|
||||
}
|
||||
else
|
||||
@ -519,11 +535,12 @@ void customize_controls(bool on)
|
||||
#ifdef __CTL3D__
|
||||
HINSTANCE _hInstance = (HINSTANCE)get_value(NULL_WIN, ATTR_WIN_INSTANCE);
|
||||
Ctl3dUnregister(_hInstance);
|
||||
#endif
|
||||
#else
|
||||
DeleteObject(NormalFont);
|
||||
DeleteObject(MaskBrush);
|
||||
DeleteObject(NormalBrush);
|
||||
DeleteObject(FocusBrush);
|
||||
#endif
|
||||
free_controls_bmp();
|
||||
}
|
||||
#endif
|
||||
@ -547,9 +564,6 @@ void xvt_init_font()
|
||||
LogFont.lfWidth = (int)font.get_long("Width");
|
||||
LogFont.lfWeight = FontWeight = (int)font.get_long("Weight");
|
||||
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");
|
||||
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,
|
||||
short x, short y, short dx, short dy,
|
||||
const char* caption, WINDOW parent,
|
||||
long flags, EVENT_HANDLER eh, long app_data
|
||||
const char* caption,
|
||||
int menu,
|
||||
WINDOW parent,
|
||||
long flags,
|
||||
EVENT_HANDLER eh, long app_data
|
||||
)
|
||||
{
|
||||
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,
|
||||
&rect,
|
||||
(char*)caption,
|
||||
0, parent,
|
||||
menu, parent,
|
||||
flags,
|
||||
EM_ALL, eh,
|
||||
app_data);
|
||||
@ -930,14 +947,19 @@ PAT_STYLE trans_brush(char p)
|
||||
}
|
||||
|
||||
PEN_STYLE trans_pen(char p)
|
||||
{
|
||||
{
|
||||
PEN_STYLE ps = P_SOLID;
|
||||
switch (p)
|
||||
{
|
||||
case 'n' : return P_SOLID; break;
|
||||
case '.' : return P_DOT; break;
|
||||
case '-' : return P_DASH; break;
|
||||
default: CHECK(0,"trans_pen: Undefined pattern"); break;
|
||||
}
|
||||
return P_SOLID;
|
||||
case 'n' :
|
||||
ps = P_SOLID; break;
|
||||
case '.' :
|
||||
ps = P_DOT; break;
|
||||
case '-' :
|
||||
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,
|
||||
short x, short y, short dx, short dy,
|
||||
const char* caption, WINDOW parent,
|
||||
const char* caption,
|
||||
int menu, WINDOW parent,
|
||||
long flags,
|
||||
EVENT_HANDLER eh,
|
||||
long app_data
|
||||
@ -61,6 +62,7 @@ WINDOW xvt_create_window
|
||||
void xvt_check_radio_button(WINDOW win, 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);
|
||||
PICTURE xvt_picture_load(short id, bool convert_colors = FALSE);
|
||||
|
||||
bool xvt_test_menu_tag(MENU_TAG tag);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user