Modificata gestione font
Aggiustate creazioni text e field git-svn-id: svn://10.65.10.50/trunk@2804 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
10296153bb
commit
8c4e5f3a66
@ -82,12 +82,17 @@ HIDDEN XVT_FNTID DEF_FONT = NULL;
|
|||||||
HIDDEN XVT_FNTID FAT_FONT = NULL;
|
HIDDEN XVT_FNTID FAT_FONT = NULL;
|
||||||
|
|
||||||
XVT_FNTID xvt_default_font(bool bold)
|
XVT_FNTID xvt_default_font(bool bold)
|
||||||
{
|
{
|
||||||
if (DEF_FONT == NULL)
|
if (DEF_FONT == NULL)
|
||||||
{
|
{
|
||||||
DEF_FONT = xvt_dwin_get_font(TASK_WIN);
|
DEF_FONT = xvt_dwin_get_font(TASK_WIN);
|
||||||
FAT_FONT = xvt_dwin_get_font(TASK_WIN);
|
|
||||||
|
|
||||||
|
TConfig font(CONFIG_USER, "Font");
|
||||||
|
TString font_ser_desc(font.get("FontDesc"));
|
||||||
|
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";
|
||||||
|
xvt_font_deserialize(DEF_FONT, (char *)(const char *) font_ser_desc);
|
||||||
|
/*
|
||||||
#if XVT_OS == XVT_OS_WIN
|
#if XVT_OS == XVT_OS_WIN
|
||||||
HFONT NormalFont = (HFONT)GetStockObject(ANSI_FIXED_FONT);
|
HFONT NormalFont = (HFONT)GetStockObject(ANSI_FIXED_FONT);
|
||||||
LOGFONT LogFont;
|
LOGFONT LogFont;
|
||||||
@ -125,19 +130,29 @@ XVT_FNTID xvt_default_font(bool bold)
|
|||||||
desc.add(LogFont.lfQuality);
|
desc.add(LogFont.lfQuality);
|
||||||
desc.add(LogFont.lfPitchAndFamily);
|
desc.add(LogFont.lfPitchAndFamily);
|
||||||
desc.add(LogFont.lfFaceName);
|
desc.add(LogFont.lfFaceName);
|
||||||
|
|
||||||
xvt_font_set_native_desc(DEF_FONT, (char*)(const char*)desc);
|
xvt_font_set_native_desc(DEF_FONT, (char*)(const char*)desc);
|
||||||
CHECK(xvt_font_has_valid_native_desc(DEF_FONT), "Bad font description");
|
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");
|
||||||
xvt_dwin_set_font(TASK_WIN, DEF_FONT);
|
|
||||||
|
|
||||||
|
xvt_dwin_set_font(TASK_WIN, DEF_FONT);
|
||||||
|
xvt_menu_set_font_sel(TASK_WIN, DEF_FONT);
|
||||||
|
|
||||||
|
FAT_FONT = xvt_font_create();
|
||||||
|
xvt_font_copy(FAT_FONT, DEF_FONT, XVT_FA_ALL);
|
||||||
|
xvt_font_set_style(FAT_FONT, XVT_FS_BOLD);
|
||||||
|
/*
|
||||||
desc.add(600, 5);
|
desc.add(600, 5);
|
||||||
xvt_font_set_native_desc(FAT_FONT, (char*)(const char*)desc);
|
xvt_font_set_native_desc(FAT_FONT, (char*)(const char*)desc);
|
||||||
CHECK(xvt_font_has_valid_native_desc(FAT_FONT), "Bad font description");
|
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
|
||||||
|
#if XVT_OS == XVT_OS_WIN
|
||||||
TEXTMETRIC tm;
|
TEXTMETRIC tm;
|
||||||
HDC hdc = (HDC)xvt_vobj_get_attr(TASK_WIN, ATTR_NATIVE_GRAPHIC_CONTEXT);
|
HDC hdc = (HDC)xvt_vobj_get_attr(TASK_WIN, ATTR_NATIVE_GRAPHIC_CONTEXT);
|
||||||
GetTextMetrics(hdc, &tm);
|
GetTextMetrics(hdc, &tm);
|
||||||
@ -514,8 +529,8 @@ void TControl::update_tab_cid()
|
|||||||
void TControl::coord2rct(WINDOW win, short x, short y, short dx, short dy, XI_RCT& rct) const
|
void TControl::coord2rct(WINDOW win, short x, short y, short dx, short dy, XI_RCT& rct) const
|
||||||
{
|
{
|
||||||
// Spazio da lasciare prima di toccare i bordi
|
// Spazio da lasciare prima di toccare i bordi
|
||||||
const int X_FU_DELTA = 2;
|
const int X_FU_DELTA = XI_FU_MULTIPLE / 4;
|
||||||
const int Y_FU_DELTA = 1;
|
const int Y_FU_DELTA = XI_FU_MULTIPLE / 8;
|
||||||
|
|
||||||
XI_OBJ* itf = get_interface(win);
|
XI_OBJ* itf = get_interface(win);
|
||||||
|
|
||||||
@ -556,7 +571,7 @@ void TControl::coord2rct(WINDOW win, short x, short y, short dx, short dy, XI_RC
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rct.left = (x+1) * XI_FU_MULTIPLE;
|
rct.left = x * XI_FU_MULTIPLE + X_FU_DELTA;
|
||||||
|
|
||||||
if (dx > 0 && MAXX > 80 * XI_FU_MULTIPLE)
|
if (dx > 0 && MAXX > 80 * XI_FU_MULTIPLE)
|
||||||
rct.left += (MAXX - 80 * XI_FU_MULTIPLE) / 2;
|
rct.left += (MAXX - 80 * XI_FU_MULTIPLE) / 2;
|
||||||
@ -792,8 +807,8 @@ TText_control::TText_control(WINDOW win, short cid,
|
|||||||
width = t.len();
|
width = t.len();
|
||||||
if (bold)
|
if (bold)
|
||||||
width = 4 * width / 3;
|
width = 4 * width / 3;
|
||||||
}
|
}
|
||||||
XI_RCT rct; coord2rct(win, left, top, width, height, rct);
|
XI_RCT rct; coord2rct(win, left, top, width, height, rct); rct.right += XI_FU_MULTIPLE / 2;
|
||||||
const unsigned long attrib = flags2attr(flags);
|
const unsigned long attrib = flags2attr(flags);
|
||||||
XI_OBJ_DEF* def = xi_add_text_def(NULL, cid, &rct, attrib, (char*)(const char*)t);
|
XI_OBJ_DEF* def = xi_add_text_def(NULL, cid, &rct, attrib, (char*)(const char*)t);
|
||||||
CHECKS(def, "Can't create the definition of TText_control:", text);
|
CHECKS(def, "Can't create the definition of TText_control:", text);
|
||||||
@ -827,7 +842,7 @@ TGroupbox_control::TGroupbox_control(WINDOW win, short cid,
|
|||||||
: TText_control(win, cid, left, top, width, 1, flags, text)
|
: TText_control(win, cid, left, top, width, 1, flags, text)
|
||||||
{
|
{
|
||||||
XI_RCT rct; coord2rct(win, left, top, width, height, rct);
|
XI_RCT rct; coord2rct(win, left, top, width, height, rct);
|
||||||
rct.top += XI_FU_MULTIPLE;
|
rct.top += XI_FU_MULTIPLE - 2;
|
||||||
rct.bottom -= Y_FU_MULTIPLE / 2;
|
rct.bottom -= Y_FU_MULTIPLE / 2;
|
||||||
|
|
||||||
XI_OBJ_DEF* def = xi_add_rect_def(NULL, cid, &rct, XI_ATR_VISIBLE, 0, 0); // Ignore colors
|
XI_OBJ_DEF* def = xi_add_rect_def(NULL, cid, &rct, XI_ATR_VISIBLE, 0, 0); // Ignore colors
|
||||||
@ -896,7 +911,7 @@ void TField_control::create(WINDOW win, short cid,
|
|||||||
if (button)
|
if (button)
|
||||||
{
|
{
|
||||||
f->button = TRUE;
|
f->button = TRUE;
|
||||||
f->pixel_button_distance = 4;
|
f->pixel_button_distance = 1;
|
||||||
}
|
}
|
||||||
if (rct.bottom - rct.top > Y_FU_MULTIPLE)
|
if (rct.bottom - rct.top > Y_FU_MULTIPLE)
|
||||||
f->xi_rct = rct;
|
f->xi_rct = rct;
|
||||||
@ -906,6 +921,11 @@ void TField_control::create(WINDOW win, short cid,
|
|||||||
CHECKD(form, "Can't create the form for field ", cid);
|
CHECKD(form, "Can't create the form for field ", cid);
|
||||||
_obj = xi_get_obj(form, cid);
|
_obj = xi_get_obj(form, cid);
|
||||||
CHECKD(_obj, "Can't create field ", cid);
|
CHECKD(_obj, "Can't create field ", cid);
|
||||||
|
STX_DATA * stx = (STX_DATA*)_obj->v.field->stx;
|
||||||
|
|
||||||
|
const int offset = _obj->v.field->btn_rct.left - stx->rct.right + 1;
|
||||||
|
_obj->v.field->btn_rct.left -= offset ;
|
||||||
|
_obj->v.field->btn_rct.right -= offset;
|
||||||
|
|
||||||
update_tab_cid();
|
update_tab_cid();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user