|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T w
Length: 4150 (0x1036)
Types: TextFile
Names: »walkmenu_impl.h«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/Sun/Sdi/walkmenu_impl.h«
/* @(#)walkmenu_impl.h 1.1 86/02/04 SMI */
/***********************************************************************/
/* walkmenu_impl.h */
/* Copyright (c) 1985 by Sun Microsystems, Inc. */
/***********************************************************************/
#ifndef walkmenu_impl_DEFINED
#define walkmenu_impl_DEFINED
#include <suntool/walkmenu.h>
#include "image_impl.h"
#define TRUE 1
#define FALSE 0
#define NULL 0
#define Pkg_private
#define Pkg_extern extern
#define Private static
#define imax(a, b) ((int)(b) > (int)(a) ? (int)(b) : (int)(a))
#define range(v, min, max) ((v) >= (min) && (v) <= (max))
#define menu_attr_next(attr) (Menu_attribute *)attr_next((caddr_t *)attr)
#define MENU_FILLER 5
/***********************************************************************/
/* Structures */
/***********************************************************************/
/*
* Fields: default_position, selected_position and image are not validated
* and must be checked before each usage.
*/
/*********** Menu **********/
struct menu {
struct menu_ops_vector *ops;
int default_position; /* Default item */
int selected_position; /* Last selected item */
/* Values are: default, selected, nth item */
Menu_attribute initial_selection; /* Initial presentation */
Menu_attribute default_selection; /* Default presentation */
int height; /* in pixels, zero implies best fit */
int width; /* in pixels */
struct pixrect *shadow_pr; /* Draw shadow with this pattern */
int (*feedback_proc)(); /* NYI */
caddr_t (*notify_proc)();
struct menu *(*gen_proc)(); /* Dynamically generate menu */
/* Handler for item select, calls menu item proc */
struct image default_image; /* Font, max size, etc. */
struct menu *stack_menu; /* NYI - Stacking menu (sibling) */
int pullright_delta; /* Distance(pixels) to bring up menu*/
caddr_t client_data; /* Client''s use */
/* Flags */
unsigned allow_accelerated_selection:1; /* NYI */
unsigned display_one_level:1; /* Limit initial selection */
unsigned stand_off:1; /* Don''t selected item */
unsigned valid_result:1; /* True if m->value is valid */
unsigned jump_after_selection:1; /* If true then jump */
unsigned jump_after_no_selection:1; /* If true then jump */
unsigned free_everything:1; /* Not used */
unsigned free_menu:1; /* Not used */
unsigned free_shadow_pr:1; /* Not used */
unsigned free_client_data:1; /* Not used */
/* Auxiliary fields */
int nitems; /* Number of items */
int max_nitems; /* Size of item list */
int ncols;
int nrows;
struct menu_item **item_list;
struct menu_info *dynamic_info; /* Holds dynamic info for show() */
struct menu_item *parent; /* Last pullright item */
};
/*********** Menu item **********/
struct menu_item {
struct menu_ops_vector *ops;
struct image *image;
struct menu_item *(*gen_proc)(); /* Called before displaying item */
struct menu *(*gen_pullright)();/* Called before displaying menu */
caddr_t (*notify_proc)(); /* Called only when selected */
caddr_t value; /* union: value, menu_ptr */
caddr_t client_data;
struct menu *parent; /* Current enclosing menu */
/* Flags */
unsigned inactive:1;
unsigned no_feedback:1;
unsigned pullright:1;
unsigned selected:1;
unsigned free_everything:1; /* Not used */
unsigned free_item:1;
unsigned free_value:1; /* Not used */
unsigned free_client_data:1; /* Not used */
};
/*********** Menu ops **********/
struct menu_ops_vector {
caddr_t (*menu_get_op)();
int (*menu_set_op)();
void (*menu_destroy_op)();
};
/*********** Menu info **********/
struct menu_info {
struct inputevent *first_iep;
struct inputevent *last_iep;
int depth;
caddr_t (*notify_proc)();
};
#endif ~walkmenu_impl_DEFINED