/* book_utils.h 1.3 */ /* Copyright 1992, 1993 O'Reilly and Associates, Inc. Permission to use, copy, and modify this program is hereby granted, as long as this copyright notice appears in each copy of the program source code. */ /* Declarations and macros for the PEXlib Programing Manual examples. */ #include #include #include #include #include #include /* Version and subset macros. */ #define VERSION_5_0( info ) \ ( (info)->major_version == 5 && (info)->minor_version == 0) #define VERSION_5_1( info ) \ ( (info)->major_version == 5 && (info)->minor_version == 1) #define STRUCTURE_SPT( info ) \ ( ( VERSION_5_0( info ) && \ ( ((info)->subset_info & 0xFFFF) == PEXCompleteImplementation ) ) \ || ( VERSION_5_1( info ) && \ ( ((info)->subset_info & 0xFFFF) == PEXCompleteImplementation \ || (info)->subset_info & PEXStructureMode ) ) \ ) #define IMMED_MODE_SPT( info ) \ ( ((info)->subset_info & 0xFFFF) == PEXCompleteImplementation \ || (info)->subset_info & PEXImmediateMode ) #define SET_COLOR( r, g, b, c ) { \ (c).rgb.red = (r); \ (c).rgb.green = (g); \ (c).rgb.blue = (b);} /* Utility functions in book_utils.c */ extern Display* ora_init_pex( #if NeedFunctionPrototypes char** /* IN: *argv[] */, PEXExtensionInfo** /* IN: pexinfo */ #endif ); extern void ora_find_best_visual( #if NeedFunctionPrototypes Display* /* IN: display */, XVisualInfo* /* OUT: visual info */ #endif ); extern Window ora_create_window( #if NeedFunctionPrototypes Display* /* IN: display */, XVisualInfo* /* IN: visual info */, XStandardColormap* /* IN: colormap info */, char* /* IN: geometery */, XColor* /* IN: background color */ #endif ); extern PEXRenderer ora_setup_renderer( #if NeedFunctionPrototypes Display* /* IN: display */, Window /* IN: window */, PEXColorApproxEntry* /* IN: color approximation info */, PEXRendererAttributes* /* OUT: renderer attributes */ #endif ); extern int ora_get_standard_colormap( #if NeedFunctionPrototypes Display* /* IN: display */, XVisualInfo* /* IN: visual info */, XStandardColormap* /* OUT: standard colormap info */ #endif ); extern void ora_set_stdcmap_approx( #if NeedFunctionPrototypes XVisualInfo* /* IN: visual info */, XStandardColormap* /* IN: standard colormap info */, PEXColorApproxEntry* /* OUT: color approximation parameters */ #endif ); extern int ora_get_colormap_and_visual( #if NeedFunctionPrototypes Display* /* IN: display */, Atom /* IN: colormap property */, XVisualInfo* /* OUT: visual info */, XStandardColormap* /* OUT: standard colormap info */ #endif ); extern int ora_create_colormap( #if NeedFunctionPrototypes Display* /* IN: display */, XVisualInfo* /* IN: visual info */, XStandardColormap* /* OUT: standard colormap info */, PEXColorApproxEntry* /* OUT: color approximation parameters */ #endif ); extern int ora_create_direct_map( #if NeedFunctionPrototypes Display* /* IN: display */, XVisualInfo* /* IN: visual info */, XStandardColormap* /* OUT: standard colormap info */, PEXColorApproxEntry* /* OUT: color approximation parameters */ #endif ); extern int ora_create_pseudo_map( #if NeedFunctionPrototypes Display* /* IN: display */, XVisualInfo* /* IN: visual info */, int, int, int /* IN: num reds, greens, and blues */, XStandardColormap* /* OUT: standard colormap info */, PEXColorApproxEntry* /* OUT: color approximation parameters */ #endif ); extern int ora_create_gray_map( #if NeedFunctionPrototypes Display* /* IN: display */, XVisualInfo* /* IN: visual info */, int /* IN: num grays */, XStandardColormap* /* OUT: standard colormap info */, PEXColorApproxEntry* /* OUT: color approximation parameters */ #endif ); extern int ora_create_read_only_map( #if NeedFunctionPrototypes Display* /* IN: display */, XVisualInfo* /* IN: visual info */, XStandardColormap* /* OUT: standard colormap info */, PEXColorApproxEntry* /* OUT: color approximation parameters */ #endif ); extern int ora_enum_type_supported( #if NeedFunctionPrototypes Display* /* IN: display */, Window /* IN: window */, int /* IN: enumerated type */, int /* IN: value */ #endif ); extern void ora_build_sphere( #if NeedFunctionPrototypes double /* IN: radius */, PEXListOfCoord* /* OUT: sphere points */ #endif ); PEXStructure ora_build_axes_struct( #if NeedFunctionPrototypes Display* /* IN: display */, PEXCoord* /* IN: axes location */, double /* IN: axes length */ #endif );