moved row color definitions from ScratchpadWindow to ZebraTreeView class;
added detailed TreeView usage documentation to ZebraTreeView
This commit is contained in:
parent
c034ca25e2
commit
49db5f3c53
5 changed files with 84 additions and 23 deletions
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.1 $
|
Version : $Revision: 1.2 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/include/LiveSupport/Widgets/ZebraTreeModelColumnRecord.h,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/include/LiveSupport/Widgets/ZebraTreeModelColumnRecord.h,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -57,7 +57,7 @@ namespace Widgets {
|
||||||
* A basic column record class for tree models with colorable rows.
|
* A basic column record class for tree models with colorable rows.
|
||||||
*
|
*
|
||||||
* @author $Author: fgerlits $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.1 $
|
* @version $Revision: 1.2 $
|
||||||
*/
|
*/
|
||||||
class ZebraTreeModelColumnRecord : public Gtk::TreeModelColumnRecord
|
class ZebraTreeModelColumnRecord : public Gtk::TreeModelColumnRecord
|
||||||
{
|
{
|
||||||
|
@ -65,14 +65,14 @@ class ZebraTreeModelColumnRecord : public Gtk::TreeModelColumnRecord
|
||||||
/**
|
/**
|
||||||
* The column for the color of the row.
|
* The column for the color of the row.
|
||||||
*/
|
*/
|
||||||
Gtk::TreeModelColumn<Colors::ColorName> colorColumn;
|
Gtk::TreeModelColumn<int> rowNumberColumn;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*/
|
*/
|
||||||
ZebraTreeModelColumnRecord(void) throw ()
|
ZebraTreeModelColumnRecord(void) throw ()
|
||||||
{
|
{
|
||||||
add(colorColumn);
|
add(rowNumberColumn);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.5 $
|
Version : $Revision: 1.6 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/include/LiveSupport/Widgets/ZebraTreeView.h,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/include/LiveSupport/Widgets/ZebraTreeView.h,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -69,10 +69,29 @@ using namespace LiveSupport::Core;
|
||||||
/* =============================================================== data types */
|
/* =============================================================== data types */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A list of items, in rows colored alternately grey and light blue.
|
* A table of items, in rows colored alternately gray and light blue.
|
||||||
|
*
|
||||||
|
* TreeView's contain TreeViewColumns; these contain a title (a text Label)
|
||||||
|
* and a table column body (a CellRenderer). The CellRenderer needs to be
|
||||||
|
* connected with a TreeModelColumn using the set_renderer() method of
|
||||||
|
* TreeViewColumn [which, despite its name, does not set the renderer, just
|
||||||
|
* connects it with a tree model column].
|
||||||
|
*
|
||||||
|
* A single TreeViewColumn may contain several CellRenderer's, i.e.,
|
||||||
|
* sub-columns.
|
||||||
|
*
|
||||||
|
* The standard CellRenderer types (CellRendererText etc) can not be
|
||||||
|
* instantiated by the user; they can only be created by the shortcut
|
||||||
|
* TreeViewColumn constructor or the append_column() or insert_column()
|
||||||
|
* functions in TreeView. These create the appropriate CellRenderer,
|
||||||
|
* add it the tree view column, and connect it with the tree model column.
|
||||||
|
*
|
||||||
|
* A derived CellRenderer sub-type needs to be 1) instantiated;
|
||||||
|
* 2) added to a TreeViewColumn using a constructor or pack_start() etc;
|
||||||
|
* 3) connected with a TreeModelColumn using set_renderer().
|
||||||
*
|
*
|
||||||
* @author $Author: fgerlits $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.5 $
|
* @version $Revision: 1.6 $
|
||||||
*/
|
*/
|
||||||
class ZebraTreeView : public Gtk::TreeView
|
class ZebraTreeView : public Gtk::TreeView
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.1 $
|
Version : $Revision: 1.2 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/src/ZebraCellRenderer.cxx,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/src/ZebraCellRenderer.cxx,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -68,7 +68,7 @@ ZebraCellRenderer::ZebraCellRenderer() throw ()
|
||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
ZebraCellRenderer::~ZebraCellRenderer() throw ()
|
ZebraCellRenderer::~ZebraCellRenderer() throw ()
|
||||||
{
|
{
|
||||||
std::cerr << "### destructor\n";
|
// std::cerr << "### destructor\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,12 +82,32 @@ ZebraCellRenderer::get_size_vfunc(Gtk::Widget& widget,
|
||||||
int* width, int* height) const
|
int* width, int* height) const
|
||||||
throw ()
|
throw ()
|
||||||
{
|
{
|
||||||
std::cerr << "### get_size_vfunc()...\n";
|
/*
|
||||||
// call the parent method
|
std::cerr << "### get_size_vfunc():"
|
||||||
|
<< (cell_area ? cell_area->get_x() : -1) << ", "
|
||||||
|
<< (cell_area ? cell_area->get_y() : -1) << "; "
|
||||||
|
<< (cell_area ? cell_area->get_width() : -1) << ", "
|
||||||
|
<< (cell_area ? cell_area->get_height() : -1) << "; "
|
||||||
|
<< (x_offset ? *x_offset : -1) << ", "
|
||||||
|
<< (y_offset ? *y_offset : -1) << " --- "
|
||||||
|
<< (width ? *width : -1) << ", "
|
||||||
|
<< (height ? *height : -1) << "\n";
|
||||||
|
*/
|
||||||
|
// call the parent method
|
||||||
Gtk::CellRendererText::get_size_vfunc(widget, cell_area,
|
Gtk::CellRendererText::get_size_vfunc(widget, cell_area,
|
||||||
x_offset, y_offset,
|
x_offset, y_offset,
|
||||||
width, height);
|
width, height);
|
||||||
std::cerr << "... done.\n";
|
/*
|
||||||
|
std::cerr << "... done: "
|
||||||
|
<< (cell_area ? cell_area->get_x() : -1) << ", "
|
||||||
|
<< (cell_area ? cell_area->get_y() : -1) << "; "
|
||||||
|
<< (cell_area ? cell_area->get_width() : -1) << ", "
|
||||||
|
<< (cell_area ? cell_area->get_height() : -1) << "; "
|
||||||
|
<< (x_offset ? *x_offset : -1) << ", "
|
||||||
|
<< (y_offset ? *y_offset : -1) << " --- "
|
||||||
|
<< (width ? *width : -1) << ", "
|
||||||
|
<< (height ? *height : -1) << "\n";
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
enum { TOGGLE_WIDTH = 12 };
|
enum { TOGGLE_WIDTH = 12 };
|
||||||
|
|
||||||
|
@ -130,11 +150,26 @@ ZebraCellRenderer::render_vfunc(const Glib::RefPtr<Gdk::Drawable>& window,
|
||||||
Gtk::CellRendererState flags)
|
Gtk::CellRendererState flags)
|
||||||
throw ()
|
throw ()
|
||||||
{
|
{
|
||||||
std::cerr << "### render_vfunc()...\n";
|
/*
|
||||||
|
std::cerr << "### render_vfunc(): "
|
||||||
|
<< widget.get_name() << " --- "
|
||||||
|
<< background_area.get_x() << ", "
|
||||||
|
<< background_area.get_y() << "; "
|
||||||
|
<< background_area.get_width() << ", "
|
||||||
|
<< background_area.get_height() << " -- "
|
||||||
|
<< cell_area.get_x() << ", "
|
||||||
|
<< cell_area.get_y() << "; "
|
||||||
|
<< cell_area.get_width() << ", "
|
||||||
|
<< cell_area.get_height() << "; "
|
||||||
|
<< expose_area.get_x() << " -- "
|
||||||
|
<< expose_area.get_y() << "; "
|
||||||
|
<< expose_area.get_width() << ", "
|
||||||
|
<< expose_area.get_height() << " -- "
|
||||||
|
<< flags << "\n";
|
||||||
|
*/
|
||||||
// call the parent function
|
// call the parent function
|
||||||
Gtk::CellRendererText::render_vfunc(window, widget, background_area,
|
Gtk::CellRendererText::render_vfunc(window, widget, background_area,
|
||||||
cell_area, expose_area, flags);
|
cell_area, expose_area, flags);
|
||||||
std::cerr << "... done.\n";
|
|
||||||
/*
|
/*
|
||||||
const unsigned int cell_xpad = property_xpad();
|
const unsigned int cell_xpad = property_xpad();
|
||||||
const unsigned int cell_ypad = property_ypad();
|
const unsigned int cell_ypad = property_ypad();
|
||||||
|
@ -196,11 +231,18 @@ bool ZebraCellRenderer::activate_vfunc(GdkEvent* event,
|
||||||
Gtk::CellRendererState flags)
|
Gtk::CellRendererState flags)
|
||||||
throw ()
|
throw ()
|
||||||
{
|
{
|
||||||
std::cerr << "### activate_vfunc()...\n";
|
/*
|
||||||
|
std::cerr << "### activate_vfunc(): "
|
||||||
|
<< widget.get_name() << ", "
|
||||||
|
<< path << ", "
|
||||||
|
// << background_area << ", "
|
||||||
|
// << cell_area << ", "
|
||||||
|
<< flags << "\n";
|
||||||
// call the parent function
|
// call the parent function
|
||||||
Gtk::CellRendererText::activate_vfunc(event, widget, path,
|
Gtk::CellRendererText::activate_vfunc(event, widget, path,
|
||||||
background_area, cell_area, flags);
|
background_area, cell_area, flags);
|
||||||
std::cerr << "... done.\n";
|
std::cerr << "... done.\n";
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
if(property_activatable_)
|
if(property_activatable_)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.5 $
|
Version : $Revision: 1.6 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/src/ZebraTreeView.cxx,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/src/ZebraTreeView.cxx,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -121,8 +121,9 @@ ZebraTreeView :: cellDataFunction(Gtk::CellRenderer* cell,
|
||||||
throw ()
|
throw ()
|
||||||
{
|
{
|
||||||
ZebraTreeModelColumnRecord model;
|
ZebraTreeModelColumnRecord model;
|
||||||
|
Colors::ColorName colorName = (*iter)[model.rowNumberColumn] ?
|
||||||
Gdk::Color color = Colors::getColor((*iter)[model.colorColumn] );
|
Colors::Gray :
|
||||||
cell->property_cell_background_gdk() = color;
|
Colors::LightBlue;
|
||||||
|
cell->property_cell_background_gdk() = Colors::getColor(colorName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.4 $
|
Version : $Revision: 1.5 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/ScratchpadWindow.cxx,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/ScratchpadWindow.cxx,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -264,9 +264,8 @@ ScratchpadWindow :: showContents(void) throw ()
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
row[modelColumns.titleColumn] = *playable->getTitle();
|
row[modelColumns.titleColumn] = *playable->getTitle();
|
||||||
row[modelColumns.colorColumn] = rowNumber % 2 ? Colors::Gray
|
row[modelColumns.rowNumberColumn] = rowNumber;
|
||||||
: Colors::LightBlue;
|
|
||||||
|
|
||||||
++it;
|
++it;
|
||||||
++rowNumber;
|
++rowNumber;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue