float alpha = 1.0 ;
{
wxWindow* iter = thisWindow ;
- while ( iter )
+ while ( iter )
{
alpha *= (float) iter->GetTransparent()/255.0 ;
if ( iter->IsTopLevel() )
case kEventControlHiliteChanged :
thisWindow->MacHiliteChanged() ;
break ;
-
+
case kEventControlActivate :
case kEventControlDeactivate :
// FIXME: we should have a virtual function for this!
return result ;
}
-static pascal OSStatus wxMacWindowServiceEventHandler( EventHandlerCallRef handler , EventRef event , void *data )
+static pascal OSStatus
+wxMacWindowServiceEventHandler(EventHandlerCallRef WXUNUSED(handler),
+ EventRef event,
+ void *data)
{
OSStatus result = eventNotHandledErr ;
On the other hand, it can be useful for some applications to react to uncommitted text (for example,
to update a status display), as long as it does not disrupt the inline input session. Ideally, wx
should add new event types to support advanced text input. For now, I would keep things as they are.
-
+
However, the code that was being used caused additional problems:
UInt32 message = (0 << 8) + ((char)uniChars[pos] );
Since it simply truncated the unichar to the last byte, it ended up causing weird bugs with inline
return result ;
}
-static pascal OSStatus wxMacWindowCommandEventHandler( EventHandlerCallRef handler , EventRef event , void *data )
+static pascal OSStatus
+wxMacWindowCommandEventHandler(EventHandlerCallRef WXUNUSED(handler),
+ EventRef event,
+ void *data)
{
OSStatus result = eventNotHandledErr ;
wxWindowMac* focus = (wxWindowMac*) data ;
m_hScrollBar = NULL ;
m_vScrollBar = NULL ;
+ m_hScrollBarAlwaysShown = false;
+ m_vScrollBarAlwaysShown = false;
+
m_macBackgroundBrush = wxNullBrush ;
m_macIsUserPane = true;
m_hScrollBar->Raise() ;
}
-void wxWindowMac::MacPostControlCreate(const wxPoint& pos, const wxSize& size)
+void wxWindowMac::MacPostControlCreate(const wxPoint& WXUNUSED(pos), const wxSize& size)
{
wxASSERT_MSG( m_peer != NULL && m_peer->Ok() , wxT("No valid mac control") ) ;
#endif
// Old-style File Manager Drag & Drop
-void wxWindowMac::DragAcceptFiles(bool accept)
+void wxWindowMac::DragAcceptFiles(bool WXUNUSED(accept))
{
// TODO:
}
// Returns the size of the native control. In the case of the toplevel window
// this is the content area root control
-void wxWindowMac::MacGetPositionAndSizeFromControl(int& x, int& y,
- int& w, int& h) const
+void wxWindowMac::MacGetPositionAndSizeFromControl(int& WXUNUSED(x),
+ int& WXUNUSED(y),
+ int& WXUNUSED(w),
+ int& WXUNUSED(h)) const
{
wxFAIL_MSG( wxT("Not currently supported") ) ;
}
HIGetMousePosition(kHICoordSpaceWindow, window, &hiPoint);
pt.h = hiPoint.x;
pt.v = hiPoint.y;
- #else
+ #else
CGrafPtr savePort ;
Boolean swapped = QDSwapPort( GetWindowPort( window ) , &savePort ) ;
#endif
}
-void wxWindowMac::OnEnabled(bool enabled)
+void wxWindowMac::OnEnabled(bool WXUNUSED(enabled))
{
#if !TARGET_API_MAC_OSX
MacEnabledStateChanged() ;
* we always intersect with the entire window, not only with the client area
*/
-void wxWindowMac::Refresh(bool eraseBack, const wxRect *rect)
+void wxWindowMac::Refresh(bool WXUNUSED(eraseBack), const wxRect *rect)
{
if ( m_peer == NULL )
return ;
}
// Coordinates relative to the window
-void wxWindowMac::WarpPointer(int x_pos, int y_pos)
+void wxWindowMac::WarpPointer(int WXUNUSED(x_pos), int WXUNUSED(y_pos))
{
// We really don't move the mouse programmatically under Mac.
}
return 0;
}
-void wxWindowMac::SetScrollPos(int orient, int pos, bool refresh)
+void wxWindowMac::SetScrollPos(int orient, int pos, bool WXUNUSED(refresh))
{
if ( orient == wxHORIZONTAL )
{
}
}
+void
+wxWindowMac::AlwaysShowScrollbars(bool hflag, bool vflag)
+{
+ bool needVisibilityUpdate = false;
+
+ if ( m_hScrollBarAlwaysShown != hflag )
+ {
+ m_hScrollBarAlwaysShown = hflag;
+ needVisibilityUpdate = true;
+ }
+
+ if ( m_vScrollBarAlwaysShown != vflag )
+ {
+ m_vScrollBarAlwaysShown = vflag;
+ needVisibilityUpdate = true;
+ }
+
+ if ( needVisibilityUpdate )
+ DoUpdateScrollbarVisibility();
+}
//
// we draw borders and grow boxes, are already set up and clipped in the current port / cgContextRef
// our own window origin is at leftOrigin/rightOrigin
//
-void wxWindowMac::MacPaintBorders( int leftOrigin , int rightOrigin )
+void wxWindowMac::MacPaintBorders( int WXUNUSED(leftOrigin) , int WXUNUSED(rightOrigin) )
{
if ( IsTopLevel() )
return ;
m_peer->GetRect( &rect ) ;
InsetRect( &rect, -1 , -1 ) ;
-#if wxMAC_USE_CORE_GRAPHICS
+#if wxMAC_USE_CORE_GRAPHICS
{
CGRect cgrect = CGRectMake( rect.left , rect.top , rect.right - rect.left ,
rect.bottom - rect.top ) ;
wxWindowBase::RemoveChild( child ) ;
}
-// New function that will replace some of the above.
-void wxWindowMac::SetScrollbar(int orient, int pos, int thumbVisible,
- int range, bool refresh)
+void wxWindowMac::DoUpdateScrollbarVisibility()
{
- bool showScroller;
bool triggerSizeEvent = false;
- if ( orient == wxHORIZONTAL )
+ if ( m_hScrollBar )
{
- if ( m_hScrollBar )
- {
- showScroller = ((range != 0) && (range > thumbVisible));
- if ( m_hScrollBar->IsShown() != showScroller )
- {
- m_hScrollBar->Show( showScroller );
- triggerSizeEvent = true;
- }
+ bool showHScrollBar = m_hScrollBarAlwaysShown || m_hScrollBar->IsNeeded();
- m_hScrollBar->SetScrollbar( pos , thumbVisible , range , thumbVisible , refresh ) ;
+ if ( m_hScrollBar->IsShown() != showHScrollBar )
+ {
+ m_hScrollBar->Show( showHScrollBar );
+ triggerSizeEvent = true;
}
}
- else
+
+ if ( m_vScrollBar)
{
- if ( m_vScrollBar )
- {
- showScroller = ((range != 0) && (range > thumbVisible));
- if ( m_vScrollBar->IsShown() != showScroller )
- {
- m_vScrollBar->Show( showScroller ) ;
- triggerSizeEvent = true;
- }
+ bool showVScrollBar = m_vScrollBarAlwaysShown || m_vScrollBar->IsNeeded();
- m_vScrollBar->SetScrollbar( pos , thumbVisible , range , thumbVisible , refresh ) ;
+ if ( m_vScrollBar->IsShown() != showVScrollBar )
+ {
+ m_vScrollBar->Show( showVScrollBar ) ;
+ triggerSizeEvent = true;
}
}
}
}
+// New function that will replace some of the above.
+void wxWindowMac::SetScrollbar(int orient, int pos, int thumb,
+ int range, bool refresh)
+{
+ if ( orient == wxHORIZONTAL && m_hScrollBar )
+ m_hScrollBar->SetScrollbar(pos, thumb, range, thumb, refresh);
+ else if ( orient == wxVERTICAL && m_vScrollBar )
+ m_vScrollBar->SetScrollbar(pos, thumb, range, thumb, refresh);
+
+ DoUpdateScrollbarVisibility();
+}
+
// Does a physical scroll
void wxWindowMac::ScrollWindow(int dx, int dy, const wxRect *rect)
{
return cursor.Ok() ;
}
-wxString wxWindowMac::MacGetToolTipString( wxPoint &pt )
+wxString wxWindowMac::MacGetToolTipString( wxPoint &WXUNUSED(pt) )
{
#if wxUSE_TOOLTIPS
if ( m_tooltip )
eventNc.SetEventObject( child );
if ( !child->GetEventHandler()->ProcessEvent( eventNc ) )
{
-#if wxMAC_USE_CORE_GRAPHICS
+#if wxMAC_USE_CORE_GRAPHICS
child->MacPaintBorders(0, 0) ;
#else
{
}
}
-void wxWindowMac::OnPaint( wxPaintEvent & event )
+void wxWindowMac::OnPaint( wxPaintEvent & WXUNUSED(event) )
{
if ( wxTheApp->MacGetCurrentEvent() != NULL && wxTheApp->MacGetCurrentEventHandlerCallRef() != NULL
&& GetBackgroundStyle() != wxBG_STYLE_TRANSPARENT )
(EventRef) wxTheApp->MacGetCurrentEvent() ) ;
}
-void wxWindowMac::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED( mouseStillDown ) )
+void wxWindowMac::MacHandleControlClick(WXWidget WXUNUSED(control),
+ wxInt16 WXUNUSED(controlpart),
+ bool WXUNUSED(mouseStillDown))
{
}
#endif
}
-wxByte wxWindowMac::GetTransparent() const
+wxByte wxWindowMac::GetTransparent() const
{
return m_macAlpha ;
}