Aggiunta segnalazione d'errore se si persevera nell'uso di MainApp()

Aggiunta ricerca alternativa anche all'interno degli sheet


git-svn-id: svn://10.65.10.50/trunk@587 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1994-11-10 13:44:57 +00:00
parent 4dcf5f74ad
commit 8ca7b5aa46
16 changed files with 11281 additions and 10596 deletions

View File

@ -1,3 +1,678 @@
<<<<<<< applicat.cpp
#include <stdlib.h>
#include <xvt.h>
#include <extcdecl.h>
#include <modaut.h>
#include <applicat.h>
#include <config.h>
#include <mask.h>
#include <prefix.h>
#include <progind.h>
#include <relation.h>
#include <urldefid.h>
#include <utility.h>
#include <bagn002.h>
#define BITTEST(w,p) (((w) & (0x0001 << (p))) != 0)
///////////////////////////////////////////////////////////
// Metodi di accesso globali all'applicazione corrente
///////////////////////////////////////////////////////////
HIDDEN TApplication* _application = NULL;
TString16 TApplication::_user;
TApplication* MainApp()
{
CHECK(_application, "NULL application!");
#ifdef DBG
error_box("Ti lascio usare MainApp ancora per pochi giorni!");
#endif
return _application;
}
TApplication& main_app()
{
CHECK(_application, "NULL application!");
return *_application;
}
bool xvt_running() { return _application != NULL; }
///////////////////////////////////////////////////////////
// Gestione dello sfondo della finestra principale
///////////////////////////////////////////////////////////
HIDDEN long backdrop_eh( WINDOW win, EVENT* ep)
{
#if XVT_OS == XVT_OS_WIN
clear_window( win, COLOR_GRAY );
#else
clear_window( win, COLOR_BLUE );
#endif
return 0L;
}
HIDDEN void create_backdrop( void )
{
#if XVT_OS == XVT_OS_WIN
xvt_create_statbar();
xvt_statbar_set("");
#else
xvt_escape(XVT_ESC_CH_COLOR, XVT_CH_CLR_MENU, COLOR_BLACK, COLOR_WHITE);
xvt_escape(XVT_ESC_CH_COLOR, XVT_CH_CLR_DIALOG, COLOR_BLUE, COLOR_WHITE);
xvt_escape(XVT_ESC_CH_COLOR, XVT_CH_CLR_WINDOW, COLOR_RED, COLOR_WHITE);
xvt_escape(XVT_ESC_CH_COLOR, XVT_CH_CLR_CONTROL, COLOR_BLACK, COLOR_WHITE);
xvt_escape(XVT_ESC_CH_COLOR, XVT_CH_CLR_DISABLED, COLOR_GRAY, COLOR_WHITE);
xvt_escape(XVT_ESC_CH_COLOR, XVT_CH_CLR_MNEMONIC, COLOR_RED, COLOR_WHITE);
RCT rct;
get_client_rect( SCREEN_WIN, &rct );
create_window(W_PLAIN, &rct, (char*) "BACKDROP", 0, TASK_WIN,
WSF_NO_MENUBAR | WSF_CH_BACKDROP , EM_UPDATE,
backdrop_eh, 0L );
#endif
}
///////////////////////////////////////////////////////////
// Gestione del banner iniziale
///////////////////////////////////////////////////////////
class TBanner : public TWindow
{
protected:
virtual void handler(WINDOW win, EVENT* ep);
public:
TBanner();
~TBanner();
};
TBanner::TBanner()
{
create(-1, 6, 72, 6, "BANNER", WSF_NONE, W_PLAIN);
hide_brush();
open_modal();
do_events();
}
TBanner::~TBanner()
{
close_modal();
}
void TBanner::handler(WINDOW win, EVENT* ep)
{
if (ep->type == E_UPDATE)
{
const int BIGY = CHARY<<1;
clear(COLOR_LTGRAY);
RCT r; get_client_rect(win, &r);
set_color(COLOR_WHITE, COLOR_LTGRAY);
set_font(FF_TIMES, FS_BOLD | FS_ITALIC, BIGY);
char* t = (char*)(const char*)main_app().title();
int w = win_get_text_width(win, t, -1);
int a; win_get_font_metrics(win, NULL, &a, NULL);
int x = (r.right-w)>>1, y = (r.bottom+a)>>1 ;
win_draw_text(win, x+1, y+1, t, -1);
set_color(COLOR_BLACK, COLOR_LTGRAY);
win_draw_text(win, x, y, t, -1);
set_font(FF_TIMES);
t = "PRASSI S.p.A.";
w = win_get_text_width(win, t, -1);
x = (r.right-r.left-w)>>1, y = BIGY;
win_draw_text(win, x, y, t, -1);
t = "Caricamento in corso";
w = win_get_text_width(win, t, -1);
x = (r.right-r.left-w)>>1, y = r.bottom - CHARY;
win_draw_text(win, x, y, t, -1);
r.left += 4; r.right -= 4;
r.top += 4; r.bottom -= 4;
set_pen(COLOR_BLACK); win_draw_rect(win, &r);
offset_rect(&r, 1, 1);
set_pen(COLOR_WHITE); win_draw_rect(win, &r);
win_draw_icon(win, CHARX<<1, CHARX<<1, ICON_RSRC);
}
else
TWindow::handler(win, ep);
}
#if XVT_OS == XVT_OS_WIN
///////////////////////////////////////////////////////////
// Gestione dei processi per Windows(R)
///////////////////////////////////////////////////////////
#include <windows.h>
const word WM_WAKEUP = RegisterWindowMessage("WAKEUP");
DWORD waiting_for = 0;
HIDDEN BOOLEAN waiting_event_hook(HWND, WORD msg, WORD,
DWORD lparam, long far* ret)
{
if (msg == WM_WAKEUP)
{
if( lparam == waiting_for || lparam == 0)
{
waiting_for = 0L;
TTemp_window tw(TASK_WIN);
tw.maximize();
}
*ret = 0;
return TRUE;
}
return FALSE;
}
HIDDEN DWORD name2id(const char* name)
{
waiting_for = 0L;
for (int i = 0; i < 5 && name[i] > ' '; i++)
{
waiting_for <<= 6;
waiting_for |= toupper(name[i]) - '0';
}
return waiting_for;
}
void TApplication::wait_for(const char* command)
{
TTemp_window tw(TASK_WIN);
tw.iconize();
name2id(cmd2name(command));
const long old_hook = get_value(TASK_WIN, ATTR_EVENT_HOOK);
set_value(TASK_WIN, ATTR_EVENT_HOOK, (long)waiting_event_hook);
while (waiting_for) do_events();
// We need to restore these things
set_value(TASK_WIN, ATTR_EVENT_HOOK, old_hook);
xvt_statbar_refresh();
}
void TApplication::wake_up_caller() const
{
name2id(name());
SendMessage(-1, WM_WAKEUP, 0, waiting_for);
}
#endif
long TApplication::task_eh(WINDOW win, EVENT *ep)
{
switch (ep->type)
{
case E_CREATE:
create_backdrop();
#if defined(DBG) && XVT_OS == XVT_OS_SCOUNIX
message_box("Attach to process %d ...", getpid());
#endif
do_events();
break;
#if XVT_OS == XVT_OS_WIN
case E_UPDATE:
backdrop_eh(win, ep);
break;
#endif
default:
break;
}
return _application->handler(win, ep);
}
long TApplication::handler(WINDOW win, EVENT* ep)
{
switch (ep->type)
{
case E_CREATE:
{
TBanner banner;
_create_ok = create();
if (!_create_ok)
stop_run();
}
break;
case E_COMMAND:
switch(ep->v.cmd.tag)
{
case M_FILE_QUIT:
if (can_close())
stop_run();
break;
case M_FILE_PG_SETUP:
printer().set();
break;
case M_FILE_PRINT:
print();
break;
case M_FILE_NEW:
set_firm();
break;
case M_FILE_REVERT:
config();
break;
case (M_FILE+11):
about();
break;
default:
if (ep->v.cmd.tag >= BAR_ITEM(1))
{
if(!menu(ep->v.cmd.tag))
stop_run();
}
break;
}
break;
case E_CLOSE:
if (can_close())
stop_run();
break;
case E_QUIT:
if (ep->v.query)
{
if (can_close())
quit_OK();
}
else
stop_run();
break;
default:
break;
}
return 0L;
}
void TApplication::stop_run()
{
if (_savefirm) prefhndl->set_codditta(_savefirm);
terminate();
xvt_terminate();
}
TApplication::TApplication() : _printer(NULL), _savefirm(0), _create_ok(FALSE)
{
init_global_vars();
_bar = TASK_MENUBAR;
}
TApplication::~TApplication()
{}
TPrinter* TApplication::set_printer(TPrinter* p)
{
TPrinter* printer = _printer;
_printer = p;
return printer;
}
TPrinter& TApplication::printer()
{
if (_printer == NULL)
_printer = new TPrinter;
return *_printer;
}
bool TApplication::create()
{
return TRUE;
}
bool TApplication::destroy()
{
return TRUE;
}
void TApplication::terminate()
{
#if XVT_OS == XVT_OS_WIN
wake_up_caller(); // Manda il segnale di risveglio al chiamante
#endif
close_all_dialogs();
if (_create_ok)
{
destroy(); // Distruzione files e maschere
do_events();
if (_printer != NULL) // Distruzione dell'eventuale stampante
{
if (printer().isopen())
printer().close();
delete _printer;
_printer = NULL;
}
}
free_global_vars(); // Distruzione variabili globali
customize_controls(FALSE); // Rilascio eventuali DLL
}
const char* TApplication::get_module_name() const
{
TScanner scanner("prassi.aut");
bool ok = FALSE;
for (int aut = 0; scanner.line() != ""; aut++)
if (strncmp(scanner.token(), _name, 2) == 0) { ok = TRUE; break; }
const char* module = scanner.token().mid(3);
if (ok) ok = has_module(aut);
if (!ok)
fatal_box("Il modulo '%s' non e' autorizzato", module);
return module;
}
void TApplication::set_perms()
{
CGetAut(1);
_dongle_aut.set(0, TRUE);
for (int i = 1 ; i < ENDAUT; i++)
{
const int af = i - 1;
const bool val = BITTEST(_int_tab0[af / 16], af % 16);
_dongle_aut.set(i, val);
}
_user_aut.set(0, TRUE);
if (_user.not_empty())
{
if (_user == "PRASSI")
{
for (int i = 1 ; i < ENDAUT; i++)
_user_aut.set(i);
}
else
{
TLocalisamfile users(LF_USER);
users.zero();
users.put("USERNAME", _user);
if (users.read() == NOERR)
{
const TString80 aut(users.get("AUTSTR"));
const int max = aut.len();
for (int i = 1 ; i < max; i++)
_user_aut.set(i, aut[i] == 'X');
}
}
}
}
void TApplication::check_parameters(int & argc, char* argv[])
{
if (strncmp(argv[argc - 1], "-u", 2) == 0)
{
_user = &argv[argc - 1][2];
argc--;
}
#ifdef DBG
else _user = "PRASSI";
#endif
}
void TApplication::run(int argc, char* argv[], const char* title)
{
TFilename base(argv[0]);
base.ext(""); base.lower();
_title = title;
if (_user.empty())
check_parameters(argc, argv);
__argc = argc;
__argv = (const char**)argv;
int addbar;
if (argc > 1)
{
addbar = atoi(argv[1]+1);
_name = cmd2name(argv[0], argv[1]);
}
else
{
addbar = 0;
_name = cmd2name(argv[0]);
}
set_perms();
TString80 caption;
caption << "PRASSI S.p.A. - " << get_module_name();
static XVT_CONFIG cfg;
cfg.base_appl_name = (char*)base.name();
cfg.appl_name = (char*)(const char*)_title;
cfg.taskwin_title = (char*)(const char*)caption;
cfg.menu_bar_ID = TASK_MENUBAR+addbar;
cfg.about_box_ID = 0;
customize_controls(TRUE);
_application = this;
xvt_system(argc, argv, 0L, task_eh, &cfg);
}
// About box: risposta alla opzione Informazioni del menu File
void TApplication::about() const
{
#include <prassi.ver>
const TFilename n(__argv[0]);
message_box("PRASSI Versione Beta %4.2f\nProgramma %s\nLibreria del %s",
VERSION, (const char*)n.name(), __DATE__);
}
// Risposta alla selezione Stampa del menu File
void TApplication::print()
{
#ifdef DBG
error_box("Non saprei bene cosa stampare!");
#endif
}
void TApplication::check_menu_item(MENU_TAG item)
{
win_menu_check(TASK_WIN, item, TRUE);
win_update_menu_bar(TASK_WIN);
}
void TApplication::uncheck_menu_item(MENU_TAG item)
{
win_menu_check(TASK_WIN, item, FALSE);
win_update_menu_bar(TASK_WIN);
}
void TApplication::enable_menu_item(MENU_TAG item, bool on)
{
win_menu_enable(TASK_WIN, item, on);
win_update_menu_bar(TASK_WIN);
}
void TApplication::dispatch_e_menu(MENU_TAG item)
{
#if XVT_OS == XVT_OS_WIN
HWND w = (HWND)get_value(TASK_WIN, ATTR_NATIVE_WINDOW);
PostMessage(w, WM_COMMAND, item, 0L);
#else
EVENT e;
e.type = E_COMMAND;
e.v.cmd.tag = item;
e.v.cmd.shift = e.v.cmd.control = 0;
dispatch_event(TASK_WIN, &e);
#endif
}
bool TApplication::has_module(int module, int checktype) const
{
bool ok = TRUE;
if (checktype == CHK_ALL || checktype == CHK_DONGLE)
ok = _dongle_aut[module];
if (ok && checktype == CHK_ALL || checktype == CHK_USER)
ok = _user_aut[module];
return ok;
}
long TApplication::get_firm() const
{
return prefhndl->get_codditta();
}
const char* TApplication::get_firm_dir() const
{
return format("%s%s", __ptprf, prefhndl->name());
}
bool TApplication::set_firm(long newfirm)
{
disable_menu_item(M_FILE_NEW);
const long oldfirm = get_firm();
if (newfirm < 1)
{
TMask mask("bagn002");
mask.send_key(K_CTRL+K_SHIFT+(extended_firm() ? 's' : 'h'), -2);
const KEY k = mask.run();
enable_menu_item(M_FILE_NEW);
if (k == K_ENTER)
{
newfirm = mask.get_long(F_CODDITTA);
const int tipodir = mask.get_int(F_TIPO);
if (tipodir > 0)
{
if (_savefirm == 0) _savefirm = oldfirm;
prefhndl->set(tipodir == 1 ? "com" : "");
return TRUE;
}
}
}
if (newfirm == oldfirm || newfirm < 1)
return newfirm > 0;
if (prefhndl->test(newfirm))
{
prefhndl->set_codditta(newfirm);
_savefirm = 0;
}
return TRUE;
}
bool TApplication::config()
// gestisce le voci di configurazione
// le si passa il file in cui cercare il proprio
// paragrafo (comunque relativo alla ditta)
// se non c'e', viene creato copiando il default
// la variabile EdMask di quel paragrafo specifica
// la maschera da usare
{
TConfig cnf(CONFIG_DITTA);
bool ok = FALSE;
TFilename maskname(cnf.get("EdMask"));
if (!maskname.empty())
{
TMask m(maskname);
// carica campi
for (int i = 0; i < m.fields(); i++)
{
TMask_field& f = m.fld(i);
const TFieldref* fref = f.field();
if (fref != NULL)
{
const char* fname = fref->name();
if (fname != NULL)
{
TString& oldvl = cnf.get(fname);
if (!oldvl.empty())
f.set(oldvl);
}
}
}
// run mask
disable_menu_item(M_FILE_NEW);
disable_menu_item(M_FILE_REVERT);
if (m.run() == K_ENTER)
{
// aggiusta campi
for (i = 0; i < m.fields(); i++)
{
TMask_field& f = m.fld(i);
if (f.dirty())
{
const TFieldref* fref = f.field();
if (fref != NULL)
{
const char* fname = fref->name();
const char* value = f.get();
const char* oldvl = cnf.get(fname);
if (change_config(fname,oldvl,value))
cnf.set(fname, value, NULL, TRUE);
}
}
}
ok = TRUE;
}
else ok = FALSE;
enable_menu_item(M_FILE_NEW);
enable_menu_item(M_FILE_REVERT);
return ok;
}
return warning_box("Nessun parametro da configurare");
}
bool TApplication::change_config(const char* var, const char* oldv,
const char* newv)
{ return TRUE; }
=======
#include <stdlib.h>
#include <xvt.h>
@ -666,3 +1341,4 @@ bool TApplication::change_config(const char* var, const char* oldv,
const char* newv)
{ return TRUE; }
>>>>>>> 1.24

