Herbert Thoma writes:
 > Rob Walker wrote:
 > > 
 > > >>>>> On Wed, 08 Mar 2000 10:38:08 +0100, Herbert Thoma
 > > >>>>> <[EMAIL PROTECTED]> said:
 > > 
 > > Herbert> Rob Walker wrote:
 > > 
 > > >> Does this mean that I think the register window should only shrink
 > > >> and not grow according to resizing the columns?  I think so, yes.
 > > 
 > > Herbert> I don't agree. I like the register window to shrink and to
 > > Herbert> grow.  So I think the standard answer is: Make it a
 > > Herbert> configurable option.
 > > 
 > > If it should grow automatically, why is there a scrollbar at the
 > > bottom?  Only for the times when we resize it down by hand?  But if
 > > someone touches _any_ of the column widths, the entire register window
 > > will careen back to the big size again.
 > 
 > That's a point for you, rob. I think what I really want is an easy way
 > (one click) to show the full width of a register. I just don't like this
 > "click on the window border and drag until you see everything". And I 
 > usually have a register window with the full width open, so I don't need
 > the scrollbar at the bottom anyway.


Perhaps what should happen is something like the following:

+ Have an option "Register always fills window" (suggest a better
name?)  wherein the window size is completely determined by the column
widths, and therefore the window grows/shrinks as the column size
changes, and conversely the column size adjusts as the user resizes
the window.  (Here we may need to set a minimum width on the window
size, or live with the fact that a user may make the window too small
to possibly show the whole register, or that we'll be forced to size
some/many of the columns too small to contain their text.)  When this
option is set, we could dispense with the horizontal scrollbar
altogether.

+  When the "Register fills window" option is not set, we allow the
window to shrink with column resizes, but not grow, and just let the
columns run wild when the user resizes the window.  In this case,
we'd show, and use, the horizontal scrollbar.

Or maybe have two options "Window always shrinks" and "Window always
grows" (again, suggest better names) for the user that wants complete
control.  Setting both has the same effect as my first option above,
unsetting either/both is more or less equivalent to the second option.

The main problem we run into is when the columns are resized really
small and the window is not allowed to shrink that far.  In this case,
we'd get ugly white space on the right.  Another problem is if the
user resizes (or worse, auto-resizes) columns extremely large so that
now the window gets forced off the desktop.  To make things reasonably
consistent, I wonder if we need to enforce certain minimal/maximal
sizes.  This means we do not allow the window to shrink/grow, and
either force the register to fit, or show the horizontal scrollbar in
these extreme cases.

Feel free to comment on this or suggest alternatives.

Finally, keep in mind that the current code is work-in-progress, and
in particular saving/restoring of column size needs to be implemented.
Much of the annoyance currently is that the window first pops up too
small to contain the columns.  Once this is fixed, I would expect the
user to set column widths the very first time, and then, for the most
part, only rarely thereafter.  The other part of the current annoyance
is that window-resizing was a proof-of-concept.  I wasn't at all sure
how to implement it, or whether it would in fact be a viable
preference, so I didn't make any attempt to pretty-fy it.  Does
anybody know of any gnome/gtk apps whose window resizes based
on user actions ?  Things like the gnome control-center don't count
because that actually destroys and recreates some of the internal widgets.

Best Regards,
Heath Martin



--
Gnucash Developer's List 
To unsubscribe send empty email to: [EMAIL PROTECTED]

Reply via email to