From 7df10247939985e36c9b7c15be682ce5a4d79c71 Mon Sep 17 00:00:00 2001
From: guy <guy@c028cbd2-c16b-5b4b-a496-9718f37d4682>
Date: Tue, 23 Mar 2004 16:41:20 +0000
Subject: [PATCH] Patch level         : 2.1 nopatch Files correlati     :
 xvaga.dll Ricompilazione Demo : [ ] Commento            :

Migliorata selezione font tramite xvt_dm_post_font_select


git-svn-id: svn://10.65.10.50/trunk@11901 c028cbd2-c16b-5b4b-a496-9718f37d4682
---
 xvaga/xvaga.cpp | 121 ++++--------------------------------------------
 1 file changed, 10 insertions(+), 111 deletions(-)

diff --git a/xvaga/xvaga.cpp b/xvaga/xvaga.cpp
index d247dd488..def069512 100755
--- a/xvaga/xvaga.cpp
+++ b/xvaga/xvaga.cpp
@@ -1714,17 +1714,19 @@ BOOLEAN xvt_dm_post_font_sel(WINDOW win, XVT_FNTID font_id, PRINT_RCD *precp, un
 	TFontId& font = *(TFontId*)font_id;
 	wxFontData data;
 	data.SetInitialFont(font.Font(NULL, win));
-	data.EnableEffects(FALSE);
+	data.EnableEffects(reserved != 0);
   wxFontDialog dlg(_task_win, &data);
 	BOOLEAN ok = dlg.ShowModal() == wxID_OK;
   if (ok)
 	{
     font.Copy(dlg.GetFontData().GetChosenFont());
-
-    EVENT e; memset(&e, 0, sizeof(EVENT));
-	  e.type = E_FONT;
-		e.v.font.font_id = font_id;
-	  _task_win_handler(win, &e);
+    if (win == (WINDOW)_task_win)
+    {
+      EVENT e; memset(&e, 0, sizeof(EVENT));
+	    e.type = E_FONT;
+		  e.v.font.font_id = font_id;
+	    _task_win_handler(win, &e);
+    }
 	}
 	return ok;
 }
@@ -1766,43 +1768,10 @@ struct XVAGA_HELP_INFO
 {
 	wxString m_strFilename;
 	bool m_hlp;
-//	wxHtmlHelpController m_hc;
 } help_info;
 
 XVT_HELP_INFO xvt_help_open_helpfile(FILE_SPEC *fs, unsigned long flags)
 {
-/*
-  if (!help_info.m_strFilename.IsEmpty())
-		xvt_help_close_helpfile((XVT_HELP_INFO)&help_info);
-
-	const char* ext[] = { ".zip", ".htb", ".hlp", NULL };
-	for (int j = 0; j < 2; j++)
-	{
-		wxString base = fs->name;
-		if (j == 1)
-			base.Replace("campo", "prassi", true);
-		for (int i = 0; ext[i]; i++)
-		{
-			wxString strName;
-			if (i < 2)
-				strName = "help/";
-			strName << base;
-			strName << ext[i];
-			if (::wxFileExists(strName))
-			{
-				help_info.m_strFilename = strName;
-				help_info.m_hlp = i == 2;
-				if (!help_info.m_hlp)
-				{
-				  wxFileSystem::AddHandler(new wxZipFSHandler);
-          help_info.m_hc.AddBook(strName, true);
-				}
-				return (XVT_HELP_INFO)&help_info;
-			}
-		}
-	}
-	return NULL_HELP_INFO;
-*/
 	return (XVT_HELP_INFO)&help_info;
 }
 
@@ -1810,82 +1779,12 @@ void xvt_help_close_helpfile(XVT_HELP_INFO hi)
 {
   if (hi == NULL_HELP_INFO)
 		hi = (XVT_HELP_INFO)&help_info;
-
-/*
-  XVAGA_HELP_INFO* ahi = (XVAGA_HELP_INFO*)hi;
-  if (!ahi->m_strFilename.IsEmpty())
-	{
-#ifdef WIN32
-		if (ahi->m_hlp)
-		{
-		  unsigned int hwnd = (unsigned int)xvt_vobj_get_attr(TASK_WIN, ATTR_NATIVE_WINDOW);
-		  OsWin32_Help(hwnd, ahi->m_strFilename, 0, NULL); // HELP_QUIT
-		}
-#endif
-		if (!ahi->m_hlp)
-      ahi->m_hc.Quit();
-		ahi->m_strFilename.Empty();
-	}
-*/
 }
 
 BOOLEAN xvt_help_process_event(XVT_HELP_INFO hi, WINDOW win, EVENT *ev)
 {
   BOOLEAN bProcessed = FALSE;
 
-/*
-  if (hi == NULL_HELP_INFO)
-		return bProcessed;
-
-	XVAGA_HELP_INFO* ahi = (XVAGA_HELP_INFO*)hi;
-	if (ahi->m_strFilename.IsEmpty())
-		return bProcessed;
-
-#ifdef WIN32
-	if (ahi->m_hlp)
-	{
-		unsigned int hwnd = (unsigned int)xvt_vobj_get_attr(win, ATTR_NATIVE_WINDOW);
-		switch (ev->type)
-		{
-		case E_COMMAND:
-			bProcessed = OsWin32_Help(hwnd, ahi->m_strFilename, ev->v.cmd.tag, NULL);
-			break;
-		case E_HELP:
-			bProcessed = OsWin32_Help(hwnd, ahi->m_strFilename, M_HELP_ONCONTEXT, (const char*)ev->v.help.tid);
-			break;
-    default:
-			break;
-		}
-		return bProcessed;
-	}
-#endif
-
-	switch (ev->type)
-	{
-	case E_COMMAND:	
-		switch (ev->v.cmd.tag)
-		{
-		case M_HELP_CONTENTS:
-      ahi->m_hc.DisplayContents();
-			bProcessed = TRUE;
-			break;
-		case M_HELP_SEARCH:
-      ahi->m_hc.DisplayIndex();
-			bProcessed = TRUE;
-			break;
-		default:
-			break;
-		}
-		break;
-	case E_HELP:		
-    ahi->m_hc.Display((const char*)ev->v.help.tid);
-  	bProcessed = TRUE;
-		break;
-	default:
-		break;
-	}
-*/
-
 #ifdef WIN32
 	unsigned int hwnd = (unsigned int)xvt_vobj_get_attr(win, ATTR_NATIVE_WINDOW);
 	switch (ev->type)
@@ -1986,7 +1885,6 @@ bool TFontId::Underline() const
 	return (m_wMask & XVT_FS_UNDERLINE) != 0;
 }
 
-
 wxFont& TFontId::Font(wxDC* dc, WINDOW win) const
 {
  	int nSize = PointSize();
@@ -2002,7 +1900,7 @@ wxFont& TFontId::Font(wxDC* dc, WINDOW win) const
       const int cpi = 120 / nSize;
       const wxString str('M', cpi);
 
-      int nMin = 1, nMax = nSize*8;
+      int nMin = 1, nMax = nSize*10;
       int nBest = 0;
       while (nMin <= nMax)
       {
@@ -3107,6 +3005,7 @@ BOOLEAN xvt_menu_popup(MENU_ITEM *menu_p, WINDOW win, PNT pos,
 		else
 			item = new wxMenuItem(&menu, mi->tag, mi->text, wxEmptyString, mi->checkable);
 		menu.DoAppend(item);
+    item->Enable(mi->enabled); // Fattibile solo dopo l'append
 	}
   CAST_WIN(win, w);
   bool ok = w.PopupMenu(&menu, pos.h, pos.v);