Moving object using axis just like working in UE4 editor? Can I use the engine's axis mesh object? Desired for help!

Hello,I am a c++ coder and now I have to achieve the following functions.Function 1 : User can select object in the scene with left mouse button clicked. Function 2 : When the object has been selected, a axis actor will be spawned in the actor’s pivot point. Function 3 : User can move the selected object by drag and drop the axis’s X or Y or Z arrow.

You can see all the functions is same like the UE4Editor does but how can I do that in my project? What the best solution? Are there any open source project which I can referenced?

Your advise are very appreciated! Thanks !