r= mkaply@us.ibm.com
OS/2 bring up continues - checking in files for the OS/2 team
This commit is contained in:
mkaply%us.ibm.com 2000-05-01 22:21:43 +00:00
Родитель 9b856fda03
Коммит d41c17e2f8
18 изменённых файлов: 1847 добавлений и 12 удалений

Просмотреть файл

@ -60,7 +60,7 @@ nsFontMetricsOS2::~nsFontMetricsOS2()
NS_IMPL_ISUPPORTS( nsFontMetricsOS2, nsIFontMetrics::GetIID())
nsresult nsFontMetricsOS2::Init( const nsFont &aFont, nsIDeviceContext *aContext)
nsresult nsFontMetricsOS2::Init( const nsFont &aFont, nsIAtom* aLangGroup, nsIDeviceContext *aContext)
{
mFont = new nsFont( aFont);
mContext = (nsDeviceContextOS2 *) aContext;
@ -432,3 +432,14 @@ NS_IMETHODIMP nsFontMetricsOS2::GetFontHandle( nsFontHandle &aHandle)
return NS_OK;
}
NS_IMETHODIMP nsFontMetricsOS2::GetLangGroup(nsIAtom** aLangGroup)
{
if (!aLangGroup) {
return NS_ERROR_NULL_POINTER;
}
*aLangGroup = mLangGroup;
NS_IF_ADDREF(*aLangGroup);
return NS_OK;
}

Просмотреть файл

@ -32,6 +32,8 @@
#include "nsIFontMetrics.h"
#include "nsCRT.h"
#include "nsIAtom.h"
#include "nsCOMPtr.h" //HCT-M15
class nsIRenderingContext;
class nsDeviceContextOS2;
@ -59,7 +61,7 @@ class nsFontMetricsOS2 : public nsIFontMetrics
NS_DECL_ISUPPORTS
NS_IMETHOD Init( const nsFont& aFont, nsIDeviceContext *aContext);
NS_IMETHOD Init( const nsFont& aFont, nsIAtom* aLangGroup, nsIDeviceContext *aContext);
NS_IMETHOD Destroy();
// Metrics
@ -75,9 +77,8 @@ class nsFontMetricsOS2 : public nsIFontMetrics
NS_IMETHOD GetMaxDescent( nscoord &aDescent);
NS_IMETHOD GetMaxAdvance( nscoord &aAdvance);
NS_IMETHOD GetFont( const nsFont *&aFont);
// NS_IMETHOD GetLangGroup(nsIAtom** aLangGroup);
NS_IMETHOD GetLangGroup(nsIAtom** aLangGroup);
NS_IMETHOD GetFontHandle( nsFontHandle &aHandle);
// NS_IMETHOD GetLangGroup(nsIAtom** aLangGroup);
// for drawing text
PRUint32 GetDevMaxAscender() const { return mDevMaxAscent; }
@ -105,6 +106,9 @@ class nsFontMetricsOS2 : public nsIFontMetrics
nsFontHandleOS2 *mFontHandle;
nsDeviceContextOS2 *mContext; // sigh.. broken broken broken XP interfaces...
nsCOMPtr<nsIAtom> mLangGroup;
};
#endif

Просмотреть файл

