Patch level : 10.0
Files correlati : tutti Ricompilazione Demo : [ ] Commento : Cambiata gestione chiavi alternative di ordinamento nelle maschere di ricerca Corretta gestione bottoni di filtro sulle ricerche stesse git-svn-id: svn://10.65.10.50/trunk@16788 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
de77f64a9c
commit
1fb9f09beb
@ -16,31 +16,31 @@ END
|
|||||||
|
|
||||||
BUTTON DLG_FIRSTREC 3
|
BUTTON DLG_FIRSTREC 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -34 -1 "Prima pagina"
|
PROMPT -34 -1 "Prima"
|
||||||
PICTURE 121
|
PICTURE 121
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_PREVREC 3
|
BUTTON DLG_PREVREC 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -34 -2 "Pagina Precedente"
|
PROMPT -34 -2 "Precedente"
|
||||||
PICTURE 122
|
PICTURE 122
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_FINDREC 10 2
|
BUTTON DLG_FINDREC 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -34 -1 "Ricerca Pagina"
|
PROMPT -34 -1 "Pagina"
|
||||||
PICTURE 166
|
PICTURE 166
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_NEXTREC 3
|
BUTTON DLG_NEXTREC 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -34 -2 "Prossima pagina"
|
PROMPT -34 -2 "Prossima"
|
||||||
PICTURE 124
|
PICTURE 124
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_LASTREC 3
|
BUTTON DLG_LASTREC 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -34 -1 "Ultima Pagina"
|
PROMPT -34 -1 "Ultima"
|
||||||
PICTURE 125
|
PICTURE 125
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -93,21 +93,22 @@ class TPicture_array
|
|||||||
TArray _enabled, _disabled;
|
TArray _enabled, _disabled;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool add(short id);
|
bool add(int id);
|
||||||
short add(const char * n);
|
int add(const char* n);
|
||||||
|
int add_icon(int id);
|
||||||
|
|
||||||
const TImage& image(short id) const { return (const TImage&)_enabled[id]; }
|
const TImage& image(int id) const { return (const TImage&)_enabled[id]; }
|
||||||
const TImage& disabled_image(short id) const { return (const TImage&)_disabled[id]; }
|
const TImage& disabled_image(int id) const { return (const TImage&)_disabled[id]; }
|
||||||
bool exist(short id) const { return _enabled.objptr(id) != NULL; }
|
bool exist(int id) const { return _enabled.objptr(id) != NULL; }
|
||||||
void reload();
|
void reload();
|
||||||
|
|
||||||
TPicture_array() {}
|
TPicture_array() {}
|
||||||
virtual ~TPicture_array() {}
|
virtual ~TPicture_array() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
short TPicture_array::add(const char * n)
|
int TPicture_array::add(const char* n)
|
||||||
{
|
{
|
||||||
short id; // calcola il prossimo identificatore di immagine libero
|
int id; // calcola il prossimo identificatore di immagine libero
|
||||||
for (id = 30000; _enabled.objptr(id) != NULL; id++);
|
for (id = 30000; _enabled.objptr(id) != NULL; id++);
|
||||||
|
|
||||||
TImage* i = new TImage(n);
|
TImage* i = new TImage(n);
|
||||||
@ -120,7 +121,25 @@ short TPicture_array::add(const char * n)
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TPicture_array::add(short id)
|
int TPicture_array::add_icon(int id)
|
||||||
|
{
|
||||||
|
const int rid = 50000+id;
|
||||||
|
TImage* i = (TImage*)_enabled.objptr(rid);
|
||||||
|
if (i == NULL)
|
||||||
|
{
|
||||||
|
TConfig ini("res/resource.ini", "Icons");
|
||||||
|
TString8 strid; strid << id;
|
||||||
|
TFilename n; n << "res/" << ini.get(strid);
|
||||||
|
TImage* i = new TImage(n);
|
||||||
|
_enabled.add(i, rid);
|
||||||
|
TImage* d = new TImage(*i);
|
||||||
|
d->fade_to_gray(true);
|
||||||
|
_disabled.add(d, rid);
|
||||||
|
}
|
||||||
|
return rid;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TPicture_array::add(int id)
|
||||||
{
|
{
|
||||||
TImage* i = (TImage*)_enabled.objptr(id);
|
TImage* i = (TImage*)_enabled.objptr(id);
|
||||||
if (i == NULL)
|
if (i == NULL)
|
||||||
@ -1729,13 +1748,13 @@ void TPushbutton_control::set_caption(const char* c)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPushbutton_control::set_bmp(short bmp_up, short bmp_dn)
|
void TPushbutton_control::set_bmp(int bmp_up, int bmp_dn)
|
||||||
{
|
{
|
||||||
if (bmp_up > 0)
|
if (bmp_up > 0)
|
||||||
{
|
{
|
||||||
|
set_icon(0);
|
||||||
_bmp_up = (bmp_up > 0 && _picture->add(bmp_up)) ? bmp_up : 0;
|
_bmp_up = (bmp_up > 0 && _picture->add(bmp_up)) ? bmp_up : 0;
|
||||||
_bmp_dn = (bmp_dn > 0 && _picture->add(bmp_dn)) ? bmp_dn : _bmp_up;
|
_bmp_dn = (bmp_dn > 0 && _picture->add(bmp_dn)) ? bmp_dn : _bmp_up;
|
||||||
set_icon(0);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
_bmp_up = _bmp_dn = 0;
|
_bmp_up = _bmp_dn = 0;
|
||||||
@ -1755,16 +1774,32 @@ void TPushbutton_control::set_bmp(short bmp_up, short bmp_dn)
|
|||||||
_obj->v.btn->drawable = _bmp_up > 0;
|
_obj->v.btn->drawable = _bmp_up > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TPushbutton_control::set_icon(int icon_up, int icon_dn)
|
||||||
|
{
|
||||||
|
if (xi_get_native_controls(_obj))
|
||||||
|
{
|
||||||
|
TButton_control::set_icon(0, 0);
|
||||||
|
if (icon_up > 0)
|
||||||
|
{
|
||||||
|
const int bmp_up = _picture->add_icon(icon_up);
|
||||||
|
const int bmp_dn = _picture->add_icon(icon_dn > 0 ? icon_dn : icon_up);
|
||||||
|
set_bmp(bmp_up, bmp_dn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
TButton_control::set_icon(icon_up, icon_dn);
|
||||||
|
}
|
||||||
|
|
||||||
void TPushbutton_control::set_bmp(const char* bmp_up, const char* bmp_dn)
|
void TPushbutton_control::set_bmp(const char* bmp_up, const char* bmp_dn)
|
||||||
{
|
{
|
||||||
if (bmp_up && *bmp_up)
|
if (bmp_up && *bmp_up)
|
||||||
{
|
{
|
||||||
|
set_icon(0);
|
||||||
_bmp_up = _picture->add(bmp_up);
|
_bmp_up = _picture->add(bmp_up);
|
||||||
if (bmp_dn && *bmp_dn)
|
if (bmp_dn && *bmp_dn)
|
||||||
_bmp_dn = _picture->add(bmp_dn);
|
_bmp_dn = _picture->add(bmp_dn);
|
||||||
else
|
else
|
||||||
_bmp_dn = _bmp_up;
|
_bmp_dn = _bmp_up;
|
||||||
set_icon(0);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
_bmp_up = _bmp_dn = 0;
|
_bmp_up = _bmp_dn = 0;
|
||||||
@ -1842,10 +1877,39 @@ TCheckbox_control::TCheckbox_control(WINDOW win, short cid,
|
|||||||
// TCheckbutton_control
|
// TCheckbutton_control
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void TCheckbutton_control::check(bool on)
|
||||||
|
{
|
||||||
|
TButton_control::check(on);
|
||||||
|
if (xi_get_native_controls(_obj))
|
||||||
|
{
|
||||||
|
XVT_IMAGE img_up = _picture->image(on ? _pic_dn : _pic_up).xvt_image();
|
||||||
|
XVT_IMAGE img_dn = _picture->image(on ? _pic_up : _pic_dn).xvt_image();
|
||||||
|
xvt_btn_set_images((WINDOW)_obj->v.btn->btnctl, img_up, img_dn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TCheckbutton_control::set_icon(int icon_up, int icon_dn)
|
||||||
|
{
|
||||||
|
if (xi_get_native_controls(_obj))
|
||||||
|
{
|
||||||
|
TButton_control::set_icon(0, 0);
|
||||||
|
if (icon_up > 0)
|
||||||
|
{
|
||||||
|
_pic_up = _picture->add_icon(icon_up);
|
||||||
|
_pic_dn = _picture->add_icon(icon_dn > 0 ? icon_dn : icon_up);
|
||||||
|
XVT_IMAGE img_up = _pic_up > 0 ? _picture->image(_pic_up).xvt_image() : NULL;
|
||||||
|
XVT_IMAGE img_dn = _pic_dn > 0 ? _picture->image(_pic_dn).xvt_image() : NULL;
|
||||||
|
xvt_btn_set_images((WINDOW)_obj->v.btn->btnctl, img_up, img_dn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
TButton_control::set_icon(icon_up, icon_dn);
|
||||||
|
}
|
||||||
|
|
||||||
TCheckbutton_control::TCheckbutton_control(WINDOW win, short cid,
|
TCheckbutton_control::TCheckbutton_control(WINDOW win, short cid,
|
||||||
short left, short top, short width, int height,
|
short left, short top, short width, int height,
|
||||||
const char* flags, const char* text,
|
const char* flags, const char* text,
|
||||||
short icon_up, short icon_dn)
|
int icon_up, int icon_dn)
|
||||||
{
|
{
|
||||||
create(win, cid, left, top, width, height, flags, text, WC_CHECKBUTTON, NULL);
|
create(win, cid, left, top, width, height, flags, text, WC_CHECKBUTTON, NULL);
|
||||||
set_icon(icon_up, icon_dn);
|
set_icon(icon_up, icon_dn);
|
||||||
|
@ -202,14 +202,14 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
bool checked() const;
|
bool checked() const;
|
||||||
void check(bool on = true);
|
virtual void check(bool on = true);
|
||||||
void uncheck() { check(false); }
|
void uncheck() { check(false); }
|
||||||
bool toggle();
|
bool toggle();
|
||||||
|
|
||||||
int button_type() const;
|
int button_type() const;
|
||||||
XI_OBJ* container() const;
|
XI_OBJ* container() const;
|
||||||
|
|
||||||
void set_icon(unsigned int icon_up, unsigned int icon_dn = 0);
|
virtual void set_icon(unsigned int icon_up, unsigned int icon_dn = 0);
|
||||||
|
|
||||||
TButton_control() {}
|
TButton_control() {}
|
||||||
virtual ~TButton_control() {}
|
virtual ~TButton_control() {}
|
||||||
@ -229,8 +229,9 @@ public:
|
|||||||
// @cmember Setta il prompt del bottone
|
// @cmember Setta il prompt del bottone
|
||||||
virtual void set_caption(const char* c);
|
virtual void set_caption(const char* c);
|
||||||
|
|
||||||
void set_bmp(short up, short dn);
|
void set_bmp(int up, int dn);
|
||||||
void set_bmp(const char * up, const char * dn);
|
void set_bmp(const char * up, const char * dn);
|
||||||
|
void set_icon(int icon_up, int icon_dn = 0);
|
||||||
void set_central_icon(unsigned int hicon);
|
void set_central_icon(unsigned int hicon);
|
||||||
char mnemonic() const;
|
char mnemonic() const;
|
||||||
|
|
||||||
@ -294,11 +295,18 @@ public:
|
|||||||
|
|
||||||
class TCheckbutton_control : public TButton_control
|
class TCheckbutton_control : public TButton_control
|
||||||
{
|
{
|
||||||
|
int _pic_up, _pic_dn;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void check(bool on);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
virtual void set_icon(int icon_up, int icon_dn);
|
||||||
|
|
||||||
TCheckbutton_control(WINDOW win, short cid,
|
TCheckbutton_control(WINDOW win, short cid,
|
||||||
short left, short top, short width, int height,
|
short left, short top, short width, int height,
|
||||||
const char* flags, const char* text,
|
const char* flags, const char* text,
|
||||||
short icon_up, short icon_dn);
|
int icon_up, int icon_dn);
|
||||||
virtual ~TCheckbutton_control() {}
|
virtual ~TCheckbutton_control() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -372,6 +380,4 @@ public:
|
|||||||
virtual ~TListbox_control();
|
virtual ~TListbox_control();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -167,6 +167,7 @@ bool TPostman::can_dispatch_transaction(const TRectype& rec)
|
|||||||
for (int r = 0; cfg.exist("Recipient", r); r++)
|
for (int r = 0; cfg.exist("Recipient", r); r++)
|
||||||
{
|
{
|
||||||
str = cfg.get("Recipient", NULL, r);
|
str = cfg.get("Recipient", NULL, r);
|
||||||
|
expand_sys_vars(str);
|
||||||
TRecipient* rcp = new TRecipient(str);
|
TRecipient* rcp = new TRecipient(str);
|
||||||
_recipient.add(rcp);
|
_recipient.add(rcp);
|
||||||
}
|
}
|
||||||
@ -175,6 +176,8 @@ bool TPostman::can_dispatch_transaction(const TRectype& rec)
|
|||||||
for (int f = 0; cfg.exist("Filter", f); f++)
|
for (int f = 0; cfg.exist("Filter", f); f++)
|
||||||
{
|
{
|
||||||
str = cfg.get("Filter", NULL, f);
|
str = cfg.get("Filter", NULL, f);
|
||||||
|
expand_sys_vars(str);
|
||||||
|
|
||||||
const int num = str.get_int(1);
|
const int num = str.get_int(1);
|
||||||
if (num != rec.num()) continue;
|
if (num != rec.num()) continue;
|
||||||
|
|
||||||
@ -274,10 +277,10 @@ bool TPostman::dispatch_transaction(const TRectype& rec,
|
|||||||
if (a.can_receive(rec))
|
if (a.can_receive(rec))
|
||||||
{
|
{
|
||||||
const TString& addr = a.address();
|
const TString& addr = a.address();
|
||||||
if (addr.find('@') >= 0) // Indirizzo posta
|
|
||||||
dest.add(addr);
|
|
||||||
if (addr.starts_with("http")) // Indirizzo http
|
if (addr.starts_with("http")) // Indirizzo http
|
||||||
soap_dest.add(addr);
|
soap_dest.add(addr); else
|
||||||
|
if (addr.find('@') > 0) // Indirizzo posta
|
||||||
|
dest.add(addr);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (fexist(addr))
|
if (fexist(addr))
|
||||||
@ -326,7 +329,7 @@ bool TPostman::dispatch_transaction(const TRectype& rec,
|
|||||||
if (file_dest.items() > 0)
|
if (file_dest.items() > 0)
|
||||||
{
|
{
|
||||||
TString16 basename;
|
TString16 basename;
|
||||||
const struct tm * tl = xvt_time_now();
|
const struct tm* tl = xvt_time_now();
|
||||||
basename.format("%02d%02d%02d_%02d%02d%02d_0",
|
basename.format("%02d%02d%02d_%02d%02d%02d_0",
|
||||||
tl->tm_year%100, tl->tm_mon+1, tl->tm_mday,
|
tl->tm_year%100, tl->tm_mon+1, tl->tm_mday,
|
||||||
tl->tm_hour, tl->tm_min, tl->tm_sec);
|
tl->tm_hour, tl->tm_min, tl->tm_sec);
|
||||||
|
@ -1389,13 +1389,11 @@ void TRelation_application::main_loop()
|
|||||||
const bool trovato = _mask->query_mode() && test_key(1, FALSE) && find(1);
|
const bool trovato = _mask->query_mode() && test_key(1, FALSE) && find(1);
|
||||||
if (trovato)
|
if (trovato)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (is_transaction())
|
if (is_transaction())
|
||||||
_curr_transaction=TRANSACTION_MODIFY;
|
_curr_transaction=TRANSACTION_MODIFY;
|
||||||
else
|
else
|
||||||
warning_box(TR("Elemento gia' presente"));
|
warning_box(TR("Elemento gia' presente"));
|
||||||
modify_mode();
|
modify_mode();
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
insert_mode();
|
insert_mode();
|
||||||
|
@ -990,18 +990,20 @@ void TQuery_field::create(WINDOW parent)
|
|||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#define DLG_QUERY 25883
|
#define DLG_QUERY 25883
|
||||||
|
|
||||||
TSheet::TSheet(short x, short y, short dx, short dy,
|
TSheet::TSheet(short x, short y, short dx, short dy,
|
||||||
const char* title, const char* head,
|
const char* title, const char* head,
|
||||||
byte buttons, short sht_y, WINDOW parent)
|
byte buttons, short sht_y, WINDOW parent)
|
||||||
: TMask(title, 1, dx, dy, x, y, parent),
|
: TMask(title, 1, dx, dy, x, y, parent),
|
||||||
_sheet(NULL), _select_row(-1), _parked(-1)
|
_sheet(NULL), _select_row(-1), _parked(-1)
|
||||||
{
|
{
|
||||||
|
#ifdef OLD_FASHIONED_BROWSE
|
||||||
if (sht_y > 0) // Crea notebook se TBrowse_sheet
|
if (sht_y > 0) // Crea notebook se TBrowse_sheet
|
||||||
{
|
{
|
||||||
create_book(false); // Crea notebook e poi ...
|
create_book(false); // Crea notebook e poi ...
|
||||||
create_page(title, 0); // ... la sua prima pagina
|
create_page(title, 0); // ... la sua prima pagina
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
create_bar(1); // Crea toolbar in alto
|
create_bar(1); // Crea toolbar in alto
|
||||||
|
|
||||||
TQuery_field* qf = new TQuery_field(this);
|
TQuery_field* qf = new TQuery_field(this);
|
||||||
@ -1759,11 +1761,55 @@ void TBrowse_sheet::handler(
|
|||||||
TCursor_sheet::handler(win, ep);
|
TCursor_sheet::handler(win, ep);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef OLD_FASHIONED_BROWSE
|
||||||
|
bool lst_handler(TMask_field& lst, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_SPACE)
|
||||||
|
{
|
||||||
|
TMask& m = lst.mask();
|
||||||
|
if (m.is_running())
|
||||||
|
{
|
||||||
|
const int sel = atoi(lst.get());
|
||||||
|
m.on_key(K_CTRL + K_F1 + sel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void TBrowse_sheet::create_key_selector(TToken_string& ca)
|
||||||
|
{
|
||||||
|
#ifdef OLD_FASHIONED_BROWSE
|
||||||
|
set_tab_buttons(ca); // Non funziona piu' bene: cambiamo strada
|
||||||
|
#else
|
||||||
|
const int items = ca.items();
|
||||||
|
if (items > 1)
|
||||||
|
{
|
||||||
|
TToken_string co;
|
||||||
|
for (int i = 0; i < items; i++)
|
||||||
|
co.add(i);
|
||||||
|
|
||||||
|
TList_field& lst = add_list(69, 0, PR("Ordinamento per "), 1, 0, 16, "", co, ca);
|
||||||
|
lst.set_handler(lst_handler);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void TBrowse_sheet::update_key_selector(int sel)
|
||||||
|
{
|
||||||
|
#ifdef OLD_FASHIONED_BROWSE
|
||||||
|
show_page(sel);
|
||||||
|
#else
|
||||||
|
if (id2pos(69) >= 0) // Has been created?
|
||||||
|
set(69, sel, 0); // Don't fire any events!
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields,
|
TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields,
|
||||||
const char* title, const char* head, byte buttons,
|
const char* title, const char* head, byte buttons,
|
||||||
TEdit_field& f, TToken_string& sibling)
|
TEdit_field& f, TToken_string& sibling)
|
||||||
: TCursor_sheet(cursor, fields, title, head, buttons,
|
: TCursor_sheet(cursor, fields, title, head, buttons,
|
||||||
f.browse() ? f.browse()->input_fields() : 1),
|
f.browse() ? f.browse()->input_fields()+1 : 1),
|
||||||
_field(f), _sel(0), _original_filter(cursor->filter())
|
_field(f), _sel(0), _original_filter(cursor->filter())
|
||||||
{
|
{
|
||||||
const bool normal = f.browse() != NULL && sibling.full();
|
const bool normal = f.browse() != NULL && sibling.full();
|
||||||
@ -1787,8 +1833,8 @@ TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields,
|
|||||||
if (ca.blank())
|
if (ca.blank())
|
||||||
ca = TR("Codice");
|
ca = TR("Codice");
|
||||||
}
|
}
|
||||||
set_tab_buttons(ca);
|
create_key_selector(ca);
|
||||||
|
|
||||||
TToken_string tids = head;
|
TToken_string tids = head;
|
||||||
TToken_string tfns = fields;
|
TToken_string tfns = fields;
|
||||||
TToken_string ids, fns;
|
TToken_string ids, fns;
|
||||||
@ -1799,8 +1845,13 @@ TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields,
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEditable_field* e = NULL;
|
TEditable_field* e = NULL;
|
||||||
short y = 0;
|
#ifdef OLD_FASHIONED_BROWSE
|
||||||
bool first = true;
|
int y = 0;
|
||||||
|
#else
|
||||||
|
int y = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bool first = true;
|
||||||
|
|
||||||
for (const char* i = ids.get(0); i; i = ids.get())
|
for (const char* i = ids.get(0); i; i = ids.get())
|
||||||
{
|
{
|
||||||
@ -1899,7 +1950,7 @@ bool TBrowse_sheet::on_key(KEY k)
|
|||||||
const int what = k - K_CTRL - K_F1;
|
const int what = k - K_CTRL - K_F1;
|
||||||
if (what >= 0 && what != _sel)
|
if (what >= 0 && what != _sel)
|
||||||
TWindow::stop_run(k);
|
TWindow::stop_run(k);
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
return TSheet::on_key(k);
|
return TSheet::on_key(k);
|
||||||
}
|
}
|
||||||
@ -1907,7 +1958,7 @@ bool TBrowse_sheet::on_key(KEY k)
|
|||||||
KEY TBrowse_sheet::run()
|
KEY TBrowse_sheet::run()
|
||||||
{
|
{
|
||||||
_cur_browse = this;
|
_cur_browse = this;
|
||||||
show_page(_sel);
|
update_key_selector(_sel);
|
||||||
const KEY key = TCursor_sheet::run();
|
const KEY key = TCursor_sheet::run();
|
||||||
_cur_browse = NULL;
|
_cur_browse = NULL;
|
||||||
return key;
|
return key;
|
||||||
|
@ -245,6 +245,8 @@ protected:
|
|||||||
// @cmember Ritorna il campo a cui si riferisce lo sheet
|
// @cmember Ritorna il campo a cui si riferisce lo sheet
|
||||||
TEdit_field& field() { return _field; }
|
TEdit_field& field() { return _field; }
|
||||||
|
|
||||||
|
void create_key_selector(TToken_string& ca);
|
||||||
|
void update_key_selector(int sel);
|
||||||
void add_custom_filter(const char* regexp);
|
void add_custom_filter(const char* regexp);
|
||||||
|
|
||||||
static bool browse_field_handler(TMask_field& f, KEY k);
|
static bool browse_field_handler(TMask_field& f, KEY k);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include <xvt.h>
|
#include <xvt.h>
|
||||||
#include <statbar.h>
|
#include <statbar.h>
|
||||||
|
|
||||||
|
#include <date.h>
|
||||||
#include <diction.h>
|
#include <diction.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
|
|
||||||
@ -600,3 +601,44 @@ bool is_power_station()
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool expand_sys_vars(TString& str)
|
||||||
|
{
|
||||||
|
bool found = false;
|
||||||
|
for (int i = str.find("$("); i >= 0; i = str.find("$("))
|
||||||
|
{
|
||||||
|
TString value;
|
||||||
|
|
||||||
|
int j = str.find(')', i);
|
||||||
|
if (j < 0) j = i+2;
|
||||||
|
const TString& name = str.sub(i+2, j);
|
||||||
|
if (name.compare("HostName", -1, true) == 0)
|
||||||
|
{
|
||||||
|
value = get_hostname();
|
||||||
|
} else
|
||||||
|
if (name.compare("UserName", -1, true) == 0)
|
||||||
|
{
|
||||||
|
value = user();
|
||||||
|
} else
|
||||||
|
if (name.compare("Session", -1, true) == 0)
|
||||||
|
{
|
||||||
|
value << xvt_sys_get_session_id();
|
||||||
|
} else
|
||||||
|
if (name.compare("DateAnsi", -1, true) == 0)
|
||||||
|
{
|
||||||
|
const TDate oggi(TODAY);
|
||||||
|
value << oggi.date2ansi();
|
||||||
|
} else
|
||||||
|
if (name.compare("TimeAnsi", -1, true) == 0)
|
||||||
|
{
|
||||||
|
value.format("%06ld", daytime());
|
||||||
|
}
|
||||||
|
|
||||||
|
const TString& before = str.left(i);
|
||||||
|
const TString& after = str.mid(j + 1);
|
||||||
|
str.cut(0) << before << value << after;
|
||||||
|
found = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
@ -49,10 +49,10 @@ const char* unesc(const char* str); // Trasforma i caratteri '\n' nella sequenza
|
|||||||
|
|
||||||
istream& eatwhite (istream& i);
|
istream& eatwhite (istream& i);
|
||||||
|
|
||||||
const TString & get_hostname();
|
const TString& get_hostname();
|
||||||
bool is_power_station();
|
bool is_power_station();
|
||||||
|
|
||||||
long daytime();
|
long daytime();
|
||||||
|
bool expand_sys_vars(TString& str);
|
||||||
|
|
||||||
#define ODD(x) (x & 1)
|
#define ODD(x) (x & 1)
|
||||||
#define EVEN(x) !(x & 1)
|
#define EVEN(x) !(x & 1)
|
||||||
|
@ -387,7 +387,9 @@ void set_xvt_hooks()
|
|||||||
xvt_vobj_set_attr(NULL_WIN,ATTR_ERRMSG_HANDLER, (long)error_hook);
|
xvt_vobj_set_attr(NULL_WIN,ATTR_ERRMSG_HANDLER, (long)error_hook);
|
||||||
xvt_vobj_set_attr(NULL_WIN,ATTR_WIN_PM_DRAWABLE_TWIN, TRUE);
|
xvt_vobj_set_attr(NULL_WIN,ATTR_WIN_PM_DRAWABLE_TWIN, TRUE);
|
||||||
|
|
||||||
long twin_style = WSF_ICONIZABLE | WSF_CLOSE | WSF_SIZE;
|
long twin_style = xvt_vobj_get_attr(NULL_WIN,ATTR_WIN_PM_TWIN_STARTUP_STYLE);
|
||||||
|
twin_style |= WSF_ICONIZABLE | WSF_CLOSE; // WSF_SIZE pare azzardato
|
||||||
|
|
||||||
TConfig cfg(CONFIG_GUI, "Colors");
|
TConfig cfg(CONFIG_GUI, "Colors");
|
||||||
const int res = cfg.get_int("Resolution");
|
const int res = cfg.get_int("Resolution");
|
||||||
const int scx = xvt_vobj_get_attr(NULL_WIN, ATTR_SCREEN_WIDTH);
|
const int scx = xvt_vobj_get_attr(NULL_WIN, ATTR_SCREEN_WIDTH);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user