Patch level : 10.0

Files correlati     : tutti
Ricompilazione Demo : [ ]
Commento            :
Aggiunta dicitura "Custom" a pie' paginea delle maschere personalizzate
Corretta decodifica tabelle comuni e di modulo


git-svn-id: svn://10.65.10.50/trunk@17691 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2008-11-21 10:14:46 +00:00
parent 7dd5d55116
commit 5ee91cc169
7 changed files with 90 additions and 104 deletions

View File

@ -53,8 +53,8 @@ TInfo_mask::TInfo_mask()
{
const word ser_no = dongle().number();
int year = 2008, release = 10, tag = 0, patch = 1;
TString80 versione = "2008.10.00 Patch 0001";
int year = 2091, release = 10, tag = 0, patch = 1;
TString80 versione = "2091.10.00 Patch 0001";
if (main_app().get_version_info(year, release, tag, patch))
versione.format("%d.%02d.%02d Patch %04d", year, release, tag, patch);
@ -137,15 +137,16 @@ TInfo_mask::TInfo_mask()
TString16 strmb; strmb.format("%ld Mb", mbfree);
add_row(TR("Spazio su disco"), strmb, mbfree < 512);
TString printer(userini.get("Name", "Printer"));
TString printer;
printer = userini.get("Name", "Printer");
if (printer.blank())
printer = "Nessuna";
printer = TR("Nessuna");
add_row(TR("Stampante"), printer, printer.len() >= 32);
xvt_print_pdf_version(printer.get_buffer(32), printer.size());
add_row(TR("Libreria PDF"), printer);
add_row(TR("Libreria GUI"), strwx);
xvt_print_pdf_version(printer.get_buffer(), printer.size());
add_row(TR("Libreria DB"), strdb);
add_row(TR("Libreria GUI"), strwx);
add_row(TR("Libreria PDF"), printer);
add_row(TR("Libreria SQL"), strsql);
}

View File

