/usr/include/paragui/pgrectlist.h is in libparagui1.1-dev 1.1.8-3.1.
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 | /*
ParaGUI - crossplatform widgetset
Copyright (C) 2000,2001,2002 Alexander Pipelka
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; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Alexander Pipelka
pipelka@teleweb.at
Last Update: $Author: braindead $
Update Date: $Date: 2004/02/28 18:49:06 $
Source File: $Source: /cvsroot/paragui/paragui/include/pgrectlist.h,v $
CVS/RCS Revision: $Revision: 1.3.6.3.2.6 $
Status: $State: Exp $
*/
#ifndef PG_RECTLIST_H
#define PG_RECTLIST_H
#include "paragui.h"
#include "pgrect.h"
class PG_Widget;
/**
@author Alexander Pipelka
@short A list derived from vector to handle overlapping and child-widgets
*/
class DECLSPEC PG_RectList {
public:
/**
constructor of the list
*/
PG_RectList();
/**
destructor
*/
virtual ~PG_RectList();
/**
add a widget to the list
@param rect pointer to the widget (rect)
@param front insert the rectangle at the head of the list if true
This functions adds the widget to the back of the list.
*/
void Add(PG_Widget* rect, bool front = false);
/**
remove a widget from the list
@param rect pointer to the widget (rect)
@return true - if the widget was remove successfully
This functions removes the given widget from the list
*/
bool Remove(PG_Rect* rect);
/**
check if a given point is inside any rectangle in the list
@param p point to check
@return pointer to the first widget that contains the point / NULL if there is no match
Returns the first visible widget which contains the given point.
*/
PG_Widget* IsInside(const PG_Point& p);
PG_Widget* Find(int id);
PG_Widget* Find(const char* name);
/**
blit all rectangles in the list to the screen
This function blits all visible rectangles from the first to the last position to the screen.
*/
void Blit();
/**
blit all rectangles from the list intersecting a reference rectangle to the screen
@param rect reference rectangle
Performs an intersection of all visible rectangles in the list with the reference rectangle.
The resulting list is clipped to the reference and blitted to the screen.
*/
void Blit(const PG_Rect& rect);
void Blit(const PG_Rect& rect, PG_Widget* first, PG_Widget* last = NULL);
/**
reorder a widget (rectangle) - front
@param rect widget to reorder
@return true - the rectangle was found and reordered / false - the rectangle isn't in the list.
Bring the given widget (rectangle) to the front (will overlap all other widgets in the list).
*/
bool BringToFront(PG_Widget* rect);
/**
reorder a widget (rectangle) - back
@param rect widget to reorder
@return true - the rectangle was found and reordered / false - the rectangle isn't in the list.
Send the given widget (rectangle) to the back (will be overlapped by all other widgets in the list).
*/
bool SendToBack(PG_Widget* rect);
inline PG_Widget* first() {
return my_first;
}
inline PG_Widget* last() {
return my_last;
}
void clear();
inline Uint32 size() {
return my_count;
}
protected:
PG_Widget* my_first;
PG_Widget* my_last;
Uint32 my_count;
};
#endif // PG_RECTLIST_H
|