Merge in the recent wxSlider work from svn trunk (various commits). This patch keeps ABI compatibility but won't yet

generate events caused by mouse movement (next commit will do that ABI compatibly).
Copyright 2007 Software 2000 Ltd.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@48080 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott
2007-08-15 04:42:44 +00:00
parent 4ac5084fa4
commit 1346171e5f
7 changed files with 525 additions and 16 deletions

View File

@@ -2,17 +2,19 @@
// Name: wx/cocoa/slider.h
// Purpose: wxSlider class
// Author: David Elliott
// Mark Oxenham
// Modified by:
// Created: 2003/06/19
// RCS-ID: $Id$
// Copyright: (c) 2003 David Elliott
// (c) 2007 Software 2000 Ltd.
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __WX_COCOA_SLIDER_H__
#define __WX_COCOA_SLIDER_H__
// #include "wx/cocoa/NSSlider.h"
#include "wx/cocoa/NSSlider.h"
// ========================================================================
// wxSlider
@@ -21,7 +23,7 @@ class WXDLLEXPORT wxSlider: public wxSliderBase// , protected wxCocoaNSSlider
{
DECLARE_DYNAMIC_CLASS(wxSlider)
DECLARE_EVENT_TABLE()
// WX_DECLARE_COCOA_OWNER(NSSlider,NSControl,NSView)
WX_DECLARE_COCOA_OWNER(NSSlider,NSControl,NSView)
// ------------------------------------------------------------------------
// initialization
// ------------------------------------------------------------------------
@@ -52,30 +54,52 @@ public:
// Cocoa callbacks
// ------------------------------------------------------------------------
protected:
// Override this so we can use wxCocoaNSControl's target
void AssociateNSSlider(WX_NSSlider theSlider);
void DisassociateNSSlider(WX_NSSlider theSlider);
// Helper method to do the real work
void ProcessEventType(wxEventType commandType);
// from wxCocoaNSControl:
virtual void CocoaTarget_action();
// from wxCocoaNSSlider:
/*virtual*/ void CocoaNotification_startTracking(WX_NSNotification notification);
/*virtual*/ void CocoaNotification_continueTracking(WX_NSNotification notification);
/*virtual*/ void CocoaNotification_stopTracking(WX_NSNotification notification);
// ------------------------------------------------------------------------
// Implementation
// ------------------------------------------------------------------------
public:
// Pure Virtuals
virtual int GetValue() const { return 0; }
virtual void SetValue(int value) { }
virtual int GetValue() const;
virtual void SetValue(int value);
// retrieve/change the range
virtual void SetRange(int minValue, int maxValue) { }
virtual int GetMin() const { return 0; }
virtual int GetMax() const { return 0; }
virtual void SetRange(int minValue, int maxValue);
virtual int GetMin() const;
virtual int GetMax() const;
// the line/page size is the increment by which the slider moves when
// cursor arrow key/page up or down are pressed (clicking the mouse is like
// pressing PageUp/Down) and are by default set to 1 and 1/10 of the range
virtual void SetLineSize(int lineSize) { }
virtual void SetPageSize(int pageSize) { }
virtual int GetLineSize() const { return 0; }
virtual int GetPageSize() const { return 0; }
virtual void SetLineSize(int lineSize);
virtual void SetPageSize(int pageSize);
virtual int GetLineSize() const;
virtual int GetPageSize() const;
// these methods get/set the length of the slider pointer in pixels
virtual void SetThumbLength(int lenPixels) { }
virtual int GetThumbLength() const { return 0; }
virtual void SetThumbLength(int lenPixels);
virtual int GetThumbLength() const;
// copied from (wxSliderCocoa.h)
virtual void SetTickFreq(int n, int pos);
virtual int GetTickFreq() const;
virtual void ClearTicks() { SetTickFreq(0, 0); }
virtual void SetTickPos(int pos);
};