zoukankan      html  css  js  c++  java
  • chromuim 源代码分析 GIS

    先看ui,ui的基础控件在

    ui文件夹—views-control-views项目-control文件夹

    先看button

    image

    image button 继承view

    image view继承了好多啊

    我们思考一下 一个控件需要涉及到那些东西

    (1) 控件在屏幕上的位置

    (2) 控件的高 ,宽

    (3) 控件的容器(父控件,子控件)

    (4) 控件获取焦点

    (5) 如何获得这个控件(控件的 id)

    (6) 控件的样式(背景色,字体,border,前景色)

    这些都已经定义在view类里面了,

    image

    这些方法应该是 怎么将控件显示在屏幕上

    如果在往下分析就要看

    public ui::LayerDelegate,
                              public ui::LayerOwner,
                              public ui::AcceleratorTarget,
                              public ui::EventTarget

    这几个类了

    看一下view 公开的方法,这些方法 都是我们在程序里面要调用的

    virtual const Widget* GetWidget() const;
    virtual Widget* GetWidget();

    // Adds |view| as a child of this view, optionally at |index|.
    void AddChildView(View* view);
    void AddChildViewAt(View* view, int index);

    // Moves |view| to the specified |index|. A negative value for |index| moves
    // the view at the end.
    void ReorderChildView(View* view, int index);

    // Removes |view| from this view. The view's parent will change to NULL.
    void RemoveChildView(View* view);

    // Removes all the children from this view. If |delete_children| is true,
    // the views are deleted, unless marked as not parent owned.
    void RemoveAllChildViews(bool delete_children);

    int child_count() const { return static_cast<int>(children_.size()); }
    bool has_children() const { return !children_.empty(); }

    // Returns the child view at |index|.
    const View* child_at(int index) const {
       DCHECK_GE(index, 0);
       DCHECK_LT(index, child_count());
       return children_[index];
    }
    View* child_at(int index) {
       return const_cast<View*>(const_cast<const View*>(this)->child_at(index));
    }

    // Returns the parent view.
    const View* parent() const { return parent_; }
    View* parent() { return parent_; }

    // Returns true if |view| is contained within this View's hierarchy, even as
    // an indirect descendant. Will return true if child is also this view.
    bool Contains(const View* view) const;

    // Returns the index of |view|, or -1 if |view| is not a child of this view.
    int GetIndexOf(const View* view) const;

    // Size and disposition ------------------------------------------------------
    // Methods for obtaining and modifying the position and size of the view.
    // Position is in the coordinate system of the view's parent.
    // Position is NOT flipped for RTL. See "RTL positioning" for RTL-sensitive
    // position accessors.
    // Transformations are not applied on the size/position. For example, if
    // bounds is (0, 0, 100, 100) and it is scaled by 0.5 along the X axis, the
    // width will still be 100 (although when painted, it will be 50x50, painted
    // at location (0, 0)).

    void SetBounds(int x, int y, int width, int height);
    void SetBoundsRect(const gfx::Rect& bounds);
    void SetSize(const gfx::Size& size);
    void SetPosition(const gfx::Point& position);
    void SetX(int x);
    void SetY(int y);

    // No transformation is applied on the size or the locations.
    const gfx::Rect& bounds() const { return bounds_; }
    int x() const { return bounds_.x(); }
    int y() const { return bounds_.y(); }
    int width() const { return bounds_.width(); }
    int height() const { return bounds_.height(); }
    const gfx::Size& size() const { return bounds_.size(); }

    // Returns the bounds of the content area of the view, i.e. the rectangle
    // enclosed by the view's border.
    gfx::Rect GetContentsBounds() const;

    // Returns the bounds of the view in its own coordinates (i.e. position is
    // 0, 0).
    gfx::Rect GetLocalBounds() const;

    以下还有很多方法。。。。。

    Button::Button(ButtonListener* listener)
        : listener_(listener),
          tag_(-1) {
      set_accessibility_focusable(true);
    }

    button 添加响应方法

  • 相关阅读:
    初学java
    位操作运算符的最好的解释
    C++手机通讯录排序
    删除TFS项目上的文件
    单元测试中方法运行测试和调试测试不起作用原因
    EF-CodeFirst系列100
    NPOI-Excel系列-1002.创建带有Document Summary Information和Summary Information的Excel文件
    NPOI-Excel系列-1000.创建一个标准的Excel文件
    T4模板批量生成代码文件
    WebService返回json格式数据供苹果或者安卓程序调用
  • 原文地址:https://www.cnblogs.com/gisbeginner/p/2852398.html
Copyright © 2011-2022 走看看