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:
guy 1995-01-02 09:33:00 +00:00
parent 6256d39aa6
commit d100bb385b
17 changed files with 1329 additions and 1146 deletions

View File

@ -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 "
@ -105,6 +98,12 @@ BEGIN
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 ""

View File

@ -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

View File

@ -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)
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");
}
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)

View File

@ -1,6 +1,10 @@
#ifndef __CONFIG_H
#define __CONFIG_H
#ifndef XVT_INCL
#include <xvt.h>
#endif
#ifndef __ASSOC_H
#include <assoc.h>
#endif
@ -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

View File

@ -27,7 +27,7 @@ class TPicture_array
PICTURE _picture[MAXPIC];
public:
PICTURE getbmp(short id);
PICTURE getbmp(short id, bool convert = FALSE);
PICTURE operator[](short id) { return _picture[id-BMP_OK]; }
void reset();
@ -36,7 +36,60 @@ public:
};
PICTURE TPicture_array::getbmp(short id)
HIDDEN byte COLOR2PIC(COLOR c)
{
byte b;
switch (c)
{
case COLOR_DKYELLOW:
b = 0x03; break;
case COLOR_DKCYAN:
b = 0x06; break;
case COLOR_CYAN:
b = 0xF8; break;
case COLOR_YELLOW:
b = 0xFB; break;
default:
b = 0x00; break;
}
return b;
}
PICTURE xvt_picture_load(short id, bool convert)
{
PICTURE cpb = cpb_picture_load(id);
if (convert && MASK_BACK_COLOR != COLOR_DKCYAN)
{
const byte newdk = COLOR2PIC(MASK_BACK_COLOR);
const byte newlt = COLOR2PIC(MASK_COLOR);
const PICTURE old = cpb;
RCT r; cpb_get_picture_size(old, &r);
long size;
char* buf = picture_lock(old, &size);
CHECK(buf, "Out of memory in picture_load");
cpb = picture_make(buf, size, &r);
const int first = 14;
const int last = first + r.right*r.bottom;
for (int i = first; i < last; i++) switch(buf[i])
{
case 0x06:
buf[i] = newdk; break;
case 0xF8:
buf[i] = newlt; break;
default:
break;
}
picture_unlock(old);
picture_free(old);
}
return cpb;
}
PICTURE TPicture_array::getbmp(short id, bool convert)
{
const int i = id-BMP_OK;
CHECKD(i >= 0 && i < MAXPIC, "Control ID out of range", id);
@ -46,7 +99,7 @@ PICTURE TPicture_array::getbmp(short id)
if (i < 100) return _picture[i];
picture_free(_picture[i]);
}
_picture[i] = cpb_picture_load(id);
_picture[i] = xvt_picture_load(id, convert);
if (_picture[i] == NULL)
error_box("Can't load picture %d", id);
@ -391,7 +444,7 @@ void TGroup::update() const
}
else
{
xvt_draw_rect(_hdc, r, COLOR_GRAY, COLOR_CYAN);
xvt_draw_rect(_hdc, r, COLOR_GRAY, MASK_COLOR);
}
}
@ -685,7 +738,7 @@ void TPush_button::update() const
class TPage_button : public TControl
{
enum { height = 19, width = 32 };
enum { height = 19, width2 = 16, width = 32 };
byte _flag;
protected:
@ -702,14 +755,27 @@ public:
TPage_button::TPage_button(WINDOW parent, byte flag) : _flag(flag)
{
RCT r; get_client_rect(parent, &r);
create(r.right-width, r.bottom-height, r.right, r.bottom,
const int w = (flag == 3) ? width : width2;
if (flag == 2) r.right -= w;
create(r.right-w, r.bottom-height, r.right, r.bottom,
"", parent, 0L, 0L, DLG_PAGE);
cpb.getbmp(BMP_BOOK1 + flag -1);
cpb.getbmp(BMP_BOOK1 + flag -1, flag == 3);
}
void TPage_button::mouse_down(PNT where)
{
check(where.h < (width>>1));
bool p;
switch (_flag)
{
case 1:
p = FALSE; break;
case 2:
p = TRUE;
default:
p = where.h < (width2); break;
}
check(p);
}
void TPage_button::mouse_up()
@ -775,11 +841,7 @@ void TTag_button::update() const
win_draw_rect(_hdc, &r);
if (i == _page)
#ifdef __CTL3D__
xvt_draw_rect(_hdc, r, COLOR_WHITE, COLOR_GRAY);
#else
xvt_draw_rect(_hdc, r, COLOR_CYAN, COLOR_GRAY);
#endif
xvt_draw_rect(_hdc, r, MASK_COLOR, COLOR_GRAY);
char n[4]; sprintf(n, "%d", i+1);
win_draw_text(_hdc, (width-CHARX)/2 + i*width, BASEY, n, -1);
@ -789,11 +851,7 @@ void TTag_button::update() const
pen.width = 1;
pen.pat = PAT_SOLID;
pen.style = P_SOLID;
#ifdef __CTL3D__
pen.color = COLOR_WHITE;
#else
pen.color = COLOR_CYAN;
#endif
pen.color = MASK_COLOR;
win_set_cpen(_hdc, &pen);
PNT p = { _client.bottom, 0 };
@ -858,10 +916,10 @@ TCheckbox::TCheckbox(
{
if (_dy < 0)
{
cpb.getbmp(BMP_CHECK_ON);
cpb.getbmp(BMP_CHECK_OFF);
cpb.getbmp(BMP_RADIO_ON);
PICTURE p = cpb.getbmp(BMP_RADIO_OFF);
cpb.getbmp(BMP_CHECK_ON, TRUE);
cpb.getbmp(BMP_CHECK_OFF, TRUE);
cpb.getbmp(BMP_RADIO_ON, TRUE);
PICTURE p = cpb.getbmp(BMP_RADIO_OFF, TRUE);
RCT r;
cpb_get_picture_size(p, &r);

View File

@ -62,6 +62,7 @@
FILENAME_FUNC controlla se la stringa e' un nome di file
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

View File

@ -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;

View File

@ -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

View File

@ -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("");

View File

@ -1 +1 @@
#define VERSION 1.2
#define VERSION 1.3

View File

@ -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))

View File

@ -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 (field().browse()->inputs() == 1 && cursor->items() > 0)
{
#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);
#if XVT_OS == XVT_OS_SCOUNIX
const int s = f->size()+2;
#else
xvt_create_control(WC_EDIT, 1, -3, f->size()+2, 1, f->get(), win(),
CTL_FLAG_DISABLED, 0L, 100);
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);

View File

@ -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)

View File

@ -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,7 +207,8 @@ WINDOW TWindow::create(short x, short y, short dx, short dy,
_win = xvt_create_window(
wt,
x, y, dx, dy,
title, parent,
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

View File

@ -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);

View File

@ -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");
@ -494,6 +488,17 @@ 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);
@ -931,13 +948,18 @@ 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;
}

View File

@ -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);