Patch level : 10.0
Files correlati : ba0.exe Ricompilazione Demo : [ ] Commento : 0000987: concomitanze non si riesce ad aprire contemporanemente la stampa dei movimenti di magazzino e la lista dei movimenti contabili. git-svn-id: svn://10.65.10.50/trunk@17994 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8c474f47ef
commit
9baebfb812
@ -22,12 +22,14 @@ class TBook_window;
|
||||
class TApp_window : public TWindow
|
||||
{
|
||||
TBook_window* _owner;
|
||||
TString _appname;
|
||||
|
||||
protected:
|
||||
virtual void handler(WINDOW win, EVENT* ep);
|
||||
|
||||
public:
|
||||
TApp_window(TBook_window* owner);
|
||||
const TString& app_name() const { return _appname; }
|
||||
TApp_window(TBook_window* owner, const char* appname);
|
||||
~TApp_window();
|
||||
};
|
||||
|
||||
@ -46,7 +48,7 @@ public:
|
||||
WINDOW notebook() const { return _ctrl; }
|
||||
short pages() const;
|
||||
WINDOW page_win(short pg);
|
||||
short add_page(const TString& caption);
|
||||
short add_page(const TMenuitem& mi);
|
||||
void set_page_caption(short page, const TString& caption, int icon);
|
||||
bool remove_page(WINDOW page);
|
||||
void set_logo(const char* logo);
|
||||
@ -89,7 +91,7 @@ void TApp_window::handler(WINDOW win, EVENT* ep)
|
||||
TWindow::handler(win, ep);
|
||||
}
|
||||
|
||||
TApp_window::TApp_window(TBook_window* owner) : _owner(owner)
|
||||
TApp_window::TApp_window(TBook_window* owner, const char* appname) : _owner(owner), _appname(appname)
|
||||
{
|
||||
WINDOW w = create(0, 0, -1, -1, __MAGIC_CAPTION__, WSF_NONE, W_PLAIN, owner->notebook());
|
||||
xvt_timer_create(w, 1500); // Ogni tanto controllo se l'applicazione e' ancora viva
|
||||
@ -185,7 +187,7 @@ WINDOW TBook_window::page_win(short pg)
|
||||
return win;
|
||||
}
|
||||
|
||||
short TBook_window::add_page(const TString& caption)
|
||||
short TBook_window::add_page(const TMenuitem& mi)
|
||||
{
|
||||
if (_ctrl == NULL_WIN)
|
||||
{
|
||||
@ -208,18 +210,19 @@ short TBook_window::add_page(const TString& caption)
|
||||
enable_options_menu(false); // Disabilita le opzioni
|
||||
}
|
||||
|
||||
TString256 cap;
|
||||
for (short pg = pages()-1; pg >= 0; pg--)
|
||||
{
|
||||
xvt_notebk_get_tab_title(_ctrl, pg, cap.get_buffer(), cap.size());
|
||||
if (cap.compare(caption, -1, true) == 0)
|
||||
WINDOW awin = xvt_notebk_get_page(_ctrl, pg);
|
||||
TApp_window* w = (TApp_window*)xvt_vobj_get_data(awin);
|
||||
if (w != NULL && w->app_name() == mi.action())
|
||||
{
|
||||
force_page(pg);
|
||||
return -1; // Don't perform menu!
|
||||
}
|
||||
}
|
||||
TApp_window* w = new TApp_window(this);
|
||||
const short pg = xvt_notebk_add_page(_ctrl, w->win(), caption, NULL, -1);
|
||||
|
||||
TApp_window* w = new TApp_window(this, mi.action());
|
||||
const short pg = xvt_notebk_add_page(_ctrl, w->win(), mi.caption(), NULL, -1);
|
||||
if (pg >= 0)
|
||||
force_page(pg);
|
||||
else
|
||||
@ -313,7 +316,7 @@ public:
|
||||
virtual void create(short dlg, int x, int y, int dx, int dy, WINDOW parent);
|
||||
|
||||
short pages() const;
|
||||
short add_page(const TString& caption);
|
||||
short add_page(const TMenuitem& mi);
|
||||
void set_page_caption(short page, const TString& caption, int icon);
|
||||
WINDOW page_win(short page);
|
||||
void remove_all_pages();
|
||||
@ -326,10 +329,10 @@ short TBook_field::pages() const
|
||||
return bw.pages();
|
||||
}
|
||||
|
||||
short TBook_field::add_page(const TString& caption)
|
||||
short TBook_field::add_page(const TMenuitem& mi)
|
||||
{
|
||||
TBook_window& bw = (TBook_window&)win();
|
||||
return bw.add_page(caption);
|
||||
return bw.add_page(mi);
|
||||
}
|
||||
|
||||
void TBook_field::set_page_caption(short page, const TString& caption, int icon)
|
||||
@ -417,12 +420,12 @@ bool TOutlook_mask::can_be_closed() const
|
||||
return yes;
|
||||
}
|
||||
|
||||
short TOutlook_mask::add_page(const TString& caption)
|
||||
short TOutlook_mask::add_page(const TMenuitem& mi)
|
||||
{
|
||||
TBook_field& bf = (TBook_field&)field(DLG_MAIN);
|
||||
if (bf.pages() == 0)
|
||||
save_perspective(2); // Save temporary perspective
|
||||
return bf.add_page(caption);
|
||||
return bf.add_page(mi);
|
||||
}
|
||||
|
||||
void TOutlook_mask::set_page_caption(short page, const TString& caption, int icon)
|
||||
@ -494,7 +497,14 @@ bool TOutlook_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
||||
// ba1 e ba2 sono programmi di manutenzione da eseguire in modo esclusivo
|
||||
if (mi.run_modal())
|
||||
{
|
||||
if (bf.pages() > 0)
|
||||
{
|
||||
if (yesno_box(TR("E' necessario chiudere tutte le altre appicazioni:\n Si desidera procedere?")))
|
||||
bf.remove_all_pages(); // Chiude tutti i programmi in corso
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
mi.perform(); // Esegui in sincrono e a tutto schermo
|
||||
if (installing()) // when ba1 -6
|
||||
stop_run(K_FORCE_CLOSE);
|
||||
@ -506,7 +516,7 @@ bool TOutlook_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
||||
else
|
||||
{
|
||||
// Crea una pagina per accogliere la nuova applicazione asincrona
|
||||
const short pg = add_page(mi.caption());
|
||||
const short pg = add_page(mi);
|
||||
if (pg >= 0)
|
||||
{
|
||||
mi.perform(); // Esegui in asincrono in pagina nuova
|
||||
|
@ -23,7 +23,7 @@ protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
virtual bool can_be_closed() const;
|
||||
|
||||
short add_page(const TString& caption);
|
||||
short add_page(const TMenuitem& mi);
|
||||
void set_page_caption(short page, const TString& caption, int icon);
|
||||
|
||||
void save_perspective(int per);
|
||||
|
Loading…
x
Reference in New Issue
Block a user