⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rendermenulist.h

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 H
字号:
/* * This file is part of the select element renderer in WebCore. * * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB.  If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * */#ifndef RenderMenuList_h#define RenderMenuList_h#include "PopupMenuClient.h"#include "RenderFlexibleBox.h"#if PLATFORM(MAC)#define POPUP_MENU_PULLS_DOWN 0#else#define POPUP_MENU_PULLS_DOWN 1#endifnamespace WebCore {class HTMLSelectElement;class PopupMenu;class RenderText;class RenderMenuList : public RenderFlexibleBox, private PopupMenuClient {public:    RenderMenuList(HTMLSelectElement*);    ~RenderMenuList();        HTMLSelectElement* selectElement();private:    virtual bool isMenuList() const { return true; }    virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0);    virtual void removeChild(RenderObject*);    virtual bool createsAnonymousWrapper() const { return true; }    virtual bool canHaveChildren() const { return false; }    virtual void updateFromElement();    virtual bool hasControlClip() const { return true; }    virtual IntRect controlClipRect(int tx, int ty) const;    virtual const char* renderName() const { return "RenderMenuList"; }    virtual void calcPrefWidths();public:    bool popupIsVisible() const { return m_popupIsVisible; }    void showPopup();    void hidePopup();    void setOptionsChanged(bool changed) { m_optionsChanged = changed; }    String text() const;private:    virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);    // PopupMenuClient methods    virtual String itemText(unsigned listIndex) const;    virtual bool itemIsEnabled(unsigned listIndex) const;    virtual PopupMenuStyle itemStyle(unsigned listIndex) const;    virtual PopupMenuStyle menuStyle() const;    virtual int clientInsetLeft() const;    virtual int clientInsetRight() const;    virtual int clientPaddingLeft() const;    virtual int clientPaddingRight() const;    virtual int listSize() const;    virtual int selectedIndex() const;    virtual bool itemIsSeparator(unsigned listIndex) const;    virtual bool itemIsLabel(unsigned listIndex) const;    virtual bool itemIsSelected(unsigned listIndex) const;    virtual void setTextFromItem(unsigned listIndex);    virtual bool valueShouldChangeOnHotTrack() const { return true; }    virtual bool shouldPopOver() const { return !POPUP_MENU_PULLS_DOWN; }    virtual void valueChanged(unsigned listIndex, bool fireOnChange = true);    virtual FontSelector* fontSelector() const;    virtual HostWindow* hostWindow() const;    virtual PassRefPtr<Scrollbar> createScrollbar(ScrollbarClient*, ScrollbarOrientation, ScrollbarControlSize);    virtual bool hasLineIfEmpty() const { return true; }    Color itemBackgroundColor(unsigned listIndex) const;    void createInnerBlock();    void adjustInnerStyle();    void setText(const String&);    void setTextFromOption(int optionIndex);    void updateOptionsWidth();    RenderText* m_buttonText;    RenderBlock* m_innerBlock;    bool m_optionsChanged;    int m_optionsWidth;    RefPtr<PopupMenu> m_popup;    bool m_popupIsVisible;};}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -