/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
namespace mozilla { class PresShell; class HTMLSelectEventListener; class ComboboxLabelFrame; namespace dom { class HTMLSelectElement;
}
} // namespace mozilla
class nsComboboxControlFrame final : public nsHTMLButtonControlFrame, public nsIAnonymousContentCreator, public nsISelectControlFrame { using Element = mozilla::dom::Element;
// We're a leaf, so we need to report ourselves as the content insertion // frame.
nsContainerFrame* GetContentInsertionFrame() override { returnthis; }
// Return true if we should render a dropdown button. bool HasDropDownButton() const;
nscoord DropDownButtonISize();
enum DropDownPositionState { // can't show the dropdown at its current position
eDropDownPositionSuppressed, // a resize reflow is pending, don't show it yet
eDropDownPositionPendingResize, // the dropdown has its final size and position and can be displayed here
eDropDownPositionFinal
};
DropDownPositionState AbsolutelyPositionDropDown();
nscoord GetLongestOptionISize(gfxContext*) const;
class RedisplayTextEvent : public mozilla::Runnable { public:
NS_DECL_NSIRUNNABLE explicit RedisplayTextEvent(nsComboboxControlFrame* c)
: mozilla::Runnable("nsComboboxControlFrame::RedisplayTextEvent"),
mControlFrame(c) {} void Revoke() { mControlFrame = nullptr; }
RefPtr<Element> mDisplayLabel; // Anonymous content for the label
RefPtr<Element> mButtonContent; // Anonymous content for the button
nsRevocableEventPtr<RedisplayTextEvent> mRedisplayTextEvent;
// The inline size of our display area. Used by that frame's reflow to size to // the full inline size except the drop-marker.
nscoord mDisplayISize = 0;
int32_t mDisplayedIndex = -1;
nsString mDisplayedOptionTextOrPreview;
RefPtr<mozilla::HTMLSelectEventListener> mEventListener;
};
#endif
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.