From ad4e3f7be6f20d5a164a608b44c51056231ddad9 Mon Sep 17 00:00:00 2001 From: Stefan Neis Date: Mon, 2 Jan 2006 21:26:13 +0000 Subject: [PATCH] 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 --- src/os2/listbox.cpp | 8 ++++--- src/os2/toplevel.cpp | 5 +++-- src/os2/window.cpp | 51 ++++++++++++++++++++++++++------------------ 3 files changed, 38 insertions(+), 26 deletions(-) diff --git a/src/os2/listbox.cpp b/src/os2/listbox.cpp index 475e9f8143..d5e6bc01fa 100644 --- a/src/os2/listbox.cpp +++ b/src/os2/listbox.cpp @@ -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 diff --git a/src/os2/toplevel.cpp b/src/os2/toplevel.cpp index b57f915139..25196f3b23 100644 --- a/src/os2/toplevel.cpp +++ b/src/os2/toplevel.cpp @@ -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(); diff --git a/src/os2/window.cpp b/src/os2/window.cpp index f9ebf96140..efee222aa0 100644 --- a/src/os2/window.cpp +++ b/src/os2/window.cpp @@ -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(); -- 2.45.2