DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T r

⟦a2faf2896⟧ TextFile

    Length: 5809 (0x16b1)
    Types: TextFile
    Names: »ratmenu.h«

Derivation

└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦8e9e227a9⟧ 
            └─⟦0b3b13f5b⟧ 
                └─ ⟦this⟧ »./ratmenu.h« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦144d629ab⟧ 
                └─ ⟦this⟧ »./ratmenu.h« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦34224b4fb⟧ 
                └─ ⟦this⟧ »./ratmenu.h« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦50f09e4e4⟧ 
                └─ ⟦this⟧ »./ratmenu.h« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦5cb9d2efd⟧ 
                └─ ⟦this⟧ »./ratmenu.h« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦610eb0a19⟧ 
                └─ ⟦this⟧ »./ratmenu.h« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦7d9cab9a9⟧ 
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦8e9e227a9⟧ 
            └─⟦7d9cab9a9⟧ 
                └─ ⟦this⟧ »./ratmenu.h« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦85ff0a957⟧ 
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦8e9e227a9⟧ 
            └─⟦85ff0a957⟧ 
                └─ ⟦this⟧ »./ratmenu.h« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦8fb0c967c⟧ 
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦8e9e227a9⟧ 
            └─⟦8fb0c967c⟧ 
                └─ ⟦this⟧ »ratmenu.h« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦afaca67b5⟧ 
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦8e9e227a9⟧ 
            └─⟦afaca67b5⟧ 
                └─ ⟦this⟧ »./ratmenu.h« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦d97085656⟧ 
                └─ ⟦this⟧ »./ratmenu.h« 
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦8e9e227a9⟧ 
            └─⟦e9895db93⟧ 
                └─ ⟦this⟧ »./ratmenu.h« 

TextFile

/*--SubMenu info gets stored in one of these */

typedef struct {
  String	item[10];		/* user defined RatMenu items */
  String	menu[10];		/* user defined RatMenu submenus */
} SubMenuRes;

/*--Rational Menu Default Resources */

typedef struct {
  Pixel		background;		/* menu background color to use */
  Pixel		border_pixel;		/* menu border color to use */
  Pixel		foreground;		/* menu foreground color to use */
  XFontStruct  *font;			/* menu font to use */
  Boolean	want_menu_labels;	/* should menus have labels? */
  Boolean	want_submenu_labels;	/* should submenus have labels? */
  Boolean	slide_subs;		/* should "=>"s be slid right? */
  Boolean	permanent;		/* RatMenu is permanently mapped */
  Boolean	warp;			/* should we warp ptr on a map? */
  int		menu_border_width;	/* width of menu borders */
  int		menu_whitespace;	/* space left/rigth of menu items */
  int		item_border_width;	/* width of item borders */
  int		item_pad;		/* space up/down of menu items */
  int		sub_border_width;	/* width of "=>" borders */
  int		sub_horiz_distance;	/* space between sub label and "=>" */
  char	       *env_menu_file;		/* place to find RXI_Env_Menu file */
} RatMenuDefaultsType;

extern RatMenuDefaultsType RatMenuDefaults;

/******************************************************************************
* R1000 "Keys" - each key is a MOUSE_PREFIX character followed by one of the
* other characters defined in this list.
******************************************************************************/

#define MOUSE_PREFIX		'z'
#define MENU_PICK		'0'
/* #define MOUSE_ARGUMENT	'1' */
#define MOUSE_DOWN		'2'
#define MOUSE_RIGHT		'3'
#define MOUSE_IMAGE_DOWN	'4'
#define MOUSE_IMAGE_RIGHT	'5'

#define MOUSE_BUTTON1		'@'
#define MOUSE_BUTTON2		'A'
#define MOUSE_BUTTON3		'B'
#define MOUSE_BUTTON4		'C'
#define MOUSE_BUTTON5		'D'
#define MOUSE_BUTTON6		'E'

#define MOUSE_BUTTON1_UP	'F'
#define MOUSE_BUTTON2_UP	'G'
#define MOUSE_BUTTON3_UP	'H'
#define MOUSE_BUTTON4_UP	'I'
#define MOUSE_BUTTON5_UP	'J'
#define MOUSE_BUTTON6_UP	'K'

#define MOUSE_BUTTON1_DBL	'L'
#define MOUSE_BUTTON2_DBL	'M'
#define MOUSE_BUTTON3_DBL	'N'
#define MOUSE_BUTTON4_DBL	'O'
#define MOUSE_BUTTON5_DBL	'P'
#define MOUSE_BUTTON6_DBL	'Q'

#define MOUSE_MINUS		'-'
#define MOUSE_0			'!'
#define MOUSE_1			'"'
#define MOUSE_2			'#'
#define MOUSE_3			'$'
#define MOUSE_4			'%'
#define MOUSE_5			'&'
#define MOUSE_6			'\''
#define MOUSE_7			'('
#define MOUSE_8			')'
#define MOUSE_9			'*'

