This file is indexed.

/usr/include/ClanLib-1.0/ClanLib/GUI/menu_node.h is in libclanlib-dev 1.0~svn3827-3build1.

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
/*
**  ClanLib SDK
**  Copyright (c) 1997-2005 The ClanLib Team
**
**  This software is provided 'as-is', without any express or implied
**  warranty.  In no event will the authors be held liable for any damages
**  arising from the use of this software.
**
**  Permission is granted to anyone to use this software for any purpose,
**  including commercial applications, and to alter it and redistribute it
**  freely, subject to the following restrictions:
**
**  1. The origin of this software must not be misrepresented; you must not
**     claim that you wrote the original software. If you use this software
**     in a product, an acknowledgment in the product documentation would be
**     appreciated but is not required.
**  2. Altered source versions must be plainly marked as such, and must not be
**     misrepresented as being the original software.
**  3. This notice may not be removed or altered from any source distribution.
**
**  Note: Some of the libraries ClanLib may link to may have additional
**  requirements or restrictions.
**
**  File Author(s):
**
**    Magnus Norddahl
**    (if your name is missing here, please add it)
*/

//! clanGUI="Controls"
//! header=gui.h

#ifndef header_menu_node
#define header_menu_node

#ifdef CL_API_DLL
#ifdef CL_GUI_EXPORT
#define CL_API_GUI __declspec(dllexport)
#else
#define CL_API_GUI __declspec(dllimport)
#endif
#else
#define CL_API_GUI
#endif

#if _MSC_VER > 1000
#pragma once
#endif

#include "../GUI/component.h"

class CL_Menu;
class CL_MenuNode_Generic;

//: MenuNode component
//- !group=GUI/Controls!
//- !header=gui.h!
class CL_API_GUI CL_MenuNode : public CL_Component
{
//! Construction:
public:
	//: CL_MenuNode Constructor
	CL_MenuNode(
		CL_Menu *parent_menu,
		CL_StyleManager *style = NULL);

	//: CL_MenuNode destructor
	virtual ~CL_MenuNode();

//! Attributes:
public:
	//: Returns a pointer to the CL_Component which is this MenuNodes MenuItem.
	CL_Component *get_data();
	
	//: Returns true if the mouse is in the submenus of this node.
	bool has_mouse_in_submenus();
	
	//: Returns true if the mouse is on this component or it's MenuItem
	//: This overrides CL_Component's has_mouse_over()
	bool has_mouse_over();
	
	//: Returns true if the node has a submenu.
	bool has_submenu();

	//: Returns true if the node has an open submenu.
	bool has_open_submenu();
	
	//: Returns the nodes submenu, or NULL if the node has no submenu.
	CL_Menu *get_submenu();
	
	//: Returns the nodes parent menu.
	CL_Menu *get_parent_menu();

	//: Returns the name of the menu node. 
	//: A menu nodes name forms a part of the path used by the CL_Menu::get_<menu/node/item>(std::string path) functions.
	std::string get_name();

//! Operations:
public:
	//: Set the nodes submenu.
	void set_submenu(CL_Menu *menu);

	//: Set the nodes parent menu.
	void set_parent_menu(CL_Menu *menu);

	//: Set whether the menus should collapse when an node is clicked
	void set_close_on_click(bool close);
	
	//: Close the nodes submenu.
	void collapse();

	//: Open the nodes submenu.
	void open_submenu();

	//: Start the repositioning of the nodes submenus.
	void reposition_submenus();

	//: Set the name of the node. This forms a part of the path used in adressing menu components.
	void set_name(std::string);

//! Signals:
public:
	//: Emitted when repositioning of the menus is requested.
	CL_Signal_v0 &sig_reposition();

	//: Emitted when a menu node is clicked.
	CL_Signal_v0 &sig_clicked();

//! Implementation:
private:
	CL_MenuNode(const CL_MenuNode &copy) : CL_Component(NULL, NULL) { return; } // disallow copy construction.

	CL_MenuNode_Generic *impl;
};

#endif