Patch level : 10.0
Files correlati : ba0 ba8 Ricompilazione Demo : [ ] Commento : Aggiornato uso alberi corretti in menu e report Sistemata interazione tra menu e programmi di manutenzione git-svn-id: svn://10.65.10.50/trunk@16616 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
06f1cf32e3
commit
49950ba913
@ -303,15 +303,15 @@ bool TMenuitem::perform_program() const
|
||||
}
|
||||
else
|
||||
{
|
||||
prefix().set(NULL); // Chiude prefix
|
||||
if (submenu().menu().mask_mode() == 3)
|
||||
if (submenu().menu().mask_mode() == 3 && !_action.starts_with("ba1 -"))
|
||||
a.run(true, 3, false); //e' un programma asincrono
|
||||
else
|
||||
{
|
||||
a.run(false, 3); //e' un programma sincrono
|
||||
printer_destroy(); // Forza rilettura parametri della stampante
|
||||
prefix().set(NULL); // Chiude prefix
|
||||
a.run(false, 3); // e' un programma sincrono
|
||||
printer_destroy(); // Forza rilettura parametri della stampante
|
||||
prefix().set("DEF"); // Riapre prefix
|
||||
}
|
||||
prefix().set("DEF"); // Riapre prefix
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -271,12 +271,19 @@ long TMenu_tree::find_node(const TString& id)
|
||||
return data._count;
|
||||
}
|
||||
|
||||
void TMenu_tree::change_root(const char* rid)
|
||||
{
|
||||
_root_id = rid;
|
||||
const int dot = _root_id.find('.');
|
||||
if (dot > 0)
|
||||
_root_id.cut(dot);
|
||||
goto_root();
|
||||
}
|
||||
|
||||
TMenu_tree::TMenu_tree(TMenu& menu)
|
||||
: _menu(&menu), _curr_id(128, '/')
|
||||
{
|
||||
// _root_id = _menu->current().name();
|
||||
_root_id = "MENU_000"; // Triste necessita' per sicurezza
|
||||
goto_root();
|
||||
change_root("MENU_000");
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
@ -54,6 +54,7 @@ public:
|
||||
bool find_leaf(const TString& str);
|
||||
bool find_string(const TString& str);
|
||||
long find_node(const TString& id);
|
||||
void change_root(const char* id);
|
||||
|
||||
TMenu_tree(TMenu& menu);
|
||||
virtual ~TMenu_tree() { }
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "ba0103.h"
|
||||
|
||||
#include <defmask.h>
|
||||
#include <prefix.h>
|
||||
#include <xvtility.h>
|
||||
|
||||
enum { DLG_TREE = 101, DLG_LOOK = 102, DLG_MAIN = 103 };
|
||||
@ -199,11 +200,12 @@ bool TBook_window::remove_page(WINDOW page)
|
||||
for (int p = pages()-1; p >= 0; p--)
|
||||
{
|
||||
WINDOW win = xvt_notebk_get_page(_ctrl, p);
|
||||
if (win == page)
|
||||
if (win == page || page == NULL_WIN)
|
||||
{
|
||||
xvt_notebk_rem_page(_ctrl, p);
|
||||
bFound = true;
|
||||
break;
|
||||
if (page != NULL_WIN)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (bFound)
|
||||
@ -257,6 +259,7 @@ public:
|
||||
|
||||
short add_page(const TString& caption);
|
||||
void set_page_caption(short page, const TString& caption);
|
||||
void remove_all_pages();
|
||||
TBook_field(TMask* m) : TWindowed_field(m) {}
|
||||
};
|
||||
|
||||
@ -272,6 +275,12 @@ void TBook_field::set_page_caption(short page, const TString& caption)
|
||||
bw.set_page_caption(page, caption);
|
||||
}
|
||||
|
||||
void TBook_field::remove_all_pages()
|
||||
{
|
||||
TBook_window& bw = (TBook_window&)win();
|
||||
bw.remove_page(NULL_WIN);
|
||||
}
|
||||
|
||||
TField_window* TBook_field::create_window(int x, int y, int dx, int dy, WINDOW parent)
|
||||
{
|
||||
return new TBook_window(x, y, dx, dy, parent, this);
|
||||
@ -304,7 +313,7 @@ bool TOutlook_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
||||
switch (o.dlg())
|
||||
{
|
||||
case DLG_TREE:
|
||||
if (e == fe_modify)
|
||||
if (e == fe_button)
|
||||
{
|
||||
const TMenuitem& mi = _tree.curr_item();
|
||||
if (mi.enabled())
|
||||
@ -316,21 +325,25 @@ bool TOutlook_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mi.action() != "ba1 -5")
|
||||
const bool manu = mi.action().starts_with("ba1 -");
|
||||
if (manu) // Manutenzione di qualsiasi cosa
|
||||
{
|
||||
const short pg = add_page(mi.caption());
|
||||
if (pg >= 0)
|
||||
{
|
||||
mi.perform();
|
||||
xvt_sys_sleep(1000);
|
||||
set_page_caption(pg, mi.caption());
|
||||
}
|
||||
TBook_field& bf = (TBook_field&)field(DLG_MAIN);
|
||||
bf.remove_all_pages(); // Chiude tutti i programmi in corso
|
||||
mi.perform(); // Esegui in sincrono e a tutto schermo
|
||||
if (installing()) // when ba1 -6
|
||||
stop_run(K_FORCE_CLOSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
mi.perform();
|
||||
if (installing()) // Always true
|
||||
stop_run(K_FORCE_CLOSE);
|
||||
// Crea una pagina per accogliere la nuova applicazione asincrona
|
||||
const short pg = add_page(mi.caption());
|
||||
if (pg >= 0)
|
||||
{
|
||||
mi.perform(); // Esegui in asincrono in pagina nuova
|
||||
xvt_sys_sleep(1000);
|
||||
set_page_caption(pg, mi.caption());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -339,10 +352,14 @@ bool TOutlook_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
||||
case DLG_LOOK:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
TToken_string id("MENU_000", '/');
|
||||
_tree.change_root(id); // Torna alla radice standard
|
||||
const int sel = atoi(o.get());
|
||||
_tree.goto_root();
|
||||
for (int i = 0; i < sel; i++)
|
||||
_tree.goto_rbrother();
|
||||
_tree.goto_rbrother(); // Seglie l'opportuno ramo principale
|
||||
_tree.goto_firstson();
|
||||
_tree.curr_id(id);
|
||||
_tree.change_root(id.get(1)); // Imposta una nuova radice
|
||||
synchronize_tree_field(tfield(DLG_TREE));
|
||||
}
|
||||
break;
|
||||
|
@ -1,4 +1,4 @@
|
||||
PAGE "Colori" -1 -1 54 19
|
||||
PAGE "Colori" -1 -1 54 17
|
||||
|
||||
GROUPBOX DLG_NULL 16 5
|
||||
BEGIN
|
||||
@ -60,7 +60,6 @@ BEGIN
|
||||
PROMPT 38 3 "Obbligatorio"
|
||||
END
|
||||
|
||||
|
||||
GROUPBOX DLG_NULL 16 4
|
||||
BEGIN
|
||||
PROMPT 37 5 "@bAttivo"
|
||||
@ -91,34 +90,24 @@ BEGIN
|
||||
PROMPT 38 11 "Sfondo"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 16 4
|
||||
GROUPBOX DLG_NULL 32 3
|
||||
BEGIN
|
||||
PROMPT 37 13 "@bTemi predefiniti"
|
||||
PROMPT 1 12 "@bTemi predefiniti"
|
||||
END
|
||||
|
||||
BUTTON 211 12
|
||||
BEGIN
|
||||
PROMPT 38 14 "Campo"
|
||||
PROMPT 2 13 "Campo"
|
||||
END
|
||||
|
||||
BUTTON 212 12
|
||||
BEGIN
|
||||
PROMPT 38 15 "Sistema"
|
||||
PROMPT 18 13 "Sistema"
|
||||
END
|
||||
|
||||
BOOLEAN 213
|
||||
BUTTON DLG_USER 12 2
|
||||
BEGIN
|
||||
PROMPT 2 17 "Campi 3D"
|
||||
END
|
||||
|
||||
BOOLEAN 214
|
||||
BEGIN
|
||||
PROMPT 15 17 "Bottoni di sistema"
|
||||
END
|
||||
|
||||
BOOLEAN 215
|
||||
BEGIN
|
||||
PROMPT 36 17 "Grafica avanzata"
|
||||
PROMPT -33 13 "Font"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 12 2
|
||||
@ -126,10 +115,53 @@ BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_EDIT 12 2
|
||||
BUTTON DLG_CANCEL 12 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 "Font"
|
||||
PICTURE 116
|
||||
PROMPT -33 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Avanzate" -1 -1 54 17
|
||||
|
||||
BOOLEAN 213
|
||||
BEGIN
|
||||
PROMPT 1 1 "Campi 3D"
|
||||
END
|
||||
|
||||
BOOLEAN 214
|
||||
BEGIN
|
||||
PROMPT 1 2 "Bottoni di sistema"
|
||||
END
|
||||
|
||||
BOOLEAN 215
|
||||
BEGIN
|
||||
PROMPT 1 3 "Grafica avanzata"
|
||||
END
|
||||
|
||||
RADIOBUTTON 216 1 16
|
||||
BEGIN
|
||||
PROMPT 24 0 "Tipo di Menu"
|
||||
ITEM "0|Normale"
|
||||
ITEM "1|Albero"
|
||||
ITEM "2|Explorer"
|
||||
ITEM "3|Outlook"
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT -11 8 "Dimensione barra degli strumenti"
|
||||
END
|
||||
|
||||
SLIDER 217 50 1
|
||||
BEGIN
|
||||
PROMPT 1 9 "Dimensione icone"
|
||||
RANGE 0 14
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 12 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 12 2
|
||||
|
@ -1,4 +1,3 @@
|
||||
#define F_PREF_TREE 200
|
||||
#define F_PREF_SHEET 201
|
||||
#define F_PREF_UP 202
|
||||
#define F_PREF_DN 203
|
||||
|
@ -2,15 +2,6 @@
|
||||
|
||||
PAGE "Preferiti" -1 -1 70 16
|
||||
|
||||
LIST F_PREF_TREE 1 10
|
||||
BEGIN
|
||||
PROMPT 1 0 "Tipo di Menu"
|
||||
ITEM " |Normale"
|
||||
ITEM "1|Albero"
|
||||
ITEM "2|Explorer"
|
||||
ITEM "3|Outlook"
|
||||
END
|
||||
|
||||
SPREADSHEET F_PREF_SHEET 63 -3
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
|
@ -459,8 +459,8 @@ protected:
|
||||
|
||||
protected:
|
||||
bool select_report();
|
||||
void select_section();
|
||||
void update_report() const;
|
||||
void select_section(bool rebuild_tree = false);
|
||||
void update_report(bool rebuild_tree = false) const;
|
||||
|
||||
TReport_section& curr_section();
|
||||
void add_field();
|
||||
@ -586,7 +586,7 @@ bool TReport_mask::load_report()
|
||||
TTree_field& sections = tfield(F_SECTIONS);
|
||||
_tree.goto_node('B', 1);
|
||||
sections.select_current();
|
||||
select_section();
|
||||
select_section(true);
|
||||
xvt_notebk_set_tab_title(notebook(), 0, path); // Mette il titolo nel tab button
|
||||
}
|
||||
}
|
||||
@ -633,7 +633,7 @@ TReport_section& TReport_mask::curr_section()
|
||||
return *_curr_section;
|
||||
}
|
||||
|
||||
void TReport_mask::select_section()
|
||||
void TReport_mask::select_section(bool rebuild)
|
||||
{
|
||||
TTree_field& tf = tfield(F_SECTIONS);
|
||||
tf.select_current();
|
||||
@ -699,13 +699,19 @@ void TReport_mask::select_section()
|
||||
TReport_drawer& rdh = (TReport_drawer&)field(F_REPORTH);
|
||||
rdh.set_report_section(_report.section(htype, hlevel));
|
||||
|
||||
update_report();
|
||||
update_report(rebuild);
|
||||
}
|
||||
|
||||
void TReport_mask::update_report() const
|
||||
void TReport_mask::update_report(bool rebuild) const
|
||||
{
|
||||
TTree_field& tf = tfield(F_SECTIONS);
|
||||
tf.win().TWindow::force_update(); // Redraw only, not rebuild
|
||||
if (rebuild)
|
||||
{
|
||||
tf.tree()->goto_root();
|
||||
tf.win().force_update(); // Rebuild tree
|
||||
}
|
||||
else
|
||||
tf.win().TWindow::force_update(); // Redraw only, do NOT rebuild
|
||||
|
||||
TReport_drawer& rdh = (TReport_drawer&)field(F_REPORTH);
|
||||
rdh.win().force_update();
|
||||
|
Loading…
x
Reference in New Issue
Block a user