// File: /workspace/github_c_makefile_star2_O3/enzo1982[P]smooth/classes/gui/widgets/basic/editbox.cpp
// Function: smooth::GUI::EditBox::EditBox(smooth::GUI::Point const&, smooth::GUI::Size const&, int)
S::GUI::EditBox::EditBox(const Point &iPos, const Size &iSize, Int maxSize) : Widget(iPos, iSize)
{
	type		= classID;

	dropDownList	= NIL;
	comboBox	= NIL;

	font.SetColor(Setup::ClientTextColor);

	if (GetWidth()	== 0) SetWidth(80);
	if (GetHeight() == 0) SetHeight(19);

	cursor = new Cursor(Point(3, Math::Ceil(Float(GetHeight() - font.GetUnscaledTextSizeY()) / 2) - 2),
			    GetSize() - Size(6, Math::Ceil(Float(GetHeight() - font.GetUnscaledTextSizeY()) / 2) - 1));
	cursor->SetMaxSize(maxSize);
	cursor->SetBackgroundColor(Setup::ClientColor);
	cursor->SetFont(font);
	cursor->onInput.Connect(&onInput);
	cursor->onEnter.Connect(&onEnter);

	Add(cursor);

	onInput.SetParentObject(this);
	onEnter.SetParentObject(this);

	onChangeSize.Connect(&EditBox::OnChangeSize, this);
	onLoseFocus.Connect(&cursor->onLoseFocus);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %ecx, %ebp
movq %rdi, %rbx
callq 0x57a30
movq 0xf64b5(%rip), %rax     # 0x16bdd8
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x5d0(%rbx), %rax
movq %rax, 0x8(%rsp)
xorl %eax, %eax
movq %rax, 0x5d8(%rbx)
leaq 0xece7a(%rip), %rcx     # 0x1627c0
movq %rcx, 0x5d0(%rbx)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x5e0(%rbx)
leaq 0x5f0(%rbx), %r15
movq %rax, 0x5f8(%rbx)
movq %rcx, 0x5f0(%rbx)
movupd %xmm0, 0x600(%rbx)
movq %rax, 0x618(%rbx)
leaq 0xece74(%rip), %rax     # 0x1627f8
movq %rax, 0x610(%rbx)
movupd %xmm0, 0x620(%rbx)
movq 0xf5a6e(%rip), %rax     # 0x16b408
movzwl (%rax), %eax
movw %ax, 0x20(%rbx)
leaq 0x140(%rbx), %r12
movupd %xmm0, 0x5c0(%rbx)
movq 0xf6439(%rip), %rsi     # 0x16bdf0
movq %r12, %rdi
callq 0x58650
cmpl $0x0, 0xb0(%rbx)
jne 0x759ed
leaq 0xa8(%rbx), %rsi
movl 0xb4(%rbx), %eax
movq %rsp, %rdx
movl $0x50, (%rdx)
movl %eax, 0x4(%rdx)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x150(%rax)
cmpl $0x0, 0xb4(%rbx)
jne 0x75a1b
leaq 0xa8(%rbx), %rsi
movl 0xb0(%rbx), %eax
movq %rsp, %rdx
movl %eax, (%rdx)
movl $0x13, 0x4(%rdx)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x150(%rax)
movl $0x768, %edi            # imm = 0x768
callq 0x556b0
movq %rax, %r13
movl 0xb4(%rbx), %r14d
movq 0xf6382(%rip), %rsi     # 0x16bdb8
movq %r12, %rdi
callq 0x58a50
subl %eax, %r14d
xorps %xmm0, %xmm0
cvtsi2sd %r14d, %xmm0
mulsd 0x7d947(%rip), %xmm0    # 0xf3398
callq 0x56cb0
addl $-0x2, %eax
movl $0x3, (%rsp)
movl %eax, 0x4(%rsp)
movl 0xb4(%rbx), %r14d
movq 0xf6346(%rip), %rsi     # 0x16bdb8
movq %r12, %rdi
callq 0x58a50
subl %eax, %r14d
xorps %xmm0, %xmm0
cvtsi2sd %r14d, %xmm0
mulsd 0x7d90b(%rip), %xmm0    # 0xf3398
callq 0x56cb0
movl 0xb0(%rbx), %ecx
movl 0xb4(%rbx), %edx
addl $-0x6, %ecx
subl %eax, %edx
incl %edx
shlq $0x20, %rdx
orq %rdx, %rcx
leaq 0x10(%rsp), %rdx
movq %rcx, (%rdx)
movq %rsp, %rsi
movq %r13, %rdi
callq 0x55c70
movq %r13, 0x5b8(%rbx)
movq %r13, %rdi
movl %ebp, %esi
callq 0x580f0
movq 0x5b8(%rbx), %rdi
movq (%rdi), %rax
movq 0xf5b8f(%rip), %rsi     # 0x16b670
callq *0x138(%rax)
movq 0x5b8(%rbx), %rdi
movq (%rdi), %rax
movq %r12, %rsi
callq *0xe0(%rax)
movl $0x708, %edi            # imm = 0x708
addq 0x5b8(%rbx), %rdi
movq 0x8(%rsp), %rsi
callq 0x763d8
movl $0x728, %edi            # imm = 0x728
addq 0x5b8(%rbx), %rdi
movq %r15, %rsi
callq 0x763d8
movq 0x5b8(%rbx), %rsi
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x30(%rax)
movq %rbx, 0x5d8(%rbx)
movq %rbx, 0x5f8(%rbx)
leaq 0x298(%rbx), %rdi
movq 0xf6010(%rip), %rsi     # 0x16bb60
xorl %edx, %edx
movq %rbx, %rcx
callq 0x7648a
movl $0x518, %esi            # imm = 0x518
leaq (%rbx,%rsi), %rdi
addq 0x5b8(%rbx), %rsi
callq 0x7654a
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x75b80
movq %rax, %r12
movl $0x768, %esi            # imm = 0x768
movq %r13, %rdi
callq 0x55480
jmp 0x75b95
movq %rax, %r12
leaq 0x610(%rbx), %rdi
callq 0x765fc
movq %r15, %rdi
callq 0x76616
movq 0x8(%rsp), %rdi
callq 0x76616
movq %rbx, %rdi
callq 0x57640
movq %r12, %rdi
callq 0x57090
nop