Orange's graphical user interface revolves around data mining components called widgets and visual programming as a tool to assemble the widgets into applications and use them (in any way and combination you require) for explorative data analysis.
We have spent much time writing many widgets in the past several years. While we really like widgets, and we even like programming them (as having a nice visual component of your own can be really rewarding), we also got a bit lazy. Being lazy is intrinsic to any human, so we aimed at minimizing our effort (e.g., fewest lines possible) while maximizing the outcome (building some nice widgets fast). To do this, we have set up the environment (base widget class) and several libraries to please us, the developers. If you are about to start writing your own widgets, or are just interested how we do it, the following documentation should get you started.
You can also download code and icons from the tutorial. To learn where to put Python files and icons, read Getting Started.