Applied patch #420395 (adding wxCLIP_SIBBLINGS capability -- but not by default)
[wxWidgets.git] / src / msw / statline.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: msw/statline.cpp
3 // Purpose: MSW version of wxStaticLine class
4 // Author: Vadim Zeitlin
5 // Created: 28.06.99
6 // Version: $Id$
7 // Copyright: (c) 1998 Vadim Zeitlin
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10
11 // ============================================================================
12 // declarations
13 // ============================================================================
14
15 // ----------------------------------------------------------------------------
16 // headers
17 // ----------------------------------------------------------------------------
18
19 #ifdef __GNUG__
20 #pragma implementation "statline.h"
21 #endif
22
23 // For compilers that support precompilation, includes "wx.h".
24 #include "wx/wxprec.h"
25
26 #ifdef __BORLANDC__
27 #pragma hdrstop
28 #endif
29
30 #include "wx/statline.h"
31
32 #if wxUSE_STATLINE
33
34 #include "wx/msw/private.h"
35 #include "wx/log.h"
36
37 #ifndef SS_SUNKEN
38 #define SS_SUNKEN 0x00001000L
39 #endif
40
41 #ifndef SS_NOTIFY
42 #define SS_NOTIFY 0x00000100L
43 #endif
44
45 // ============================================================================
46 // implementation
47 // ============================================================================
48
49 IMPLEMENT_DYNAMIC_CLASS(wxStaticLine, wxControl)
50
51 // ----------------------------------------------------------------------------
52 // wxStaticLine
53 // ----------------------------------------------------------------------------
54
55 bool wxStaticLine::Create( wxWindow *parent,
56 wxWindowID id,
57 const wxPoint &pos,
58 const wxSize &size,
59 long style,
60 const wxString &name)
61 {
62 if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) )
63 return FALSE;
64
65 parent->AddChild(this);
66
67 wxSize sizeReal = AdjustSize(size);
68
69 DWORD wstyle = WS_CHILD | WS_VISIBLE | SS_GRAYRECT | SS_SUNKEN | SS_NOTIFY;
70
71 if ( style & wxCLIP_SIBLINGS )
72 wstyle |= WS_CLIPSIBLINGS;
73
74
75 m_hWnd = (WXHWND)::CreateWindow
76 (
77 wxT("STATIC"),
78 wxT(""),
79 wstyle,
80 pos.x, pos.y, sizeReal.x, sizeReal.y,
81 GetWinHwnd(parent),
82 (HMENU)m_windowId,
83 wxGetInstance(),
84 NULL
85 );
86
87 if ( !m_hWnd )
88 {
89 wxLogDebug(wxT("Failed to create static control"));
90
91 return FALSE;
92 }
93
94 SubclassWin(m_hWnd);
95
96 return TRUE;
97 }
98
99 #endif // wxUSE_STATLINE
100