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;
|
||||
|
||||
XVT_FNTID xvt_default_font(bool bold)
|
||||
{
|
||||
{
|
||||
if (DEF_FONT == NULL)
|
||||
{
|
||||
{
|
||||
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
|
||||
HFONT NormalFont = (HFONT)GetStockObject(ANSI_FIXED_FONT);
|
||||
LOGFONT LogFont;
|
||||
@ -125,19 +130,29 @@ XVT_FNTID xvt_default_font(bool bold)
|
||||
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");
|
||||
CHECK(xvt_font_has_valid_native_desc(DEF_FONT), "Bad font description");
|
||||
#endif
|
||||
*/
|
||||
xvt_font_map_using_default(DEF_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);
|
||||
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);
|
||||
CHECK(xvt_font_is_mapped(FAT_FONT), "Can't map native font");
|
||||
// Get true text size
|
||||
#if XVT_OS == XVT_OS_WIN
|
||||
TEXTMETRIC tm;
|
||||
HDC hdc = (HDC)xvt_vobj_get_attr(TASK_WIN, ATTR_NATIVE_GRAPHIC_CONTEXT);
|
||||
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
|
||||
{
|
||||
// Spazio da lasciare prima di toccare i bordi
|
||||
const int X_FU_DELTA = 2;
|
||||
const int Y_FU_DELTA = 1;
|
||||
const int X_FU_DELTA = XI_FU_MULTIPLE / 4;
|
||||
const int Y_FU_DELTA = XI_FU_MULTIPLE / 8;
|
||||
|
||||
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
|
||||
{
|
||||
rct.left = (x+1) * XI_FU_MULTIPLE;
|
||||
rct.left = x * XI_FU_MULTIPLE + X_FU_DELTA;
|
||||
|
||||
if (dx > 0 && MAXX > 80 * XI_FU_MULTIPLE)
|
||||
rct.left += (MAXX - 80 * XI_FU_MULTIPLE) / 2;
|
||||
@ -792,8 +807,8 @@ TText_control::TText_control(WINDOW win, short cid,
|
||||
width = t.len();
|
||||
if (bold)
|
||||
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);
|
||||
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);
|
||||
@ -827,7 +842,7 @@ TGroupbox_control::TGroupbox_control(WINDOW win, short cid,
|
||||
: TText_control(win, cid, left, top, width, 1, flags, text)
|
||||
{
|
||||
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;
|
||||
|
||||
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)
|
||||
{
|
||||
f->button = TRUE;
|
||||
f->pixel_button_distance = 4;
|
||||
f->pixel_button_distance = 1;
|
||||
}
|
||||
if (rct.bottom - rct.top > Y_FU_MULTIPLE)
|
||||
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);
|
||||
_obj = xi_get_obj(form, 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();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user