From c34337e9ef0c233b34668dc8ac31231e93ad0dae Mon Sep 17 00:00:00 2001 From: guy Date: Wed, 18 Jun 2003 08:06:55 +0000 Subject: [PATCH] Patch level : 2.0 500 Files correlati : xvaga.dll Ricompilazione Demo : [ ] Commento : Corretto disegno rettangolo focus in Win98 e migliorata gestione font git-svn-id: svn://10.65.10.50/trunk@11239 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- xvaga/oswin32.cpp | 11 ++++++++++- xvaga/xvaga.cpp | 38 ++++++++++++++++++++++++-------------- xvaga/xvtextra.cpp | 6 +++--- 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/xvaga/oswin32.cpp b/xvaga/oswin32.cpp index 6b63c7404..617c00090 100755 --- a/xvaga/oswin32.cpp +++ b/xvaga/oswin32.cpp @@ -76,7 +76,16 @@ int CALLBACK SizeEnumerator( { XvtData* d = (XvtData*)lParam; long& i = d->cur_count; - const int size = (plf->lfHeight+5) / 10; + int size = (plf->lfHeight+5) / 10; + if (size <= 0) + { + for (const char* n = plf->lfFaceName; *n; n++) + if (*n >= '1' && *n <= '9') + { + size = int(10.0 / atoi(n) * 10.0 + 0.5); + break; + } + } if (i == 0 || size > d->sizes[i-1]) { d->sizes[i] = size; diff --git a/xvaga/xvaga.cpp b/xvaga/xvaga.cpp index bcd61e72d..69d5eeea4 100755 --- a/xvaga/xvaga.cpp +++ b/xvaga/xvaga.cpp @@ -32,7 +32,7 @@ XVT_CONFIG* _config_ = NULL; wxWindow* _task_win = NULL; wxWindow* _mouse_trapper = NULL; RCT _startup_rect = { 0,0,0,0 }; -wxString _startup_dir; +wxString* _startup_dir = NULL; static wxHashTable _nice_windows; static wxHashTable _nice_icons; @@ -96,7 +96,7 @@ wxRect NormalizeRCT(const RCT* prct) wxString GetResourceName(const char* type, int rid) { wxString strName; - strName = _startup_dir; + strName = *_startup_dir; strName += "/res/resource.ini"; wxFileConfig ini("", "", strName); @@ -106,7 +106,7 @@ wxString GetResourceName(const char* type, int rid) wxString val; if (ini.Read(wxString::Format("%d", rid), &val)) { - strName = _startup_dir; + strName = *_startup_dir; strName += "/res/"; strName += val; } @@ -1969,9 +1969,16 @@ void xvt_dwin_draw_rect(WINDOW win, RCT *rctp) void xvt_dwin_draw_dotted_rect(WINDOW win, RCT *rctp) { #ifdef WIN32 - CAST_DC(win, dc); - OsWin32_DrawDottedRect(dc.GetHDC(), rctp->left, rctp->top, rctp->right, rctp->bottom); -#else + static int can_draw_dots = -1; + if (can_draw_dots < 0) + can_draw_dots = xvt_sys_get_os_version() >= XVT_WS_WIN_NT; + if (can_draw_dots) + { + CAST_DC(win, dc); + OsWin32_DrawDottedRect(dc.GetHDC(), rctp->left, rctp->top, rctp->right, rctp->bottom); + return; + } +#endif DRAW_CTOOLS dct; xvt_dwin_get_draw_ctools(win, &dct); @@ -1990,7 +1997,6 @@ void xvt_dwin_draw_dotted_rect(WINDOW win, RCT *rctp) xvt_dwin_draw_rect(win, rctp); xvt_dwin_set_draw_ctools(win, &dct); -#endif } void xvt_dwin_draw_set_pos(WINDOW win, PNT pnt) @@ -2486,10 +2492,13 @@ BOOLEAN xvt_fsys_convert_str_to_dir(const char *path, DIRECTORY *dirp) void xvt_fsys_get_default_dir(DIRECTORY *dirp) { - if (_startup_dir.IsEmpty()) - wxFileName::SplitPath(wxTheApp->argv[0], &_startup_dir, NULL, NULL); + if (_startup_dir == NULL) + { + _startup_dir = new wxString; + wxFileName::SplitPath(__argv[0], _startup_dir, NULL, NULL); + } if (dirp != NULL) - xvt_fsys_convert_str_to_dir(_startup_dir, dirp); + xvt_fsys_convert_str_to_dir(*_startup_dir, dirp); } BOOLEAN xvt_fsys_get_dir(DIRECTORY *dirp) @@ -3170,7 +3179,7 @@ static void FillMenuItem(const wxString& strValue, MENU_ITEM* mi) MENU_ITEM* xvt_res_get_menu(int rid) { wxString strName; - strName = _startup_dir; + strName = *_startup_dir; strName += "/res/resource.ini"; wxFileConfig ini("", "", strName); @@ -3936,15 +3945,16 @@ long xvt_vobj_get_attr(WINDOW win, long data) ret = (long)_error_handler; break; case ATTR_NATIVE_GRAPHIC_CONTEXT: +/* if (_nice_windows.Get(win) != NULL) { #ifdef WIN32 CAST_DC(win, dc); ret = dc.GetHDC(); -#else - SORRY_BOX(); //verificare #endif } +*/ + SORRY_BOX(); // Obsoleto e non piu' usato break; case ATTR_NATIVE_WINDOW: if (_nice_windows.Get(win) != NULL) @@ -3953,7 +3963,7 @@ long xvt_vobj_get_attr(WINDOW win, long data) CAST_WIN(win, w); ret = w.GetHandle(); #else - SORRY_BOX(); //verificare + ret = win; #endif } break; diff --git a/xvaga/xvtextra.cpp b/xvaga/xvtextra.cpp index 8524a21f9..82a971775 100755 --- a/xvaga/xvtextra.cpp +++ b/xvaga/xvtextra.cpp @@ -213,7 +213,7 @@ BOOLEAN xvt_dm_post_page_setup(PRINT_RCD* precp) long xvt_fmap_get_family_sizes(PRINT_RCD *precp, char *family, long *size_array, BOOLEAN *scalable, long max_sizes) { long size = 1; - size_array[0] = 13; + size_array[0] = 10; *scalable = FALSE; if (precp != NULL) @@ -330,9 +330,9 @@ WINDOW xvt_print_create_win(PRINT_RCD* precp, char* /* title */) return win; } -void xvt_print_destroy(PRINT_RCD *precp) +void xvt_print_destroy(PRINT_RCD* precp) { - // Nothing to do! + delete precp; } RCT* xvt_print_get_next_band(void)