Merge pull request #277 from TheBlueMatt/dpifix
Handle high DPI a bit more gracefully on Win32.
This commit is contained in:
commit
1d418728b0
1 changed files with 50 additions and 7 deletions
45
src/ui.cpp
45
src/ui.cpp
|
@ -18,6 +18,13 @@ CMyTaskBarIcon* ptaskbaricon = NULL;
|
||||||
bool fClosedToTray = false;
|
bool fClosedToTray = false;
|
||||||
wxLocale g_locale;
|
wxLocale g_locale;
|
||||||
|
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
double nScaleX = 1.0;
|
||||||
|
double nScaleY = 1.0;
|
||||||
|
#else
|
||||||
|
static const double nScaleX = 1.0;
|
||||||
|
static const double nScaleY = 1.0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -263,9 +270,10 @@ CMainFrame::CMainFrame(wxWindow* parent) : CMainFrameBase(parent)
|
||||||
fOnSetFocusAddress = false;
|
fOnSetFocusAddress = false;
|
||||||
fRefresh = false;
|
fRefresh = false;
|
||||||
m_choiceFilter->SetSelection(0);
|
m_choiceFilter->SetSelection(0);
|
||||||
double dResize = 1.0;
|
double dResize = nScaleX;
|
||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
SetIcon(wxICON(bitcoin));
|
SetIcon(wxICON(bitcoin));
|
||||||
|
SetSize(dResize * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
|
||||||
#else
|
#else
|
||||||
SetIcon(bitcoin80_xpm);
|
SetIcon(bitcoin80_xpm);
|
||||||
SetBackgroundColour(m_toolBar->GetBackgroundColour());
|
SetBackgroundColour(m_toolBar->GetBackgroundColour());
|
||||||
|
@ -1219,6 +1227,9 @@ void CMainFrame::OnListItemActivated(wxListEvent& event)
|
||||||
|
|
||||||
CTxDetailsDialog::CTxDetailsDialog(wxWindow* parent, CWalletTx wtx) : CTxDetailsDialogBase(parent)
|
CTxDetailsDialog::CTxDetailsDialog(wxWindow* parent, CWalletTx wtx) : CTxDetailsDialogBase(parent)
|
||||||
{
|
{
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
|
||||||
|
#endif
|
||||||
CRITICAL_BLOCK(cs_mapAddressBook)
|
CRITICAL_BLOCK(cs_mapAddressBook)
|
||||||
{
|
{
|
||||||
string strHTML;
|
string strHTML;
|
||||||
|
@ -1633,6 +1644,8 @@ COptionsDialog::COptionsDialog(wxWindow* parent) : COptionsDialogBase(parent)
|
||||||
SelectPage(0);
|
SelectPage(0);
|
||||||
#ifndef __WXMSW__
|
#ifndef __WXMSW__
|
||||||
SetSize(1.0 * GetSize().GetWidth(), 1.2 * GetSize().GetHeight());
|
SetSize(1.0 * GetSize().GetWidth(), 1.2 * GetSize().GetHeight());
|
||||||
|
#else
|
||||||
|
SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
|
||||||
#endif
|
#endif
|
||||||
#if defined(__WXGTK__) || defined(__WXMAC_OSX__)
|
#if defined(__WXGTK__) || defined(__WXMAC_OSX__)
|
||||||
m_checkBoxStartOnSystemStartup->SetLabel(_("&Start Bitcoin on window system startup"));
|
m_checkBoxStartOnSystemStartup->SetLabel(_("&Start Bitcoin on window system startup"));
|
||||||
|
@ -1803,6 +1816,8 @@ CAboutDialog::CAboutDialog(wxWindow* parent) : CAboutDialogBase(parent)
|
||||||
fontTmp.SetPointSize(8);
|
fontTmp.SetPointSize(8);
|
||||||
m_staticTextMain->SetFont(fontTmp);
|
m_staticTextMain->SetFont(fontTmp);
|
||||||
SetSize(GetSize().GetWidth() + 44, GetSize().GetHeight() + 10);
|
SetSize(GetSize().GetWidth() + 44, GetSize().GetHeight() + 10);
|
||||||
|
#else
|
||||||
|
SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1837,12 +1852,19 @@ CSendDialog::CSendDialog(wxWindow* parent, const wxString& strAddress) : CSendDi
|
||||||
fontTmp.SetPointSize(9);
|
fontTmp.SetPointSize(9);
|
||||||
m_staticTextInstructions->SetFont(fontTmp);
|
m_staticTextInstructions->SetFont(fontTmp);
|
||||||
SetSize(725, 180);
|
SetSize(725, 180);
|
||||||
|
#else
|
||||||
|
SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Set Icon
|
// Set Icon
|
||||||
|
if (nScaleX == 1.0 && nScaleY == 1.0) // We don't have icons of the proper size otherwise
|
||||||
|
{
|
||||||
wxIcon iconSend;
|
wxIcon iconSend;
|
||||||
iconSend.CopyFromBitmap(wxBitmap(send16noshadow_xpm));
|
iconSend.CopyFromBitmap(wxBitmap(send16noshadow_xpm));
|
||||||
SetIcon(iconSend);
|
SetIcon(iconSend);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
SetIcon(wxICON(bitcoin));
|
||||||
|
|
||||||
// Fixup the tab order
|
// Fixup the tab order
|
||||||
m_buttonPaste->MoveAfterInTabOrder(m_buttonCancel);
|
m_buttonPaste->MoveAfterInTabOrder(m_buttonCancel);
|
||||||
|
@ -1992,6 +2014,8 @@ CSendingDialog::CSendingDialog(wxWindow* parent, const CAddress& addrIn, int64 n
|
||||||
fWorkDone = false;
|
fWorkDone = false;
|
||||||
#ifndef __WXMSW__
|
#ifndef __WXMSW__
|
||||||
SetSize(1.2 * GetSize().GetWidth(), 1.08 * GetSize().GetHeight());
|
SetSize(1.2 * GetSize().GetWidth(), 1.08 * GetSize().GetHeight());
|
||||||
|
#else
|
||||||
|
SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SetTitle(strprintf(_("Sending %s to %s"), FormatMoney(nPrice).c_str(), wtx.mapValue["to"].c_str()));
|
SetTitle(strprintf(_("Sending %s to %s"), FormatMoney(nPrice).c_str(), wtx.mapValue["to"].c_str()));
|
||||||
|
@ -2315,6 +2339,10 @@ void CSendingDialog::OnReply3(CDataStream& vRecv)
|
||||||
|
|
||||||
CAddressBookDialog::CAddressBookDialog(wxWindow* parent, const wxString& strInitSelected, int nPageIn, bool fDuringSendIn) : CAddressBookDialogBase(parent)
|
CAddressBookDialog::CAddressBookDialog(wxWindow* parent, const wxString& strInitSelected, int nPageIn, bool fDuringSendIn) : CAddressBookDialogBase(parent)
|
||||||
{
|
{
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
|
||||||
|
#endif
|
||||||
|
|
||||||
// Set initially selected page
|
// Set initially selected page
|
||||||
wxNotebookEvent event;
|
wxNotebookEvent event;
|
||||||
event.SetSelection(nPageIn);
|
event.SetSelection(nPageIn);
|
||||||
|
@ -2326,9 +2354,14 @@ CAddressBookDialog::CAddressBookDialog(wxWindow* parent, const wxString& strInit
|
||||||
m_buttonCancel->Show(false);
|
m_buttonCancel->Show(false);
|
||||||
|
|
||||||
// Set Icon
|
// Set Icon
|
||||||
|
if (nScaleX == 1.0 && nScaleY == 1.0) // We don't have icons of the proper size otherwise
|
||||||
|
{
|
||||||
wxIcon iconAddressBook;
|
wxIcon iconAddressBook;
|
||||||
iconAddressBook.CopyFromBitmap(wxBitmap(addressbook16_xpm));
|
iconAddressBook.CopyFromBitmap(wxBitmap(addressbook16_xpm));
|
||||||
SetIcon(iconAddressBook);
|
SetIcon(iconAddressBook);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
SetIcon(wxICON(bitcoin));
|
||||||
|
|
||||||
// Init column headers
|
// Init column headers
|
||||||
m_listCtrlSending->InsertColumn(0, _("Name"), wxLIST_FORMAT_LEFT, 200);
|
m_listCtrlSending->InsertColumn(0, _("Name"), wxLIST_FORMAT_LEFT, 200);
|
||||||
|
@ -2844,6 +2877,16 @@ bool CMyApp::OnInit()
|
||||||
g_locale.AddCatalog("wxstd"); // wxWidgets standard translations, if any
|
g_locale.AddCatalog("wxstd"); // wxWidgets standard translations, if any
|
||||||
g_locale.AddCatalog("bitcoin");
|
g_locale.AddCatalog("bitcoin");
|
||||||
|
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
HDC hdc = GetDC(NULL);
|
||||||
|
if (hdc)
|
||||||
|
{
|
||||||
|
nScaleX = GetDeviceCaps(hdc, LOGPIXELSX) / 96.0;
|
||||||
|
nScaleY = GetDeviceCaps(hdc, LOGPIXELSY) / 96.0;
|
||||||
|
ReleaseDC(NULL, hdc);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return AppInit(argc, argv);
|
return AppInit(argc, argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue