[comp.sys.sun] Sunview programming questions

ESC1298@ESOC.BITNET (Danielle Heinzer) (11/24/89)

Hi, SunView specialist

o I would like to render the fact that a window has the keyboard focus
more visible. Actually the frame border is highlighted and the window
cursor is also highlighted. But it is not enough for our application.  I
asked hotline if it is possible to make the frame border brighter, the
answer is no. Do you have any suggestion?

o I drawed an icon with iconedit, and I use it as icon for my sunview
application. Now I would like to write dynamically a label on this icon.
But if I do icon_create(ICON_IMAGE, &pixrect, ICON_LABEL, string), the
icon stays black. Do you have any suggestion?

Regards,
Danielle Heinzer
ESA Computer Department/Computer Services
Bitnet : ESC1298@ESOC

peters@udel.edu (05/25/90)

Does anyone out there program in sunview?  If so, I've got questions.

I'm trying to write a package of subroutines that can be called from an
external, previously written, Fortran program.  One would set up a window,
another could change the cursor, etc.

Problem:  how do I keep the window alive and still return control to the
calling program.

If this makes any sense, and if anyone has any suggestions, please email
them to me.  I'll post a summary if there's enough interest.

Thanx,

Shirley Peters                                             peters@udel.edu

venkat@uunet.uu.net (D Venkatrangan) (06/04/90)

In article <8288@brazos.Rice.edu> peters@udel.edu writes:
>
>Problem:  how do I keep the window alive and still return control to the
>calling program.

SunView, like most other windowing environments is "message based".  You
register your functions with window objects when the window objects are
created.  Then, you enter a window loop function which actively examines
user and program events and dispatches them to the proper functions.  In
this sense, the window loop is always in control; you enter the functions
that you registered when the windowing environment thinks that your
functions are to be called.  For e.g.

     base_frame = window_create(NULL, FRAME, 0); /* add other frame attrs */
     panel = window_create(base_frame, PANEL, WIN_X, 0, WIN_Y, 0,
		WIN_WIDTH, WIN_EXTEND_TO_EDGE, 
		WIN_HEIGHT, WIN_EXTEND_TO_EDGE, 0);
     quit_button = panel_create_item(panel, PANEL_BUTTON, 
		PANEL_LABEL_X, 20, PANEL_LABEL_Y, 30,
		PANEL_LABEL_IMAGE, panel_button_image(panel, "Quit", 0, 0),
		PANEL_NOTIFY_PROC, quit_proc,
		0);
     window_main_loop(base_frame);

Here, quit_proc is your function that will be called when user presses the
Quit button.  To build a library in FORTRAN, you need to design a general
way of registering FORTRAN functions with SunView.  A lot of other issues
such as sharing and passing data, pointers to data etc. will have to be
worked out as well.  Good luck!