Patch level : 2.0 430 e scifla

Files correlati     : tutti
Ricompilazione Demo : [ ]
Commento            :

applicat.cpp  Eliminata gestione parametri (M_FILE_REVERT)

checks.cpp    Eliminate chiamate dirette alle API win32

controls.cpp  Eliminato uso inutile di xvt_vobj_translate_points

golem.cpp     Corretta gestione nomi lunghi in edit_url e goto_url

mailbox.cpp   Sostituito "/" con macro SLASH

mask.cpp      Migliorata gestione ALT + fuori dagli spreadsheet

maskfld.cpp   Corretto collegamento ad anagrafiche con chiavi parziali
              es: CODTAB[1,4] + CODTAB[5,7] sui registri

relapp.cpp    Eliminata gestione M_FILE_REVERT

strings.cpp   MIgliorata gestione nome directory temporanea

viswin.cpp    Corretta gestione bottone Edit

window.cpp    Eliminata gestione M_FILE_REVERT


git-svn-id: svn://10.65.10.50/trunk@10932 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-03-20 10:28:01 +00:00
parent bc025f1e99
commit 3b64a2e5fe
12 changed files with 83 additions and 290 deletions

View File

@ -3,7 +3,6 @@
#include <config.h> #include <config.h>
#include <controls.h> #include <controls.h>
#include <dongle.h> #include <dongle.h>
#include <execp.h>
#include <extcdecl.h> #include <extcdecl.h>
#include <mask.h> #include <mask.h>
#include <modaut.h> #include <modaut.h>
@ -11,11 +10,11 @@
#include <prefix.h> #include <prefix.h>
#include <printer.h> #include <printer.h>
#include <progind.h> #include <progind.h>
#include <relation.h>
#include <tabutil.h> #include <tabutil.h>
#include <urldefid.h> #include <urldefid.h>
#include <utility.h> #include <utility.h>
// Maschera scelta ditta
#include <bagn002.h> #include <bagn002.h>
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -402,10 +401,6 @@ long TApplication::handler(WINDOW win, EVENT* ep)
case M_FILE_NEW: case M_FILE_NEW:
set_firm(); set_firm();
break; break;
case M_FILE_REVERT:
if (config())
on_config_change();
break;
case (M_FILE_ABOUT+1): case (M_FILE_ABOUT+1):
about(); about();
break; break;
@ -1050,78 +1045,6 @@ bool TApplication::set_firm(long newfirm)
return TRUE; return TRUE;
} }
// @doc INTERNAL
// @mfunc Gestisce le voci di configurazione
//
// @rdesc Ritorna TRUE se sono state cambiate delle voci
bool TApplication::config()
// @comm 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.
{
bool ok = FALSE;
TConfig conf(CONFIG_STUDIO);
TFilename name = conf.get("EdApp");
if (name.not_empty())
{
TExternal_app app(name);
ok = app.run() == 0;
return ok;
}
TConfig cnf(CONFIG_DITTA);
name = cnf.get("EdMask");
if (name.empty())
return warning_box("Nessun parametro da configurare");
TMask* msk = new TMask(name); // Evito problemi di stack
TMask& m = *msk;
// carica campi
for (int i = 0; i < m.fields(); i++)
{
TEditable_field& f = (TEditable_field&)m.fld(i);
const TFieldref* fref = f.field();
if (fref != NULL)
{
const char* fname = fref->name();
if (fname != NULL)
{
const TString& oldvl = cnf.get(fname);
if (!oldvl.empty())
f.set(oldvl);
}
}
}
// run mask
disable_menu_item(M_FILE_REVERT);
if (m.run() == K_ENTER && m.dirty())
{
// aggiusta campi
for (i = 0; i < m.fields(); i++)
{
TEditable_field& f = (TEditable_field&)m.fld(i);
if (f.dirty())
{
const TFieldref* fref = f.field();
if (fref != NULL)
cnf.set(fref->name(), f.get(), NULL, TRUE);
}
}
ok = TRUE;
}
delete msk;
enable_menu_item(M_FILE_REVERT);
return ok;
}
// @doc EXTERNAL // @doc EXTERNAL
// @mfunc Controlla se al programma corrente e' concesso cambiare ditta da menu. // @mfunc Controlla se al programma corrente e' concesso cambiare ditta da menu.

View File

