title: How to get started on custom GUI widgets
body: <p>I would like to exercise programming software with non-standard graphical interfaces such as the ones in the following images. I know how to create a GUI using basic widgets, but I have no idea on how to create my own custom widgets. I am familiar with GTK 3.0 and Qt. The GTK tutorial, for instance, has a link on how to do custom drawing. I just don't know if this is the usual and correct way to create custom widgets. There's also things such as: selections, mouse handling, zoom, scrolling, animations and so on that tutorials do not teach.</p>
  
  <p>So here is my question: what kind of documentation, keywords, tutorials and algorithms should I look for? For my first project, I would like to start with something similar to the first and second images below. My current knowledge is C/C++ and Qt and GTK, but I can learn new languages and tools if necessary.</p>
  
  <ul>
  <li><a href="http://hobby-electrons.sourceforge.net/tutorials/gEDA/simple-schematic-in-gschem.png" rel="nofollow">http://hobby-electrons.sourceforge.net/tutorials/gEDA/simple-schematic-in-gschem.png</a></li>
  <li><a href="http://www.cburch.com/logisim/docs/2.7/pt/html/images/screen-shot.png" rel="nofollow">http://www.cburch.com/logisim/docs/2.7/pt/html/images/screen-shot.png</a></li>
  <li><a href="http://eeweb.poly.edu/labs/nanovlsi/tutorials/soctutorials/figures/ENCFinalDesign.gif" rel="nofollow">http://eeweb.poly.edu/labs/nanovlsi/tutorials/soctutorials/figures/ENCFinalDesign.gif</a></li>
  <li><a href="http://www.ccm.ece.vt.edu:8088/etextiles/projects/arch_images/simulation.jpg" rel="nofollow">http://www.ccm.ece.vt.edu:8088/etextiles/projects/arch_images/simulation.jpg</a></li>
  <li><a href="http://j-algo.binaervarianz.de/images/avl_avltest.png" rel="nofollow">http://j-algo.binaervarianz.de/images/avl_avltest.png</a></li>
  </ul>