Patch level : 2.0 nopatch
Files correlati : xvaga Ricompilazione Demo : [ ] Commento : Spostate un po' di funzioni da os_win32 a xvaga git-svn-id: svn://10.65.10.50/trunk@10964 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									16ec92c13b
								
							
						
					
					
						commit
						e79fd6cd85
					
				@ -290,3 +290,36 @@ int OsWin32_Help(unsigned int handle, const char* hlp, unsigned int cmd, const c
 | 
			
		||||
	}
 | 
			
		||||
	return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool OsWin32_TestNetworkVersion()
 | 
			
		||||
{
 | 
			
		||||
  // Win95 only!
 | 
			
		||||
  char* VREDIRNAME = "vredir.vxd";
 | 
			
		||||
  DWORD handle;
 | 
			
		||||
  
 | 
			
		||||
  DWORD dwSize = ::GetFileVersionInfoSize(VREDIRNAME,&handle);
 | 
			
		||||
  if (dwSize)
 | 
			
		||||
  {
 | 
			
		||||
    BYTE infoBuffer[512];
 | 
			
		||||
    GetFileVersionInfo(VREDIRNAME,handle,dwSize,infoBuffer);
 | 
			
		||||
    long *language;
 | 
			
		||||
    void * lpBuffer;
 | 
			
		||||
    UINT Size;
 | 
			
		||||
    if (VerQueryValue(infoBuffer, "\\VarFileInfo\\Translation", (void **)&language, &Size) && Size!=0) 
 | 
			
		||||
    {
 | 
			
		||||
      char szName[128];
 | 
			
		||||
      sprintf(szName, "\\StringFileInfo\\%04x%04x\\FileVersion",LOWORD(*language), HIWORD(*language));
 | 
			
		||||
      if (VerQueryValue(infoBuffer, szName, &lpBuffer, &Size) && Size!=0) 
 | 
			
		||||
      {
 | 
			
		||||
        const char* s = (const char *)lpBuffer;
 | 
			
		||||
        for (int i = 0; i < 2; i++)
 | 
			
		||||
          s = strchr(s, '.')+1;
 | 
			
		||||
        int subver=atoi(s);
 | 
			
		||||
        if (subver >= 1111 && subver <= 1115)
 | 
			
		||||
          return false;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -17,3 +17,4 @@ void OsWin32_StretchBlt(unsigned int hDst, int xd, int yd, int wd, int hd,
 | 
			
		||||
void OsWin32_UpdateWindow(unsigned int handle);
 | 
			
		||||
 | 
			
		||||
int OsWin32_Help(unsigned int handle, const char* hlp, unsigned int cmd, const char* topic);
 | 
			
		||||
bool OsWin32_TestNetworkVersion();
 | 
			
		||||
 | 
			
		||||
@ -472,20 +472,18 @@ void TDC::KillDC()
 | 
			
		||||
 | 
			
		||||
void TDC::SetClippingBox(const RCT* pRct)
 | 
			
		||||
{
 | 
			
		||||
	if (pRct)
 | 
			
		||||
	{
 | 
			
		||||
#if wxCHECK_VERSION(2,3,0)
 | 
			
		||||
	if (_dc != NULL)  
 | 
			
		||||
	  _dc->DestroyClippingRegion();
 | 
			
		||||
#endif
 | 
			
		||||
	if (pRct)
 | 
			
		||||
	{
 | 
			
		||||
		wxRect rct = NormalizeRCT(pRct);
 | 
			
		||||
		GetDC().SetClippingRegion(rct);
 | 
			
		||||
  	_clip = *pRct;
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
		if (_dc != NULL)  // Inutile resettare il nulla!
 | 
			
		||||
	  	_dc->DestroyClippingRegion();
 | 
			
		||||
		_clip.left = _clip.top = 0;
 | 
			
		||||
		_clip.right = _clip.bottom = 32000;
 | 
			
		||||
	}
 | 
			
		||||
@ -1857,7 +1855,7 @@ void xvt_dwin_draw_dotted_rect(WINDOW win, RCT *rctp)
 | 
			
		||||
 	CBRUSH brush;
 | 
			
		||||
  brush.color = dct.back_color;
 | 
			
		||||
  brush.pat = PAT_HOLLOW;
 | 
			
		||||
  xvt_dwin_set_cbrush(win, &pen);
 | 
			
		||||
  xvt_dwin_set_cbrush(win, &brush);
 | 
			
		||||
 | 
			
		||||
  xvt_dwin_draw_rect(win, rctp);
 | 
			
		||||
  
 | 
			
		||||
@ -2294,7 +2292,7 @@ void xvt_font_unmap(XVT_FNTID font_id)
 | 
			
		||||
 | 
			
		||||
BOOLEAN xvt_fsys_convert_dir_to_str(DIRECTORY *dirp, char *path, int sz_path) 
 | 
			
		||||
{ 
 | 
			
		||||
	strncpy(path, dirp->path, sz_path);
 | 
			
		||||
	wxStrncpy(path, dirp->path, sz_path);
 | 
			
		||||
	path[sz_path-1] = '\0';
 | 
			
		||||
	return TRUE;
 | 
			
		||||
}
 | 
			
		||||
@ -3114,11 +3112,7 @@ void xvt_sbar_set_range(WINDOW win, SCROLL_TYPE t, int min, int max)
 | 
			
		||||
 | 
			
		||||
void xvt_scr_beep(void) 
 | 
			
		||||
{	
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
	OsWin32_Beep(0);
 | 
			
		||||
#else
 | 
			
		||||
	wxBell(); 
 | 
			
		||||
#endif
 | 
			
		||||
  xvt_sys_beep(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
WINDOW xvt_scr_get_focus_topwin(void) 
 | 
			
		||||
@ -3163,7 +3157,6 @@ void xvt_scr_set_focus_vobj(WINDOW win)
 | 
			
		||||
{ 
 | 
			
		||||
  CAST_WIN(win, w);
 | 
			
		||||
	w.SetFocus();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
@ -3287,6 +3280,15 @@ BOOLEAN xvt_str_match(const char *mbs, const char *pat, BOOLEAN case_sensitive)
 | 
			
		||||
// XVT system calls (added by Guy)
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
void xvt_sys_beep(int severity)
 | 
			
		||||
{
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
	OsWin32_Beep(severity);
 | 
			
		||||
#else
 | 
			
		||||
	wxBell(); 
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int xvt_sys_get_profile_string(const char* file, const char* paragraph, const char* name, 
 | 
			
		||||
                               const char* defval, char* value, int maxsize)
 | 
			
		||||
{
 | 
			
		||||
@ -3333,23 +3335,49 @@ BOOLEAN xvt_sys_set_profile_string(const char* file, const char* paragraph, cons
 | 
			
		||||
 | 
			
		||||
unsigned long xvt_sys_get_free_memory()
 | 
			
		||||
{
 | 
			
		||||
  unsigned long mem = 1024*1024;
 | 
			
		||||
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
  MEMORYSTATUS ms;
 | 
			
		||||
  GlobalMemoryStatus(&ms);
 | 
			
		||||
  mem = ms.dwAvailPhys;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  unsigned long mem = ::wxGetFreeMemory();
 | 
			
		||||
  return mem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unsigned long xvt_sys_get_free_memory_kb()
 | 
			
		||||
{
 | 
			
		||||
  unsigned long mem = xvt_sys_get_free_memory();
 | 
			
		||||
  return (mem + 512) / 1024;
 | 
			
		||||
  return mem / 1024;  // Arrotondo per difetto
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int xvt_sys_get_os_version() 
 | 
			
		||||
{
 | 
			
		||||
  int os = 0;
 | 
			
		||||
  int major, minor;
 | 
			
		||||
  switch (::wxGetOsVersion(&major, &minor))
 | 
			
		||||
  {
 | 
			
		||||
  case wxGTK: 
 | 
			
		||||
    os = XVT_WS_LINUX_GTK; break;
 | 
			
		||||
  case wxWIN95:
 | 
			
		||||
    os = minor == 0 ? XVT_WS_WIN_95 : XVT_WS_WIN_98; break;
 | 
			
		||||
  case wxWINDOWS_NT:
 | 
			
		||||
    os = XVT_WS_WIN_NT; break;
 | 
			
		||||
  default:
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
  return os;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void xvt_sys_sleep(unsigned long msec)
 | 
			
		||||
{
 | 
			
		||||
  wxThread::Sleep(msec);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
BOOLEAN xvt_sys_test_network_version()
 | 
			
		||||
{
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
  if (xvt_sys_get_os_version() == XVT_WS_WIN_95)
 | 
			
		||||
    return OsWin32_TestNetworkVersion();
 | 
			
		||||
#endif
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
// Timers
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
@ -3701,13 +3729,33 @@ WINDOW xvt_win_create(WIN_TYPE wtype, RCT *rct_p, char *title, int menu_rid, WIN
 | 
			
		||||
	return (WINDOW)w; 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
long xvt_win_dispatch_event(WINDOW win, EVENT *event_p) 
 | 
			
		||||
long xvt_win_dispatch_event(WINDOW win, EVENT* event_p) 
 | 
			
		||||
{ 
 | 
			
		||||
	XVT_ASSERT(event_p != NULL);
 | 
			
		||||
	CAST_TWIN(win, w);
 | 
			
		||||
	return w._eh(win, event_p); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void xvt_win_post_event(WINDOW win, EVENT* event_p) 
 | 
			
		||||
{ 
 | 
			
		||||
	XVT_ASSERT(win != NULL_WIN && event_p != NULL);
 | 
			
		||||
	CAST_WIN(win, w);
 | 
			
		||||
 | 
			
		||||
  switch (event_p->type)
 | 
			
		||||
  {
 | 
			
		||||
  case E_COMMAND:
 | 
			
		||||
    {
 | 
			
		||||
      wxCommandEvent e(wxEVT_COMMAND_MENU_SELECTED, event_p->v.cmd.tag);
 | 
			
		||||
      e.SetEventObject(&w);
 | 
			
		||||
      wxPostEvent(&w, e);
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
  default: 
 | 
			
		||||
    SORRY_BOX(); 
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void xvt_win_release_pointer(void) 
 | 
			
		||||
{
 | 
			
		||||
	if (_mouse_trapper != NULL)
 | 
			
		||||
 | 
			
		||||
@ -238,13 +238,17 @@ SLIST_ELT xvt_slist_get_next(SLIST list, SLIST_ELT item);
 | 
			
		||||
char* xvt_str_duplicate(const char* str);
 | 
			
		||||
BOOLEAN xvt_str_match(const char* str, const char* pat, BOOLEAN case_sensitive);
 | 
			
		||||
 | 
			
		||||
// System calls by Guy
 | 
			
		||||
// System calls by XVAGA
 | 
			
		||||
void    xvt_sys_beep(int severity);
 | 
			
		||||
int     xvt_sys_get_profile_string(const char* file, const char* paragraph, const char* name, 
 | 
			
		||||
                                   const char* defval,  char* value, int maxsize);
 | 
			
		||||
BOOLEAN xvt_sys_set_profile_string(const char* file, const char* paragraph, const char* name, 
 | 
			
		||||
                                   const char* value);
 | 
			
		||||
unsigned long xvt_sys_get_free_memory();
 | 
			
		||||
unsigned long xvt_sys_get_free_memory_kb();
 | 
			
		||||
int           xvt_sys_get_os_version();
 | 
			
		||||
void          xvt_sys_sleep(unsigned long msec); 
 | 
			
		||||
BOOLEAN       xvt_sys_test_network_version();
 | 
			
		||||
 | 
			
		||||
long xvt_timer_create(WINDOW win, long interval);
 | 
			
		||||
void xvt_timer_destroy(long id);
 | 
			
		||||
@ -269,7 +273,8 @@ void        xvt_vobj_set_visible(WINDOW win, BOOLEAN show);
 | 
			
		||||
void        xvt_vobj_translate_points(WINDOW from_win, WINDOW to_win, PNT *pntp, int npnts);
 | 
			
		||||
 | 
			
		||||
WINDOW xvt_win_create(WIN_TYPE wtype, RCT *rct_p, char *title, int menu_rid, WINDOW parent_win, long win_flags, EVENT_MASK mask, EVENT_HANDLER eh, long app_data);
 | 
			
		||||
long   xvt_win_dispatch_event(WINDOW win, EVENT *event_p);
 | 
			
		||||
long   xvt_win_dispatch_event(WINDOW win, EVENT* event_p);
 | 
			
		||||
void   xvt_win_post_event(WINDOW win, EVENT* event_p);  // Added by XVAGA
 | 
			
		||||
void   xvt_win_release_pointer(void);
 | 
			
		||||
void   xvt_win_set_caret_size(WINDOW win, int width, int height);
 | 
			
		||||
void   xvt_win_set_caret_pos(WINDOW win, PNT p);
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,19 @@
 | 
			
		||||
#define XVT_OS_WIN   300
 | 
			
		||||
#define XVT_OS_LINUX 300
 | 
			
		||||
#define XVT_OS_WIN32 400
 | 
			
		||||
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
#define XVT_OS XVT_OS_WIN32
 | 
			
		||||
#else
 | 
			
		||||
#define XVT_OS XVT_OS_LINUX
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define XVT_WS_LINUX_GTK 301
 | 
			
		||||
#define XVT_WS_WIN_95    401
 | 
			
		||||
#define XVT_WS_WIN_98    402
 | 
			
		||||
#define XVT_WS_WIN_ME    403
 | 
			
		||||
#define XVT_WS_WIN_NT    411
 | 
			
		||||
#define XVT_WS_WIN_2000  412
 | 
			
		||||
#define XVT_WS_WIN_XP    413
 | 
			
		||||
 | 
			
		||||
#define ATTR_WIN_BASE 10000
 | 
			
		||||
#define ATTR_WIN_CMD_LINE               (ATTR_WIN_BASE + 0)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user