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:
guy 2009-01-07 16:44:01 +00:00
parent 8c474f47ef
commit 9baebfb812
2 changed files with 27 additions and 17 deletions

View File

@ -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())
{
bf.remove_all_pages(); // Chiude tutti i programmi in corso
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

View File

@ -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);