Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!bloom-beacon!husc6!rice!sun-spots-request From: mrs@philabs.philips.com (don't know) Newsgroups: comp.sys.sun Subject: SunView questions Keywords: Windows Message-ID: <50597@philabs.Philips.Com> Date: 8 May 89 19:01:05 GMT Sender: usenet@rice.edu Organization: Philips Laboratories, Briarcliff Manor, NY Lines: 93 Approved: Sun-Spots@rice.edu Original-Date: 22 Apr 89 16:18:08 GMT X-Sun-Spots-Digest: Volume 7, Issue 276, message 13 of 18 I have a number of questions with respect to SunView that I've been saving up. I would appreciate the net's help in answering them. 1) When I run lint on some files that use SunView's variable argument list, I get the following message: pass 2 error:(file interface.c) more than 59 args? Q1) How do I get lint to work with long argument lists. Currently I use a "#ifndef lint .. #endif" construct. 2) Whenever I use a SunView function such as data = (Structure *) window_get(panel, WIN_CLIENT_DATA,0); Lint reports an error message such as: interface.c(153): warning: possible pointer alignment problem Q2) How do I get lint to shut-up about such constructs. 3) I'm attempting to use "window_loop()/window_return()" functions to implement a blocking popup. Unfortunately, and as stated in the SunView manual, window_loop() will not work with subframes composed of more then one type of window. In my specific case I have a frame that encloses a canvas and a panel subwindow. The frame does block; however, only the first sub-window defined is shown and I can't interact with the other subwindow. Q3) Is it possible to use SunView blocking pop-ups that have more than one subwindow? 4) My application generates a number of pop-up panels that the user can display and interact with at any time. However, there is a practical limit to the number of windows that can be simultaneously open. Q4) How does one determine if the next window_create() call can open a window, since window_create() never returns with an error status because SunView bombs internally. 5) I have a problem with the following minimal code construct: my_menu = menu_create( MENU_ITEM, MENU_STRING, "String1", MENU_ACTION_PROC, dispatch_menu_command, MENU_CLIENT_DATA, COMMAND_1, 0, MENU_ITEM, MENU_STRING, "String2", MENU_ACTION_PROC, dispatch_menu_command, MENU_CLIENT_DATA, COMMAND_2, 0, MENU_GEN_PROC, init_menu, 0); Menu init_menu(menu,op) Menu menu; Menu_generate op; { Menu_item menu_item; if (op != MENU_DISPLAY) return(menu); #ifdef THIS_WORKS menu_item = (Menu_item) menu_get(menu, MENU_NTH_ITEM, 1, 0); #else menu_item = (Menu_item) menu_find(menu, MENU_CLIENT_DATA, COMMAND1, 0); #endif /* * code to do something with the menu_item. */ return(menu); } Q5) What happens is that the menu_find call also recursively calls the menu's generate procedure, so the program goes into an infinite loop, repeatedly calling the function "init_menu". If, as shown above, I "#define THIS_WORKS" the program performs as expected. However, I want the menu_items to be position independent, and they will be uniquely identifiable by MENU_CLINET_DATA. Is this a feature of SunView or have I missed something? Mark R. Simpson (914) 945-6163 Philips Laboratories uunet!philabs!mrs North American Philips Corporation or Briarcliff Manor, NY 10510 mrs@philabs.philips.com