I was wondering if there were any resources that explain concepts/theory behind GUI development. I don't mean a resource that explains how to use a GUI library, but rather how to create your own widgets. For example a resource that explains different methods on how to implement scrollable listboxes.
I ask because I have an idea for a game tool where I would like to create my own widgets and let users drag and drop them onto some kind of form.
How do GUI libraries usually draw widgets?
I'm not sure if reskinning widgets from a GUI library fits my needs, since widget behavior needs to be dynamic based on user interaction.