[Scummvm-cvs-logs] CVS: scummvm/sword2 controls.cpp,1.81,1.82

Torbjörn Andersson eriktorbjorn at users.sourceforge.net
Mon Jan 24 23:28:00 CET 2005


Update of /cvsroot/scummvm/scummvm/sword2
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1507

Modified Files:
	controls.cpp 
Log Message:
Added a "value step" parameter to the Slider widget class so that clicking
beside the slider handle can move it more than one step. (When the volume
range was 0-14 or 0-16 this wasn't needed, but now it's 0-255.)


Index: controls.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword2/controls.cpp,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -d -r1.81 -r1.82
--- controls.cpp	17 Jan 2005 10:57:10 -0000	1.81
+++ controls.cpp	25 Jan 2005 07:27:14 -0000	1.82
@@ -677,6 +677,7 @@
 	bool _dragging;
 	int _value, _targetValue;
 	int _maxValue;
+	int _valueStep;
 	int _dragOffset;
 
 	int posFromValue(int value) {
@@ -689,12 +690,15 @@
 
 public:
 	Slider(Dialog *parent, Widget *background, int max,
-		int x, int y, int w, int h, Widget *base = NULL)
+		int x, int y, int w, int h, int step, Widget *base = NULL)
 		: Widget(parent, 1), _background(background),
 		  _dragging(false), _value(0), _targetValue(0),
-		  _maxValue(max) {
+		  _maxValue(max), _valueStep(step) {
 		setHitRect(x, y, w, h);
 
+		if (_valueStep <= 0)
+			_valueStep = 1;
+
 		if (base)
 			linkSurfaceImages(base, x, y);
 		else
@@ -748,11 +752,15 @@
 			_dragging = true;
 			_dragOffset = x - _sprites[0].x;
 		} else if (x < _sprites[0].x) {
-			if (_targetValue > 0)
-				_targetValue--;
+			if (_targetValue >= _valueStep)
+				_targetValue -= _valueStep;
+			else
+				_targetValue = 0;
 		} else {
-			if (_targetValue < _maxValue)
-				_targetValue++;
+			if (_targetValue < _maxValue - _valueStep)
+				_targetValue += _valueStep;
+			else
+				_targetValue = _maxValue;
 		}
 	}
 
@@ -897,10 +905,12 @@
 		_fxSwitch->linkSurfaceImages(_musicSwitch, 516, 250);
 		_fxSwitch->reverseStates();
 
-		_musicSlider = new Slider(this, _panel, SoundMixer::kMaxMixerVolume, 309, 161, 170, 27);
-		_speechSlider = new Slider(this, _panel, SoundMixer::kMaxMixerVolume, 309, 208, 170, 27, _musicSlider);
-		_fxSlider = new Slider(this, _panel, SoundMixer::kMaxMixerVolume, 309, 254, 170, 27, _musicSlider);
-		_gfxSlider = new Slider(this, _panel, 3, 309, 341, 170, 27, _musicSlider);
+		int volStep = SoundMixer::kMaxMixerVolume / 10;
+
+		_musicSlider = new Slider(this, _panel, SoundMixer::kMaxMixerVolume, 309, 161, 170, 27, volStep);
+		_speechSlider = new Slider(this, _panel, SoundMixer::kMaxMixerVolume, 309, 208, 170, 27, volStep, _musicSlider);
+		_fxSlider = new Slider(this, _panel, SoundMixer::kMaxMixerVolume, 309, 254, 170, 27, volStep, _musicSlider);
+		_gfxSlider = new Slider(this, _panel, 3, 309, 341, 170, 27, 1, _musicSlider);
 
 		_gfxPreview = new Widget(this, 4);
 		_gfxPreview->createSurfaceImages(256, 495, 310);





More information about the Scummvm-git-logs mailing list