// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/multi/list/listbox.cpp
// Function: smooth::GUI::ListBox::ListBox(smooth::GUI::Point const&, smooth::GUI::Size const&)
S::GUI::ListBox::ListBox(const Point &iPos, const Size &iSize)
{
	type	     = classID;

	scrollbar    = NIL;
	scrollbarPos = 0;

	SetFont(Font(font.GetName(), Font::DefaultSize, Font::Normal, Font::Normal, Setup::ClientTextColor));

	SetBackgroundColor(Setup::ClientColor);
	SetMetrics(iPos, iSize);

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

	onChangeSize.Connect(&ListBox::OnChangeSize, this);

	scrollbar = new Scrollbar(Point(), Size(), OR_VERT, &scrollbarPos, 0, 1);
	scrollbar->SetOrientation(OR_UPPERRIGHT);
	scrollbar->SetStepSize(16);
	scrollbar->onValueChange.Connect(&ListBox::OnScrollbarValueChange, this);
	scrollbar->Hide();

	header = new ListBoxHeader(Point(1, 1), Size(GetWidth() - 2, 16));
	header->onClickTab.Connect(&onClickTab);
	header->Hide();

	Add(scrollbar);
	Add(header);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x5b340
movq -0xb8(%rbp), %rdi
movq 0x1571b3(%rip), %rax    # 0x208388
addq $0x10, %rax
movq %rax, (%rdi)
addq $0x6e0, %rdi            # imm = 0x6E0
movq %rdi, -0xb0(%rbp)
xorl %esi, %esi
callq 0x5da90
jmp 0xb11f3
movq -0xb8(%rbp), %rdi
addq $0x6f8, %rdi            # imm = 0x6F8
movq %rdi, -0xc0(%rbp)
callq 0x90210
jmp 0xb120f
movq -0xb8(%rbp), %rdi
movq 0x157d43(%rip), %rax    # 0x208f60
movswl (%rax), %esi
addq $0x20, %rdi
callq 0x5a2e0
jmp 0xb122b
movq -0xb8(%rbp), %rdi
movq $0x0, 0x6c8(%rdi)
movl $0x0, 0x6d0(%rdi)
addq $0x140, %rdi            # imm = 0x140
callq 0x5cc70
movq %rax, -0xc8(%rbp)
jmp 0xb125c
movq -0xc8(%rbp), %rsi
movq 0x157c26(%rip), %rax    # 0x208e90
movswl (%rax), %edx
movq 0x1574e4(%rip), %rax    # 0x208758
movswl (%rax), %r8d
movq 0x157b61(%rip), %r9     # 0x208de0
leaq -0x68(%rbp), %rdi
movl %r8d, %ecx
callq 0x5b900
jmp 0xb128d
movq -0xb8(%rbp), %rdi
movq (%rdi), %rax
movq 0xe0(%rax), %rax
leaq -0x68(%rbp), %rsi
callq *%rax
jmp 0xb12a6
leaq -0x68(%rbp), %rdi
callq 0x5abf0
movq -0xb8(%rbp), %rdi
movq (%rdi), %rax
movq 0x138(%rax), %rax
movq 0x157381(%rip), %rsi    # 0x208648
callq *%rax
jmp 0xb12cb
movq -0xb8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq (%rdi), %rax
movq 0x150(%rax), %rax
callq *%rax
jmp 0xb12e8
movq -0xb8(%rbp), %rdi
callq 0x5a210
movl %eax, -0xcc(%rbp)
jmp 0xb12fc
movl -0xcc(%rbp), %eax
cmpl $0x0, %eax
jne 0xb1369
movq -0xb8(%rbp), %rdi
movl $0x78, %esi
callq 0x5db30
jmp 0xb131a
jmp 0xb1369
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0xb1626
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0xb161a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0xb160e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5abf0
jmp 0xb160e
movq -0xb8(%rbp), %rdi
callq 0x5b860
movl %eax, -0xd0(%rbp)
jmp 0xb137d
movl -0xd0(%rbp), %eax
cmpl $0x0, %eax
jne 0xb139d
movq -0xb8(%rbp), %rdi
movl $0x50, %esi
callq 0x5bed0
jmp 0xb139b
jmp 0xb139d
movq -0xb8(%rbp), %rcx
movq %rcx, %rdi
addq $0x298, %rdi            # imm = 0x298
movq 0x1574bb(%rip), %rax    # 0x208870
movq %rax, -0x78(%rbp)
movq $0x0, -0x70(%rbp)
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
callq 0xb30a0
jmp 0xb13d0
movl $0x668, %edi            # imm = 0x668
callq 0x59820
movq %rax, -0xd8(%rbp)
jmp 0xb13e3
leaq -0x80(%rbp), %rdi
callq 0x5b530
jmp 0xb13ee
leaq -0x88(%rbp), %rdi
callq 0x59230
jmp 0xb13fc
movq -0xd8(%rbp), %rdi
movq -0xb8(%rbp), %r8
addq $0x6d0, %r8             # imm = 0x6D0
movq %rsp, %rax
movl $0x1, (%rax)
leaq -0x80(%rbp), %rsi
leaq -0x88(%rbp), %rdx
movl $0x2, %ecx
xorl %r9d, %r9d
callq 0x5ad70
jmp 0xb1434
movq -0xb8(%rbp), %rax
movq -0xd8(%rbp), %rcx
movq %rcx, 0x6c8(%rax)
movq 0x6c8(%rax), %rdi
movq (%rdi), %rax
movq 0x120(%rax), %rax
movl $0x24, %esi
callq *%rax
jmp 0xb1463
movq -0xb8(%rbp), %rax
movq 0x6c8(%rax), %rdi
movl $0x10, %esi
callq 0x592e0
jmp 0xb147d
movq -0xb8(%rbp), %rcx
movq 0x6c8(%rcx), %rdi
addq $0x618, %rdi            # imm = 0x618
movq 0x1579a7(%rip), %rax    # 0x208e40
movq %rax, -0x98(%rbp)
movq $0x0, -0x90(%rbp)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
callq 0xb31e0
jmp 0xb14c0
movq -0xb8(%rbp), %rax
movq 0x6c8(%rax), %rdi
movq (%rdi), %rax
movq 0x60(%rax), %rax
callq *%rax
jmp 0xb14d9
movl $0x758, %edi            # imm = 0x758
callq 0x59820
movq %rax, -0xe0(%rbp)
jmp 0xb14ec
leaq -0xa0(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5c2c0
jmp 0xb1501
movq -0xb8(%rbp), %rdi
callq 0x5a210
movl %eax, -0xe4(%rbp)
jmp 0xb1515
movl -0xe4(%rbp), %esi
addl $-0x2, %esi
leaq -0xa8(%rbp), %rdi
movl $0x10, %edx
callq 0x59260
jmp 0xb1531
movq -0xe0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
callq 0x5a400
jmp 0xb154d
movq -0xb8(%rbp), %rsi
movq -0xe0(%rbp), %rax
movq %rax, 0x6d8(%rsi)
movq 0x6d8(%rsi), %rdi
addq $0x738, %rdi            # imm = 0x738
addq $0x6f8, %rsi            # imm = 0x6F8
callq 0xb3320
jmp 0xb157e
movq -0xb8(%rbp), %rax
movq 0x6d8(%rax), %rdi
movq (%rdi), %rax
movq 0x60(%rax), %rax
callq *%rax
jmp 0xb1597
movq -0xb8(%rbp), %rdi
movq 0x6c8(%rdi), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
jmp 0xb15b0
movq -0xb8(%rbp), %rdi
movq 0x6d8(%rdi), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
jmp 0xb15c9
addq $0xf0, %rsp
popq %rbp
retq
movq -0xd8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x668, %esi            # imm = 0x668
callq 0x595b0
jmp 0xb160e
movq -0xe0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x758, %esi            # imm = 0x758
callq 0x595b0
movq -0xc0(%rbp), %rdi
callq 0x90610
movq -0xb0(%rbp), %rdi
callq 0x5df00
movq -0xb8(%rbp), %rdi
callq 0x5d800
movq -0x20(%rbp), %rdi
callq 0x5b6b0
nopl (%rax,%rax)