@ -72,6 +72,10 @@ nsresult nsCollationOS2::GetSortKeyLen( const nsCollationStrength aStrength,
if( !aOutLen)
return NS_ERROR_NULL_POINTER;
// XXXX M15 LAUNCH HACK: TODO: track down why we get here before Initialize has been called...OS2TODO
if (!mLocaleObject)
UniCreateLocaleObject(UNI_UCS_STRING_POINTER, (UniChar*)L"", &mLocaleObject);
size_t num_elems = UniStrxfrm( mLocaleObject, nsnull,
aStringIn.GetUnicode(), 0);

Просмотреть файл

@ -37,7 +37,6 @@
#include "nsDateTimeFormatCID.h"
#include "nsCollationCID.h"
#include "nsIServiceManager.h"
#include "nsCOMPtr.h"
static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID);
@ -228,7 +227,7 @@ static Components gComponents[] = {
NS_IMETHODIMP
nsLocaleModule::RegisterSelf(nsIComponentManager *aCompMgr,
nsIFileSpec* aPath,
nsIFile* aPath,
const char* registryLocation,
const char* componentType)
{
@ -259,7 +258,7 @@ nsLocaleModule::RegisterSelf(nsIComponentManager *aCompMgr,
NS_IMETHODIMP
nsLocaleModule::UnregisterSelf(nsIComponentManager* aCompMgr,
nsIFileSpec* aPath,
nsIFile* aPath,
const char* registryLocation)
{
#ifdef DEBUG
@ -296,7 +295,7 @@ nsLocaleModule::CanUnload(nsIComponentManager *aCompMgr, PRBool *okToUnload)
static nsLocaleModule *gModule = NULL;
extern "C" NS_EXPORT nsresult NSGetModule(nsIComponentManager *servMgr,
nsIFileSpec* location,
nsIFile* location,
nsIModule** return_cobj)
{
nsresult rv = NS_OK;
@ -304,7 +303,7 @@ extern "C" NS_EXPORT nsresult NSGetModule(nsIComponentManager *servMgr,
NS_ASSERTION(return_cobj, "Null argument");
NS_ASSERTION(gModule == NULL, "nsLocaleModule: Module already created.");
// Create an initialize the layout module instance
// Create and initialize the layout module instance
nsLocaleModule *m = new nsLocaleModule();
if (!m) {
return NS_ERROR_OUT_OF_MEMORY;

Просмотреть файл

@ -290,6 +290,7 @@ nsresult nsMenuItem::DoCommand()
// code copied from windows
nsresult rv = NS_ERROR_FAILURE;
#if 0 // XXXXX FIXME no longer works due to WebShell changes
nsCOMPtr<nsIContentViewer> contentViewer;
NS_ENSURE_SUCCESS(mWebShell->GetContentViewer(getter_AddRefs(contentViewer)),
NS_ERROR_FAILURE);
@ -320,6 +321,7 @@ nsresult nsMenuItem::DoCommand()
}
rv = contentNode->HandleDOMEvent(presContext, &event, nsnull, NS_EVENT_FLAG_INIT, &status);
#endif
return rv;
}
@ -420,3 +422,15 @@ nsresult nsMenuItem::GetCheckboxType(PRBool *aIsCheckbox)
{
return NS_OK;
}
nsresult nsMenuItem::SetMenuItemType(EMenuItemType aType)
{
mMenuType = aType;
return NS_OK;
}
nsresult nsMenuItem::GetMenuItemType(EMenuItemType *aType)
{
*aType = mMenuType;
return NS_OK;
}

Просмотреть файл

@ -71,6 +71,8 @@ class nsMenuItem : public nsIMenuItem, public nsIMenuListener
NS_IMETHOD GetShortcutChar(nsString &aText);
NS_IMETHOD SetModifiers(PRUint8 aModifiers);
NS_IMETHOD GetModifiers(PRUint8 * aModifiers);
NS_IMETHOD SetMenuItemType(EMenuItemType aIsCheckbox);
NS_IMETHOD GetMenuItemType(EMenuItemType *aIsCheckbox);
// nsIMenuListener interface
nsEventStatus MenuSelected( const nsMenuEvent &aMenuEvent);
@ -97,6 +99,7 @@ class nsMenuItem : public nsIMenuItem, public nsIMenuListener
nsString mCmdString; // JS command
nsIDOMElement *mDOMElement; // dom element for item
nsIWebShell *mWebShell;
EMenuItemType mMenuType;
};
#endif

Просмотреть файл

@ -26,6 +26,8 @@
#include "nsWidgetsCID.h"
#include "nsIComponentManager.h"
static PRUintn gToolkitTLSIndex = 0;
// Bits to deal with the case where a new toolkit is initted with a null ----
// thread. In this case it has to create a new thread to be the PM thread.
// Hopefully this will never happen!
@ -130,6 +132,10 @@ void nsToolkit::CreateInternalWindow( PRThread *aThread)
0, 0, 0);
NS_ASSERTION( mDispatchWnd, "Couldn't create toolkit internal window");
#if DEBUG_sobotka
printf("\n+++++++++++nsToolkit created dispatch window 0x%lx\n", mDispatchWnd);
#endif
}
// Set up the toolkit - create window, check for thread.
@ -245,3 +251,52 @@ MRESULT EXPENTRY fnwpDispatch( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
return mRC;
}
//-------------------------------------------------------------------------
//
// Return the nsIToolkit for the current thread. If a toolkit does not
// yet exist, then one will be created...
//
//-------------------------------------------------------------------------
NS_METHOD NS_GetCurrentToolkit(nsIToolkit* *aResult)
{
nsIToolkit* toolkit = nsnull;
nsresult rv = NS_OK;
PRStatus status;
// Create the TLS index the first time through...
if (0 == gToolkitTLSIndex) {
status = PR_NewThreadPrivateIndex(&gToolkitTLSIndex, NULL);
if (PR_FAILURE == status) {
rv = NS_ERROR_FAILURE;
}
}
if (NS_SUCCEEDED(rv)) {
toolkit = (nsIToolkit*)PR_GetThreadPrivate(gToolkitTLSIndex);
//
// Create a new toolkit for this thread...
//
if (!toolkit) {
toolkit = new nsToolkit();
if (!toolkit) {
rv = NS_ERROR_OUT_OF_MEMORY;
} else {
NS_ADDREF(toolkit);
toolkit->Init(PR_GetCurrentThread());
//
// The reference stored in the TLS is weak. It is removed in the
// nsToolkit destructor...
//
PR_SetThreadPrivate(gToolkitTLSIndex, (void*)toolkit);
}
} else {
NS_ADDREF(toolkit);
}
*aResult = toolkit;
}
return rv;
}

1050
xpcom/io/nsLocalFileOS2.cpp Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

127
xpcom/io/nsLocalFileOS2.h Normal file
Просмотреть файл

@ -0,0 +1,127 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is Mozilla Communicator client code,
* released March 31, 1998.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are
* Copyright (C) 1998-2000 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Henry Sobotka <sobotka@axess.com>
*/
#ifndef _nsLocalFileOS2_H_
#define _nsLocalFileOS2_H_
#include "nscore.h"
#include "nsError.h"
#include "nsString.h"
#include "nsCRT.h"
#include "nsIFile.h"
#include "nsILocalFile.h"
#include "nsIFactory.h"
#include "nsLocalFile.h"
#define INCL_DOSFILEMGR
#define INCL_DOSERRORS
#define INCL_DOSPROCESS
#define INCL_DOSMODULEMGR
#include <os2.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <errno.h>
#define NSRESULT_FOR_RETURN(ret) (!(ret) ? NS_OK : NSRESULT_FOR_ERRNO())
inline nsresult
nsresultForErrno(int err)
{
#ifdef DEBUG
if (err)
fprintf(stderr, "errno %d\n", err);
#endif
switch(err) {
case 0:
return NS_OK;
case ENOENT:
return NS_ERROR_FILE_TARGET_DOES_NOT_EXIST;
case ENOTDIR:
return NS_ERROR_FILE_DESTINATION_NOT_DIR;
case EEXIST:
return NS_ERROR_FILE_ALREADY_EXISTS;
case EACCES:
default:
return NS_ERROR_FAILURE;
}
}
#define NSRESULT_FOR_ERRNO() nsresultForErrno(errno)
class NS_COM nsLocalFile : public nsILocalFile
{
public:
NS_DEFINE_STATIC_CID_ACCESSOR(NS_LOCAL_FILE_CID)
nsLocalFile();
virtual ~nsLocalFile();
static NS_METHOD nsLocalFileConstructor(nsISupports* outer, const nsIID& aIID, void* *aInstancePtr);
// nsISupports interface
NS_DECL_ISUPPORTS
// nsIFile interface
NS_DECL_NSIFILE
// nsILocalFile interface
NS_DECL_NSILOCALFILE
private:
// String guaranteed to be native path
nsCString mPath;
nsresult CheckDrive(const char* inPath);
// Filehandling method
nsresult CopyMove(nsIFile *newParentDir, const char *newName, PRBool move);
// stat caching members and inline methods
PRBool mHaveStatCached;
struct stat mStatCache;
void SetNoStatCache() { mHaveStatCached = PR_FALSE; }
nsresult LoadStatCache() {
if (stat((const char*)mPath, &mStatCache) == -1) {
#ifdef DEBUG
fprintf(stderr, "stat(%s) failed; errno: %d\n", (const char *)mPath, errno);
#endif
return NS_ERROR_FAILURE;
}
mHaveStatCached = PR_TRUE;
return NS_OK;
}
// Check path for system-reserved chars (inPath = whatever follows drive colon, if any)
PRBool ValidatePath(const char* inPath) {
return ((strpbrk(inPath, "<>:\"|") == NULL) ? PR_TRUE : PR_FALSE);
}
};
#endif // _nsLocalFileOS2_H_

Просмотреть файл

@ -0,0 +1,43 @@
#
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
EXPORT_RESOURCE_CONTENT = \
$(srcdir)/platformGlobalOverlay.xul \
$(srcdir)/platformDialogOverlay.xul \
$(srcdir)/platformInputBindings.xul \
$(srcdir)/platformBrowserBindings.xul \
$(srcdir)/platformInputBindings.xul \
$(srcdir)/platformEditorBindings.xul \
$(srcdir)/platformTextAreaBindings.xul \
$(NULL)
include $(topsrcdir)/config/rules.mk
install::
$(INSTALL) $(EXPORT_RESOURCE_CONTENT) $(DIST)/bin/chrome/global/content/default

Просмотреть файл

@ -0,0 +1,36 @@
<?xml version="1.0"?>
<!-- OS/2 version of platformBrowserBindings.xul -->
<keybinding id="platformBrowserBindings"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<!-- change the xul key for Unix -->
<keyset id="globalKeySet" xulkey="alt">
<!-- Add the Windows/Mac cut, copy, paste, undo and redo keys -->
<key id="emCutKey" key="x" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_cut');
controller.doCommand('cmd_cut');"/>
<key id="emCopyKey" key="c" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_copy');
controller.doCommand('cmd_copy');"/>
<key id="emPasteKey" key="v" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_paste');
controller.doCommand('cmd_paste');"/>
<key id="emUndoKey" key="z" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_undo');
controller.doCommand('cmd_undo');"/>
<key id="emRedoKey" key="r" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_redo');
controller.doCommand('cmd_redo');"/>
</keyset>
</keybinding>

Просмотреть файл

@ -0,0 +1,27 @@
<?xml version="1.0"?>
<!-- OS/2 version of platformDialogOverlay.xul -->
<!DOCTYPE window SYSTEM "chrome://global/locale/platformDialogOverlay.dtd">
<overlay id="platformDialogOverlay"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<box id="okCancelButtons" align="horizontal">
<spring flex="1"/>
<button class="right dialog" id="ok" value="&okButton.label;" default="true" onclick="doOKButton()"/>
<button class="dialog" id="Button2" value="&cancelButton.label;" style="display:none;" onclick="doButton2()"/>
<button class="dialog" id="Button3" value="&cancelButton.label;" style="display:none;" onclick="doButton3()"/>
<button class="dialog" id="cancel" value="&cancelButton.label;" onclick="doCancelButton()"/>
<spring flex="1"/>
</box>
<keyset id="keyset">
<key keycode="VK_ENTER" oncommand="doOKButton()"/>
<key keycode="VK_RETURN" oncommand="doOKButton()"/>
<key keycode="VK_ESCAPE" oncommand="doCancelButton()"/>
</keyset>
</overlay>

Просмотреть файл

@ -0,0 +1,98 @@
<?xml version="1.0"?>
<!-- OS/2 version of platformEditorBindings.xul -->
<keybinding id="platformEditorBindings"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<!-- change the xul key for Unix -->
<keyset id="editorKeySet" xulkey="alt">
<!-- emacs delete keys -->
<key id="emDelCharBWkb" key="h" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteCharBackward');
controller.doCommand('cmd_deleteCharBackward');"/>
<key id="emDelCharFWkb" key="d" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteCharForward');
controller.doCommand('cmd_deleteCharForward');"/>
<key id="emDelWordBWkb" key="w" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteWordBackward');
controller.doCommand('cmd_deleteWordBackward');"/>
<key id="emKillToEndkb" key="k" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteToEndOfLine');
controller.doCommand('cmd_deleteToEndOfLine');"/>
<key id="emKillToBegkb" key="u" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteToBeginningOfLine');
controller.doCommand('cmd_deleteToBeginningOfLine');"/>
<!-- emacs motion keys: these use the selection controller API -->
<key id="emBeginLinekb" key="a" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_beginLine');
controller.doCommand('cmd_beginLine');"/>
<key id="emEndLinekb" key="e" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_endLine');
controller.doCommand('cmd_endLine');"/>
<key id="emCharPrevkb" key="b" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_charPrevious');
controller.doCommand('cmd_charPrevious');"/>
<key id="emCharNextkb" key="f" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_charNext');
controller.doCommand('cmd_charNext');"/>
<key id="emPrevLinekb" key="p" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_linePrevious');
controller.doCommand('cmd_linePrevious');"/>
<key id="emNextLinekb" key="n" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_lineNext');
controller.doCommand('cmd_lineNext');"/>
<!-- Add the Windows/Mac cut, copy, paste, undo and redo keys -->
<key id="emCutKey" key="x" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_cut');
controller.doCommand('cmd_cut');"/>
<key id="emCopyKey" key="c" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_copy');
controller.doCommand('cmd_copy');"/>
<key id="emPasteKey" key="v" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_paste');
controller.doCommand('cmd_paste');"/>
<key id="emUndoKey" key="z" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_undo');
controller.doCommand('cmd_undo');"/>
<key id="emRedoKey" key="r" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_redo');
controller.doCommand('cmd_redo');"/>
<key id="winAlternateCutKey" keycode="VK_DELETE" shift="true" control="false" alt="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_cut');
controller.doCommand('cmd_cut');"/>
<key id="winAlternateCopyKey" keycode="VK_INSERT" control="true" shift="false" alt="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_copy');
controller.doCommand('cmd_copy');"/>
<key id="winAlternatePasteKey" keycode="VK_INSERT" shift="true" control="false" alt="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_paste');
controller.doCommand('cmd_paste');"/>
</keyset>
<!-- End OS/2-specific keybindings -->
</keybinding>

Просмотреть файл

@ -0,0 +1,28 @@
<?xml version="1.0"?>
<!-- OS/2 version of platformGlobalOverlay.xul -->
<!DOCTYPE window SYSTEM "chrome://global/locale/platformGlobalOverlay.dtd">
<overlay id="platformGlobalOverlay"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<!-- close -->
<menuitem id="menu_close" value="&closeCmd.label;" key="key_close" accesskey="&closeCmd.accesskey;" observes="cmd_close"/>
<key id="key_close" xulkey="true" key="&closeCmd.key;" observes="cmd_close"/>
<!-- quit -->
<menupopup id="menu_FilePopup">
<menuitem value="&quitApplicationCmd.label;" key="key_quit" accesskey="&quitApplicationCmd.accesskey;" observes="cmd_quit"/>
</menupopup>
<key id="key_quit" xulkey="true" key="&quitApplicationCmd.key;" observes="cmd_quit"/>
<broadcaster id="cmd_quit" oncommand="goQuitApplication()"/>
<!-- Edit Menu -->
<menuitem id="menu_redo" value="&redoCmd.label;" key="key_redo" accesskey="&redoCmd.accesskey;" observes="cmd_redo"/>
<key id="key_redo" xulkey="true" shift="true" key="&redoCmd.key;" observes="cmd_redo"/>
<!-- Delete Key -->
<key id="key_delete" keycode="VK_DELETE" observes="cmd_delete"/>
</overlay>

Просмотреть файл

@ -0,0 +1,78 @@
<?xml version="1.0"?>
<!-- OS/2 version of platformInputBindings.xul -->
<keybinding id="platformInputBindings"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<!-- change the xul key for Unix -->
<keyset id="editorKeySet" xulkey="alt">
<!-- emacs delete keys -->
<key id="emDelCharBWkb" key="h" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteCharBackward');
controller.doCommand('cmd_deleteCharBackward');"/>
<key id="emDelCharFWkb" key="d" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteCharForward');
controller.doCommand('cmd_deleteCharForward');"/>
<key id="emDelWordBWkb" key="w" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteWordBackward');
controller.doCommand('cmd_deleteWordBackward');"/>
<key id="emKillToBegkb" key="u" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteToBeginningOfLine');
controller.doCommand('cmd_deleteToBeginningOfLine');"/>
<key id="emKillToEndkb" key="k" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteToEndOfLine');
controller.doCommand('cmd_deleteToEndOfLine');"/>
<!-- emacs motion keys: these use the selection controller API -->
<key id="emBeginLinekb" key="a" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_beginLine');
controller.doCommand('cmd_beginLine');"/>
<key id="emEndLinekb" key="e" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_endLine');
controller.doCommand('cmd_endLine');"/>
<key id="emCharPrevkb" key="b" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_charPrevious');
controller.doCommand('cmd_charPrevious');"/>
<key id="emCharNextkb" key="f" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_charNext');
controller.doCommand('cmd_charNext');"/>
<!-- Add the Windows/Mac cut, copy, paste, undo and redo keys -->
<key id="emCutKey" key="x" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_cut');
controller.doCommand('cmd_cut');"/>
<key id="emCopyKey" key="c" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_copy');
controller.doCommand('cmd_copy');"/>
<key id="emPasteKey" key="v" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_paste');
controller.doCommand('cmd_paste');"/>
<key id="emUndoKey" key="z" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_undo');
controller.doCommand('cmd_undo');"/>
<key id="emRedoKey" key="r" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_redo');
controller.doCommand('cmd_redo');"/>
</keyset>
<!-- OS/2 Unix-specific keybindings -->
</keybinding>

Просмотреть файл

@ -0,0 +1,86 @@
<?xml version="1.0"?>
<!-- OS/2 version of platformTextAreaBindings.xul -->
<keybinding id="platformTextAreaBindings"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<!-- change the xul key for Unix -->
<keyset id="editorKeySet" xulkey="alt">
<!-- emacs delete keys -->
<key id="emDelCharBWkb" key="h" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteCharBackward');
controller.doCommand('cmd_deleteCharBackward');"/>
<key id="emDelCharFWkb" key="d" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteCharForward');
controller.doCommand('cmd_deleteCharForward');"/>
<key id="emDelWordBWkb" key="w" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteWordBackward');
controller.doCommand('cmd_deleteWordBackward');"/>
<key id="emKillToBegkb" key="u" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteToBeginningOfLine');
controller.doCommand('cmd_deleteToBeginningOfLine');"/>
<key id="emKillToEndkb" key="k" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_deleteToEndOfLine');
controller.doCommand('cmd_deleteToEndOfLine');"/>
<!-- emacs motion keys: these use the selection controller API -->
<key id="emBeginLinekb" key="a" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_beginLine');
controller.doCommand('cmd_beginLine');"/>
<key id="emEndLinekb" key="e" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_endLine');
controller.doCommand('cmd_endLine');"/>
<key id="emCharPrevkb" key="b" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_charPrevious');
controller.doCommand('cmd_charPrevious');"/>
<key id="emCharNextkb" key="f" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_charNext');
controller.doCommand('cmd_charNext');"/>
<key id="emPrevLinekb" key="p" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_linePrevious');
controller.doCommand('cmd_linePrevious');"/>
<key id="emNextLinekb" key="n" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_lineNext');
controller.doCommand('cmd_lineNext');"/>
<!-- Add the Windows/Mac cut, copy, paste, undo and redo keys -->
<key id="emCutKey" key="x" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_cut');
controller.doCommand('cmd_cut');"/>
<key id="emCopyKey" key="c" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_copy');
controller.doCommand('cmd_copy');"/>
<key id="emPasteKey" key="v" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_paste');
controller.doCommand('cmd_paste');"/>
<key id="emUndoKey" key="z" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_undo');
controller.doCommand('cmd_undo');"/>
<key id="emRedoKey" key="r" control="true" shift="false"
onkeypress="
var controller = document.commandDispatcher.getControllerForCommand('cmd_redo');
controller.doCommand('cmd_redo');"/>
</keyset>
<!-- End OS/2-specific keybindings -->
</keybinding>

Просмотреть файл

@ -0,0 +1,37 @@
#
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
EXPORT_RESOURCE_CONTENT = \
$(srcdir)/platformHTMLBindings.xml \
$(NULL)
include $(topsrcdir)/config/rules.mk
install::
$(INSTALL) $(EXPORT_RESOURCE_CONTENT) $(DIST)/bin/chrome/

Просмотреть файл

@ -0,0 +1,135 @@
<?xml version="1.0"?>
<bindings id="htmlBindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<binding name="inputFields" extends="resource:/chrome/htmlBindings.xml#inputFieldsBase">
<handlers>
<!-- Emacsish single-line motion and delete keys -->
<handler type="keypress" id="key_home" key="a" control="true"
command="cmd_beginLine"/>
<handler type="keypress" id="key_end" key="e" control="true"
command="cmd_endLine"/>
<handler type="keypress" id="key_left" key="b" control="true"
command="cmd_charPrevious"/>
<handler type="keypress" id="key_right" key="f" control="true"
command="cmd_charNext"/>
<handler type="keypress" id="key_delback" key="h" control="true"
command="cmd_deleteCharBackward"/>
<handler type="keypress" id="key_delforw" key="d" control="true"
command="cmd_deleteCharForward"/>
<handler type="keypress" id="key_delwback" key="w" control="true"
command="cmd_deleteWordBackward"/>
<handler type="keypress" id="key_del_bol" key="u" control="true"
command="cmd_deleteToBeginningOfLine"/>
<handler type="keypress" id="key_del_eol" key="k" control="true"
command="cmd_deleteToEndOfLine"/>
<!-- Windows copy/paste/undo/redo keys -->
<handler type="keypress" id="key_wincopy" key="c" control="true"
command="cmd_copy"/>
<handler type="keypress" id="key_wincut" key="x" control="true"
command="cmd_cut"/>
<handler type="keypress" id="key_winundo" key="z" control="true"
command="cmd_undo"/>
<handler type="keypress" id="key_winredo" key="r" control="true"
command="cmd_redo"/>
<handler type="keypress" id="key_altwincut" keycode="VK_DELETE" shift="true" control="false" alt="false"
command="cmd_cut"/>
<handler type="keypress" id="key_altwincopy" keycode="VK_INSERT" control="true" shift="false" alt="false"
command="cmd_copy"/>
<handler type="keypress" id="key_altwinpaste" keycode="VK_INSERT" shift="true" control="false" alt="false"
command="cmd_paste"/>
<!-- navigating by word keys -->
<handler type="keypress" id="key_home" keycode="VK_HOME" alt="false" shift="false" control="false"
command="cmd_beginLine"/>
<handler type="keypress" id="key_end" keycode="VK_END" alt="false" shift="false" control="false"
command="cmd_endLine"/>
<handler type="keypress" id="key_homeshift" keycode="VK_HOME" shift="true" alt="false" control="false"
command="cmd_selectBeginLine"/>
<handler type="keypress" id="key_endshift" keycode="VK_END" shift="true" alt="false" control="false"
command="cmd_selectEndLine"/>
<handler type="keypress" id="key_leftcontrol" keycode="VK_LEFT" control="true" alt="false" shift="false"
command="cmd_wordPrevious"/>
<handler type="keypress" id="key_rightcontrol" keycode="VK_RIGHT" control="true" alt="false" shift="false"
command="cmd_wordNext"/>
<handler type="keypress" id="key_leftshiftcontrol" keycode="VK_LEFT" shift="true" control="true" alt="false"
command="cmd_selectWordPrevious"/>
<handler type="keypress" id="key_rightshiftcontrol" keycode="VK_RIGHT" shift="true" control="true" alt="false"
command="cmd_selectWordNext"/>
<handler type="keypress" id="key_redo" key="y" primary="true"
command="cmd_redo"/>
</handlers>
</binding>
<binding name="textAreas" extends="resource:/chrome/htmlBindings.xml#textAreasBase">
<handlers>
<!-- Emacsish single-line motion and delete keys -->
<handler type="keypress" id="key_home" key="a" control="true"
command="cmd_beginLine"/>
<handler type="keypress" id="key_end" key="e" control="true"
command="cmd_endLine"/>
<handler type="keypress" id="key_left" key="b" control="true"
command="cmd_charPrevious"/>
<handler type="keypress" id="key_right" key="f" control="true"
command="cmd_charNext"/>
<handler type="keypress" id="key_delback" key="h" control="true"
command="cmd_deleteCharBackward"/>
<handler type="keypress" id="key_delforw" key="d" control="true"
command="cmd_deleteCharForward"/>
<handler type="keypress" id="key_delwback" key="w" control="true"
command="cmd_deleteWordBackward"/>
<handler type="keypress" id="key_del_bol" key="u" control="true"
command="cmd_deleteToBeginningOfLine"/>
<handler type="keypress" id="key_del_eol" key="k" control="true"
command="cmd_deleteToEndOfLine"/>
<!-- Windows copy/paste/undo/redo keys -->
<handler type="keypress" id="key_wincopy" key="c" control="true"
command="cmd_copy"/>
<handler type="keypress" id="key_wincut" key="x" control="true"
command="cmd_cut"/>
<handler type="keypress" id="key_winundo" key="z" control="true"
command="cmd_undo"/>
<handler type="keypress" id="key_winredo" key="r" control="true"
command="cmd_redo"/>
<handler type="keypress" id="key_altwincut" keycode="VK_DELETE" shift="true" control="false" alt="false"
command="cmd_cut"/>
<handler type="keypress" id="key_altwincopy" keycode="VK_INSERT" control="true" shift="false" alt="false"
command="cmd_copy"/>
<handler type="keypress" id="key_altwinpaste" keycode="VK_INSERT" shift="true" control="false" alt="false"
command="cmd_paste"/>
<!-- Emacsish multi-line motion and delete keys -->
<handler type="keypress" id="key_linedown" key="n" control="true"
command="cmd_lineNext"/>
<handler type="keypress" id="key_lineup" key="p" control="true"
command="cmd_linePrevious"/>
<!-- handle home/end/arrow keys and redo -->
<handler type="keypress" id="key_home" keycode="VK_HOME" alt="false" shift="false" control="false"
command="cmd_beginLine"/>
<handler type="keypress" id="key_end" keycode="VK_END" alt="false" shift="false" control="false"
command="cmd_endLine"/>
<handler type="keypress" id="key_homeshift" keycode="VK_HOME" shift="true" alt="false" control="false"
command="cmd_selectBeginLine"/>
<handler type="keypress" id="key_endshift" keycode="VK_END" shift="true" alt="false" control="false"
command="cmd_selectEndLine"/>
<handler type="keypress" id="key_leftcontrol" keycode="VK_LEFT" control="true" alt="false" shift="false"
command="cmd_wordPrevious"/>
<handler type="keypress" id="key_rightcontrol" keycode="VK_RIGHT" control="true" alt="false" shift="false"
command="cmd_wordNext"/>
<handler type="keypress" id="key_leftshiftcontrol" keycode="VK_LEFT" shift="true" control="true" alt="false"
command="cmd_selectWordPrevious"/>
<handler type="keypress" id="key_rightshiftcontrol" keycode="VK_RIGHT" shift="true" control="true" alt="false"
command="cmd_selectWordNext"/>
<handler type="keypress" id="key_redo" key="y" primary="true"
command="cmd_redo"/>
</handlers>
</binding>
</bindings>