Use system colours
Fixed handling of scrollbar heigh/width git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
395936d860
commit
ad4e3f7be6
@ -192,11 +192,11 @@ bool wxListBox::Create(
|
||||
SetFont(*pTextFont);
|
||||
|
||||
//
|
||||
// Set standard wxWidgets colors for Listbox items and highlighting
|
||||
// Set OS/2 system colours for Listbox items and highlighting
|
||||
//
|
||||
wxColour vColour;
|
||||
|
||||
vColour.Set(wxString(wxT("WHITE")));
|
||||
vColour = wxSystemSettingsNative::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
|
||||
|
||||
LONG lColor = (LONG)vColour.GetPixel();
|
||||
|
||||
@ -205,7 +205,7 @@ bool wxListBox::Create(
|
||||
,sizeof(LONG)
|
||||
,(PVOID)&lColor
|
||||
);
|
||||
vColour.Set(wxString(wxT("NAVY")));
|
||||
vColour = wxSystemSettingsNative::GetColour(wxSYS_COLOUR_HIGHLIGHT);
|
||||
lColor = (LONG)vColour.GetPixel();
|
||||
::WinSetPresParam( m_hWnd
|
||||
,PP_HILITEBACKGROUNDCOLOR
|
||||
@ -213,6 +213,8 @@ bool wxListBox::Create(
|
||||
,(PVOID)&lColor
|
||||
);
|
||||
|
||||
SetXComp(0);
|
||||
SetYComp(0);
|
||||
SetSize( nX
|
||||
,nY
|
||||
,nWidth
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include "wx/frame.h"
|
||||
#include "wx/control.h"
|
||||
#include "wx/containr.h" // wxSetFocusToChild()
|
||||
#include "wx/settings.h"
|
||||
#endif //WX_PRECOMP
|
||||
|
||||
#include "wx/module.h" // wxSetFocusToChild()
|
||||
@ -407,7 +408,7 @@ bool wxTopLevelWindowOS2::CreateDialog( ULONG ulDlgTemplate,
|
||||
nX = (vSizeDpy.x - nWidth) / 2;
|
||||
nY = (vSizeDpy.y - nHeight) / 2;
|
||||
}
|
||||
m_backgroundColour.Set(wxString(wxT("LIGHT GREY")));
|
||||
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
|
||||
|
||||
LONG lColor = (LONG)m_backgroundColour.GetPixel();
|
||||
|
||||
@ -502,7 +503,7 @@ bool wxTopLevelWindowOS2::CreateFrame( const wxString& rsTitle,
|
||||
wxAssociateWinWithHandle(m_hWnd, this);
|
||||
wxAssociateWinWithHandle(m_hFrame, this);
|
||||
|
||||
m_backgroundColour.Set(wxString(wxT("MEDIUM GREY")));
|
||||
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
|
||||
|
||||
LONG lColor = (LONG)m_backgroundColour.GetPixel();
|
||||
|
||||
|
@ -725,6 +725,10 @@ void wxWindowOS2::SetScrollbar( int nOrient,
|
||||
int nOldRange = nRange - nThumbVisible;
|
||||
int nRange1 = nOldRange;
|
||||
int nPageSize = nThumbVisible;
|
||||
int nVSBWidth = wxSystemSettingsNative::GetMetric(wxSYS_VSCROLL_X,
|
||||
this);
|
||||
int nHSBHeight = wxSystemSettingsNative::GetMetric(wxSYS_HSCROLL_Y,
|
||||
this);
|
||||
|
||||
SBCDATA vInfo;
|
||||
ULONG ulStyle = WS_VISIBLE | WS_SYNCPAINT;
|
||||
@ -786,8 +790,8 @@ void wxWindowOS2::SetScrollbar( int nOrient,
|
||||
,ulStyle
|
||||
,vSwp.x
|
||||
,vSwp.y
|
||||
,vSwp.cx - 20
|
||||
,20
|
||||
,vSwp.cx - nVSBWidth
|
||||
,nHSBHeight
|
||||
,hWnd
|
||||
,HWND_TOP
|
||||
,60000
|
||||
@ -804,18 +808,19 @@ void wxWindowOS2::SetScrollbar( int nOrient,
|
||||
// origin, not the frame's client window origin.
|
||||
// The starting x position is the same as the starting x position
|
||||
// of the owner, but in terms of the parent frame.
|
||||
// The starting y position is 20 pels below the origin of the
|
||||
// owner in terms of the parent frame.
|
||||
// The horz bar is the same width as the owner and 20 pels high.
|
||||
// The starting y position is wxSYS_HSCROLL_Y pels below the
|
||||
// origin of the owner in terms of the parent frame.
|
||||
// The horz bar is the same width as the owner and wxSYS_HSCROLL_Y
|
||||
// pels high.
|
||||
//
|
||||
if (nRange1 >= nThumbVisible)
|
||||
{
|
||||
::WinSetWindowPos( m_hWndScrollBarHorz
|
||||
,HWND_TOP
|
||||
,vSwp.x + vSwpOwner.x
|
||||
,(vSwp.y + vSwpOwner.y) - 20
|
||||
,(vSwp.y + vSwpOwner.y) - nHSBHeight
|
||||
,vSwpOwner.cx
|
||||
,20
|
||||
,nHSBHeight
|
||||
,SWP_MOVE | SWP_SIZE | SWP_SHOW | SWP_ACTIVATE | SWP_ZORDER
|
||||
);
|
||||
::WinSendMsg( m_hWndScrollBarHorz
|
||||
@ -856,10 +861,10 @@ void wxWindowOS2::SetScrollbar( int nOrient,
|
||||
,WC_SCROLLBAR
|
||||
,(PSZ)NULL
|
||||
,ulStyle
|
||||
,vSwp.x + vSwp.cx - 20
|
||||
,vSwp.y + 20
|
||||
,20
|
||||
,vSwp.cy - 20
|
||||
,vSwp.x + vSwp.cx - nVSBWidth
|
||||
,vSwp.y + nHSBHeight
|
||||
,nVSBWidth
|
||||
,vSwp.cy - nHSBHeight
|
||||
,hWnd
|
||||
,HWND_TOP
|
||||
,60001
|
||||
@ -882,7 +887,7 @@ void wxWindowOS2::SetScrollbar( int nOrient,
|
||||
// position of the scrollbar relative to the parent frame (the vert
|
||||
// scrollbar is on the right and starts at the bottom of the
|
||||
// owner window).
|
||||
// It is 20 pels wide and the same height as the owner.
|
||||
// It is wxSYS_VSCROLL_X pels wide and the same height as the owner.
|
||||
//
|
||||
if (nRange1 >= nThumbVisible)
|
||||
{
|
||||
@ -890,7 +895,7 @@ void wxWindowOS2::SetScrollbar( int nOrient,
|
||||
,HWND_TOP
|
||||
,vSwp.x + vSwpOwner.x + vSwpOwner.cx
|
||||
,vSwp.y + vSwpOwner.y
|
||||
,20
|
||||
,nVSBWidth
|
||||
,vSwpOwner.cy
|
||||
,SWP_ACTIVATE | SWP_MOVE | SWP_SIZE | SWP_SHOW
|
||||
);
|
||||
@ -1556,17 +1561,17 @@ void wxWindowOS2::DoMoveWindow(
|
||||
//
|
||||
// Uninitialized
|
||||
//
|
||||
::WinQueryWindowPos(GetHwnd(), &m_vWinSwp);
|
||||
::WinQueryWindowPos(hWnd, &m_vWinSwp);
|
||||
else
|
||||
{
|
||||
int nYDiff = m_vWinSwp.cy - nHeight;
|
||||
|
||||
//
|
||||
// Handle resizing of scrolled windows. The target or window to
|
||||
// be scrolled is the owner (gets the scroll notificaitons). The
|
||||
// be scrolled is the owner (gets the scroll notifications). The
|
||||
// parent is usually the parent frame of the scrolled panel window.
|
||||
// In order to show the scrollbars the target window will be shrunk
|
||||
// by the size of the scroll bar widths (20) and moved in the X and Y
|
||||
// by the size of the scroll bar widths and moved in the X and Y
|
||||
// directon. That value will be computed as part of the diff for
|
||||
// moving the children. Everytime the window is sized the
|
||||
// toplevel OnSize is going to resize the panel to fit the client
|
||||
@ -1579,20 +1584,24 @@ void wxWindowOS2::DoMoveWindow(
|
||||
{
|
||||
int nAdjustWidth = 0;
|
||||
int nAdjustHeight = 0;
|
||||
int nHSBHeight = wxSystemSettingsNative::GetMetric(wxSYS_HSCROLL_Y,
|
||||
this);
|
||||
int nVSBWidth = wxSystemSettingsNative::GetMetric(wxSYS_VSCROLL_X,
|
||||
this);
|
||||
SWP vSwpScroll;
|
||||
|
||||
if (GetScrollBarHorz() == NULLHANDLE ||
|
||||
!WinIsWindowShowing(GetScrollBarHorz()))
|
||||
nAdjustHeight = 0L;
|
||||
else
|
||||
nAdjustHeight = 20L;
|
||||
nAdjustHeight = nHSBHeight;
|
||||
if (GetScrollBarVert() == NULLHANDLE ||
|
||||
!WinIsWindowShowing(GetScrollBarVert()))
|
||||
nAdjustWidth = 0L;
|
||||
else
|
||||
nAdjustWidth = 20L;
|
||||
::WinQueryWindowPos(GetHWND(), &vSwpScroll);
|
||||
::WinSetWindowPos( GetHWND()
|
||||
nAdjustWidth = nVSBWidth;
|
||||
::WinQueryWindowPos(hWnd, &vSwpScroll);
|
||||
::WinSetWindowPos( hWnd
|
||||
,HWND_TOP
|
||||
,vSwpScroll.x
|
||||
,vSwpScroll.y + nAdjustHeight
|
||||
@ -3114,7 +3123,7 @@ bool wxWindowOS2::OS2Create( PSZ zClass,
|
||||
SubclassWin(m_hWnd);
|
||||
SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
|
||||
|
||||
m_backgroundColour.Set(wxString(wxT("GREY")));
|
||||
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));
|
||||
|
||||
LONG lColor = (LONG)m_backgroundColour.GetPixel();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user