From 17c1fe80afbaa85bc7d8caf8516a41ec1b89fbf4 Mon Sep 17 00:00:00 2001 From: John Smith Date: Tue, 26 Jun 2012 16:47:04 +0900 Subject: Fix for 722017 : Better Gradient Window (bzr r11515) --- src/widgets/gradient-selector.h | 54 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 4 deletions(-) (limited to 'src/widgets/gradient-selector.h') diff --git a/src/widgets/gradient-selector.h b/src/widgets/gradient-selector.h index d957f7baf..f7cc3cc14 100644 --- a/src/widgets/gradient-selector.h +++ b/src/widgets/gradient-selector.h @@ -17,10 +17,19 @@ #include #include + +#include +#include +#include +#include +#include +#include + #include #include "sp-gradient.h" #include "sp-gradient-spread.h" #include "sp-gradient-units.h" +#include "gradient-image.h" class SPGradient; @@ -49,24 +58,61 @@ struct SPGradientSelector { /* Vector selector */ GtkWidget *vectors; + /* Tree */ + bool _checkForSelected(const Gtk::TreePath& path, const Gtk::TreeIter& iter, SPGradient *vector); + void onTreeSelection(); + void onTreeEdited( const Glib::ustring& path_string, const Glib::ustring& new_text); + void onTreeNameColClick(); + void onTreeColorColClick(); + void onTreeCountColClick(); + + Gtk::TreeView *treeview; + Gtk::ScrolledWindow *scrolled_window; + class ModelColumns : public Gtk::TreeModel::ColumnRecord + { + public: + ModelColumns() + { + add(name); + add(refcount); + add(color); + add(data); + add(pixbuf); + } + virtual ~ModelColumns() {} + + Gtk::TreeModelColumn name; + Gtk::TreeModelColumn color; + Gtk::TreeModelColumn refcount; + Gtk::TreeModelColumn data; + Gtk::TreeModelColumn > pixbuf; + + }; + + ModelColumns *columns; + Glib::RefPtr store; + Gtk::CellRendererPixbuf* icon_renderer; + Gtk::CellRendererText* text_renderer; + /* Editing buttons */ GtkWidget *edit; GtkWidget *add; + GtkWidget *merge; /* Position widget */ GtkWidget *position; - /* Spread selector */ - GtkWidget *spread; - GtkWidget *spreadLbl; - bool safelyInit; + bool blocked; + std::vector nonsolid; void setMode(SelectorMode mode); void setUnits(SPGradientUnits units); void setSpread(SPGradientSpread spread); void setVector(SPDocument *doc, SPGradient *vector); + void selectGradientInTree(SPGradient *vector); + SPGradientUnits getUnits(); SPGradientSpread getSpread(); SPGradient *getVector(); -- cgit v1.2.3