SunView tricks needed: background to a panel
    Neil Hunt 
    neil at teleos.com
       
    Fri May 12 13:32:09 AEST 1989
    
    
  
This seems to work for me;  get the panel items painted
before you paint your own custom background by calling
notify_next_event_func from your event func handler;
The example below simply puts a box around a number of items
in the panel to group them together visually.
Notify_value
bg_paint(panel, event, arg, type)
Panel panel;
Event *event;
Notify_arg arg;
Notify_event type;
{
	Pixwin *pw;
	Notify_value value;
	/*
	 * Call the normal notify_event handler.
	 */
	value = notify_next_event_func(panel, event, arg, type);
	if(event_id(event) != WIN_REPAINT)
		return value;
	/*
	 * Add additional repainting actions.
	 */
	pw = (Pixwin *)window_get(panel, WIN_PIXWIN);
	pw_rect(pw, S_X, S_Y, S_W, S_H, 1, PIX_SRC, -1);
	return value;
}
Frame
create_frame()
{
	Frame frame;
	Panel panel;
	frame = window_create(
	  ...
	  WIN_WIDTH, E_W+10+10,
	  WIN_HEIGHT, E_Y+E_H+5+20,
	  0);
	if(frame == NILFRAME)
		return NILFRAME;
	panel = panel_create(frame,
	  ...
	  WIN_WIDTH, E_W+10,
	  WIN_HEIGHT, E_Y+E_H+5,
	  0);
	notify_interpose_event_func(panel, bg_paint, NOTIFY_SAFE);
	return frame;
}
Neil/.
    
    
More information about the Comp.sys.sun
mailing list