controls.cpp Selezionato core di default per disabilitati
mask.h Aggiuntop metodo protetto get_fields_array maskfld.cpp Trimmate le get dei list_field maskfld.h Aggiunto uno schifosissimo friend TSheet sheet.cpp Corretto problema del tasto freccia premuto all'inizio git-svn-id: svn://10.65.10.50/trunk@2986 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f1f2ea8d51
commit
6a67a68b58
@ -140,13 +140,18 @@ enum event_action { a_ignore, a_xvt, a_xvt_post, a_obj, a_child, a_update, a_sel
|
||||
void init_controls()
|
||||
{
|
||||
xi_set_font_id(xvt_default_font());
|
||||
|
||||
xi_set_pref(XI_PREF_NATIVE_CTRLS, FALSE);
|
||||
xi_set_pref(XI_PREF_3D_LOOK, TRUE);
|
||||
|
||||
xi_set_pref(XI_PREF_COLOR_LIGHT, MASK_LIGHT_COLOR);
|
||||
xi_set_pref(XI_PREF_COLOR_CTRL, MASK_BACK_COLOR);
|
||||
xi_set_pref(XI_PREF_COLOR_DARK, MASK_DARK_COLOR);
|
||||
xi_set_pref(XI_PREF_COLOR_DISABLED, DISABLED_COLOR);
|
||||
|
||||
xi_set_pref(XI_PREF_AUTOSEL_ON_MOUSE, TRUE);
|
||||
xi_set_pref(XI_PREF_CARET_WIDTH, 2);
|
||||
xi_set_pref(XI_PREF_3D_LOOK, TRUE);
|
||||
xi_set_pref(XI_PREF_COLOR_LIGHT, MASK_LIGHT_COLOR);
|
||||
xi_set_pref(XI_PREF_COLOR_CTRL, MASK_BACK_COLOR);
|
||||
xi_set_pref(XI_PREF_COLOR_DARK, MASK_DARK_COLOR);
|
||||
|
||||
xi_init();
|
||||
|
||||
event_map[XIE_CHAR_FIELD] = a_obj;
|
||||
|
@ -104,6 +104,7 @@ class TMask : public TWindow
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
TArray& fields_array() { return _field; }
|
||||
|
||||
// @cmember:(INTERNAL) Numero di sheet contenuti nella maschera
|
||||
int _sheets;
|
||||
|
@ -3642,8 +3642,7 @@ int TList_field::str2curr(const char* data)
|
||||
if (_flags.uppercase)
|
||||
str.upper();
|
||||
|
||||
int i = str.not_empty() ? _codes.get_pos(str) : 0;
|
||||
|
||||
int i = str.blank() ? 0 : _codes.get_pos(str);
|
||||
if (i < 0) // Se non trova il codice ritenta dopo trim
|
||||
{
|
||||
for (i = 0; str[i] == '0' || str[i] == ' '; i++);
|
||||
@ -3689,6 +3688,7 @@ void TList_field::current(int n)
|
||||
{
|
||||
((TListbox_control*)_ctl)->select(n);
|
||||
_str = _codes.get(n);
|
||||
_str.trim();
|
||||
}
|
||||
|
||||
int TList_field::current() const
|
||||
@ -3700,6 +3700,7 @@ TString& TList_field::get_window_data()
|
||||
{
|
||||
const int c = current();
|
||||
_str = ((TList_field*)this)->_codes.get(c);
|
||||
_str.trim();
|
||||
return _str;
|
||||
}
|
||||
|
||||
@ -3786,6 +3787,7 @@ void TRadio_field::current(int n)
|
||||
{
|
||||
((TRadiobutton_control*)_ctl)->check_button(n);
|
||||
_str = _codes.get(n);
|
||||
_str.trim();
|
||||
}
|
||||
|
||||
|
||||
|
@ -58,6 +58,8 @@ class TMask_field : public TObject
|
||||
{
|
||||
// @cfriend TMask
|
||||
friend class TMask;
|
||||
// @cfriend TSheet
|
||||
friend class TSheet;
|
||||
|
||||
// @access:(INTERNAL) Private Member
|
||||
|
||||
|
@ -70,7 +70,7 @@ public:
|
||||
|
||||
void update(long n = -1);
|
||||
|
||||
TSheet_control(TSheet* sheet, short cid,
|
||||
TSheet_control(WINDOW sheet, short cid,
|
||||
short x, short y, short dx, short dy,
|
||||
const char* flags, const char* head);
|
||||
virtual ~TSheet_control() {}
|
||||
@ -78,7 +78,7 @@ public:
|
||||
|
||||
|
||||
TSheet_control::TSheet_control(
|
||||
TSheet* sheet, // @parm Finestra alla quale appartiene lo spreadsheet
|
||||
WINDOW parent, // @parm Finestra alla quale appartiene lo spreadsheet
|
||||
short cid, // @parm Identificatore
|
||||
short x, // @parm Coordinata x (in caratteri) nel quale posizionare lo spreadsheet
|
||||
short y, // @parm Coordinata y (in caratteri) nel quale posizionare lo spreadsheet
|
||||
@ -86,7 +86,7 @@ TSheet_control::TSheet_control(
|
||||
short dy, // @parm Lunghezza (in caratteri) dello spreasheet
|
||||
const char* flags, // @parm Flags di abilitazione
|
||||
const char* head) // @parm Titolo delle colonne
|
||||
: _sheet(sheet), _cur_rec(0), _check_enabled(FALSE)
|
||||
: _sheet(NULL), _cur_rec(0), _check_enabled(FALSE)
|
||||
|
||||
{
|
||||
const int NUMBER_WIDTH = 7;
|
||||
@ -94,6 +94,8 @@ TSheet_control::TSheet_control(
|
||||
short m_width[MAX_COL];
|
||||
int fixed_columns = 1; // Number of fixed columns
|
||||
|
||||
_sheet = (TSheet*)xvt_vobj_get_data(parent);
|
||||
|
||||
// Calcolo larghezza massima tabella
|
||||
|
||||
TToken_string header(head);
|
||||
@ -147,8 +149,6 @@ TSheet_control::TSheet_control(
|
||||
}
|
||||
const int _columns = i;
|
||||
|
||||
WINDOW parent = sheet->win();
|
||||
|
||||
// Calcola rettangolo massimo per lo sheet
|
||||
XI_RCT rct; coord2rct(parent, x, y, dx, dy, rct);
|
||||
rct.right -= 2*XI_FU_MULTIPLE; // toglie scroll-bar
|
||||
@ -528,6 +528,7 @@ bool TSheet_control::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
}
|
||||
else
|
||||
{
|
||||
xiev->v.cell_request.color = NORMAL_COLOR;
|
||||
src = format("%ld", rec+1);
|
||||
}
|
||||
|
||||
@ -665,6 +666,31 @@ bool TSheet_control::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
return !refused;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TQuery_field
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TQuery_field : public TOperable_field
|
||||
{
|
||||
protected:
|
||||
virtual void create(WINDOW parent);
|
||||
|
||||
public:
|
||||
TSheet_control* sheet() const { return (TSheet_control*)_ctl; }
|
||||
|
||||
TQuery_field(TMask* m) : TOperable_field(m) { }
|
||||
virtual ~TQuery_field() { }
|
||||
};
|
||||
|
||||
void TQuery_field::create(WINDOW parent)
|
||||
{
|
||||
_ctl = new TSheet_control(parent, dlg(),
|
||||
_ctl_data._x, _ctl_data._y,
|
||||
_ctl_data._width, _ctl_data._size,
|
||||
_ctl_data._flags, _ctl_data._prompt);
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TSheet
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -674,8 +700,11 @@ TSheet::TSheet(short x, short y, short dx, short dy,
|
||||
byte buttons, short sht_y)
|
||||
: TMask(title, sht_y == 0 ? 1 : 2, dx, dy, x, y),
|
||||
_parked(-1), _sheet(NULL), _select_row(-1)
|
||||
{
|
||||
_sheet = new TSheet_control(this, 883, 1, sht_y, -1, -3, "", head);
|
||||
{
|
||||
TQuery_field* qf = new TQuery_field(this);
|
||||
qf->construct(883, head, 1, sht_y, -3, win(), "", -1);
|
||||
fields_array().add(qf);
|
||||
_sheet = qf->sheet();
|
||||
|
||||
if (!(buttons & 0x10)) add_button(DLG_SELECT, "Selezione", K_ENTER);
|
||||
if (check_enabled())
|
||||
@ -831,10 +860,10 @@ bool TSheet::on_key(KEY key)
|
||||
case K_SPACE:
|
||||
check(selected(), !checked(selected()));
|
||||
break;
|
||||
case K_F2:
|
||||
case K_F7:
|
||||
uncheck(-1);
|
||||
break;
|
||||
case K_F3:
|
||||
case K_F8:
|
||||
check(-1);
|
||||
break;
|
||||
default:
|
||||
@ -868,8 +897,7 @@ void TSheet::on_idle()
|
||||
if (_select_row >= 0)
|
||||
{
|
||||
const short focus_id = get_focus_id(win());
|
||||
|
||||
if (focus_id == 883)
|
||||
if (focus_id == _sheet->id())
|
||||
{
|
||||
_sheet->select(_select_row);
|
||||
_sheet->set_focus_rec(-1);
|
||||
@ -1029,7 +1057,8 @@ bool TBrowse_sheet::browse_field_handler(TMask_field& f, KEY k)
|
||||
if (f.is_edit())
|
||||
{
|
||||
TEdit_field& ef = (TEdit_field&)f;
|
||||
c.set(ef.get_window_data());
|
||||
const TString& wd = ef.get_window_data();
|
||||
c.set(wd);
|
||||
}
|
||||
else
|
||||
c.set(f.get());
|
||||
|
Loading…
x
Reference in New Issue
Block a user