[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference bulova::decw_jan-89_to_nov-90

Title:DECWINDOWS 26-JAN-89 to 29-NOV-90
Notice:See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit
Moderator:STAR::VATNE
Created:Mon Oct 30 1989
Last Modified:Mon Dec 31 1990
Last Successful Update:Fri Jun 06 1997
Number of topics:3726
Total number of notes:19516

2339.0. "User Defined Widget Question" by FREZEN::PROJECTS () Thu Feb 22 1990 19:05

	Can you tell me what determines the triggering of the Redisplay
	routine? I know this can be set up by enter/leave widget events.

	What I am really wondering is if SetValues is called thru XtSetValues
	what will determine the next call to Redisplay. It is already
	embedded in decwindows to call Redisplay if SetValues is called?


	Much Appreciated
T.RTitleUserPersonal
Name
DateLines
2339.1CSCOA3::HOOD_DOThu Feb 22 1990 19:3312
    Someone correct me if I am wrong....
    
    The setvalues method should return a value , true or false, which will 
    trigger an Xlib routine that generates an Expose event. Expose events
    trigger the redisplay method. If (in your setvalues method) you set a
    value that does not require the widget to be redrawn, you should return
    false. If you set a value that requires the widget to be redrawn
    (except for width/height changes), your setvalues method should return
    a true.
    
    Doug
    
2339.2But there's always a "gotcha"DECWIN::KLEINThu Feb 22 1990 20:4122
Reply .1 is correct I believe.  I don't know what prompted the original
question, but perhaps this tidbit is also relevant:

There is a bug in DECwindows (V2 at least, probably also V1)
that affects widgets that are children of a constraint widget that is
a subclass of Dialog.  This includes ADBs and dialog boxes as the most common.

The bug is that if the positioning units of the dialog box widget is FontUnits
(rather than PixelUnits), then the constraint SetValues routine for the dialog
box widget class is blindly setting the redisplay flag whether or not child
actually needs to be redisplayed.

The end result of this is that regardless of the value returned by the
child widget's SetValue routine, if it is a child of a dialog box or
ADB that has FontUnit positioning (the default), then ANY SetValues call
to that child widget causes it to be redisplayed.

I have reported this and understand that it will be fixed in DECwindows V2.1
but I don't know that for a fact.  In the meantime, I use PixelUnit positioning
(and sigh a lot).

-steve-
2339.3User Defined Widget QuestionFREZEN::PROJECTSThu Feb 22 1990 22:5012
	Thanx guys for the consideration....

	If my SetValues procedure is hardcoded to return TRUE all the
	time will an expose event be generated to invoke the sub classes
	redisplay?

	I'm trying to figure if the data I send to redisplay is corrupted
	or if I am losing expose events somewhere.


	Thanx
2339.4You seem to have the facts rightDECWIN::KLEINFri Feb 23 1990 15:039
>	If my SetValues procedure is hardcoded to return TRUE all the
>	time will an expose event be generated to invoke the sub classes
>	redisplay?

This is true.

Try setting some breakpoints?

-steve-