View File

@ -32,6 +32,8 @@ class TApplication
TString80 _name, _title;
TPrinter* _printer;
long _savefirm;
bool _create_ok;
static TString16 _user;
protected:

View File

@ -36,10 +36,9 @@ int fatal_box(const char* fmt, ...)
#if XVT_OS == XVT_OS_WIN
MessageBeep(MB_ICONHAND);
MessageBox(GetFocus(), msg, "ERRORE FATALE", MB_OK | MB_ICONHAND | MB_SYSTEMMODAL);
const TApplication* a = MainApp();
if (a != NULL)
a->wake_up_caller();
xvt_terminate();
if (xvt_running())
main_app().stop_run();
#else
beep();
if (xvt_running()) xvt_fatal("%s", msg);

View File

@ -572,14 +572,15 @@ TPush_button::TPush_button(short left, short top, short right, short bottom,
const int height = bottom-top;
const int width = right-left;
if (*capt == '#')
const char* diesis = strchr(capt, '#');
if (diesis != NULL)
{
int pid = atoi(capt+1);
int pid = atoi(++diesis);
_picup = cpb.getbmp(pid);
const char* d = strrchr(capt, '#');
if (d > capt)
diesis = strchr(diesis, '#');
if (diesis != NULL)
{
pid = atoi(d+1);
pid = atoi(++diesis);
_picdn = cpb.getbmp(pid);
}

View File

@ -934,7 +934,7 @@ bool TForm::parse_join(TScanner& scanner)
bool TForm::set_header()
{
TPrinter& printer = MainApp()->printer();
TPrinter& printer = main_app().printer();
printer.resetheader();
const bool ok = _head.update();
@ -949,7 +949,7 @@ bool TForm::set_header()
bool TForm::set_footer()
{
TPrinter& printer = MainApp()->printer();
TPrinter& printer = main_app().printer();
printer.resetfooter();
const bool ok = _foot.update();
@ -966,7 +966,7 @@ bool TForm::set_footer()
bool TForm::print(long from, long to)
{
TPrinter& printer = MainApp()->printer();
TPrinter& printer = main_app().printer();
const bool was_open = printer.isopen();
if (!was_open && !printer.open())

View File

@ -1,4 +1,4 @@
// $Id: mailbox.cpp,v 1.5 1994-10-25 10:00:59 alex Exp $
// $Id: mailbox.cpp,v 1.6 1994-11-10 13:44:25 guy Exp $
#include <stdlib.h>
#include <fstream.h>
@ -196,7 +196,7 @@ TMailbox::~TMailbox()
// send unread messages to myself
while((m = next()) != NULL)
{
m->to(MainApp()->name());
m->to(main_app().name());
send(*m);
}
}

View File

@ -769,7 +769,8 @@ bool TMask::on_key(KEY key)
}
}
}
else return fld(_focus).on_key(key);
else
return fld(_focus).on_key(key);
}
return TRUE;
@ -1125,7 +1126,9 @@ void TMask::send_key(KEY key, short to) const
{
if (to == 0)
{
dispatch_e_char(win(), key);
WINDOW w = win();
if (w == NULL_WIN) w = _pagewin[0];
dispatch_e_char(w, key);
return;
}

View File

@ -1,4 +1,4 @@
// $Id: maskfld.cpp,v 1.42 1994-11-07 13:50:56 guy Exp $
// $Id: maskfld.cpp,v 1.43 1994-11-10 13:44:30 guy Exp $
#include <xvt.h>
#include <applicat.h>
@ -1349,8 +1349,7 @@ TToken_string& TBrowse::create_siblings(TToken_string& siblings)
const TMask& mask = field().mask();
siblings = ""; // Azzera la lista dei campi associati
if (!mask.is_running())
return siblings; // Non saprei come fare
// if (!mask.is_running()) return siblings;
TBit_array key(4); // Elenco delle chiavi gia' utilizzate
key.set(_cursor->key());
@ -1451,8 +1450,7 @@ default:
{
const short id = siblings.get_int((k - K_CTRL) << 1);
TEdit_field& ef = (TEdit_field&)_fld->mask().field(id);
if (ef.mask().is_running()) ef.set_focus();
else ef.mask().first_focus(-ef.dlg());
ef.set_focus();
ef.mask().send_key(k = K_F9, 0);
}
break;
@ -1652,7 +1650,7 @@ bool TEdit_field::parse_item(TScanner& scanner)
if (tabmaskname.not_empty())
{
if (strncmp(MainApp()->name(), "ba3", 3) != 0)
if (strncmp(main_app().name(), "ba3", 3) != 0)
{
tabmaskname.insert("MBATB", 0);
_browse->set_insert(tabmaskname);
@ -2412,7 +2410,7 @@ void TReal_field::create(WINDOW w)
TEdit_field::create(w);
if (_flags.firm)
set(::format("%ld", MainApp()->get_firm())); else
set(::format("%ld", main_app().get_firm())); else
if (automagic())
{
TDate d(TODAY);

View File

@ -1151,6 +1151,11 @@ void TSheet_field::enable_cell(int row, int column, bool on)
_sheet->enable_cell(row, column, on);
}
bool TSheet_field::cell_disabled(int row, int column) const
{
return _sheet->cell_disabled(row, column);
}
TMask& TSheet_field::sheet_mask() const
{

View File

@ -42,6 +42,7 @@ public:
void enable_column(int col, bool on = TRUE);
void enable_cell(int row, int column, bool on = TRUE);
void disable_cell(int row, int column) { enable_cell(row, column, FALSE); }
bool cell_disabled(int row, int column) const;
TSheet_field(TMask* m);
virtual ~TSheet_field();

View File

@ -604,7 +604,7 @@ bool printers_on_key (TMask_field & f, KEY key)
{
TToken_string pn1 (10), pn2 (20);
const PrinterDef & def = MainApp()->printer().get_description(atoi(f.get ()));
const PrinterDef & def = main_app().printer().get_description(atoi(f.get ()));
const char *s;
int j = 0;
while ((s = def.get_codenames (j)) != NULL)
@ -625,16 +625,16 @@ bool set_windows_print_device (TMask_field& f, KEY key)
static char szDevice[80];
if (key == K_SPACE && f.mask().is_running())
{
if (MainApp()->printer().get_printrcd() != NULL)
free_print_rcd (MainApp ()->printer().get_printrcd ());
TToken_string & pn = MainApp()->printer().getprinternames ();
if (main_app().printer().get_printrcd() != NULL)
free_print_rcd (main_app().printer().get_printrcd ());
TToken_string & pn = main_app().printer().getprinternames ();
TString pdev (pn.get (atoi (f.get())));
GetProfileString ("devices", pdev, "", szDevice, sizeof (szDevice));
pdev << "," << szDevice;
// scrivi (e semmai lo si risistema poi)
WriteProfileString("windows", "device", pdev);
MainApp()->printer().set_printrcd(get_print_rcd (&(MainApp ()->printer ().get_printrcdsize ())));
MainApp()->printer().set_win_formlen();
main_app().printer().set_printrcd(get_print_rcd (&(MainApp ()->printer ().get_printrcdsize ())));
main_app().printer().set_win_formlen();
}
return TRUE;
}
@ -1308,7 +1308,7 @@ void TPrinter::set()
{
// riaggiusta stampante default windows come prima
// curprn e rcd sono quelle di prima
MainApp()->enable_menu_item(M_FILE_PG_SETUP);
main_app().enable_menu_item(M_FILE_PG_SETUP);
WriteProfileString("windows","device", old_default);
}
if (k == K_ESC)

View File

@ -504,7 +504,7 @@ void TSheet::update()
void TSheet::print()
{
TPrinter& pr = MainApp()->printer();
TPrinter& pr = main_app().printer();
TPrintrow row;
bool ok = pr.open();

View File

@ -592,36 +592,38 @@ const TFilename& TFilename::tempdir()
const int last = len()-1;
if (!is_not_slash(_str[last])) cut(last);
if (!fexist(_str))
{
int res =
#if XVT_OS==XVT_OS_SCOUNIX
mkdir(_str, 0777);
#else
mkdir(_str);
#endif
if (res != 0)
fatal_box("Impossibile creare la directory '%s' per i file temporanei", _str);
}
if (not_empty()) *this << "/" ;
TString16 u(main_app().user());
u.lower();
*this << u;
int res = 0;
if (!fexist(_str))
{
int res =
res =
#if XVT_OS==XVT_OS_SCOUNIX
mkdir(_str, 0777);
#else
mkdir(_str);
mkdir(_str);
#endif
// if (res == 0)
// message_box("E' stata creata la directory per i file temporanei '%s'", _str);
// else
if (res != 0)
fatal_box("Impossibile creare la directory '%s' per i file temporanei", _str);
}
if (res == 0)
{
if (not_empty()) *this << "/" ;
*this << main_app().user();
lower();
if (!fexist(_str))
{
res =
#if XVT_OS==XVT_OS_SCOUNIX
mkdir(_str, 0777);
#else
mkdir(_str);
#endif
}
}
if (res != 0)
fatal_box("Impossibile creare la directory '%s' per i file temporanei", _str);
return *this;
}

View File

@ -443,7 +443,7 @@ HIDDEN bool _mtcheck_val(TEdit_field& f, KEY)
TLocalisamfile d(LF_NDITTE);
d.zero();
d.put(NDT_CODDITTA, MainApp()->get_firm());
d.put(NDT_CODDITTA, main_app().get_firm());
d.read();
if (d.bad()) return TRUE;
if (d.get_char(NDT_FREQVIVA) == 'M') return TRUE;

View File

@ -55,8 +55,8 @@ extern "C"
#define CTRL_R ('R')
// vista la mania degli 883, eccoti un po' di concerti di Mozart
const long E_ADDLINE = 488l;
const long E_ADDLINE_ONSCREEN = 467l;
const long E_ADDLINE = 488L;
const long E_ADDLINE_ONSCREEN = 467L;
void TViswin::exec_link()
@ -75,9 +75,8 @@ void TViswin::exec_link()
{
if (yesno_box("Si desidera riaggiornare la stampa?"))
{
((TPrint_application*)MainApp())->repeat_print();
((TPrint_application&)main_app()).repeat_print();
#if XVT_OS == XVT_OS_WIN
xvt_statbar_set ("");
xvt_statbar_refresh ();
#endif
stop_run(K_ENTER);

View File

@ -826,13 +826,12 @@ WINDOW xvt_create_statbar()
void xvt_statbar_set(const char* text, bool def)
{
#if XVT_OS == XVT_OS_WIN
TString256 t(text);
const TDate oggi(TODAY);
t << '\t' << oggi.string() << " - " << main_app().title();
TString t(80);
t << text << '\t' << oggi.string() << " - " << main_app().title();
if (def)
statbar_set_default_title(statbar, (char*)(const char*)t);
else
statbar_set_title(statbar, (char*)(const char*)t);
statbar_set_title(statbar, (char*)(const char*)t);
#endif
}