Abbassati i campi testo di un paio di pixel
Corretta la gestione dei buttoni negli sheet git-svn-id: svn://10.65.10.50/trunk@762 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
325d8b66e3
commit
ce2ef3bb20
@ -528,7 +528,7 @@ void TApplication::about() const
|
|||||||
{
|
{
|
||||||
#include <prassi.ver>
|
#include <prassi.ver>
|
||||||
const TFilename n(__argv[0]);
|
const TFilename n(__argv[0]);
|
||||||
message_box("PRASSI Versione Beta %4.2f\nProgramma %s\nLibreria del %s",
|
message_box("PRASSI Versione %4.2f\nProgramma %s\nLibreria del %s",
|
||||||
VERSION, (const char*)n.name(), __DATE__);
|
VERSION, (const char*)n.name(), __DATE__);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -595,17 +595,20 @@ const char* TApplication::get_firm_dir() const
|
|||||||
|
|
||||||
bool TApplication::set_firm(long newfirm)
|
bool TApplication::set_firm(long newfirm)
|
||||||
{
|
{
|
||||||
disable_menu_item(M_FILE_NEW);
|
|
||||||
const long oldfirm = get_firm();
|
const long oldfirm = get_firm();
|
||||||
|
|
||||||
if (newfirm < 1)
|
if (newfirm < 1)
|
||||||
{
|
{
|
||||||
TMask mask("bagn002");
|
TMask mask("bagn002");
|
||||||
|
TString80 pp(__ptprf); pp.cut(pp.len()-1);
|
||||||
|
mask.set(F_PATHPREF, pp);
|
||||||
|
|
||||||
mask.send_key(K_CTRL+K_SHIFT+(extended_firm() ? 's' : 'h'), -2);
|
mask.show(-2, extended_firm());
|
||||||
|
|
||||||
|
disable_menu_item(M_FILE_NEW);
|
||||||
const KEY k = mask.run();
|
const KEY k = mask.run();
|
||||||
|
|
||||||
enable_menu_item(M_FILE_NEW);
|
enable_menu_item(M_FILE_NEW);
|
||||||
|
|
||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
{
|
{
|
||||||
newfirm = mask.get_long(F_CODDITTA);
|
newfirm = mask.get_long(F_CODDITTA);
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
#define F_CODDITTA 101
|
#define F_CODDITTA 101
|
||||||
#define F_RAGSOC 102
|
#define F_RAGSOC 102
|
||||||
#define F_TIPO 103
|
#define F_TIPO 103
|
||||||
|
#define F_PATHPREF 104
|
||||||
|
@ -2,9 +2,15 @@
|
|||||||
|
|
||||||
PAGE "Selezione Ditta" -1 -1 64 7
|
PAGE "Selezione Ditta" -1 -1 64 7
|
||||||
|
|
||||||
|
STRING F_PATHPREF 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Dati in "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER F_CODDITTA 5
|
NUMBER F_CODDITTA 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Codice "
|
PROMPT 1 2 "Codice "
|
||||||
HELP "Codice della ditta da attivare"
|
HELP "Codice della ditta da attivare"
|
||||||
FLAGS "FR"
|
FLAGS "FR"
|
||||||
USE LF_NDITTE KEY 1
|
USE LF_NDITTE KEY 1
|
||||||
@ -22,7 +28,7 @@ END
|
|||||||
|
|
||||||
LIST F_TIPO 20
|
LIST F_TIPO 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 40 1 ""
|
PROMPT 40 2 ""
|
||||||
HELP "Tipo di dati da selezionare"
|
HELP "Tipo di dati da selezionare"
|
||||||
ITEM "0|Ditte"
|
ITEM "0|Ditte"
|
||||||
MESSAGE ENABLE,1@
|
MESSAGE ENABLE,1@
|
||||||
|
@ -330,10 +330,10 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
TText::TText(short left, short top, short right, short bottom,
|
TText::TText(short left, short top, short right, short bottom,
|
||||||
const char* caption, WINDOW parent,
|
const char* caption, WINDOW parent,
|
||||||
long flags, long app_data, short id)
|
long flags, long app_data, short id)
|
||||||
{
|
{
|
||||||
create(left, top, right, bottom, caption, parent, flags, app_data, id);
|
create(left, top+1, right, bottom-1, caption, parent, flags, app_data, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TText::update() const
|
void TText::update() const
|
||||||
|
@ -43,7 +43,7 @@ class TSpreadsheet : public TWindow
|
|||||||
TSheet_field* _owner; // Owner
|
TSheet_field* _owner; // Owner
|
||||||
|
|
||||||
TMask_field* _edit_field; // Current edit field
|
TMask_field* _edit_field; // Current edit field
|
||||||
int _cur_row, _cur_col; // Current cell
|
int _cur_row, _cur_rec, _cur_col; // Current cell
|
||||||
bool _row_dirty; // Current row changed
|
bool _row_dirty; // Current row changed
|
||||||
bool _check_enabled; // Perform OFF_ROW checks
|
bool _check_enabled; // Perform OFF_ROW checks
|
||||||
|
|
||||||
@ -62,8 +62,10 @@ protected:
|
|||||||
|
|
||||||
int rec2row(int rec);
|
int rec2row(int rec);
|
||||||
int row2rec(int row);
|
int row2rec(int row);
|
||||||
|
int set_pos(int row, int col) { _cur_col = col; return _cur_rec = row2rec(_cur_row = row); }
|
||||||
|
|
||||||
bool notify(int r, KEY k);
|
bool notify(int row, KEY k);
|
||||||
|
void notify_change();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void update(int row);
|
void update(int row);
|
||||||
@ -88,7 +90,7 @@ public:
|
|||||||
KEY edit(int n);
|
KEY edit(int n);
|
||||||
|
|
||||||
int items() const { return _str.items(); }
|
int items() const { return _str.items(); }
|
||||||
int selected() const { return _cur_row; }
|
int selected() const { return _cur_rec; }
|
||||||
int columns() const { return _columns; }
|
int columns() const { return _columns; }
|
||||||
|
|
||||||
bool dirty() const { return _owner->dirty(); }
|
bool dirty() const { return _owner->dirty(); }
|
||||||
@ -363,6 +365,7 @@ void TSpreadsheet::update_rec(int rec)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TSpreadsheet::set_focus_cell(int riga, int colonna)
|
void TSpreadsheet::set_focus_cell(int riga, int colonna)
|
||||||
{
|
{
|
||||||
set_front_window(win()); // It seems necessary to make xi_set_focus work properly
|
set_front_window(win()); // It seems necessary to make xi_set_focus work properly
|
||||||
@ -524,13 +527,9 @@ break;
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case XIE_CHG_CELL:
|
case XIE_CHG_CELL:
|
||||||
if (!_row_dirty)
|
notify_change();
|
||||||
{
|
_cell_dirty = TRUE;
|
||||||
notify(_cur_row, K_SPACE);
|
break;
|
||||||
_row_dirty = TRUE;
|
|
||||||
}
|
|
||||||
_cell_dirty = TRUE;
|
|
||||||
break;
|
|
||||||
case XIE_BUTTON:
|
case XIE_BUTTON:
|
||||||
if (xiev->v.xi_obj->type == XIT_CELL)
|
if (xiev->v.xi_obj->type == XIT_CELL)
|
||||||
dispatch_e_char(win(), K_F9);
|
dispatch_e_char(win(), K_F9);
|
||||||
@ -540,15 +539,18 @@ break;
|
|||||||
break;
|
break;
|
||||||
case XIE_SELECT:
|
case XIE_SELECT:
|
||||||
if (xiev->v.xi_obj->type == XIT_ROW)
|
if (xiev->v.xi_obj->type == XIT_ROW)
|
||||||
{
|
{
|
||||||
if (!_row_dirty)
|
const int oldrec = _cur_rec;
|
||||||
{
|
set_pos(xiev->v.select.xi_obj->v.row, xiev->v.select.column);
|
||||||
notify(_cur_row, K_SPACE);
|
if (oldrec != _cur_rec)
|
||||||
_row_dirty = TRUE;
|
{
|
||||||
|
str2mask(_cur_rec);
|
||||||
|
_row_dirty = FALSE;
|
||||||
}
|
}
|
||||||
TMask_field* f = col2field(xiev->v.select.column);
|
_edit_field = col2field(_cur_col);
|
||||||
f->on_hit();
|
notify_change();
|
||||||
mask2str(_cur_row);
|
_edit_field->on_hit();
|
||||||
|
mask2str(_cur_rec);
|
||||||
}
|
}
|
||||||
xiev->refused = TRUE;
|
xiev->refused = TRUE;
|
||||||
break;
|
break;
|
||||||
@ -556,21 +558,22 @@ break;
|
|||||||
{
|
{
|
||||||
_check_enabled = FALSE;
|
_check_enabled = FALSE;
|
||||||
|
|
||||||
const int oldrow = _cur_row;
|
const int oldrec = _cur_rec;
|
||||||
_cur_row = row2rec(xiev->v.xi_obj->v.cell.row);
|
set_pos(xiev->v.xi_obj->v.cell.row, xiev->v.xi_obj->v.cell.column);
|
||||||
_cur_col = xiev->v.xi_obj->v.cell.column;
|
|
||||||
|
|
||||||
if (oldrow != _cur_row || !_row_dirty)
|
if (oldrec != _cur_rec || !_row_dirty)
|
||||||
notify(_cur_row, K_SPACE);
|
{
|
||||||
|
_row_dirty = FALSE;
|
||||||
const KEY k = edit(_cur_row);
|
notify_change();
|
||||||
|
}
|
||||||
|
const KEY k = edit(_cur_rec);
|
||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
{
|
{
|
||||||
update_rec(_cur_row);
|
update_rec(_cur_rec);
|
||||||
_row_dirty = TRUE;
|
_row_dirty = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cell_disabled(_cur_row, _cur_col))
|
if (!cell_disabled(_cur_rec, _cur_col))
|
||||||
set_focus_cell(_cur_row, _cur_col);
|
set_focus_cell(_cur_row, _cur_col);
|
||||||
_check_enabled = TRUE;
|
_check_enabled = TRUE;
|
||||||
}
|
}
|
||||||
@ -589,27 +592,29 @@ break;
|
|||||||
case XIE_ON_ROW:
|
case XIE_ON_ROW:
|
||||||
if (_check_enabled)
|
if (_check_enabled)
|
||||||
{
|
{
|
||||||
const int rec = row2rec(xiev->v.xi_obj->v.row);
|
set_pos(xiev->v.xi_obj->v.row, _cur_col);
|
||||||
if (rec < items())
|
if (_cur_rec < items())
|
||||||
{
|
{
|
||||||
_cur_row = rec;
|
str2mask(_cur_rec);
|
||||||
str2mask(rec);
|
|
||||||
_row_dirty = FALSE;
|
_row_dirty = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
_cur_row = _cur_rec = 0;
|
||||||
xiev->refused = TRUE;
|
xiev->refused = TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case XIE_OFF_ROW:
|
case XIE_OFF_ROW:
|
||||||
if (_row_dirty && _check_enabled)
|
if (_row_dirty && _check_enabled)
|
||||||
{
|
{
|
||||||
_check_enabled = FALSE; // Avoid recursion!
|
_check_enabled = FALSE; // Avoid recursion!
|
||||||
str2mask(_cur_row); // It shouldn't have to be necessary
|
str2mask(_cur_rec); // It shouldn't have to be necessary
|
||||||
bool ok = sheet_mask().check_fields();
|
bool ok = sheet_mask().check_fields();
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
mask2str(_cur_row);
|
mask2str(_cur_rec);
|
||||||
ok = notify(_cur_row, K_ENTER); // Notify edit
|
ok = notify(_cur_rec, K_ENTER); // Notify edit
|
||||||
}
|
}
|
||||||
if (!ok)
|
if (!ok)
|
||||||
{
|
{
|
||||||
@ -628,7 +633,7 @@ break;
|
|||||||
{
|
{
|
||||||
TMask_field* f = cell2field(xiev->v.xi_obj);
|
TMask_field* f = cell2field(xiev->v.xi_obj);
|
||||||
const int col = (f->dlg()-FIRST_FIELD) % 100;
|
const int col = (f->dlg()-FIRST_FIELD) % 100;
|
||||||
if (cell_disabled(_cur_row, col)) // If the cell is disabled ...
|
if (cell_disabled(_cur_rec, col)) // If the cell is disabled ...
|
||||||
{
|
{
|
||||||
dispatch_e_char(win(), _lastab); // ... skip to the next one.
|
dispatch_e_char(win(), _lastab); // ... skip to the next one.
|
||||||
}
|
}
|
||||||
@ -656,7 +661,7 @@ break;
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mask2str(_cur_row); // Update sheet row
|
mask2str(_cur_rec); // Update sheet row
|
||||||
_edit_field = NULL; // Reset current field
|
_edit_field = NULL; // Reset current field
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -712,14 +717,10 @@ break;
|
|||||||
if (_check_enabled)
|
if (_check_enabled)
|
||||||
{
|
{
|
||||||
_check_enabled = FALSE; // Disable checks
|
_check_enabled = FALSE; // Disable checks
|
||||||
if (!_row_dirty)
|
notify_change();
|
||||||
{
|
|
||||||
notify(_cur_row, K_SPACE);
|
|
||||||
_row_dirty = TRUE;
|
|
||||||
}
|
|
||||||
if (_edit_field->on_key(k))
|
if (_edit_field->on_key(k))
|
||||||
{
|
{
|
||||||
mask2str(_cur_row);
|
mask2str(_cur_rec);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1084,14 +1085,22 @@ void TSpreadsheet::str2mask(int riga)
|
|||||||
|
|
||||||
|
|
||||||
// Certified 100%
|
// Certified 100%
|
||||||
bool TSpreadsheet::notify(int n, KEY k)
|
bool TSpreadsheet::notify(int rec, KEY k)
|
||||||
{
|
{
|
||||||
const bool ok = _notify ? _notify(n, k) : TRUE;
|
const bool ok = _notify ? _notify(rec, k) : TRUE;
|
||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
set_dirty(ok ? TRUE : 3);
|
set_dirty(ok ? TRUE : 3);
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TSpreadsheet::notify_change()
|
||||||
|
{
|
||||||
|
if (!_row_dirty)
|
||||||
|
{
|
||||||
|
notify(_cur_rec, K_SPACE);
|
||||||
|
_row_dirty = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Certified 99%
|
// Certified 99%
|
||||||
#if XVT_OS != XVT_OS_WIN
|
#if XVT_OS != XVT_OS_WIN
|
||||||
|
@ -362,7 +362,7 @@ void TEvent_manager::push(WINDOW w, const EVENT& e)
|
|||||||
_e[_end] = e;
|
_e[_end] = e;
|
||||||
const int next = (_end+1) % MAX;
|
const int next = (_end+1) % MAX;
|
||||||
if (next == _begin)
|
if (next == _begin)
|
||||||
error_box("Hey %s, clicca piu' piano!", (const char*)main_app().user());
|
warning_box("Hey %s, clicca piu' piano!", (const char*)main_app().user());
|
||||||
else
|
else
|
||||||
_end = next;
|
_end = next;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user