Corretti problemi di triplo click e aggiunda validazione dei nomi dei file
git-svn-id: svn://10.65.10.50/trunk@722 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
4265b6a9ac
commit
0a2e2fd909
@ -2,125 +2,129 @@
|
|||||||
|
|
||||||
PAGE "IMPOSTAZIONE STAMPANTE" -1 -1 76 13
|
PAGE "IMPOSTAZIONE STAMPANTE" -1 -1 76 13
|
||||||
|
|
||||||
RADIOBUTTON MSK_1_TYPE 70
|
RADIOBUTTON MSK_1_TYPE 1 70
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Stampa su..."
|
PROMPT 1 1 "Stampa su..."
|
||||||
HELP "Selezionare il tipo dove direzionare la stampa"
|
HELP "Selezionare il tipo dove direzionare la stampa"
|
||||||
ITEM "0|Stampante"
|
ITEM "0|Stampante"
|
||||||
MESSAGE HIDE,MSK_1_FILENAME|RESET,MSK_1_FILENAME|SHOW,MSK_1_PRINTERS
|
MESSAGE HIDE,MSK_1_FILENAME
|
||||||
MESSAGE ENABLE,MSK_1_PRINTERS
|
MESSAGE SHOW,MSK_1_PRINTERS|ENABLE,MSK_1_PRINTERS
|
||||||
MESSAGE ENABLE,MSK_1_CODES
|
MESSAGE ENABLE,MSK_1_CODES
|
||||||
MESSAGE ENABLE,MSK_1_SIZE
|
MESSAGE ENABLE,MSK_1_SIZE
|
||||||
MESSAGE ENABLE,MSK_1_LINES
|
MESSAGE ENABLE,MSK_1_LINES
|
||||||
MESSAGE ENABLE,DLG_SETPRINT
|
MESSAGE ENABLE,DLG_SETPRINT
|
||||||
ITEM "2|Visualizzazione"
|
ITEM "2|Visualizzazione"
|
||||||
MESSAGE HIDE,MSK_1_FILENAME|RESET,MSK_1_FILENAME
|
MESSAGE HIDE,MSK_1_FILENAME
|
||||||
MESSAGE SHOW,MSK_1_PRINTERS|DISABLE,MSK_1_PRINTERS
|
MESSAGE SHOW,MSK_1_PRINTERS|DISABLE,MSK_1_PRINTERS
|
||||||
MESSAGE DISABLE,MSK_1_CODES
|
MESSAGE DISABLE,MSK_1_CODES
|
||||||
MESSAGE DISABLE,MSK_1_SIZE
|
MESSAGE DISABLE,MSK_1_SIZE
|
||||||
MESSAGE DISABLE,MSK_1_LINES
|
MESSAGE DISABLE,MSK_1_LINES
|
||||||
MESSAGE DISABLE,DLG_SETPRINT
|
MESSAGE DISABLE,DLG_SETPRINT
|
||||||
ITEM "1|File su disco"
|
ITEM "1|File su disco"
|
||||||
MESSAGE SHOW,MSK_1_FILENAME|HIDE,MSK_1_PRINTERS
|
MESSAGE SHOW,MSK_1_FILENAME
|
||||||
MESSAGE ENABLE,MSK_1_CODES
|
MESSAGE HIDE,MSK_1_PRINTERS
|
||||||
MESSAGE DISABLE,MSK_1_SIZE
|
MESSAGE ENABLE,MSK_1_CODES
|
||||||
MESSAGE DISABLE,MSK_1_LINES
|
MESSAGE DISABLE,MSK_1_SIZE
|
||||||
MESSAGE DISABLE,DLG_SETPRINT
|
MESSAGE DISABLE,MSK_1_LINES
|
||||||
FLAGS "Z"
|
MESSAGE DISABLE,DLG_SETPRINT
|
||||||
|
FLAGS "Z"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST MSK_1_PRINTERS 50
|
LIST MSK_1_PRINTERS 50
|
||||||
BEGIN
|
BEGIN
|
||||||
/* viene riempito a run-time con nomi letti da config */
|
/* viene riempito a run-time con nomi letti da config */
|
||||||
PROMPT 4 5 "Stampante "
|
PROMPT 4 5 "Stampante "
|
||||||
HELP "Selezionare il tipo di stampante desiderata"
|
HELP "Selezionare il tipo di stampante desiderata"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING MSK_1_FILENAME 52
|
STRING MSK_1_FILENAME 52
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 4 5 "Nome file "
|
PROMPT 4 5 "Nome file "
|
||||||
HELP "Nome del file su cui direzionare la stampa"
|
CHECKTYPE REQUIRED
|
||||||
|
VALIDATE FILENAME_FUNC
|
||||||
|
FLAGS "A"
|
||||||
|
HELP "Nome del file in cui memorizzare la stampa"
|
||||||
|
WARNING "E' necessario specificare un nome di file"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST MSK_1_CODES 40
|
LIST MSK_1_CODES 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 4 6 "Tipo stampa "
|
PROMPT 4 6 "Tipo stampa "
|
||||||
/* pure */
|
HELP "Modalita' nelle quale si desidera la stampa"
|
||||||
HELP "Modalita' nelle quale si desidera la stampa"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST MSK_1_SIZE 3
|
LIST MSK_1_SIZE 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 31 6 "Carattere "
|
PROMPT 31 6 "Carattere "
|
||||||
ITEM "7|7"
|
ITEM "7|7"
|
||||||
ITEM "8|8"
|
ITEM "8|8"
|
||||||
ITEM "10|10"
|
ITEM "10|10"
|
||||||
ITEM "12|12"
|
ITEM "12|12"
|
||||||
ITEM "15|15"
|
ITEM "15|15"
|
||||||
ITEM "17|17"
|
ITEM "17|17"
|
||||||
HELP "Dimensioni del carattere di stampa"
|
HELP "Dimensioni del carattere di stampa"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST MSK_1_LINES 3
|
LIST MSK_1_LINES 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 52 6 "Linee/Inch "
|
PROMPT 52 6 "Linee/Inch "
|
||||||
ITEM "4|4"
|
ITEM "4|4"
|
||||||
ITEM "5|5"
|
ITEM "5|5"
|
||||||
ITEM "6|6"
|
ITEM "6|6"
|
||||||
ITEM "7|7"
|
ITEM "7|7"
|
||||||
ITEM "8|8"
|
ITEM "8|8"
|
||||||
ITEM "9|9"
|
ITEM "9|9"
|
||||||
ITEM "10|10"
|
ITEM "10|10"
|
||||||
HELP "Numero di linee per pollice"
|
HELP "Numero di linee per pollice"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST MSK_1_FONT 10
|
LIST MSK_1_FONT 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 4 6 "Font "
|
PROMPT 4 6 "Font "
|
||||||
HELP "Font di stampa su video o stampante"
|
HELP "Font di stampa su video o stampante"
|
||||||
ITEM "1|Courier"
|
ITEM "1|Courier"
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER MSK_1_NPAGES 3 0
|
NUMBER MSK_1_NPAGES 3 0
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 54 8 "N.o copie "
|
PROMPT 54 8 "N.o copie "
|
||||||
HELP "Numero di copie da fare"
|
HELP "Numero di copie da fare"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN MSK_1_ISGRAPHICS
|
BOOLEAN MSK_1_ISGRAPHICS
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 4 8 "Stampa elementi grafici"
|
PROMPT 4 8 "Stampa elementi grafici"
|
||||||
HELP "Indicare se stampare elementi grafici (linee, box, logo) quando la stampante lo consente"
|
HELP "Indicare se stampare elementi grafici (linee, box, logo) quando la stampante lo consente"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 74 4
|
GROUPBOX DLG_NULL 74 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 9 ""
|
PROMPT 1 9 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_SETPRINT 9 2
|
BUTTON DLG_SETPRINT 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -14 -2 "~Imposta"
|
PROMPT -14 -2 "~Imposta"
|
||||||
HELP "Chiama l'Impostazione Stampante di Windows"
|
HELP "Chiama l'Impostazione Stampante di Windows"
|
||||||
MESSAGE EXIT,DLG_SETPRINT
|
MESSAGE EXIT,DLG_SETPRINT
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_SAVEREC 9 2
|
BUTTON DLG_SAVEREC 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -24 -2 "~Registra"
|
PROMPT -24 -2 "~Registra"
|
||||||
MESSAGE EXIT,K_INS
|
MESSAGE EXIT,K_INS
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 9 2
|
BUTTON DLG_OK 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -34 -2 ""
|
PROMPT -34 -2 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_CANCEL 9 2
|
BUTTON DLG_CANCEL 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -44 -2 ""
|
PROMPT -44 -2 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -598,7 +598,7 @@ TPush_button::TPush_button(short left, short top, short right, short bottom,
|
|||||||
_accel *= CHARX;
|
_accel *= CHARX;
|
||||||
|
|
||||||
_dx = (width - win_get_text_width(win(), (char*)caption(), -1)) >> 1;
|
_dx = (width - win_get_text_width(win(), (char*)caption(), -1)) >> 1;
|
||||||
_dy = byte((height-CHARY)/2 + BASEY);
|
_dy = byte((height-CHARY)/2 + BASEY - DEPTH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
n.ro campi lista di campi
|
n.ro campi lista di campi
|
||||||
CHECK_FIELD esegue il check su di un altro campo
|
CHECK_FIELD esegue il check su di un altro campo
|
||||||
campo
|
campo
|
||||||
|
FILENAME_FUNC controlla se la stringa e' un nome di file
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define EXPR_FUNC 0 2
|
#define EXPR_FUNC 0 2
|
||||||
@ -79,6 +80,7 @@
|
|||||||
#define STRCALC_FUNC 15
|
#define STRCALC_FUNC 15
|
||||||
#define ONEREQ_FUNC 16
|
#define ONEREQ_FUNC 16
|
||||||
#define CHECK_FIELD 17 1
|
#define CHECK_FIELD 17 1
|
||||||
|
#define FILENAME_FUNC 18
|
||||||
|
|
||||||
#define VALEXPR VALIDATE EXPR_FUNC
|
#define VALEXPR VALIDATE EXPR_FUNC
|
||||||
#define NUM_EXPR VALEXPR 0
|
#define NUM_EXPR VALEXPR 0
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// $Id: mailbox.cpp,v 1.7 1994-11-10 14:16:39 alex Exp $
|
// $Id: mailbox.cpp,v 1.8 1994-12-02 13:30:03 guy Exp $
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <fstream.h>
|
#include <fstream.h>
|
||||||
@ -16,12 +16,13 @@
|
|||||||
#define DEF_MSGS_CAPACITY 50
|
#define DEF_MSGS_CAPACITY 50
|
||||||
#define MAX_TXT_LEN 200
|
#define MAX_TXT_LEN 200
|
||||||
|
|
||||||
TMessage::TMessage(const char* to, const char* sub, const char* text,
|
TMessage::TMessage(const char* to, const char* sub,
|
||||||
const char* from)
|
const char* text, const char* from)
|
||||||
{
|
{
|
||||||
_to = to; _subject = sub;
|
_to = cmd2name(to);
|
||||||
|
_subject = sub;
|
||||||
_text = text;
|
_text = text;
|
||||||
_from = (from == NULL || *from == '\0' ? main_app().name() : from);
|
_from = (from == NULL || *from == '\0') ? main_app().name() : from;
|
||||||
_flags = 0x00; _number = -1;
|
_flags = 0x00; _number = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,9 +147,7 @@ void TMailbox::send(TMessage& m)
|
|||||||
|
|
||||||
ofstream fto(to_path, ios::app);
|
ofstream fto(to_path, ios::app);
|
||||||
CHECK(fto.good(),"send: trouble opening mailbox file");
|
CHECK(fto.good(),"send: trouble opening mailbox file");
|
||||||
fto << m.from() << '\n'
|
fto << m.from() << '\n' << m.subject() << '\n' << m.body() << '\n';
|
||||||
<< m.subject() << '\n'
|
|
||||||
<< m.body() << '\n';
|
|
||||||
fto.close();
|
fto.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -955,10 +955,11 @@ void TMask::reset(short fld_id)
|
|||||||
for (int f = 0; f < fields(); f++)
|
for (int f = 0; f < fields(); f++)
|
||||||
{
|
{
|
||||||
TMask_field& c = fld(f);
|
TMask_field& c = fld(f);
|
||||||
|
c._flags.dirty = FALSE;
|
||||||
c.reset();
|
c.reset();
|
||||||
c.set_dirty(FALSE);
|
|
||||||
}
|
}
|
||||||
} else field(fld_id).reset();
|
}
|
||||||
|
else field(fld_id).reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,9 +16,8 @@
|
|||||||
|
|
||||||
// @T
|
// @T
|
||||||
typedef bool (*MASK_HANDLER)(TMask& mask, KEY key);
|
typedef bool (*MASK_HANDLER)(TMask& mask, KEY key);
|
||||||
enum TMaskmode { NO_MODE, MODE_INS , MODE_MOD , MODE_DEL ,
|
enum TMaskmode { NO_MODE, MODE_INS , MODE_MOD ,
|
||||||
MODE_VIS , MODE_QUERY, MODE_QUERYINS,
|
MODE_VIS , MODE_QUERY, MODE_QUERYINS };
|
||||||
MODE_SEARCH };
|
|
||||||
// @END
|
// @END
|
||||||
|
|
||||||
// @C
|
// @C
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// $Id: maskfld.cpp,v 1.56 1994-12-02 13:07:39 alex Exp $
|
// $Id: maskfld.cpp,v 1.57 1994-12-02 13:30:09 guy Exp $
|
||||||
#include <xvt.h>
|
#include <xvt.h>
|
||||||
|
|
||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
@ -1348,7 +1348,7 @@ bool TBrowse::do_insert()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
TMailbox mail;
|
TMailbox mail;
|
||||||
TMessage msg(cmd2name(app), MSG_AI, "");
|
TMessage msg(app, MSG_AI, "");
|
||||||
mail.send(msg);
|
mail.send(msg);
|
||||||
|
|
||||||
TExternal_app a(app);
|
TExternal_app a(app);
|
||||||
@ -1497,10 +1497,13 @@ switch (k)
|
|||||||
default:
|
default:
|
||||||
if (k >= K_CTRL)
|
if (k >= K_CTRL)
|
||||||
{
|
{
|
||||||
|
const TMask& m = _fld->mask();
|
||||||
const short id = siblings.get_int((k - K_CTRL) << 1);
|
const short id = siblings.get_int((k - K_CTRL) << 1);
|
||||||
TEdit_field& ef = (TEdit_field&)_fld->mask().field(id);
|
TEdit_field& ef = m.efield(id);
|
||||||
ef.set_focus();
|
ef.set_focus();
|
||||||
ef.send_key(k = K_F9, 0);
|
k = K_F9;
|
||||||
|
if (m.is_running())
|
||||||
|
ef.send_key(k, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1552,10 +1555,7 @@ bool TBrowse::check(CheckTime t)
|
|||||||
|
|
||||||
bool TBrowse::empty_check()
|
bool TBrowse::empty_check()
|
||||||
{
|
{
|
||||||
const TMaskmode mode = (TMaskmode)field().mask().mode();
|
if ( field().mask().query_mode() || _fld->check_type() == CHECK_NONE ||
|
||||||
const bool no_check = mode == MODE_SEARCH || field().mask().query_mode();
|
|
||||||
|
|
||||||
if ( no_check || _fld->check_type() == CHECK_NONE ||
|
|
||||||
_fld->check_type() == CHECK_NORMAL)
|
_fld->check_type() == CHECK_NORMAL)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else
|
else
|
||||||
@ -1870,7 +1870,7 @@ void TEdit_field::create(WINDOW parent)
|
|||||||
flags |= CTL_FLAG_INVISIBLE;
|
flags |= CTL_FLAG_INVISIBLE;
|
||||||
}
|
}
|
||||||
_buttonwin = xvt_create_control(WC_PUSHBUTTON, _x+_width+delta, _y,
|
_buttonwin = xvt_create_control(WC_PUSHBUTTON, _x+_width+delta, _y,
|
||||||
2, 1, "*", parent, flags, PTR_LONG(this), DLG_F9);
|
2, 1, "*", parent, flags, PTR_LONG(this), DLG_F9);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2060,12 +2060,15 @@ bool TEdit_field::on_key(KEY key)
|
|||||||
case K_F9:
|
case K_F9:
|
||||||
if (check_enabled())
|
if (check_enabled())
|
||||||
{
|
{
|
||||||
|
enable_check(FALSE);
|
||||||
if (dirty()) set(get());
|
if (dirty()) set(get());
|
||||||
KEY k = K_ESC;
|
KEY k = K_ESC;
|
||||||
if (_browse) k = _browse->run();
|
if (_browse) k = _browse->run();
|
||||||
else if (_sheet) k = _sheet->run();
|
else
|
||||||
else beep();
|
if (_sheet) k = _sheet->run();
|
||||||
if (mask().is_running() && k != K_F9) set_focus();
|
else beep();
|
||||||
|
if (k != K_F9) set_focus();
|
||||||
|
enable_check(TRUE);
|
||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
{
|
{
|
||||||
set_dirty();
|
set_dirty();
|
||||||
|
@ -480,21 +480,7 @@ break;
|
|||||||
case XIE_BUTTON:
|
case XIE_BUTTON:
|
||||||
if (xiev->v.xi_obj->type == XIT_CELL)
|
if (xiev->v.xi_obj->type == XIT_CELL)
|
||||||
{
|
{
|
||||||
if (_edit_field)
|
dispatch_e_char(win(), K_F9);
|
||||||
{
|
|
||||||
const char* val = xi_get_text(xiev->v.xi_obj, NULL, -1);
|
|
||||||
_edit_field->set(val); // Update current cell
|
|
||||||
_check_enabled = FALSE; // Disable checks
|
|
||||||
if (!_row_dirty) notify(_cur_row, K_SPACE);
|
|
||||||
if (_edit_field->on_key(K_F9)) // Show search sheet
|
|
||||||
{
|
|
||||||
mask2str(_cur_row); // Update row
|
|
||||||
_row_dirty = TRUE;
|
|
||||||
}
|
|
||||||
set_front_window(win()); // It seems necessary to make xi_set_focus work properly
|
|
||||||
xi_set_focus(xiev->v.xi_obj); // Restore focus to cell
|
|
||||||
_check_enabled = TRUE; // Enable checks
|
|
||||||
}
|
|
||||||
} else
|
} else
|
||||||
if (xiev->v.xi_obj->type == XIT_LIST)
|
if (xiev->v.xi_obj->type == XIT_LIST)
|
||||||
insert(-1);
|
insert(-1);
|
||||||
@ -655,32 +641,40 @@ break;
|
|||||||
case K_F8:
|
case K_F8:
|
||||||
case K_F9:
|
case K_F9:
|
||||||
case K_F11:
|
case K_F11:
|
||||||
{
|
if (_check_enabled)
|
||||||
_check_enabled = FALSE; // Disable checks
|
|
||||||
if (!_row_dirty) notify(_cur_row, K_SPACE);
|
|
||||||
if (_edit_field->on_key(k))
|
|
||||||
{
|
{
|
||||||
mask2str(_cur_row);
|
_check_enabled = FALSE; // Disable checks
|
||||||
_row_dirty = TRUE;
|
if (!_row_dirty) notify(_cur_row, K_SPACE);
|
||||||
|
if (_edit_field->on_key(k))
|
||||||
|
{
|
||||||
|
mask2str(_cur_row);
|
||||||
|
_row_dirty = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (k == K_F9)
|
||||||
|
{
|
||||||
|
_edit_field = &_mask.fld(_mask.focus_field());
|
||||||
|
const short foca = _edit_field->dlg();
|
||||||
|
const int col = (foca - FIRST_FIELD) % 100 +1;
|
||||||
|
if (col > 0 && col != _cur_col)
|
||||||
|
{
|
||||||
|
_cur_col = col;
|
||||||
|
dispatch_e_char(win(), K_F9);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set_focus_cell(_cur_row, _cur_col);
|
||||||
|
_check_enabled = TRUE; // Enable checks
|
||||||
}
|
}
|
||||||
set_focus_cell(_cur_row, _cur_col);
|
|
||||||
_check_enabled = TRUE; // Enable checks
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case K_PREV:
|
case K_PREV:
|
||||||
case K_NEXT:
|
case K_NEXT:
|
||||||
{
|
if (xi_move_focus(_itf))
|
||||||
const bool ok = (bool)xi_move_focus(_itf);
|
dispatch_e_char(parent(), k);
|
||||||
if (ok) dispatch_e_char(parent(), k);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case K_ESC:
|
case K_ESC:
|
||||||
{
|
|
||||||
xi_set_focus(_itf);
|
xi_set_focus(_itf);
|
||||||
dispatch_e_char(parent(), K_ESC);
|
dispatch_e_char(parent(), K_ESC);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case K_CTRL+K_PREV:
|
case K_CTRL+K_PREV:
|
||||||
xi_scroll(_list, XI_SCROLL_PGUP);
|
xi_scroll(_list, XI_SCROLL_PGUP);
|
||||||
break;
|
break;
|
||||||
@ -1087,6 +1081,7 @@ TSheet_field::~TSheet_field()
|
|||||||
void TSheet_field::reset()
|
void TSheet_field::reset()
|
||||||
{
|
{
|
||||||
_sheet->destroy();
|
_sheet->destroy();
|
||||||
|
_sheet->mask().reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Certified 100%
|
// Certified 100%
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <xvt.h>
|
|
||||||
#include <urldefid.h>
|
|
||||||
|
|
||||||
#if XVT_OS==XVT_OS_SCOUNIX
|
#if XVT_OS==XVT_OS_SCOUNIX
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@ -10,18 +8,20 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <strstream.h>
|
||||||
|
#include <xvt.h>
|
||||||
|
|
||||||
#define STYLE_NUM 4
|
#define STYLE_NUM 4
|
||||||
|
|
||||||
|
#include <applicat.h>
|
||||||
|
#include <execp.h>
|
||||||
|
#include <extcdecl.h>
|
||||||
#include <mask.h>
|
#include <mask.h>
|
||||||
|
#include <urldefid.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
#include <viswin.h>
|
#include <viswin.h>
|
||||||
#include <extcdecl.h>
|
|
||||||
#include <applicat.h>
|
|
||||||
|
|
||||||
#include <printer.h>
|
|
||||||
#include <execp.h>
|
|
||||||
#include <bagn001a.h>
|
#include <bagn001a.h>
|
||||||
#include <strstream.h>
|
|
||||||
|
|
||||||
struct PrDesc
|
struct PrDesc
|
||||||
{
|
{
|
||||||
@ -1158,12 +1158,24 @@ void TPrinter::set()
|
|||||||
TToken_string pn1 (50), pn2 (100);
|
TToken_string pn1 (50), pn2 (100);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (_printerfile.empty())
|
||||||
|
{
|
||||||
|
_printerfile.tempdir();
|
||||||
|
#if XVT_OS == XVT_OS_SCOUNIX
|
||||||
|
_printerfile << '/';
|
||||||
|
#else
|
||||||
|
_printerfile << '\\';
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
TFilename defile("printer.def");
|
TFilename defile("printer.def");
|
||||||
#if XVT_OS == XVT_OS_SCOUNIX
|
#if XVT_OS == XVT_OS_SCOUNIX
|
||||||
defile << format (".%d", getuid ());
|
defile << format (".%d", getuid ());
|
||||||
#endif
|
#endif
|
||||||
mask.set_workfile(defile);
|
mask.set_workfile(defile);
|
||||||
|
|
||||||
|
mask.set(MSK_1_FILENAME, _printerfile);
|
||||||
|
mask.set(MSK_1_NPAGES, _ncopies);
|
||||||
|
|
||||||
#if XVT_OS != XVT_OS_WIN
|
#if XVT_OS != XVT_OS_WIN
|
||||||
|
|
||||||
@ -1199,9 +1211,6 @@ void TPrinter::set()
|
|||||||
|
|
||||||
mask.set(MSK_1_PRINTERS, format("%d", _curprn));
|
mask.set(MSK_1_PRINTERS, format("%d", _curprn));
|
||||||
mask.set(MSK_1_CODES, format("%d", _curcode));
|
mask.set(MSK_1_CODES, format("%d", _curcode));
|
||||||
mask.set(MSK_1_FILENAME, _printerfile);
|
|
||||||
mask.set(MSK_1_NPAGES, _ncopies);
|
|
||||||
|
|
||||||
KEY k;
|
KEY k;
|
||||||
|
|
||||||
if ((k = mask.run()) == K_ESC)
|
if ((k = mask.run()) == K_ESC)
|
||||||
@ -1236,7 +1245,6 @@ void TPrinter::set()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1: // file
|
case 1: // file
|
||||||
|
|
||||||
_printertype = fileprinter;
|
_printertype = fileprinter;
|
||||||
_printerfile = mask.get (MSK_1_FILENAME);
|
_printerfile = mask.get (MSK_1_FILENAME);
|
||||||
_curcode = atoi (mask.get (MSK_1_CODES));
|
_curcode = atoi (mask.get (MSK_1_CODES));
|
||||||
@ -1267,8 +1275,6 @@ void TPrinter::set()
|
|||||||
mask.set(MSK_1_SIZE, _ch_size);
|
mask.set(MSK_1_SIZE, _ch_size);
|
||||||
mask.set(MSK_1_LINES, _lines_per_inch);
|
mask.set(MSK_1_LINES, _lines_per_inch);
|
||||||
|
|
||||||
mask.set(MSK_1_NPAGES, _ncopies);
|
|
||||||
|
|
||||||
if (_printertype == fileprinter)
|
if (_printertype == fileprinter)
|
||||||
mask.set (MSK_1_TYPE, "1");
|
mask.set (MSK_1_TYPE, "1");
|
||||||
else if (_printertype == screenvis)
|
else if (_printertype == screenvis)
|
||||||
@ -1502,9 +1508,6 @@ genera_dischetti ()
|
|||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
warning_box ("Questa procedura richiede %2d dischetti",
|
|
||||||
_volume);
|
|
||||||
|
|
||||||
for (int i = 0; i < _tmp_files.items (); i++)
|
for (int i = 0; i < _tmp_files.items (); i++)
|
||||||
{
|
{
|
||||||
// Avvisa l'utente di inserire un dischetto
|
// Avvisa l'utente di inserire un dischetto
|
||||||
|
@ -112,15 +112,13 @@ real & real::operator += (const real & b)
|
|||||||
|
|
||||||
real & real::operator += (double a)
|
real & real::operator += (double a)
|
||||||
{
|
{
|
||||||
__tmp_real = *this;
|
adddfd (ptr (), ptr (), a);
|
||||||
adddfd (ptr (), __tmp_real.ptr (), a);
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
real & real::operator -= (const real & b)
|
real & real::operator -= (const real & b)
|
||||||
{
|
{
|
||||||
__tmp_real = *this;
|
dsub (ptr (), ptr (), b.ptr ());
|
||||||
dsub (ptr (), __tmp_real.ptr (), b.ptr ());
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -235,7 +233,7 @@ char *real ::literals () const
|
|||||||
TFixed_string risultato (__string, 80);
|
TFixed_string risultato (__string, 80);
|
||||||
risultato.cut (0);
|
risultato.cut (0);
|
||||||
|
|
||||||
TString16 centinaia;
|
TString80 centinaia;
|
||||||
|
|
||||||
for (int migliaia = 0;; migliaia++)
|
for (int migliaia = 0;; migliaia++)
|
||||||
{
|
{
|
||||||
@ -436,7 +434,7 @@ real & real ::ceil (int prec)
|
|||||||
dint (&integer, ptr ()); // Extract the integer part
|
dint (&integer, ptr ()); // Extract the integer part
|
||||||
|
|
||||||
if (disgt (ptr (), &integer)) // If positive ...
|
if (disgt (ptr (), &integer)) // If positive ...
|
||||||
addid (ptr (), &integer, 1); // add 1
|
addid (ptr (), &integer, 1); // ... add 1
|
||||||
else
|
else
|
||||||
dcpy(ptr(), &integer); // If negative
|
dcpy(ptr(), &integer); // If negative
|
||||||
|
|
||||||
|
@ -14,10 +14,6 @@
|
|||||||
#include <stdtypes.h>
|
#include <stdtypes.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __OBJECT_H
|
|
||||||
#include <object.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __ARRAY_H
|
#ifndef __ARRAY_H
|
||||||
#include <array.h>
|
#include <array.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// $Id: relapp.cpp,v 1.35 1994-11-30 09:04:01 guy Exp $
|
// $Id: relapp.cpp,v 1.36 1994-12-02 13:30:27 guy Exp $
|
||||||
#include <mailbox.h>
|
#include <mailbox.h>
|
||||||
#include <sheet.h>
|
#include <sheet.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
@ -648,6 +648,7 @@ bool TRelation_application::save(bool check_dirty)
|
|||||||
switch(err)
|
switch(err)
|
||||||
{
|
{
|
||||||
case NOERR:
|
case NOERR:
|
||||||
|
_recins = get_relation()->lfile().recno();
|
||||||
break;
|
break;
|
||||||
case _isreinsert:
|
case _isreinsert:
|
||||||
warning_box("Esiste gia' un documento con la stessa chiave");
|
warning_box("Esiste gia' un documento con la stessa chiave");
|
||||||
@ -718,7 +719,7 @@ bool TRelation_application::remove()
|
|||||||
|
|
||||||
bool TRelation_application::main_loop()
|
bool TRelation_application::main_loop()
|
||||||
{
|
{
|
||||||
long recins = -1;
|
_recins = -1;
|
||||||
|
|
||||||
query_mode();
|
query_mode();
|
||||||
_mask->open_modal();
|
_mask->open_modal();
|
||||||
@ -753,13 +754,8 @@ bool TRelation_application::main_loop()
|
|||||||
k = K_QUIT;
|
k = K_QUIT;
|
||||||
break;
|
break;
|
||||||
case K_QUIT:
|
case K_QUIT:
|
||||||
if (save(TRUE))
|
if (!save(TRUE))
|
||||||
{
|
k = K_ENTER;
|
||||||
if (_mask->edit_mode() &&
|
|
||||||
(_autoins_caller.not_empty() || _lnflag))
|
|
||||||
recins = file().recno();
|
|
||||||
}
|
|
||||||
else k = K_ENTER;
|
|
||||||
break;
|
break;
|
||||||
case K_ENTER:
|
case K_ENTER:
|
||||||
if (find(0)) modify_mode();
|
if (find(0)) modify_mode();
|
||||||
@ -768,9 +764,8 @@ bool TRelation_application::main_loop()
|
|||||||
case K_SAVE:
|
case K_SAVE:
|
||||||
if (save(FALSE))
|
if (save(FALSE))
|
||||||
{
|
{
|
||||||
if (_autoins_caller.not_empty() || _lnflag)
|
if (_autoins_caller.not_empty())
|
||||||
{
|
{
|
||||||
recins = file().recno();
|
|
||||||
k = K_QUIT;
|
k = K_QUIT;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -835,9 +830,9 @@ bool TRelation_application::main_loop()
|
|||||||
|
|
||||||
_mask->set_mode(NO_MODE);
|
_mask->set_mode(NO_MODE);
|
||||||
|
|
||||||
if (recins > 0 && _autoins_caller.not_empty())
|
if (autoins_caller().not_empty() && _recins >= 0)
|
||||||
{
|
{
|
||||||
TMessage msg(_autoins_caller, _lnflag ? MSG_LN : MSG_AI, format("%ld", recins));
|
TMessage msg(autoins_caller(), _lnflag ? MSG_LN : MSG_AI, format("%ld", _recins));
|
||||||
msg.send();
|
msg.send();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -901,16 +896,15 @@ bool TRelation_application::filter()
|
|||||||
_lnflag = TRUE;
|
_lnflag = TRUE;
|
||||||
|
|
||||||
const char* v = body.get();
|
const char* v = body.get();
|
||||||
|
TString80 s;
|
||||||
const int max = _mask->fields();
|
for (int i = 0; v != NULL && i < _mask->fields(); i++)
|
||||||
for (int i = 0; i < max && v != NULL; i++)
|
|
||||||
{
|
{
|
||||||
TMask_field& f = _mask->fld(i);
|
TMask_field& f = _mask->fld(i);
|
||||||
|
|
||||||
if (f.active() && f.dlg() > 0 && f.in_key(key))
|
if (f.active() && f.dlg() > 0 && f.in_key(key))
|
||||||
{
|
{
|
||||||
const TString s(v);
|
s = v;
|
||||||
_fixed.add(format("%d=%s", f.dlg(), (const char*) s));
|
_fixed.add(format("%d=%s", f.dlg(), (const char*)s));
|
||||||
v = body.get();
|
v = body.get();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,9 @@ class TRelation_application : public TApplication
|
|||||||
TRecnotype _first, _last;
|
TRecnotype _first, _last;
|
||||||
int _search_id;
|
int _search_id;
|
||||||
|
|
||||||
TString _autoins_caller;
|
TString16 _autoins_caller;
|
||||||
|
long _recins;
|
||||||
|
|
||||||
bool _lnflag;
|
bool _lnflag;
|
||||||
TToken_string _fixed;
|
TToken_string _fixed;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// $Id: relation.cpp,v 1.24 1994-11-18 17:01:26 guy Exp $
|
// $Id: relation.cpp,v 1.25 1994-12-02 13:30:30 guy Exp $
|
||||||
// relation.cpp
|
// relation.cpp
|
||||||
// fv 12/8/93
|
// fv 12/8/93
|
||||||
// relation class for isam files
|
// relation class for isam files
|
||||||
@ -98,13 +98,13 @@ TRelationdef::TRelationdef(const TRelation* rel, int idx_file, byte key,
|
|||||||
s = r.left(eq); // Parte a sinistra dell' =
|
s = r.left(eq); // Parte a sinistra dell' =
|
||||||
|
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
TString80 n(s);
|
const char* n = s;
|
||||||
const int p = n.find('[');
|
const int p = s.find('[');
|
||||||
if (p > 0) n.cut(p);
|
if (p > 0) n = s.left(p);
|
||||||
if (rel->file(_num).curr().exist(n) == FALSE)
|
if (rel->file(_num).curr().exist(n) == FALSE)
|
||||||
{
|
{
|
||||||
error_box("'%s' non e' un campo del file %d",
|
yesnofatal_box("Errore di JOIN: '%s' non e' un campo del file %d",
|
||||||
(const char*)n, rel->file(_num).num());
|
n, rel->file(_num).num());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -115,8 +115,9 @@ TRelationdef::TRelationdef(const TRelation* rel, int idx_file, byte key,
|
|||||||
eq++;
|
eq++;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString80 xx(s);
|
// const TString80 xx(s);
|
||||||
_fields.add(new TFieldref(xx,0));
|
// _fields.add(new TFieldref(xx,0));
|
||||||
|
_fields.add(new TFieldref(s,0));
|
||||||
|
|
||||||
_exprs.add(new TExpression(r.mid(eq+1), _strexpr));
|
_exprs.add(new TExpression(r.mid(eq+1), _strexpr));
|
||||||
}
|
}
|
||||||
@ -1103,10 +1104,10 @@ int name2log(const char* name)
|
|||||||
|
|
||||||
if (name && *name)
|
if (name && *name)
|
||||||
{
|
{
|
||||||
if (isdigit(*name))
|
if (isdigit(*name) || *name == '-')
|
||||||
{
|
{
|
||||||
log = atoi(name);
|
log = atoi(name);
|
||||||
if (strchr(name, '@')) log = -log;
|
if (strchr(name, '@')) log = -log;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <colors.h>
|
#include <colors.h>
|
||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
#include <printer.h>
|
|
||||||
#include <sheet.h>
|
#include <sheet.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
@ -35,7 +34,12 @@ TSheet::TSheet(short x, short y, short dx, short dy,
|
|||||||
_checkable = _size[0] = 1;
|
_checkable = _size[0] = 1;
|
||||||
else
|
else
|
||||||
_size[_columns] = l > 0 ? l : item.len();
|
_size[_columns] = l > 0 ? l : item.len();
|
||||||
} else _size[_columns] = item.len();
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_size[_columns] = item.len();
|
||||||
|
_type[_columns] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
item.trim();
|
item.trim();
|
||||||
new_head.add(item);
|
new_head.add(item);
|
||||||
@ -309,15 +313,27 @@ bool TSheet::on_key(KEY key)
|
|||||||
|
|
||||||
if (_checkable && _check_enabled && items() > 0)
|
if (_checkable && _check_enabled && items() > 0)
|
||||||
{
|
{
|
||||||
bool ok = TRUE;
|
bool force = FALSE;
|
||||||
switch(key)
|
switch(key)
|
||||||
{
|
{
|
||||||
case K_SPACE: _checked.not(selected()); break;
|
case K_SPACE:
|
||||||
case K_F2 : uncheck(-1); break;
|
_checked.not(selected());
|
||||||
case K_F3 : check(-1); break;
|
set_opaque_text(TRUE);
|
||||||
default : ok = FALSE; break;
|
update_row(selected());
|
||||||
}
|
set_opaque_text(FALSE);
|
||||||
if (ok) force_update();
|
break;
|
||||||
|
case K_F2:
|
||||||
|
uncheck(-1);
|
||||||
|
force = TRUE;
|
||||||
|
break;
|
||||||
|
case K_F3:
|
||||||
|
check(-1);
|
||||||
|
force = TRUE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (force) force_update();
|
||||||
}
|
}
|
||||||
return TScroll_window::on_key(key);
|
return TScroll_window::on_key(key);
|
||||||
}
|
}
|
||||||
|
@ -585,6 +585,48 @@ const char* TFilename::path() const
|
|||||||
return spark;
|
return spark;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TFilename::ok() const
|
||||||
|
{
|
||||||
|
const int l = len();
|
||||||
|
|
||||||
|
int len = 0; // lunghezza ultima sottostringa
|
||||||
|
bool ext = FALSE; // trovata estensione
|
||||||
|
|
||||||
|
for (int c = 0; c < l; c++)
|
||||||
|
{
|
||||||
|
switch(_str[c])
|
||||||
|
{
|
||||||
|
#if XVT_OS != XVT_OS_SCOUNIX
|
||||||
|
case ':':
|
||||||
|
if (c != 1 || !isalpha(_str[0])) return FALSE; // Nome disco errato
|
||||||
|
len = 0;
|
||||||
|
break;
|
||||||
|
case '\\':
|
||||||
|
#endif
|
||||||
|
case '/':
|
||||||
|
if (ext) return FALSE; // Slash dopo estensione
|
||||||
|
if (len > 8) return FALSE; // Nome troppo lungo
|
||||||
|
if (!isalnum(_str[++c])) return FALSE;
|
||||||
|
len = 1;
|
||||||
|
break;
|
||||||
|
case '.':
|
||||||
|
if (len == 0 || ext) return FALSE; // Nome nullo o Doppia estensione
|
||||||
|
ext = TRUE;
|
||||||
|
len = 0;
|
||||||
|
c++;
|
||||||
|
default:
|
||||||
|
if (isalnum(_str[c])) len++;
|
||||||
|
else return FALSE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ext && len > 3)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return len > 0 && len < 9;
|
||||||
|
}
|
||||||
|
|
||||||
// Certified 70%
|
// Certified 70%
|
||||||
const TFilename& TFilename::tempdir()
|
const TFilename& TFilename::tempdir()
|
||||||
{
|
{
|
||||||
|
@ -80,12 +80,13 @@ public:
|
|||||||
const TString& sub(int from, int to = -1) const; // Ritorna la stringa da FROM a TO (escluso)
|
const TString& sub(int from, int to = -1) const; // Ritorna la stringa da FROM a TO (escluso)
|
||||||
const TString& right(int count) const; // Ritorna l'oggetto TString composto dai count caratteri da destra
|
const TString& right(int count) const; // Ritorna l'oggetto TString composto dai count caratteri da destra
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// @DES Modifying methods
|
// @DES Modifying methods
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// @FPUB
|
// @FPUB
|
||||||
TString& fill(char c, int n = -1); // Riempie con n caratteri c
|
|
||||||
|
TString& fill(char c, int n = -1); // Riempie con n caratteri c
|
||||||
TString& spaces(int n = -1) { return fill(' ', n); }
|
TString& spaces(int n = -1) { return fill(' ', n); }
|
||||||
TString& overwrite(const char* s, int pos = 0); // Sovrascrive la stringa s dalla posizione pos
|
TString& overwrite(const char* s, int pos = 0); // Sovrascrive la stringa s dalla posizione pos
|
||||||
TString& insert(const char* s, int pos = 0); // Inserisce la stringa s dalla posizione pos
|
TString& insert(const char* s, int pos = 0); // Inserisce la stringa s dalla posizione pos
|
||||||
@ -108,12 +109,13 @@ public:
|
|||||||
TString& upper(); // Mette la stringa in maiuscolo
|
TString& upper(); // Mette la stringa in maiuscolo
|
||||||
TString& lower(); // Mette la stringa in minuscolo
|
TString& lower(); // Mette la stringa in minuscolo
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// @DES Standard operators
|
// @DES Standard operators
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// @FPUB
|
// @FPUB
|
||||||
const TString& operator =(const TString& s) { return set(s._str); }
|
|
||||||
|
const TString& operator =(const TString& s) { return set(s._str); }
|
||||||
const TString& operator =(const char* s) { return set(s); }
|
const TString& operator =(const char* s) { return set(s); }
|
||||||
|
|
||||||
TString& operator <<(const char*);
|
TString& operator <<(const char*);
|
||||||
@ -205,9 +207,11 @@ public:
|
|||||||
TFilename(const char* n = "") : TString80(n) {}
|
TFilename(const char* n = "") : TString80(n) {}
|
||||||
TFilename(const TString& n) : TString80(n) {}
|
TFilename(const TString& n) : TString80(n) {}
|
||||||
|
|
||||||
|
// assegnazione tra TFile e stringa
|
||||||
const TString& operator =(const char* s) { return set(s); }
|
const TString& operator =(const char* s) { return set(s); }
|
||||||
const TString& operator =(const TString& s) { return set((const char*)s); }
|
const TString& operator =(const TString& s) { return set((const char*)s); }
|
||||||
// assegnazione tra TFile e stringa
|
|
||||||
|
virtual bool ok() const; // Controlla il formato del nome del file
|
||||||
|
|
||||||
const char* ext() const; // Ritorna l'estensione
|
const char* ext() const; // Ritorna l'estensione
|
||||||
void ext(const char*); // Imposta come estensione la stringa puntata da char*
|
void ext(const char*); // Imposta come estensione la stringa puntata da char*
|
||||||
|
@ -436,7 +436,7 @@ HIDDEN bool _fixlen_val(TEdit_field& f, KEY)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
HIDDEN bool _mtcheck_val(TEdit_field& f, KEY)
|
HIDDEN bool _mtcheck_val(TEdit_field& f, KEY)
|
||||||
{
|
{
|
||||||
const int month = atoi(f.get());
|
const int month = atoi(f.get());
|
||||||
if (month < 1 || month > 13) return FALSE;
|
if (month < 1 || month > 13) return FALSE;
|
||||||
@ -549,12 +549,11 @@ HIDDEN bool _onereq_val(TEdit_field& f, KEY k)
|
|||||||
const TMask& m = f.mask();
|
const TMask& m = f.mask();
|
||||||
if (m.mode() == MODE_QUERY) return TRUE;
|
if (m.mode() == MODE_QUERY) return TRUE;
|
||||||
const int nparms = get_val_param_num();
|
const int nparms = get_val_param_num();
|
||||||
TString s;
|
|
||||||
|
|
||||||
for (int i = 0; i < nparms ; i++)
|
for (int i = 0; i < nparms ; i++)
|
||||||
{
|
{
|
||||||
s = m.get(atoi(get_val_param(i)));
|
const char* s = m.get(atoi(get_val_param(i)));
|
||||||
if (s.not_empty()) return TRUE;
|
if (*s) return TRUE;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@ -572,7 +571,13 @@ HIDDEN bool _chkfld_val(TEdit_field& f, KEY k)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAX_FUNC 18
|
HIDDEN bool _filename_val(TEdit_field& f, KEY)
|
||||||
|
{
|
||||||
|
const TFilename fn(f.get());
|
||||||
|
return fn.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
#define MAX_FUNC 19
|
||||||
|
|
||||||
HIDDEN VAL_FUNC _global_val_func[MAX_FUNC] =
|
HIDDEN VAL_FUNC _global_val_func[MAX_FUNC] =
|
||||||
{
|
{
|
||||||
@ -593,7 +598,8 @@ HIDDEN VAL_FUNC _global_val_func[MAX_FUNC] =
|
|||||||
_numcalc_val,
|
_numcalc_val,
|
||||||
_strcalc_val,
|
_strcalc_val,
|
||||||
_onereq_val,
|
_onereq_val,
|
||||||
_chkfld_val
|
_chkfld_val,
|
||||||
|
_filename_val
|
||||||
};
|
};
|
||||||
|
|
||||||
bool validate(int fn, TEdit_field& f, KEY k, const TArray& parms)
|
bool validate(int fn, TEdit_field& f, KEY k, const TArray& parms)
|
||||||
|
@ -8,8 +8,6 @@
|
|||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
#include <viswin.h>
|
#include <viswin.h>
|
||||||
#include <xvtility.h>
|
|
||||||
#include <colors.h>
|
|
||||||
|
|
||||||
#ifndef __PRINTER_H
|
#ifndef __PRINTER_H
|
||||||
typedef void (*LINKHANDLER) (int, const char *);
|
typedef void (*LINKHANDLER) (int, const char *);
|
||||||
@ -1784,24 +1782,26 @@ default:
|
|||||||
bool TViswin::call_editor ()
|
bool TViswin::call_editor ()
|
||||||
{
|
{
|
||||||
TConfig cnf (CONFIG_GENERAL, "Link");
|
TConfig cnf (CONFIG_GENERAL, "Link");
|
||||||
TString editor (cnf.get ("txt"));
|
const TFilename editor (cnf.get ("txt"));
|
||||||
|
|
||||||
bool ok = FALSE;
|
bool ok = FALSE;
|
||||||
|
|
||||||
if (!editor.empty ())
|
if (!editor.empty ())
|
||||||
{
|
{
|
||||||
TString newfilename;
|
TFilename newfilename; newfilename.tempdir();
|
||||||
|
FILE_SPEC fs;
|
||||||
static FILE_SPEC fs;
|
str_to_dir((char*)(const char*)newfilename, &fs.dir);
|
||||||
get_default_dir(&fs.dir);
|
|
||||||
strcpy (fs.type, "txt");
|
strcpy (fs.type, "txt");
|
||||||
|
strcpy (fs.name, "");
|
||||||
|
|
||||||
save_dir ();
|
save_dir ();
|
||||||
if (save_file_dlg (&fs, "Salva il file con il nome:") == FL_OK)
|
if (save_file_dlg (&fs, "Salva il file con il nome:") == FL_OK)
|
||||||
{
|
{
|
||||||
restore_dir ();
|
restore_dir ();
|
||||||
char path[256];
|
char path[256];
|
||||||
dir_to_str (&fs.dir, path, sizeof (path));
|
dir_to_str (&fs.dir, path, sizeof (path));
|
||||||
newfilename << path << '/' << fs.name;
|
newfilename = path;
|
||||||
|
newfilename << '/' << fs.name;
|
||||||
|
|
||||||
TPoint p1, p2;
|
TPoint p1, p2;
|
||||||
if (_isselection)
|
if (_isselection)
|
||||||
@ -1819,8 +1819,7 @@ bool TViswin::call_editor ()
|
|||||||
ok = TRUE;
|
ok = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
restore_dir ();
|
||||||
restore_dir ();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
warning_box ("Nessun editor specificato nei parametri studio");
|
warning_box ("Nessun editor specificato nei parametri studio");
|
||||||
|
@ -342,7 +342,7 @@ void beep()
|
|||||||
|
|
||||||
class TEvent_manager
|
class TEvent_manager
|
||||||
{
|
{
|
||||||
enum { MAX = 16 };
|
enum { MAX = 2 };
|
||||||
WINDOW _w[MAX];
|
WINDOW _w[MAX];
|
||||||
EVENT _e[MAX];
|
EVENT _e[MAX];
|
||||||
int _begin, _end;
|
int _begin, _end;
|
||||||
@ -360,8 +360,11 @@ void TEvent_manager::push(WINDOW w, const EVENT& e)
|
|||||||
CHECK(w, "You shouldn't send events to NULL_WIN!");
|
CHECK(w, "You shouldn't send events to NULL_WIN!");
|
||||||
_w[_end] = w;
|
_w[_end] = w;
|
||||||
_e[_end] = e;
|
_e[_end] = e;
|
||||||
_end = (++_end) % MAX;
|
const int next = (_end+1) % MAX;
|
||||||
CHECKD(_end != _begin, "Too many events queued: max. ", MAX);
|
if (next == _begin)
|
||||||
|
error_box("Hey %s, clicca piu' piano!", (const char*)main_app().user());
|
||||||
|
else
|
||||||
|
_end = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TEvent_manager::pop()
|
void TEvent_manager::pop()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user