@ -66,8 +66,6 @@ class TApplication
void terminate(); void terminate();
// @cmember:(INTERNAL) Cambia il cursore del mouse // @cmember:(INTERNAL) Cambia il cursore del mouse
void set_cursor(bool w); void set_cursor(bool w);
// @cmember:(INTERNAL) Gestisce le voci di configurazione
bool config();
// @cmember:(INTERNAL) About box: risposta alla opzione Informazioni del menu File // @cmember:(INTERNAL) About box: risposta alla opzione Informazioni del menu File
void about() const; void about() const;

View File

@ -1,28 +1,12 @@
#include <stdarg.h> #include <stdarg.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#ifdef XVT
#define XVT_INCL_NATIVE
#define STRICT
#include <xvt.h>
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_WIN32
#include <keys.h>
#else
#include <xvtility.h>
#endif
#include <applicat.h> #include <applicat.h>
#include <keys.h>
#include <os_dep.h> #include <os_dep.h>
#endif /* XVT */
#include <checks.h>
#define buildmsg() char msg[256];va_list argptr;va_start(argptr,fmt);vsprintf(msg,fmt,argptr);va_end(argptr) #define buildmsg() char msg[256];va_list argptr;va_start(argptr,fmt);vsprintf(msg,fmt,argptr);va_end(argptr)
#ifndef FOXPRO
// @doc EXTERNAL // @doc EXTERNAL
// @msg fatal_box | Crea una finestra di ERRORE FATALE con il relativo messaggio // @msg fatal_box | Crea una finestra di ERRORE FATALE con il relativo messaggio
@ -35,14 +19,12 @@ bool fatal_box(
// l'errore. // l'errore.
{ {
buildmsg(); buildmsg();
xvt_dm_post_fatal_exit(msg); xvt_dm_post_fatal_exit(msg);
if (xvt_running()) if (xvt_running())
main_app().stop_run(); main_app().stop_run();
else else
exit(1); exit(1);
return false;
return 0;
} }
// @doc EXTERNAL // @doc EXTERNAL
@ -57,21 +39,8 @@ bool error_box(
// e l'icona punto esclamativo. // e l'icona punto esclamativo.
{ {
buildmsg(); buildmsg();
xvt_dm_post_error(msg);
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_WIN32 return false;
MessageBeep(MB_ICONEXCLAMATION);
MessageBox(GetFocus(), msg, "ERRORE", MB_OK | MB_ICONEXCLAMATION);
#else
beep();
if (xvt_running()) xvt_dm_post_error("%s", msg);
else
{
fprintf(stderr, "%s\n", msg);
getchar();
}
#endif
return 0;
} }
// @doc EXTERNAL // @doc EXTERNAL
@ -85,15 +54,7 @@ bool warning_box(
// e l'icona punto di domanda. // e l'icona punto di domanda.
{ {
buildmsg(); buildmsg();
xvt_dm_post_note(msg);
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_WIN32
MessageBeep(MB_ICONQUESTION);
MessageBox(GetFocus(), msg, "ATTENZIONE", MB_OK | MB_ICONQUESTION);
#else
beep();
xvt_dm_post_note("%s", msg);
#endif
return 0; return 0;
} }
@ -108,14 +69,8 @@ bool message_box(
// e l'icona informazioni. // e l'icona informazioni.
{ {
buildmsg(); buildmsg();
xvt_dm_post_message(msg);
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_WIN32 return false;
MessageBox(GetFocus(), msg, "INFORMAZIONE", MB_OK | MB_ICONINFORMATION);
#else
xvt_dm_post_note("%s", msg);
#endif
return 0;
} }
// @doc EXTERNAL // @doc EXTERNAL
@ -129,38 +84,18 @@ bool sorry_box(
// e l'icona informazioni. // e l'icona informazioni.
{ {
buildmsg(); buildmsg();
xvt_dm_post_note(msg);
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_WIN32 return false;
MessageBeep(MB_ICONINFORMATION);
MessageBox(GetFocus(), msg, "SPIACENTE", MB_OK | MB_ICONINFORMATION);
#else
xvt_dm_post_note("%s", msg);
#endif
return 0;
} }
// @doc EXTERNAL
// @msg yesno_box | Crea una finestra di RICHIESTA con il relativo messaggio // @msg yesno_box | Crea una finestra di RICHIESTA con il relativo messaggio
bool noyes_box( bool noyes_box(
const char* fmt, // @parm Messaggio da stampare nella finestra const char* fmt, // @parm Messaggio da stampare nella finestra
...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt> ...) // @parmvar Uno o piu' parametri corrispondenti ai codici in <p fmt>
{ {
buildmsg(); buildmsg();
ASK_RESPONSE r = xvt_dm_post_ask("No", "Si", NULL, msg);
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_WIN32 return r == RESP_2;
MessageBeep(MB_ICONQUESTION);
int r = MessageBox(GetFocus(), msg, "RICHIESTA",
MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2);
return r == IDYES;
#else
ASK_RESPONSE r = xvt_dm_post_ask((char*) "No", (char*) "Si", NULL, "%s", msg);
if (r == RESP_DEFAULT) r = K_NO;
else
if (r == RESP_2) r = K_YES;
return r == K_YES;
#endif
} }
@ -183,15 +118,8 @@ bool yesno_box(
// @xref <m yesnocancel_box> <m yesnofatal_box> // @xref <m yesnocancel_box> <m yesnofatal_box>
{ {
buildmsg(); buildmsg();
ASK_RESPONSE r = xvt_dm_post_ask("Si", "No", NULL, msg);
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_WIN32
MessageBeep(MB_ICONQUESTION);
int r = MessageBox(GetFocus(), msg, "RICHIESTA", MB_YESNO | MB_ICONQUESTION);
return r == IDYES;
#else
ASK_RESPONSE r = xvt_dm_post_ask((char*) "Si", (char*) "No", NULL, "%s", msg);
return r == RESP_DEFAULT; return r == RESP_DEFAULT;
#endif
} }
// @doc EXTERNAL // @doc EXTERNAL
@ -219,10 +147,9 @@ bool yesnofatal_box(
#ifdef DBG #ifdef DBG
char s[256]; sprintf(s, "%s\nContinuare ugualmente?", msg); char s[256]; sprintf(s, "%s\nContinuare ugualmente?", msg);
const bool ret = yesno_box("%s", s); const bool ret = yesno_box("%s", s);
if (!ret) fatal_box(msg); if (!ret)
#else
fatal_box("%s", msg);
#endif #endif
fatal_box(msg);
return FALSE; return FALSE;
} }
@ -246,24 +173,8 @@ int yesnocancel_box(
// @xref <m yesno_box> <m yesnofatal_box> // @xref <m yesno_box> <m yesnofatal_box>
{ {
buildmsg(); buildmsg();
ASK_RESPONSE r = xvt_dm_post_ask("Si", "No", "Annulla", msg);
#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_WIN32 return r == RESP_DEFAULT ? K_YES : (r == RESP_2 ? K_NO : K_ESC);
int r = MessageBox(GetFocus(), msg, "RICHIESTA", MB_YESNOCANCEL | MB_ICONQUESTION);
if (r == IDYES) r = K_YES;
else
if (r == IDNO) r = K_NO;
else
r = K_ESC;
return r;
#else
ASK_RESPONSE r = xvt_dm_post_ask((char*) "Si", (char*) "No", (char*) "Annulla", "%s", msg);
if (r == RESP_DEFAULT) r = K_YES;
else
if (r == RESP_2) r = K_NO;
else
r = K_ESC;
return r;
#endif
} }
// @doc EXTERNAL // @doc EXTERNAL
@ -297,44 +208,3 @@ bool __tracemem(const char* msg)
return __trace("%5lu Kb - %s", mem, msg); return __trace("%5lu Kb - %s", mem, msg);
} }
#else // FOXPRO
#include <windows.h>
#include <pro_ext.h>
bool error_box(const char* fmt, ...)
{
buildmsg();
MessageBeep(MB_ICONEXCLAMATION);
_UserError(msg);
return 0;
}
bool fatal_box(const char* fmt, ...)
{
buildmsg();
MessageBeep(MB_ICONHAND);
MessageBox(GetFocus(), msg, "ERRORE FATALE", MB_OK | MB_ICONHAND | MB_SYSTEMMODAL);
_UserError(msg);
return 0;
}
bool message_box(const char* fmt, ...)
{
buildmsg();
MessageBeep(MB_ICONINFORMATION);
_UserError(msg);
return 0;
}
bool yesnofatal_box(const char* fmt, ...)
{
buildmsg();
MessageBeep(MB_ICONHAND);
MessageBox(GetFocus(), msg, "ERRORE FATALE", MB_OK | MB_ICONHAND | MB_SYSTEMMODAL);
_UserError(msg);
return 0;
}
#endif // FOXPRO

View File

@ -483,9 +483,14 @@ WINDOW create_interface(WINDOW parent, short x, short y, short dx, short dy,
void attach_interface(WINDOW win, COLOR back) void attach_interface(WINDOW win, COLOR back)
{ {
xvt_win_set_handler(win, (EVENT_HANDLER)xi_event); xvt_win_set_handler(win, (EVENT_HANDLER)xi_event);
/* xvt_vobj_translate_points NON funziona! Ma qui non serve.
RCT rc; xvt_vobj_get_client_rect(win, &rc); RCT rc; xvt_vobj_get_client_rect(win, &rc);
WINDOW wp = xvt_vobj_get_parent(win); WINDOW wp = xvt_vobj_get_parent(win);
xvt_vobj_translate_points(win, wp, (PNT*)&rc, 2); xvt_vobj_translate_points(win, wp, (PNT*)&rc, 2);
*/
RCT rc; xvt_vobj_get_outer_rect(win, &rc);
char caption[80]; xvt_vobj_get_title(win, caption, 80); char caption[80]; xvt_vobj_get_title(win, caption, 80);
TWindow* parent = (TWindow*)xvt_vobj_get_data(win); TWindow* parent = (TWindow*)xvt_vobj_get_data(win);
XI_OBJ_DEF* def = xi_create_itf_def(ITF_CID, xi_event_handler, (XinRect *) &rc, caption, (long)parent); XI_OBJ_DEF* def = xi_create_itf_def(ITF_CID, xi_event_handler, (XinRect *) &rc, caption, (long)parent);

View File

@ -186,7 +186,7 @@ bool goto_url(const char* url)
app = link.get(ext); app = link.get(ext);
if (app.not_empty()) if (app.not_empty())
{ {
app << ' ' << url; app << " \"" << url << '"';
UINT error = WinExec(app, SW_SHOWNORMAL); UINT error = WinExec(app, SW_SHOWNORMAL);
if (error > 32) if (error > 32)
return TRUE; return TRUE;
@ -203,7 +203,7 @@ bool goto_url(const char* url)
{ {
if (file2app(".htm", app)) if (file2app(".htm", app))
{ {
app << ' ' << url; app << " \"" << url << '"';
error = WinExec(app, SW_SHOWNORMAL); error = WinExec(app, SW_SHOWNORMAL);
if (error > 32) if (error > 32)
retflag = TRUE; retflag = TRUE;
@ -223,32 +223,26 @@ bool edit_url(const char* url)
DWORD winst = DWORD((DWORD*)hinst); DWORD winst = DWORD((DWORD*)hinst);
UINT error = UINT(winst); // Tutto 'sto giro per evitare un warning UINT error = UINT(winst); // Tutto 'sto giro per evitare un warning
if (error <= 32) if (error <= 32)
{
TFilename app;
if (fexist(url) && file2app(".wri", app))
{
app << ' ' << url;
error = WinExec(app, SW_SHOWNORMAL);
if (error > 32)
retflag = TRUE;
}
else
retflag = goto_url(url); retflag = goto_url(url);
}
else else
retflag = TRUE; retflag = TRUE;
return retflag; return retflag;
} }
bool print_url(const char* url) bool print_url(const char* url)
{ {
bool retflag = FALSE;
HINSTANCE hinst = ShellExecute(NULL, "print", url, NULL, NULL, SW_SHOWNORMAL); HINSTANCE hinst = ShellExecute(NULL, "print", url, NULL, NULL, SW_SHOWNORMAL);
DWORD winst = DWORD((DWORD*)hinst); DWORD winst = DWORD((DWORD*)hinst);
UINT error = UINT(winst); // Tutto 'sto giro per evitare un warning UINT error = UINT(winst); // Tutto 'sto giro per evitare un warning
return error >= 32; if (error <= 32)
retflag = goto_url(url);
else
retflag = TRUE;
return retflag;
} }
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -420,7 +414,7 @@ bool TGolem_mask::ole_handler(TMask_field& f, KEY k)
sheet.force_update(); sheet.force_update();
TFilename app; file2app(ext, app); TFilename app; file2app(ext, app);
app << ' ' << file; app << " \"" << file << '"';
WinExec(app, SW_SHOWNORMAL); WinExec(app, SW_SHOWNORMAL);
} }
} }
@ -925,6 +919,8 @@ class TMAPI_session : public TObject
LHANDLE _hSession; LHANDLE _hSession;
LONG _hWnd; LONG _hWnd;
TFilename m_strBaseDir; // Directory iniziale
protected: protected:
bool load_mapi(); bool load_mapi();
void unload_mapi(); void unload_mapi();
@ -1076,10 +1072,18 @@ bool TMAPI_session::remove(const TString& id)
TMAPI_session::TMAPI_session() TMAPI_session::TMAPI_session()
: _hlibMAPI(NULL), _hSession(NULL), _hWnd(NULL) : _hlibMAPI(NULL), _hSession(NULL), _hWnd(NULL)
{ } {
// Memorizza directory base
GetCurrentDirectory(_MAX_PATH, m_strBaseDir.get_buffer(_MAX_PATH));
}
TMAPI_session::~TMAPI_session() TMAPI_session::~TMAPI_session()
{ close(); } {
close();
// Ripristina directory base
SetCurrentDirectory(m_strBaseDir);
}
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// TMail_message // TMail_message

View File

@ -200,7 +200,7 @@ TMailbox::TMailbox(const char* appname) : _msgs(DEF_MSGS_CAPACITY)
appname = main_app().name(); // myself; must be global appname = main_app().name(); // myself; must be global
_path.tempdir(); _path.tempdir();
_path << "/" << appname << ".mbx"; _path << SLASH << appname << ".mbx";
_lastread =0; _lastpos = 0l; _lastread =0; _lastpos = 0l;
n_new = 0; n_new = 0;

View File

@ -856,11 +856,14 @@ bool TMask::on_key(
case K_CTRL+'+': case K_CTRL+'+':
if (is_running()) if (is_running())
{ {
for (int fire = _focus+1; fire >= _focus-1; fire--) // Cerco nella pagina corrente il primo spreadsheet a partire dal campo col focus
{ if (_focus < 0) _focus = 0;
if (fire >= 0 && fire < fields()) const WINDOW myparent = fld(_focus).parent();
for (int fire = _focus; fire < fields(); fire++)
{ {
TMask_field& f = fld(fire); TMask_field& f = fld(fire);
if (f.parent() != myparent)
break;
if (f.is_kind_of(CLASS_SHEET_FIELD)) if (f.is_kind_of(CLASS_SHEET_FIELD))
{ {
TSheet_field& s = (TSheet_field&)f; TSheet_field& s = (TSheet_field&)f;
@ -870,7 +873,6 @@ bool TMask::on_key(
} }
} }
} }
}
break; break;
default: default:
if (key > K_CTRL) if (key > K_CTRL)

View File

@ -2337,29 +2337,24 @@ bool TBrowse::do_link(bool insert)
TConfig ini(msg, "Transaction"); TConfig ini(msg, "Transaction");
ini.set("Action", "MODIFY"); ini.set("Action", "MODIFY");
TString paragraph; paragraph << _cursor->file().num(); TString8 paragraph; paragraph << _cursor->file().num();
ini.set_paragraph(paragraph); ini.set_paragraph(paragraph);
_inp_fn.restart(); _inp_fn.restart();
for (const char* i = _inp_id.get(0); i; i = _inp_id.get())
{
TString inp_id(i);
TString s(_inp_fn.get());
const int pos = s.find(",");
if (pos >= 0)
s.cut(pos);
if (inp_id[0] == '"') TString inp_val;
FOR_EACH_TOKEN(_inp_id, i)
{ {
inp_id.ltrim(1); inp_val = i;
inp_id.rtrim(1); TFieldref fldref(_inp_fn.get(), 0);
if (inp_val[0] == '"')
{
inp_val.rtrim(1);
inp_val.ltrim(1);
} }
else else
{ inp_val = fldref.read(*_cursor->relation());
TFieldref fldref(s, 0); fldref.write(ini, paragraph, inp_val);
inp_id = fldref.read(*_cursor->relation());
}
ini.set(s, inp_id);
} }
} }

View File

@ -1254,8 +1254,6 @@ void TRelation_application::main_loop()
const bool change = firm_change_enabled(); const bool change = firm_change_enabled();
// Dis/abilita cambio ditta // Dis/abilita cambio ditta
enable_menu_item(M_FILE_NEW, change); enable_menu_item(M_FILE_NEW, change);
// Dis/abilita cambio parametri
enable_menu_item(M_FILE_REVERT, change);
if (_mask->edit_mode()) if (_mask->edit_mode())
{ {
@ -1650,7 +1648,7 @@ bool TRelation_application::load_transaction()
_curr_transaction.upper(); _curr_transaction.upper();
_curr_trans_mode = toupper(cnf.get("Mode")[0]); _curr_trans_mode = toupper(cnf.get("Mode")[0]);
_curr_trans_from = cnf.get("From"); _curr_trans_from = cnf.get("From");
long firm = cnf.get_long("Firm"); const long firm = cnf.get_long("Firm");
if (firm > 0) if (firm > 0)
{ {

View File

@ -1118,7 +1118,7 @@ const TFilename& TFilename::tempdir()
if (_tempdir.empty()) if (_tempdir.empty())
_tempdir = getenv("TMP"); _tempdir = getenv("TMP");
if (_tempdir.empty()) if (_tempdir.empty())
_tempdir << SLASH << "tmp"; _tempdir << SLASH << "temp";
const int last = len()-1; const int last = len()-1;
if (!is_not_slash(_str[last])) if (!is_not_slash(_str[last]))
@ -1148,11 +1148,12 @@ const TFilename& TFilename::tempdir()
if (!ok) if (!ok)
fatal_box("Impossibile creare la directory '%s' per i file temporanei", (const char*)_tempdir); fatal_box("Impossibile creare la directory '%s' per i file temporanei", (const char*)_tempdir);
_tempdir.insert("TMP=", 0); TString tmp = _tempdir;
putenv(_tempdir); tmp.insert("TMP=", 0);
putenv(tmp);
} }
set(_tempdir.mid(4)); set(_tempdir);
return *this; return *this;
} }

View File

@ -2304,7 +2304,7 @@ bool TViswin::call_editor()
xvt_fsys_convert_str_to_dir(newfilename.get_buffer(), &fs.dir); xvt_fsys_convert_str_to_dir(newfilename.get_buffer(), &fs.dir);
strcpy (fs.type, "txt"); strcpy (fs.type, "txt");
strcpy (fs.name, "tmp"); strcpy (fs.name, "tmp");
strcpy (fs.creator, "PRINT"); strcpy (fs.creator, "CAMPO");
xvt_fsys_save_dir (); xvt_fsys_save_dir ();
bool ok = xvt_dm_post_file_save (&fs, "Salva il file con il nome:") == FL_OK; bool ok = xvt_dm_post_file_save (&fs, "Salva il file con il nome:") == FL_OK;

View File

@ -219,13 +219,11 @@ void TWindow_manager::reg(TWindow* m)
{ {
const bool on = main_app().firm_change_enabled(); const bool on = main_app().firm_change_enabled();
xvt_menu_set_item_enabled(TASK_WIN, M_FILE_NEW, on); xvt_menu_set_item_enabled(TASK_WIN, M_FILE_NEW, on);
xvt_menu_set_item_enabled(TASK_WIN, M_FILE_REVERT, on);
} }
break; break;
case 1 : case 1 :
xvt_menu_set_item_enabled(TASK_WIN, M_FILE_QUIT, FALSE); xvt_menu_set_item_enabled(TASK_WIN, M_FILE_QUIT, FALSE);
xvt_menu_set_item_enabled(TASK_WIN, M_FILE_NEW, FALSE); xvt_menu_set_item_enabled(TASK_WIN, M_FILE_NEW, FALSE);
xvt_menu_set_item_enabled(TASK_WIN, M_FILE_REVERT, FALSE);
default: default:
_window[_current-1]->deactivate(); break; _window[_current-1]->deactivate(); break;
} }
@ -258,7 +256,6 @@ void TWindow_manager::unreg(const TWindow* m)
const bool cf = _current == 0 && main_app().firm_change_enabled(); const bool cf = _current == 0 && main_app().firm_change_enabled();
xvt_menu_set_item_enabled(TASK_WIN, M_FILE_NEW, cf); xvt_menu_set_item_enabled(TASK_WIN, M_FILE_NEW, cf);
xvt_menu_set_item_enabled(TASK_WIN, M_FILE_REVERT, cf);
xvt_menu_update(TASK_WIN); xvt_menu_update(TASK_WIN);
cur_win()->set_focus(); cur_win()->set_focus();