X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b466e85a7e81db84545bc44c83cbe4ccacd4fe8e..0afeb753e0a6a3fdba290bf3612bb2f012d44d95:/src/osx/cocoa/gauge.mm diff --git a/src/osx/cocoa/gauge.mm b/src/osx/cocoa/gauge.mm index 2620e53035..c9742ac478 100644 --- a/src/osx/cocoa/gauge.mm +++ b/src/osx/cocoa/gauge.mm @@ -1,10 +1,10 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: gauge.mm +// Name: src/osx/cocoa/gauge.mm // Purpose: wxGauge class // Author: Stefan Csomor // Modified by: // Created: 1998-01-01 -// RCS-ID: $Id: gauge.cpp 54820 2008-07-29 20:04:11Z SC $ +// RCS-ID: $Id$ // Copyright: (c) Stefan Csomor // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -19,45 +19,50 @@ @interface wxNSProgressIndicator : NSProgressIndicator { - WXCOCOAIMPL_COMMON_MEMBERS } -WXCOCOAIMPL_COMMON_INTERFACE - @end @implementation wxNSProgressIndicator -- (id)initWithFrame:(NSRect)frame ++ (void)initialize { - [super initWithFrame:frame]; - impl = NULL; - return self; + static BOOL initialized = NO; + if (!initialized) + { + initialized = YES; + wxOSXCocoaClassAddWXMethods( self ); + } } -WXCOCOAIMPL_COMMON_IMPLEMENTATION +@end +@interface NSView(PossibleSizeMethods) +- (NSControlSize)controlSize; @end +namespace +{ + class wxOSXGaugeCocoaImpl : public wxWidgetCocoaImpl { public : wxOSXGaugeCocoaImpl( wxWindowMac* peer, WXWidget w) : wxWidgetCocoaImpl( peer, w ) { } - + void SetMaximum(wxInt32 v) { SetDeterminateMode(); wxWidgetCocoaImpl::SetMaximum( v ) ; } - + void SetValue(wxInt32 v) { SetDeterminateMode(); wxWidgetCocoaImpl::SetValue( v ) ; } - + void PulseGauge() { if ( ![(wxNSProgressIndicator*)m_osxView isIndeterminate] ) @@ -66,6 +71,27 @@ public : [(wxNSProgressIndicator*)m_osxView startAnimation:nil]; } } + + void GetLayoutInset(int &left , int &top , int &right, int &bottom) const + { + left = top = right = bottom = 0; + NSControlSize size = [(wxNSProgressIndicator*)m_osxView controlSize]; + + switch( size ) + { + case NSRegularControlSize: + left = right = 2; + top = 0; + bottom = 4; + break; + case NSMiniControlSize: + case NSSmallControlSize: + left = right = 1; + top = 0; + bottom = 2; + break; + } + } protected: void SetDeterminateMode() { @@ -77,18 +103,19 @@ protected: } } }; + +} // anonymous namespace - -wxWidgetImplType* wxWidgetImpl::CreateGauge( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, +wxWidgetImplType* wxWidgetImpl::CreateGauge( wxWindowMac* wxpeer, + wxWindowMac* WXUNUSED(parent), + wxWindowID WXUNUSED(id), wxInt32 value, wxInt32 minimum, wxInt32 maximum, - const wxPoint& pos, + const wxPoint& pos, const wxSize& size, - long style, - long extraStyle) + long WXUNUSED(style), + long WXUNUSED(extraStyle)) { NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ; wxNSProgressIndicator* v = [[wxNSProgressIndicator alloc] initWithFrame:r]; @@ -98,7 +125,6 @@ wxWidgetImplType* wxWidgetImpl::CreateGauge( wxWindowMac* wxpeer, [v setIndeterminate:FALSE]; [v setDoubleValue: (double) value]; wxWidgetCocoaImpl* c = new wxOSXGaugeCocoaImpl( wxpeer, v ); - [v setImplementation:c]; return c; }