Sounds horrible -- sounds like you want to write your own geometry manager but are reluctant to do it :) every action creates an event, and if there are handlers (callbacks, subroutines ) bound to that even (
or invoke the callback directly, whatever you need to do -- gui loops, they're just state machines that push messages on a que