Nemiver  0.3
nmv-variables-utils.h
Go to the documentation of this file.
1 //Author: Dodji Seketeli
2 /*
3  *This file is part of the Nemiver project
4  *
5  *Nemiver is free software; you can redistribute
6  *it and/or modify it under the terms of
7  *the GNU General Public License as published by the
8  *Free Software Foundation; either version 2,
9  *or (at your option) any later version.
10  *
11  *Nemiver is distributed in the hope that it will
12  *be useful, but WITHOUT ANY WARRANTY;
13  *without even the implied warranty of
14  *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15  *See the GNU General Public License for more details.
16  *
17  *You should have received a copy of the
18  *GNU General Public License along with Nemiver;
19  *see the file COPYING.
20  *If not, write to the Free Software Foundation,
21  *Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22  *
23  *See COPYRIGHT file copyright information.
24  */
25 #ifndef __NMV_VARIABLES_UTILS_H__
26 #define __NMV_VARIABLES_UTILS_H__
27 
28 #include <list>
29 #include <gtkmm/treeview.h>
30 #include <gtkmm/treestore.h>
31 #include <gtkmm/treemodelcolumn.h>
32 #include <gdkmm/color.h>
33 #include "common/nmv-ustring.h"
34 #include "nmv-i-debugger.h"
35 
36 NEMIVER_BEGIN_NAMESPACE (nemiver)
37 NEMIVER_BEGIN_NAMESPACE (variables_utils2)
38 
39 struct VariableColumns : public Gtk::TreeModelColumnRecord {
40  enum Offset {
41  NAME_OFFSET=0,
49  VARIABLE_VALUE_EDITABLE_OFFSET
50  };
51 
52  Gtk::TreeModelColumn<Glib::ustring> name;
53  Gtk::TreeModelColumn<Glib::ustring> value;
54  Gtk::TreeModelColumn<Glib::ustring> type;
55  Gtk::TreeModelColumn<Glib::ustring> type_caption;
56  Gtk::TreeModelColumn<IDebugger::VariableSafePtr> variable;
57  Gtk::TreeModelColumn<bool> is_highlighted;
58  Gtk::TreeModelColumn<bool> needs_unfolding;
59  Gtk::TreeModelColumn<Gdk::RGBA> fg_color;
60  Gtk::TreeModelColumn<bool> variable_value_editable;
61 
63  {
64  add (name);
65  add (value);
66  add (type);
67  add (type_caption);
68  add (variable);
69  add (is_highlighted);
70  add (needs_unfolding);
71  add (fg_color);
72  add (variable_value_editable);
73  }
74 };//end VariableColumns
75 
76 VariableColumns& get_variable_columns ();
77 
78 bool is_type_a_pointer (const UString &a_type);
79 
80 void set_a_variable_node_type (Gtk::TreeModel::iterator &a_var_it,
81  const UString &a_type,
82  bool a_truncate);
83 
85  Gtk::TreeView &a_tree_view,
86  Gtk::TreeModel::iterator &a_iter,
87  bool a_truncate_type,
88  bool a_handle_highlight,
89  bool a_is_new_frame);
90 
92  Gtk::TreeView &a_tree_view,
93  Gtk::TreeModel::iterator a_var_it,
94  bool a_truncate_type);
95 
97  const Gtk::TreeModel::iterator &a_parent_row_it,
98  Gtk::TreeModel::iterator &a_out_row_it);
99 
101  const Gtk::TreeModel::iterator a_row_it);
102 
104  const Gtk::TreeModel::iterator &a_parent_row_it,
105  Gtk::TreeModel::iterator &a_out_row_it);
106 
108  Gtk::TreeView &a_tree_view,
109  Gtk::TreeModel::iterator &a_parent_row_it,
110  bool a_truncate_type,
111  bool a_handle_highlight,
112  bool a_is_new_frame,
113  bool a_update_members = false);
114 
116  Gtk::TreeView &a_tree_view,
117  Gtk::TreeModel::iterator &a_parent_row_it,
118  bool a_truncate_type);
119 
121  Gtk::TreeView &a_tree_view,
122  Gtk::TreeModel::iterator &a_parent_row_it,
123  Gtk::TreeModel::iterator &a_result,
124  bool a_truncate_type);
125 
127  Gtk::TreeView &a_tree_view,
128  Gtk::TreeModel::iterator a_row_it,
129  bool a_truncate_type);
130 
132  const Glib::RefPtr<Gtk::TreeStore> &a_store,
133  const Gtk::TreeModel::iterator &a_parent_row_it);
134 
135 bool unlink_member_variable_rows (const Gtk::TreeModel::iterator &a_row_it,
136  const Glib::RefPtr<Gtk::TreeStore> &a_store);
137 
139  const Gtk::TreeModel::iterator &a_var_row_it,
140  Gtk::TreeView &a_tree_view,
141  const Glib::RefPtr<Gtk::TreeStore> &a_store);
142 
143 NEMIVER_END_NAMESPACE (variables_utils2)
144 NEMIVER_END_NAMESPACE (nemiver)
145 
146 #endif //__NMV_VARIABLES_UTILS_H__
147 
nemiver::variables_utils2::set_a_variable_node_type
void set_a_variable_node_type(Gtk::TreeModel::iterator &a_var_it, const UString &a_type, bool a_truncate)
nemiver::variables_utils2::find_a_variable_descendent
bool find_a_variable_descendent(const IDebugger::VariableSafePtr a_var, const Gtk::TreeModel::iterator &a_parent_row_it, Gtk::TreeModel::iterator &a_out_row_it)
nemiver::variables_utils2::get_variable_columns
VariableColumns & get_variable_columns()
nemiver::variables_utils2::VariableColumns::FG_COLOR_OFFSET
@ FG_COLOR_OFFSET
Definition: nmv-variables-utils.h:48
nemiver::variables_utils2::VariableColumns::TYPE_CAPTION_OFFSET
@ TYPE_CAPTION_OFFSET
Definition: nmv-variables-utils.h:44
nemiver
Definition: nmv-address.h:31
nemiver::variables_utils2::set_a_variable
bool set_a_variable(const IDebugger::VariableSafePtr a_var, Gtk::TreeView &a_tree_view, Gtk::TreeModel::iterator a_row_it, bool a_truncate_type)
nemiver::variables_utils2::VariableColumns::fg_color
Gtk::TreeModelColumn< Gdk::RGBA > fg_color
Definition: nmv-variables-utils.h:59
nemiver::variables_utils2::variables_match
bool variables_match(const IDebugger::VariableSafePtr &a_var, const Gtk::TreeModel::iterator a_row_it)
nmv-ustring.h
nemiver::variables_utils2::update_a_variable_node
void update_a_variable_node(const IDebugger::VariableSafePtr a_var, Gtk::TreeView &a_tree_view, Gtk::TreeModel::iterator &a_iter, bool a_truncate_type, bool a_handle_highlight, bool a_is_new_frame)
nemiver::variables_utils2::VariableColumns
Definition: nmv-variables-utils.h:39
nemiver::variables_utils2::append_a_variable
bool append_a_variable(const IDebugger::VariableSafePtr a_var, Gtk::TreeView &a_tree_view, Gtk::TreeModel::iterator &a_parent_row_it, Gtk::TreeModel::iterator &a_result, bool a_truncate_type)
nemiver::variables_utils2::VariableColumns::type
Gtk::TreeModelColumn< Glib::ustring > type
Definition: nmv-variables-utils.h:54
nemiver::variables_utils2::VariableColumns::VariableColumns
VariableColumns()
Definition: nmv-variables-utils.h:62
nemiver::variables_utils2::VariableColumns::Offset
Offset
Definition: nmv-variables-utils.h:40
nemiver::variables_utils2::VariableColumns::name
Gtk::TreeModelColumn< Glib::ustring > name
Definition: nmv-variables-utils.h:52
nemiver::variables_utils2::VariableColumns::value
Gtk::TreeModelColumn< Glib::ustring > value
Definition: nmv-variables-utils.h:53
nemiver::variables_utils2::VariableColumns::NEEDS_UNFOLDING
@ NEEDS_UNFOLDING
Definition: nmv-variables-utils.h:47
nemiver::common::UString
Definition: nmv-ustring.h:45
nemiver::variables_utils2::update_a_variable
bool update_a_variable(const IDebugger::VariableSafePtr a_var, Gtk::TreeView &a_tree_view, Gtk::TreeModel::iterator &a_parent_row_it, bool a_truncate_type, bool a_handle_highlight, bool a_is_new_frame, bool a_update_members=false)
nemiver::variables_utils2::VariableColumns::variable_value_editable
Gtk::TreeModelColumn< bool > variable_value_editable
Definition: nmv-variables-utils.h:60
nemiver::variables_utils2::unlink_a_variable_row
bool unlink_a_variable_row(const IDebugger::VariableSafePtr &a_var, const Glib::RefPtr< Gtk::TreeStore > &a_store, const Gtk::TreeModel::iterator &a_parent_row_it)
nemiver::variables_utils2::visualize_a_variable
bool visualize_a_variable(const IDebugger::VariableSafePtr a_var, const Gtk::TreeModel::iterator &a_var_row_it, Gtk::TreeView &a_tree_view, const Glib::RefPtr< Gtk::TreeStore > &a_store)
nemiver::variables_utils2::VariableColumns::IS_HIGHLIGHTED_OFFSET
@ IS_HIGHLIGHTED_OFFSET
Definition: nmv-variables-utils.h:46
nemiver::variables_utils2::VariableColumns::VARIABLE_OFFSET
@ VARIABLE_OFFSET
Definition: nmv-variables-utils.h:45
nemiver::variables_utils2::find_a_variable
bool find_a_variable(const IDebugger::VariableSafePtr a_var, const Gtk::TreeModel::iterator &a_parent_row_it, Gtk::TreeModel::iterator &a_out_row_it)
nemiver::variables_utils2::unlink_member_variable_rows
bool unlink_member_variable_rows(const Gtk::TreeModel::iterator &a_row_it, const Glib::RefPtr< Gtk::TreeStore > &a_store)
nemiver::variables_utils2::VariableColumns::is_highlighted
Gtk::TreeModelColumn< bool > is_highlighted
Definition: nmv-variables-utils.h:57
Gtk
Definition: nmv-asm-utils.h:30
nemiver::variables_utils2::VariableColumns::needs_unfolding
Gtk::TreeModelColumn< bool > needs_unfolding
Definition: nmv-variables-utils.h:58
nmv-i-debugger.h
nemiver::variables_utils2::VariableColumns::TYPE_OFFSET
@ TYPE_OFFSET
Definition: nmv-variables-utils.h:43
nemiver::variables_utils2::VariableColumns::type_caption
Gtk::TreeModelColumn< Glib::ustring > type_caption
Definition: nmv-variables-utils.h:55
nemiver::variables_utils2::VariableColumns::variable
Gtk::TreeModelColumn< IDebugger::VariableSafePtr > variable
Definition: nmv-variables-utils.h:56
nemiver::variables_utils2::VariableColumns::VALUE_OFFSET
@ VALUE_OFFSET
Definition: nmv-variables-utils.h:42
nemiver::variables_utils2::update_unfolded_variable
void update_unfolded_variable(const IDebugger::VariableSafePtr a_var, Gtk::TreeView &a_tree_view, Gtk::TreeModel::iterator a_var_it, bool a_truncate_type)
nemiver::common::SafePtr< Variable, ObjectRef, ObjectUnref >
nemiver::variables_utils2::is_type_a_pointer
bool is_type_a_pointer(const UString &a_type)