get ready for Linux
This commit is contained in:
@@ -20,6 +20,9 @@
|
||||
|
||||
namespace nana
|
||||
{
|
||||
arg_combox::arg_combox(combox& wdg): widget(wdg)
|
||||
{}
|
||||
|
||||
namespace drawerbase
|
||||
{
|
||||
namespace combox
|
||||
@@ -29,7 +32,7 @@ namespace nana
|
||||
{
|
||||
public:
|
||||
event_agent(::nana::combox& wdg)
|
||||
: widget_{wdg}
|
||||
: widget_(wdg)
|
||||
{}
|
||||
|
||||
void first_change() override{} //empty, because combox does not have this event.
|
||||
|
||||
@@ -3663,7 +3663,7 @@ namespace nana
|
||||
}
|
||||
}//end namespace drawerbase
|
||||
|
||||
arg_listbox::arg_listbox(drawerbase::listbox::item_proxy& m, bool selected)
|
||||
arg_listbox::arg_listbox(const drawerbase::listbox::item_proxy& m, bool selected)
|
||||
: item(m), selected(selected)
|
||||
{
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
namespace nana
|
||||
{
|
||||
arg_slider::arg_slider(slider& wdg)
|
||||
: widget{ wdg }
|
||||
: widget(wdg)
|
||||
{}
|
||||
|
||||
namespace drawerbase
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* (See accompanying file LICENSE_1_0.txt or copy at
|
||||
* http://www.boost.org/LICENSE_1_0.txt)
|
||||
*
|
||||
* @file: nana/gui/widgets/spanbox.cpp
|
||||
* @file: nana/gui/widgets/spinbox.cpp
|
||||
*/
|
||||
|
||||
#include <nana/gui/widgets/spinbox.hpp>
|
||||
@@ -17,6 +17,9 @@
|
||||
|
||||
namespace nana
|
||||
{
|
||||
arg_spinbox::arg_spinbox(spinbox& wdg): widget(wdg)
|
||||
{}
|
||||
|
||||
namespace drawerbase
|
||||
{
|
||||
namespace spinbox
|
||||
@@ -26,7 +29,7 @@ namespace nana
|
||||
{
|
||||
public:
|
||||
event_agent(::nana::spinbox& wdg)
|
||||
: widget_{ wdg }
|
||||
: widget_(wdg)
|
||||
{}
|
||||
|
||||
void first_change() override{} //empty, because spinbox does not have this event.
|
||||
@@ -685,4 +688,4 @@ namespace nana
|
||||
API::refresh_window(*this);
|
||||
}
|
||||
}
|
||||
}//end namespace nana
|
||||
}//end namespace nana
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
namespace nana
|
||||
{
|
||||
arg_textbox::arg_textbox(textbox& wdg)
|
||||
: widget{wdg}
|
||||
: widget(wdg)
|
||||
{}
|
||||
|
||||
namespace drawerbase {
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
namespace nana
|
||||
{
|
||||
arg_toolbar::arg_toolbar(toolbar& tbar, std::size_t btn)
|
||||
: widget{ tbar }, button{btn}
|
||||
: widget(tbar), button{btn}
|
||||
{}
|
||||
|
||||
namespace drawerbase
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
namespace nana
|
||||
{
|
||||
arg_treebox::arg_treebox(treebox& wdg, drawerbase::treebox::item_proxy& m, bool op)
|
||||
: widget{ wdg }, item{ m }, operated{op}
|
||||
: widget(wdg), item(m), operated{op}
|
||||
{}
|
||||
|
||||
namespace drawerbase
|
||||
@@ -74,7 +74,92 @@ namespace nana
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
class tooltip_window;
|
||||
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_interface>* renderer, const pat::cloneable<compset_placer_interface> * 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());
|
||||
|
||||
renderer_->set_color(widget_->bgcolor(), widget_->fgcolor());
|
||||
renderer_->bground(item_graph, this);
|
||||
renderer_->expander(item_graph, this);
|
||||
renderer_->crook(item_graph, this);
|
||||
renderer_->icon(item_graph, this);
|
||||
renderer_->text(item_graph, this);
|
||||
|
||||
item_graph.paste(attr.area, *graph_, 1, 1);
|
||||
graph_->rectangle(false, colors::black);
|
||||
}
|
||||
}
|
||||
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_interface> renderer_;
|
||||
::nana::pat::cloneable<compset_placer_interface> placer_;
|
||||
widget *widget_;
|
||||
item_attribute_t item_attr_;
|
||||
nana::rectangle item_r_;
|
||||
};//end class tlwnd_drawer
|
||||
|
||||
class tooltip_window
|
||||
: public widget_object<category::root_tag, tlwnd_drawer>
|
||||
{
|
||||
public:
|
||||
tooltip_window(window wd, const rectangle& r)
|
||||
: widget_object<category::root_tag, tlwnd_drawer>(wd, false, rectangle(r).pare_off(-1), appear::bald<appear::floating>())
|
||||
{
|
||||
API::take_active(handle(), false, nullptr);
|
||||
}
|
||||
|
||||
drawer_trigger_t & impl()
|
||||
{
|
||||
return get_drawer_trigger();
|
||||
}
|
||||
};//end class tooltip_window
|
||||
|
||||
//item_locator should be defined before the definition of basic_implement
|
||||
class trigger::item_locator
|
||||
@@ -1368,94 +1453,6 @@ namespace nana
|
||||
//Treebox Implementation
|
||||
namespace treebox
|
||||
{
|
||||
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_interface>* renderer, const pat::cloneable<compset_placer_interface> * 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());
|
||||
|
||||
renderer_->set_color(widget_->bgcolor(), widget_->fgcolor());
|
||||
renderer_->bground(item_graph, this);
|
||||
renderer_->expander(item_graph, this);
|
||||
renderer_->crook(item_graph, this);
|
||||
renderer_->icon(item_graph, this);
|
||||
renderer_->text(item_graph, this);
|
||||
|
||||
item_graph.paste(attr.area, *graph_, 1, 1);
|
||||
graph_->rectangle(false, colors::black);
|
||||
}
|
||||
}
|
||||
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_interface> renderer_;
|
||||
::nana::pat::cloneable<compset_placer_interface> placer_;
|
||||
widget *widget_;
|
||||
item_attribute_t item_attr_;
|
||||
nana::rectangle item_r_;
|
||||
};//end class tlwnd_drawer
|
||||
|
||||
class tooltip_window
|
||||
: public widget_object<category::root_tag, tlwnd_drawer>
|
||||
{
|
||||
public:
|
||||
tooltip_window(window wd, const rectangle& r)
|
||||
: widget_object<category::root_tag, tlwnd_drawer>(wd, false, rectangle(r).pare_off(-1), appear::bald<appear::floating>())
|
||||
{
|
||||
API::take_active(handle(), false, nullptr);
|
||||
}
|
||||
|
||||
drawer_trigger_t & impl()
|
||||
{
|
||||
return get_drawer_trigger();
|
||||
}
|
||||
};//end class tooltip_window
|
||||
|
||||
|
||||
//class trigger
|
||||
//struct treebox_node_type
|
||||
trigger::treebox_node_type::treebox_node_type()
|
||||
|
||||
Reference in New Issue
Block a user