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:
Stefan Neis 2006-01-02 21:26:13 +00:00
parent 395936d860
commit ad4e3f7be6
3 changed files with 38 additions and 26 deletions

View File

@ -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

View File

@ -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();

View File

@ -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();