Merge branch 'feature-dock_create-rv' of https://github.com/leobackes/nana into leobackes-feature-dock_create-rv

This commit is contained in:
Jinhao 2016-05-11 08:20:20 +08:00
commit 93af1430c5
3 changed files with 15 additions and 10 deletions

View File

@ -141,7 +141,7 @@ namespace nana
}
place& dock(const std::string& dockname, std::string factory_name, std::function<std::unique_ptr<widget>(window)> factory);
place& dock_create(const std::string& factory);
widget* dock_create(const std::string& factory);
private:
implement * impl_;
};

View File

@ -2837,7 +2837,7 @@ namespace nana
return *this;
}
place& place::dock_create(const std::string& factory)
widget* place::dock_create(const std::string& factory)
{
auto i = impl_->dock_factoris.find(factory);
if (i == impl_->dock_factoris.end())
@ -2857,10 +2857,10 @@ namespace nana
dock_ptr->dockarea->move(dock_ptr->attached->field_area);
}
dock_ptr->dockarea->add_pane(i->second->factories[factory]);
return dock_ptr->dockarea->add_pane(i->second->factories[factory]);
}
return *this;
return nullptr;
}
//end class place
}//end namespace nana

View File

@ -97,7 +97,7 @@ namespace nana
graph.rectangle(r, true, xclr);
}
r.x += (r.width - 16) / 2;
r.y = (r.height - 16) / 2;
@ -278,13 +278,15 @@ namespace nana
}
void add_pane(factory & fn)
widget* add_pane(factory & fn)
{
auto fn_ptr = &fn;
API::dev::affinity_execute(*this, [this, fn_ptr]
widget * w = nullptr;
API::dev::affinity_execute(*this, [this, fn_ptr, &w]
{
_m_add_pane(*fn_ptr);
w=_m_add_pane(*fn_ptr);
});
return w;
}
void float_away(const ::nana::point& move_pos)
@ -330,7 +332,7 @@ namespace nana
return (nullptr != container_);
}
private:
void _m_add_pane(factory & fn)
widget* _m_add_pane(factory & fn)
{
rectangle r{ point(), this->size() };
@ -385,6 +387,7 @@ namespace nana
}
panels_.emplace_back();
widget * w=wdg.get();
panels_.back().widget_ptr.swap(wdg);
for (auto & pn : panels_)
@ -392,7 +395,9 @@ namespace nana
if (pn.widget_ptr)
pn.widget_ptr->move(r);
}
return w;
}
return nullptr;
}
private:
window host_window_{nullptr};
@ -693,4 +698,4 @@ namespace nana
}//end namespace place_parts
}//end namespace nana
#endif //NANA_GUI_PLACE_PARTS_HPP
#endif //NANA_GUI_PLACE_PARTS_HPP