mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-30 00:01:50 +00:00
Merge mozilla-central into mozilla-inbound.
This commit is contained in:
commit
5e0bdb82a1
@ -67,7 +67,7 @@
|
||||
#include "nsIDocument.h"
|
||||
#include "nsEventListenerManager.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsIMenuFrame.h"
|
||||
#include "nsMenuFrame.h"
|
||||
#include "nsIHTMLDocument.h"
|
||||
#include "nsIInterfaceRequestorUtils.h"
|
||||
#include "nsISelectionPrivate.h"
|
||||
@ -688,16 +688,13 @@ nsRootAccessible::ProcessDOMEvent(nsIDOMEvent* aDOMEvent)
|
||||
return; // Tree with nothing selected
|
||||
}
|
||||
#endif
|
||||
nsIFrame* menuFrame = accessible->GetFrame();
|
||||
if (!menuFrame)
|
||||
return;
|
||||
|
||||
nsIMenuFrame* imenuFrame = do_QueryFrame(menuFrame);
|
||||
if (imenuFrame)
|
||||
nsMenuFrame* menuFrame = do_QueryFrame(accessible->GetFrame());
|
||||
if (menuFrame)
|
||||
fireFocus = PR_TRUE;
|
||||
// QI failed for nsIMenuFrame means it's not on menu bar
|
||||
if (imenuFrame && imenuFrame->IsOnMenuBar() &&
|
||||
!imenuFrame->IsOnActiveMenuBar()) {
|
||||
// QI failed for nsMenuFrame means it's not on menu bar
|
||||
if (menuFrame && menuFrame->IsOnMenuBar() &&
|
||||
!menuFrame->IsOnActiveMenuBar()) {
|
||||
// It is a top level menuitem. Only fire a focus event when the menu bar
|
||||
// is active.
|
||||
return;
|
||||
|
@ -96,8 +96,9 @@ function open()
|
||||
{
|
||||
var url;
|
||||
var postData = {};
|
||||
var mayInheritPrincipal = {value: false};
|
||||
if (browser)
|
||||
url = browser.getShortcutOrURI(dialog.input.value, postData);
|
||||
url = browser.getShortcutOrURI(dialog.input.value, postData, mayInheritPrincipal);
|
||||
else
|
||||
url = dialog.input.value;
|
||||
|
||||
@ -106,7 +107,11 @@ function open()
|
||||
// fixup the URI
|
||||
switch (dialog.openWhereList.value) {
|
||||
case "0":
|
||||
browser.loadURI(url, null, postData.value, true);
|
||||
var webNav = Components.interfaces.nsIWebNavigation;
|
||||
var flags = webNav.LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP;
|
||||
if (!mayInheritPrincipal.value)
|
||||
flags |= webNav.LOAD_FLAGS_DISALLOW_INHERIT_OWNER;
|
||||
browser.gBrowser.loadURIWithFlags(url, flags, null, null, postData.value);
|
||||
break;
|
||||
case "1":
|
||||
window.opener.delayedOpenWindow(getBrowserURL(), "all,dialog=no",
|
||||
|
@ -220,6 +220,7 @@ _BROWSER_FILES = \
|
||||
browser_tabfocus.js \
|
||||
browser_tabs_isActive.js \
|
||||
browser_tabs_owner.js \
|
||||
browser_urlbarCopying.js \
|
||||
browser_urlbarTrimURLs.js \
|
||||
browser_urlHighlight.js \
|
||||
browser_visibleFindSelection.js \
|
||||
|
165
browser/base/content/test/browser_urlbarCopying.js
Normal file
165
browser/base/content/test/browser_urlbarCopying.js
Normal file
@ -0,0 +1,165 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
const trimPref = "browser.urlbar.trimURLs";
|
||||
|
||||
function test() {
|
||||
|
||||
gBrowser.selectedTab = gBrowser.addTab();
|
||||
|
||||
registerCleanupFunction(function () {
|
||||
gBrowser.removeCurrentTab();
|
||||
Services.prefs.clearUserPref(trimPref);
|
||||
URLBarSetURI();
|
||||
});
|
||||
|
||||
Services.prefs.setBoolPref(trimPref, true);
|
||||
|
||||
waitForExplicitFinish();
|
||||
|
||||
nextTest();
|
||||
}
|
||||
|
||||
var tests = [
|
||||
// pageproxystate="invalid"
|
||||
{
|
||||
setURL: "http://example.com/",
|
||||
expectedURL: "example.com",
|
||||
copyExpected: "example.com"
|
||||
},
|
||||
{
|
||||
copyVal: "<e>xample.com",
|
||||
copyExpected: "e"
|
||||
},
|
||||
|
||||
|
||||
// pageproxystate="valid" from this point on (due to the load)
|
||||
{
|
||||
loadURL: "http://example.com/",
|
||||
expectedURL: "example.com",
|
||||
copyExpected: "http://example.com/"
|
||||
},
|
||||
{
|
||||
copyVal: "<example.co>m",
|
||||
copyExpected: "http://example.co"
|
||||
},
|
||||
{
|
||||
copyVal: "e<x>ample.com",
|
||||
copyExpected: "x"
|
||||
},
|
||||
{
|
||||
copyVal: "<e>xample.com",
|
||||
copyExpected: "http://e"
|
||||
},
|
||||
|
||||
// Test escaping
|
||||
{
|
||||
loadURL: "http://example.com/()%C3%A9",
|
||||
expectedURL: "example.com/()\xe9",
|
||||
copyExpected: "http://example.com/%28%29%C3%A9"
|
||||
},
|
||||
{
|
||||
copyVal: "<example.com/(>)\xe9",
|
||||
copyExpected: "http://example.com/("
|
||||
},
|
||||
{
|
||||
copyVal: "e<xample.com/(>)\xe9",
|
||||
copyExpected: "xample.com/("
|
||||
},
|
||||
|
||||
{
|
||||
loadURL: "http://example.com/%C3%A9%C3%A9",
|
||||
expectedURL: "example.com/\xe9\xe9",
|
||||
copyExpected: "http://example.com/%C3%A9%C3%A9"
|
||||
},
|
||||
{
|
||||
copyVal: "e<xample.com/\xe9>\xe9",
|
||||
copyExpected: "xample.com/\xe9"
|
||||
},
|
||||
{
|
||||
copyVal: "<example.com/\xe9>\xe9",
|
||||
copyExpected: "http://example.com/\xe9"
|
||||
},
|
||||
|
||||
// data: and javsacript: URIs shouldn't be encoded
|
||||
{
|
||||
loadURL: "javascript:('%C3%A9')",
|
||||
expectedURL: "javascript:('\xe9')",
|
||||
copyExpected: "javascript:('\xe9')"
|
||||
},
|
||||
{
|
||||
copyVal: "<javascript:(>'\xe9')",
|
||||
copyExpected: "javascript:("
|
||||
},
|
||||
|
||||
{
|
||||
loadURL: "data:text/html,(%C3%A9)",
|
||||
expectedURL: "data:text/html,(\xe9)",
|
||||
copyExpected: "data:text/html,(\xe9)"
|
||||
},
|
||||
{
|
||||
copyVal: "<data:text/html,(>\xe9)",
|
||||
copyExpected: "data:text/html,("
|
||||
},
|
||||
{
|
||||
copyVal: "data:<text/html,(\xe9>)",
|
||||
copyExpected: "text/html,(\xe9"
|
||||
}
|
||||
];
|
||||
|
||||
function nextTest() {
|
||||
let test = tests.shift();
|
||||
if (tests.length == 0)
|
||||
runTest(test, finish);
|
||||
else
|
||||
runTest(test, nextTest);
|
||||
}
|
||||
|
||||
function runTest(test, cb) {
|
||||
function doCheck() {
|
||||
if (test.setURL || test.loadURL)
|
||||
is(gURLBar.value, test.expectedURL, "url bar value set");
|
||||
|
||||
testCopy(test.copyVal, test.copyExpected, cb);
|
||||
}
|
||||
|
||||
if (test.loadURL) {
|
||||
loadURL(test.loadURL, doCheck);
|
||||
} else {
|
||||
if (test.setURL)
|
||||
gURLBar.value = test.setURL;
|
||||
doCheck();
|
||||
}
|
||||
}
|
||||
|
||||
function testCopy(copyVal, targetValue, cb) {
|
||||
info("Expecting copy of: " + targetValue);
|
||||
waitForClipboard(targetValue, function () {
|
||||
gURLBar.focus();
|
||||
if (copyVal) {
|
||||
let startBracket = copyVal.indexOf("<");
|
||||
let endBracket = copyVal.indexOf(">");
|
||||
if (startBracket == -1 || endBracket == -1 ||
|
||||
startBracket > endBracket ||
|
||||
copyVal.replace("<", "").replace(">", "") != gURLBar.value) {
|
||||
ok(false, "invalid copyVal: " + copyVal);
|
||||
}
|
||||
gURLBar.selectionStart = startBracket;
|
||||
gURLBar.selectionEnd = endBracket - 1;
|
||||
} else {
|
||||
gURLBar.select();
|
||||
}
|
||||
|
||||
goDoCommand("cmd_copy");
|
||||
}, cb, cb);
|
||||
}
|
||||
|
||||
function loadURL(aURL, aCB) {
|
||||
gBrowser.selectedBrowser.addEventListener("load", function () {
|
||||
gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true);
|
||||
is(gBrowser.currentURI.spec, aURL, "loaded expected URL");
|
||||
aCB();
|
||||
}, true);
|
||||
|
||||
gBrowser.loadURI(aURL);
|
||||
}
|
@ -4,7 +4,7 @@
|
||||
|
||||
function testVal(originalValue, targetValue) {
|
||||
gURLBar.value = originalValue;
|
||||
is(gURLBar.value, targetValue || originalValue, "original value: " + originalValue);
|
||||
is(gURLBar.value, targetValue || originalValue, "url bar value set");
|
||||
}
|
||||
|
||||
function test() {
|
||||
@ -72,7 +72,7 @@ function test() {
|
||||
|
||||
function testCopy(originalValue, targetValue, cb) {
|
||||
waitForClipboard(targetValue, function () {
|
||||
is(gURLBar.value, originalValue);
|
||||
is(gURLBar.value, originalValue, "url bar copy value set");
|
||||
|
||||
gURLBar.focus();
|
||||
gURLBar.select();
|
||||
|
@ -505,23 +505,40 @@
|
||||
<body><![CDATA[
|
||||
// Grab the actual input field's value, not our value, which could include moz-action:
|
||||
var inputVal = this.inputField.value;
|
||||
var val = inputVal.substring(this.selectionStart, this.selectionEnd);
|
||||
var selectedVal = inputVal.substring(this.selectionStart, this.selectionEnd);
|
||||
|
||||
// If the entire value is selected and it's a valid non-javascript,
|
||||
// non-data URI, encode it.
|
||||
if (val == inputVal &&
|
||||
this.getAttribute("pageproxystate") == "valid") {
|
||||
let uri = gBrowser.currentURI;
|
||||
// If the selection doesn't start at the beginning or URL bar is
|
||||
// modified, nothing else to do here.
|
||||
if (this.getAttribute("pageproxystate") != "valid" || this.selectionStart > 0)
|
||||
return selectedVal;
|
||||
|
||||
if (uri && !uri.schemeIs("javascript") && !uri.schemeIs("data")) {
|
||||
val = uri.spec;
|
||||
let uri = gBrowser.currentURI;
|
||||
|
||||
// If the entire URL is selected, just use the actual loaded URI.
|
||||
if (inputVal == selectedVal) {
|
||||
// ... but only if isn't a javascript: or data: URI, since those
|
||||
// are hard to read when encoded
|
||||
if (!uri.schemeIs("javascript") && !uri.schemeIs("data")) {
|
||||
// Parentheses are known to confuse third-party applications (bug 458565).
|
||||
val = val.replace(/[()]/g, function (c) escape(c));
|
||||
selectedVal = uri.spec.replace(/[()]/g, function (c) escape(c));
|
||||
}
|
||||
|
||||
return selectedVal;
|
||||
}
|
||||
|
||||
return val;
|
||||
// Just the beginning of the URL is selected, check for a trimmed
|
||||
// value
|
||||
let spec = uri.spec;
|
||||
let trimmedSpec = this.trimValue(spec);
|
||||
if (spec != trimmedSpec) {
|
||||
// Prepend the portion that trimValue removed from the beginning.
|
||||
// This assumes trimValue will only truncate the URL at
|
||||
// the beginning or end (or both).
|
||||
let trimmedSegments = spec.split(trimmedSpec);
|
||||
selectedVal = trimmedSegments[0] + selectedVal;
|
||||
}
|
||||
|
||||
return selectedVal;
|
||||
]]></body>
|
||||
</method>
|
||||
|
||||
|
@ -67,7 +67,7 @@ def find_version(e):
|
||||
return encode_ver(last_version)
|
||||
|
||||
if __name__ == '__main__':
|
||||
cxx_env = os.environ.get('CXX', 'c++')
|
||||
cxx_env = os.environ['CXX']
|
||||
print 'MOZ_LIBSTDCXX_TARGET_VERSION=%s' % find_version(cxx_env)
|
||||
host_cxx_env = os.environ.get('HOST_CXX', cxx_env)
|
||||
print 'MOZ_LIBSTDCXX_HOST_VERSION=%s' % find_version(host_cxx_env)
|
||||
|
@ -763,7 +763,7 @@ user_pref("camino.use_system_proxy_settings", false); // Camino-only, harmless t
|
||||
self.lastTestSeen = line.split("|")[1].strip()
|
||||
if stackFixerFunction:
|
||||
line = stackFixerFunction(line)
|
||||
self.log.info(line.rstrip())
|
||||
self.log.info(line.rstrip().decode("UTF-8", "ignore"))
|
||||
if self.UNIXISH and not debuggerInfo and not self.haveDumpedScreen and "TEST-UNEXPECTED-FAIL" in line and "Test timed out" in line:
|
||||
self.dumpScreen(utilityPath)
|
||||
|
||||
|
@ -2053,7 +2053,6 @@ case "$target" in
|
||||
else
|
||||
MOZ_OPTIMIZE_FLAGS="-O3 -fno-omit-frame-pointer"
|
||||
fi
|
||||
MOZ_MEMORY=1
|
||||
_PEDANTIC=
|
||||
CFLAGS="$CFLAGS -fno-common"
|
||||
CXXFLAGS="$CXXFLAGS -fno-common"
|
||||
@ -7699,7 +7698,7 @@ MOZ_ARG_ENABLE_BOOL(stdcxx-compat,
|
||||
AC_SUBST(STDCXX_COMPAT)
|
||||
|
||||
if test -n "$STDCXX_COMPAT"; then
|
||||
eval $($PYTHON $_topsrcdir/build/autoconf/libstdcxx.py)
|
||||
eval $(CXX="$CXX" $PYTHON $_topsrcdir/build/autoconf/libstdcxx.py)
|
||||
AC_SUBST(MOZ_LIBSTDCXX_TARGET_VERSION)
|
||||
AC_SUBST(MOZ_LIBSTDCXX_HOST_VERSION)
|
||||
fi
|
||||
|
@ -79,7 +79,6 @@
|
||||
#include "nsPIDOMWindow.h"
|
||||
#include "nsIViewManager.h"
|
||||
#include "nsDOMError.h"
|
||||
#include "nsIMenuFrame.h"
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
|
@ -98,6 +98,9 @@ RCFILE = nptest.rc
|
||||
RESFILE = nptest.res
|
||||
DEFFILE = $(win_srcdir)/nptest.def
|
||||
OS_LIBS += $(call EXPAND_LIBNAME,msimg32)
|
||||
|
||||
# Windows opt builds without PGO break nptest.dll
|
||||
MOZ_OPTIMIZE=
|
||||
endif
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
@ -545,9 +545,10 @@ nsJSONListener::OnStopRequest(nsIRequest *aRequest, nsISupports *aContext,
|
||||
{
|
||||
nsresult rv;
|
||||
|
||||
// This can happen with short UTF-8 messages
|
||||
// This can happen with short UTF-8 messages (<4 bytes)
|
||||
if (!mSniffBuffer.IsEmpty()) {
|
||||
rv = ProcessBytes(mSniffBuffer.get(), mSniffBuffer.Length());
|
||||
// Just consume mSniffBuffer
|
||||
rv = ProcessBytes(nsnull, 0);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
@ -617,6 +618,9 @@ nsJSONListener::ProcessBytes(const char* aBuffer, PRUint32 aByteLength)
|
||||
buffer[2] != 0x00 && buffer[3] != 0x00) {
|
||||
charset = "UTF-8";
|
||||
}
|
||||
} else {
|
||||
// Not enough bytes to sniff, assume UTF-8
|
||||
charset = "UTF-8";
|
||||
}
|
||||
}
|
||||
|
||||
@ -635,6 +639,9 @@ nsJSONListener::ProcessBytes(const char* aBuffer, PRUint32 aByteLength)
|
||||
mSniffBuffer.Truncate();
|
||||
}
|
||||
|
||||
if (!aBuffer)
|
||||
return NS_OK;
|
||||
|
||||
if (mNeedsConverter) {
|
||||
rv = ConsumeConverted(aBuffer, aByteLength);
|
||||
} else {
|
||||
|
1
dom/src/json/test/unit/decodeFromStream-small.json
Normal file
1
dom/src/json/test/unit/decodeFromStream-small.json
Normal file
@ -0,0 +1 @@
|
||||
{}
|
@ -23,4 +23,7 @@ function run_test()
|
||||
var x = read_file("decodeFromStream-01.json");
|
||||
do_check_eq(x["JSON Test Pattern pass3"]["The outermost value"], "must be an object or array.");
|
||||
do_check_eq(x["JSON Test Pattern pass3"]["In this test"], "It is an object.");
|
||||
|
||||
x = read_file("decodeFromStream-small.json");
|
||||
do_check_eq(x.toSource(), "({})", "empty object parsed");
|
||||
}
|
||||
|
@ -92,16 +92,25 @@
|
||||
#define JSDOUBLE_SIGNBIT (((uint64) 1) << 63)
|
||||
#define JSDOUBLE_EXPMASK (((uint64) 0x7ff) << 52)
|
||||
#define JSDOUBLE_MANTMASK ((((uint64) 1) << 52) - 1)
|
||||
#define JSDOUBLE_HI32_SIGNBIT 0x80000000
|
||||
|
||||
static JS_ALWAYS_INLINE JSBool
|
||||
JSDOUBLE_IS_NEGZERO(jsdouble d)
|
||||
{
|
||||
if (d != 0)
|
||||
return false;
|
||||
union {
|
||||
struct {
|
||||
#if defined(IS_LITTLE_ENDIAN) && !defined(FPU_IS_ARM_FPA)
|
||||
uint32 lo, hi;
|
||||
#else
|
||||
uint32 hi, lo;
|
||||
#endif
|
||||
} s;
|
||||
jsdouble d;
|
||||
uint64 bits;
|
||||
} x;
|
||||
x.d = d;
|
||||
return x.bits == JSDOUBLE_SIGNBIT;
|
||||
return (x.s.hi & JSDOUBLE_HI32_SIGNBIT) != 0;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
|
@ -107,7 +107,7 @@
|
||||
#include "nsLayoutUtils.h"
|
||||
#include "nsAutoPtr.h"
|
||||
#include "nsBoxFrame.h"
|
||||
#include "nsIBoxLayout.h"
|
||||
#include "nsBoxLayout.h"
|
||||
#include "nsImageFrame.h"
|
||||
#include "nsIObjectLoadingContent.h"
|
||||
#include "nsContentErrors.h"
|
||||
@ -318,7 +318,7 @@ NS_NewTreeBodyFrame (nsIPresShell* aPresShell, nsStyleContext* aContext);
|
||||
|
||||
// grid
|
||||
nsresult
|
||||
NS_NewGridLayout2 ( nsIPresShell* aPresShell, nsIBoxLayout** aNewLayout );
|
||||
NS_NewGridLayout2 ( nsIPresShell* aPresShell, nsBoxLayout** aNewLayout );
|
||||
nsIFrame*
|
||||
NS_NewGridRowLeafFrame (nsIPresShell* aPresShell, nsStyleContext* aContext);
|
||||
nsIFrame*
|
||||
@ -3947,7 +3947,7 @@ static
|
||||
nsIFrame* NS_NewGridBoxFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aStyleContext)
|
||||
{
|
||||
nsCOMPtr<nsIBoxLayout> layout;
|
||||
nsCOMPtr<nsBoxLayout> layout;
|
||||
NS_NewGridLayout2(aPresShell, getter_AddRefs(layout));
|
||||
if (!layout) {
|
||||
return nsnull;
|
||||
|
@ -56,7 +56,7 @@
|
||||
#include "nsIDocument.h"
|
||||
#include "nsBoxLayoutState.h"
|
||||
#include "nsINodeInfo.h"
|
||||
#include "nsIScrollbarFrame.h"
|
||||
#include "nsScrollbarFrame.h"
|
||||
#include "nsIScrollbarMediator.h"
|
||||
#include "nsITextControlFrame.h"
|
||||
#include "nsIDOMHTMLTextAreaElement.h"
|
||||
@ -3559,10 +3559,7 @@ nsGfxScrollFrameInner::GetActualScrollbarSizes() const
|
||||
void
|
||||
nsGfxScrollFrameInner::SetScrollbarVisibility(nsIBox* aScrollbar, PRBool aVisible)
|
||||
{
|
||||
if (!aScrollbar)
|
||||
return;
|
||||
|
||||
nsIScrollbarFrame* scrollbar = do_QueryFrame(aScrollbar);
|
||||
nsScrollbarFrame* scrollbar = do_QueryFrame(aScrollbar);
|
||||
if (scrollbar) {
|
||||
// See if we have a mediator.
|
||||
nsIScrollbarMediator* mediator = scrollbar->GetScrollbarMediator();
|
||||
|
@ -91,7 +91,7 @@ class nsIWidget;
|
||||
class nsIDOMRange;
|
||||
class nsISelectionController;
|
||||
class nsBoxLayoutState;
|
||||
class nsIBoxLayout;
|
||||
class nsBoxLayout;
|
||||
class nsILineIterator;
|
||||
#ifdef ACCESSIBILITY
|
||||
class nsAccessible;
|
||||
@ -2594,8 +2594,8 @@ NS_PTR_TO_INT32(frame->Properties().Get(nsIFrame::EmbeddingLevelProperty()))
|
||||
NS_IMETHOD GetBorder(nsMargin& aBorder)=0;
|
||||
NS_IMETHOD GetPadding(nsMargin& aBorderAndPadding)=0;
|
||||
NS_IMETHOD GetMargin(nsMargin& aMargin)=0;
|
||||
virtual void SetLayoutManager(nsIBoxLayout* aLayout) { }
|
||||
virtual nsIBoxLayout* GetLayoutManager() { return nsnull; }
|
||||
virtual void SetLayoutManager(nsBoxLayout* aLayout) { }
|
||||
virtual nsBoxLayout* GetLayoutManager() { return nsnull; }
|
||||
NS_HIDDEN_(nsresult) GetClientRect(nsRect& aContentRect);
|
||||
|
||||
// For nsSprocketLayout
|
||||
|
@ -125,7 +125,6 @@ public:
|
||||
nsISVGGlyphFragmentNode_id,
|
||||
nsISVGSVGFrame_id,
|
||||
nsIScrollableFrame_id,
|
||||
nsIScrollbarFrame_id,
|
||||
nsIScrollbarMediator_id,
|
||||
nsISelectControlFrame_id,
|
||||
nsIStatefulFrame_id,
|
||||
|
@ -48,7 +48,6 @@ GRE_MODULE = 1
|
||||
|
||||
EXPORTS = \
|
||||
nsPIBoxObject.h \
|
||||
nsIMenuFrame.h \
|
||||
nsIScrollbarMediator.h \
|
||||
nsXULPopupManager.h \
|
||||
$(NULL)
|
||||
|
@ -1,65 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla 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/MPL/
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsIMenuFrame_h___
|
||||
#define nsIMenuFrame_h___
|
||||
|
||||
#include "nsQueryFrame.h"
|
||||
|
||||
enum nsMenuListType {
|
||||
eNotMenuList,
|
||||
eReadonlyMenuList,
|
||||
eEditableMenuList
|
||||
};
|
||||
|
||||
// this interface exists solely because native themes need to call into it.
|
||||
// Only menu frames should implement it
|
||||
|
||||
class nsIMenuFrame
|
||||
{
|
||||
public:
|
||||
NS_DECL_QUERYFRAME_TARGET(nsIMenuFrame)
|
||||
|
||||
virtual PRBool IsOpen() = 0;
|
||||
virtual PRBool IsMenu() = 0;
|
||||
virtual PRBool IsOnMenuBar() = 0;
|
||||
virtual PRBool IsOnActiveMenuBar() = 0;
|
||||
virtual nsMenuListType GetParentMenuListType() = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -42,19 +42,16 @@
|
||||
|
||||
#include "nsQueryFrame.h"
|
||||
|
||||
class nsIScrollbarFrame;
|
||||
class nsScrollbarFrame;
|
||||
|
||||
class nsIScrollbarMediator
|
||||
{
|
||||
public:
|
||||
NS_DECL_QUERYFRAME_TARGET(nsIScrollbarMediator)
|
||||
|
||||
// The nsIFrame aScrollbar argument below denotes the
|
||||
// scrollbar that's firing the notification. It should be
|
||||
// where the same object as where nsIScrollbarFrame is implemented
|
||||
|
||||
NS_IMETHOD PositionChanged(nsIScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32& aNewIndex) = 0;
|
||||
NS_IMETHOD ScrollbarButtonPressed(nsIScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32 aNewIndex) = 0;
|
||||
// The aScrollbar argument denotes the scrollbar that's firing the notification.
|
||||
NS_IMETHOD PositionChanged(nsScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32& aNewIndex) = 0;
|
||||
NS_IMETHOD ScrollbarButtonPressed(nsScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32 aNewIndex) = 0;
|
||||
|
||||
NS_IMETHOD VisibilityChanged(PRBool aVisible) = 0;
|
||||
};
|
||||
|
@ -596,7 +596,7 @@ nsGrid::GetPartFromBox(nsIBox* aBox)
|
||||
if (!aBox)
|
||||
return nsnull;
|
||||
|
||||
nsIBoxLayout* layout = aBox->GetLayoutManager();
|
||||
nsBoxLayout* layout = aBox->GetLayoutManager();
|
||||
return layout ? layout->AsGridPart() : nsnull;
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@
|
||||
#include "nsSprocketLayout.h"
|
||||
|
||||
nsresult
|
||||
NS_NewGridLayout2( nsIPresShell* aPresShell, nsIBoxLayout** aNewLayout)
|
||||
NS_NewGridLayout2( nsIPresShell* aPresShell, nsBoxLayout** aNewLayout)
|
||||
{
|
||||
*aNewLayout = new nsGridLayout2(aPresShell);
|
||||
NS_IF_ADDREF(*aNewLayout);
|
||||
|
@ -53,14 +53,14 @@ class nsBoxLayoutState;
|
||||
class nsGridCell;
|
||||
|
||||
/**
|
||||
* The nsIBoxLayout implementation for a grid.
|
||||
* The nsBoxLayout implementation for a grid.
|
||||
*/
|
||||
class nsGridLayout2 : public nsStackLayout,
|
||||
public nsIGridPart
|
||||
{
|
||||
public:
|
||||
|
||||
friend nsresult NS_NewGridLayout2(nsIPresShell* aPresShell, nsIBoxLayout** aNewLayout);
|
||||
friend nsresult NS_NewGridLayout2(nsIPresShell* aPresShell, nsBoxLayout** aNewLayout);
|
||||
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
|
@ -48,13 +48,13 @@
|
||||
#include "nsBoxLayoutState.h"
|
||||
#include "nsGridLayout2.h"
|
||||
|
||||
already_AddRefed<nsIBoxLayout> NS_NewGridRowGroupLayout();
|
||||
already_AddRefed<nsBoxLayout> NS_NewGridRowGroupLayout();
|
||||
|
||||
nsIFrame*
|
||||
NS_NewGridRowGroupFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aContext)
|
||||
{
|
||||
nsCOMPtr<nsIBoxLayout> layout = NS_NewGridRowGroupLayout();
|
||||
nsCOMPtr<nsBoxLayout> layout = NS_NewGridRowGroupLayout();
|
||||
if (!layout) {
|
||||
return nsnull;
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ public:
|
||||
|
||||
nsGridRowGroupFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aContext,
|
||||
nsIBoxLayout* aLayoutManager):
|
||||
nsBoxLayout* aLayoutManager):
|
||||
nsBoxFrame(aPresShell, aContext, PR_FALSE, aLayoutManager) {}
|
||||
|
||||
virtual nscoord GetFlex(nsBoxLayoutState& aBoxLayoutState);
|
||||
|
@ -54,9 +54,9 @@
|
||||
#include "nsGridLayout2.h"
|
||||
#include "nsGridRow.h"
|
||||
|
||||
already_AddRefed<nsIBoxLayout> NS_NewGridRowGroupLayout()
|
||||
already_AddRefed<nsBoxLayout> NS_NewGridRowGroupLayout()
|
||||
{
|
||||
nsIBoxLayout* layout = new nsGridRowGroupLayout();
|
||||
nsBoxLayout* layout = new nsGridRowGroupLayout();
|
||||
NS_IF_ADDREF(layout);
|
||||
return layout;
|
||||
}
|
||||
|
@ -48,13 +48,13 @@
|
||||
#include "nsGridRowLayout.h"
|
||||
|
||||
/**
|
||||
* The nsIBoxLayout implementation for nsGridRowGroupFrame.
|
||||
* The nsBoxLayout implementation for nsGridRowGroupFrame.
|
||||
*/
|
||||
class nsGridRowGroupLayout : public nsGridRowLayout
|
||||
{
|
||||
public:
|
||||
|
||||
friend already_AddRefed<nsIBoxLayout> NS_NewGridRowGroupLayout();
|
||||
friend already_AddRefed<nsBoxLayout> NS_NewGridRowGroupLayout();
|
||||
|
||||
virtual nsGridRowGroupLayout* CastToRowGroupLayout() { return this; }
|
||||
virtual nsSize GetMinSize(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState);
|
||||
|
@ -128,7 +128,7 @@ nsGridRowLayout::GetGrid(nsIBox* aBox, PRInt32* aIndex, nsGridRowLayout* aReques
|
||||
// if there is a scrollframe walk inside it to its child
|
||||
nsIBox* childBox = nsGrid::GetScrolledBox(child);
|
||||
|
||||
nsIBoxLayout* layout = childBox->GetLayoutManager();
|
||||
nsBoxLayout* layout = childBox->GetLayoutManager();
|
||||
nsIGridPart* gridRow = nsGrid::GetPartFromBox(childBox);
|
||||
if (gridRow)
|
||||
{
|
||||
|
@ -53,8 +53,8 @@ class nsBoxLayoutState;
|
||||
class nsGrid;
|
||||
|
||||
/**
|
||||
* A common base class for nsGridRowLeafLayout (the nsIBoxLayout object
|
||||
* for a grid row or column) and nsGridRowGroupLayout (the nsIBoxLayout
|
||||
* A common base class for nsGridRowLeafLayout (the nsBoxLayout object
|
||||
* for a grid row or column) and nsGridRowGroupLayout (the nsBoxLayout
|
||||
* object for a grid row group or column group).
|
||||
*/
|
||||
// XXXldb This needs a name that indicates that it's a base class for
|
||||
|
@ -48,13 +48,13 @@
|
||||
#include "nsBoxLayoutState.h"
|
||||
#include "nsGridLayout2.h"
|
||||
|
||||
already_AddRefed<nsIBoxLayout> NS_NewGridRowLeafLayout();
|
||||
already_AddRefed<nsBoxLayout> NS_NewGridRowLeafLayout();
|
||||
|
||||
nsIFrame*
|
||||
NS_NewGridRowLeafFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aContext)
|
||||
{
|
||||
nsCOMPtr<nsIBoxLayout> layout = NS_NewGridRowLeafLayout();
|
||||
nsCOMPtr<nsBoxLayout> layout = NS_NewGridRowLeafLayout();
|
||||
if (!layout) {
|
||||
return nsnull;
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ public:
|
||||
nsGridRowLeafFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aContext,
|
||||
PRBool aIsRoot,
|
||||
nsIBoxLayout* aLayoutManager):
|
||||
nsBoxLayout* aLayoutManager):
|
||||
nsBoxFrame(aPresShell, aContext, aIsRoot, aLayoutManager) {}
|
||||
|
||||
NS_IMETHOD GetBorderAndPadding(nsMargin& aBorderAndPadding);
|
||||
|
@ -51,9 +51,9 @@
|
||||
#include "nsBoxFrame.h"
|
||||
#include "nsGridLayout2.h"
|
||||
|
||||
already_AddRefed<nsIBoxLayout> NS_NewGridRowLeafLayout()
|
||||
already_AddRefed<nsBoxLayout> NS_NewGridRowLeafLayout()
|
||||
{
|
||||
nsIBoxLayout* layout = new nsGridRowLeafLayout();
|
||||
nsBoxLayout* layout = new nsGridRowLeafLayout();
|
||||
NS_IF_ADDREF(layout);
|
||||
return layout;
|
||||
}
|
||||
|
@ -49,7 +49,7 @@
|
||||
#include "nsCOMPtr.h"
|
||||
|
||||
/**
|
||||
* The nsIBoxLayout implementation for nsGridRowLeafFrame.
|
||||
* The nsBoxLayout implementation for nsGridRowLeafFrame.
|
||||
*/
|
||||
// XXXldb This needs a better name that indicates that it's for any grid
|
||||
// row.
|
||||
@ -57,7 +57,7 @@ class nsGridRowLeafLayout : public nsGridRowLayout
|
||||
{
|
||||
public:
|
||||
|
||||
friend already_AddRefed<nsIBoxLayout> NS_NewGridRowLeafLayout();
|
||||
friend already_AddRefed<nsBoxLayout> NS_NewGridRowLeafLayout();
|
||||
|
||||
virtual nsSize GetPrefSize(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState);
|
||||
virtual nsSize GetMinSize(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState);
|
||||
|
@ -53,7 +53,7 @@ class nsGridLayout2;
|
||||
{ 0xb3, 0x6c, 0x69, 0xf7, 0xc1, 0x95, 0x67, 0x7b } }
|
||||
|
||||
/**
|
||||
* An additional interface implemented by nsIBoxLayout implementations
|
||||
* An additional interface implemented by nsBoxLayout implementations
|
||||
* for parts of a grid (excluding cells, which are not special).
|
||||
*/
|
||||
class nsIGridPart : public nsISupports {
|
||||
|
@ -53,7 +53,7 @@
|
||||
#include "nsIDocument.h"
|
||||
#include "nsITheme.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIBoxLayout.h"
|
||||
#include "nsBoxLayout.h"
|
||||
#include "FrameLayerBuilder.h"
|
||||
|
||||
using namespace mozilla;
|
||||
|
@ -78,7 +78,7 @@
|
||||
#include "nsIPresShell.h"
|
||||
#include "nsCSSRendering.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIBoxLayout.h"
|
||||
#include "nsBoxLayout.h"
|
||||
#include "nsSprocketLayout.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIScrollableFrame.h"
|
||||
@ -120,7 +120,7 @@ nsIBox* nsBoxFrame::mDebugChild = nsnull;
|
||||
#endif
|
||||
|
||||
nsIFrame*
|
||||
NS_NewBoxFrame(nsIPresShell* aPresShell, nsStyleContext* aContext, PRBool aIsRoot, nsIBoxLayout* aLayoutManager)
|
||||
NS_NewBoxFrame(nsIPresShell* aPresShell, nsStyleContext* aContext, PRBool aIsRoot, nsBoxLayout* aLayoutManager)
|
||||
{
|
||||
return new (aPresShell) nsBoxFrame(aPresShell, aContext, aIsRoot, aLayoutManager);
|
||||
}
|
||||
@ -136,7 +136,7 @@ NS_IMPL_FRAMEARENA_HELPERS(nsBoxFrame)
|
||||
nsBoxFrame::nsBoxFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aContext,
|
||||
PRBool aIsRoot,
|
||||
nsIBoxLayout* aLayoutManager) :
|
||||
nsBoxLayout* aLayoutManager) :
|
||||
nsContainerFrame(aContext)
|
||||
{
|
||||
mState |= NS_STATE_IS_HORIZONTAL;
|
||||
@ -149,7 +149,7 @@ nsBoxFrame::nsBoxFrame(nsIPresShell* aPresShell,
|
||||
mHalign = hAlign_Left;
|
||||
|
||||
// if no layout manager specified us the static sprocket layout
|
||||
nsCOMPtr<nsIBoxLayout> layout = aLayoutManager;
|
||||
nsCOMPtr<nsBoxLayout> layout = aLayoutManager;
|
||||
|
||||
if (layout == nsnull) {
|
||||
NS_NewSprocketLayout(aPresShell, layout);
|
||||
|
@ -71,7 +71,7 @@ class nsBoxLayoutState;
|
||||
nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aContext,
|
||||
PRBool aIsRoot,
|
||||
nsIBoxLayout* aLayoutManager);
|
||||
nsBoxLayout* aLayoutManager);
|
||||
nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aContext);
|
||||
|
||||
@ -83,7 +83,7 @@ public:
|
||||
friend nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aContext,
|
||||
PRBool aIsRoot,
|
||||
nsIBoxLayout* aLayoutManager);
|
||||
nsBoxLayout* aLayoutManager);
|
||||
friend nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aContext);
|
||||
|
||||
@ -91,8 +91,8 @@ public:
|
||||
// call this method to get the rect so you don't draw on the debug border or outer border.
|
||||
|
||||
// ------ nsIBox -------------
|
||||
virtual void SetLayoutManager(nsIBoxLayout* aLayout) { mLayoutManager = aLayout; }
|
||||
virtual nsIBoxLayout* GetLayoutManager() { return mLayoutManager; }
|
||||
virtual void SetLayoutManager(nsBoxLayout* aLayout) { mLayoutManager = aLayout; }
|
||||
virtual nsBoxLayout* GetLayoutManager() { return mLayoutManager; }
|
||||
|
||||
NS_IMETHOD RelayoutChildAtOrdinal(nsBoxLayoutState& aState, nsIBox* aChild);
|
||||
|
||||
@ -181,7 +181,7 @@ public:
|
||||
|
||||
virtual ~nsBoxFrame();
|
||||
|
||||
nsBoxFrame(nsIPresShell* aPresShell, nsStyleContext* aContext, PRBool aIsRoot = PR_FALSE, nsIBoxLayout* aLayoutManager = nsnull);
|
||||
nsBoxFrame(nsIPresShell* aPresShell, nsStyleContext* aContext, PRBool aIsRoot = PR_FALSE, nsBoxLayout* aLayoutManager = nsnull);
|
||||
|
||||
// virtual so nsStackFrame, nsButtonBoxFrame, nsSliderFrame and nsMenuFrame
|
||||
// can override it
|
||||
@ -240,7 +240,7 @@ protected:
|
||||
nscoord mFlex;
|
||||
nscoord mAscent;
|
||||
|
||||
nsCOMPtr<nsIBoxLayout> mLayoutManager;
|
||||
nsCOMPtr<nsBoxLayout> mLayoutManager;
|
||||
|
||||
protected:
|
||||
nsresult RegUnregAccessKey(PRBool aDoReg);
|
||||
|
@ -44,17 +44,10 @@
|
||||
//
|
||||
|
||||
#include "nsBox.h"
|
||||
#include "nsPresContext.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIContent.h"
|
||||
#include "nsHTMLContainerFrame.h"
|
||||
#include "nsIFrame.h"
|
||||
#include "nsBoxLayout.h"
|
||||
|
||||
nsBoxLayout::nsBoxLayout()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
nsBoxLayout::AddBorderAndPadding(nsIBox* aBox, nsSize& aSize)
|
||||
{
|
||||
@ -131,42 +124,4 @@ nsBoxLayout::AddSmallestSize(nsSize& aSize, const nsSize& aSize2)
|
||||
aSize.height = aSize2.height;
|
||||
}
|
||||
|
||||
void
|
||||
nsBoxLayout::ChildrenInserted(nsIBox* aBox, nsBoxLayoutState& aState,
|
||||
nsIBox* aPrevBox,
|
||||
const nsFrameList::Slice& aNewChildren)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
nsBoxLayout::ChildrenAppended(nsIBox* aBox, nsBoxLayoutState& aState,
|
||||
const nsFrameList::Slice& aNewChildren)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
nsBoxLayout::ChildrenRemoved(nsIBox* aBox, nsBoxLayoutState& aState, nsIBox* aChildList)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
nsBoxLayout::ChildrenSet(nsIBox* aBox, nsBoxLayoutState& aState, nsIBox* aChildList)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
nsBoxLayout::IntrinsicWidthsDirty(nsIBox* aBox, nsBoxLayoutState& aState)
|
||||
{
|
||||
}
|
||||
|
||||
// nsISupports
|
||||
NS_IMPL_ADDREF(nsBoxLayout)
|
||||
NS_IMPL_RELEASE(nsBoxLayout)
|
||||
|
||||
//
|
||||
// QueryInterface
|
||||
//
|
||||
NS_INTERFACE_MAP_BEGIN(nsBoxLayout)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIBoxLayout)
|
||||
NS_INTERFACE_MAP_ENTRY(nsISupports)
|
||||
NS_INTERFACE_MAP_END
|
||||
NS_IMPL_ISUPPORTS1(nsBoxLayout, nsBoxLayout)
|
||||
|
@ -38,17 +38,26 @@
|
||||
#ifndef nsBoxLayout_h___
|
||||
#define nsBoxLayout_h___
|
||||
|
||||
#include "nsIBoxLayout.h"
|
||||
#include "nsISupports.h"
|
||||
#include "nsIFrame.h"
|
||||
|
||||
class nsBoxLayout : public nsIBoxLayout {
|
||||
#define NS_BOX_LAYOUT_IID \
|
||||
{ 0x09d522a7, 0x304c, 0x4137, \
|
||||
{ 0xaf, 0xc9, 0xe0, 0x80, 0x2e, 0x89, 0xb7, 0xe8 } }
|
||||
|
||||
class nsIGridPart;
|
||||
|
||||
class nsBoxLayout : public nsISupports {
|
||||
|
||||
public:
|
||||
|
||||
nsBoxLayout();
|
||||
nsBoxLayout() {}
|
||||
virtual ~nsBoxLayout() {}
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_BOX_LAYOUT_IID)
|
||||
|
||||
NS_IMETHOD Layout(nsIBox* aBox, nsBoxLayoutState& aState);
|
||||
|
||||
virtual nsSize GetPrefSize(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState);
|
||||
@ -57,12 +66,12 @@ public:
|
||||
virtual nscoord GetAscent(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState);
|
||||
virtual void ChildrenInserted(nsIBox* aBox, nsBoxLayoutState& aState,
|
||||
nsIBox* aPrevBox,
|
||||
const nsFrameList::Slice& aNewChildren);
|
||||
const nsFrameList::Slice& aNewChildren) {}
|
||||
virtual void ChildrenAppended(nsIBox* aBox, nsBoxLayoutState& aState,
|
||||
const nsFrameList::Slice& aNewChildren);
|
||||
virtual void ChildrenRemoved(nsIBox* aBox, nsBoxLayoutState& aState, nsIBox* aChildList);
|
||||
virtual void ChildrenSet(nsIBox* aBox, nsBoxLayoutState& aState, nsIBox* aChildList);
|
||||
virtual void IntrinsicWidthsDirty(nsIBox* aBox, nsBoxLayoutState& aState);
|
||||
const nsFrameList::Slice& aNewChildren) {}
|
||||
virtual void ChildrenRemoved(nsIBox* aBox, nsBoxLayoutState& aState, nsIBox* aChildList) {}
|
||||
virtual void ChildrenSet(nsIBox* aBox, nsBoxLayoutState& aState, nsIBox* aChildList) {}
|
||||
virtual void IntrinsicWidthsDirty(nsIBox* aBox, nsBoxLayoutState& aState) {}
|
||||
|
||||
virtual void AddBorderAndPadding(nsIBox* aBox, nsSize& aSize);
|
||||
virtual void AddMargin(nsIBox* aChild, nsSize& aSize);
|
||||
@ -74,5 +83,7 @@ public:
|
||||
static void AddSmallestSize(nsSize& aSize, const nsSize& aToAdd);
|
||||
};
|
||||
|
||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsBoxLayout, NS_BOX_LAYOUT_IID)
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -70,7 +70,7 @@ NS_IMPL_FRAMEARENA_HELPERS(nsDeckFrame)
|
||||
nsDeckFrame::nsDeckFrame(nsIPresShell* aPresShell, nsStyleContext* aContext)
|
||||
: nsBoxFrame(aPresShell, aContext), mIndex(0)
|
||||
{
|
||||
nsCOMPtr<nsIBoxLayout> layout;
|
||||
nsCOMPtr<nsBoxLayout> layout;
|
||||
NS_NewStackLayout(aPresShell, layout);
|
||||
SetLayoutManager(layout);
|
||||
}
|
||||
|
@ -1,85 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla 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/MPL/
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsIBoxLayout_h___
|
||||
#define nsIBoxLayout_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIFrame.h"
|
||||
|
||||
class nsBoxLayout;
|
||||
class nsBoxLayoutState;
|
||||
class nsRenderingContext;
|
||||
class nsIGridPart;
|
||||
struct nsRect;
|
||||
|
||||
// 6a529924-c73d-4fae-af7a-0e8084e701d5
|
||||
#define NS_IBOX_LAYOUT_IID \
|
||||
{ 0x6a529924, 0xc73d, 0x4fae, \
|
||||
{ 0xaf, 0x7a, 0x0e, 0x80, 0x84, 0xe7, 0x01, 0xd5 } }
|
||||
|
||||
class nsIBoxLayout : public nsISupports {
|
||||
|
||||
public:
|
||||
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_IBOX_LAYOUT_IID)
|
||||
|
||||
NS_IMETHOD Layout(nsIBox* aBox, nsBoxLayoutState& aState)=0;
|
||||
|
||||
virtual nsSize GetPrefSize(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState)=0;
|
||||
virtual nsSize GetMinSize(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState)=0;
|
||||
virtual nsSize GetMaxSize(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState)=0;
|
||||
virtual nscoord GetAscent(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState)=0;
|
||||
|
||||
// FIXME: Bug 507416. The Children* notifications don't actually
|
||||
// use all those arguments. Can we just simplify the signatures?
|
||||
virtual void ChildrenInserted(nsIBox* aBox, nsBoxLayoutState& aState,
|
||||
nsIBox* aPrevBox,
|
||||
const nsFrameList::Slice& aNewChildren)=0;
|
||||
virtual void ChildrenAppended(nsIBox* aBox, nsBoxLayoutState& aState,
|
||||
const nsFrameList::Slice& aNewChildren)=0;
|
||||
virtual void ChildrenRemoved(nsIBox* aBox, nsBoxLayoutState& aState, nsIBox* aChildList)=0;
|
||||
virtual void ChildrenSet(nsIBox* aBox, nsBoxLayoutState& aState, nsIBox* aChildList)=0;
|
||||
virtual void IntrinsicWidthsDirty(nsIBox* aBox, nsBoxLayoutState& aState)=0;
|
||||
|
||||
// Returns this if it is an nsIGridPart, not refcounted
|
||||
virtual nsIGridPart* AsGridPart() = 0;
|
||||
};
|
||||
|
||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsIBoxLayout, NS_IBOX_LAYOUT_IID)
|
||||
|
||||
#endif
|
@ -1,59 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla 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/MPL/
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Original Author: David W. Hyatt (hyatt@netscape.com)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsIScrollbarFrame_h___
|
||||
#define nsIScrollbarFrame_h___
|
||||
|
||||
#include "nsQueryFrame.h"
|
||||
|
||||
class nsIScrollbarMediator;
|
||||
|
||||
class nsIScrollbarFrame : public nsQueryFrame
|
||||
{
|
||||
public:
|
||||
NS_DECL_QUERYFRAME_TARGET(nsIScrollbarFrame)
|
||||
|
||||
// Sets the scrollbar mediator content. We will try to get its primary frame
|
||||
// and then QI that to nsIScrollbarMediator as necessary.
|
||||
virtual void SetScrollbarMediatorContent(nsIContent* aMediator) = 0;
|
||||
|
||||
// Do NOT hold on to this.
|
||||
virtual nsIScrollbarMediator* GetScrollbarMediator() = 0;
|
||||
};
|
||||
|
||||
#endif
|
@ -54,7 +54,7 @@
|
||||
#include "nsIDOMNodeList.h"
|
||||
#include "nsCSSFrameConstructor.h"
|
||||
#include "nsIScrollableFrame.h"
|
||||
#include "nsIScrollbarFrame.h"
|
||||
#include "nsScrollbarFrame.h"
|
||||
#include "nsIView.h"
|
||||
#include "nsIViewManager.h"
|
||||
#include "nsStyleContext.h"
|
||||
@ -164,7 +164,7 @@ NS_IMPL_ISUPPORTS1(nsListScrollSmoother, nsITimerCallback)
|
||||
|
||||
nsListBoxBodyFrame::nsListBoxBodyFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aContext,
|
||||
nsIBoxLayout* aLayoutManager)
|
||||
nsBoxLayout* aLayoutManager)
|
||||
: nsBoxFrame(aPresShell, aContext, PR_FALSE, aLayoutManager),
|
||||
mTopFrame(nsnull),
|
||||
mBottomFrame(nsnull),
|
||||
@ -214,8 +214,8 @@ nsListBoxBodyFrame::Init(nsIContent* aContent,
|
||||
nsIScrollableFrame* scrollFrame = nsLayoutUtils::GetScrollableFrameFor(this);
|
||||
if (scrollFrame) {
|
||||
nsIBox* verticalScrollbar = scrollFrame->GetScrollbarBox(PR_TRUE);
|
||||
if (verticalScrollbar) {
|
||||
nsIScrollbarFrame* scrollbarFrame = do_QueryFrame(verticalScrollbar);
|
||||
nsScrollbarFrame* scrollbarFrame = do_QueryFrame(verticalScrollbar);
|
||||
if (scrollbarFrame) {
|
||||
scrollbarFrame->SetScrollbarMediatorContent(GetContent());
|
||||
}
|
||||
}
|
||||
@ -353,7 +353,7 @@ nsListBoxBodyFrame::GetPrefSize(nsBoxLayoutState& aBoxLayoutState)
|
||||
///////////// nsIScrollbarMediator ///////////////
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsListBoxBodyFrame::PositionChanged(nsIScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32& aNewIndex)
|
||||
nsListBoxBodyFrame::PositionChanged(nsScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32& aNewIndex)
|
||||
{
|
||||
if (mScrolling || mRowHeight == 0)
|
||||
return NS_OK;
|
||||
@ -423,7 +423,7 @@ nsListBoxBodyFrame::VisibilityChanged(PRBool aVisible)
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsListBoxBodyFrame::ScrollbarButtonPressed(nsIScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32 aNewIndex)
|
||||
nsListBoxBodyFrame::ScrollbarButtonPressed(nsScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32 aNewIndex)
|
||||
{
|
||||
if (aOldIndex == aNewIndex)
|
||||
return NS_OK;
|
||||
@ -1508,12 +1508,12 @@ nsListBoxBodyFrame::RemoveChildFrame(nsBoxLayoutState &aState,
|
||||
|
||||
// Creation Routines ///////////////////////////////////////////////////////////////////////
|
||||
|
||||
already_AddRefed<nsIBoxLayout> NS_NewListBoxLayout();
|
||||
already_AddRefed<nsBoxLayout> NS_NewListBoxLayout();
|
||||
|
||||
nsIFrame*
|
||||
NS_NewListBoxBodyFrame(nsIPresShell* aPresShell, nsStyleContext* aContext)
|
||||
{
|
||||
nsCOMPtr<nsIBoxLayout> layout = NS_NewListBoxLayout();
|
||||
nsCOMPtr<nsBoxLayout> layout = NS_NewListBoxLayout();
|
||||
if (!layout) {
|
||||
return nsnull;
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ class nsListBoxBodyFrame : public nsBoxFrame,
|
||||
public nsIReflowCallback
|
||||
{
|
||||
nsListBoxBodyFrame(nsIPresShell* aPresShell, nsStyleContext* aContext,
|
||||
nsIBoxLayout* aLayoutManager);
|
||||
nsBoxLayout* aLayoutManager);
|
||||
virtual ~nsListBoxBodyFrame();
|
||||
|
||||
public:
|
||||
@ -90,8 +90,8 @@ public:
|
||||
NS_IMETHOD AttributeChanged(PRInt32 aNameSpaceID, nsIAtom* aAttribute, PRInt32 aModType);
|
||||
|
||||
// nsIScrollbarMediator
|
||||
NS_IMETHOD PositionChanged(nsIScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32& aNewIndex);
|
||||
NS_IMETHOD ScrollbarButtonPressed(nsIScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32 aNewIndex);
|
||||
NS_IMETHOD PositionChanged(nsScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32& aNewIndex);
|
||||
NS_IMETHOD ScrollbarButtonPressed(nsScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32 aNewIndex);
|
||||
NS_IMETHOD VisibilityChanged(PRBool aVisible);
|
||||
|
||||
// nsIReflowCallback
|
||||
|
@ -53,7 +53,7 @@ nsListBoxLayout::nsListBoxLayout() : nsGridRowGroupLayout()
|
||||
{
|
||||
}
|
||||
|
||||
////////// nsIBoxLayout //////////////
|
||||
////////// nsBoxLayout //////////////
|
||||
|
||||
nsSize
|
||||
nsListBoxLayout::GetPrefSize(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState)
|
||||
@ -242,9 +242,9 @@ nsListBoxLayout::LayoutInternal(nsIBox* aBox, nsBoxLayoutState& aState)
|
||||
|
||||
// Creation Routines ///////////////////////////////////////////////////////////////////////
|
||||
|
||||
already_AddRefed<nsIBoxLayout> NS_NewListBoxLayout()
|
||||
already_AddRefed<nsBoxLayout> NS_NewListBoxLayout()
|
||||
{
|
||||
nsIBoxLayout* layout = new nsListBoxLayout();
|
||||
nsBoxLayout* layout = new nsListBoxLayout();
|
||||
NS_IF_ADDREF(layout);
|
||||
return layout;
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ class nsListBoxLayout : public nsGridRowGroupLayout
|
||||
public:
|
||||
nsListBoxLayout();
|
||||
|
||||
// nsIBoxLayout
|
||||
// nsBoxLayout
|
||||
NS_IMETHOD Layout(nsIBox* aBox, nsBoxLayoutState& aState);
|
||||
virtual nsSize GetPrefSize(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState);
|
||||
virtual nsSize GetMinSize(nsIBox* aBox, nsBoxLayoutState& aBoxLayoutState);
|
||||
|
@ -43,12 +43,12 @@
|
||||
#include "nsINameSpaceManager.h"
|
||||
#include "nsGkAtoms.h"
|
||||
#include "nsDisplayList.h"
|
||||
#include "nsIBoxLayout.h"
|
||||
#include "nsBoxLayout.h"
|
||||
|
||||
nsListItemFrame::nsListItemFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext* aContext,
|
||||
PRBool aIsRoot,
|
||||
nsIBoxLayout* aLayoutManager)
|
||||
nsBoxLayout* aLayoutManager)
|
||||
: nsGridRowLeafFrame(aPresShell, aContext, aIsRoot, aLayoutManager)
|
||||
{
|
||||
}
|
||||
@ -85,12 +85,12 @@ nsListItemFrame::BuildDisplayListForChildren(nsDisplayListBuilder* aBuilder,
|
||||
|
||||
// Creation Routine ///////////////////////////////////////////////////////////////////////
|
||||
|
||||
already_AddRefed<nsIBoxLayout> NS_NewGridRowLeafLayout();
|
||||
already_AddRefed<nsBoxLayout> NS_NewGridRowLeafLayout();
|
||||
|
||||
nsIFrame*
|
||||
NS_NewListItemFrame(nsIPresShell* aPresShell, nsStyleContext* aContext)
|
||||
{
|
||||
nsCOMPtr<nsIBoxLayout> layout = NS_NewGridRowLeafLayout();
|
||||
nsCOMPtr<nsBoxLayout> layout = NS_NewGridRowLeafLayout();
|
||||
if (!layout) {
|
||||
return nsnull;
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ protected:
|
||||
nsListItemFrame(nsIPresShell* aPresShell,
|
||||
nsStyleContext *aContext,
|
||||
PRBool aIsRoot = nsnull,
|
||||
nsIBoxLayout* aLayoutManager = nsnull);
|
||||
nsBoxLayout* aLayoutManager = nsnull);
|
||||
virtual ~nsListItemFrame();
|
||||
|
||||
}; // class nsListItemFrame
|
||||
|
@ -213,7 +213,7 @@ NS_NewMenuItemFrame(nsIPresShell* aPresShell, nsStyleContext* aContext)
|
||||
NS_IMPL_FRAMEARENA_HELPERS(nsMenuFrame)
|
||||
|
||||
NS_QUERYFRAME_HEAD(nsMenuFrame)
|
||||
NS_QUERYFRAME_ENTRY(nsIMenuFrame)
|
||||
NS_QUERYFRAME_ENTRY(nsMenuFrame)
|
||||
NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
|
||||
|
||||
//
|
||||
|
@ -51,7 +51,6 @@
|
||||
#include "nsFrameList.h"
|
||||
#include "nsGkAtoms.h"
|
||||
#include "nsMenuParent.h"
|
||||
#include "nsIMenuFrame.h"
|
||||
#include "nsXULPopupManager.h"
|
||||
#include "nsITimer.h"
|
||||
#include "nsIDOMText.h"
|
||||
@ -75,6 +74,12 @@ enum nsMenuType {
|
||||
eMenuType_Radio = 2
|
||||
};
|
||||
|
||||
enum nsMenuListType {
|
||||
eNotMenuList, // not a menulist
|
||||
eReadonlyMenuList, // <menulist/>
|
||||
eEditableMenuList // <menulist editable="true"/>
|
||||
};
|
||||
|
||||
class nsMenuFrame;
|
||||
|
||||
/**
|
||||
@ -101,12 +106,12 @@ private:
|
||||
nsMenuFrame* mFrame;
|
||||
};
|
||||
|
||||
class nsMenuFrame : public nsBoxFrame,
|
||||
public nsIMenuFrame
|
||||
class nsMenuFrame : public nsBoxFrame
|
||||
{
|
||||
public:
|
||||
nsMenuFrame(nsIPresShell* aShell, nsStyleContext* aContext);
|
||||
|
||||
NS_DECL_QUERYFRAME_TARGET(nsMenuFrame)
|
||||
NS_DECL_QUERYFRAME
|
||||
NS_DECL_FRAMEARENA_HELPERS
|
||||
|
||||
@ -185,11 +190,11 @@ public:
|
||||
|
||||
// nsMenuFrame methods
|
||||
|
||||
virtual PRBool IsOnMenuBar() { return mMenuParent && mMenuParent->IsMenuBar(); }
|
||||
virtual PRBool IsOnActiveMenuBar() { return IsOnMenuBar() && mMenuParent->IsActive(); }
|
||||
PRBool IsOnMenuBar() { return mMenuParent && mMenuParent->IsMenuBar(); }
|
||||
PRBool IsOnActiveMenuBar() { return IsOnMenuBar() && mMenuParent->IsActive(); }
|
||||
virtual PRBool IsOpen();
|
||||
virtual PRBool IsMenu();
|
||||
virtual nsMenuListType GetParentMenuListType();
|
||||
nsMenuListType GetParentMenuListType();
|
||||
PRBool IsDisabled();
|
||||
void ToggleMenuState();
|
||||
|
||||
|
@ -74,7 +74,6 @@
|
||||
#include "nsContentUtils.h"
|
||||
#include "nsCSSFrameConstructor.h"
|
||||
#include "nsEventStateManager.h"
|
||||
#include "nsIBoxLayout.h"
|
||||
#include "nsIPopupBoxObject.h"
|
||||
#include "nsPIWindowRoot.h"
|
||||
#include "nsIReflowCallback.h"
|
||||
|
@ -149,7 +149,7 @@ nsRootBoxFrame::nsRootBoxFrame(nsIPresShell* aShell, nsStyleContext* aContext):
|
||||
{
|
||||
mPopupSetFrame = nsnull;
|
||||
|
||||
nsCOMPtr<nsIBoxLayout> layout;
|
||||
nsCOMPtr<nsBoxLayout> layout;
|
||||
NS_NewStackLayout(aShell, layout);
|
||||
SetLayoutManager(layout);
|
||||
}
|
||||
|
@ -49,7 +49,7 @@
|
||||
#include "nsINameSpaceManager.h"
|
||||
#include "nsGkAtoms.h"
|
||||
#include "nsSliderFrame.h"
|
||||
#include "nsIScrollbarFrame.h"
|
||||
#include "nsScrollbarFrame.h"
|
||||
#include "nsIScrollbarMediator.h"
|
||||
#include "nsRepeatService.h"
|
||||
#include "nsGUIEvent.h"
|
||||
@ -245,7 +245,7 @@ nsScrollbarButtonFrame::DoButtonAction(PRBool aSmoothScroll)
|
||||
else if (curpos > maxpos)
|
||||
curpos = maxpos;
|
||||
|
||||
nsIScrollbarFrame* sb = do_QueryFrame(scrollbar);
|
||||
nsScrollbarFrame* sb = do_QueryFrame(scrollbar);
|
||||
if (sb) {
|
||||
nsIScrollbarMediator* m = sb->GetScrollbarMediator();
|
||||
if (m) {
|
||||
|
@ -62,7 +62,7 @@ NS_NewScrollbarFrame (nsIPresShell* aPresShell, nsStyleContext* aContext)
|
||||
NS_IMPL_FRAMEARENA_HELPERS(nsScrollbarFrame)
|
||||
|
||||
NS_QUERYFRAME_HEAD(nsScrollbarFrame)
|
||||
NS_QUERYFRAME_ENTRY(nsIScrollbarFrame)
|
||||
NS_QUERYFRAME_ENTRY(nsScrollbarFrame)
|
||||
NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
|
||||
|
||||
NS_IMETHODIMP
|
||||
@ -129,11 +129,7 @@ nsScrollbarFrame::AttributeChanged(PRInt32 aNameSpaceID,
|
||||
if (aAttribute != nsGkAtoms::curpos)
|
||||
return rv;
|
||||
|
||||
nsIFrame* parent = GetParent();
|
||||
if (!parent)
|
||||
return rv;
|
||||
|
||||
nsIScrollableFrame* scrollable = do_QueryFrame(parent);
|
||||
nsIScrollableFrame* scrollable = do_QueryFrame(GetParent());
|
||||
if (!scrollable)
|
||||
return rv;
|
||||
|
||||
@ -170,16 +166,12 @@ nsScrollbarFrame::GetScrollbarMediator()
|
||||
if (!mScrollbarMediator)
|
||||
return nsnull;
|
||||
nsIFrame* f = mScrollbarMediator->GetPrimaryFrame();
|
||||
if (!f)
|
||||
return nsnull;
|
||||
|
||||
// check if the frame is a scroll frame. If so, get the scrollable frame
|
||||
// inside it.
|
||||
nsIScrollableFrame* scrollFrame = do_QueryFrame(f);
|
||||
if (scrollFrame) {
|
||||
f = scrollFrame->GetScrolledFrame();
|
||||
if (!f)
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
nsIScrollbarMediator* sbm = do_QueryFrame(f);
|
||||
|
@ -43,18 +43,19 @@
|
||||
#define nsScrollbarFrame_h__
|
||||
|
||||
#include "nsBoxFrame.h"
|
||||
#include "nsIScrollbarFrame.h"
|
||||
|
||||
class nsIScrollbarMediator;
|
||||
|
||||
nsIFrame* NS_NewScrollbarFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
|
||||
|
||||
class nsScrollbarFrame : public nsBoxFrame, public nsIScrollbarFrame
|
||||
class nsScrollbarFrame : public nsBoxFrame
|
||||
{
|
||||
public:
|
||||
nsScrollbarFrame(nsIPresShell* aShell, nsStyleContext* aContext):
|
||||
nsBoxFrame(aShell, aContext), mScrollbarMediator(nsnull) {}
|
||||
|
||||
NS_DECL_QUERYFRAME_TARGET(nsScrollbarFrame)
|
||||
|
||||
#ifdef DEBUG
|
||||
NS_IMETHOD GetFrameName(nsAString& aResult) const {
|
||||
return MakeFrameName(NS_LITERAL_STRING("ScrollbarFrame"), aResult);
|
||||
@ -91,9 +92,8 @@ public:
|
||||
|
||||
virtual nsIAtom* GetType() const;
|
||||
|
||||
// nsIScrollbarFrame
|
||||
virtual void SetScrollbarMediatorContent(nsIContent* aMediator);
|
||||
virtual nsIScrollbarMediator* GetScrollbarMediator();
|
||||
void SetScrollbarMediatorContent(nsIContent* aMediator);
|
||||
nsIScrollbarMediator* GetScrollbarMediator();
|
||||
|
||||
// nsBox methods
|
||||
|
||||
|
@ -60,7 +60,7 @@
|
||||
#include "nsScrollbarButtonFrame.h"
|
||||
#include "nsISliderListener.h"
|
||||
#include "nsIScrollbarMediator.h"
|
||||
#include "nsIScrollbarFrame.h"
|
||||
#include "nsScrollbarFrame.h"
|
||||
#include "nsILookAndFeel.h"
|
||||
#include "nsRepeatService.h"
|
||||
#include "nsBoxLayoutState.h"
|
||||
@ -297,7 +297,7 @@ nsSliderFrame::AttributeChanged(PRInt32 aNameSpaceID,
|
||||
current = max;
|
||||
|
||||
// set the new position and notify observers
|
||||
nsIScrollbarFrame* scrollbarFrame = do_QueryFrame(scrollbarBox);
|
||||
nsScrollbarFrame* scrollbarFrame = do_QueryFrame(scrollbarBox);
|
||||
if (scrollbarFrame) {
|
||||
nsIScrollbarMediator* mediator = scrollbarFrame->GetScrollbarMediator();
|
||||
if (mediator) {
|
||||
@ -812,7 +812,7 @@ nsSliderFrame::SetCurrentPositionInternal(nsIContent* aScrollbar, PRInt32 aNewPo
|
||||
|
||||
mUserChanged = PR_TRUE;
|
||||
|
||||
nsIScrollbarFrame* scrollbarFrame = do_QueryFrame(scrollbarBox);
|
||||
nsScrollbarFrame* scrollbarFrame = do_QueryFrame(scrollbarBox);
|
||||
if (scrollbarFrame) {
|
||||
// See if we have a mediator.
|
||||
nsIScrollbarMediator* mediator = scrollbarFrame->GetScrollbarMediator();
|
||||
|
@ -54,7 +54,7 @@
|
||||
#include "nsBoxFrame.h"
|
||||
#include "nsBoxFrame.h"
|
||||
|
||||
nsIBoxLayout* nsSprocketLayout::gInstance = nsnull;
|
||||
nsBoxLayout* nsSprocketLayout::gInstance = nsnull;
|
||||
|
||||
//#define DEBUG_GROW
|
||||
|
||||
@ -64,7 +64,7 @@ nsIBoxLayout* nsSprocketLayout::gInstance = nsnull;
|
||||
|
||||
|
||||
nsresult
|
||||
NS_NewSprocketLayout( nsIPresShell* aPresShell, nsCOMPtr<nsIBoxLayout>& aNewLayout)
|
||||
NS_NewSprocketLayout( nsIPresShell* aPresShell, nsCOMPtr<nsBoxLayout>& aNewLayout)
|
||||
{
|
||||
if (!nsSprocketLayout::gInstance) {
|
||||
nsSprocketLayout::gInstance = new nsSprocketLayout();
|
||||
|
@ -89,13 +89,13 @@ public:
|
||||
|
||||
#define SET_COORD(aX, aY, coord, isHorizontal) if (isHorizontal) { aX = (coord); } else { aY = (coord); }
|
||||
|
||||
nsresult NS_NewSprocketLayout(nsIPresShell* aPresShell, nsCOMPtr<nsIBoxLayout>& aNewLayout);
|
||||
nsresult NS_NewSprocketLayout(nsIPresShell* aPresShell, nsCOMPtr<nsBoxLayout>& aNewLayout);
|
||||
|
||||
class nsSprocketLayout : public nsBoxLayout {
|
||||
|
||||
public:
|
||||
|
||||
friend nsresult NS_NewSprocketLayout(nsIPresShell* aPresShell, nsCOMPtr<nsIBoxLayout>& aNewLayout);
|
||||
friend nsresult NS_NewSprocketLayout(nsIPresShell* aPresShell, nsCOMPtr<nsBoxLayout>& aNewLayout);
|
||||
static void Shutdown();
|
||||
|
||||
NS_IMETHOD Layout(nsIBox* aBox, nsBoxLayoutState& aState);
|
||||
@ -162,8 +162,8 @@ private:
|
||||
|
||||
|
||||
// because the sprocket layout manager has no instance variables. We
|
||||
// can make a static on and reuse it everywhere.
|
||||
static nsIBoxLayout* gInstance;
|
||||
// can make a static one and reuse it everywhere.
|
||||
static nsBoxLayout* gInstance;
|
||||
|
||||
};
|
||||
|
||||
|
@ -64,7 +64,7 @@ NS_IMPL_FRAMEARENA_HELPERS(nsStackFrame)
|
||||
nsStackFrame::nsStackFrame(nsIPresShell* aPresShell, nsStyleContext* aContext):
|
||||
nsBoxFrame(aPresShell, aContext)
|
||||
{
|
||||
nsCOMPtr<nsIBoxLayout> layout;
|
||||
nsCOMPtr<nsBoxLayout> layout;
|
||||
NS_NewStackLayout(aPresShell, layout);
|
||||
SetLayoutManager(layout);
|
||||
}
|
||||
|
@ -52,7 +52,7 @@
|
||||
#include "nsIContent.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
|
||||
nsIBoxLayout* nsStackLayout::gInstance = nsnull;
|
||||
nsBoxLayout* nsStackLayout::gInstance = nsnull;
|
||||
|
||||
#define SPECIFIED_LEFT (1 << NS_SIDE_LEFT)
|
||||
#define SPECIFIED_RIGHT (1 << NS_SIDE_RIGHT)
|
||||
@ -60,7 +60,7 @@ nsIBoxLayout* nsStackLayout::gInstance = nsnull;
|
||||
#define SPECIFIED_BOTTOM (1 << NS_SIDE_BOTTOM)
|
||||
|
||||
nsresult
|
||||
NS_NewStackLayout( nsIPresShell* aPresShell, nsCOMPtr<nsIBoxLayout>& aNewLayout)
|
||||
NS_NewStackLayout( nsIPresShell* aPresShell, nsCOMPtr<nsBoxLayout>& aNewLayout)
|
||||
{
|
||||
if (!nsStackLayout::gInstance) {
|
||||
nsStackLayout::gInstance = new nsStackLayout();
|
||||
|
@ -50,13 +50,13 @@
|
||||
#include "nsBoxLayout.h"
|
||||
#include "nsCOMPtr.h"
|
||||
|
||||
nsresult NS_NewStackLayout(nsIPresShell* aPresShell, nsCOMPtr<nsIBoxLayout>& aNewLayout);
|
||||
nsresult NS_NewStackLayout(nsIPresShell* aPresShell, nsCOMPtr<nsBoxLayout>& aNewLayout);
|
||||
|
||||
class nsStackLayout : public nsBoxLayout
|
||||
{
|
||||
public:
|
||||
|
||||
friend nsresult NS_NewStackLayout(nsIPresShell* aPresShell, nsCOMPtr<nsIBoxLayout>& aNewLayout);
|
||||
friend nsresult NS_NewStackLayout(nsIPresShell* aPresShell, nsCOMPtr<nsBoxLayout>& aNewLayout);
|
||||
static void Shutdown();
|
||||
|
||||
nsStackLayout();
|
||||
@ -75,7 +75,7 @@ public:
|
||||
static PRUint8 GetOffset(nsBoxLayoutState& aState, nsIBox* aChild, nsMargin& aMargin);
|
||||
|
||||
private:
|
||||
static nsIBoxLayout* gInstance;
|
||||
static nsBoxLayout* gInstance;
|
||||
|
||||
}; // class nsStackLayout
|
||||
|
||||
|
@ -842,7 +842,7 @@ FindScrollParts(nsIFrame* aCurrFrame, nsTreeBodyFrame::ScrollParts* aResult)
|
||||
}
|
||||
}
|
||||
|
||||
nsIScrollbarFrame *sf = do_QueryFrame(aCurrFrame);
|
||||
nsScrollbarFrame *sf = do_QueryFrame(aCurrFrame);
|
||||
if (sf) {
|
||||
if (!aCurrFrame->IsHorizontal()) {
|
||||
if (!aResult->mVScrollbar) {
|
||||
@ -4148,7 +4148,7 @@ nsTreeBodyFrame::ScrollHorzInternal(const ScrollParts& aParts, PRInt32 aPosition
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTreeBodyFrame::ScrollbarButtonPressed(nsIScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32 aNewIndex)
|
||||
nsTreeBodyFrame::ScrollbarButtonPressed(nsScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32 aNewIndex)
|
||||
{
|
||||
ScrollParts parts = GetScrollParts();
|
||||
|
||||
@ -4167,7 +4167,7 @@ nsTreeBodyFrame::ScrollbarButtonPressed(nsIScrollbarFrame* aScrollbar, PRInt32 a
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTreeBodyFrame::PositionChanged(nsIScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32& aNewIndex)
|
||||
nsTreeBodyFrame::PositionChanged(nsScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32& aNewIndex)
|
||||
{
|
||||
ScrollParts parts = GetScrollParts();
|
||||
|
||||
|
@ -60,7 +60,7 @@
|
||||
#include "nsDataHashtable.h"
|
||||
#include "imgIRequest.h"
|
||||
#include "imgIDecoderObserver.h"
|
||||
#include "nsIScrollbarFrame.h"
|
||||
#include "nsScrollbarFrame.h"
|
||||
#include "nsThreadUtils.h"
|
||||
|
||||
class nsOverflowChecker;
|
||||
@ -146,8 +146,8 @@ public:
|
||||
virtual PRBool PseudoMatches(nsCSSSelector* aSelector);
|
||||
|
||||
// nsIScrollbarMediator
|
||||
NS_IMETHOD PositionChanged(nsIScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32& aNewIndex);
|
||||
NS_IMETHOD ScrollbarButtonPressed(nsIScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32 aNewIndex);
|
||||
NS_IMETHOD PositionChanged(nsScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32& aNewIndex);
|
||||
NS_IMETHOD ScrollbarButtonPressed(nsScrollbarFrame* aScrollbar, PRInt32 aOldIndex, PRInt32 aNewIndex);
|
||||
NS_IMETHOD VisibilityChanged(PRBool aVisible) { Invalidate(); return NS_OK; }
|
||||
|
||||
// Overridden from nsIFrame to cache our pres context.
|
||||
@ -173,9 +173,9 @@ public:
|
||||
friend class nsTreeColumn;
|
||||
|
||||
struct ScrollParts {
|
||||
nsIScrollbarFrame* mVScrollbar;
|
||||
nsScrollbarFrame* mVScrollbar;
|
||||
nsCOMPtr<nsIContent> mVScrollbarContent;
|
||||
nsIScrollbarFrame* mHScrollbar;
|
||||
nsScrollbarFrame* mHScrollbar;
|
||||
nsCOMPtr<nsIContent> mHScrollbarContent;
|
||||
nsIFrame* mColumnsFrame;
|
||||
nsIScrollableFrame* mColumnsScrollFrame;
|
||||
|
@ -137,6 +137,8 @@ DEFINES += -DCAIRO_GFX
|
||||
INCLUDES += \
|
||||
-I$(srcdir)/../xpwidgets \
|
||||
-I$(srcdir)/../shared \
|
||||
-I$(topsrcdir)/layout/generic \
|
||||
-I$(topsrcdir)/layout/xul/base/src \
|
||||
-I$(topsrcdir)/other-licenses/atk-1.0 \
|
||||
$(NULL)
|
||||
ifdef MOZ_X11
|
||||
|
@ -54,7 +54,7 @@
|
||||
#include "nsILookAndFeel.h"
|
||||
#include "nsGfxCIID.h"
|
||||
#include "nsTransform2D.h"
|
||||
#include "nsIMenuFrame.h"
|
||||
#include "nsMenuFrame.h"
|
||||
#include "prlink.h"
|
||||
#include "nsIDOMHTMLInputElement.h"
|
||||
#include "nsRenderingContext.h"
|
||||
@ -332,7 +332,7 @@ nsNativeThemeGTK::GetGtkWidgetAndState(PRUint8 aWidgetType, nsIFrame* aFrame,
|
||||
aWidgetType == NS_THEME_MENUSEPARATOR ||
|
||||
aWidgetType == NS_THEME_MENUARROW) {
|
||||
PRBool isTopLevel = PR_FALSE;
|
||||
nsIMenuFrame *menuFrame = do_QueryFrame(aFrame);
|
||||
nsMenuFrame *menuFrame = do_QueryFrame(aFrame);
|
||||
if (menuFrame) {
|
||||
isTopLevel = menuFrame->IsOnMenuBar();
|
||||
}
|
||||
|
@ -124,6 +124,8 @@ LOCAL_INCLUDES = \
|
||||
-I. \
|
||||
-I$(srcdir)/../xpwidgets \
|
||||
-I$(srcdir) \
|
||||
-I$(topsrcdir)/layout/generic \
|
||||
-I$(topsrcdir)/layout/xul/base/src \
|
||||
-I$(topsrcdir)/toolkit/xre \
|
||||
-I$(topsrcdir)/xpcom/base \
|
||||
$(NULL)
|
||||
|
@ -55,7 +55,7 @@
|
||||
#include "nsINameSpaceManager.h"
|
||||
#include "nsILookAndFeel.h"
|
||||
#include "nsIDOMHTMLInputElement.h"
|
||||
#include "nsIMenuFrame.h"
|
||||
#include "nsMenuFrame.h"
|
||||
#include "nsWidgetAtoms.h"
|
||||
#include <malloc.h>
|
||||
#include "nsWindow.h"
|
||||
@ -148,7 +148,7 @@ nsNativeThemeWin::~nsNativeThemeWin() {
|
||||
static PRBool IsTopLevelMenu(nsIFrame *aFrame)
|
||||
{
|
||||
PRBool isTopLevel(PR_FALSE);
|
||||
nsIMenuFrame *menuFrame = do_QueryFrame(aFrame);
|
||||
nsMenuFrame *menuFrame = do_QueryFrame(aFrame);
|
||||
if (menuFrame) {
|
||||
isTopLevel = menuFrame->IsOnMenuBar();
|
||||
}
|
||||
@ -1062,7 +1062,7 @@ nsNativeThemeWin::GetThemePartAndState(nsIFrame* aFrame, PRUint8 aWidgetType,
|
||||
PRBool isTopLevel = PR_FALSE;
|
||||
PRBool isOpen = PR_FALSE;
|
||||
PRBool isHover = PR_FALSE;
|
||||
nsIMenuFrame *menuFrame = do_QueryFrame(aFrame);
|
||||
nsMenuFrame *menuFrame = do_QueryFrame(aFrame);
|
||||
nsEventStates eventState = GetContentState(aFrame, aWidgetType);
|
||||
|
||||
isTopLevel = IsTopLevelMenu(aFrame);
|
||||
@ -2759,7 +2759,7 @@ nsresult nsNativeThemeWin::ClassicGetThemePartAndState(nsIFrame* aFrame, PRUint8
|
||||
PRBool isTopLevel = PR_FALSE;
|
||||
PRBool isOpen = PR_FALSE;
|
||||
PRBool isContainer = PR_FALSE;
|
||||
nsIMenuFrame *menuFrame = do_QueryFrame(aFrame);
|
||||
nsMenuFrame *menuFrame = do_QueryFrame(aFrame);
|
||||
nsEventStates eventState = GetContentState(aFrame, aWidgetType);
|
||||
|
||||
// We indicate top-level-ness using aPart. 0 is a normal menu item,
|
||||
|
@ -53,7 +53,7 @@
|
||||
#include "nsIComponentManager.h"
|
||||
#include "nsPIDOMWindow.h"
|
||||
#include "nsProgressFrame.h"
|
||||
#include "nsIMenuFrame.h"
|
||||
#include "nsMenuFrame.h"
|
||||
|
||||
nsNativeTheme::nsNativeTheme()
|
||||
: mAnimatedContentTimeout(PR_UINT32_MAX)
|
||||
@ -514,7 +514,7 @@ nsNativeTheme::IsSubmenu(nsIFrame* aFrame, PRBool* aLeftOfParent)
|
||||
PRBool
|
||||
nsNativeTheme::IsRegularMenuItem(nsIFrame *aFrame)
|
||||
{
|
||||
nsIMenuFrame *menuFrame = do_QueryFrame(aFrame);
|
||||
nsMenuFrame *menuFrame = do_QueryFrame(aFrame);
|
||||
return !(menuFrame && (menuFrame->IsOnMenuBar() ||
|
||||
menuFrame->GetParentMenuListType() != eNotMenuList));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user