HKEY -> WXHKEY; wxScrolledWindow::SetScale added

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
1998-08-24 19:11:11 +00:00
parent 885ee23543
commit fd6c844b17
2 changed files with 45 additions and 30 deletions

View File

@@ -52,6 +52,8 @@ wxScrolledWindow::wxScrolledWindow(void)
m_yScrollLines = 0; m_yScrollLines = 0;
m_xScrollLinesPerPage = 0; m_xScrollLinesPerPage = 0;
m_yScrollLinesPerPage = 0; m_yScrollLinesPerPage = 0;
m_scaleX = 1.0;
m_scaleY = 1.0;
} }
bool wxScrolledWindow::Create(wxWindow *parent, wxWindowID id, bool wxScrolledWindow::Create(wxWindow *parent, wxWindowID id,
@@ -70,6 +72,8 @@ bool wxScrolledWindow::Create(wxWindow *parent, wxWindowID id,
m_yScrollLines = 0; m_yScrollLines = 0;
m_xScrollLinesPerPage = 0; m_xScrollLinesPerPage = 0;
m_yScrollLinesPerPage = 0; m_yScrollLinesPerPage = 0;
m_scaleX = 1.0;
m_scaleY = 1.0;
return wxWindow::Create(parent, id, pos, size, style, name); return wxWindow::Create(parent, id, pos, size, style, name);
} }
@@ -352,6 +356,7 @@ void wxScrolledWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
void wxScrolledWindow::PrepareDC(wxDC& dc) void wxScrolledWindow::PrepareDC(wxDC& dc)
{ {
dc.SetDeviceOrigin(- m_xScrollPosition * m_xScrollPixelsPerLine, - m_yScrollPosition * m_yScrollPixelsPerLine); dc.SetDeviceOrigin(- m_xScrollPosition * m_xScrollPixelsPerLine, - m_yScrollPosition * m_yScrollPixelsPerLine);
dc.SetUserScale(m_scaleX, m_scaleY);
} }
#if WXWIN_COMPATIBILITY #if WXWIN_COMPATIBILITY

View File

@@ -110,7 +110,7 @@ aStdKeys[] =
static inline void RemoveTrailingSeparator(wxString& str); static inline void RemoveTrailingSeparator(wxString& str);
// returns TRUE if given registry key exists // returns TRUE if given registry key exists
static bool KeyExists(HKEY hRootKey, const char *szKey); static bool KeyExists(WXHKEY hRootKey, const char *szKey);
// combines value and key name (uses static buffer!) // combines value and key name (uses static buffer!)
static const char *GetFullName(const wxRegKey *pKey, static const char *GetFullName(const wxRegKey *pKey,
@@ -172,10 +172,10 @@ wxRegKey::StdKey wxRegKey::ExtractKeyName(wxString& strKey)
return (wxRegKey::StdKey)(int)hRootKey; return (wxRegKey::StdKey)(int)hRootKey;
} }
wxRegKey::StdKey wxRegKey::GetStdKeyFromHkey(HKEY hkey) wxRegKey::StdKey wxRegKey::GetStdKeyFromHkey(WXHKEY hkey)
{ {
for ( size_t ui = 0; ui < nStdKeys; ui++ ) { for ( size_t ui = 0; ui < nStdKeys; ui++ ) {
if ( aStdKeys[ui].hkey == hkey ) if ( (int) aStdKeys[ui].hkey == (int) hkey )
return (StdKey)ui; return (StdKey)ui;
} }
@@ -191,13 +191,13 @@ wxRegKey::StdKey wxRegKey::GetStdKeyFromHkey(HKEY hkey)
wxRegKey::wxRegKey() wxRegKey::wxRegKey()
{ {
m_hKey = 0; m_hKey = 0;
m_hRootKey = aStdKeys[HKCR].hkey; m_hRootKey = (WXHKEY) aStdKeys[HKCR].hkey;
m_dwLastError = 0; m_dwLastError = 0;
} }
wxRegKey::wxRegKey(const wxString& strKey) : m_strKey(strKey) wxRegKey::wxRegKey(const wxString& strKey) : m_strKey(strKey)
{ {
m_hRootKey = aStdKeys[ExtractKeyName(m_strKey)].hkey; m_hRootKey = (WXHKEY) aStdKeys[ExtractKeyName(m_strKey)].hkey;
m_hKey = NULL; m_hKey = NULL;
m_dwLastError = 0; m_dwLastError = 0;
} }
@@ -206,7 +206,7 @@ wxRegKey::wxRegKey(const wxString& strKey) : m_strKey(strKey)
wxRegKey::wxRegKey(StdKey keyParent, const wxString& strKey) : m_strKey(strKey) wxRegKey::wxRegKey(StdKey keyParent, const wxString& strKey) : m_strKey(strKey)
{ {
RemoveTrailingSeparator(m_strKey); RemoveTrailingSeparator(m_strKey);
m_hRootKey = aStdKeys[keyParent].hkey; m_hRootKey = (WXHKEY) aStdKeys[keyParent].hkey;
m_hKey = NULL; m_hKey = NULL;
m_dwLastError = 0; m_dwLastError = 0;
} }
@@ -245,7 +245,7 @@ void wxRegKey::SetName(const wxString& strKey)
Close(); Close();
m_strKey = strKey; m_strKey = strKey;
m_hRootKey = aStdKeys[ExtractKeyName(m_strKey)].hkey; m_hRootKey = (WXHKEY) aStdKeys[ExtractKeyName(m_strKey)].hkey;
} }
// the name is relative to the parent key // the name is relative to the parent key
@@ -255,7 +255,7 @@ void wxRegKey::SetName(StdKey keyParent, const wxString& strKey)
m_strKey = strKey; m_strKey = strKey;
RemoveTrailingSeparator(m_strKey); RemoveTrailingSeparator(m_strKey);
m_hRootKey = aStdKeys[keyParent].hkey; m_hRootKey = (WXHKEY) aStdKeys[keyParent].hkey;
} }
// the name is relative to the parent key // the name is relative to the parent key
@@ -275,7 +275,7 @@ void wxRegKey::SetName(const wxRegKey& keyParent, const wxString& strKey)
} }
// hKey should be opened and will be closed in wxRegKey dtor // hKey should be opened and will be closed in wxRegKey dtor
void wxRegKey::SetHkey(HKEY hKey) void wxRegKey::SetHkey(WXHKEY hKey)
{ {
Close(); Close();
@@ -296,7 +296,7 @@ bool wxRegKey::Exists() const
// returns the full name of the key (prefix is abbreviated if bShortPrefix) // returns the full name of the key (prefix is abbreviated if bShortPrefix)
wxString wxRegKey::GetName(bool bShortPrefix) const wxString wxRegKey::GetName(bool bShortPrefix) const
{ {
StdKey key = GetStdKeyFromHkey(m_hRootKey); StdKey key = GetStdKeyFromHkey((StdKey) m_hRootKey);
wxString str = bShortPrefix ? aStdKeys[key].szShortName wxString str = bShortPrefix ? aStdKeys[key].szShortName
: aStdKeys[key].szName; : aStdKeys[key].szName;
if ( !m_strKey.IsEmpty() ) if ( !m_strKey.IsEmpty() )
@@ -320,7 +320,7 @@ bool wxRegKey::GetKeyInfo(ulong *pnSubKeys,
#ifdef __WIN32__ #ifdef __WIN32__
m_dwLastError = ::RegQueryInfoKey m_dwLastError = ::RegQueryInfoKey
( (
m_hKey, (HKEY) m_hKey,
NULL, // class name NULL, // class name
NULL, // (ptr to) size of class name buffer NULL, // (ptr to) size of class name buffer
RESERVED, RESERVED,
@@ -358,15 +358,19 @@ bool wxRegKey::Open()
if ( IsOpened() ) if ( IsOpened() )
return TRUE; return TRUE;
m_dwLastError = RegOpenKey(m_hRootKey, m_strKey, &m_hKey); HKEY tmpKey;
m_dwLastError = RegOpenKey((HKEY) m_hRootKey, m_strKey, &tmpKey);
if ( m_dwLastError != ERROR_SUCCESS ) { if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, _("can't open registry key '%s'"), wxLogSysError(m_dwLastError, _("can't open registry key '%s'"),
GetName().c_str()); GetName().c_str());
return FALSE; return FALSE;
} }
else else
{
m_hKey = (WXHKEY) tmpKey;
return TRUE; return TRUE;
} }
}
// creates key, failing if it exists and !bOkIfExists // creates key, failing if it exists and !bOkIfExists
bool wxRegKey::Create(bool bOkIfExists) bool wxRegKey::Create(bool bOkIfExists)
@@ -379,21 +383,25 @@ bool wxRegKey::Create(bool bOkIfExists)
if ( IsOpened() ) if ( IsOpened() )
return TRUE; return TRUE;
m_dwLastError = RegCreateKey(m_hRootKey, m_strKey, &m_hKey); HKEY tmpKey;
m_dwLastError = RegCreateKey((HKEY) m_hRootKey, m_strKey, &tmpKey);
if ( m_dwLastError != ERROR_SUCCESS ) { if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, _("can't create registry key '%s'"), wxLogSysError(m_dwLastError, _("can't create registry key '%s'"),
GetName().c_str()); GetName().c_str());
return FALSE; return FALSE;
} }
else else
{
m_hKey = (WXHKEY) tmpKey;
return TRUE; return TRUE;
} }
}
// close the key, it's not an error to call it when not opened // close the key, it's not an error to call it when not opened
bool wxRegKey::Close() bool wxRegKey::Close()
{ {
if ( IsOpened() ) { if ( IsOpened() ) {
m_dwLastError = RegCloseKey(m_hKey); m_dwLastError = RegCloseKey((HKEY) m_hKey);
if ( m_dwLastError != ERROR_SUCCESS ) { if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, _("can't close registry key '%s'"), wxLogSysError(m_dwLastError, _("can't close registry key '%s'"),
GetName().c_str()); GetName().c_str());
@@ -445,7 +453,7 @@ bool wxRegKey::DeleteSelf()
// now delete this key itself // now delete this key itself
Close(); Close();
m_dwLastError = RegDeleteKey(m_hRootKey, m_strKey); m_dwLastError = RegDeleteKey((HKEY) m_hRootKey, m_strKey);
if ( m_dwLastError != ERROR_SUCCESS ) { if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, _("can't delete key '%s'"), wxLogSysError(m_dwLastError, _("can't delete key '%s'"),
GetName().c_str()); GetName().c_str());
@@ -470,7 +478,7 @@ bool wxRegKey::DeleteValue(const char *szValue)
return FALSE; return FALSE;
#ifdef __WIN32__ #ifdef __WIN32__
m_dwLastError = RegDeleteValue(m_hKey, szValue); m_dwLastError = RegDeleteValue((HKEY) m_hKey, szValue);
if ( m_dwLastError != ERROR_SUCCESS ) { if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, _("can't delete value '%s' from key '%s'"), wxLogSysError(m_dwLastError, _("can't delete value '%s' from key '%s'"),
szValue, GetName().c_str()); szValue, GetName().c_str());
@@ -481,7 +489,7 @@ bool wxRegKey::DeleteValue(const char *szValue)
wxASSERT( IsEmpty(szValue) ); wxASSERT( IsEmpty(szValue) );
// just set the (default and unique) value of the key to "" // just set the (default and unique) value of the key to ""
m_dwLastError = RegSetValue(m_hKey, NULL, REG_SZ, "", RESERVED); m_dwLastError = RegSetValue((HKEY) m_hKey, NULL, REG_SZ, "", RESERVED);
if ( m_dwLastError != ERROR_SUCCESS ) { if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, _("can't delete value of key '%s'"), wxLogSysError(m_dwLastError, _("can't delete value of key '%s'"),
GetName().c_str()); GetName().c_str());
@@ -504,7 +512,7 @@ bool wxRegKey::HasValue(const char *szValue) const
#ifdef __WIN32__ #ifdef __WIN32__
if ( CONST_CAST Open() ) { if ( CONST_CAST Open() ) {
return RegQueryValueEx(m_hKey, szValue, RESERVED, return RegQueryValueEx((HKEY) m_hKey, szValue, RESERVED,
NULL, NULL, NULL) == ERROR_SUCCESS; NULL, NULL, NULL) == ERROR_SUCCESS;
} }
else else
@@ -540,7 +548,7 @@ wxRegKey::ValueType wxRegKey::GetValueType(const char *szValue)
return Type_None; return Type_None;
DWORD dwType; DWORD dwType;
m_dwLastError = RegQueryValueEx(m_hKey, szValue, RESERVED, m_dwLastError = RegQueryValueEx((HKEY) m_hKey, szValue, RESERVED,
&dwType, NULL, NULL); &dwType, NULL, NULL);
if ( m_dwLastError != ERROR_SUCCESS ) { if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, _("can't read value of key '%s'"), wxLogSysError(m_dwLastError, _("can't read value of key '%s'"),
@@ -558,7 +566,7 @@ wxRegKey::ValueType wxRegKey::GetValueType(const char *szValue)
bool wxRegKey::SetValue(const char *szValue, long lValue) bool wxRegKey::SetValue(const char *szValue, long lValue)
{ {
if ( CONST_CAST Open() ) { if ( CONST_CAST Open() ) {
m_dwLastError = RegSetValueEx(m_hKey, szValue, RESERVED, REG_DWORD, m_dwLastError = RegSetValueEx((HKEY) m_hKey, szValue, RESERVED, REG_DWORD,
(RegString)&lValue, sizeof(lValue)); (RegString)&lValue, sizeof(lValue));
if ( m_dwLastError == ERROR_SUCCESS ) if ( m_dwLastError == ERROR_SUCCESS )
return TRUE; return TRUE;
@@ -574,7 +582,7 @@ bool wxRegKey::QueryValue(const char *szValue, long *plValue) const
if ( CONST_CAST Open() ) { if ( CONST_CAST Open() ) {
DWORD dwType, dwSize = sizeof(DWORD); DWORD dwType, dwSize = sizeof(DWORD);
RegString pBuf = (RegString)plValue; RegString pBuf = (RegString)plValue;
m_dwLastError = RegQueryValueEx(m_hKey, szValue, RESERVED, m_dwLastError = RegQueryValueEx((HKEY) m_hKey, szValue, RESERVED,
&dwType, pBuf, &dwSize); &dwType, pBuf, &dwSize);
if ( m_dwLastError != ERROR_SUCCESS ) { if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, _("can't read value of key '%s'"), wxLogSysError(m_dwLastError, _("can't read value of key '%s'"),
@@ -601,11 +609,11 @@ bool wxRegKey::QueryValue(const char *szValue, wxString& strValue) const
#ifdef __WIN32__ #ifdef __WIN32__
// first get the type and size of the data // first get the type and size of the data
DWORD dwType, dwSize; DWORD dwType, dwSize;
m_dwLastError = RegQueryValueEx(m_hKey, szValue, RESERVED, m_dwLastError = RegQueryValueEx((HKEY) m_hKey, szValue, RESERVED,
&dwType, NULL, &dwSize); &dwType, NULL, &dwSize);
if ( m_dwLastError == ERROR_SUCCESS ) { if ( m_dwLastError == ERROR_SUCCESS ) {
RegString pBuf = (RegString)strValue.GetWriteBuf(dwSize); RegString pBuf = (RegString)strValue.GetWriteBuf(dwSize);
m_dwLastError = RegQueryValueEx(m_hKey, szValue, RESERVED, m_dwLastError = RegQueryValueEx((HKEY) m_hKey, szValue, RESERVED,
&dwType, pBuf, &dwSize); &dwType, pBuf, &dwSize);
strValue.UngetWriteBuf(); strValue.UngetWriteBuf();
if ( m_dwLastError == ERROR_SUCCESS ) { if ( m_dwLastError == ERROR_SUCCESS ) {
@@ -620,7 +628,7 @@ bool wxRegKey::QueryValue(const char *szValue, wxString& strValue) const
// named registry values don't exist in Win16 // named registry values don't exist in Win16
wxASSERT( IsEmpty(szValue) ); wxASSERT( IsEmpty(szValue) );
m_dwLastError = RegQueryValue(m_hKey, 0, strValue.GetWriteBuf(256), &l); m_dwLastError = RegQueryValue((HKEY) m_hKey, 0, strValue.GetWriteBuf(256), &l);
strValue.UngetWriteBuf(); strValue.UngetWriteBuf();
if ( m_dwLastError == ERROR_SUCCESS ) if ( m_dwLastError == ERROR_SUCCESS )
return TRUE; return TRUE;
@@ -636,7 +644,7 @@ bool wxRegKey::SetValue(const char *szValue, const wxString& strValue)
{ {
if ( CONST_CAST Open() ) { if ( CONST_CAST Open() ) {
#ifdef __WIN32__ #ifdef __WIN32__
m_dwLastError = RegSetValueEx(m_hKey, szValue, RESERVED, REG_SZ, m_dwLastError = RegSetValueEx((HKEY) m_hKey, szValue, RESERVED, REG_SZ,
(RegString)strValue.c_str(), (RegString)strValue.c_str(),
strValue.Len() + 1); strValue.Len() + 1);
if ( m_dwLastError == ERROR_SUCCESS ) if ( m_dwLastError == ERROR_SUCCESS )
@@ -645,7 +653,7 @@ bool wxRegKey::SetValue(const char *szValue, const wxString& strValue)
// named registry values don't exist in Win16 // named registry values don't exist in Win16
wxASSERT( IsEmpty(szValue) ); wxASSERT( IsEmpty(szValue) );
m_dwLastError = RegSetValue(m_hKey, NULL, REG_SZ, strValue, NULL); m_dwLastError = RegSetValue((HKEY) m_hKey, NULL, REG_SZ, strValue, NULL);
if ( m_dwLastError == ERROR_SUCCESS ) if ( m_dwLastError == ERROR_SUCCESS )
return TRUE; return TRUE;
#endif //WIN16/32 #endif //WIN16/32
@@ -691,7 +699,7 @@ bool wxRegKey::GetNextValue(wxString& strValueName, long& lIndex) const
DWORD dwValueLen = WXSIZEOF(szValueName); DWORD dwValueLen = WXSIZEOF(szValueName);
lIndex++; lIndex++;
m_dwLastError = RegEnumValue(m_hKey, lIndex, m_dwLastError = RegEnumValue((HKEY) m_hKey, lIndex,
szValueName, &dwValueLen, szValueName, &dwValueLen,
RESERVED, RESERVED,
NULL, // [out] type NULL, // [out] type
@@ -741,7 +749,7 @@ bool wxRegKey::GetNextKey(wxString& strKeyName, long& lIndex) const
return FALSE; return FALSE;
char szKeyName[_MAX_PATH + 1]; char szKeyName[_MAX_PATH + 1];
m_dwLastError = RegEnumKey(m_hKey, lIndex++, szKeyName, WXSIZEOF(szKeyName)); m_dwLastError = RegEnumKey((HKEY) m_hKey, lIndex++, szKeyName, WXSIZEOF(szKeyName));
if ( m_dwLastError != ERROR_SUCCESS ) { if ( m_dwLastError != ERROR_SUCCESS ) {
if ( m_dwLastError == ERROR_NO_MORE_ITEMS ) { if ( m_dwLastError == ERROR_NO_MORE_ITEMS ) {
@@ -763,10 +771,10 @@ bool wxRegKey::GetNextKey(wxString& strKeyName, long& lIndex) const
// ============================================================================ // ============================================================================
// implementation of global private functions // implementation of global private functions
// ============================================================================ // ============================================================================
bool KeyExists(HKEY hRootKey, const char *szKey) bool KeyExists(WXHKEY hRootKey, const char *szKey)
{ {
HKEY hkeyDummy; HKEY hkeyDummy;
if ( RegOpenKey(hRootKey, szKey, &hkeyDummy) == ERROR_SUCCESS ) { if ( RegOpenKey( (HKEY) hRootKey, szKey, &hkeyDummy) == ERROR_SUCCESS ) {
RegCloseKey(hkeyDummy); RegCloseKey(hkeyDummy);
return TRUE; return TRUE;
} }
@@ -923,3 +931,5 @@ bool GetFileTypeDescription(wxString *pDesc, const wxString& strFileType)
// no such file type or no value // no such file type or no value
return FALSE; return FALSE;
} }