This file is indexed.

/usr/include/wx-3.0/wx/generic/laywin.h is in wx3.0-headers 3.0.0-2.

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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
/////////////////////////////////////////////////////////////////////////////
// Name:        wx/generic/laywin.h
// Purpose:     Implements a simple layout algorithm, plus
//              wxSashLayoutWindow which is an example of a window with
//              layout-awareness (via event handlers). This is suited to
//              IDE-style window layout.
// Author:      Julian Smart
// Modified by:
// Created:     04/01/98
// Copyright:   (c) Julian Smart
// Licence:     wxWindows licence
/////////////////////////////////////////////////////////////////////////////

#ifndef _WX_LAYWIN_H_G_
#define _WX_LAYWIN_H_G_

#if wxUSE_SASH
    #include "wx/sashwin.h"
#endif // wxUSE_SASH

#include "wx/event.h"

class WXDLLIMPEXP_FWD_ADV wxQueryLayoutInfoEvent;
class WXDLLIMPEXP_FWD_ADV wxCalculateLayoutEvent;

wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_QUERY_LAYOUT_INFO, wxQueryLayoutInfoEvent );
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_CALCULATE_LAYOUT,  wxCalculateLayoutEvent );

enum wxLayoutOrientation
{
    wxLAYOUT_HORIZONTAL,
    wxLAYOUT_VERTICAL
};

enum wxLayoutAlignment
{
    wxLAYOUT_NONE,
    wxLAYOUT_TOP,
    wxLAYOUT_LEFT,
    wxLAYOUT_RIGHT,
    wxLAYOUT_BOTTOM
};

// Not sure this is necessary
// Tell window which dimension we're sizing on
#define wxLAYOUT_LENGTH_Y       0x0008
#define wxLAYOUT_LENGTH_X       0x0000

// Use most recently used length
#define wxLAYOUT_MRU_LENGTH     0x0010

// Only a query, so don't actually move it.
#define wxLAYOUT_QUERY          0x0100

/*
 * This event is used to get information about window alignment,
 * orientation and size.
 */

class WXDLLIMPEXP_ADV wxQueryLayoutInfoEvent: public wxEvent
{
public:
    wxQueryLayoutInfoEvent(wxWindowID id = 0)
    {
        SetEventType(wxEVT_QUERY_LAYOUT_INFO);
        m_requestedLength = 0;
        m_flags = 0;
        m_id = id;
        m_alignment = wxLAYOUT_TOP;
        m_orientation = wxLAYOUT_HORIZONTAL;
    }

    // Read by the app
    void SetRequestedLength(int length) { m_requestedLength = length; }
    int GetRequestedLength() const { return m_requestedLength; }

    void SetFlags(int flags) { m_flags = flags; }
    int GetFlags() const { return m_flags; }

    // Set by the app
    void SetSize(const wxSize& size) { m_size = size; }
    wxSize GetSize() const { return m_size; }

    void SetOrientation(wxLayoutOrientation orient) { m_orientation = orient; }
    wxLayoutOrientation GetOrientation() const { return m_orientation; }

    void SetAlignment(wxLayoutAlignment align) { m_alignment = align; }
    wxLayoutAlignment GetAlignment() const { return m_alignment; }

    virtual wxEvent *Clone() const { return new wxQueryLayoutInfoEvent(*this); }

protected:
    int                     m_flags;
    int                     m_requestedLength;
    wxSize                  m_size;
    wxLayoutOrientation     m_orientation;
    wxLayoutAlignment       m_alignment;

private:
    DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxQueryLayoutInfoEvent)
};

typedef void (wxEvtHandler::*wxQueryLayoutInfoEventFunction)(wxQueryLayoutInfoEvent&);

#define wxQueryLayoutInfoEventHandler( func ) \
    wxEVENT_HANDLER_CAST( wxQueryLayoutInfoEventFunction, func )

#define EVT_QUERY_LAYOUT_INFO(func) \
    wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_QUERY_LAYOUT_INFO, wxID_ANY, wxID_ANY, wxQueryLayoutInfoEventHandler( func ), NULL ),

