X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dbeddfb93d3479d03d8ec4c0121dfbe3bbcc422b..2f70baea2fa2aa1fbcdceb0121eea1cb5c9bedf0:/src/osx/cocoa/gauge.mm diff --git a/src/osx/cocoa/gauge.mm b/src/osx/cocoa/gauge.mm index 80ed675dc8..79762b5540 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,40 +19,30 @@ @interface wxNSProgressIndicator : NSProgressIndicator { - wxWidgetImpl* impl; } -- (void)setImplementation: (wxWidgetImpl *) theImplementation; -- (wxWidgetImpl*) implementation; -- (BOOL) isFlipped; - @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 ); + } } -- (void)setImplementation: (wxWidgetImpl *) theImplementation -{ - impl = theImplementation; -} +@end -- (wxWidgetImpl*) implementation -{ - return impl; -} +@interface NSView(PossibleSizeMethods) +- (NSControlSize)controlSize; +@end -- (BOOL) isFlipped +namespace { - return YES; -} - -@end class wxOSXGaugeCocoaImpl : public wxWidgetCocoaImpl { @@ -60,19 +50,19 @@ 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] ) @@ -81,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 = 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() { @@ -92,21 +103,20 @@ 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)) { - NSView* sv = (wxpeer->GetParent()->GetHandle() ); - NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ; wxNSProgressIndicator* v = [[wxNSProgressIndicator alloc] initWithFrame:r]; @@ -114,9 +124,7 @@ wxWidgetImplType* wxWidgetImpl::CreateGauge( wxWindowMac* wxpeer, [v setMaxValue: maximum]; [v setIndeterminate:FALSE]; [v setDoubleValue: (double) value]; - [sv addSubview:v]; wxWidgetCocoaImpl* c = new wxOSXGaugeCocoaImpl( wxpeer, v ); - [v setImplementation:c]; return c; }