controls.cpp Aggiustati lisbox dentro gli spreadsheet
controls.h Tolti metodi inutili codes e values dalle dropdownlist maskfld.cpp Corretta get_codes dei TListbox_fields msksheet.cpp Corretta creazione colonne con listbox git-svn-id: svn://10.65.10.50/trunk@2915 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d8465f2be5
commit
87fb727947
@ -92,6 +92,49 @@ XVT_FNTID xvt_default_font(bool bold)
|
|||||||
if (font_ser_desc.empty())
|
if (font_ser_desc.empty())
|
||||||
font_ser_desc << "01\\Courier\\0\\10\\WIN01/-13/0/0/0/400/0/0/0/0/1/2/1/49/Courier";
|
font_ser_desc << "01\\Courier\\0\\10\\WIN01/-13/0/0/0/400/0/0/0/0/1/2/1/49/Courier";
|
||||||
xvt_font_deserialize(DEF_FONT, (char *)(const char *) font_ser_desc);
|
xvt_font_deserialize(DEF_FONT, (char *)(const char *) font_ser_desc);
|
||||||
|
/*
|
||||||
|
#if XVT_OS == XVT_OS_WIN
|
||||||
|
HFONT NormalFont = (HFONT)GetStockObject(ANSI_FIXED_FONT);
|
||||||
|
LOGFONT LogFont;
|
||||||
|
GetObject(NormalFont, sizeof(LOGFONT), &LogFont);
|
||||||
|
|
||||||
|
TConfig font(CONFIG_USER, "Font");
|
||||||
|
CHARY = (int)font.get_long("Height");
|
||||||
|
if (CHARY > 0)
|
||||||
|
{
|
||||||
|
LogFont.lfHeight = CHARY;
|
||||||
|
LogFont.lfWeight = font.get_int("Weight");
|
||||||
|
LogFont.lfPitchAndFamily = font.get_int("Pitch");
|
||||||
|
strcpy(LogFont.lfFaceName, font.get("Name"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LogFont.lfHeight = CHARY = 10;
|
||||||
|
LogFont.lfWeight = 300; // Normal weight
|
||||||
|
}
|
||||||
|
NormalFont = CreateFontIndirect(&LogFont);
|
||||||
|
|
||||||
|
TToken_string desc(128, '/');
|
||||||
|
desc.add("WIN01"); // 0
|
||||||
|
desc.add(LogFont.lfHeight); // 1
|
||||||
|
desc.add(LogFont.lfWidth); // 2
|
||||||
|
desc.add(LogFont.lfEscapement); // 3
|
||||||
|
desc.add(LogFont.lfOrientation); // 4
|
||||||
|
desc.add(LogFont.lfWeight); // 5
|
||||||
|
desc.add(LogFont.lfItalic); // 6
|
||||||
|
desc.add(LogFont.lfUnderline);
|
||||||
|
desc.add(LogFont.lfStrikeOut);
|
||||||
|
desc.add(LogFont.lfCharSet);
|
||||||
|
desc.add(LogFont.lfOutPrecision);
|
||||||
|
desc.add(LogFont.lfClipPrecision);
|
||||||
|
desc.add(LogFont.lfQuality);
|
||||||
|
desc.add(LogFont.lfPitchAndFamily);
|
||||||
|
desc.add(LogFont.lfFaceName);
|
||||||
|
|
||||||
|
xvt_font_set_native_desc(DEF_FONT, (char*)(const char*)desc);
|
||||||
|
CHECK(xvt_font_has_valid_native_desc(DEF_FONT), "Bad font description");
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
xvt_font_map_using_default(DEF_FONT);
|
xvt_font_map_using_default(DEF_FONT);
|
||||||
CHECK(xvt_font_is_mapped(DEF_FONT), "Can't map native font");
|
CHECK(xvt_font_is_mapped(DEF_FONT), "Can't map native font");
|
||||||
|
|
||||||
@ -101,6 +144,11 @@ XVT_FNTID xvt_default_font(bool bold)
|
|||||||
FAT_FONT = xvt_font_create();
|
FAT_FONT = xvt_font_create();
|
||||||
xvt_font_copy(FAT_FONT, DEF_FONT, XVT_FA_ALL);
|
xvt_font_copy(FAT_FONT, DEF_FONT, XVT_FA_ALL);
|
||||||
xvt_font_set_style(FAT_FONT, XVT_FS_BOLD);
|
xvt_font_set_style(FAT_FONT, XVT_FS_BOLD);
|
||||||
|
/*
|
||||||
|
desc.add(600, 5);
|
||||||
|
xvt_font_set_native_desc(FAT_FONT, (char*)(const char*)desc);
|
||||||
|
CHECK(xvt_font_has_valid_native_desc(FAT_FONT), "Bad font description");
|
||||||
|
*/
|
||||||
xvt_font_map_using_default(FAT_FONT);
|
xvt_font_map_using_default(FAT_FONT);
|
||||||
CHECK(xvt_font_is_mapped(FAT_FONT), "Can't map native font");
|
CHECK(xvt_font_is_mapped(FAT_FONT), "Can't map native font");
|
||||||
// Get true text size
|
// Get true text size
|
||||||
@ -253,11 +301,9 @@ WINDOW create_interface(WINDOW parent, short x, short y, short dx, short dy,
|
|||||||
|
|
||||||
def->v.itf->automatic_back_color = FALSE;
|
def->v.itf->automatic_back_color = FALSE;
|
||||||
def->v.itf->back_color = MASK_BACK_COLOR;
|
def->v.itf->back_color = MASK_BACK_COLOR;
|
||||||
def->v.itf->font_id = xvt_default_font();
|
|
||||||
def->v.itf->tab_on_enter = TRUE;
|
def->v.itf->tab_on_enter = TRUE;
|
||||||
def->v.itf->win = win;
|
def->v.itf->win = win;
|
||||||
|
|
||||||
|
|
||||||
XI_OBJ* itf = xi_create(NULL, def);
|
XI_OBJ* itf = xi_create(NULL, def);
|
||||||
CHECK(itf, "Can't create an interface");
|
CHECK(itf, "Can't create an interface");
|
||||||
|
|
||||||
@ -331,20 +377,7 @@ void attach_interface(WINDOW win, COLOR back)
|
|||||||
xi_dequeue();
|
xi_dequeue();
|
||||||
xi_tree_free(def);
|
xi_tree_free(def);
|
||||||
}
|
}
|
||||||
|
|
||||||
short get_focus_id(WINDOW win)
|
|
||||||
|
|
||||||
{
|
|
||||||
XI_OBJ * itf = xi_get_itf(win);
|
|
||||||
XI_OBJ * obj = xi_get_focus(itf);
|
|
||||||
|
|
||||||
if (obj == NULL || obj->type == XIT_ITF)
|
|
||||||
return -1;
|
|
||||||
if (obj->type == XIT_CELL || (obj->type == XIT_BTN && obj->v.btn->type == XIBT_RADIOBTN))
|
|
||||||
obj = obj->parent;
|
|
||||||
return obj->cid;
|
|
||||||
}
|
|
||||||
|
|
||||||
HIDDEN void xi_event_handler(XI_OBJ* itf, XI_EVENT* xiev)
|
HIDDEN void xi_event_handler(XI_OBJ* itf, XI_EVENT* xiev)
|
||||||
{
|
{
|
||||||
static bool notify_xvt = TRUE;
|
static bool notify_xvt = TRUE;
|
||||||
@ -1004,8 +1037,6 @@ void TButton_control::create(WINDOW win, short cid,
|
|||||||
if (width <= 0) width = strlen(t)+3;
|
if (width <= 0) width = strlen(t)+3;
|
||||||
|
|
||||||
RCT rct; coord2rct(win, left, top, width, height, rct);
|
RCT rct; coord2rct(win, left, top, width, height, rct);
|
||||||
if (wc == WC_CHECKBOX)
|
|
||||||
rct.right += XI_FU_MULTIPLE / 2 ;
|
|
||||||
if (cid == DLG_F9)
|
if (cid == DLG_F9)
|
||||||
{
|
{
|
||||||
rct.left++;
|
rct.left++;
|
||||||
@ -1571,10 +1602,17 @@ void TDropDownList::select_by_ofs(int i)
|
|||||||
}
|
}
|
||||||
|
|
||||||
TDropDownList::TDropDownList(XI_OBJ* o, const char* codes, const char* values, int width)
|
TDropDownList::TDropDownList(XI_OBJ* o, const char* codes, const char* values, int width)
|
||||||
: _obj(o), _values(values), _open(FALSE), _xi_lst(NULL), _width(width),
|
: _obj(o), _codes(codes), _values(values),
|
||||||
|
_open(FALSE), _xi_lst(NULL), _width(width),
|
||||||
_displayed(FALSE), _selected(0)
|
_displayed(FALSE), _selected(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
void TDropDownList::set_values(const char* c, const char* v)
|
||||||
|
{
|
||||||
|
_codes = c;
|
||||||
|
_values = v;
|
||||||
|
}
|
||||||
|
|
||||||
void TDropDownList::open()
|
void TDropDownList::open()
|
||||||
{
|
{
|
||||||
if (_open) return;
|
if (_open) return;
|
||||||
|
@ -21,7 +21,6 @@ WINDOW create_interface(WINDOW parent, short x, short y, short dx, short dy,
|
|||||||
const char* caption, TWindow* mask, bool tags);
|
const char* caption, TWindow* mask, bool tags);
|
||||||
|
|
||||||
void attach_interface(WINDOW win, COLOR back = COLOR_WHITE);
|
void attach_interface(WINDOW win, COLOR back = COLOR_WHITE);
|
||||||
short get_focus_id(WINDOW win);
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -293,10 +292,7 @@ public:
|
|||||||
long row2rec(int) const;
|
long row2rec(int) const;
|
||||||
int rec2row(long rec) const;
|
int rec2row(long rec) const;
|
||||||
void select(int i, bool force = FALSE);
|
void select(int i, bool force = FALSE);
|
||||||
void set_values(const char* c, const char* v) { _codes = c; _values = v; }
|
void set_values(const char* c, const char* v);
|
||||||
|
|
||||||
TToken_string& codes() { return _codes; }
|
|
||||||
TToken_string& values() { return _values; }
|
|
||||||
|
|
||||||
TDropDownList(XI_OBJ* o, const char* codes, const char* values, int wid);
|
TDropDownList(XI_OBJ* o, const char* codes, const char* values, int wid);
|
||||||
virtual ~TDropDownList() {}
|
virtual ~TDropDownList() {}
|
||||||
|
@ -3441,13 +3441,14 @@ void TList_field::add_item(
|
|||||||
// aggiunte tante voci quanti sono gli elementi.
|
// aggiunte tante voci quanti sono gli elementi.
|
||||||
{
|
{
|
||||||
TToken_string t(s);
|
TToken_string t(s);
|
||||||
const TString item(t.get());
|
TString item(t.get());
|
||||||
const int pos = _codes.get_pos(item);
|
const int pos = _codes.get_pos(item);
|
||||||
|
|
||||||
if (pos < 0)
|
if (pos < 0)
|
||||||
{
|
{
|
||||||
_codes.add(item);
|
_codes.add(item);
|
||||||
_values.add(t.get());
|
item = t.get();
|
||||||
|
_values.add(item);
|
||||||
((TListbox_control*)_ctl)->set_values(_codes, _values);
|
((TListbox_control*)_ctl)->set_values(_codes, _values);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1178,7 +1178,7 @@ public:
|
|||||||
virtual void set(const char* data);
|
virtual void set(const char* data);
|
||||||
|
|
||||||
// @cmember Ritorna la tokenstring dei codici ammessi
|
// @cmember Ritorna la tokenstring dei codici ammessi
|
||||||
const char* get_codes() const { return _values; }
|
const char* get_codes() const { return _codes; }
|
||||||
|
|
||||||
// @cmember Ritorna la tokenstring dei valori ammessi
|
// @cmember Ritorna la tokenstring dei valori ammessi
|
||||||
const char* get_values() const { return _values; }
|
const char* get_values() const { return _values; }
|
||||||
|
@ -265,7 +265,7 @@ TSpreadsheet::TSpreadsheet(
|
|||||||
|
|
||||||
TString testa(h);
|
TString testa(h);
|
||||||
const int at = testa.find('@');
|
const int at = testa.find('@');
|
||||||
int m = f->size(); // Memory width
|
const int m = f->is_kind_of(CLASS_LIST_FIELD) ? 2 : f->size(); // Memory width
|
||||||
int v = m; // Video width
|
int v = m; // Video width
|
||||||
if (at >= 0)
|
if (at >= 0)
|
||||||
{
|
{
|
||||||
@ -278,9 +278,6 @@ TSpreadsheet::TSpreadsheet(
|
|||||||
}
|
}
|
||||||
testa.cut(at);
|
testa.cut(at);
|
||||||
v = max(at, v+(f->has_query_button() ? 1 : 0));
|
v = max(at, v+(f->has_query_button() ? 1 : 0));
|
||||||
|
|
||||||
if (v < m && f->is_kind_of(CLASS_LIST_FIELD))
|
|
||||||
m = 2;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -789,7 +786,7 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
|||||||
src = row(rec).get(col); // Set value for cell
|
src = row(rec).get(col); // Set value for cell
|
||||||
if (src && *src)
|
if (src && *src)
|
||||||
{
|
{
|
||||||
if (maxlen <= 3 && e->is_kind_of(CLASS_LIST_FIELD))
|
if (maxlen == 3 && e->is_kind_of(CLASS_LIST_FIELD))
|
||||||
/* src = src */; // Leave code as is
|
/* src = src */; // Leave code as is
|
||||||
else
|
else
|
||||||
src = e->raw2win(src); // Get formatted string
|
src = e->raw2win(src); // Get formatted string
|
||||||
|
Loading…
x
Reference in New Issue
Block a user