/*
 * This event is used to take a bite out of the available client area.
 */

class WXDLLIMPEXP_ADV wxCalculateLayoutEvent: public wxEvent
{
public:
    wxCalculateLayoutEvent(wxWindowID id = 0)
    {
        SetEventType(wxEVT_CALCULATE_LAYOUT);
        m_flags = 0;
        m_id = id;
    }

    // Read by the app
    void SetFlags(int flags) { m_flags = flags; }
    int GetFlags() const { return m_flags; }

    // Set by the app
    void SetRect(const wxRect& rect) { m_rect = rect; }
    wxRect GetRect() const { return m_rect; }

    virtual wxEvent *Clone() const { return new wxCalculateLayoutEvent(*this); }

protected:
    int                     m_flags;
    wxRect                  m_rect;

private:
    DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxCalculateLayoutEvent)
};

typedef void (wxEvtHandler::*wxCalculateLayoutEventFunction)(wxCalculateLayoutEvent&);

#define wxCalculateLayoutEventHandler( func ) wxEVENT_HANDLER_CAST(wxCalculateLayoutEventFunction, func)

#define EVT_CALCULATE_LAYOUT(func) \
    wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_CALCULATE_LAYOUT, wxID_ANY, wxID_ANY, wxCalculateLayoutEventHandler( func ), NULL ),

#if wxUSE_SASH

// This is window that can remember alignment/orientation, does its own layout,
// and can provide sashes too. Useful for implementing docked windows with sashes in
// an IDE-style interface.
class WXDLLIMPEXP_ADV wxSashLayoutWindow: public wxSashWindow
{
public:
    wxSashLayoutWindow()
    {
        Init();
    }

    wxSashLayoutWindow(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("layoutWindow"))
    {
        Create(parent, id, pos, size, style, name);
    }

    bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("layoutWindow"));

// Accessors
    inline wxLayoutAlignment GetAlignment() const { return m_alignment; }
    inline wxLayoutOrientation GetOrientation() const { return m_orientation; }

    inline void SetAlignment(wxLayoutAlignment align) { m_alignment = align; }
    inline void SetOrientation(wxLayoutOrientation orient) { m_orientation = orient; }

    // Give the window default dimensions
    inline void SetDefaultSize(const wxSize& size) { m_defaultSize = size; }

// Event handlers
    // Called by layout algorithm to allow window to take a bit out of the
    // client rectangle, and size itself if not in wxLAYOUT_QUERY mode.
    void OnCalculateLayout(wxCalculateLayoutEvent& event);

    // Called by layout algorithm to retrieve information about the window.
    void OnQueryLayoutInfo(wxQueryLayoutInfoEvent& event);

private:
    void Init();

    wxLayoutAlignment           m_alignment;
    wxLayoutOrientation         m_orientation;
    wxSize                      m_defaultSize;

private:
    DECLARE_DYNAMIC_CLASS_NO_COPY(wxSashLayoutWindow)
    DECLARE_EVENT_TABLE()
};

#endif // wxUSE_SASH

class WXDLLIMPEXP_FWD_CORE wxMDIParentFrame;
class WXDLLIMPEXP_FWD_CORE wxFrame;

// This class implements the layout algorithm
class WXDLLIMPEXP_ADV wxLayoutAlgorithm: public wxObject
{
public:
    wxLayoutAlgorithm() {}

#if wxUSE_MDI_ARCHITECTURE
    // The MDI client window is sized to whatever's left over.
    bool LayoutMDIFrame(wxMDIParentFrame* frame, wxRect* rect = NULL);
#endif // wxUSE_MDI_ARCHITECTURE

    // mainWindow is sized to whatever's left over. This function for backward
    // compatibility; use LayoutWindow.
    bool LayoutFrame(wxFrame* frame, wxWindow* mainWindow = NULL);

    // mainWindow is sized to whatever's left over.
    bool LayoutWindow(wxWindow* frame, wxWindow* mainWindow = NULL);
};

#endif
    // _WX_LAYWIN_H_G_