/////////////////////////////////////////////////////////////////////////////
-// 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
/////////////////////////////////////////////////////////////////////////////
@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
{
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] )
[(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()
{
}
}
};
+
+} // 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];
[v setMaxValue: maximum];
[v setIndeterminate:FALSE];
[v setDoubleValue: (double) value];
- [sv addSubview:v];
wxWidgetCocoaImpl* c = new wxOSXGaugeCocoaImpl( wxpeer, v );
- [v setImplementation:c];
return c;
}