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

	scrollbar	= NIL;
	scrollbarPos	= 0;

	font.SetColor(Setup::ClientTextColor);

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

	cursor = new Cursor(Point(3, Math::Ceil(Float(19 - font.GetUnscaledTextSizeY()) / 2) - 2),
			    GetSize() - Size(6, Math::Ceil(Float(19 - font.GetUnscaledTextSizeY()) / 2) - 1));
	cursor->onScroll.Connect(&MultiEdit::OnCursorScroll, this);
	cursor->SetMaxSize(maxSize);
	cursor->SetBackgroundColor(Setup::ClientColor);
	cursor->SetFlags(CF_MULTILINE);
	cursor->SetFont(font);
	cursor->onInput.Connect(&onInput);

	Add(cursor);

	onInput.SetParentObject(this);

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x78(%rbp)
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x5c220
movq -0x78(%rbp), %rdi
movq 0x16d846(%rip), %rax    # 0x208360
addq $0x10, %rax
movq %rax, (%rdi)
addq $0x5d0, %rdi            # imm = 0x5D0
movq %rdi, -0x70(%rbp)
callq 0x97240
jmp 0x9ab33
movq -0x78(%rbp), %rdi
movq 0x16df02(%rip), %rax    # 0x208a40
movswl (%rax), %esi
addq $0x20, %rdi
callq 0x5a2e0
jmp 0x9ab4c
movq -0x78(%rbp), %rdi
movq $0x0, 0x5c0(%rdi)
movl $0x0, 0x5c8(%rdi)
addq $0x140, %rdi            # imm = 0x140
movq 0x16e26d(%rip), %rsi    # 0x208de0
callq 0x5d110
jmp 0x9ab7a
movq -0x78(%rbp), %rdi
callq 0x5a210
movl %eax, -0x7c(%rbp)
jmp 0x9ab88
movl -0x7c(%rbp), %eax
cmpl $0x0, %eax
jne 0x9abc4
movq -0x78(%rbp), %rdi
movl $0x50, %esi
callq 0x5db30
jmp 0x9aba0
jmp 0x9abc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x9ae91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x9ae88
movq -0x78(%rbp), %rdi
callq 0x5b860
movl %eax, -0x80(%rbp)
jmp 0x9abd2
movl -0x80(%rbp), %eax
cmpl $0x0, %eax
jne 0x9abec
movq -0x78(%rbp), %rdi
movl $0x13, %esi
callq 0x5bed0
jmp 0x9abea
jmp 0x9abec
movl $0x768, %edi            # imm = 0x768
callq 0x59820
movq %rax, -0x88(%rbp)
jmp 0x9abff
movq -0x78(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
movq 0x16e197(%rip), %rsi    # 0x208da8
callq 0x5d5e0
movl %eax, -0x8c(%rbp)
jmp 0x9ac1e
movl -0x8c(%rbp), %ecx
movl $0x13, %eax
subl %ecx, %eax
cvtsi2sd %eax, %xmm0
movsd 0xec751(%rip), %xmm1    # 0x187388
mulsd %xmm1, %xmm0
callq 0x5b240
movq %rax, -0x98(%rbp)
jmp 0x9ac49
movq -0x98(%rbp), %rax
movl %eax, %edx
addl $-0x2, %edx
leaq -0x34(%rbp), %rdi
movl $0x3, %esi
callq 0x5c2c0
jmp 0x9ac65
movq -0x78(%rbp), %rdi
callq 0x5bf70
movq %rax, -0xa0(%rbp)
jmp 0x9ac77
movq -0x78(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
movq 0x16e11f(%rip), %rsi    # 0x208da8
callq 0x5d5e0
movl %eax, -0xa4(%rbp)
jmp 0x9ac96
movl -0xa4(%rbp), %ecx
movl $0x13, %eax
subl %ecx, %eax
cvtsi2sd %eax, %xmm0
movsd 0xec6d9(%rip), %xmm1    # 0x187388
mulsd %xmm1, %xmm0
callq 0x5b240
movq %rax, -0xb0(%rbp)
jmp 0x9acc1
movq -0xb0(%rbp), %rax
movl %eax, %edx
decl %edx
leaq -0x44(%rbp), %rdi
movl $0x6, %esi
callq 0x59260
jmp 0x9acdc
movq -0xa0(%rbp), %rdi
leaq -0x44(%rbp), %rsi
callq 0x5db90
movq %rax, -0xb8(%rbp)
jmp 0x9acf5
movq -0x88(%rbp), %rdi
movq -0xb8(%rbp), %rax
movq %rax, -0x3c(%rbp)
leaq -0x34(%rbp), %rsi
leaq -0x3c(%rbp), %rdx
callq 0x59ed0
jmp 0x9ad16
movq -0x78(%rbp), %rcx
movq -0x88(%rbp), %rax
movq %rax, 0x5b8(%rcx)
movq 0x5b8(%rcx), %rdi
addq $0x748, %rdi            # imm = 0x748
movq 0x16df3b(%rip), %rax    # 0x208c78
movq %rax, -0x58(%rbp)
movq $0x0, -0x50(%rbp)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x9bb90
jmp 0x9ad58
movq -0x78(%rbp), %rax
movq 0x5b8(%rax), %rdi
movl -0x1c(%rbp), %esi
callq 0x5ca90
jmp 0x9ad6d
movq -0x78(%rbp), %rax
movq 0x5b8(%rax), %rdi
movq (%rdi), %rax
movq 0x138(%rax), %rax
movq 0x16d8bf(%rip), %rsi    # 0x208648
callq *%rax
jmp 0x9ad8d
movq -0x78(%rbp), %rax
movq 0x5b8(%rax), %rdi
movl $0x1, %esi
callq 0x59730
jmp 0x9ada4
movq -0x78(%rbp), %rsi
movq 0x5b8(%rsi), %rdi
addq $0x140, %rsi            # imm = 0x140
movq (%rdi), %rax
movq 0xe0(%rax), %rax
callq *%rax
jmp 0x9adc4
movq -0x78(%rbp), %rsi
movq 0x5b8(%rsi), %rdi
addq $0x708, %rdi            # imm = 0x708
addq $0x5d0, %rsi            # imm = 0x5D0
callq 0x972e0
jmp 0x9ade4
movq -0x78(%rbp), %rdi
movq 0x5b8(%rdi), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
jmp 0x9adfa
movq -0x78(%rbp), %rsi
movq %rsi, %rdi
addq $0x5d0, %rdi            # imm = 0x5D0
callq 0x8ad00
jmp 0x9ae0f
movq -0x78(%rbp), %rcx
movq %rcx, %rdi
addq $0x298, %rdi            # imm = 0x298
movq 0x16e144(%rip), %rax    # 0x208f68
movq %rax, -0x68(%rbp)
movq $0x0, -0x60(%rbp)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
callq 0x9bcd0
jmp 0x9ae3f
movq -0x78(%rbp), %rax
movq %rax, %rdi
addq $0x518, %rdi            # imm = 0x518
movq 0x5b8(%rax), %rsi
addq $0x518, %rsi            # imm = 0x518
callq 0x97550
jmp 0x9ae62
addq $0xc0, %rsp
popq %rbp
retq
movq -0x88(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
movl $0x768, %esi            # imm = 0x768
callq 0x595b0
movq -0x70(%rbp), %rdi
callq 0x976c0
movq -0x78(%rbp), %rdi
callq 0x5bd90
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)