Guess what? I've been doing coding to allow for a nice UI for just that sort of thing!
So we will need to coordinate on getting what you're working on playing nice with the tablet stuff I'm working on.
As far as widgets go, there are a few already. I added some based on GTK+ Actions so that they will flow from toolbar to overflow menu, etc. One example to look at is the "mode" on the tweak tool sub toolbar. Another is "Close gaps" on the paint bucket sub toolbar. In toolbox.cpp look for
EgeSelectOneAction* act = ege_select_one_action_new( "TweakModeAction", _("Mode"), (""), NULL, GTK_TREE_MODEL(model) );
and
EgeSelectOneAction* act2 = ege_select_one_action_new( "AutoGapAction", _("Close gaps"), (""), NULL, GTK_TREE_MODEL(model) );
Look at ege-select-one-action.h and the uses in the codebase of ege_select_one_action(). To flip from a set of side-by-side buttons to a single drop-down, a call to ege_select_one_action_set_appearance() is made feeding it "full, "compact", or "minimal".
As long as the settings are based on named actions, we will be able to use dynamic config and allow users to place things wherever they want on the toolbars and menus. :-)