Create Enum to store last used Transform and Axis constraints

I’m trying to create an Addon operator to invoke the last used transform while also retaining the last used axis constraints. So that, if I’m adjusting a bunch of vertices in a mesh only in the local z axis, I wouldn’t have to hit ‘g’ and then ‘z’ twice every time before moving every vertex. I could just set my Middle Mouse Button to my “use_last_transform” operator and keep moving things right after selecting them.

I already have a faster setup in which I use pie menus for each transform tool (translate, rotate, scale) and in each pie menu there are all the possible axis combinations. So when I press ‘W’, the translate pie menu appears and I slide the mouse towards the axis (or plane) I want to move in. But it is still a drag having to press ‘W’ and move the mouse for each single component I want to move.

I understand that the transform operators are written in C, which is beyond my hacking capabilities. Therefore I though of a workaround to keep everything in Python:

To do so I would create a EnumProperty to store all possible transform and axis constraint combinations
which are:

translate: X , Y , Z , XY, XZ, YZ and View (which is no constraint)
rotate: X , Y , Z , XY, XZ, YZ and View
resize: X , Y , Z , XY, XZ, YZ and View

So, to better explain my strategy, here are all the necessary steps to get things going:

FIRST - create a EnumProperty called ‘last_used_transform’ with its members being all the combinations of transforms and axis constraints, something like: (‘TRANSLATE_X’, ‘TRANSLATE_Y’ … ‘TRANSLATE_VIEW’, ‘ROTATE_X’, ‘ROTATE_Y’ … ‘RESIZE_YZ’, ‘RESIZE_VIEW’) with 21 elements in total

SECOND - Instead of using the standard transforms, I would create a BUNCH of simple custom operators to substitute the standard ones and put THOSE in my pie menus. Each custom operator would contain:

1 - A call to the standard transform function with the desired axis combination.
2 - A command to set the ‘last_used_transform’ Enum to the member that corresponds to that axis combination.

With that done, every time I used a transform operator via the pie menu, I would be using one of the custom ones, which in turn would set the ‘last_used_transform’ Enum to a different value.

THIRD - Create the final operator (to be used with the Middle Mouse Button) which would contain a dictionary mapping with each Enum member paired with a version of the transform operator with the corresponding arguments for axis constraint. So when the operator runs, it checks the value of the Enum and executes the corresponding transform command.

The problem here is that I’m stuck right at the beginning. I’ve managed to create the Enum Property and place it in But I can’t figure out how to change the Enum from, say, {‘TRANSLATE_X’} to {‘ROTATE_YZ’}.

If you guys could put me on the right direction or suggest a better strategy, that’d be great!
That’s it… I’m so sorry for the long post