On Tue, Aug 6, 2013 at 7:03 PM, Александр Соколов <[email protected]> wrote: > Hello everyone! > > I want to discuss an algorithm of panel resizing. > > How it works now: > Imagine a vertical panel with two plug-ins - clock and a quicklaunch. The > clock has format "Do not show date". The panel has following settings: "Line > size" - 10 and "Rows count" - 1. > In result the panel is thin. > http://i.imgur.com/A3puMru.png > > Now let's change the clock format to "Show date after time" > http://i.imgur.com/4XKHhFw.png > As you can see the panel is wide. The clock plugin set a minimum width so > that would place the text whole. > > Advantages: > * At any size of the line, user sees the all contents of the plugin, not > only its part. > > Disadvantages: > * The behavior of the panel isn't intuitive. We constantly have issues > like "Line size "can be set to 10px but the value is not accepted" > https://github.com/Razor-qt/razor-qt/issues/564 > * This approach requires a complex code of the panel. > * Requires additional code from the plugin authors, not much, but the > code is not always obvious. > * There is always a chance that don't neatly written plug-ins "break" > the panel. > * I have some unresolved problem with the taskbar. > > > Another approach - does not take into account the sizeHint of plugins. The > panel always has the size LineSize*RowsCount. And plugins adjusts your size > by panel. The plugin can scale content for example decrease font size in > date. > > Long time I championed the first algorithm, but now I'm inclined to the > second. What do you think? Which approach is better? Any opinions are > welcome, from the developers, and from the users too. > > -- > Best regards, > Alexander.
I got hit by totally the same problem when I tried to do lxpanel in the past. What we did it, change the orientation of the label, so it can be shown rotated and the panel remains thin. Of course, this is ugly and the label became less readable. This, however, is the only way to make the panel thin and make the content visible at the same time. Just tried Windows and it has exactly the same problem. When you make the panel vertical, the date string determines the total thickness of the panel. IMHO, it's better to let the applets determine how important their contents are. If the applet claim that its content can shrink, then its size is determined by the panel, and the applet scale its content to adopt the new size. Otherwise, if an applet claim that it's not resizable at all, then the panel respect its special needs. This kind of claim can be done with a flag which can be set on an applet. By default, the panel manage the size and ask the child applets to resize their content to fit the panel, but if some applets ask for a minimal size explicitly, the panel respect them and do not try to shrink them. The applet can also expose a flag telling the panel whether it can accept a vertical orientation or not. If its content can be rotated and it supports vertical orientation, then the panel can make the applet vertical and remains thin. This, however, will make developing applet significantly more difficult. ------------------------------------------------------------------------------ Get your SQL database under version control now! Version control is standard for application code, but databases havent caught up. So what steps can you take to put your SQL databases under version control? Why should you start doing it? Read more to find out. http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk _______________________________________________ Lxde-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/lxde-list
