home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mega Top 1
/
os2_top1.zip
/
os2_top1
/
DEMO
/
RIM22
/
MACROS
/
KBDCUA.RM
< prev
next >
Wrap
Text File
|
1993-11-22
|
9KB
|
290 lines
/*
** Macro module: kbdcua.rm - ASCII key bindings for CUA
**
** Copyright (C) 1993 Brian L. Smith
** Copyright (C) 1993 RimStar Technology, Inc.
** All rights reserved internationally.
** Unlicensed use is a violation of applicable laws.
**
** This source code is provided to licensed users of RimStar's products
** for the purpose of allowing the user to customize and/or enhance RimStar's
** products. The source code remains the property of the copyright holders
** with all rights reserved internationally.
** Any modifications to the source code are considered derivative works and
** all rights thereto are reserved to the copyright holders except
** that the purchaser may use the derivitive work in the same manner
** as permitted by the license governing the unmodified product.
** Distribution in any manner of any part of the original source code,
** whether in source or object form, is expressly prohibited without the
** express written permission of the copyright holders.
**
*/
#include "macro.h"
/* These functions handle CUA style selection behavior */
void
CUASel( char *func ) {
if ( !MarkQuerySelType() )
MarkBeginSel(SELECT_EXCLUSIVE);
ExecFunction( func );
} /* end CUASel() */
void
CUAMov( char *func ) {
SELECTION sel;
if ( MarkQuerySel( &sel, 0 ) ) {
MarkRemoveSel();
MovAbs( sel.s_line, sel.s_column );
}
ExecFunction( func );
} /* end CUAMov() */
void
CUACopy( char *func ) {
ExecFunction( func );
if ( MarkQuerySelType() )
MarkRemoveSel();
} /* end CUACopy() */
void
CUAInsert( void ) {
SELECTION sel;
if ( MarkQuerySel( &sel, 1) ) {
BufDeleteCharOrSelection();
MovAbs( sel.s_line, sel.s_column );
}
SelfInsert();
} /* end CUAInsert() */
/*
** KbdBindAsciiKeys()
**
** This version of KbdBindAsciiKeys() sets the standard typable key bindings
** for a keyboard using CUA style selection.
** Binds (assigns) all the typeable keys to the current keyboard mapping.
** KbdBindDefault() should call this function first.
** If you are defining a keyboard and want the standard typables
** just make your new keyboard the current keyboard and call this function.
*/
void
KbdBindAsciiKeys(void) {
/*
** To save memory only specify the string
** once, then use a pointer to it
*/
char *cua_insert = "CUAInsert";
char *p;
/* Bind the default CUA system menu accels */
KbdBind("Ctrl+F4", "WinDeleteCurrentWindow");
KbdBind("Ctrl+F5", "WinRestore");
KbdBind("Ctrl+F7", "WinMove");
KbdBind("Ctrl+F8", "WinSize");
KbdBind("Ctrl+F9", "WinMinimize");
KbdBind("Ctrl+F10", "WinMaximize");
KbdBind("Ctrl+Space", "WinSysMenu");
KbdBind("Alt+F4", "ExitEditor");
KbdBind("Alt+F5", "WinMainRestore");
KbdBind("Alt+F7", "WinMainMove");
KbdBind("Alt+F8", "WinMainSize");
KbdBind("Alt+F9", "WinMainMinimize");
KbdBind("Alt+F10", "WinMainMaximize");
KbdBind("Alt+F11", "WinMainHide");
KbdBind("Alt+Space", "WinMainSysMenu");
/*
** These are the standard typable key bindings
*/
KbdBind("KP_MINUS", cua_insert);
KbdBind("KP_PLUS", cua_insert);
KbdBind("KP_SLASH", cua_insert);
KbdBind("KP_STAR", cua_insert);
KbdBind("Shift+KP_DELETE", cua_insert); // .
KbdBind("Shift+KP_INSERT", cua_insert); // 0
KbdBind("Shift+KP_END", cua_insert); // 1
KbdBind("Shift+KP_DOWN", cua_insert); // 2
KbdBind("Shift+KP_PGDN", cua_insert); // 3
KbdBind("Shift+KP_LEFT", cua_insert); // 4
KbdBind("Shift+KP_5", cua_insert); // 5
KbdBind("Shift+KP_RIGHT", cua_insert); // 6
KbdBind("Shift+KP_HOME", cua_insert); // 7
KbdBind("Shift+KP_UP", cua_insert); // 8
KbdBind("Shift+KP_PGUP", cua_insert); // 9
KbdBind("Shift+KP_SLASH", cua_insert); // /
KbdBind("Shift+KP_STAR", cua_insert); // *
KbdBind("Shift+KP_MINUS", cua_insert); // -
KbdBind("Shift+KP_PLUS", cua_insert); // +
KbdBind("Ctrl+`", cua_insert);
KbdBind("Ctrl+1", cua_insert);
KbdBind("Ctrl+2", cua_insert);
KbdBind("Ctrl+3", cua_insert);
KbdBind("Ctrl+4", cua_insert);
KbdBind("Ctrl+5", cua_insert);
KbdBind("Ctrl+6", cua_insert);
KbdBind("Ctrl+7", cua_insert);
KbdBind("Ctrl+8", cua_insert);
KbdBind("Ctrl+9", cua_insert);
KbdBind("Ctrl+0", cua_insert);
KbdBind("Ctrl+=", cua_insert);
KbdBind("Ctrl+[", cua_insert);
KbdBind("Ctrl+]", cua_insert);
KbdBind("Ctrl+\\",cua_insert);
KbdBind("Ctrl+;", cua_insert);
KbdBind("Ctrl+'", cua_insert);
KbdBind("Ctrl+,", cua_insert);
KbdBind("Ctrl+.", cua_insert);
KbdBind("Ctrl+/", cua_insert);
KbdBind("ESCAPE", cua_insert);
KbdBind("Ctrl+A", cua_insert);
KbdBind("Ctrl+B", cua_insert);
KbdBind("Ctrl+C", cua_insert);
KbdBind("Ctrl+D", cua_insert);
KbdBind("Ctrl+E", cua_insert);
KbdBind("Ctrl+F", cua_insert);
KbdBind("Ctrl+G", cua_insert);
KbdBind("Ctrl+H", cua_insert);
KbdBind("Ctrl+I", cua_insert);
KbdBind("Ctrl+J", cua_insert);
KbdBind("Ctrl+L", cua_insert);
KbdBind("Ctrl+M", cua_insert);
KbdBind("Ctrl+N", cua_insert);
KbdBind("Ctrl+O", cua_insert);
KbdBind("Ctrl+P", cua_insert);
KbdBind("Ctrl+Q", cua_insert);
KbdBind("Ctrl+R", cua_insert);
KbdBind("Ctrl+S", cua_insert);
KbdBind("Ctrl+T", cua_insert);
KbdBind("Ctrl+U", cua_insert);
KbdBind("Ctrl+V", cua_insert);
KbdBind("Ctrl+W", cua_insert);
KbdBind("Ctrl+X", cua_insert);
KbdBind("Ctrl+Y", cua_insert);
KbdBind("Ctrl+Z", cua_insert);
KbdBind("`", cua_insert);
KbdBind("1", cua_insert);
KbdBind("2", cua_insert);
KbdBind("3", cua_insert);
KbdBind("4", cua_insert);
KbdBind("5", cua_insert);
KbdBind("6", cua_insert);
KbdBind("7", cua_insert);
KbdBind("8", cua_insert);
KbdBind("9", cua_insert);
KbdBind("0", cua_insert);
KbdBind("-", cua_insert);
KbdBind("=", cua_insert);
KbdBind("[", cua_insert);
KbdBind("]", cua_insert);
KbdBind("\\",cua_insert);
KbdBind(";", cua_insert);
KbdBind("'", cua_insert);
KbdBind(",", cua_insert);
KbdBind(".", cua_insert);
KbdBind("/", cua_insert);
KbdBind("Shift+`", cua_insert); // ~ Shifted punctuation -
KbdBind("Shift+1", cua_insert); // ! You could use the shifted
KbdBind("Shift+2", cua_insert); // @ ascii version of the letter
KbdBind("Shift+3", cua_insert); // # but you MUST still specify
KbdBind("Shift+4", cua_insert); // $ the SHIFT key modifier.
KbdBind("Shift+5", cua_insert); // %
KbdBind("Shift+6", cua_insert); // ^
KbdBind("Shift+7", cua_insert); // &
KbdBind("Shift+8", cua_insert); // *
KbdBind("Shift+9", cua_insert); // (
KbdBind("Shift+0", cua_insert); // )
KbdBind("Shift+-", cua_insert); // _
KbdBind("Shift+=", cua_insert); // +
KbdBind("Shift+[", cua_insert); // {
KbdBind("Shift+]", cua_insert); // }
KbdBind("Shift+|", cua_insert); // |
KbdBind("Shift+;", cua_insert); // :
KbdBind("Shift+'", cua_insert); // "
KbdBind("Shift+,", cua_insert); // <
KbdBind("Shift+.", cua_insert); // >
KbdBind("Shift+/", cua_insert); // ?
KbdBind("Shift+A", cua_insert); // Upper-case letters
KbdBind("Shift+B", cua_insert);
KbdBind("Shift+C", cua_insert);
KbdBind("Shift+D", cua_insert);
KbdBind("Shift+E", cua_insert);
KbdBind("Shift+F", cua_insert);
KbdBind("Shift+G", cua_insert);
KbdBind("Shift+H", cua_insert);
KbdBind("Shift+I", cua_insert);
KbdBind("Shift+J", cua_insert);
KbdBind("Shift+K", cua_insert);
KbdBind("Shift+L", cua_insert);
KbdBind("Shift+M", cua_insert);
KbdBind("Shift+N", cua_insert);
KbdBind("Shift+O", cua_insert);
KbdBind("Shift+P", cua_insert);
KbdBind("Shift+Q", cua_insert);
KbdBind("Shift+R", cua_insert);
KbdBind("Shift+S", cua_insert);
KbdBind("Shift+T", cua_insert);
KbdBind("Shift+U", cua_insert);
KbdBind("Shift+V", cua_insert);
KbdBind("Shift+W", cua_insert);
KbdBind("Shift+X", cua_insert);
KbdBind("Shift+Y", cua_insert);
KbdBind("Shift+Z", cua_insert);
KbdBind("A", cua_insert); // Lower-case letters
KbdBind("B", cua_insert);
KbdBind("C", cua_insert);
KbdBind("D", cua_insert);
KbdBind("E", cua_insert);
KbdBind("F", cua_insert);
KbdBind("G", cua_insert);
KbdBind("H", cua_insert);
KbdBind("I", cua_insert);
KbdBind("J", cua_insert);
KbdBind("K", cua_insert);
KbdBind("L", cua_insert);
KbdBind("M", cua_insert);
KbdBind("N", cua_insert);
KbdBind("O", cua_insert);
KbdBind("P", cua_insert);
KbdBind("Q", cua_insert);
KbdBind("R", cua_insert);
KbdBind("S", cua_insert);
KbdBind("T", cua_insert);
KbdBind("U", cua_insert);
KbdBind("V", cua_insert);
KbdBind("W", cua_insert);
KbdBind("X", cua_insert);
KbdBind("Y", cua_insert);
KbdBind("Z", cua_insert);
KbdBind("Shift+ENTER", p = "BufInsertChar 10");
KbdBind("KP_ENTER", p);
KbdBind("ENTER", p);
KbdBind("Shift+ENTER", p);
KbdBind("TAB", cua_insert);
KbdBind("SPACE", cua_insert);
KbdBind("Shift+SPACE", cua_insert);
} /* end KbdBindAsciiKeys() */
/*
** End module: kbdcua.c
*/