@ -305,6 +305,27 @@ XVT_FNTID xvtil_load_default_font()
return font;
}
#define XI_INVALID_BITMAP ((XI_BITMAP*)-1)
HIDDEN XI_BITMAP* get_background_bitmap(bool reload)
{
static XI_BITMAP* bmp = XI_INVALID_BITMAP;
if (reload || bmp == XI_INVALID_BITMAP)
{
if (bmp != NULL && bmp != XI_INVALID_BITMAP)
xi_bitmap_destroy(bmp);
bmp = NULL;
if (ADVANCED_GRAPHICS && !NATIVE_CONTROLS)
{
TConfig ini(CONFIG_GUI, "Colors");
TFilename back = ini.get("Tile");
if (back.custom_path())
bmp = xi_bitmap_create(back.get_buffer(), XI_BITMAP_TILE);
}
}
return bmp;
}
static byte event_map[XIE_LAST_EVENT];
enum event_action { a_ignore, a_xvt, a_xvt_post, a_obj, a_child, a_update, a_select, a_post, a_debug };
@ -338,19 +359,12 @@ void customize_colors()
ADVANCED_GRAPHICS = colors.get_bool("AdvancedGraphics", NULL, -1, ADVANCED_GRAPHICS);
EASY_RIDER = colors.get_bool("EasyRider", NULL, -1, EASY_RIDER);
EASY_RIDER_COLOR = blend_colors(NORMAL_BACK_COLOR, DISABLED_BACK_COLOR, 0.5);
if (ADVANCED_GRAPHICS)
{
const long dt = xvt_vobj_get_attr(NULL_WIN, ATTR_DISPLAY_TYPE);
ADVANCED_GRAPHICS = dt == XVT_DISPLAY_DIRECT_COLOR; // Always true from 1995
NATIVE_CONTROLS = ADVANCED_GRAPHICS && colors.get_bool("NativeControls", NULL, -1, NATIVE_CONTROLS);
xi_set_pref(XI_PREF_NATIVE_CTRLS, NATIVE_CONTROLS);
if (ADVANCED_GRAPHICS)
{
NATIVE_CONTROLS = colors.get_bool("NativeControls", NULL, -1, NATIVE_CONTROLS);
xi_set_pref(XI_PREF_NATIVE_CTRLS, NATIVE_CONTROLS);
}
}
TOOL_SIZE = colors.get_int("ToolSize", NULL, -1, TOOL_SIZE);
TOOL_TEXT = colors.get_bool("ToolText", NULL, -1, TOOL_TEXT);
get_background_bitmap(true); // Reload background bitmap
const int SPEECH_MODE = colors.get_int("SpeechMode", NULL, -1, 0);
xvt_vobj_set_attr(NULL_WIN, ATTR_SPEECH_MODE, SPEECH_MODE);
@ -485,26 +499,6 @@ HIDDEN void init_fu_multiple(XI_OBJ* itf)
Y_FU_MULTIPLE = max_rct.bottom / 25;
}
// OBSOLETE
// #define MASK_RECT_ID -883
HIDDEN XI_BITMAP* get_background_bitmap()
{
static XI_BITMAP* bmp = (XI_BITMAP*)-1;
if (bmp == (XI_BITMAP*)-1)
{
bmp = NULL;
if (ADVANCED_GRAPHICS && !NATIVE_CONTROLS)
{
TConfig ini(CONFIG_GUI, "Colors");
TFilename back = ini.get("Tile");
if (back.custom_path())
bmp = xi_bitmap_create(back.get_buffer(), XI_BITMAP_TILE);
}
}
return bmp;
}
WINDOW create_interface(WINDOW parent, short x, short y, short dx, short dy,
const char* caption, TWindow* msk)
{
@ -563,7 +557,7 @@ WINDOW create_interface(WINDOW parent, short x, short y, short dx, short dy,
def->v.itf->edit_menu = true; // Update edit menu items
def->v.itf->menu_win = (XinWindow)TASK_WIN; // Window that owns the menu
XI_BITMAP* bmpback = get_background_bitmap();
XI_BITMAP* bmpback = get_background_bitmap(false);
if (bmpback != NULL)
{
def->v.itf->back_color = 0;
@ -644,33 +638,6 @@ HIDDEN void xi_event_handler(XI_OBJ* itf, XI_EVENT* xiev)
}
}
}
TWindow* msk = (TWindow*)xi_get_app_data(itf);
if (msk != NULL && msk->is_kind_of(CLASS_MASK))
{
const TMask& m = (const TMask&)*msk;
WINDOW win = m.page_win(0);
if ((WINDOW)xi_get_window(itf) == win)
{
if (m.number() == 0 && m.source_file().find("custom") > 0)
{
RCT rct; xvt_vobj_get_client_rect(win, &rct);
rct.left += 2; rct.right -= 2; rct.bottom -= 2;
DRAW_CTOOLS dct;
xvt_dwin_get_draw_ctools(win, &dct);
dct.fore_color = FOCUS_COLOR;
dct.back_color = FOCUS_BACK_COLOR;
dct.opaque_text = TRUE;
xvt_dwin_set_draw_ctools(win, &dct);
xvt_dwin_set_font(win, DEF_FONT);
const char* text = "Custom";
const int tw = xvt_dwin_get_text_width(win, text, -1);
xvt_dwin_draw_text(win, rct.left, rct.bottom, text, -1);
xvt_dwin_draw_text(win, (rct.right-rct.left-tw)/2, rct.bottom, text, -1);
xvt_dwin_draw_text(win, rct.right-tw, rct.bottom, text, -1);
}
}
}
}
break;
case a_select:

View File

