Merge branch 'feature-dock_create-rv' of https://github.com/leobackes/nana into leobackes-feature-dock_create-rv
This commit is contained in:
commit
93af1430c5
@ -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_;
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user