[Scummvm-cvs-logs] CVS: scummvm/gui widget.cpp,1.21,1.22 widget.h,1.19,1.20

Max Horn fingolfin at users.sourceforge.net
Fri Jul 26 08:35:04 CEST 2002


Update of /cvsroot/scummvm/scummvm/gui
In directory usw-pr-cvs1:/tmp/cvs-serv22913

Modified Files:
	widget.cpp widget.h 
Log Message:
fixed crash on some systems by setting defaults for the slider value range

Index: widget.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/widget.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- widget.cpp	26 Jul 2002 00:41:07 -0000	1.21
+++ widget.cpp	26 Jul 2002 15:34:04 -0000	1.22
@@ -189,7 +189,8 @@
 #pragma mark -
 
 SliderWidget::SliderWidget(Dialog *boss, int x, int y, int w, int h, const char *label, uint32 cmd, uint8 hotkey)
-	: ButtonWidget(boss, x, y, w, h, label, cmd, hotkey), _value(0), _old_value(1)
+	: ButtonWidget(boss, x, y, w, h, label, cmd, hotkey),
+	  _value(0), _old_value(1), _valueMin(0), _valueMax(100)
 {
 	_flags = WIDGET_ENABLED | WIDGET_TRACK_MOUSE | WIDGET_CLEARBG;
 	_type = kSliderWidget;
@@ -219,18 +220,18 @@
 	
 	// Remove old 'bar' if necessary
 	if (_value != _old_value) {
-		gui->fillRect(_x + 2 + ((_w - 5) * (_old_value - _valueMin) / _valueDelta), _y + 2, 2, _h - 4, gui->_bgcolor);
+		gui->fillRect(_x + 2 + ((_w - 5) * (_old_value - _valueMin) / (_valueMax - _valueMin)), _y + 2, 2, _h - 4, gui->_bgcolor);
 		_old_value = _value;
 	}
 
 	// Draw the 'bar'
-	gui->fillRect(_x + 2 + ((_w - 5) * (_value - _valueMin) / _valueDelta), _y + 2, 2, _h - 4, hilite ? gui->_textcolorhi : gui->_textcolor);
+	gui->fillRect(_x + 2 + ((_w - 5) * (_value - _valueMin) / (_valueMax - _valueMin)), _y + 2, 2, _h - 4, hilite ? gui->_textcolorhi : gui->_textcolor);
 }
 
 void SliderWidget::handleMouseDown(int x, int y, int button) {
 	int barx;
 
-	barx = 2 + ((_w - 5) * (_value - _valueMin) / _valueDelta);
+	barx = 2 + ((_w - 5) * (_value - _valueMin) / (_valueMax - _valueMin));
 	
 	// only start dragging if mouse is over bar
 	if (x > (barx - 3) && x < (barx + 3))

Index: widget.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/widget.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- widget.h	26 Jul 2002 00:41:07 -0000	1.19
+++ widget.h	26 Jul 2002 15:34:04 -0000	1.20
@@ -171,16 +171,16 @@
 class SliderWidget : public ButtonWidget {
 protected:
 	int		_value, _old_value;
-	int		_valueMin, _valueMax, _valueDelta;
+	int		_valueMin, _valueMax;
 	bool	_isDragging;
 public:
 	SliderWidget(Dialog *boss, int x, int y, int w, int h, const char *label, uint32 cmd = 0, uint8 hotkey = 0);
 	void setValue(uint8 value)	{ _value = value; }
 	uint8 getValue() const		{ return _value; }
 
-	void setMinValue(int value)	{ _valueMin = value; _valueDelta = _valueMax - _valueMin; }
+	void setMinValue(int value)	{ _valueMin = value; }
 	int getMinValue() const		{ return _valueMin; }
-	void setMaxValue(int value)	{ _valueMax = value; _valueDelta = _valueMax - _valueMin; }
+	void setMaxValue(int value)	{ _valueMax = value; }
 	int getMaxValue() const		{ return _valueMax; }
 
 	void handleMouseMoved(int x, int y, int button);





More information about the Scummvm-git-logs mailing list