@ -903,6 +903,28 @@ void TMask::handler(WINDOW w, EVENT* ep)
}
return;
}
if (ep->type == E_UPDATE && w == page_win(0))
{
if (source_file().find("custom") > 0)
{
RCT rct; xvt_vobj_get_client_rect(w, &rct);
rct.left += 2; rct.right -= 2; rct.bottom -= 2;
DRAW_CTOOLS dct;
xvt_dwin_get_draw_ctools(w, &dct);
dct.fore_color = FOCUS_COLOR;
dct.back_color = FOCUS_BACK_COLOR;
dct.opaque_text = TRUE;
xvt_dwin_set_draw_ctools(w, &dct);
//xvt_dwin_set_font(w, DEF_FONT);
xvt_dwin_set_clip(w, NULL);
const char* text = "Custom";
const int tw = xvt_dwin_get_text_width(w, text, -1);
xvt_dwin_draw_text(w, rct.left, rct.bottom, text, -1);
xvt_dwin_draw_text(w, (rct.right-rct.left-tw)/2, rct.bottom, text, -1);
xvt_dwin_draw_text(w, rct.right-tw, rct.bottom, text, -1);
}
}
TWindow::handler(w, ep);
}

View File

@ -800,8 +800,8 @@ static const TString& bytes2str(long b)
if (b > 0)
{
const long mega = 1024*1024;
if (b >= mega)
tmp.format("%.1lf MBytes", double(b)/mega);
if (b >= 2*mega)
tmp.format("%.2lf MBytes", double(b)/mega);
else
{
const long kappa = 1024;

View File

@ -720,24 +720,31 @@ TObject* TDecoder::rec2obj(const TRectype& curr) const
const TString& TDecoder::decode(const char* code)
{
TString80 key;
switch (file().num())
if (code && *code)
{
case LF_TABMOD: key << file().get("MOD") << '|' << file().get("CUST") << '|'; // Fall down
case LF_TAB:
case LF_TABCOM: key << file().name() << '|'; break;
default: break;
TString80 key;
if (strchr(code, '|') == NULL)
{
switch (file().num())
{
case LF_TABMOD: key << file().get("MOD") << '|' << file().get("CUST") << '|'; // Fall down
case LF_TAB:
case LF_TABCOM: key << file().name() << '|'; break;
default: break;
}
}
key << code;
const TString& obj = (const TString&)query(key);
return obj;
}
key << code;
const TString& obj = (const TString&)query(key);
return obj;
return EMPTY_STRING;
}
const TString& TDecoder::decode(long code)
{
if (code > 0)
{
TString16 c; c << code;
TString8 c; c << code;
return decode(c);
}
return EMPTY_STRING;
@ -772,7 +779,7 @@ const TRectype& TRecord_cache::get(const char* key)
const TRectype& TRecord_cache::get(long key)
{
TString16 str; str << key;
TString8 str; str << key;
return get(str);
}
@ -792,7 +799,7 @@ const TString& TRecord_cache::get(long key, const char* field)
TRecord_cache& TDB_cache::rec_cache(int file)
{
CHECKD(file >= LF_USER, "Invalid file ", file);
CHECKD(file >= LF_USER && file < LF_EXTERNAL, "Invalid file ", file);
TRecord_cache* rc = (TRecord_cache*)objptr(file);
if (rc == NULL)
{

View File

@ -243,11 +243,11 @@ TSheet_control::TSheet_control(
for (h = new_header.get(0), i = 0; h && i < MAX_COL; h = new_header.get(), i++)
{
long attr = XI_ATR_VISIBLE | XI_ATR_ENABLED | XI_ATR_AUTOSCROLL | XI_ATR_READONLY;
if (_type[i] == 'C')
attr |= XI_ATR_SELECTABLE;
if (i == 0 && _type[i] == 'C')
attr |= XI_ATR_SELECTABLE;
if (_type[i] == 'R' || _type[i] == 'V' || _type[i] == 'P') // Right, Currency, Price
attr |= XI_ATR_RJUST;
coldef = xi_add_column_def(listdef, FIRST_FIELD+i+1000, attr, i+1,
coldef = xi_add_column_def(listdef, FIRST_FIELD+i+1000, attr, i+1,
v_width[i] * XI_FU_MULTIPLE, m_width[i], (char*)h);
coldef->app_data = (long)this;
@ -296,7 +296,7 @@ TSheet_control::TSheet_control(
XI_OBJ** column = xi_get_member_list(_obj, &num);
for (i = 0; i < num; i++)
{
RCT rct; xi_get_rect(column[i], (XinRect *) &rct);
RCT rct; xi_get_rect(column[i], (XinRect*)&rct);
_default_width[i] = rct.right - rct.left;
}
}
@ -357,7 +357,6 @@ void TSheet_control::update(long n)
}
else
{
// xi_cell_request(_obj);
int num = 0;
const long* handle = xi_get_list_info(_obj, &num);
@ -761,7 +760,7 @@ bool TSheet_control::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
{
case 'C': // Set value for "checkable" cell
{
const bool on = checked(rec);
const bool on = col == 0 ? checked(rec) : row(rec).get_char(col) > ' ';
xiev->v.cell_request.icon_rid = on ? ICO_CHECK_ON : ICO_CHECK_OFF;
}
break;

View File

@ -143,7 +143,7 @@ TVariable_rectype::TVariable_rectype(const TVariable_rectype& r)
: TRectype((const TRectype &) r), _memo_fld_to_load(FALSE)
{
_virtual_fields = r._virtual_fields;
_memo_fld = r._memo_fld;
set_memo_fld(r._memo_fld);
}
void TVariable_rectype::unknown_field(const char* name) const
@ -203,15 +203,10 @@ void TVariable_rectype::set_variables(TExpression * e) const
void TVariable_rectype::set_memo_fld( const char * fieldname)
{
if (fieldname && *fieldname)
{
if (type(fieldname) == _memofld)
_memo_fld = fieldname;
else
NFCHECK("Campo memo non esistente %s", fieldname);
}
if (fieldname && *fieldname && type(fieldname) == _memofld)
_memo_fld = fieldname;
else
_memo_fld.cut(0);
_memo_fld.cut(0);
}
void TVariable_rectype::init_memo(TRecnotype recno, TIsam_handle file)
@ -228,7 +223,6 @@ TObject* TVariable_rectype::dup() const
}
TFieldtypes TVariable_rectype::type(const char* fieldname) const
{
if (_virtual_fields.objptr(fieldname))
return _alfafld;
@ -237,7 +231,6 @@ TFieldtypes TVariable_rectype::type(const char* fieldname) const
int TVariable_rectype::length(const char* fieldname) const
{
if (_virtual_fields.objptr(fieldname))
return ((TVariable_field *)_virtual_fields.objptr(fieldname))->lenght();
@ -246,7 +239,6 @@ int TVariable_rectype::length(const char* fieldname) const
int TVariable_rectype::ndec(const char* fieldname) const
{
if (_virtual_fields.objptr(fieldname))
return 0;
@ -257,7 +249,7 @@ int TVariable_rectype::ndec(const char* fieldname) const
bool TVariable_rectype::exist(const char* fieldname) const
{
if (_virtual_fields.is_key(fieldname))
return TRUE;
return true;
return TRectype::exist(fieldname);
}
@ -323,18 +315,16 @@ void TVariable_rectype::zero(const char* fieldname)
}
HIDDEN void zero_virtual_fields(const TObject & o)
HIDDEN void zero_virtual_field(const TObject & o)
{
TVariable_field & v = (TVariable_field &) o;
v.zero();
}
void TVariable_rectype::zero(char c)
{
TRectype::zero(c);
_virtual_fields.for_each(zero_virtual_fields);
_virtual_fields.for_each(zero_virtual_field);
}
@ -355,7 +345,7 @@ TRectype & TVariable_rectype::operator =(const TRectype & rec)
{
TRectype::operator =(rec);
_virtual_fields.for_each(zero_virtual_fields);
_virtual_fields.for_each(zero_virtual_field);
return *this;
}
@ -363,7 +353,7 @@ TRectype & TVariable_rectype::operator =(const TRectype & rec)
TRectype & TVariable_rectype::operator =(const char* rec)
{
TRectype::operator =(rec);
_virtual_fields.for_each(zero_virtual_fields);
_virtual_fields.for_each(zero_virtual_field);
return *this;
}