| [ Return to Bugs & Features | Roadmap 1.3 | Post Text | Post File | Prev | Next ]
STR #2791
Application: | FLTK Library |
Status: | 5 - New |
Priority: | 2 - Low, e.g. a documentation error or undocumented side-effect |
Scope: | 3 - Applies to all machines and operating systems |
Subsystem: | Core Library |
Summary: | Minmum size for tiles in an Fl_Tile |
Version: | 1.3-feature |
Created By: | rwsaustin |
Assigned To: | Unassigned |
Fix Version: | Unassigned |
Update Notification: | |
Trouble Report Files:
[ Post File ]
Trouble Report Comments:
[ Post Text ]
|
#1 | rwsaustin 14:56 Dec 09, 2011 |
| Robert Strickland wrote:
Create an additional parameter to the Fl_Tile constructor and modify functionality to establish a minimum size for tiles. Default could be twice the width of a DOWN_FRAME border (plus perhaps a pixel or two).
The behavior I would like is for each box in the tile to have some minimum size. Currently, when I drag the border to one side or the other, one or more tiles completely disappears. If the user is unfamiliar with the layout, there is absolutely no visible cue that there is a hidden tile lurking against one edge or corner of the drawn border. The poor user has to randomly try to drag borders until the hidden tile appears.
With the requested change, a minimal tile would still be visible as a double border on one edge or a small square a corner.
Metthais Melcher replied:
Fl_Tile has no function to set a minimum tile size. However, I strongly believe that there should be one for exactly the reason you state. Using DOWN_FRAMEs for the tiles give a nice visible and draggable border, so defaulting the minimal tile size to twice the width of the border would keep the visual cue and would make it possible to reconstruct all tiles. | |
|
#2 | rwsaustin 21:34 Dec 10, 2011 |
| File tiletest.cxx is a test of Fl_TileM, inherited from Fl_Tile that sets a minimum threshold for the size of a child tile. This has the effect of displaying a double border along the
Fl_TileM also encapsulates set_cursor() and associated cursor data that were static in the parent Fl_Tile class.
--Robert Strickland | |
|
#3 | rwsaustin 21:15 Dec 13, 2011 |
| Ignore tiletest.cxx. See instead tiletest2.cxx. Class Fl_TileM overrides Fl_Tile and provides a minimum size threshold for windows. A minimum size of 3 pixels shows a nice double border when FL_DOWN_BOX border is used. | |
|
#4 | rwsaustin 21:47 Dec 13, 2011 |
| I tested tiletest2.cxx on fltk1.3.0 on linux. It seems to behave well. I inherited from Fl_Tile primarily to make a self-contained test file that can be compiled with a minimum of dependencies.
Still to do is to get the resize() to display the double border. Also, I need to test a more complicated layout, to make sure dragging one tile into several adjacent tiles works as expected.
For reasons I don't fully understand, I couldn't figure out how to override position() without overriding handle(). I think it is because of the static mouse cursor stuff. I encapsulated this into the class. There are no functional changes to the new handle().
When one tile pushes its neighbor until it is minimal and then pushes all the way to the edge of the container, only one double border is drawn. I think this behavior is acceptable, but one could argue that the entire layout should always be visible. position() calls itself recursively to position the other border of a minimal tile. I need to check this with more complicated layouts. | |
|
#5 | ianmacarthur 13:47 Dec 21, 2011 |
| Note for others: this STR might be tangentially related to STR 2797, where it turns out that if you resize a double window to 0x0 AND are not using XDBE then you can get a segfault from the X11 system... | |
[ Return to Bugs & Features | Post Text | Post File ]
|
| |