-//
-// Determines whether simulated 3D effects or CTL3D should be used,
-// applying a default border style if required, and returning an extended
-// style to pass to OS2Create.
-//
-WXDWORD wxWindowOS2::Determine3DEffects(
- WXDWORD dwDefaultBorderStyle
-, bool* pbWant3D
-) const
-{
- WXDWORD dwStyle = 0L;
-
- //
- // Native PM does not have any specialize 3D effects like WIN32 does,
- // so we have to try and invent them.
- //
-
- //
- // If matches certain criteria, then assume no 3D effects
- // unless specifically requested (dealt with in MakeExtendedStyle)
- //
- if (!GetParent() ||
- !IsKindOf(CLASSINFO(wxControl)) ||
- (m_windowStyle & wxNO_BORDER)
- )
- {
- *pbWant3D = FALSE;
- return MakeExtendedStyle(m_windowStyle, FALSE);
- }
-
- //
- // 1) App can specify global 3D effects
- //
- *pbWant3D = wxTheApp->GetAuto3D();
-
- //
- // 2) If the parent is being drawn with user colours, or simple border
- // specified, switch effects off.
- //
- if (GetParent() &&
- (GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS) ||
- (m_windowStyle & wxSIMPLE_BORDER)
- )
- *pbWant3D = FALSE;
-
- //
- // 3) Control can override this global setting by defining
- // a border style, e.g. wxSUNKEN_BORDER
- //
- if ((m_windowStyle & wxDOUBLE_BORDER) ||
- (m_windowStyle & wxRAISED_BORDER) ||
- (m_windowStyle & wxSTATIC_BORDER) ||
- (m_windowStyle & wxSUNKEN_BORDER)
- )
- *pbWant3D = TRUE;
-
- dwStyle = MakeExtendedStyle( m_windowStyle
- ,FALSE
- );
-
- //
- // If we want 3D, but haven't specified a border here,
- // apply the default border style specified.
- //
- if (dwDefaultBorderStyle && (*pbWant3D) &&
- !((m_windowStyle & wxDOUBLE_BORDER) ||
- (m_windowStyle & wxRAISED_BORDER) ||
- (m_windowStyle & wxSTATIC_BORDER) ||
- (m_windowStyle & wxSIMPLE_BORDER)
- )
- )
- dwStyle |= dwDefaultBorderStyle;
- return dwStyle;
-} // end of wxWindowOS2::Determine3DEffects
-
-#if WXWIN_COMPATIBILITY
-void wxWindowOS2::OnCommand(
- wxWindow& rWin
-, wxCommandEvent& rEvent
-)
-{
- if (GetEventHandler()->ProcessEvent(rEvent))
- return;
- if (m_parent)
- m_parent->GetEventHandler()->OnCommand( rWin
- ,rEvent
- );
-} // end of wxWindowOS2::OnCommand
-
-wxObject* wxWindowOS2::GetChild(
- int nNumber
-) const
-{
- //
- // Return a pointer to the Nth object in the Panel
- //
- wxNode* pNode = GetChildren().First();
- int n = nNumber;
-
- while (pNode && n--)
- pNode = pNode->Next();
- if (pNode)
- {
- wxObject* pObj = (wxObject*)pNode->Data();
- return(pObj);
- }
- else
- return NULL;
-} // end of wxWindowOS2::GetChild
-
-#endif // WXWIN_COMPATIBILITY
-