Expressions


#1

Today we thought it would be nice to have expressions in a a textfield (slider input-field for instance) so the user can use some simple math to enter a value.
So i looked around Juce and found your wonderful Expression class.
Just wanted to say thanx! :wink:
Jules, did you write that all yourself btw, seems like some hardcore parsing.


#2

Thanks, glad that you appreciate it!

Writing a parser isn’t as hard as it looks, and is probably one of those things that every programmer should do at least once. (Took me a few attempts before I hit on the right evaluation algorithm though, as I needed the class to be able to handle scoped variable names, and that makes it really quite tricky!)


#3

Well if i find a good reason to write my own parser i’ll give it a try.
Anyway, any reason why components like the Slider for instance don’t use the Expression class when trying to convert the value the user entered.
I just overrode (is that proper english, sounds sill) Slider::getValueFromText and pass the text entered to the Expression to evaluate it. Simple enough, but because it’s such a powerful feature it could be easily set to be the default behaviour for these kind of controls.


#4

I guess it could use expressions for that, I just never really expected anyone to type that kind of thing into the box - maybe your users are a bit more mathematically minded!


#5

We thought of this feature because you can do the same in OSX’s spotlight. You can use it to search but also todo quick calculations.
press CMD+Space and start typing your expression, it’s a powerful feature. Once you know it’s there you’ll use it all the time.