diff --git a/source/gui/widgets/treebox.cpp b/source/gui/widgets/treebox.cpp index 1c14b6c2..aad33dd3 100644 --- a/source/gui/widgets/treebox.cpp +++ b/source/gui/widgets/treebox.cpp @@ -74,93 +74,7 @@ namespace nana return nullptr; } - class tlwnd_drawer - : public drawer_trigger, public compset_interface - { - public: - typedef drawer_trigger::graph_reference graph_reference; - - void assign(const item_attribute_t & item_attr, const pat::cloneable* renderer, const pat::cloneable * compset_placer) - { - if(renderer && compset_placer) - { - renderer_ = *renderer; - placer_ = *compset_placer; - - item_attr_ = item_attr; - - _m_draw(); - } - } - private: - void _m_draw() - { - item_r_.x = item_r_.y = 0; - item_r_.width = placer_->item_width(*this->graph_, item_attr_); - item_r_.height = placer_->item_height(*this->graph_); - - comp_attribute_t attr; - if(comp_attribute(component::text, attr)) - { - nana::paint::graphics item_graph(item_r_.width, item_r_.height); - item_graph.typeface(graph_->typeface()); - - auto bgcolor = widget_->background(); - auto fgcolor = widget_->foreground(); - renderer_->bground(item_graph, bgcolor, fgcolor, this); - renderer_->expander(item_graph, bgcolor, fgcolor, this); - renderer_->crook(item_graph, bgcolor, fgcolor, this); - renderer_->icon(item_graph, bgcolor, fgcolor, this); - renderer_->text(item_graph, bgcolor, fgcolor, this); - - item_graph.paste(attr.area, *graph_, 1, 1); - graph_->rectangle(0x0, false); - } - } - private: - // Implementation of drawer_trigger - void attached(widget_reference wd, graph_reference graph) override - { - widget_ = &wd; - graph_ = &graph; - graph.typeface(widget_->typeface()); - } - private: - // Implementation of compset_interface - virtual const item_attribute_t& item_attribute() const override - { - return item_attr_; - } - - virtual bool comp_attribute(component_t comp, comp_attribute_t& comp_attr) const override - { - comp_attr.area = item_r_; - return placer_->locate(comp, item_attr_, &comp_attr.area); - } - private: - ::nana::paint::graphics * graph_; - ::nana::pat::cloneable renderer_; - ::nana::pat::cloneable placer_; - widget *widget_; - item_attribute_t item_attr_; - nana::rectangle item_r_; - };//end class tlwnd_drawer - - class tooltip_window - : public widget_object - { - public: - tooltip_window(window wd, const rectangle& r) - : widget_object(wd, false, rectangle(r).pare_off(-1), appear::bald()) - { - API::take_active(handle(), false, nullptr); - } - - drawer_trigger_t & impl() - { - return get_drawer_trigger(); - } - };//end class tooltip_window + class tooltip_window; //item_locator should be defined before the definition of basic_implement class trigger::item_locator @@ -1541,6 +1455,7 @@ namespace nana } };//end class tooltip_window + //class trigger //struct treebox_node_type trigger::treebox_node_type::treebox_node_type()