Patch level : 2.0 nopatch
Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunto supporto per sintesi vocale. Potenziata gestione directory custom. Aggiunto nuovo config CONFIG_GUI alternativo a CONFIG_USER per gestione colori git-svn-id: svn://10.65.10.50/trunk@11494 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
66acb35beb
commit
73159b6e3b
@ -219,7 +219,7 @@ int TSelect_color_mask::add_color_def(const char * key, const char * prompt, COL
|
||||
riga << p->get_prompt();
|
||||
|
||||
TString tmp(_mask_name) ; tmp << "_" << _paragraph;
|
||||
TConfig conf(CONFIG_USER, tmp);
|
||||
TConfig conf(CONFIG_GUI, tmp);
|
||||
|
||||
tmp = p->get_key();
|
||||
if (conf.exist(tmp))
|
||||
@ -313,7 +313,7 @@ TSelect_color_mask::TSelect_color_mask(const TSheet_field & field)
|
||||
void TSelect_color_mask::save() const
|
||||
{
|
||||
TString tmp(_mask_name) ; tmp << "_" << _paragraph;
|
||||
TConfig conf(CONFIG_USER, tmp);
|
||||
TConfig conf(CONFIG_GUI, tmp);
|
||||
const int items = _color_defs.items();
|
||||
|
||||
for (int i = 0; i < items; i++)
|
||||
|
@ -701,16 +701,18 @@ TConfig::TConfig(int which_config, const char* paragraph)
|
||||
_file.add("ditta.ini");
|
||||
if (!_file.exist())
|
||||
{
|
||||
TFilename oldfile = firm2dir(prefix().get_codditta());
|
||||
TFilename oldfile = _file;
|
||||
const int pos = oldfile.find("ditta.ini");
|
||||
oldfile.cut(pos);
|
||||
oldfile.add("prassid.ini"); // Old config file!
|
||||
if (oldfile.exist())
|
||||
fcopy(oldfile, _file);
|
||||
}
|
||||
|
||||
break;
|
||||
case CONFIG_STUDIO:
|
||||
case CONFIG_USER:
|
||||
case CONFIG_STAMPE:
|
||||
case CONFIG_GUI:
|
||||
case CONFIG_USER:
|
||||
_file = firm2dir(-1); // Directory dati
|
||||
_file.add("config"); // + Directory config
|
||||
if (!_file.exist()) // Creala se necessario
|
||||
@ -720,18 +722,28 @@ TConfig::TConfig(int which_config, const char* paragraph)
|
||||
{
|
||||
case CONFIG_STUDIO:
|
||||
_file.add("studio.ini");
|
||||
if (!_file.exist() && fexist("studio.ini"))
|
||||
{
|
||||
TFilename old = _file.path();
|
||||
old.add("prassis.ini"); // Old config file!
|
||||
if (old.exist())
|
||||
fcopy(old, _file);
|
||||
}
|
||||
|
||||
if (!_file.exist())
|
||||
{
|
||||
TFilename oldfile = _file;
|
||||
const int pos = oldfile.find("studio.ini");
|
||||
oldfile.cut(pos);
|
||||
oldfile.add("prassid.ini"); // Old config file!
|
||||
if (oldfile.exist())
|
||||
fcopy(oldfile, _file);
|
||||
}
|
||||
break;
|
||||
case CONFIG_STAMPE:
|
||||
_file.add("print.ini");
|
||||
break;
|
||||
case CONFIG_GUI:
|
||||
{
|
||||
TFilename gui = "gui.ini";
|
||||
if (gui.custom_path()) // I colori sono qui, scavalca utente
|
||||
{
|
||||
_file = gui;
|
||||
break;
|
||||
}
|
||||
}
|
||||
case CONFIG_USER:
|
||||
{
|
||||
TString16 u = user();
|
||||
@ -760,8 +772,8 @@ TConfig::TConfig(int which_config, const char* paragraph)
|
||||
_file = CGetCampoIni();
|
||||
break;
|
||||
case CONFIG_GODMODE:
|
||||
_file = firm2dir(0);
|
||||
_file.add("gm.ini");
|
||||
_file = "gm.ini";
|
||||
_file.custom_path();
|
||||
if (paragraph == NULL || *paragraph == '\0')
|
||||
paragraph = "GODMODE";
|
||||
break;
|
||||
|
@ -22,8 +22,10 @@ class TConfig;
|
||||
#define CONFIG_USER 5
|
||||
// file parametri stampe
|
||||
#define CONFIG_STAMPE 6
|
||||
// file parametri GUI (nel senso di Graphic User Interface)
|
||||
#define CONFIG_GUI 7
|
||||
// file parametri godmode
|
||||
#define CONFIG_GODMODE 7
|
||||
#define CONFIG_GODMODE 8
|
||||
|
||||
// Callback per for_each_paragraph
|
||||
typedef int (*CONFIG_CALLBACK)(TConfig& cfg, void* jolly);
|
||||
|
@ -147,7 +147,7 @@ XVT_FNTID xvt_default_font(bool bold)
|
||||
{
|
||||
DEF_FONT = xvt_dwin_get_font(TASK_WIN);
|
||||
|
||||
TConfig font(CONFIG_USER, "Font");
|
||||
TConfig font(CONFIG_GUI, "Font");
|
||||
TString font_ser_desc(font.get("FontDesc"));
|
||||
if (font_ser_desc.empty())
|
||||
font_ser_desc = "01\\Courier\\0\\10\\WIN01/-13/0/0/0/400/0/0/0/0/1/2/1/49/Courier";
|
||||
@ -229,7 +229,7 @@ void customize_colors()
|
||||
// @xref <c TConfig>
|
||||
|
||||
{
|
||||
TConfig colors(CONFIG_USER, "Colors");
|
||||
TConfig colors(CONFIG_GUI, "Colors");
|
||||
|
||||
MASK_BACK_COLOR = colors.get_color("MaskBack", NULL, -1, MASK_BACK_COLOR);
|
||||
MASK_LIGHT_COLOR = colors.get_color("MaskLight", NULL, -1, MASK_LIGHT_COLOR);
|
||||
@ -246,6 +246,8 @@ void customize_colors()
|
||||
AUTOSELECT = colors.get_bool("AutoSelect", NULL, -1, AUTOSELECT);
|
||||
ADVANCED_GRAPHICS = colors.get_bool("AdvancedGraphics", NULL, -1, ADVANCED_GRAPHICS);
|
||||
SMALL_ICONS = colors.get_bool("SmallIcons", NULL, -1, SMALL_ICONS);
|
||||
const int SPEECH_MODE = colors.get_int("SpeechMode", NULL, -1, 0);
|
||||
xvt_vobj_set_attr(NULL_WIN, ATTR_SPEECH_MODE, SPEECH_MODE);
|
||||
|
||||
xi_set_pref(XI_PREF_COLOR_LIGHT, MASK_LIGHT_COLOR);
|
||||
xi_set_pref(XI_PREF_COLOR_CTRL, MASK_BACK_COLOR);
|
||||
@ -375,15 +377,9 @@ HIDDEN XI_BITMAP* get_background_bitmap()
|
||||
{
|
||||
if (bmp == NULL && !checked)
|
||||
{
|
||||
const char* ext[] = { "jpg", "gif", "bmp", NULL };
|
||||
bool ok = false;
|
||||
TFilename back("back");
|
||||
for (int i = 0; !ok && ext[i]; i++)
|
||||
{
|
||||
back.ext(ext[i]);
|
||||
ok = back.custom_path();
|
||||
}
|
||||
if (ok)
|
||||
TConfig ini(CONFIG_GUI, "Colors");
|
||||
TFilename back = ini.get("Tile");
|
||||
if (back.custom_path())
|
||||
bmp = xi_bitmap_create(back.get_buffer(), XI_BITMAP_TILE);
|
||||
checked = TRUE;
|
||||
}
|
||||
@ -1353,7 +1349,7 @@ void TButton_control::create(WINDOW win, short cid,
|
||||
{
|
||||
bool bold;
|
||||
COLOR color;
|
||||
TString80 txt(text); txt.trim();
|
||||
TString txt(text); txt.trim();
|
||||
|
||||
char mnemonic = '\0';
|
||||
int underscore = -1;
|
||||
|
@ -551,7 +551,8 @@ bool TMask_field::error_box(
|
||||
{
|
||||
build_msg();
|
||||
if (mask().is_sheetmask() && !mask().is_running())
|
||||
{
|
||||
{
|
||||
xvt_dm_post_speech(_msg, 0, TRUE);
|
||||
xvt_statbar_set(_msg);
|
||||
beep();
|
||||
}
|
||||
@ -585,6 +586,7 @@ bool TMask_field::warning_box(
|
||||
|
||||
if (mask().is_sheetmask() && !mask().is_running())
|
||||
{
|
||||
xvt_dm_post_speech(_msg, 1, TRUE);
|
||||
xvt_statbar_set(_msg);
|
||||
beep();
|
||||
}
|
||||
@ -1146,6 +1148,13 @@ bool TButton_field::on_key(KEY key)
|
||||
}
|
||||
if (ok)
|
||||
{
|
||||
if (xvt_vobj_get_attr(NULL_WIN, ATTR_SPEECH_MODE) & (1<<7))
|
||||
{
|
||||
TString str = prompt();
|
||||
str.strip("~");
|
||||
xvt_dm_post_speech(str, 7, TRUE);
|
||||
}
|
||||
|
||||
ok = on_hit();
|
||||
if (ok && _exit_key > 0 && !has_message())
|
||||
mask().stop_run(_exit_key);
|
||||
|
@ -1175,14 +1175,14 @@ int safely_close_closeable_isamfiles()
|
||||
|
||||
bool TPrefix::build_firm_data(long codditta, bool flagcom)
|
||||
{
|
||||
const char * const ndir = "/dir.gen";
|
||||
const char * const ntrc = "/trc.gen";
|
||||
TFilename s(firm2dir(codditta)); s << ndir;
|
||||
const char * const ndir = "dir.gen";
|
||||
const char * const ntrc = "trc.gen";
|
||||
TFilename s(firm2dir(codditta)); s.add(ndir);
|
||||
bool exist = s.exist();
|
||||
|
||||
if (!exist)
|
||||
{
|
||||
s = s.path(); s.rtrim(1); s << ntrc;
|
||||
s = s.path(); s.add(ntrc);
|
||||
exist = s.exist();
|
||||
}
|
||||
if (exist)
|
||||
@ -1200,17 +1200,17 @@ bool TPrefix::build_firm_data(long codditta, bool flagcom)
|
||||
}
|
||||
|
||||
set_autoload_new_files(yesno_box("Si desidera precaricare gli archivi standard"));
|
||||
s = s.path(); s.rtrim(1);
|
||||
s = s.path(); s.rtrim(1);
|
||||
|
||||
if (!s.exist() && !make_dir(s))
|
||||
return error_box("Impossibile creare il direttorio della ditta %ld (%s)",
|
||||
codditta, (const char*)s);
|
||||
|
||||
s << ndir;
|
||||
s.add(ndir);
|
||||
if (!fcopy(&ndir[1], s))
|
||||
return error_box("Impossibile copiare il file %s della ditta %ld",
|
||||
&ndir[1], codditta);
|
||||
s = s.path(); s << ntrc;
|
||||
s = s.path(); s.add(ntrc);
|
||||
if (!fcopy(&ntrc[1], s))
|
||||
return error_box("Impossibile copiare il file %s della ditta %ld",
|
||||
ntrc, codditta);
|
||||
|
@ -19,6 +19,7 @@
|
||||
10213=zipgold.ico
|
||||
10214=notepad.ico
|
||||
10215=boxopen.ico
|
||||
10216=pref.ico
|
||||
|
||||
[Images]
|
||||
101=ok.bmp
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include <strstrea.h>
|
||||
|
||||
#include <dongle.h>
|
||||
#include <prefix.h>
|
||||
#include <real.h>
|
||||
#include <regexp.h>
|
||||
#include <utility.h>
|
||||
@ -1292,13 +1293,19 @@ bool TFilename::input()
|
||||
|
||||
bool TFilename::custom_path(const char* path_list)
|
||||
{
|
||||
const char* fname = name();
|
||||
|
||||
if (*this == fname) // Non c'e' path
|
||||
bool ok = false;
|
||||
if (!is_absolute_path())
|
||||
{
|
||||
TToken_string pl = path_list;
|
||||
if (pl.empty())
|
||||
pl = "custom";
|
||||
if (pl.empty_items())
|
||||
{
|
||||
pl = firm2dir(prefix().get_codditta());
|
||||
pl << SLASH << "custom";
|
||||
pl.add(firm2dir(-1));
|
||||
pl << "custom";
|
||||
pl.add("custom");
|
||||
}
|
||||
const TString fname = name();
|
||||
FOR_EACH_TOKEN(pl, path)
|
||||
{
|
||||
TFilename cust = path;
|
||||
@ -1306,11 +1313,14 @@ bool TFilename::custom_path(const char* path_list)
|
||||
if (cust.exist())
|
||||
{
|
||||
set(cust);
|
||||
return true;
|
||||
ok = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
else
|
||||
ok = exist();
|
||||
return ok;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user