#define X_NO_OP			'a'
#define X_SCREEN_HEIGHT		'b'
#define X_SCREEN_WIDTH		'c'
#define X_SCREEN_REDRAW		'd'

#define MIN_COLS		6
#define MIN_ROWS		6

/*--Magic Fake Menu KeySyms */

#define MENU_JOB_KILL		((KeySym)0xFF00)	/* Job.Kill */
#define MENU_JOB_DISABLE	((KeySym)0xFF01)	/* Job.Disable */
#define MENU_DEBUG_STOP		((KeySym)0xFF02)	/* Debug.Stop */
#define MENU_RETURN		((KeySym)0xFF03)	/* Editor.Line.Insert*/

/*--Masks for modifier keys.  If we ever need more we will either add them
 *  at the top of the (presently 16 + 3 == 19 bit) value or else we will
 *  change the <<11 to <<12 or <<13 or whatever.  We have room for 21 bits
 *  total.  We have 2 to spare with this scheme. */

#define RNoMask		0
#define RControlMask	0x01
#define RMod1Mask	0x02
#define RShiftMask	0x04

/*--GEB 4/17/89 - purposely leave out LockMask here.  Keeps screwing people up.
 *  GEB 11/19/90 - purposely leave out Mod2..Mod5Mask here.  OpenLook on the
 *                 Suns implements a toggling Num_Lock with Mod4.
 * 		   RXI only uses Shift, Control, and Meta/Mod1 anyway.
 */

#define AllMasks \
  (ShiftMask|ControlMask|Mod1Mask)

/*--Insert a modified KeySym into a buffer for output. */

#define DoRMaskChar(cp,mask,ks) \
  { register unsigned long keyy = (unsigned)ks; \
    keyy = ((keyy >> 8) << 11) | (mask << 8) | (keyy & 0xFFL); \
    if (keyy >= 1<<12) { \
	*cp++ = (char)(0x30 + ( keyy >> 18)        ); \
	*cp++ = (char)(0x20 + ((keyy >> 12) & 0x3F)); \
	*cp++ = (char)(0x20 + ((keyy >>  6) & 0x3F)); \
	*cp++ = (char)(0x20 + ( keyy        & 0x3F)); \
    } else if (keyy >= 1<<6) { \
	*cp++ = (char)(0x28); \
	*cp++ = (char)(0x20 + ((keyy >>  6) & 0x3F)); \
	*cp++ = (char)(0x20 + ( keyy        & 0x3F)); \
    } else { \
	*cp++ = (char)(0x20); \
	*cp++ = (char)(0x20 + ( keyy        & 0x3F)); \
    } \
  }

/*--Insert a normal KeySym into a buffer for output.  (mask == 0) */

#define DoRChar(cp,ks) \
  { register unsigned long keyy = (unsigned)ks; \
    keyy = ((keyy >> 8) << 11) | (keyy & 0xFFL); \
    if (keyy >= 1<<12) { \
	*cp++ = (char)(0x30 + ( keyy >> 18)        ); \
	*cp++ = (char)(0x20 + ((keyy >> 12) & 0x3F)); \
	*cp++ = (char)(0x20 + ((keyy >>  6) & 0x3F)); \
	*cp++ = (char)(0x20 + ( keyy        & 0x3F)); \
    } else if (keyy >= 1<<6) { \
	*cp++ = (char)(0x28); \
	*cp++ = (char)(0x20 + ((keyy >>  6) & 0x3F)); \
	*cp++ = (char)(0x20 + ( keyy        & 0x3F)); \
    } else { \
	*cp++ = (char)(0x20); \
	*cp++ = (char)(0x20 + ( keyy        & 0x3F)); \
    } \
  }


/*--This is called inside of all functions that can be tied to a mouse button.
 *  We check to see if we should override the normal operation due to being
 *  in Rational mode. */

extern int menu_grab;	/* set to TRUE when a HandleModeMenu has happened but
			 * the MenuButtonReleased hasn't yet; gets around 
			 * silly behavior in the TM code where a quick click
			 * will not do a Grab so that the menu can get the
			 * up event which occurred before the menu was mapped*/

#define CHECK_RATIONAL_MODE() \
	if (menu_grab) return; \
	if (term->misc.rational && \
	    (event->type == ButtonPress || \
	     event->type == ButtonRelease) && \
	    ((((XButtonEvent*)event)->state & AllMasks) == 0 || \
	     (((XButtonEvent*)event)->state & AllMasks) == ShiftMask)) { \
	    RationalButton( (XButtonEvent*)event ); \
	    return; \
	}