Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

scrollbar position range

btroyer
Beginner
1,086 Views
Hi -
I am using XFT (and LOVE IT) with CVF I would like to plot a small portion of a large data set and use a scroll bar. this is working OK till I get into a very large data set 72000 points... then I can' use the mouse to move the scroll box past about half way, but I can if I click in the high end of the scroll window or the up arrow. what are the work arounds??

Thanks
Bill
0 Kudos
8 Replies
Jugoslav_Dujic
Valued Contributor II
1,086 Views
Hello Bill,
Support for XFT is on my e-mail address, not on the Forum :-). You can drop me a compilable workspace and I'll take a look. Sounds like a 16-bit limitation somewhere.

Jugoslav
0 Kudos
btroyer
Beginner
1,086 Views
Hi all -

Jugoslav is just amazing!! Sent sample code and with in an hour he had it fixed - and it was a "limitation" (BUG) from CVF in the DFLOGM.F90 code.

Bill
0 Kudos
Intel_C_Intel
Employee
1,086 Views
Jugoslav,

The WM_HSCROLL, WM_VSCROLL message use only the high-order word of wParam to pass in the scroll position, so the position is limited to 65,535. To get a higher resolution position call GetScrollInfo().

John
0 Kudos
Jugoslav_Dujic
Valued Contributor II
1,086 Views
Yeah John, that was it. Btw, I drop an eye on the latest DFLOGM and it looks to me (didn't pass through the debugger) that the limit there will actually be 32768, since INTEGER(2) intermediate variable is used. A fix will be welcome :-).

Jugoslav
0 Kudos
Steven_L_Intel1
Employee
1,086 Views
Jugoslav, what are you looking at? I don't see any INTEGER(2) variables being used...

Steve
0 Kudos
Jugoslav_Dujic
Valued Contributor II
1,086 Views
...because it isn't INTEGER(2), but an INTEGER*2 ;-)
	! WM_?SCROLL: 
	else if (msg .eq. WM_HSCROLL .or. msg .eq. WM_VSCROLL) then
        !will overflow when hiword(wparam>=32768):
	  int_2 = iand(ishft(wparam,-16), 16#ffff)
	  call DlgWmScroll( dlg, lparam, iand(wparam, 16#ffff), int(int_2) )
Jugoslav
0 Kudos
Jugoslav_Dujic
Valued Contributor II
1,086 Views
...and if someone's at it, here's another bug in DFLOGM.f90 (it would be exposed in exotic situations, but...):
  subroutine DlgSetTitle( dlg, title )
!DEC$ ATTRIBUTES DEFAULT :: DlgSetChar


Jugoslav
0 Kudos
Steven_L_Intel1
Employee
1,086 Views
I see I was looking in the wrong routine. That does look a bit suspicious - probably should be ZEXT rather than INT. Thanks.

Steve
0 Kudos
Reply