mirror of
https://github.com/godotengine/godot
synced 2024-10-14 16:47:37 +00:00
Small Fixes
----------- -Added Ability for centering on top left for centercontainer -Added ability to bind more than 5 parameters (must include an extra file)
This commit is contained in:
parent
64b01d6ce0
commit
fa004d5c0f
|
@ -53,7 +53,7 @@ env.add_source_files(env.core_sources,"*.cpp")
|
||||||
Export('env')
|
Export('env')
|
||||||
|
|
||||||
import make_binders
|
import make_binders
|
||||||
env.Command('method_bind.inc', 'make_binders.py', make_binders.run)
|
env.Command(['method_bind.inc','method_bind_ext.inc'], 'make_binders.py', make_binders.run)
|
||||||
|
|
||||||
SConscript('os/SCsub');
|
SConscript('os/SCsub');
|
||||||
SConscript('math/SCsub');
|
SConscript('math/SCsub');
|
||||||
|
|
|
@ -214,25 +214,36 @@ def make_version(template,nargs,argmax,const,ret):
|
||||||
|
|
||||||
def run(target, source, env):
|
def run(target, source, env):
|
||||||
|
|
||||||
versions=5
|
versions=10
|
||||||
|
versions_ext=6
|
||||||
text=""
|
text=""
|
||||||
|
text_ext=""
|
||||||
|
|
||||||
for i in range(0,versions+1):
|
for i in range(0,versions+1):
|
||||||
|
|
||||||
text+=make_version(template,i,5,False,False)
|
t=""
|
||||||
text+=make_version(template_typed,i,5,False,False)
|
t+=make_version(template,i,versions,False,False)
|
||||||
text+=make_version(template,i,5,False,True)
|
t+=make_version(template_typed,i,versions,False,False)
|
||||||
text+=make_version(template_typed,i,5,False,True)
|
t+=make_version(template,i,versions,False,True)
|
||||||
text+=make_version(template,i,5,True,False)
|
t+=make_version(template_typed,i,versions,False,True)
|
||||||
text+=make_version(template_typed,i,5,True,False)
|
t+=make_version(template,i,versions,True,False)
|
||||||
text+=make_version(template,i,5,True,True)
|
t+=make_version(template_typed,i,versions,True,False)
|
||||||
text+=make_version(template_typed,i,5,True,True)
|
t+=make_version(template,i,versions,True,True)
|
||||||
|
t+=make_version(template_typed,i,versions,True,True)
|
||||||
|
if (i>=versions_ext):
|
||||||
|
text_ext+=t
|
||||||
|
else:
|
||||||
|
text+=t
|
||||||
|
|
||||||
|
|
||||||
f=open(target[0].path,"w")
|
f=open(target[0].path,"w")
|
||||||
f.write(text)
|
f.write(text)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
|
f=open(target[1].path,"w")
|
||||||
|
f.write(text_ext)
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -105,6 +105,88 @@ MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,co
|
||||||
return md;
|
return md;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6) {
|
||||||
|
|
||||||
|
MethodDefinition md;
|
||||||
|
md.name=StaticCString::create(p_name);
|
||||||
|
md.args.resize(6);
|
||||||
|
md.args[0]=StaticCString::create(p_arg1);
|
||||||
|
md.args[1]=StaticCString::create(p_arg2);
|
||||||
|
md.args[2]=StaticCString::create(p_arg3);
|
||||||
|
md.args[3]=StaticCString::create(p_arg4);
|
||||||
|
md.args[4]=StaticCString::create(p_arg5);
|
||||||
|
md.args[5]=StaticCString::create(p_arg6);
|
||||||
|
return md;
|
||||||
|
}
|
||||||
|
|
||||||
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7) {
|
||||||
|
|
||||||
|
MethodDefinition md;
|
||||||
|
md.name=StaticCString::create(p_name);
|
||||||
|
md.args.resize(6);
|
||||||
|
md.args[0]=StaticCString::create(p_arg1);
|
||||||
|
md.args[1]=StaticCString::create(p_arg2);
|
||||||
|
md.args[2]=StaticCString::create(p_arg3);
|
||||||
|
md.args[3]=StaticCString::create(p_arg4);
|
||||||
|
md.args[4]=StaticCString::create(p_arg5);
|
||||||
|
md.args[5]=StaticCString::create(p_arg6);
|
||||||
|
md.args[6]=StaticCString::create(p_arg7);
|
||||||
|
return md;
|
||||||
|
}
|
||||||
|
|
||||||
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8) {
|
||||||
|
|
||||||
|
MethodDefinition md;
|
||||||
|
md.name=StaticCString::create(p_name);
|
||||||
|
md.args.resize(6);
|
||||||
|
md.args[0]=StaticCString::create(p_arg1);
|
||||||
|
md.args[1]=StaticCString::create(p_arg2);
|
||||||
|
md.args[2]=StaticCString::create(p_arg3);
|
||||||
|
md.args[3]=StaticCString::create(p_arg4);
|
||||||
|
md.args[4]=StaticCString::create(p_arg5);
|
||||||
|
md.args[5]=StaticCString::create(p_arg6);
|
||||||
|
md.args[6]=StaticCString::create(p_arg7);
|
||||||
|
md.args[7]=StaticCString::create(p_arg8);
|
||||||
|
return md;
|
||||||
|
}
|
||||||
|
|
||||||
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8,const char *p_arg9) {
|
||||||
|
|
||||||
|
MethodDefinition md;
|
||||||
|
md.name=StaticCString::create(p_name);
|
||||||
|
md.args.resize(6);
|
||||||
|
md.args[0]=StaticCString::create(p_arg1);
|
||||||
|
md.args[1]=StaticCString::create(p_arg2);
|
||||||
|
md.args[2]=StaticCString::create(p_arg3);
|
||||||
|
md.args[3]=StaticCString::create(p_arg4);
|
||||||
|
md.args[4]=StaticCString::create(p_arg5);
|
||||||
|
md.args[5]=StaticCString::create(p_arg6);
|
||||||
|
md.args[6]=StaticCString::create(p_arg7);
|
||||||
|
md.args[7]=StaticCString::create(p_arg8);
|
||||||
|
md.args[8]=StaticCString::create(p_arg9);
|
||||||
|
return md;
|
||||||
|
}
|
||||||
|
|
||||||
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8,const char *p_arg9,const char *p_arg10) {
|
||||||
|
|
||||||
|
MethodDefinition md;
|
||||||
|
md.name=StaticCString::create(p_name);
|
||||||
|
md.args.resize(6);
|
||||||
|
md.args[0]=StaticCString::create(p_arg1);
|
||||||
|
md.args[1]=StaticCString::create(p_arg2);
|
||||||
|
md.args[2]=StaticCString::create(p_arg3);
|
||||||
|
md.args[3]=StaticCString::create(p_arg4);
|
||||||
|
md.args[4]=StaticCString::create(p_arg5);
|
||||||
|
md.args[5]=StaticCString::create(p_arg6);
|
||||||
|
md.args[6]=StaticCString::create(p_arg7);
|
||||||
|
md.args[7]=StaticCString::create(p_arg8);
|
||||||
|
md.args[8]=StaticCString::create(p_arg9);
|
||||||
|
md.args[9]=StaticCString::create(p_arg10);
|
||||||
|
return md;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
HashMap<StringName,ObjectTypeDB::TypeInfo,StringNameHasher> ObjectTypeDB::types;
|
HashMap<StringName,ObjectTypeDB::TypeInfo,StringNameHasher> ObjectTypeDB::types;
|
||||||
|
|
|
@ -86,6 +86,11 @@ MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2);
|
||||||
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3);
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3);
|
||||||
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4);
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4);
|
||||||
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5);
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5);
|
||||||
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6);
|
||||||
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7);
|
||||||
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8);
|
||||||
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8,const char *p_arg9);
|
||||||
|
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8,const char *p_arg9,const char *p_arg10);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
@ -369,7 +374,7 @@ public:
|
||||||
return bind_methodfi(METHOD_FLAGS_DEFAULT,bind,p_method_name,ptr,4);
|
return bind_methodfi(METHOD_FLAGS_DEFAULT,bind,p_method_name,ptr,4);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class N, class M>
|
template<class N, class M>
|
||||||
static MethodBind* bind_method(N p_method_name, M p_method,const Variant& p_def1,const Variant& p_def2,const Variant& p_def3,const Variant& p_def4,const Variant& p_def5) {
|
static MethodBind* bind_method(N p_method_name, M p_method,const Variant& p_def1,const Variant& p_def2,const Variant& p_def3,const Variant& p_def4,const Variant& p_def5) {
|
||||||
|
|
||||||
MethodBind *bind = create_method_bind(p_method);
|
MethodBind *bind = create_method_bind(p_method);
|
||||||
|
@ -377,6 +382,16 @@ public:
|
||||||
|
|
||||||
return bind_methodfi(METHOD_FLAGS_DEFAULT,bind,p_method_name,ptr,5);
|
return bind_methodfi(METHOD_FLAGS_DEFAULT,bind,p_method_name,ptr,5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class N, class M>
|
||||||
|
static MethodBind* bind_method(N p_method_name, M p_method,const Variant& p_def1,const Variant& p_def2,const Variant& p_def3,const Variant& p_def4,const Variant& p_def5,const Variant& p_def6) {
|
||||||
|
|
||||||
|
MethodBind *bind = create_method_bind(p_method);
|
||||||
|
const Variant* ptr[6]={&p_def1,&p_def2,&p_def3,&p_def4,&p_def5,&p_def6};
|
||||||
|
|
||||||
|
return bind_methodfi(METHOD_FLAGS_DEFAULT,bind,p_method_name,ptr,6);
|
||||||
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
template<class N, class M>
|
template<class N, class M>
|
||||||
static MethodBind* bind_methodf(uint32_t p_flags, N p_method_name, M p_method,
|
static MethodBind* bind_methodf(uint32_t p_flags, N p_method_name, M p_method,
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
#include "tween.h"
|
#include "tween.h"
|
||||||
|
#include "method_bind_ext.inc"
|
||||||
|
|
||||||
bool Tween::_set(const StringName& p_name, const Variant& p_value) {
|
bool Tween::_set(const StringName& p_name, const Variant& p_value) {
|
||||||
|
|
||||||
|
|
|
@ -54,17 +54,15 @@ public:
|
||||||
TRANS_CIRC,
|
TRANS_CIRC,
|
||||||
TRANS_BOUNCE,
|
TRANS_BOUNCE,
|
||||||
TRANS_BACK,
|
TRANS_BACK,
|
||||||
|
TRANS_COUNT,
|
||||||
TRANS_COUNT,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum EaseType {
|
enum EaseType {
|
||||||
EASE_IN,
|
EASE_IN,
|
||||||
EASE_OUT,
|
EASE_OUT,
|
||||||
EASE_IN_OUT,
|
EASE_IN_OUT,
|
||||||
EASE_OUT_IN,
|
EASE_OUT_IN,
|
||||||
|
EASE_COUNT,
|
||||||
EASE_COUNT,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -32,6 +32,8 @@
|
||||||
Size2 CenterContainer::get_minimum_size() const {
|
Size2 CenterContainer::get_minimum_size() const {
|
||||||
|
|
||||||
|
|
||||||
|
if (use_top_left)
|
||||||
|
return Size2();
|
||||||
Size2 ms;
|
Size2 ms;
|
||||||
for(int i=0;i<get_child_count();i++) {
|
for(int i=0;i<get_child_count();i++) {
|
||||||
|
|
||||||
|
@ -53,6 +55,20 @@ Size2 CenterContainer::get_minimum_size() const {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CenterContainer::set_use_top_left(bool p_enable) {
|
||||||
|
|
||||||
|
use_top_left=p_enable;
|
||||||
|
queue_sort();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CenterContainer::is_using_top_left() const {
|
||||||
|
|
||||||
|
return use_top_left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void CenterContainer::_notification(int p_what) {
|
void CenterContainer::_notification(int p_what) {
|
||||||
|
|
||||||
if (p_what==NOTIFICATION_SORT_CHILDREN) {
|
if (p_what==NOTIFICATION_SORT_CHILDREN) {
|
||||||
|
@ -65,14 +81,24 @@ void CenterContainer::_notification(int p_what) {
|
||||||
continue;
|
continue;
|
||||||
if (c->is_set_as_toplevel())
|
if (c->is_set_as_toplevel())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Size2 minsize = c->get_combined_minimum_size();
|
Size2 minsize = c->get_combined_minimum_size();
|
||||||
Point2 ofs = ((size - minsize)/2.0).floor();
|
Point2 ofs = use_top_left ? (-minsize*0.5).floor() : ((size - minsize)/2.0).floor();
|
||||||
fit_child_in_rect(c,Rect2(ofs,minsize));
|
fit_child_in_rect(c,Rect2(ofs,minsize));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CenterContainer::CenterContainer()
|
void CenterContainer::_bind_methods() {
|
||||||
{
|
|
||||||
|
ObjectTypeDB::bind_method(_MD("set_use_top_left","enable"),&CenterContainer::set_use_top_left);
|
||||||
|
ObjectTypeDB::bind_method(_MD("is_using_top_left"),&CenterContainer::is_using_top_left);
|
||||||
|
|
||||||
|
ADD_PROPERTY( PropertyInfo(Variant::BOOL,"use_top_left"),_SCS("set_use_top_left"),_SCS("is_using_top_left"));
|
||||||
|
}
|
||||||
|
|
||||||
|
CenterContainer::CenterContainer() {
|
||||||
|
|
||||||
|
use_top_left=false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,11 +36,16 @@ class CenterContainer : public Container {
|
||||||
|
|
||||||
OBJ_TYPE( CenterContainer, Container );
|
OBJ_TYPE( CenterContainer, Container );
|
||||||
|
|
||||||
|
bool use_top_left;
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
void _notification(int p_what);
|
void _notification(int p_what);
|
||||||
|
static void _bind_methods();
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
void set_use_top_left(bool p_enable);
|
||||||
|
bool is_using_top_left() const;
|
||||||
|
|
||||||
virtual Size2 get_minimum_size() const;
|
virtual Size2 get_minimum_size() const;
|
||||||
|
|
||||||
CenterContainer();
|
CenterContainer();
|
||||||
|
|
|
@ -1738,9 +1738,9 @@ float Control::_a2s(float p_val, AnchorType p_anchor,float p_range) const {
|
||||||
case ANCHOR_RATIO: {
|
case ANCHOR_RATIO: {
|
||||||
return Math::floor(p_range*p_val);
|
return Math::floor(p_range*p_val);
|
||||||
} break;
|
} break;
|
||||||
case ANCHOR_CENTER: {
|
case ANCHOR_CENTER: {
|
||||||
return Math::floor((p_range/2)-p_val);
|
return Math::floor((p_range/2)-p_val);
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ public:
|
||||||
ANCHOR_BEGIN,
|
ANCHOR_BEGIN,
|
||||||
ANCHOR_END,
|
ANCHOR_END,
|
||||||
ANCHOR_RATIO,
|
ANCHOR_RATIO,
|
||||||
ANCHOR_CENTER,
|
ANCHOR_CENTER,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FocusMode {
|
enum FocusMode {
|
||||||
|
|
Loading…
Reference in a new issue