gecko-dev/layout/base/public/nsIFrameSelection.h

200 строки
7.9 KiB
C
Исходник Обычный вид История

Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
/* -*- 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.
*/
/*
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* NOTE!! This is not a general class, but specific to layout and frames.
* Consumers looking for the general selection interface should look at
* nsIDOMSelection.
*/
#ifndef nsIFrameSelection_h___
#define nsIFrameSelection_h___
#include "nsISupports.h"
#include "nsIFrame.h"
#include "nsIFocusTracker.h"
#include "nsIDOMSelection.h"
#include "nsIPresShell.h"
#include "nsIContent.h"
#include "nsCOMPtr.h"
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
// IID for the nsIFrameSelection interface
#define NS_IFRAMESELECTION_IID \
{ 0xf46e4171, 0xdeaa, 0x11d1, \
{ 0x97, 0xfc, 0x0, 0x60, 0x97, 0x3, 0xc1, 0x4e } }
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
//----------------------------------------------------------------------
// Selection interface
struct SelectionDetails
{
PRInt32 mStart;
PRInt32 mEnd;
SelectionType mType;
SelectionDetails *mNext;
};
/*PeekOffsetStruct
* @param mTracker is used to get the PresContext usefull for measuring text ect.
* @param mDesiredX is the "desired" location of the new caret
* @param mAmount eWord, eCharacter, eLine
* @param mDirection enum defined in this file to be eForward or eBackward
* @param mStartOffset start offset to start the peek. 0 == beginning -1 = end
* @param mResultContent content that actually is the next/previous
* @param mResultOffset offset for result content
* @param mResultFrame resulting frame for peeking
* @param mEatingWS boolean to tell us the state of our search for Next/Prev
* @param mPreferLeft true = prev line end, false = next line begin
*/
struct nsPeekOffsetStruct
{
void SetData(nsIFocusTracker *aTracker,
nscoord aDesiredX,
nsSelectionAmount aAmount,
nsDirection aDirection,
PRInt32 aStartOffset,
PRBool aEatingWS,
PRBool aPreferLeft)
{
mTracker=aTracker;mDesiredX=aDesiredX;mAmount=aAmount;
mDirection=aDirection;mStartOffset=aStartOffset;mEatingWS=aEatingWS;
mPreferLeft=aPreferLeft;
}
nsIFocusTracker *mTracker;
nscoord mDesiredX;
nsSelectionAmount mAmount;
nsDirection mDirection;
PRInt32 mStartOffset;
nsCOMPtr<nsIContent> mResultContent;
PRInt32 mContentOffset;
nsIFrame *mResultFrame;
PRBool mEatingWS;
PRBool mPreferLeft;
};
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
class nsIFrameSelection : public nsISupports {
public:
1999-03-03 22:48:57 +03:00
static const nsIID& GetIID() { static nsIID iid = NS_IFRAMESELECTION_IID; return iid; }
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
/** Init will initialize the frame selector with the necessary focus tracker to
* be used by most of the methods
* @param aTracker is the parameter to be used for most of the other calls for callbacks ect
*/
NS_IMETHOD Init(nsIFocusTracker *aTracker) = 0;
/** ShutDown will be called when the owner of the frame selection is shutting down
* this should be the time to release all member variable interfaces. all methods
* called after ShutDown should return NS_ERROR_FAILURE
*/
NS_IMETHOD ShutDown() = 0;
/** HandleKeyEvent will accept an event and frame and
* will return NS_OK if it handles the event or NS_COMFALSE if not.
* <P>DOES NOT ADDREF<P>
* @param aGuiEvent is the event that should be dealt with by aFocusFrame
* @param aFrame is the frame that MAY handle the event
*/
NS_IMETHOD HandleTextEvent(nsGUIEvent *aGuiEvent) = 0;
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
/** HandleKeyEvent will accept an event and frame and
* will return NS_OK if it handles the event or NS_COMFALSE if not.
* <P>DOES NOT ADDREF<P>
* @param aGuiEvent is the event that should be dealt with by aFocusFrame
* @param aFrame is the frame that MAY handle the event
*/
NS_IMETHOD HandleKeyEvent(nsGUIEvent *aGuiEvent) = 0;
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
/** HandleClick will take the focus to the new frame at the new offset and
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
* will either extend the selection from the old anchor, or replace the old anchor.
* the old anchor and focus position may also be used to deselect things
* @param aNewfocus is the content that wants the focus
* @param aContentOffset is the content offset of the parent aNewFocus
* @param aContentOffsetEnd is the content offset of the parent aNewFocus and is specified different
* when you need to select to and include both start and end points
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
* @param aContinueSelection is the flag that tells the selection to keep the old anchor point or not.
* @param aMultipleSelection will tell the frame selector to replace /or not the old selection.
* cannot coexist with aContinueSelection
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
*/
NS_IMETHOD HandleClick(nsIContent *aNewFocus, PRUint32 aContentOffset, PRUint32 aContentEndOffset ,
PRBool aContinueSelection, PRBool aMultipleSelection) = 0;
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
/** EnableFrameNotification
* mutch like start batching, except all dirty calls are ignored. no notifications will go
* out until enableNotifications with a PR_TRUE is called
*/
NS_IMETHOD EnableFrameNotification(PRBool aEnable) = 0;
/** Lookup Selection
* returns in frame coordinates the selection beginning and ending with the type of selection given
* @param aContent is the content asking
* @param aContentOffset is the starting content boundary
* @param aContentLength is the length of the content piece asking
* @param aReturnDetails linkedlist of return values for the selection.
*/
NS_IMETHOD LookUpSelection(nsIContent *aContent, PRInt32 aContentOffset, PRInt32 aContentLength,
SelectionDetails **aReturnDetails) = 0;
/** SetMouseDownState(PRBool);
* sets the mouse state to aState for resons of drag state.
* @param aState is the new state of mousedown
*/
NS_IMETHOD SetMouseDownState(PRBool aState)=0;
/** GetMouseDownState(PRBool *);
* gets the mouse state to aState for resons of drag state.
* @param aState will hold the state of mousedown
*/
NS_IMETHOD GetMouseDownState(PRBool *aState)=0;
/** GetSelection
* no query interface for selection. must use this method now.
* @param aSelectionType enum value defined in nsIDOMSelection for the domseleciton you want.
*/
NS_IMETHOD GetSelection(SelectionType aSelectionType, nsIDOMSelection **aDomSelection)=0;
/**
* ScrollSelectionIntoView scrolls a region of the selection,
* so that it is visible in the scrolled view.
*
* @param aType the selection to scroll into view.
* @param aRegion the region inside the selection to scroll into view.
*/
NS_IMETHOD ScrollSelectionIntoView(SelectionType aSelectionType, SelectionRegion aRegion)=0;
/** RepaintSelection repaints the selected frames that are inside the selection
* specified by aSelectionType.
* @param aSelectionType enum value defined in nsIDOMSelection for the domseleciton you want.
*/
NS_IMETHOD RepaintSelection(SelectionType aSelectionType)=0;
1999-09-11 04:18:02 +04:00
/** GetFrameForNodeOffset given a node and its child offset, return the nsIFrame and
* the offset into that frame.
* @param aNode input parameter for the node to look at
* @param aOffset offset into above node.
* @param aResultFrame will contain the return frame. MUST NOT BE NULL or will return error
*/
NS_IMETHOD GetFrameForNodeOffset(nsIContent *aNode, PRInt32 aOffset, nsIFrame **aReturnFrame)=0;
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
};
Renaming nsISelection to nsIFrameSelection. Here is the old log from nsISelection (since CVS doesn't allow renames): > revision 1.9 > date: 1999/02/02 00:23:35; author: mjudge%netscape.com; state: Exp; lines: +2 -1 > keyboard navigation of selection. adding API for nsIFrame. fixing nsFrame and nstextframe to reflect the implementations of the nsIFrame API. nsRangeList implements the handlekeyevent now. > ---------------------------- > revision 1.8 > date: 1999/01/29 18:57:51; author: akkana%netscape.com; state: Exp; lines: +6 -0 > Implement a new interface, nsIDOMSelection, intended to become the > external interface for selection (to be IDL-ified later). > > Fix some editor bugs: > - Advance the cursor on text insert (so text is inserted in the right order) > - Make DeleteSelection in the editor call the actual selection > - Make DeleteSelection update the frames' notion of the selection > ---------------------------- > revision 1.7 > date: 1999/01/25 01:42:32; author: mjudge%netscape.com; state: Exp; lines: +3 -4 > Focus tracker needs to send the tracker to the implementation of selection so that it can update the tracker as to which frame(s) should be considered the focus frames ect. This is not yet working fully. Everything I am checking in will stay, I simply have a decision to make as to exactly what to do next. RangeList also had some modifications to better selection > ---------------------------- > revision 1.6 > date: 1999/01/22 18:58:09; author: mjudge%netscape.com; state: Exp; lines: +6 -0 > chagnes for selection to work > ---------------------------- > revision 1.5 > date: 1999/01/18 22:57:08; author: mjudge%netscape.com; state: Exp; lines: +1 -1 > Files for selection across frames. > ---------------------------- > revision 1.4 > date: 1998/12/14 18:34:09; author: mjudge%netscape.com; state: Exp; lines: +13 -1 > adding in selection > ---------------------------- > revision 1.3 > date: 1998/12/08 18:25:37; author: mjudge%netscape.com; state: Exp; lines: +9 -32 > changes to selection > ---------------------------- > revision 1.2 > date: 1998/05/01 05:55:11; author: rpotts; state: Exp; lines: +1 -1 > nslayout.h is *all* lower case > ---------------------------- > revision 1.1 > date: 1998/04/30 19:15:05; author: rods; state: Exp; > initial
1999-02-12 02:10:20 +03:00
#endif /* nsIFrameSelection_h___ */