allow panel to repaint/show with children

The code for repainting/showing with children was commented out, and
seemed to have brought about arguments. Now we are putting the
commented-out code into a new function, letting it coexist with the old
code.
fix repaint/show functions for spinbox

Spinbox's gd is not used, so we should pass the messages down to its
internal sub-widgets.
tab skeleton

May not compile. Meaningless even if it compiles.
put tab_pages into separate file

As tab_page looks like another kind of widget with its own init and exit
functions(but is not actually a typical widget), putting it into another
pair of files would make things more clear.
trivial commit for tab widget

Start to use tab_page.h.
use panel in tab

Not compiling, not working.
tab development commit
tab page manages title bounds itself

Also the sub-widgets of tab page don't need to be expressly saved in a
list, but simply linked down in the object tree. This also simplifies
the switching among tab pages.
finish basic functions of tab widget

Also adding it to compiling system.
add a sample program for tab widget

Tab widget is not finished yet, but it can correctly display the initial
arrangement. Next step is to build up the page-switching callback
functions.
switching between tab pages
fix tab page header inconsistency

The header buttons didn't appear pressed at program start, and when
repainted they also recovered to the released state because we didn't
catch the repaint signal.

The solution for the first problem (at program start) is not a very good
one, which simply sets the first page header pressed. There may be a
better one.