PIPS
xv_schoose2.c File Reference
#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <xview/xview.h>
#include <xview/panel.h>
#include <xview/text.h>
#include "genC.h"
#include "misc.h"
#include "wpips.h"
+ Include dependency graph for xv_schoose2.c:

Go to the source code of this file.

Enumerations

enum  { ABBREV_MENU_WITH_TEXT_AFTER_SELECTION = 9841 , ABBREV_MENU_WITH_TEXT_GENERATE_MENU = 1431 }
 Single choice handling. More...
 

Functions

static void schoose_help_notify (Panel_item item, Event *event)
 
static void schoose_ok_notify (Panel_item item, Event *event)
 Cette routine est appelé d'une part lorsqu'on a cliqué sur OK pour valider un nom tapé textuellement, d'autre part lorsqu'on clique sur un choix. More...
 
void schoose_close ()
 schoose_close() can be called even when schoose window is already closed. More...
 
void schoose_cancel_notify (Panel_item item, Event *event)
 
static int schoose_choice_notify (Panel_item item, char *item_string, Xv_opaque client_data, Panel_list_op op, Event *event, int row)
 Function used to update the text panel according to the list panel: More...
 
static void schoose_frame_done_proc (Frame frame)
 Avoid the schoose_frame destruction and act as cancel: More...
 
void schoose (char *title, gen_array_t array, char *initial_choice, void(*function_for_ok)(char *), void(*function_for_cancel)(void))
 
static void schoose_abbrev_menu_with_text_text_notify (Panel_item text_item, Event *event)
 Accept only typed text in the menu list: More...
 
static void abbrev_menu_with_text_menu_notify (Menu menu, Menu_item menu_item)
 The function that calls the real user notifying function: More...
 
static Notify_value abbrev_menu_event_filter_proc (Panel panel, Event *event, Notify_arg arg, Notify_event_type type)
 
Panel_item schoose_create_abbrev_menu_with_text (Panel main_panel, char *label_string, int value_display_length, int x, int y, Menu(*generate_menu)(void), void(*after_selection)(char *))
 Create an abbreviation menu attached with a text item. More...
 
void create_schoose_window ()
 

Variables

static Panel_item choice
 
static Panel_item choices
 
static Panel_item ok
 
static Panel_item help
 
static Panel_item cancel
 
static void(* apply_on_choice )(char *)
 
static void(* apply_on_cancel )(void)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Single choice handling.

Difference with previous release: 1/ schoose_close() must be called in order to close the schoose window. 2/ schoose() has one more argument, because cancel button is created. bb 04.06.91

Enumerator
ABBREV_MENU_WITH_TEXT_AFTER_SELECTION 
ABBREV_MENU_WITH_TEXT_GENERATE_MENU 

Definition at line 48 of file xv_schoose2.c.

49 {
52 };
@ ABBREV_MENU_WITH_TEXT_GENERATE_MENU
Definition: xv_schoose2.c:51
@ ABBREV_MENU_WITH_TEXT_AFTER_SELECTION
Definition: xv_schoose2.c:50

Function Documentation

◆ abbrev_menu_event_filter_proc()

static Notify_value abbrev_menu_event_filter_proc ( Panel  panel,
Event *  event,
Notify_arg  arg,
Notify_event_type  type 
)
static

See example p. 675 in the XView Programming Manual:

Find the Panel_item

OK, we clicked on a abbrev_menu_with_text menu:

If there is an old menu, remove it:

Create the new menu:

menu_return_value() seems to be the default MENU_NOTIFY_PROC in XView... Hum, internal details...

