From b55a43814cebd793595e24c193b7cc7de10a3ed3 Mon Sep 17 00:00:00 2001 From: "dp%netscape.com" Date: Wed, 19 May 1999 19:17:07 +0000 Subject: [PATCH] Caret files moved from base/ --- layout/base/public/nsCaretProperties.h | 53 +++++++++++++++++++ layout/base/src/nsCaretProperties_gtk.cpp | 40 ++++++++++++++ layout/base/src/nsCaretProperties_mac.cpp | 43 +++++++++++++++ layout/base/src/nsCaretProperties_motif.cpp | 39 ++++++++++++++ layout/base/src/nsCaretProperties_photon.cpp | 40 ++++++++++++++ .../base/src/nsCaretProperties_rhapsody.cpp | 39 ++++++++++++++ layout/base/src/nsCaretProperties_windows.cpp | 40 ++++++++++++++ layout/base/src/nsCaretProperties_xlib.cpp | 33 ++++++++++++ 8 files changed, 327 insertions(+) create mode 100644 layout/base/public/nsCaretProperties.h create mode 100644 layout/base/src/nsCaretProperties_gtk.cpp create mode 100644 layout/base/src/nsCaretProperties_mac.cpp create mode 100644 layout/base/src/nsCaretProperties_motif.cpp create mode 100644 layout/base/src/nsCaretProperties_photon.cpp create mode 100644 layout/base/src/nsCaretProperties_rhapsody.cpp create mode 100644 layout/base/src/nsCaretProperties_windows.cpp create mode 100644 layout/base/src/nsCaretProperties_xlib.cpp diff --git a/layout/base/public/nsCaretProperties.h b/layout/base/public/nsCaretProperties.h new file mode 100644 index 000000000000..eec6629dc2db --- /dev/null +++ b/layout/base/public/nsCaretProperties.h @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +// this class is used to gather caret properties from the OS. It +// must be implemented by each platform that wants more than +// the generic caret properties. + +class nsCaretProperties +{ + + public: + + nsCaretProperties(); + virtual ~nsCaretProperties() {} + + virtual PRInt32 GetCaretWidth() { return mCaretWidth; } + virtual PRUint32 GetCaretBlinkRate() { return mBlinkRate; } + + + protected: + + // have value for no blinking + + enum { + eDefaulBlinkRate = 500, // twice a second + eDefaultCaretWidth = 20 // 20 twips = 1 pixel + }; + + + PRInt32 mCaretWidth; // caret width in twips + PRUint32 mBlinkRate; // blink rate in milliseconds + + + // members for vertical placement & size? + +}; + +NS_BASE nsCaretProperties* NewCaretProperties(); diff --git a/layout/base/src/nsCaretProperties_gtk.cpp b/layout/base/src/nsCaretProperties_gtk.cpp new file mode 100644 index 000000000000..c7d190e1ed06 --- /dev/null +++ b/layout/base/src/nsCaretProperties_gtk.cpp @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + + +#include "nscore.h" + +#include "nsCaretProperties.h" + + +//----------------------------------------------------------------------------- +nsCaretProperties::nsCaretProperties() +: mCaretWidth(eDefaultCaretWidth) +, mBlinkRate(eDefaulBlinkRate) +{ + // in your platform-specific class, get data from the OS in your constructor + + //mBlinkRate = 0; // don't blink the caret +} + + +//----------------------------------------------------------------------------- +nsCaretProperties* NewCaretProperties() +{ + return new nsCaretProperties(); +} diff --git a/layout/base/src/nsCaretProperties_mac.cpp b/layout/base/src/nsCaretProperties_mac.cpp new file mode 100644 index 000000000000..d5eb83642d72 --- /dev/null +++ b/layout/base/src/nsCaretProperties_mac.cpp @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#include + +#include "nscore.h" + +#include "nsCaretProperties.h" + + +//----------------------------------------------------------------------------- +nsCaretProperties::nsCaretProperties() +: mCaretWidth(eDefaultCaretWidth) +, mBlinkRate(eDefaulBlinkRate) +{ + // in your platform-specific class, get data from the OS in your constructor + + // MacOS calls + + mBlinkRate = ::GetCaretTime() * 1000 / 60; +} + + +//----------------------------------------------------------------------------- +nsCaretProperties* NewCaretProperties() +{ + return new nsCaretProperties(); +} diff --git a/layout/base/src/nsCaretProperties_motif.cpp b/layout/base/src/nsCaretProperties_motif.cpp new file mode 100644 index 000000000000..03b4b7657c36 --- /dev/null +++ b/layout/base/src/nsCaretProperties_motif.cpp @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + + +#include "nscore.h" + +#include "nsCaretProperties.h" + + + +//----------------------------------------------------------------------------- +nsCaretProperties::nsCaretProperties() +: mCaretWidth(eDefaultCaretWidth) +, mBlinkRate(eDefaulBlinkRate) +{ + // in your platform-specific class, get data from the OS in your constructor +} + + +//----------------------------------------------------------------------------- +nsCaretProperties* NewCaretProperties() +{ + return new nsCaretProperties(); +} diff --git a/layout/base/src/nsCaretProperties_photon.cpp b/layout/base/src/nsCaretProperties_photon.cpp new file mode 100644 index 000000000000..c7d190e1ed06 --- /dev/null +++ b/layout/base/src/nsCaretProperties_photon.cpp @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + + +#include "nscore.h" + +#include "nsCaretProperties.h" + + +//----------------------------------------------------------------------------- +nsCaretProperties::nsCaretProperties() +: mCaretWidth(eDefaultCaretWidth) +, mBlinkRate(eDefaulBlinkRate) +{ + // in your platform-specific class, get data from the OS in your constructor + + //mBlinkRate = 0; // don't blink the caret +} + + +//----------------------------------------------------------------------------- +nsCaretProperties* NewCaretProperties() +{ + return new nsCaretProperties(); +} diff --git a/layout/base/src/nsCaretProperties_rhapsody.cpp b/layout/base/src/nsCaretProperties_rhapsody.cpp new file mode 100644 index 000000000000..03b4b7657c36 --- /dev/null +++ b/layout/base/src/nsCaretProperties_rhapsody.cpp @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + + +#include "nscore.h" + +#include "nsCaretProperties.h" + + + +//----------------------------------------------------------------------------- +nsCaretProperties::nsCaretProperties() +: mCaretWidth(eDefaultCaretWidth) +, mBlinkRate(eDefaulBlinkRate) +{ + // in your platform-specific class, get data from the OS in your constructor +} + + +//----------------------------------------------------------------------------- +nsCaretProperties* NewCaretProperties() +{ + return new nsCaretProperties(); +} diff --git a/layout/base/src/nsCaretProperties_windows.cpp b/layout/base/src/nsCaretProperties_windows.cpp new file mode 100644 index 000000000000..3c3be037e1a1 --- /dev/null +++ b/layout/base/src/nsCaretProperties_windows.cpp @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + + +#include "nscore.h" + +#include "nsCaretProperties.h" + + + +//----------------------------------------------------------------------------- +nsCaretProperties::nsCaretProperties() +: mCaretWidth(eDefaultCaretWidth) +, mBlinkRate(eDefaulBlinkRate) +{ + // in your platform-specific class, get data from the OS in your constructor + mCaretWidth = 30; // 2 pixel caret on Windows +} + + +//----------------------------------------------------------------------------- +nsCaretProperties* NewCaretProperties() +{ + return new nsCaretProperties(); +} diff --git a/layout/base/src/nsCaretProperties_xlib.cpp b/layout/base/src/nsCaretProperties_xlib.cpp new file mode 100644 index 000000000000..a7e92a68466e --- /dev/null +++ b/layout/base/src/nsCaretProperties_xlib.cpp @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#include "nscore.h" +#include "nsCaretProperties.h" + +nsCaretProperties::nsCaretProperties() + :mCaretWidth(eDefaultCaretWidth), + mBlinkRate(eDefaulBlinkRate) +{ +} + + + +nsCaretProperties* NewCaretProperties() +{ + return new nsCaretProperties(); +}