This file is indexed.

/usr/include/wx-3.0/wx/mousestate.h is in wx3.0-headers 3.0.4+dfsg-3.

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
///////////////////////////////////////////////////////////////////////////////
// Name:        wx/mousestate.h
// Purpose:     Declaration of wxMouseState class
// Author:      Vadim Zeitlin
// Created:     2008-09-19 (extracted from wx/utils.h)
// Copyright:   (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence:     wxWindows licence
///////////////////////////////////////////////////////////////////////////////

#ifndef _WX_MOUSESTATE_H_
#define _WX_MOUSESTATE_H_

#include "wx/gdicmn.h"      // for wxPoint
#include "wx/kbdstate.h"

// the symbolic names for the mouse buttons
enum wxMouseButton
{
    wxMOUSE_BTN_ANY     = -1,
    wxMOUSE_BTN_NONE    = 0,
    wxMOUSE_BTN_LEFT    = 1,
    wxMOUSE_BTN_MIDDLE  = 2,
    wxMOUSE_BTN_RIGHT   = 3,
    wxMOUSE_BTN_AUX1    = 4,
    wxMOUSE_BTN_AUX2    = 5,
    wxMOUSE_BTN_MAX
};

// ----------------------------------------------------------------------------
// wxMouseState contains the information about mouse position, buttons and also
// key modifiers
// ----------------------------------------------------------------------------

// wxMouseState is used to hold information about button and modifier state
// and is what is returned from wxGetMouseState.
class WXDLLIMPEXP_CORE wxMouseState : public wxKeyboardState
{
public:
    wxMouseState()
        : m_leftDown(false), m_middleDown(false), m_rightDown(false),
          m_aux1Down(false), m_aux2Down(false),
          m_x(0), m_y(0)
    {
    }

    // default copy ctor, assignment operator and dtor are ok


    // accessors for the mouse position
    wxCoord GetX() const { return m_x; }
    wxCoord GetY() const { return m_y; }
    wxPoint GetPosition() const { return wxPoint(m_x, m_y); }
    void GetPosition(wxCoord *x, wxCoord *y) const
    {
        if ( x )
            *x = m_x;
        if ( y )
            *y = m_y;
    }

    // this overload is for compatibility only
    void GetPosition(long *x, long *y) const
    {
        if ( x )
            *x = m_x;
        if ( y )
            *y = m_y;
    }

    // accessors for the pressed buttons
    bool LeftIsDown()    const { return m_leftDown; }
    bool MiddleIsDown()  const { return m_middleDown; }
    bool RightIsDown()   const { return m_rightDown; }
    bool Aux1IsDown()    const { return m_aux1Down; }
    bool Aux2IsDown()    const { return m_aux2Down; }

    bool ButtonIsDown(wxMouseButton but) const
    {
        switch ( but )
        {
            case wxMOUSE_BTN_ANY:
                return LeftIsDown() || MiddleIsDown() || RightIsDown() ||
                            Aux1IsDown() || Aux2IsDown();

            case wxMOUSE_BTN_LEFT:
                return LeftIsDown();

            case wxMOUSE_BTN_MIDDLE:
                return MiddleIsDown();

            case wxMOUSE_BTN_RIGHT:
                return RightIsDown();

            case wxMOUSE_BTN_AUX1:
                return Aux1IsDown();

            case wxMOUSE_BTN_AUX2:
                return Aux2IsDown();

            case wxMOUSE_BTN_NONE:
            case wxMOUSE_BTN_MAX:
                break;
        }

        wxFAIL_MSG(wxS("invalid parameter"));
        return false;
    }


    // these functions are mostly used by wxWidgets itself
    void SetX(wxCoord x) { m_x = x; }
    void SetY(wxCoord y) { m_y = y; }
    void SetPosition(wxPoint pos) { m_x = pos.x; m_y = pos.y; }

    void SetLeftDown(bool down)   { m_leftDown = down; }
    void SetMiddleDown(bool down) { m_middleDown = down; }
    void SetRightDown(bool down)  { m_rightDown = down; }
    void SetAux1Down(bool down)   { m_aux1Down = down; }
    void SetAux2Down(bool down)   { m_aux2Down = down; }

    // this mostly makes sense in the derived classes such as wxMouseEvent
    void SetState(const wxMouseState& state) { *this = state; }

    // these functions are for compatibility only, they were used in 2.8
    // version of wxMouseState but their names are confusing as wxMouseEvent
    // has methods with the same names which do something quite different so
    // don't use them any more
#if WXWIN_COMPATIBILITY_2_8
    wxDEPRECATED_INLINE(bool LeftDown() const, return LeftIsDown(); )
    wxDEPRECATED_INLINE(bool MiddleDown() const, return MiddleIsDown(); )
    wxDEPRECATED_INLINE(bool RightDown() const, return RightIsDown(); )
#endif // WXWIN_COMPATIBILITY_2_8

    // for compatibility reasons these variables are public as the code using
    // wxMouseEvent often uses them directly -- however they should not be
    // accessed directly in this class, use the accessors above instead
// private:
    bool m_leftDown   : 1;
    bool m_middleDown : 1;
    bool m_rightDown  : 1;
    bool m_aux1Down   : 1;
    bool m_aux2Down   : 1;

    wxCoord m_x,
            m_y;
};

#endif // _WX_MOUSESTATE_H_