Do not construct GUI frame nor enter the main gui loop if in commandline mode.
Overload comma operator to take arguments by value so that temporaries may be passed in. This causes a lot of copying and should be optimized to pass by reference in the future.
If no selection, return NULL.