Patch level : 10.0
Files correlati : ba0.exe ba0200a.msk Ricompilazione Demo : [ ] Commento : 0000914: cambio stile il cambio stile chiude tutte le applicazione eventualmente aperte e riporta al menu principale. Se si effettua da un sottomenu riporta al menu principale. 0000915: stili qualsiasi sia lo stile adottato sulla mappa dell'aspetto viene sempre visualizzato campo. 0000828: info Nella versione outlook non esiste la possibilità di cercare un punto di menu digitando il nome? git-svn-id: svn://10.65.10.50/trunk@17320 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
30776a4132
commit
2ff6ecb98e
404
ba/ba0100.cpp
404
ba/ba0100.cpp
@ -25,7 +25,6 @@
|
||||
#include "ba0400a.h"
|
||||
|
||||
#define MEN_FILE "bamenu.men"
|
||||
#define OPTIONS_MENU M_FONT
|
||||
#define PREFERRED_MENU M_STYLE
|
||||
|
||||
#define DLG_TREE 301
|
||||
@ -50,6 +49,7 @@ protected: // TApplication
|
||||
virtual bool destroy();
|
||||
virtual bool menu(MENU_TAG m);
|
||||
virtual long handler(WINDOW win, EVENT* ep);
|
||||
virtual bool firm_change_enabled() const;
|
||||
virtual void on_firm_change();
|
||||
virtual bool test_assistance_year() const;
|
||||
|
||||
@ -295,6 +295,7 @@ class TColor_mask : public TAutomask
|
||||
public:
|
||||
TPreview_panel(short x, short y, short dx, short dy, TColor_mask* owner);
|
||||
} *_preview;
|
||||
|
||||
class TPreview_icons : public TWindow
|
||||
{
|
||||
TColor_mask* _owner;
|
||||
@ -304,7 +305,9 @@ class TColor_mask : public TAutomask
|
||||
TPreview_icons(short x, short y, short dx, short dy, TColor_mask* owner);
|
||||
} *_icons;
|
||||
|
||||
int _cur_theme;
|
||||
TAssoc_array _color;
|
||||
TString256 _font_desc;
|
||||
|
||||
protected: // TMask
|
||||
virtual bool stop_run(KEY key) { return TWindow::stop_run(key); }
|
||||
@ -313,19 +316,19 @@ protected: // TMask
|
||||
protected:
|
||||
COLOR get_color_entry(const char* c) const;
|
||||
void set_color_entry(const char* name, COLOR col);
|
||||
const TString& get_font_desc() const { return _font_desc; }
|
||||
const char* cid2name(short cid) const;
|
||||
COLOR cid2color(short cid) const;
|
||||
COLOR cid2syscolor(short cid, const XVT_COLOR_COMPONENT* cc) const;
|
||||
|
||||
void load_themes();
|
||||
bool apply_theme();
|
||||
|
||||
void save_colors(TConfig& colors);
|
||||
|
||||
public:
|
||||
void save_colors();
|
||||
|
||||
virtual KEY run();
|
||||
|
||||
TColor_mask();
|
||||
virtual ~TColor_mask() { }
|
||||
};
|
||||
|
||||
COLOR TColor_mask::TPreview_panel::get_color_entry(const char* name) const
|
||||
@ -355,6 +358,17 @@ void TColor_mask::TPreview_panel::update()
|
||||
line(x+1, y+h-1, x+w-2, y+h-1);
|
||||
line(x+w-2, y+h-1, x+w-2, y);
|
||||
|
||||
const TString& font_desc = _owner->get_font_desc();
|
||||
if (font_desc.full())
|
||||
{
|
||||
XVT_FNTID fontid = xvt_font_create();
|
||||
xvt_font_deserialize(fontid, font_desc);
|
||||
xvt_dwin_set_font(win(), fontid);
|
||||
xvt_font_destroy(fontid);
|
||||
}
|
||||
else
|
||||
xvt_dwin_set_font(win(), xvt_default_font());
|
||||
|
||||
set_opaque_text(false);
|
||||
set_pen(p = get_color_entry("Normal"));
|
||||
set_brush(b = get_color_entry("NormalBack"));
|
||||
@ -409,23 +423,47 @@ TColor_mask::TPreview_icons::TPreview_icons(short x, short y, short dx, short dy
|
||||
void TColor_mask::load_themes()
|
||||
{
|
||||
TList_field& fl = lfield(211);
|
||||
|
||||
TToken_string codes = fl.get_codes();
|
||||
int k = codes.items();
|
||||
if (k <= 2)
|
||||
TToken_string values = fl.get_values();
|
||||
|
||||
const int default_items = 3; // Corrente, Campo, Sistema
|
||||
// Elimina tutti gli elementi non standard (oltre il terzo)
|
||||
if (codes.items() > default_items)
|
||||
{
|
||||
TConfig themes("res/themes.ini");
|
||||
TString_array pl; themes.list_paragraphs(pl);
|
||||
if (!pl.empty())
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
TToken_string values = fl.get_values();
|
||||
FOR_EACH_ARRAY_ROW(pl, i, row)
|
||||
{
|
||||
codes.add(k++);
|
||||
values.add(*row);
|
||||
}
|
||||
fl.replace_items(codes, values);
|
||||
TToken_string& str = i == 0 ? codes : values;
|
||||
int pos = 0;
|
||||
for (int j = 0; j < default_items; j++)
|
||||
pos = str.find(str.separator(), pos);
|
||||
str.cut(pos);
|
||||
}
|
||||
}
|
||||
|
||||
int k = codes.items();
|
||||
TConfig default_themes("res/themes.ini");
|
||||
TString_array pl;
|
||||
default_themes.list_paragraphs(pl);
|
||||
FOR_EACH_ARRAY_ROW(pl, i, row)
|
||||
{
|
||||
codes.add(k++);
|
||||
values.add(row->left(15));
|
||||
}
|
||||
|
||||
TConfig user_themes(CONFIG_GUI);
|
||||
user_themes.list_paragraphs(pl);
|
||||
FOR_EACH_ARRAY_ROW(pl, j, raw)
|
||||
{
|
||||
if (raw->starts_with("Theme_"))
|
||||
{
|
||||
codes.add(k++);
|
||||
values.add(raw->mid(6, 15));
|
||||
}
|
||||
}
|
||||
|
||||
if (k > default_items)
|
||||
fl.replace_items(codes, values);
|
||||
}
|
||||
|
||||
bool TColor_mask::apply_theme()
|
||||
@ -433,24 +471,37 @@ bool TColor_mask::apply_theme()
|
||||
bool applied = false;
|
||||
|
||||
const int theme = get_int(211);
|
||||
if (theme > 1)
|
||||
if (theme > 2) // Normal theme
|
||||
{
|
||||
TList_field& fl = lfield(211);
|
||||
TToken_string codes = fl.get_codes();
|
||||
const TList_field& fl = lfield(211);
|
||||
TToken_string values = fl.get_values();
|
||||
const int pos = codes.get_pos(theme);
|
||||
TConfig themes("res/themes.ini", values.get(pos));
|
||||
TAssoc_array& colors = themes.list_variables();
|
||||
|
||||
TString name = values.get(theme);
|
||||
TConfig def_themes("res/themes.ini", name);
|
||||
TAssoc_array& def_colors = def_themes.list_variables();
|
||||
|
||||
name.insert("Theme_");
|
||||
TConfig usr_themes(CONFIG_GUI, name);
|
||||
TAssoc_array& usr_colors = usr_themes.list_variables();
|
||||
|
||||
TAssoc_array& colors = usr_colors.empty() ? def_colors : usr_colors;
|
||||
if (!colors.empty())
|
||||
{
|
||||
TToken_string rgb(15, ',');
|
||||
FOR_EACH_ASSOC_STRING(colors, obj, key, value)
|
||||
{
|
||||
rgb = value;
|
||||
const byte r = (byte)rgb.get_int(0);
|
||||
const byte g = (byte)rgb.get_int();
|
||||
const byte b = (byte)rgb.get_int();
|
||||
set_color_entry(key, XVT_MAKE_COLOR(r,g,b));
|
||||
if (rgb.items() == 3) // Trattasi di colore
|
||||
{
|
||||
const byte r = (byte)rgb.get_int(0);
|
||||
const byte g = (byte)rgb.get_int();
|
||||
const byte b = (byte)rgb.get_int();
|
||||
set_color_entry(key, XVT_MAKE_COLOR(r,g,b));
|
||||
} else
|
||||
if (xvt_str_compare_ignoring_case(key, "FontDesc") == 0)
|
||||
{
|
||||
_font_desc = value;
|
||||
}
|
||||
}
|
||||
applied = true;
|
||||
}
|
||||
@ -460,7 +511,19 @@ bool TColor_mask::apply_theme()
|
||||
{
|
||||
switch (theme)
|
||||
{
|
||||
case 1: // System colors
|
||||
case 1: // Campo default colors
|
||||
{
|
||||
for (short bid = 101; bid <= 113; bid++)
|
||||
{
|
||||
const char* name = cid2name(bid);
|
||||
const COLOR color = cid2color(bid);
|
||||
set_color_entry(name, color);
|
||||
}
|
||||
_font_desc.cut(0);
|
||||
applied = true;
|
||||
}
|
||||
break;
|
||||
case 2: // System colors
|
||||
{
|
||||
XVT_COLOR_COMPONENT* cc = (XVT_COLOR_COMPONENT*)xvt_vobj_get_attr(NULL_WIN, ATTR_APP_CTL_COLORS);
|
||||
for (short bid = 101; bid <= 113; bid++)
|
||||
@ -470,28 +533,29 @@ bool TColor_mask::apply_theme()
|
||||
set_color_entry(name, color);
|
||||
}
|
||||
xvt_mem_free((DATA_PTR)cc);
|
||||
|
||||
XVT_FNTID fontid = xvt_res_get_font(0);
|
||||
xvt_font_serialize(fontid, _font_desc.get_buffer(), _font_desc.size());
|
||||
xvt_font_destroy(fontid);
|
||||
set(214, "X"); // System buttons
|
||||
applied = true;
|
||||
}
|
||||
break;
|
||||
default: // Default colors
|
||||
default: // User defined settings
|
||||
{
|
||||
for (short bid = 101; bid <= 113; bid++)
|
||||
{
|
||||
const char* name = cid2name(bid);
|
||||
const COLOR color = cid2color(bid);
|
||||
set_color_entry(name, color);
|
||||
}
|
||||
TConfig font(CONFIG_GUI, "Font");
|
||||
font.set("FontDesc", ""); // Azzera font e lo ricarica alla prossima
|
||||
xvt_load_default_font();
|
||||
applied = true;
|
||||
TConfig color(CONFIG_GUI, "Colors");
|
||||
_color = color.list_variables();
|
||||
xvt_font_serialize(xvt_default_font(), _font_desc.get_buffer(), _font_desc.size());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (applied)
|
||||
{
|
||||
_preview->force_update();
|
||||
_cur_theme = theme;
|
||||
}
|
||||
|
||||
return applied;
|
||||
}
|
||||
@ -506,45 +570,107 @@ bool TColor_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||
case 211:
|
||||
if (e == fe_init)
|
||||
load_themes();
|
||||
break;
|
||||
case 212:
|
||||
if (e == fe_button)
|
||||
apply_theme();
|
||||
if (e == fe_modify && is_running())
|
||||
{
|
||||
const int new_theme = atoi(f.get());
|
||||
if (new_theme != _cur_theme)
|
||||
apply_theme();
|
||||
}
|
||||
break;
|
||||
case 217:
|
||||
if (e == fe_init || e == fe_modify)
|
||||
_icons->force_update();
|
||||
break;
|
||||
case DLG_OK:
|
||||
if (e == fe_button)
|
||||
{
|
||||
stop_run(K_CTRL+'R');
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case DLG_SAVEREC:
|
||||
if (e == fe_button)
|
||||
{
|
||||
stop_run(K_ENTER);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case DLG_NEWREC:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TString name = user();
|
||||
xvt_dm_post_string_prompt(TR("Nome del tema"), name.get_buffer(), 16);
|
||||
if (name.full())
|
||||
{
|
||||
name.trim();
|
||||
name.upper();
|
||||
name.insert("Theme_");
|
||||
{
|
||||
TConfig ini(CONFIG_GUI, name);
|
||||
save_colors(ini);
|
||||
}
|
||||
load_themes();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case DLG_DELREC:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TList_field& themes = lfield(211);
|
||||
const int pos = atoi(themes.get());
|
||||
bool can_delete = pos > 2;
|
||||
if (can_delete) // Tema non standard
|
||||
{
|
||||
TToken_string values = themes.get_values();
|
||||
TString name = values.get(pos);
|
||||
bool done = yesno_box(FR("Confermare la cancellazione del tema %s"), name.get_buffer());
|
||||
if (done)
|
||||
{
|
||||
name.insert("Theme_");
|
||||
TConfig ini(CONFIG_GUI, name);
|
||||
if (ini.new_paragraph())
|
||||
done = can_delete = false;
|
||||
else
|
||||
ini.remove_all();
|
||||
}
|
||||
if (done)
|
||||
load_themes();
|
||||
}
|
||||
if (!can_delete)
|
||||
error_box(TR("Tema non cancellabile"));
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case DLG_USER:
|
||||
if (e == fe_button)
|
||||
{
|
||||
XVT_FNTID fontid = xvt_default_font();
|
||||
if (xvt_dm_post_font_sel(TASK_WIN, fontid, NULL, 0))
|
||||
XVT_FNTID fontid = xvt_font_create();
|
||||
if (_font_desc.full())
|
||||
xvt_font_deserialize(fontid, _font_desc);
|
||||
else
|
||||
xvt_font_copy(fontid, xvt_default_font(), XVT_FA_ALL);
|
||||
if (xvt_dm_post_font_sel(win(), fontid, NULL, 0))
|
||||
{
|
||||
char font_ser_desc[256];
|
||||
TConfig font(CONFIG_GUI, "Font");
|
||||
xvt_font_serialize(fontid, font_ser_desc, sizeof(font_ser_desc));
|
||||
font.set("FontDesc", font_ser_desc);
|
||||
font.set_paragraph("Colors"); // Forza la scrittura del paragrafo
|
||||
xvt_load_default_font();
|
||||
|
||||
force_update();
|
||||
xvt_font_serialize(fontid, _font_desc.get_buffer(), _font_desc.size());
|
||||
_preview->force_update();
|
||||
}
|
||||
xvt_font_destroy(fontid);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (id >= 101 && id <= 113 && e == fe_button)
|
||||
if (e == fe_button && id >= 101 && id <= 113)
|
||||
{
|
||||
TColor_mask& m = (TColor_mask&)f.mask();
|
||||
const char* name = m.cid2name(f.dlg());
|
||||
COLOR col = m.get_color_entry(name);
|
||||
col = choose_color(col, m.win());
|
||||
ok = col != COLOR_INVALID;
|
||||
if (ok)
|
||||
const char* name = cid2name(f.dlg());
|
||||
COLOR col = get_color_entry(name);
|
||||
col = choose_color(col, win());
|
||||
if (col != COLOR_INVALID)
|
||||
{
|
||||
m.set_color_entry(name, col);
|
||||
m.stop_run(K_CTRL + 'R');
|
||||
set_color_entry(name, col);
|
||||
_preview->force_update();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -552,7 +678,7 @@ bool TColor_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||
}
|
||||
|
||||
TColor_mask::TColor_mask()
|
||||
: TAutomask("ba0200a")
|
||||
: TAutomask("ba0200a"), _cur_theme(0)
|
||||
{
|
||||
TConfig color(CONFIG_GUI, "Colors");
|
||||
_color = color.list_variables();
|
||||
@ -561,7 +687,7 @@ TColor_mask::TColor_mask()
|
||||
set(215, ADVANCED_GRAPHICS ? "X" : "");
|
||||
set(216, color.get_int("TreeView"));
|
||||
|
||||
_preview = new TPreview_panel(1, 8, 33, 8, this);
|
||||
_preview = new TPreview_panel(1, 7, 33, 8, this);
|
||||
_icons = new TPreview_icons(1, 10, -2, -2, this);
|
||||
|
||||
const int sz = color.get_int("ToolSize");
|
||||
@ -569,19 +695,12 @@ TColor_mask::TColor_mask()
|
||||
|
||||
set(218, EASY_RIDER ? "X" : "");
|
||||
set(219, TOOL_TEXT ? "X" : "");
|
||||
|
||||
xvt_font_serialize(xvt_default_font(), _font_desc.get_buffer(), _font_desc.size());
|
||||
}
|
||||
|
||||
KEY TColor_mask::run()
|
||||
void TColor_mask::save_colors(TConfig& colors)
|
||||
{
|
||||
KEY k = K_CTRL + 'R';
|
||||
while (k == K_CTRL + 'R')
|
||||
k = TMask::run();
|
||||
return k;
|
||||
}
|
||||
|
||||
void TColor_mask::save_colors()
|
||||
{
|
||||
TConfig colors(CONFIG_GUI, "Colors");
|
||||
FOR_EACH_ASSOC_STRING(_color, obj, key, str)
|
||||
colors.set(key, str);
|
||||
|
||||
@ -593,6 +712,17 @@ void TColor_mask::save_colors()
|
||||
colors.set("ToolSize", 16+sz*8);
|
||||
colors.set("EasyRider", get_bool(218) ? "X" : "");
|
||||
colors.set("ToolText", get_bool(219) ? "X" : "");
|
||||
|
||||
if (colors.get_paragraph() == "Colors") // nel caso di default CONFIG_GUI
|
||||
colors.set("FontDesc", _font_desc, "Font"); // per tradizione e' nel paragrafo Font
|
||||
else
|
||||
colors.set("FontDesc", _font_desc); // il font e' insieme al resto
|
||||
}
|
||||
|
||||
void TColor_mask::save_colors()
|
||||
{
|
||||
TConfig colors(CONFIG_GUI, "Colors");
|
||||
save_colors(colors);
|
||||
}
|
||||
|
||||
COLOR TColor_mask::get_color_entry(const char* name) const
|
||||
@ -690,23 +820,19 @@ bool TMenu_application::menu_item_handler(TMask_field&f, KEY k)
|
||||
|
||||
bool TMenu_application::menu_find_handler(TMask_field&f, KEY k)
|
||||
{
|
||||
if (k == K_TAB && f.focusdirty())
|
||||
if (k == K_TAB && f.focusdirty() && !f.empty())
|
||||
{
|
||||
const TString& v = f.get();
|
||||
if (v.not_empty())
|
||||
{
|
||||
TPicture_mask& m = (TPicture_mask&)f.mask();
|
||||
if (app()._menu.find_string(v))
|
||||
{
|
||||
f.set_focusdirty(false);
|
||||
return m.stop_run(K_F9);
|
||||
}
|
||||
else
|
||||
{
|
||||
beep();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (app()._menu.find_string(v))
|
||||
{
|
||||
f.set_focusdirty(false);
|
||||
return f.mask().stop_run(K_F9);
|
||||
}
|
||||
else
|
||||
{
|
||||
beep();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -835,9 +961,7 @@ bool TMenu_application::ask_user_password(TString& utente)
|
||||
bool ok = false;
|
||||
|
||||
// Disabilita le voci di personalizzazione
|
||||
int mi;
|
||||
for (mi = 2; mi <= 7; mi++)
|
||||
disable_menu_item(MENU_ITEM(mi));
|
||||
enable_options_menu(false);
|
||||
|
||||
TMask m("ba0100a");
|
||||
|
||||
@ -942,8 +1066,7 @@ bool TMenu_application::ask_user_password(TString& utente)
|
||||
}
|
||||
|
||||
// Abilita le voci di personalizzazione
|
||||
for (mi = 2; mi <= 7; mi++)
|
||||
enable_menu_item(MENU_ITEM(mi));
|
||||
enable_options_menu(true);
|
||||
|
||||
return ok;
|
||||
}
|
||||
@ -1318,30 +1441,46 @@ void TMenu_application::main_loop()
|
||||
}
|
||||
}
|
||||
|
||||
void enable_options_menu(bool on)
|
||||
{
|
||||
const WINDOW tw = TASK_WIN;
|
||||
xvt_menu_set_item_enabled(tw, M_FILE_NEW, on); // Cambio ditta
|
||||
xvt_menu_set_item_enabled(tw, M_FILE_PG_SETUP, on); // Imposta Stampante
|
||||
for (int i = 2; i <= 7; i++) // Menu opzioni
|
||||
xvt_menu_set_item_enabled(tw, MENU_ITEM(i), on);
|
||||
xvt_menu_update(tw);
|
||||
}
|
||||
|
||||
bool TMenu_application::choose_colors()
|
||||
{
|
||||
disable_menu_item(OPTIONS_MENU);
|
||||
TColor_mask* cm = new TColor_mask();
|
||||
const bool ok = cm->run() == K_ENTER;
|
||||
if (ok)
|
||||
enable_options_menu(false);
|
||||
|
||||
bool update_needed = false;
|
||||
KEY key = K_CTRL+'R';
|
||||
while (key == K_CTRL+'R')
|
||||
{
|
||||
_tree_view = cm->get_int(216); // Aggiorna stile menu
|
||||
cm->save_colors(); // Aggiorna config
|
||||
customize_colors(); // Aggiorna set di colori
|
||||
|
||||
reload_images(); // Aggiorna bitmaps del menu
|
||||
|
||||
// Ridisegna sfondo
|
||||
TTemp_window tw(TASK_WIN);
|
||||
tw.force_update();
|
||||
|
||||
// Provoca chiusura forzata del menu
|
||||
if (_mask != NULL)
|
||||
_mask->stop_run(K_CTRL + 'R');
|
||||
TColor_mask cm;
|
||||
key = cm.run();
|
||||
if (key == K_ENTER || key == K_CTRL+'R') // Salva o Applica
|
||||
{
|
||||
_tree_view = cm.get_int(216); // Aggiorna stile menu
|
||||
cm.save_colors(); // Aggiorna config
|
||||
customize_colors(); // Aggiorna set di colori
|
||||
reload_images(); // Aggiorna bitmaps del menu
|
||||
|
||||
// Ridisegna sfondo
|
||||
TTemp_window tw(TASK_WIN);
|
||||
tw.force_update();
|
||||
update_needed = true;
|
||||
}
|
||||
}
|
||||
delete cm;
|
||||
enable_menu_item(OPTIONS_MENU);
|
||||
return ok;
|
||||
|
||||
// Provoca chiusura forzata del menu
|
||||
if (update_needed && _mask != NULL)
|
||||
_mask->stop_run(K_CTRL + 'R');
|
||||
|
||||
enable_options_menu(true);
|
||||
return key == K_ENTER;
|
||||
}
|
||||
|
||||
HIDDEN bool browse_file_handler(TMask_field& f, KEY k)
|
||||
@ -1350,23 +1489,15 @@ HIDDEN bool browse_file_handler(TMask_field& f, KEY k)
|
||||
|
||||
if (k == K_F9)
|
||||
{
|
||||
FILE_SPEC fs; memset(&fs, 0, sizeof(FILE_SPEC));
|
||||
xvt_fsys_convert_str_to_dir(".", &fs.dir);
|
||||
#ifdef WIN32
|
||||
strcpy(fs.type, "EXE");
|
||||
#endif
|
||||
strcpy(fs.name, f.get());
|
||||
strcpy(fs.creator, "MENU");
|
||||
|
||||
DIRECTORY dir;
|
||||
xvt_fsys_get_dir(&dir);
|
||||
TFilename n = f.get(); n.ext("exe");
|
||||
FILE_SPEC fs; xvt_fsys_convert_str_to_fspec(n, &fs);
|
||||
|
||||
//DIRECTORY dir; xvt_fsys_get_dir(&dir);
|
||||
const int err = xvt_dm_post_file_open(&fs, TR("Selezione programma"));
|
||||
xvt_fsys_set_dir(&dir);
|
||||
//xvt_fsys_set_dir(&dir);
|
||||
if (err == FL_OK)
|
||||
{
|
||||
TFilename n;
|
||||
xvt_fsys_convert_dir_to_str(&fs.dir, n.get_buffer(), n.size());
|
||||
n.add(fs.name);
|
||||
xvt_fsys_convert_fspec_to_str(&fs, n.get_buffer(), n.size());
|
||||
f.set(n);
|
||||
}
|
||||
}
|
||||
@ -1402,7 +1533,7 @@ HIDDEN bool link_notify(TSheet_field& s, int r, KEY k)
|
||||
|
||||
bool TMenu_application::choose_editors()
|
||||
{
|
||||
disable_menu_item(OPTIONS_MENU);
|
||||
enable_options_menu(false);
|
||||
|
||||
TConfig link(CONFIG_GUI, "Link");
|
||||
|
||||
@ -1443,7 +1574,7 @@ bool TMenu_application::choose_editors()
|
||||
}
|
||||
delete msk;
|
||||
|
||||
enable_menu_item(OPTIONS_MENU);
|
||||
enable_options_menu(true);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -1505,9 +1636,7 @@ HIDDEN bool study_handler(TMask_field& f, KEY k)
|
||||
bool TMenu_application::choose_study()
|
||||
{
|
||||
// Disbilita le voci di personalizzazione
|
||||
int mi;
|
||||
for (mi = 2; mi <= 7; mi++)
|
||||
disable_menu_item(MENU_ITEM(mi));
|
||||
enable_options_menu(false);
|
||||
|
||||
TMask m(TR("Scelta studio"), 1, 62, 4);
|
||||
m.add_button(DLG_OK, 0, "", -12, -1, 10, 2);
|
||||
@ -1533,8 +1662,7 @@ bool TMenu_application::choose_study()
|
||||
}
|
||||
|
||||
// Abilita le voci di personalizzazione
|
||||
for (mi = 2; mi <= 7; mi++)
|
||||
enable_menu_item(MENU_ITEM(mi));
|
||||
enable_options_menu(true);
|
||||
|
||||
return ok;
|
||||
}
|
||||
@ -1918,13 +2046,17 @@ int TMenu_application::do_outlook()
|
||||
return key == K_QUIT ? -2 : 0;
|
||||
}
|
||||
|
||||
bool TMenu_application::firm_change_enabled() const
|
||||
{
|
||||
return _mask != NULL; // Impedisci il cambio ditta durante il login
|
||||
}
|
||||
|
||||
void TMenu_application::on_firm_change()
|
||||
{
|
||||
TConfig cfgs(CONFIG_STUDIO, "Main"); // Forza creazione STUDIO.INI copiandolo eventulamente da PRASSIS.INI
|
||||
TConfig cfgd(CONFIG_DITTA, "ba"); // Forza creazione DITTA.INI copiandolo eventulamente da PRASSID.INI
|
||||
}
|
||||
|
||||
|
||||
bool TMenu_application::menu(MENU_TAG mt)
|
||||
{
|
||||
bool ok = true;
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include <applicat.h>
|
||||
#include <dongle.h>
|
||||
#include <execp.h>
|
||||
#include <mask.h>
|
||||
#include <modaut.h>
|
||||
#include <nditte.h>
|
||||
@ -632,7 +633,7 @@ TSubmenu* TMenu::find_string(const TString& str)
|
||||
TSubmenu* TMenu::find_parent(const TSubmenu& sub)
|
||||
{
|
||||
restart();
|
||||
TSubmenu* sm;
|
||||
TSubmenu* sm = NULL;
|
||||
for (sm = (TSubmenu*)get(); sm; sm = (TSubmenu*)get())
|
||||
{
|
||||
for (int i = sm->items()-1; i >= 0; i--)
|
||||
|
@ -49,18 +49,18 @@ HIDDEN bool find_string_callback(TTree& tree, void* jolly, word flags)
|
||||
const TSubmenu& sm = mt.curr_submenu();
|
||||
|
||||
if (sm.disabled())
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
TFind_string_data& data = *(TFind_string_data*)jolly;
|
||||
if (data._ignore_list->is_key(sm.name()))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
TString desc; mt.get_description(desc);
|
||||
desc.upper();
|
||||
if (desc.find(data._str) >= 0 || desc.match(data._str))
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
HIDDEN bool find_node_callback(TTree& tree, void* jolly, word flags)
|
||||
|
@ -124,5 +124,6 @@ public:
|
||||
void synchronize_tree_field(TTree_field& tf);
|
||||
bool can_be_transparent(const TImage& i);
|
||||
void draw_spider(WINDOW win, int mode, const PNT& mouse);
|
||||
void enable_options_menu(bool on);
|
||||
|
||||
#endif
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
#include <config.h>
|
||||
#include <defmask.h>
|
||||
#include <diction.h>
|
||||
#include <execp.h>
|
||||
#include <prefix.h>
|
||||
#include <xvtility.h>
|
||||
|
||||
@ -189,7 +191,8 @@ short TBook_window::add_page(const TString& caption)
|
||||
xvt_vobj_get_client_rect(win(), &wd.rct);
|
||||
_ctrl = xvt_ctl_create_def(&wd, win(), 0L);
|
||||
// Blocca le dimensioni del pannello (Non va micca!)
|
||||
xvt_pane_set_size_range(win(), wd.rct.right, wd.rct.right, wd.rct.right);
|
||||
xvt_pane_set_size_range(win(), wd.rct.right, wd.rct.right, wd.rct.right);
|
||||
enable_options_menu(false); // Disabilita le opzioni
|
||||
}
|
||||
|
||||
TString256 cap;
|
||||
@ -259,6 +262,7 @@ void TBook_window::erode_antipa()
|
||||
xvt_notebk_rem_page(_ctrl, p);
|
||||
xvt_vobj_destroy(_ctrl);
|
||||
_ctrl = NULL_WIN;
|
||||
enable_options_menu(true); // Riabilita le opzioni
|
||||
}
|
||||
}
|
||||
|
||||
@ -410,6 +414,18 @@ void TOutlook_mask::handler(WINDOW w, EVENT* ep)
|
||||
load_perspective(0); // Ricarica default
|
||||
break;
|
||||
case 8003:
|
||||
xvt_dm_post_string_prompt(TR("Testo da cercare"),
|
||||
_last_search.get_buffer(), _last_search.size());
|
||||
// continue to 8004
|
||||
case 8004:
|
||||
if (_last_search.full() && _tree.find_string(_last_search))
|
||||
{
|
||||
TTree_field& tf = tfield(DLG_TREE);
|
||||
synchronize_tree_field(tf);
|
||||
tf.select_current();
|
||||
}
|
||||
break;
|
||||
case 8005:
|
||||
dispatch_e_menu(TASK_WIN, M_FILE_ABOUT);
|
||||
break;
|
||||
case 8883:
|
||||
|
@ -5,10 +5,6 @@
|
||||
#include "ba0102.h"
|
||||
#endif
|
||||
|
||||
#ifndef __EXECP_H
|
||||
#include <execp.h>
|
||||
#endif
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TOutlook_mask
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -20,6 +16,7 @@ class TOutlook_mask : public TSpidey_mask
|
||||
|
||||
TString _per_def, _per_tmp;
|
||||
bool _locked;
|
||||
TString _last_search;
|
||||
|
||||
protected:
|
||||
virtual void handler(WINDOW w, EVENT* ep);
|
||||
|
@ -90,36 +90,12 @@ BEGIN
|
||||
PROMPT 38 11 "Sfondo"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 32 3
|
||||
LISTBOX 211 1 15
|
||||
BEGIN
|
||||
PROMPT 1 5 "@bTemi predefiniti"
|
||||
END
|
||||
|
||||
LISTBOX 211 1 12
|
||||
BEGIN
|
||||
PROMPT 2 6 "Tema "
|
||||
ITEM "0|Campo"
|
||||
ITEM "1|Sistema"
|
||||
END
|
||||
|
||||
BUTTON 212 8 1
|
||||
BEGIN
|
||||
PROMPT 22 6 "Applica"
|
||||
END
|
||||
|
||||
BUTTON DLG_USER 12 2
|
||||
BEGIN
|
||||
PROMPT -33 13 "Font"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 12 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 12 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
PROMPT 1 5 "Temi predefiniti "
|
||||
ITEM "0|"
|
||||
ITEM "1|Campo"
|
||||
ITEM "2|Sistema"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
@ -148,12 +124,12 @@ END
|
||||
|
||||
BOOLEAN 219
|
||||
BEGIN
|
||||
PROMPT 1 5 "Visualizza il testo negli strumenti della barra"
|
||||
PROMPT 1 5 "Mostra il testo degli strumenti"
|
||||
END
|
||||
|
||||
RADIOBUTTON 216 1 16
|
||||
BEGIN
|
||||
PROMPT 32 0 "Tipo di Menu"
|
||||
PROMPT 36 0 "Tipo di Menu"
|
||||
ITEM "0|Normale"
|
||||
ITEM "1|Albero"
|
||||
ITEM "2|Explorer"
|
||||
@ -171,14 +147,42 @@ BEGIN
|
||||
RANGE 0 14
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 12 2
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_SAVEREC 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
PROMPT -16 -1 "Salva"
|
||||
PICTURE BMP_SAVEREC
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 12 2
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
PROMPT -26 -1 "Applica"
|
||||
END
|
||||
|
||||
BUTTON DLG_NEWREC 10 2
|
||||
BEGIN
|
||||
PROMPT -36 -1 "Nuovo tema"
|
||||
PICTURE BMP_NEWREC
|
||||
END
|
||||
|
||||
BUTTON DLG_DELREC 10 2
|
||||
BEGIN
|
||||
PROMPT -46 -1 "Elimina tema"
|
||||
PICTURE BMP_DELREC
|
||||
END
|
||||
|
||||
BUTTON DLG_USER 10 2
|
||||
BEGIN
|
||||
PROMPT -56 -1 "Font"
|
||||
PICTURE BMP_FONT
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -66 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
Loading…
x
Reference in New Issue
Block a user