Corretto caricamento menu esterni a quelo principale
git-svn-id: svn://10.65.10.50/trunk@4848 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
14e8270b50
commit
790cd0ba43
55
ba/ba0.cpp
55
ba/ba0.cpp
@ -438,7 +438,6 @@ public:
|
|||||||
|
|
||||||
class TMenu : public TAssoc_array
|
class TMenu : public TAssoc_array
|
||||||
{
|
{
|
||||||
TString _last_read;
|
|
||||||
TSubmenu* _current;
|
TSubmenu* _current;
|
||||||
int _item;
|
int _item;
|
||||||
TStack _stack;
|
TStack _stack;
|
||||||
@ -446,8 +445,8 @@ class TMenu : public TAssoc_array
|
|||||||
TAssoc_array _images;
|
TAssoc_array _images;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void read(const char* name);
|
bool read(const char* name); // First call
|
||||||
const TString& last_read() const { return _last_read; }
|
bool read(const char* name, TString& root);
|
||||||
|
|
||||||
TSubmenu& current() const { return *_current; }
|
TSubmenu& current() const { return *_current; }
|
||||||
TSubmenu* find(const char* name) const { return (TSubmenu*)objptr(name); }
|
TSubmenu* find(const char* name) const { return (TSubmenu*)objptr(name); }
|
||||||
@ -501,8 +500,9 @@ void TMenuitem::create(const char* t)
|
|||||||
|
|
||||||
if (_type == '<')
|
if (_type == '<')
|
||||||
{
|
{
|
||||||
menu().read(_action);
|
if (_action.find('.') < 0)
|
||||||
_action = menu().last_read();
|
_action << ".men";
|
||||||
|
menu().read(_action, _action);
|
||||||
_type = '[';
|
_type = '[';
|
||||||
if (_action.empty())
|
if (_action.empty())
|
||||||
_enabled = FALSE;
|
_enabled = FALSE;
|
||||||
@ -719,13 +719,12 @@ bool TSubmenu::perform(int i)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMenu::read(const char* name)
|
bool TMenu::read(const char* name, TString& root)
|
||||||
{
|
{
|
||||||
_last_read.cut(0);
|
|
||||||
bool first = TRUE;
|
|
||||||
|
|
||||||
TScanner scanner(name);
|
|
||||||
TString str;
|
TString str;
|
||||||
|
bool first = TRUE;
|
||||||
|
|
||||||
|
TScanner scanner(name);
|
||||||
while (scanner.ok())
|
while (scanner.ok())
|
||||||
{
|
{
|
||||||
const TString& line = first ? scanner.line() : scanner.pop();
|
const TString& line = first ? scanner.line() : scanner.pop();
|
||||||
@ -737,7 +736,7 @@ void TMenu::read(const char* name)
|
|||||||
|
|
||||||
if (first)
|
if (first)
|
||||||
{
|
{
|
||||||
_last_read = str;
|
root = str;
|
||||||
first = FALSE;
|
first = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -746,15 +745,24 @@ void TMenu::read(const char* name)
|
|||||||
TSubmenu* mnu = new TSubmenu(this, str);
|
TSubmenu* mnu = new TSubmenu(this, str);
|
||||||
mnu->read(scanner);
|
mnu->read(scanner);
|
||||||
add(str, mnu);
|
add(str, mnu);
|
||||||
if (_current == NULL)
|
|
||||||
{
|
|
||||||
_current = mnu;
|
|
||||||
_item = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
break; // Menu gia' caricato!
|
break; // Menu gia' caricato!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return first == FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TMenu::read(const char* name)
|
||||||
|
{
|
||||||
|
TString root;
|
||||||
|
bool ok = read(name, root);
|
||||||
|
if (ok && _current == NULL)
|
||||||
|
{
|
||||||
|
_current = find(root);
|
||||||
|
_item = 0;
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TMenu::jumpto(TSubmenu* next)
|
bool TMenu::jumpto(TSubmenu* next)
|
||||||
@ -856,7 +864,6 @@ void TMenu::reload_images()
|
|||||||
i.load(name);
|
i.load(name);
|
||||||
i.convert_transparent_color(MASK_BACK_COLOR);
|
i.convert_transparent_color(MASK_BACK_COLOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -1241,19 +1248,7 @@ bool TMenu_application::check_user()
|
|||||||
|
|
||||||
#if XVT_OS == XVT_OS_WIN
|
#if XVT_OS == XVT_OS_WIN
|
||||||
if (ok && utente != "PRASSI")
|
if (ok && utente != "PRASSI")
|
||||||
{
|
|
||||||
/*
|
|
||||||
TDDE dde;
|
|
||||||
if (dde.initiate("PROGMAN", "PROGMAN"))
|
|
||||||
{
|
|
||||||
dde.execute("[ReplaceItem(PR.A.S.S.I.)]");
|
|
||||||
TString cmd(80);
|
|
||||||
cmd << "[AddItem(" << argv(0) << " /u" << utente << ",PR.A.S.S.I.)]";
|
|
||||||
dde.execute(cmd);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
WritePrivateProfileString("User", "Name", utente, "prassi.ini");
|
WritePrivateProfileString("User", "Name", utente, "prassi.ini");
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return ok;
|
return ok;
|
||||||
@ -1272,7 +1267,7 @@ bool TMenu_application::create()
|
|||||||
TScanner scanner("prassi.aut");
|
TScanner scanner("prassi.aut");
|
||||||
for (int aut = 0; scanner.line() != ""; aut++)
|
for (int aut = 0; scanner.line() != ""; aut++)
|
||||||
_modules.add(scanner.token());
|
_modules.add(scanner.token());
|
||||||
|
|
||||||
_menu.read("prassi.men");
|
_menu.read("prassi.men");
|
||||||
|
|
||||||
dispatch_e_menu(MENU_ITEM(1));
|
dispatch_e_menu(MENU_ITEM(1));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user