This file is indexed.

/usr/include/gtkmm-2.4/gtkmm/comboboxtext.h is in libgtkmm-2.4-dev 1:2.24.5-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
// -*- c++ -*-
#ifndef _GTKMM_COMBOBOXTEXT_H
#define _GTKMM_COMBOBOXTEXT_H

/* comboboxtext.h
 * 
 * Copyright (C) 2003 The gtkmm Development Team
 *
 * This library 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 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <gtkmm/combobox.h>

namespace Gtk
{

//This is a C++ convenience class that is equivalent to the gtk_combo_box_new_text() C convenience function.
//In gtkmm-3.0 we simply wrap GtkComboBoxText, which is also in GTK+ 2.24.
//But this C++ class was created before GtkComboBoxText existed and we want to avoid changing the ABI. 

/** This is a specialisation of the ComboBox which has one column of text (a simple list),
 * and appropriate methods for setting and getting the text.
 *
 * You should not call set_model() or attempt to pack more cells into this combo box via its CellLayout base class.
 *
 * You can't use this class with Gtk::Builder::get_widget() or
 * Gtk::Builder::get_widget_derived() to get a GtkComboBoxText object from a
 * Glade file. Gtk::ComboBoxText does not wrap GtkComboBoxText, because
 * Gtk::ComboBoxText was made before GtkComboBoxText, and we don't want to
 * break the ABI.
 * This has been fixed in gtkmm 3.x, which is not ABI-compatible with
 * gtkmm 2.x, and which you are recommended to use.
 *
 * Note that you cannot use this class with Gnome::Glade::Xml::get_widget_derived() to wrap a GtkComboBox added 
 * in the Glade user interface designer, because Glade adds its own TreeModel instead of using the TreeModel from 
 * this class. You could use a normal Gtk::ComboBox instead, though you can not use Glade to add rows to a TreeModel 
 * that is defined in your C++ code.
 *
 * @ingroup Widgets
 */
class ComboBoxText
: public ComboBox
{
#ifndef DOXYGEN_SHOULD_SKIP_THIS
private:
  // noncopyable
  ComboBoxText(const ComboBoxText&);
  ComboBoxText& operator=(const ComboBoxText&);

protected:
  explicit ComboBoxText(const Glib::ConstructParams& construct_params);
  explicit ComboBoxText(GtkComboBox* castitem);

#endif /* DOXYGEN_SHOULD_SKIP_THIS */

public:

  /** Creates a new empty ComboBoxText, without an entry.
   */
  ComboBoxText();
  
  /** Creates a new empty ComboBoxText, optionally with an entry.
   * @param has_entry If this is true then this will have an Entry widget.
   */
  explicit ComboBoxText(bool has_entry); //In gtkmm 3.0 has_entry has a default value but we already have a default constructor here.

  /** Add an item to the end of the drop-down list.
   * @param text The text for the item.
   */
  void append(const Glib::ustring& text);
  
  void insert(int position, const Glib::ustring& text);

  /** Add an item to the beginning of the drop-down list.
   * @param text The text for the item.
   */
  void prepend(const Glib::ustring& text);
  
#ifndef GTKMM_DISABLE_DEPRECATED
  /** Add an item to the end of the drop-down list.
   * @param text The text for the item.
   *
   * @deprecated Use append().
   */
  void append_text(const Glib::ustring& text);
  
  /**
   * @deprecated Use insert().
   */
  void insert_text(int position, const Glib::ustring& text);

  /** Add an item to the beginning of the drop-down list.
   * @param text The text for the item.
   *
   * @deprecated Use prepend().
   */
  void prepend_text(const Glib::ustring& text);
  
  /** Remove all items from the drop-down menu.
   *
   * @deprecated Use remove_all().
   */
  void clear_items();
#endif //GTKMM_DISABLE_DEPRECATED

  /** Get the currently-chosen item.
   * @result The text of the active item.
   */
  Glib::ustring get_active_text() const;

  /** Set the currently-chosen item if it matches the specified text.
   * @text The text of the item that should be selected.
   */
  void set_active_text(const Glib::ustring& text);

  //There is a clear() method in the CellLayout base class, so this would cause confusion.
  //TODO: Remove this when we can break API.
  /// @deprecated Use remove_all(). Since 2.8.
  void clear();

  /** Remove all items from the drop-down menu.
   */
  void remove_all();
  
  /** Remove the specified item if it is in the drop-down menu.
   * @text The text of the item that should be removed.
   */
  void remove_text(const Glib::ustring& text);

protected:

  //Tree model columns:
  //These columns are used by the model that is created by the default constructor
  class TextModelColumns : public Gtk::TreeModel::ColumnRecord
  {
  public:
    TextModelColumns()
    { add(m_column); }

    Gtk::TreeModelColumn<Glib::ustring> m_column;
  };

  TextModelColumns m_text_columns;
};


} // namespace Gtk


#endif /* _GTKMM_COMBOBOXTEXT_H */