108 lines
2.4 KiB
C++
Executable File
108 lines
2.4 KiB
C++
Executable File
#include <brwapp.h>
|
|
#include <mailbox.h>
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// TBrowse_application
|
|
///////////////////////////////////////////////////////////
|
|
|
|
void TBrowse_application::main_loop()
|
|
{
|
|
long recins = -1;
|
|
|
|
query_mode();
|
|
curr_mask().open_modal();
|
|
|
|
KEY k;
|
|
|
|
// Provoca l'autopremimento per il messaggio di LINK
|
|
if (lnflag()) curr_mask().send_key(K_AUTO_ENTER, 0);
|
|
|
|
do
|
|
{
|
|
// Dis/abilita cambio ditta
|
|
enable_menu_item(M_FILE_NEW, (curr_mask().mode() == MODE_QUERY));
|
|
|
|
k = curr_mask().run();
|
|
|
|
// Seleziona il cursore a clessidra se necessario
|
|
if (k != K_QUIT && k != K_F9)
|
|
xvt_scr_set_busy_cursor();
|
|
|
|
switch (k)
|
|
{
|
|
case K_ESC:
|
|
if (curr_mask().edit_mode())
|
|
file().reread(_unlock); // Unlock main file
|
|
|
|
if (curr_mask().query_mode())
|
|
{
|
|
curr_mask().reset();
|
|
set_fixed();
|
|
}
|
|
else query_mode();
|
|
if (lnflag()) k = K_QUIT;
|
|
break;
|
|
case K_QUIT:
|
|
if (curr_mask().mode() == MODE_MOD &&
|
|
(autoins_caller().not_empty() || lnflag()))
|
|
recins = file().recno();
|
|
break;
|
|
case K_ENTER:
|
|
if (find(0)) modify_mode();
|
|
else message_box("Registrazione assente"); // ocio
|
|
break;
|
|
case K_F9:
|
|
search_mode();
|
|
break;
|
|
default:
|
|
setkey();
|
|
int err = ~NOERR;
|
|
switch (k)
|
|
{
|
|
case K_HOME:
|
|
err = file().readat(first(), _testandlock);
|
|
break;
|
|
case K_NEXT:
|
|
err = file().reread();
|
|
err = file().next(_testandlock);
|
|
break;
|
|
case K_PREV:
|
|
err = file().reread();
|
|
err = file().prev(_testandlock);
|
|
break;
|
|
case K_END:
|
|
err = file().readat(last(), _testandlock);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
if (err == NOERR || err == _islocked) modify_mode();
|
|
else query_mode();
|
|
break;
|
|
}
|
|
|
|
if (k != K_QUIT && k != K_F9)
|
|
xvt_scr_reset_busy_cursor();
|
|
} while (k != K_QUIT);
|
|
|
|
if (curr_mask().is_open())
|
|
curr_mask().close_modal();
|
|
|
|
curr_mask().set_mode(NO_MODE);
|
|
|
|
if (recins > 0)
|
|
{
|
|
TString16 ri; ri << recins;
|
|
if (autoins_caller().not_empty())
|
|
{
|
|
TMessage msg(autoins_caller(), MSG_AI, ri);
|
|
msg.send();
|
|
}
|
|
if (lnflag())
|
|
{
|
|
TMessage msg(autoins_caller(), MSG_LN, ri);
|
|
msg.send();
|
|
}
|
|
}
|
|
}
|