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(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:
|
private:
|
||||||
implement * impl_;
|
implement * impl_;
|
||||||
};
|
};
|
||||||
|
@ -2837,7 +2837,7 @@ namespace nana
|
|||||||
return *this;
|
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);
|
auto i = impl_->dock_factoris.find(factory);
|
||||||
if (i == impl_->dock_factoris.end())
|
if (i == impl_->dock_factoris.end())
|
||||||
@ -2857,10 +2857,10 @@ namespace nana
|
|||||||
dock_ptr->dockarea->move(dock_ptr->attached->field_area);
|
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 class place
|
||||||
}//end namespace nana
|
}//end namespace nana
|
||||||
|
@ -278,13 +278,15 @@ namespace nana
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void add_pane(factory & fn)
|
widget* add_pane(factory & fn)
|
||||||
{
|
{
|
||||||
auto fn_ptr = &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)
|
void float_away(const ::nana::point& move_pos)
|
||||||
@ -330,7 +332,7 @@ namespace nana
|
|||||||
return (nullptr != container_);
|
return (nullptr != container_);
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
void _m_add_pane(factory & fn)
|
widget* _m_add_pane(factory & fn)
|
||||||
{
|
{
|
||||||
rectangle r{ point(), this->size() };
|
rectangle r{ point(), this->size() };
|
||||||
|
|
||||||
@ -385,6 +387,7 @@ namespace nana
|
|||||||
}
|
}
|
||||||
|
|
||||||
panels_.emplace_back();
|
panels_.emplace_back();
|
||||||
|
widget * w=wdg.get();
|
||||||
panels_.back().widget_ptr.swap(wdg);
|
panels_.back().widget_ptr.swap(wdg);
|
||||||
|
|
||||||
for (auto & pn : panels_)
|
for (auto & pn : panels_)
|
||||||
@ -392,7 +395,9 @@ namespace nana
|
|||||||
if (pn.widget_ptr)
|
if (pn.widget_ptr)
|
||||||
pn.widget_ptr->move(r);
|
pn.widget_ptr->move(r);
|
||||||
}
|
}
|
||||||
|
return w;
|
||||||
}
|
}
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
window host_window_{nullptr};
|
window host_window_{nullptr};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user