This file is indexed.

/usr/include/Nux-4.0/Nux/VSplitter.h is in libnux-4.0-dev 4.0.8+17.10.20170922-0ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
/*
 * Copyright 2010 Inalogic® Inc.
 *
 * This program is free software: you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License, as
 * published by the  Free Software Foundation; either version 2.1 or 3.0
 * of the License.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranties of
 * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
 * PURPOSE.  See the applicable version of the GNU Lesser General Public
 * License for more details.
 *
 * You should have received a copy of both the GNU Lesser General Public
 * License along with this program. If not, see <http://www.gnu.org/licenses/>
 *
 * Authored by: Jay Taoko <jaytaoko@inalogic.com>
 *
 */

#ifndef VSPLITTER_H
#define VSPLITTER_H

namespace nux
{
  class layout;

  class VSplitter: public View
  {
    NUX_DECLARE_OBJECT_TYPE(VSplitter, View);
  public:
    VSplitter(NUX_FILE_LINE_PROTO);
    ~VSplitter();

    virtual void Draw(GraphicsEngine &graphics_engine, bool force_draw);
    virtual void DrawContent(GraphicsEngine &graphics_engine, bool force_draw);

    void AddWidget(Area *ic, float stretchfactor);
    void ResetSplitConfig();

    void clearContent();

    void OnSplitterMouseDown(int x, int y, unsigned long button_flags, unsigned long key_flags, int header_pos);
    void OnSplitterMouseUp(int x, int y, unsigned long button_flags, unsigned long key_flags, int header_pos);
    void OnSplitterMouseDrag(int x, int y, int dx, int dy, unsigned long button_flags, unsigned long key_flags, int header_pos);

    virtual void OverlayDrawing(GraphicsEngine &graphics_engine);

    //! Return true if this object can break the layout.
    /*
    Return true if this object can break the layout, meaning, the layout can be done on the composition layout only without
    recomputing the whole window layout.
    Inherited from Area
    */
    virtual bool CanBreakLayout()
    {
      return true;
    }

    virtual Area* FindAreaUnderMouse(const Point& mouse_position, NuxEventType event_type);

  protected:
    virtual long ComputeContentSize();
    virtual void DoneRedraw();
    void ResizeSplitter(int header_pos);
    //void ContinuousSplitterAdjustment();
    void setResizeOnSplitterRelease(bool b)
    {
      m_ResizeOnSplitterRelease = b;
    }
    bool getResizeOnSplitterRelease()
    {
      return m_ResizeOnSplitterRelease;
    }

    virtual bool AcceptKeyNavFocus();
    virtual Area* KeyNavIteration(KeyNavDirection direction);

  private:

    typedef BasicView MySplitter;
    std::vector<Area *> m_InterfaceObject;
    std::vector<MySplitter *> m_SplitterObject;
    std::vector<float> m_SplitConfig;

    Point m_point;
    bool new_addition;

    bool m_ResizeOnSplitterRelease;
    int m_current_width;
    int m_current_height;
    int m_current_x;
    int m_current_y;

    bool m_initial_config;

    // splitter bar differential position;
    int mvt_dx, mvt_dy;
    int m_focus_splitter_index;
  };

}

#endif // VSPLITTER_H