Quite strange: with gcc without -static on SunOS4.1.4, this test is never true... :-( Well, remove this micro-optimization and always reinstall the MENU_NOTIFY_PROC:

The new_menu has not attached a notify procedure. Get the one given at creation time of the panel:

Associate the real notify function to the menu too:

Now call the normal event procedure:

Definition at line 268 of file xv_schoose2.c.

272 {
273  Panel_item item;
274  Rect * rect;
275  Menu (* generate_menu)(void);
276 
277  debug_on("WPIPS_DEBUG_LEVEL");
278  debug(9, "abbrev_menu_event_filter_proc", "Entering ...\n");
279 
280  /* See example p. 675 in the XView Programming Manual: */
281  if (event_is_down(event)) {
282  /* Find the Panel_item */
283  PANEL_EACH_ITEM(panel, item)
284  {
285  rect = (Rect *) xv_get(item, XV_RECT);
286  if (rect_includespoint(rect,
287  event->ie_locx,
288  event->ie_locy)) {
289  generate_menu =
290  (Menu (* )()) xv_get(item,
291  XV_KEY_DATA,
293 
294  if (generate_menu != NULL) {
295  /* OK, we clicked on a abbrev_menu_with_text menu: */
296  Menu new_menu;
297  void (* a_menu_notify_procedure)(Menu, Menu_item);
298  /* If there is an old menu, remove it: */
299  Menu old_menu = (Menu) xv_get(item, PANEL_ITEM_MENU);
300 
301  debug(9, "abbrev_menu_event_filter_proc",
302  "OK, we clicked on a abbrev_menu_with_text menu.\n");
303 
304  if (old_menu != NULL)
305  xv_destroy(old_menu);
306 
307  /* Create the new menu: */
308  new_menu = generate_menu();
309 
310  a_menu_notify_procedure = (void (*)(Menu, Menu_item)) xv_get(new_menu, MENU_NOTIFY_PROC);
311  /* menu_return_value() seems to be the default
312  MENU_NOTIFY_PROC in XView... Hum, internal
313  details... */
314  /* Quite strange: with gcc without -static on
315  SunOS4.1.4, this test is never true... :-( Well,
316  remove this micro-optimization and always
317  reinstall the MENU_NOTIFY_PROC: */
318  /*
319  if (a_menu_notify_procedure == menu_return_value) {
320  */
321  /* The new_menu has not attached a notify
322  procedure. Get the one given at creation time
323  of the panel: */
324  xv_set(new_menu, MENU_NOTIFY_PROC,
326  NULL);
327  debug(9, "abbrev_menu_event_filter_proc",
328  "Attaching abbrev_menu_with_text_menu_notify...\n");
329  /*
330  }
331  */
332 
333 
334  {
335  /* Associate the real notify function to the menu too: */
336  void (* after_selection)(char *);
337 
338  after_selection = (void (*)(char *))
339  xv_get(item,
340  XV_KEY_DATA,
342 
343  xv_set(new_menu,
344  MENU_CLIENT_DATA,
345  after_selection,
346  NULL);
347  }
348  xv_set(item, PANEL_ITEM_MENU, new_menu);
349  }
350  }
351  }
352  PANEL_END_EACH
353  }
354  debug_off();
355 
356  /* Now call the normal event procedure: */
357  return notify_next_event_func(panel, (Notify_event) event, arg, type);
358 }
#define debug_on(env)
Definition: misc-local.h:157
#define debug_off()
Definition: misc-local.h:160
void debug(const int the_expected_debug_level, const char *calling_function_name, const char *a_message_format,...)
ARARGS0.
Definition: debug.c:189
static void abbrev_menu_with_text_menu_notify(Menu menu, Menu_item menu_item)
The function that calls the real user notifying function:
Definition: xv_schoose2.c:250

References ABBREV_MENU_WITH_TEXT_AFTER_SELECTION, ABBREV_MENU_WITH_TEXT_GENERATE_MENU, abbrev_menu_with_text_menu_notify(), debug(), debug_off, and debug_on.

Referenced by schoose_create_abbrev_menu_with_text().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ abbrev_menu_with_text_menu_notify()

static void abbrev_menu_with_text_menu_notify ( Menu  menu,
Menu_item  menu_item 
)
static

The function that calls the real user notifying function:

Definition at line 250 of file xv_schoose2.c.

251 {
252  void (* real_user_notify_function)(char *);
253  char * menu_choice = (char *) xv_get(menu_item, MENU_STRING);
254 
255  debug_on("WPIPS_DEBUG_LEVEL");
256  debug(9, "abbrev_menu_with_text_menu_notify", "Entering...\n");
257 
258  real_user_notify_function =
259  (void (*)(char *)) xv_get(menu, MENU_CLIENT_DATA);
260 
261  real_user_notify_function(menu_choice);
262 
263  debug_off();
264 }

References debug(), debug_off, and debug_on.

Referenced by abbrev_menu_event_filter_proc().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ create_schoose_window()

void create_schoose_window ( )

Avoid the schoose_frame destruction:

Definition at line 414 of file xv_schoose2.c.

415 {
416  schoose_frame = xv_create(main_frame, FRAME,
417  XV_SHOW, FALSE,
418  FRAME_DONE_PROC, hide_window,
419  NULL);
420 
421  schoose_panel = xv_create(schoose_frame, PANEL, NULL);
422 
423  choice = xv_create(schoose_panel, PANEL_TEXT,
424  PANEL_LABEL_STRING, "Current choice",
425  PANEL_VALUE_DISPLAY_LENGTH, 30,
426  PANEL_NOTIFY_PROC, schoose_ok_notify,
427  XV_X, xv_col(schoose_panel, 0),
428  NULL);
429 
430  choices = xv_create(schoose_panel, PANEL_LIST,
431  PANEL_LABEL_STRING, "Available choices",
432  PANEL_LIST_DISPLAY_ROWS, 5,
433  PANEL_NOTIFY_PROC, schoose_choice_notify,
434  PANEL_CHOOSE_ONE, TRUE,
435  XV_X, xv_col(schoose_panel, 0),
436  XV_Y, xv_rows(schoose_panel, 1),
437  NULL);
438 
439  ok = xv_create(schoose_panel, PANEL_BUTTON,
440  PANEL_LABEL_STRING, "OK",
441  PANEL_NOTIFY_PROC, schoose_ok_notify,
442  XV_X, xv_col(schoose_panel, 5),
443  XV_Y, xv_rows(schoose_panel, 5),
444  NULL);
445 
446  cancel = xv_create(schoose_panel, PANEL_BUTTON,
447  PANEL_LABEL_STRING, "Cancel",
448  PANEL_NOTIFY_PROC, schoose_cancel_notify,
449  NULL);
450 
451  help = xv_create(schoose_panel, PANEL_BUTTON,
452  PANEL_LABEL_STRING, "Help",
453  PANEL_NOTIFY_PROC, schoose_help_notify,
454  NULL);
455 
456  (void) xv_set(schoose_panel, PANEL_DEFAULT_ITEM, ok, NULL);
457 
458  window_fit(schoose_panel);
459  window_fit(schoose_frame);
460 
461  /* Avoid the schoose_frame destruction: */
462  xv_set(schoose_frame,
463  FRAME_DONE_PROC, schoose_frame_done_proc,
464  NULL);
465 }
GtkWidget * main_frame
If we are in the Emacs mode, the log_frame is no longer really used:
Definition: gpips.c:60
gint hide_window(GtkWidget *window, GdkEvent *ev __attribute__((unused)), gpointer data __attribute__((unused)))
Definition: gtk_utils.c:89
Frame schoose_frame
Definition: wpips-local.h:38
Panel schoose_panel
Definition: wpips-local.h:50
void schoose_cancel_notify(Panel_item item, Event *event)
Definition: xv_schoose2.c:126
static Panel_item cancel
Definition: xv_schoose2.c:54
static Panel_item help
Definition: xv_schoose2.c:54
static Panel_item choices
Definition: xv_schoose2.c:54
static Panel_item ok
Definition: xv_schoose2.c:54
static Panel_item choice
Definition: xv_schoose2.c:54
static int schoose_choice_notify(Panel_item item, char *item_string, Xv_opaque client_data, Panel_list_op op, Event *event, int row)
Function used to update the text panel according to the list panel:
Definition: xv_schoose2.c:136
static void schoose_ok_notify(Panel_item item, Event *event)
Cette routine est appelé d'une part lorsqu'on a cliqué sur OK pour valider un nom tapé textuellement,...
Definition: xv_schoose2.c:70
static void schoose_help_notify(Panel_item item, Event *event)
Definition: xv_schoose2.c:60
static void schoose_frame_done_proc(Frame frame)
Avoid the schoose_frame destruction and act as cancel:
Definition: xv_schoose2.c:169

References cancel, choice, choices, help, hide_window(), main_frame, ok, schoose_cancel_notify(), schoose_choice_notify(), schoose_frame, schoose_frame_done_proc(), schoose_help_notify(), schoose_ok_notify(), and schoose_panel.

+ Here is the call graph for this function:

◆ schoose()

void schoose ( char *  title,
gen_array_t  array,
char *  initial_choice,
void(*)(char *)  function_for_ok,
void(*)(void)  function_for_cancel 
)

reset the choice set to empty

Delete all the rows, ie nchoices rows from row 0:

Initialise au choix initial ou à défaut le premier :

move the pointer to the center of the query window

Definition at line 177 of file xv_schoose2.c.

182 {
183  int i;
184  int nchoices;
185  int argc = gen_array_nitems(array);
186 
187  apply_on_choice = function_for_ok;
188  apply_on_cancel = function_for_cancel;
189 
190  xv_set(schoose_frame, FRAME_LABEL, title, NULL);
191 
192  /* reset the choice set to empty */
193  nchoices = (int) xv_get(choices, PANEL_LIST_NROWS, 0);
194 
195  /* Delete all the rows, ie nchoices rows from row 0: */
196  xv_set(choices,
197  PANEL_LIST_DELETE_ROWS, 0, nchoices,
198  NULL);
199 
200  for (i = 0; i < argc; i++) {
201  string name = gen_array_item(array, i);
202  xv_set(choices, PANEL_LIST_STRING, i, name, NULL);
203  }
204 
205  /* Initialise au choix initial ou à défaut le premier : */
206  xv_set(choice, PANEL_VALUE, gen_array_item(array, 0), NULL);
207  if (initial_choice != NULL)
208  {
209  for (i = 0; i < argc; i++)
210  {
211  string name = gen_array_item(array, i);
212  if (strcmp(initial_choice, name) == 0) {
213  xv_set(choice, PANEL_VALUE, name, NULL);
214  xv_set(choices, PANEL_LIST_SELECT, i, TRUE, NULL);
215  break;
216  }
217  }
218  }
219 
221  /* move the pointer to the center of the query window */
223 }
void const char const char const int
size_t gen_array_nitems(const gen_array_t a)
Definition: array.c:131
void * gen_array_item(const gen_array_t a, size_t i)
Definition: array.c:143
static entity array
static void(* apply_on_cancel)(void)
Definition: xv_schoose2.c:57
static void(* apply_on_choice)(char *)
Definition: xv_schoose2.c:56
void unhide_window(Frame frame)
map a frame on the screen
Definition: xv_utils.c:55
void pointer_in_center_of_frame(Frame frame)
Centre la souris sur une fene^tre :
Definition: xv_utils.c:64

References apply_on_cancel, apply_on_choice, array, choice, choices, gen_array_item(), gen_array_nitems(), int, pointer_in_center_of_frame(), schoose_frame, and unhide_window().

+ Here is the call graph for this function:

◆ schoose_abbrev_menu_with_text_text_notify()

static void schoose_abbrev_menu_with_text_text_notify ( Panel_item  text_item,
Event *  event 
)
static

Accept only typed text in the menu list:

Parameters
eventint Value, ?

Definition at line 228 of file xv_schoose2.c.

231 {
232  void (* real_user_notify_function)(char *);
233 
234  char * text = (char *) xv_get(text_item, PANEL_VALUE);
235 
236  debug_on("WPIPS_DEBUG_LEVEL");
237  debug(9, "schoose_abbrev_menu_with_text_text_notify", "Entering ...\n");
238 
239  real_user_notify_function =
240  (void (*)(char *)) xv_get(text_item, XV_KEY_DATA,
242  real_user_notify_function(text);
243 
244  debug_off();
245 }

References ABBREV_MENU_WITH_TEXT_AFTER_SELECTION, debug(), debug_off, and debug_on.

Referenced by schoose_create_abbrev_menu_with_text().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ schoose_cancel_notify()

void schoose_cancel_notify ( Panel_item  item,
Event *  event 
)

Definition at line 126 of file xv_schoose2.c.

128 {
129  schoose_close();
130 
131  (*apply_on_cancel)();
132 }
void schoose_close()
schoose_close() can be called even when schoose window is already closed.
Definition: xv_schoose2.c:108

References schoose_close().

Referenced by create_schoose_window().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ schoose_choice_notify()

static int schoose_choice_notify ( Panel_item  item,
char *  item_string,
Xv_opaque  client_data,
Panel_list_op  op,
Event *  event,
int  row 
)
static

Function used to update the text panel according to the list panel:

Avoid deletion and insertion with the edit menu of button 3:

Accept the operation by default:

Definition at line 136 of file xv_schoose2.c.

142 {
143  switch (op) {
144  case PANEL_LIST_OP_SELECT:
145  xv_set(choice,
146  PANEL_VALUE, item_string,
147  NULL);
148  break;
149 
150  /* Avoid deletion and insertion with the edit menu of button 3: */
151  case PANEL_LIST_OP_DELETE:
152  case PANEL_LIST_OP_VALIDATE:
153  return XV_ERROR;
154 
155  case PANEL_LIST_OP_DESELECT:
156  break;
157 
158  default:
159  pips_assert("schoose_choice_notify: unknown operation !", 0);
160  }
161 
162  /* Accept the operation by default: */
163  return XV_OK;
164 }
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
Definition: misc-local.h:172

References choice, and pips_assert.

Referenced by create_schoose_window().

+ Here is the caller graph for this function:

◆ schoose_close()

void schoose_close ( )

schoose_close() can be called even when schoose window is already closed.

Delete all the rows, ie nchoices rows from row 0:

Definition at line 108 of file xv_schoose2.c.

109 {
110  int nchoices;
111 
113 
114  nchoices = (int) xv_get(choices, PANEL_LIST_NROWS, NULL);
115 
116  /* Delete all the rows, ie nchoices rows from row 0: */
117  xv_set(choices,
118  PANEL_LIST_DELETE_ROWS, 0, nchoices,
119  NULL);
120 
121  xv_set(choice, PANEL_VALUE, "", NULL);
122 }

References choice, choices, hide_window(), int, and schoose_frame.

Referenced by schoose_cancel_notify(), and schoose_ok_notify().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ schoose_create_abbrev_menu_with_text()

Panel_item schoose_create_abbrev_menu_with_text ( Panel  main_panel,
char *  label_string,
int  value_display_length,
int  x,
int  y,
Menu(*)(void)  generate_menu,
void(*)(char *)  after_selection 
)

Create an abbreviation menu attached with a text item.

after_selection() is called when a selection is done or a text has been entered. It can be seen as a new widget.

No real menu yet:

Strange, 21 does a Program received signal SIGSEGV, Segmentation fault. 0x1cf988 in attr_check_use_custom ()

PANEL_ITEM_X_GAP, 22,

Definition at line 365 of file xv_schoose2.c.

372 {
373  Panel_item item, text;
374 
375  item = xv_create(main_panel, PANEL_ABBREV_MENU_BUTTON,
376  PANEL_LABEL_STRING, label_string,
377  PANEL_VALUE_DISPLAY_LENGTH, value_display_length,
378  PANEL_LAYOUT, PANEL_HORIZONTAL,
379  PANEL_VALUE_X, x,
380  PANEL_VALUE_Y, y,
381  /* No real menu yet: */
382  PANEL_ITEM_MENU, xv_create(NULL, MENU,
383  MENU_STRINGS, "* none *", NULL,
384  NULL),
385  XV_KEY_DATA, ABBREV_MENU_WITH_TEXT_GENERATE_MENU, generate_menu,
386  XV_KEY_DATA, ABBREV_MENU_WITH_TEXT_AFTER_SELECTION, after_selection,
387 
388  NULL);
389 
390  notify_interpose_event_func(main_panel,
392  NOTIFY_SAFE);
393 
394  text = xv_create(main_panel, PANEL_TEXT,
395  PANEL_VALUE_DISPLAY_LENGTH, value_display_length,
396  PANEL_VALUE_STORED_LENGTH, 128,
397  PANEL_READ_ONLY, FALSE,
400  after_selection,
401  /* Strange, 21 does a
402  Program received signal SIGSEGV, Segmentation fault.
403  0x1cf988 in attr_check_use_custom () */
404  PANEL_VALUE_X, x + 25,
405  PANEL_VALUE_Y, y,
406  /* PANEL_ITEM_X_GAP, 22,*/
407  NULL);
408 
409  return text;
410 }
static char * x
Definition: split_file.c:159
struct _newgen_struct_text_ * text
Definition: text.h:23
Panel main_panel
Definition: wpips.c:63
static void schoose_abbrev_menu_with_text_text_notify(Panel_item text_item, Event *event)
Accept only typed text in the menu list:
Definition: xv_schoose2.c:228
static Notify_value abbrev_menu_event_filter_proc(Panel panel, Event *event, Notify_arg arg, Notify_event_type type)
Definition: xv_schoose2.c:268

References abbrev_menu_event_filter_proc(), ABBREV_MENU_WITH_TEXT_AFTER_SELECTION, ABBREV_MENU_WITH_TEXT_GENERATE_MENU, main_panel, schoose_abbrev_menu_with_text_text_notify(), and x.

Referenced by create_status_subwindow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ schoose_frame_done_proc()

static void schoose_frame_done_proc ( Frame  frame)
static

Avoid the schoose_frame destruction and act as cancel:

Definition at line 169 of file xv_schoose2.c.

170 {
171  (*apply_on_cancel)();
172  hide_window(frame);
173 }

References hide_window().

Referenced by create_schoose_window().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ schoose_help_notify()

static void schoose_help_notify ( Panel_item  item,
Event *  event 
)
static

Definition at line 60 of file xv_schoose2.c.

62 {
63  display_help("SingleChoice");
64 }
void display_help(char *topic)
Definition: gtk_help.c:50

References display_help().

Referenced by create_schoose_window().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ schoose_ok_notify()

static void schoose_ok_notify ( Panel_item  item,
Event *  event 
)
static

Cette routine est appelé d'une part lorsqu'on a cliqué sur OK pour valider un nom tapé textuellement, d'autre part lorsqu'on clique sur un choix.

Suppose qu'item et event sont folklo car on peut être appelé par schoose_choice_notify

Modified to verify that an correct item is selected. RK, 21/05/1993.

Normal case :

Definition at line 70 of file xv_schoose2.c.

72 {
73  /* Suppose qu'item et event sont folklo car on peut être appelé par
74  schoose_choice_notify */
75  char *curchoice;
76  int i, nchoices;
77  int item_is_in_the_list;
78 
79  curchoice = strdup((char *) xv_get(choice, PANEL_VALUE, 0));
80  if (strlen(curchoice)==0)
81  prompt_user("Choose one item or cancel");
82  else {
83  /* Modified to verify that an correct item is selected.
84  RK, 21/05/1993. */
85  nchoices = (int) xv_get(choices, PANEL_LIST_NROWS, 0);
86  item_is_in_the_list = FALSE;
87  for(i = 0; i < nchoices; i++)
88  if (strcmp((char *)xv_get(choices, PANEL_LIST_STRING, i),
89  curchoice) == 0) {
90  item_is_in_the_list = TRUE;
91  break;
92  }
93  if (item_is_in_the_list == FALSE)
94  prompt_user("You have to choose one item of the list!");
95  else {
96  /* Normal case : */
97  (*apply_on_choice)(curchoice);
98  schoose_close();
99  }
100  }
101 
102  free(curchoice);
103 }
void free(void *)
void prompt_user(string a_printf_format,...)
Definition: gtk_log.c:66
char * strdup()

References choice, choices, free(), int, prompt_user(), schoose_close(), and strdup().

Referenced by create_schoose_window().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ apply_on_cancel

void(* apply_on_cancel) (void) ( void  )
static

Definition at line 57 of file xv_schoose2.c.

Referenced by schoose().

◆ apply_on_choice

void(* apply_on_choice) (char *) ( char *  )
static

Definition at line 56 of file xv_schoose2.c.

Referenced by schoose().

◆ cancel

Panel_item cancel
static

Definition at line 54 of file xv_schoose2.c.

Referenced by create_schoose_window().

◆ choice

◆ choices

Panel_item choices
static

Definition at line 54 of file xv_schoose2.c.

Referenced by create_schoose_window(), schoose(), schoose_close(), and schoose_ok_notify().

◆ help

Panel_item help
static

Definition at line 54 of file xv_schoose2.c.

Referenced by create_schoose_window().

◆ ok

Panel_item ok
static

Definition at line 54 of file xv_schoose2.c.

Referenced by create_schoose_window().