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
|
class TApp_window : public TWindow
|
||||||
{
|
{
|
||||||
TBook_window* _owner;
|
TBook_window* _owner;
|
||||||
|
TString _appname;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void handler(WINDOW win, EVENT* ep);
|
virtual void handler(WINDOW win, EVENT* ep);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TApp_window(TBook_window* owner);
|
const TString& app_name() const { return _appname; }
|
||||||
|
TApp_window(TBook_window* owner, const char* appname);
|
||||||
~TApp_window();
|
~TApp_window();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -46,7 +48,7 @@ public:
|
|||||||
WINDOW notebook() const { return _ctrl; }
|
WINDOW notebook() const { return _ctrl; }
|
||||||
short pages() const;
|
short pages() const;
|
||||||
WINDOW page_win(short pg);
|
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);
|
void set_page_caption(short page, const TString& caption, int icon);
|
||||||
bool remove_page(WINDOW page);
|
bool remove_page(WINDOW page);
|
||||||
void set_logo(const char* logo);
|
void set_logo(const char* logo);
|
||||||
@ -89,7 +91,7 @@ void TApp_window::handler(WINDOW win, EVENT* ep)
|
|||||||
TWindow::handler(win, 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());
|
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
|
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;
|
return win;
|
||||||
}
|
}
|
||||||
|
|
||||||
short TBook_window::add_page(const TString& caption)
|
short TBook_window::add_page(const TMenuitem& mi)
|
||||||
{
|
{
|
||||||
if (_ctrl == NULL_WIN)
|
if (_ctrl == NULL_WIN)
|
||||||
{
|
{
|
||||||
@ -208,18 +210,19 @@ short TBook_window::add_page(const TString& caption)
|
|||||||
enable_options_menu(false); // Disabilita le opzioni
|
enable_options_menu(false); // Disabilita le opzioni
|
||||||
}
|
}
|
||||||
|
|
||||||
TString256 cap;
|
|
||||||
for (short pg = pages()-1; pg >= 0; pg--)
|
for (short pg = pages()-1; pg >= 0; pg--)
|
||||||
{
|
{
|
||||||
xvt_notebk_get_tab_title(_ctrl, pg, cap.get_buffer(), cap.size());
|
WINDOW awin = xvt_notebk_get_page(_ctrl, pg);
|
||||||
if (cap.compare(caption, -1, true) == 0)
|
TApp_window* w = (TApp_window*)xvt_vobj_get_data(awin);
|
||||||
|
if (w != NULL && w->app_name() == mi.action())
|
||||||
{
|
{
|
||||||
force_page(pg);
|
force_page(pg);
|
||||||
return -1; // Don't perform menu!
|
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)
|
if (pg >= 0)
|
||||||
force_page(pg);
|
force_page(pg);
|
||||||
else
|
else
|
||||||
@ -313,7 +316,7 @@ public:
|
|||||||
virtual void create(short dlg, int x, int y, int dx, int dy, WINDOW parent);
|
virtual void create(short dlg, int x, int y, int dx, int dy, WINDOW parent);
|
||||||
|
|
||||||
short pages() const;
|
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);
|
void set_page_caption(short page, const TString& caption, int icon);
|
||||||
WINDOW page_win(short page);
|
WINDOW page_win(short page);
|
||||||
void remove_all_pages();
|
void remove_all_pages();
|
||||||
@ -326,10 +329,10 @@ short TBook_field::pages() const
|
|||||||
return bw.pages();
|
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();
|
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)
|
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;
|
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);
|
TBook_field& bf = (TBook_field&)field(DLG_MAIN);
|
||||||
if (bf.pages() == 0)
|
if (bf.pages() == 0)
|
||||||
save_perspective(2); // Save temporary perspective
|
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)
|
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
|
// ba1 e ba2 sono programmi di manutenzione da eseguire in modo esclusivo
|
||||||
if (mi.run_modal())
|
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
|
mi.perform(); // Esegui in sincrono e a tutto schermo
|
||||||
if (installing()) // when ba1 -6
|
if (installing()) // when ba1 -6
|
||||||
stop_run(K_FORCE_CLOSE);
|
stop_run(K_FORCE_CLOSE);
|
||||||
@ -506,7 +516,7 @@ bool TOutlook_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Crea una pagina per accogliere la nuova applicazione asincrona
|
// 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)
|
if (pg >= 0)
|
||||||
{
|
{
|
||||||
mi.perform(); // Esegui in asincrono in pagina nuova
|
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 on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
virtual bool can_be_closed() const;
|
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 set_page_caption(short page, const TString& caption, int icon);
|
||||||
|
|
||||||
void save_perspective(int per);
|
void save_perspective(int per);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user