Modified gfx-rendered widget styles to more closely match styles
in http://www.mozilla.org/xpfe/nsGFXWidgets.html. Added check for null mHitFrame in nsListControlFrame::MultipleSelection and nsListControlFrame::SingleSelection.
This commit is contained in:
@@ -800,6 +800,26 @@ nsComboboxControlFrame::SetButtonStyleContexts(nsIStyleContext * aOut, nsIStyleC
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
nsComboboxControlFrame::SelectionChanged()
|
||||
{
|
||||
// Generate a NS_ONCHANGE event.
|
||||
|
||||
//XXX: Todo complete the implementation of selection changed
|
||||
// nsIViewManager *vm;
|
||||
// view->GetViewManager(vm);
|
||||
// nsGUIEvent event;
|
||||
// event.eventStructType = NS_GUI_EVENT;
|
||||
// event.widget = this; //XXX: How do I get a widget
|
||||
// NS_ADDREF(event.widget);
|
||||
// NS_CONTROL_CHANGE
|
||||
// InitEvent(event, aMsg);
|
||||
// vm->DispatchEvent(&event, result);
|
||||
// NS_RELEASE(event.widget);
|
||||
// NS_RELEASE(vm);
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
NS_IMETHODIMP
|
||||
nsComboboxControlFrame::ListWasSelected(nsIPresContext* aPresContext)
|
||||
@@ -809,7 +829,12 @@ nsComboboxControlFrame::ListWasSelected(nsIPresContext* aPresContext)
|
||||
|
||||
nsString str;
|
||||
if (nsnull != mListControlFrame) {
|
||||
mListControlFrame->GetSelectedItem(mTextStr);
|
||||
mListControlFrame->GetSelectedItem(str);
|
||||
// Check to see if the selection changed
|
||||
if (PR_FALSE == str.Equals(mTextStr)) {
|
||||
mTextStr = str;
|
||||
SelectionChanged();
|
||||
}
|
||||
nsIFormControlFrame* fcFrame = nsnull;
|
||||
nsresult result = mListFrame->QueryInterface(kIFormControlFrameIID, (void**)&fcFrame);
|
||||
if ((NS_OK == result) && (nsnull != fcFrame)) {
|
||||
|
||||
@@ -135,12 +135,14 @@ public:
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
virtual void PaintComboboxControl(nsIPresContext& aPresContext,
|
||||
nsIRenderingContext& aRenderingContext,
|
||||
const nsRect& aDirtyRect,
|
||||
nsFramePaintLayer aWhichLayer);
|
||||
virtual PRIntn GetSkipSides() const;
|
||||
void InitTextStr();
|
||||
void SelectionChanged();
|
||||
|
||||
nsFormFrame* mFormFrame; // Parent Form Frame
|
||||
nsIFrame * mPlaceHolderFrame;
|
||||
|
||||
@@ -622,79 +622,82 @@ void nsListControlFrame::ExtendedSelection(PRInt32 aStartIndex, PRInt32 aEndInde
|
||||
|
||||
void nsListControlFrame::SingleSelection()
|
||||
{
|
||||
// Store previous selection
|
||||
PRInt32 oldSelectedIndex = mSelectedIndex;
|
||||
// Get Current selection
|
||||
PRInt32 newSelectedIndex = (PRInt32)GetSelectedIndex(mHitFrame);
|
||||
if (newSelectedIndex != kNothingSelected) {
|
||||
if (oldSelectedIndex != newSelectedIndex) {
|
||||
// Deselect the previous selection if there is one
|
||||
if (oldSelectedIndex != kNothingSelected) {
|
||||
SetFrameSelected(oldSelectedIndex, PR_FALSE);
|
||||
if (nsnull != mHitFrame) {
|
||||
// Store previous selection
|
||||
PRInt32 oldSelectedIndex = mSelectedIndex;
|
||||
// Get Current selection
|
||||
PRInt32 newSelectedIndex = (PRInt32)GetSelectedIndex(mHitFrame);
|
||||
if (newSelectedIndex != kNothingSelected) {
|
||||
if (oldSelectedIndex != newSelectedIndex) {
|
||||
// Deselect the previous selection if there is one
|
||||
if (oldSelectedIndex != kNothingSelected) {
|
||||
SetFrameSelected(oldSelectedIndex, PR_FALSE);
|
||||
}
|
||||
// Display the new selection
|
||||
SetFrameSelected(newSelectedIndex, PR_TRUE);
|
||||
mSelectedIndex = newSelectedIndex;
|
||||
} else {
|
||||
// Selecting the currently selected item so do nothing.
|
||||
}
|
||||
// Display the new selection
|
||||
SetFrameSelected(newSelectedIndex, PR_TRUE);
|
||||
mSelectedIndex = newSelectedIndex;
|
||||
} else {
|
||||
// Selecting the currently selected item so do nothing.
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void nsListControlFrame::MultipleSelection(PRBool aIsShift, PRBool aIsControl)
|
||||
{
|
||||
if (nsnull != mHitFrame) {
|
||||
mSelectedIndex = (PRInt32)GetSelectedIndex(mHitFrame);
|
||||
if (kNothingSelected != mSelectedIndex) {
|
||||
if ((aIsShift) || (mButtonDown && (!aIsControl))) {
|
||||
// Shift is held down
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
if (mEndExtendedIndex == kNothingSelected) {
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
ExtendedSelection(mStartExtendedIndex, mEndExtendedIndex, PR_FALSE, PR_TRUE);
|
||||
} else {
|
||||
if (mStartExtendedIndex < mEndExtendedIndex) {
|
||||
if (mSelectedIndex < mStartExtendedIndex) {
|
||||
ExtendedSelection(mSelectedIndex, mEndExtendedIndex, PR_TRUE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex > mEndExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex+1, mSelectedIndex, PR_FALSE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex < mEndExtendedIndex) {
|
||||
ExtendedSelection(mSelectedIndex+1, mEndExtendedIndex, PR_FALSE, PR_FALSE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
}
|
||||
} else if (mStartExtendedIndex > mEndExtendedIndex) {
|
||||
if (mSelectedIndex > mStartExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex, mSelectedIndex, PR_TRUE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex < mEndExtendedIndex) {
|
||||
ExtendedSelection(mStartExtendedIndex+1, mEndExtendedIndex-1, PR_FALSE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex > mEndExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex, mSelectedIndex-1, PR_FALSE, PR_FALSE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
if ((aIsShift) || (mButtonDown && (!aIsControl))) {
|
||||
// Shift is held down
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
if (mEndExtendedIndex == kNothingSelected) {
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
ExtendedSelection(mStartExtendedIndex, mEndExtendedIndex, PR_FALSE, PR_TRUE);
|
||||
} else {
|
||||
if (mStartExtendedIndex < mEndExtendedIndex) {
|
||||
if (mSelectedIndex < mStartExtendedIndex) {
|
||||
ExtendedSelection(mSelectedIndex, mEndExtendedIndex, PR_TRUE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex > mEndExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex+1, mSelectedIndex, PR_FALSE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex < mEndExtendedIndex) {
|
||||
ExtendedSelection(mSelectedIndex+1, mEndExtendedIndex, PR_FALSE, PR_FALSE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
}
|
||||
} else if (mStartExtendedIndex > mEndExtendedIndex) {
|
||||
if (mSelectedIndex > mStartExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex, mSelectedIndex, PR_TRUE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex < mEndExtendedIndex) {
|
||||
ExtendedSelection(mStartExtendedIndex+1, mEndExtendedIndex-1, PR_FALSE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex > mEndExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex, mSelectedIndex-1, PR_FALSE, PR_FALSE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (aIsControl) {
|
||||
// Control is held down
|
||||
if (IsFrameSelected(mSelectedIndex)) {
|
||||
SetFrameSelected(mSelectedIndex, PR_FALSE);
|
||||
} else {
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
}
|
||||
} else if (aIsControl) {
|
||||
// Control is held down
|
||||
if (IsFrameSelected(mSelectedIndex)) {
|
||||
SetFrameSelected(mSelectedIndex, PR_FALSE);
|
||||
} else {
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
}
|
||||
|
||||
} else {
|
||||
// Neither control nor shift is held down
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
mStartExtendedIndex = mSelectedIndex;
|
||||
mEndExtendedIndex = kNothingSelected;
|
||||
ClearSelection();
|
||||
}
|
||||
} else {
|
||||
// Neither control nor shift is held down
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
mStartExtendedIndex = mSelectedIndex;
|
||||
mEndExtendedIndex = kNothingSelected;
|
||||
ClearSelection();
|
||||
}
|
||||
}
|
||||
|
||||
//XXX Fix this mHitContent->SetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::kClass, (selected?kSelectedFocus:kNormal), PR_TRUE);
|
||||
}
|
||||
//XXX Fix this mHitContent->SetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::kClass, (selected?kSelectedFocus:kNormal), PR_TRUE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -416,7 +416,7 @@ form {
|
||||
}
|
||||
input {
|
||||
vertical-align: bottom;
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 2px inset rgb(204, 204, 204);
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
@@ -430,8 +430,8 @@ input[type=radio] {
|
||||
margin-right: 5px;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
border: 2px outset rgb(192, 192, 192);
|
||||
background-color:rgb(192, 192, 192);
|
||||
border: 2px outset rgb(204, 204, 204);
|
||||
background-color:rgb(204, 204, 204);
|
||||
color:black;
|
||||
width:12px;
|
||||
height:12px;
|
||||
@@ -440,7 +440,7 @@ input[type=radio] {
|
||||
|
||||
input[type=radio]:active {
|
||||
background-color:white;
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 2px inset rgb(204, 204, 204);
|
||||
}
|
||||
|
||||
input[type=radio]:hover {
|
||||
@@ -463,17 +463,17 @@ input[type=checkbox] {
|
||||
margin-right: 5px;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 4px;
|
||||
border: 2px outset rgb(192, 192, 192);
|
||||
border: 1px outset rgb(153, 153, 153);
|
||||
width:11px;
|
||||
height:11px;
|
||||
background-color:rgb(192, 192, 192);
|
||||
background-color:rgb(204, 204, 204);
|
||||
color:black;
|
||||
-moz-border-radius:1px;
|
||||
/* -moz-border-radius:1px; */
|
||||
}
|
||||
|
||||
input[type=checkbox]:active {
|
||||
background-color:gray;
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 1px inset rgb(204, 204, 204);
|
||||
}
|
||||
|
||||
input[type=checkbox]:hover {
|
||||
@@ -694,20 +694,20 @@ button:focus:-moz-focus-inner {
|
||||
}
|
||||
|
||||
:-moz-file-button {
|
||||
border: 2px outset rgb(192, 192, 192);
|
||||
border: 2px outset rgb(204, 204, 204);
|
||||
color:black;
|
||||
background-color: rgb(192, 192, 192);
|
||||
background-color: rgb(204, 204, 204);
|
||||
}
|
||||
|
||||
:-moz-file-text {
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 2px inset rgb(204, 204, 204);
|
||||
margin-right: 10px;
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
input[type=text] {
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 2px inset rgb(204, 204, 204);
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
@@ -717,7 +717,7 @@ input[type=text][disabled] {
|
||||
}
|
||||
|
||||
input[type=password] {
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 2px inset rgb(204, 204, 204);
|
||||
background-color: white;
|
||||
color:black;
|
||||
}
|
||||
@@ -730,15 +730,22 @@ label {
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
select {
|
||||
/* Combo box style */
|
||||
select, select[size="1"] {
|
||||
vertical-align: bottom;
|
||||
border: 1px inset #c0c0c0;
|
||||
background-color: white;
|
||||
background-color:rgb(204, 204, 204);
|
||||
color:black;
|
||||
white-space:nowrap;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Listbox style */
|
||||
select[size] {
|
||||
background-color: white;
|
||||
border: 1px inset rgb(153, 153, 153);
|
||||
}
|
||||
|
||||
select:active {
|
||||
border : 1px solid black;
|
||||
}
|
||||
@@ -750,7 +757,7 @@ option {
|
||||
}
|
||||
|
||||
/* Combobox item style */
|
||||
select option[-moz-option-selected], select[size="1"] option[-moz-option-selected] {
|
||||
select option[-moz-option-selected] {
|
||||
color:black;
|
||||
background-color:white;
|
||||
}
|
||||
@@ -758,16 +765,14 @@ select option[-moz-option-selected], select[size="1"] option[-moz-option-selecte
|
||||
/* List box item selected style */
|
||||
select[size] option[-moz-option-selected] {
|
||||
color:white;
|
||||
background-color:black;
|
||||
background-color:rgb(51,51,102);
|
||||
}
|
||||
|
||||
option.selected {
|
||||
border: 1px solid rgb(0,0,128);
|
||||
background-color: rgb(0,0,128);
|
||||
color: rgb(255,255,255);
|
||||
select[size="1"] option[-moz-option-selected] {
|
||||
color:black;
|
||||
background-color:white;
|
||||
}
|
||||
|
||||
|
||||
option.selectedfocus {
|
||||
border: 1px dotted white;
|
||||
background-color: rgb(0,0,128);
|
||||
@@ -990,14 +995,14 @@ sourcetext { /* XXX should not be in HTML namespace */
|
||||
|
||||
:-moz-dropdown-btn-pressed {
|
||||
/* border: 2px inset #c0c0c0; */
|
||||
background-color: rgb(192, 192, 192);
|
||||
background-color: rgb(204, 204, 204);
|
||||
border: none;
|
||||
}
|
||||
|
||||
:-moz-dropdown-list {
|
||||
position:absolute;
|
||||
background-color:rgb(192, 192, 192);
|
||||
border: 1px solid black;
|
||||
background-color:rgb(204, 204, 204);
|
||||
border: 1px inset rgb(153, 153, 153);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -800,6 +800,26 @@ nsComboboxControlFrame::SetButtonStyleContexts(nsIStyleContext * aOut, nsIStyleC
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
nsComboboxControlFrame::SelectionChanged()
|
||||
{
|
||||
// Generate a NS_ONCHANGE event.
|
||||
|
||||
//XXX: Todo complete the implementation of selection changed
|
||||
// nsIViewManager *vm;
|
||||
// view->GetViewManager(vm);
|
||||
// nsGUIEvent event;
|
||||
// event.eventStructType = NS_GUI_EVENT;
|
||||
// event.widget = this; //XXX: How do I get a widget
|
||||
// NS_ADDREF(event.widget);
|
||||
// NS_CONTROL_CHANGE
|
||||
// InitEvent(event, aMsg);
|
||||
// vm->DispatchEvent(&event, result);
|
||||
// NS_RELEASE(event.widget);
|
||||
// NS_RELEASE(vm);
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
NS_IMETHODIMP
|
||||
nsComboboxControlFrame::ListWasSelected(nsIPresContext* aPresContext)
|
||||
@@ -809,7 +829,12 @@ nsComboboxControlFrame::ListWasSelected(nsIPresContext* aPresContext)
|
||||
|
||||
nsString str;
|
||||
if (nsnull != mListControlFrame) {
|
||||
mListControlFrame->GetSelectedItem(mTextStr);
|
||||
mListControlFrame->GetSelectedItem(str);
|
||||
// Check to see if the selection changed
|
||||
if (PR_FALSE == str.Equals(mTextStr)) {
|
||||
mTextStr = str;
|
||||
SelectionChanged();
|
||||
}
|
||||
nsIFormControlFrame* fcFrame = nsnull;
|
||||
nsresult result = mListFrame->QueryInterface(kIFormControlFrameIID, (void**)&fcFrame);
|
||||
if ((NS_OK == result) && (nsnull != fcFrame)) {
|
||||
|
||||
@@ -135,12 +135,14 @@ public:
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
virtual void PaintComboboxControl(nsIPresContext& aPresContext,
|
||||
nsIRenderingContext& aRenderingContext,
|
||||
const nsRect& aDirtyRect,
|
||||
nsFramePaintLayer aWhichLayer);
|
||||
virtual PRIntn GetSkipSides() const;
|
||||
void InitTextStr();
|
||||
void SelectionChanged();
|
||||
|
||||
nsFormFrame* mFormFrame; // Parent Form Frame
|
||||
nsIFrame * mPlaceHolderFrame;
|
||||
|
||||
@@ -622,79 +622,82 @@ void nsListControlFrame::ExtendedSelection(PRInt32 aStartIndex, PRInt32 aEndInde
|
||||
|
||||
void nsListControlFrame::SingleSelection()
|
||||
{
|
||||
// Store previous selection
|
||||
PRInt32 oldSelectedIndex = mSelectedIndex;
|
||||
// Get Current selection
|
||||
PRInt32 newSelectedIndex = (PRInt32)GetSelectedIndex(mHitFrame);
|
||||
if (newSelectedIndex != kNothingSelected) {
|
||||
if (oldSelectedIndex != newSelectedIndex) {
|
||||
// Deselect the previous selection if there is one
|
||||
if (oldSelectedIndex != kNothingSelected) {
|
||||
SetFrameSelected(oldSelectedIndex, PR_FALSE);
|
||||
if (nsnull != mHitFrame) {
|
||||
// Store previous selection
|
||||
PRInt32 oldSelectedIndex = mSelectedIndex;
|
||||
// Get Current selection
|
||||
PRInt32 newSelectedIndex = (PRInt32)GetSelectedIndex(mHitFrame);
|
||||
if (newSelectedIndex != kNothingSelected) {
|
||||
if (oldSelectedIndex != newSelectedIndex) {
|
||||
// Deselect the previous selection if there is one
|
||||
if (oldSelectedIndex != kNothingSelected) {
|
||||
SetFrameSelected(oldSelectedIndex, PR_FALSE);
|
||||
}
|
||||
// Display the new selection
|
||||
SetFrameSelected(newSelectedIndex, PR_TRUE);
|
||||
mSelectedIndex = newSelectedIndex;
|
||||
} else {
|
||||
// Selecting the currently selected item so do nothing.
|
||||
}
|
||||
// Display the new selection
|
||||
SetFrameSelected(newSelectedIndex, PR_TRUE);
|
||||
mSelectedIndex = newSelectedIndex;
|
||||
} else {
|
||||
// Selecting the currently selected item so do nothing.
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void nsListControlFrame::MultipleSelection(PRBool aIsShift, PRBool aIsControl)
|
||||
{
|
||||
if (nsnull != mHitFrame) {
|
||||
mSelectedIndex = (PRInt32)GetSelectedIndex(mHitFrame);
|
||||
if (kNothingSelected != mSelectedIndex) {
|
||||
if ((aIsShift) || (mButtonDown && (!aIsControl))) {
|
||||
// Shift is held down
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
if (mEndExtendedIndex == kNothingSelected) {
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
ExtendedSelection(mStartExtendedIndex, mEndExtendedIndex, PR_FALSE, PR_TRUE);
|
||||
} else {
|
||||
if (mStartExtendedIndex < mEndExtendedIndex) {
|
||||
if (mSelectedIndex < mStartExtendedIndex) {
|
||||
ExtendedSelection(mSelectedIndex, mEndExtendedIndex, PR_TRUE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex > mEndExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex+1, mSelectedIndex, PR_FALSE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex < mEndExtendedIndex) {
|
||||
ExtendedSelection(mSelectedIndex+1, mEndExtendedIndex, PR_FALSE, PR_FALSE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
}
|
||||
} else if (mStartExtendedIndex > mEndExtendedIndex) {
|
||||
if (mSelectedIndex > mStartExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex, mSelectedIndex, PR_TRUE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex < mEndExtendedIndex) {
|
||||
ExtendedSelection(mStartExtendedIndex+1, mEndExtendedIndex-1, PR_FALSE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex > mEndExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex, mSelectedIndex-1, PR_FALSE, PR_FALSE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
if ((aIsShift) || (mButtonDown && (!aIsControl))) {
|
||||
// Shift is held down
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
if (mEndExtendedIndex == kNothingSelected) {
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
ExtendedSelection(mStartExtendedIndex, mEndExtendedIndex, PR_FALSE, PR_TRUE);
|
||||
} else {
|
||||
if (mStartExtendedIndex < mEndExtendedIndex) {
|
||||
if (mSelectedIndex < mStartExtendedIndex) {
|
||||
ExtendedSelection(mSelectedIndex, mEndExtendedIndex, PR_TRUE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex > mEndExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex+1, mSelectedIndex, PR_FALSE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex < mEndExtendedIndex) {
|
||||
ExtendedSelection(mSelectedIndex+1, mEndExtendedIndex, PR_FALSE, PR_FALSE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
}
|
||||
} else if (mStartExtendedIndex > mEndExtendedIndex) {
|
||||
if (mSelectedIndex > mStartExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex, mSelectedIndex, PR_TRUE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex < mEndExtendedIndex) {
|
||||
ExtendedSelection(mStartExtendedIndex+1, mEndExtendedIndex-1, PR_FALSE, PR_TRUE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
} else if (mSelectedIndex > mEndExtendedIndex) {
|
||||
ExtendedSelection(mEndExtendedIndex, mSelectedIndex-1, PR_FALSE, PR_FALSE);
|
||||
mEndExtendedIndex = mSelectedIndex;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (aIsControl) {
|
||||
// Control is held down
|
||||
if (IsFrameSelected(mSelectedIndex)) {
|
||||
SetFrameSelected(mSelectedIndex, PR_FALSE);
|
||||
} else {
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
}
|
||||
} else if (aIsControl) {
|
||||
// Control is held down
|
||||
if (IsFrameSelected(mSelectedIndex)) {
|
||||
SetFrameSelected(mSelectedIndex, PR_FALSE);
|
||||
} else {
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
}
|
||||
|
||||
} else {
|
||||
// Neither control nor shift is held down
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
mStartExtendedIndex = mSelectedIndex;
|
||||
mEndExtendedIndex = kNothingSelected;
|
||||
ClearSelection();
|
||||
}
|
||||
} else {
|
||||
// Neither control nor shift is held down
|
||||
SetFrameSelected(mSelectedIndex, PR_TRUE);
|
||||
mStartExtendedIndex = mSelectedIndex;
|
||||
mEndExtendedIndex = kNothingSelected;
|
||||
ClearSelection();
|
||||
}
|
||||
}
|
||||
|
||||
//XXX Fix this mHitContent->SetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::kClass, (selected?kSelectedFocus:kNormal), PR_TRUE);
|
||||
}
|
||||
//XXX Fix this mHitContent->SetAttribute(kNameSpaceID_HTML, nsHTMLAtoms::kClass, (selected?kSelectedFocus:kNormal), PR_TRUE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -416,7 +416,7 @@ form {
|
||||
}
|
||||
input {
|
||||
vertical-align: bottom;
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 2px inset rgb(204, 204, 204);
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
@@ -430,8 +430,8 @@ input[type=radio] {
|
||||
margin-right: 5px;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
border: 2px outset rgb(192, 192, 192);
|
||||
background-color:rgb(192, 192, 192);
|
||||
border: 2px outset rgb(204, 204, 204);
|
||||
background-color:rgb(204, 204, 204);
|
||||
color:black;
|
||||
width:12px;
|
||||
height:12px;
|
||||
@@ -440,7 +440,7 @@ input[type=radio] {
|
||||
|
||||
input[type=radio]:active {
|
||||
background-color:white;
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 2px inset rgb(204, 204, 204);
|
||||
}
|
||||
|
||||
input[type=radio]:hover {
|
||||
@@ -463,17 +463,17 @@ input[type=checkbox] {
|
||||
margin-right: 5px;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 4px;
|
||||
border: 2px outset rgb(192, 192, 192);
|
||||
border: 1px outset rgb(153, 153, 153);
|
||||
width:11px;
|
||||
height:11px;
|
||||
background-color:rgb(192, 192, 192);
|
||||
background-color:rgb(204, 204, 204);
|
||||
color:black;
|
||||
-moz-border-radius:1px;
|
||||
/* -moz-border-radius:1px; */
|
||||
}
|
||||
|
||||
input[type=checkbox]:active {
|
||||
background-color:gray;
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 1px inset rgb(204, 204, 204);
|
||||
}
|
||||
|
||||
input[type=checkbox]:hover {
|
||||
@@ -694,20 +694,20 @@ button:focus:-moz-focus-inner {
|
||||
}
|
||||
|
||||
:-moz-file-button {
|
||||
border: 2px outset rgb(192, 192, 192);
|
||||
border: 2px outset rgb(204, 204, 204);
|
||||
color:black;
|
||||
background-color: rgb(192, 192, 192);
|
||||
background-color: rgb(204, 204, 204);
|
||||
}
|
||||
|
||||
:-moz-file-text {
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 2px inset rgb(204, 204, 204);
|
||||
margin-right: 10px;
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
input[type=text] {
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 2px inset rgb(204, 204, 204);
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
@@ -717,7 +717,7 @@ input[type=text][disabled] {
|
||||
}
|
||||
|
||||
input[type=password] {
|
||||
border: 2px inset rgb(192, 192, 192);
|
||||
border: 2px inset rgb(204, 204, 204);
|
||||
background-color: white;
|
||||
color:black;
|
||||
}
|
||||
@@ -730,15 +730,22 @@ label {
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
select {
|
||||
/* Combo box style */
|
||||
select, select[size="1"] {
|
||||
vertical-align: bottom;
|
||||
border: 1px inset #c0c0c0;
|
||||
background-color: white;
|
||||
background-color:rgb(204, 204, 204);
|
||||
color:black;
|
||||
white-space:nowrap;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Listbox style */
|
||||
select[size] {
|
||||
background-color: white;
|
||||
border: 1px inset rgb(153, 153, 153);
|
||||
}
|
||||
|
||||
select:active {
|
||||
border : 1px solid black;
|
||||
}
|
||||
@@ -750,7 +757,7 @@ option {
|
||||
}
|
||||
|
||||
/* Combobox item style */
|
||||
select option[-moz-option-selected], select[size="1"] option[-moz-option-selected] {
|
||||
select option[-moz-option-selected] {
|
||||
color:black;
|
||||
background-color:white;
|
||||
}
|
||||
@@ -758,16 +765,14 @@ select option[-moz-option-selected], select[size="1"] option[-moz-option-selecte
|
||||
/* List box item selected style */
|
||||
select[size] option[-moz-option-selected] {
|
||||
color:white;
|
||||
background-color:black;
|
||||
background-color:rgb(51,51,102);
|
||||
}
|
||||
|
||||
option.selected {
|
||||
border: 1px solid rgb(0,0,128);
|
||||
background-color: rgb(0,0,128);
|
||||
color: rgb(255,255,255);
|
||||
select[size="1"] option[-moz-option-selected] {
|
||||
color:black;
|
||||
background-color:white;
|
||||
}
|
||||
|
||||
|
||||
option.selectedfocus {
|
||||
border: 1px dotted white;
|
||||
background-color: rgb(0,0,128);
|
||||
@@ -990,14 +995,14 @@ sourcetext { /* XXX should not be in HTML namespace */
|
||||
|
||||
:-moz-dropdown-btn-pressed {
|
||||
/* border: 2px inset #c0c0c0; */
|
||||
background-color: rgb(192, 192, 192);
|
||||
background-color: rgb(204, 204, 204);
|
||||
border: none;
|
||||
}
|
||||
|
||||
:-moz-dropdown-list {
|
||||
position:absolute;
|
||||
background-color:rgb(192, 192, 192);
|
||||
border: 1px solid black;
|
||||
background-color:rgb(204, 204, 204);
|
||||
border: 1px inset rgb(153, 153, 153);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user