Moving the selection with arrow keys
I've implemented the ability to move the currently selected cell with the arrow keys.
I was missing this feature, and enjoy it immensely now that it is there. The way it works, however, might be a bit odd at times: Moving a selection sideways will move the selection to the next column, so it will zigzag along (SE->NE-SE and so on). This is fine, but the zigzag will be opposite in the row above or below and may cause confusion. When a selection moves outside the bounds of the honeycomb, it will continue on the next/previous row, which I think is fine.
Originally I wanted it to move the selected cell 2 columns at a time (in scale), but that wont let you move easily to rows above or below. My suggestion is to use a key modifier to move in scale, and else move zigzag, or the other way around.
The purpose of this post is to hear if any other people are missing this feature, and to let Matt know I've been tinkering with it. I've implemented this in ELLayerWindowController, but perhaps this should be handled by the LMHoneycombView itself?
http://github.com/runeb/elysium/commi...
I was missing this feature, and enjoy it immensely now that it is there. The way it works, however, might be a bit odd at times: Moving a selection sideways will move the selection to the next column, so it will zigzag along (SE->NE-SE and so on). This is fine, but the zigzag will be opposite in the row above or below and may cause confusion. When a selection moves outside the bounds of the honeycomb, it will continue on the next/previous row, which I think is fine.
Originally I wanted it to move the selected cell 2 columns at a time (in scale), but that wont let you move easily to rows above or below. My suggestion is to use a key modifier to move in scale, and else move zigzag, or the other way around.
The purpose of this post is to hear if any other people are missing this feature, and to let Matt know I've been tinkering with it. I've implemented this in ELLayerWindowController, but perhaps this should be handled by the LMHoneycombView itself?
http://github.com/runeb/elysium/commi...
1
person likes this idea
I like this idea!
Tell me when this idea gets some attention.
The more people who like this idea, the more it gets noticed.
The more people who like this idea, the more it gets noticed.
The company implemented this idea.
Create a customer community for your own organization
Plans starting at $19/month
-
Inappropriate?Hey Rune.
Excellent, I was hoping you'd get in touch. I have your patch in an integration branch and am ready to apply it or some variant of it.
You specifically don't use the neighbor relations and have some slightly complex logic about selecting adjoining hexes based on the lattice properties. Can you tell me why you choose to do it this way?
I've been somewhat distracted lately with my new project Rytme but I will be coming back to Elysium in the near future to try and make the final push to 1.0 but I'll try and put your patch into an interim release next week.
Thanks for contributing!
m/
I’m thankful
-
Inappropriate?Hey Matt,
the reason I didnt use the neighbour relations was that incrementing or decrementing the column (in horizontal movement) was alot easier than keeping track of SE, NE, SW, NW directions (in zigzag). Basically it was easier dealing with it in terms of horizontal and vertical movement, which is what I wanted.
I also found that adding or subtracting to row value would automatically wrap to the next or previous column when the bounds of the current column was reached (in vertical movement), whereas the N neighbor of a cell at the top of a column, or S neighbor of a cell at the bottom of a column is nil.
And of course the behavior of moving off the bounds of the matrix itself seemed easier to deal with when you think of the system as X-Y coordinates.
There might be some better way of dealing with it, but I don't know the structure and code as well as you do. Feel free to tweak it any way you see fit! I just did what worked for me.
Thanks by the way, for an excellent application! Stellar work, and all kinds of wild praise to you for going open source. I'll be looking for ways to contribute in the future, as Elysium is something I both use and love.
Actually, I'll be using Elysium live for a concert in late May. Hopefully I'll be able to put some of it online.
Excited to see Rytme. Reminds me of this: http://www.youtube.com/watch?v=L82J1o...
I’m thankful
-
Inappropriate?All good reasons although I may look at this as an opportunity to rethink how the code works now to simplify this kind of interaction.
If I read you right then you essentially treat moving left & right as following a "row" in the lattice so, alternately, taking the upper and lower neighbor in a direction. That's naturally how I thought about the problem as well.
To hit the other neighbor then requires, for example, to move left & up. Another possibility (that I think you mentioned) is to have a modifier key that would select the other sideways neighbor. I'm not clear whether that would be practically learnable and would err on the side of using two movements to begin with.
I'm glad you're enjoying using Elysium, it's given me a lot of pleasure to build and play with although I confess that I've spent more time building lately. If you've got an public tracks made using it I'd love to hear them.
I'm really thrilled to hear you're going to use it live. That's awesome!
m/
I’m happy
-
Inappropriate?Yeah, well, the alternations of upper/lower neighbor happen automatically because of the way the columns are offset by one half cell from one another. I just go to the same row in the next column. Add 1 to column to go right, subtract 1 to go left.
My suggestion with modifier keys was this:
Right arrow jumps two columns to the right in same row (E->F->F#->G...), and if you need the NE/SE of any of these, use a modifier. Thats what makes most sense to me when using the arrow keys anyways. The numpad would provide the needed keys to move any direction you want, but I use Elysium on laptops.
The best way to figure out how this should work, I think, is to just experiment with it.
I’m happy
-
Inappropriate?Somewhat belatedly you'll notice that your patch is now in master.
Since I've hit a block with Rytme and am going to have to spend some time reworking I'm going to do some tidying up on Elysium and put out another release.
Having had a quick play with it I am happy with how your patch works.
Thanks again for sending it in, I'm sure a lot of other people will find it useful to be able to navigate using the keyboard.
m/
I’m thankful
Loading Profile...



EMPLOYEE