|
From: Joe E. <jen...@fl...> - 2005-03-01 03:51:35
|
Long-winded, half-thought-out rationale for why the ttk::progressbar currently works the way it does: As mentioned before, from the program's POV there seem to be three main modes of operation: "determinate", "indeterminate", and "autoincrement". The difference between the latter two is that "indeterminate" mode can show how fast something is going, where with "autoincrement" mode you just want to make something move on the screen at a steady rate until the operation completes. On the user feedback side, there are many different variations; "thermometer" mode, "barberpole" mode, and "cylon" mode are the main ones. OSX adds another twist in that there is additional animation even in "thermometer" mode (this is what the ttk::progressbar -phase option is there for). Sometimes a progress bar isn't a bar at all -- many OSX programs use a spinning "asynchronous progress indicator" or "chasing arrows" when space is tight. Web browsers often use animated throbbers that also serve a branding function (e.g., the throbbing Netscape/MSIE/Mozilla/Firefox logo in the upper right corner). Many Windows applications use simple animations like the "copying files" or "moving to trash" dialogs. Animations and branded throbbers aside, Windows applications tend to use "cylon" feedback for both indeterminate and autoincrement modes, and never use "barberpole" feedback. OSX apps on the other hand don't seem to use "cylon" feedback at all; from what I've seen they only use "thermometer" and constant-rate "barberpole" feedback (at least in bar-shaped progress bars). So: in keeping with the idea of separating function from appearance, the ttk::progressbar implementation leaves it up to the theme whether to use "cylon" or "barberpole" feedback. It bounces the "*.pbar" element (if present) back and forth based on the current -value for cylons, and it autoincrements the -phase option for barberpoles and auxilliary animation. All of the current themes use cylon feedback for both indeterminate and autoincrement modes, except for the Aqua theme, which uses barberpole feedback for both, and the step theme, which uses a bizarre combination of both -- not because it should, but because it can. (Actually this is mostly because I needed a way to check if -phase updates were working correctly...) --Joe English jen...@fl... |