@jreidinger  I thought it was easier to understand to have a base class to extend, instead of to define.
But yes it could be easier for bindings that don't have to "cast" the base class to get createXXX methods availables. I have to check if undefined symbols are admitted in yui though.

Anyway (if possible) if i remove this file and change YEsternalWidget comment to:
"It is up to user defining YExternalWidgetFactory to add createXY() methods in 
  his/her implementation. So once YExternalWidgetFactory is defined with 
  all the createXY() abstracted methods, three specific sub-plugins must be defined to extend it, 
  one for each supported graphical environment, e.g. Gtk, ncurses and QT, following the
  libyui implementation rules."
Sounds better? If so I will test it tonight and commit once it's ok.
Thanks, 
Angelo