Feature Requests item #1588343, was opened at 2006-10-31 17:40
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=352439&aid=1588343&group_id=2439

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Scintilla
Group: None
Status: Open
Priority: 5
Private: No
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Nobody/Anonymous (nobody)
Summary: Provide an option for separate scrollbar controls on Windows

Initial Comment:
The MS Windows version of the Scintilla control 
uses "window" scrollbars - that is, the automatic 
scrollbars that any window can have, via the 
WS_VSCROLL | WS_HSCROLL styles.  It would be nice if 
there were an option to tell the control to use 
separate scrollbar controls instead.

Here's why: a window's automatic scrollbars can't be 
customized in any way, whereas explicit, separate 
scrollbars can be.  The particular situation I'm 
dealing with is that I need to be able to resize the 
scrollbars slightly, so that they don't take up the 
full height/width of the window.  I need to insert an 
extra control at one end of the scrollbar - in this 
case a splitter control, but there are other times 
when it's useful to be able to insert an extra 
control along the scrollbar perimeter.

I'm attaching a copy of win32/ScintillaWin.cxx with 
what I think are the necessary changes.  It works as 
follows: if the Scintilla window is created *with* 
the WS_VSCROLL | WS_HSCROLL styles, everything works 
as normal, with the standard window scrollbars.  But 
if the window is created *without* those styles, the 
Scintilla window creates separate scrollbar and size-
grip controls.  Wherever the window scrollbars are 
mentioned in the code, I've made the necessary 
changes to manipulate the automatic or separate 
scrollbars as appropriate.  In addition, 
GetClientRectangle() subtracts out the space used by 
the separate scrollbars if necessary.

There are two things I'm concerned about in my 
implementation that might merit further work.

First, there's no provision for the scrollbars 
becoming invisible; I use SIF_DISABLENOSCROLL 
instead, to disable the scrollbars if the range makes 
them unnecessary.  This is slightly different from 
the standard behavior, but actually more consistent 
with current Win UI guidelines.

Second, more importantly, I'm not sure about my 
strategy of using the *absence* of WS_VSCROLL | 
WS_HSCROLL to activate this mode.  It's conceivable 
that some existing code intentionally omits these 
style bits because it explicitly wants no scrollbars 
to be shown.  It would probably be better to define a 
new style flag special to the Scintilla control - 
SCIS_SEPARATE_SCROLLBARS, say - that activates this 
mode explicitly.  I think this would have to be via a 
style bit rather than, say, a new SCI_xxx messages, 
since otherwise the automatic window scrollbars would 
probably be configured already by the time the new 
SCI_xxx message could be sent.


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=352439&aid=1588343&group_id=2439
_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest

Reply via email to