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

	listBox		  = NIL;
	toolWindow	  = NIL;

	listBoxClosed	  = 0;

	prevSelectedEntry = 0;

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

	SetMetrics(iPos, iSize);

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

	hotspot		= new Hotspot(Point(1, 1), GetSize() - Size(19, 2));
	hotspot->onLeftButtonDown.Connect(&ComboBox::OpenListBox, this);

	buttonHotspot	= new HotspotSimpleButton(Point(16, 3), Size(13, GetHeight() - 6));
	buttonHotspot->SetOrientation(OR_UPPERRIGHT);
	buttonHotspot->onLeftButtonDown.Connect(&ComboBox::OpenListBox, this);

	Add(hotspot);
	Add(buttonHotspot);

	onChangeSize.Connect(&ComboBox::OnChangeSize, this);
	onSelectEntry.Connect(&ComboBox::OnSelectEntry, this);
	onLoseFocus.Connect(&ComboBox::CloseListBox, this);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x5b340
movq -0xe8(%rbp), %rdi
movq 0x15b67b(%rip), %rax    # 0x208df0
addq $0x10, %rax
movq %rax, (%rdi)
movq 0x15b64d(%rip), %rax    # 0x208dd0
movswl (%rax), %esi
addq $0x20, %rdi
callq 0x5a2e0
jmp 0xad791
movq -0xe8(%rbp), %rdi
movq $0x0, 0x6d0(%rdi)
movq $0x0, 0x6c8(%rdi)
movq $0x0, 0x6d8(%rdi)
movl $0x0, 0x6e0(%rdi)
addq $0x140, %rdi            # imm = 0x140
callq 0x5cc70
movq %rax, -0xf0(%rbp)
jmp 0xad7d8
movq -0xf0(%rbp), %rsi
movq 0x15b6aa(%rip), %rax    # 0x208e90
movswl (%rax), %edx
movq 0x15af68(%rip), %rax    # 0x208758
movswl (%rax), %r8d
movq 0x15b5e5(%rip), %r9     # 0x208de0
leaq -0x68(%rbp), %rdi
movl %r8d, %ecx
callq 0x5b900
jmp 0xad809
movq -0xe8(%rbp), %rdi
movq (%rdi), %rax
movq 0xe0(%rax), %rax
leaq -0x68(%rbp), %rsi
callq *%rax
jmp 0xad822
leaq -0x68(%rbp), %rdi
callq 0x5abf0
movq -0xe8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq (%rdi), %rax
movq 0x150(%rax), %rax
callq *%rax
jmp 0xad848
movq -0xe8(%rbp), %rdi
callq 0x5a210
movl %eax, -0xf4(%rbp)
jmp 0xad85c
movl -0xf4(%rbp), %eax
cmpl $0x0, %eax
jne 0xad8a7
movq -0xe8(%rbp), %rdi
movl $0x50, %esi
callq 0x5db30
jmp 0xad87a
jmp 0xad8a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0xadbd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5abf0
jmp 0xadbd2
movq -0xe8(%rbp), %rdi
callq 0x5b860
movl %eax, -0xf8(%rbp)
jmp 0xad8bb
movl -0xf8(%rbp), %eax
cmpl $0x0, %eax
jne 0xad8db
movq -0xe8(%rbp), %rdi
movl $0x13, %esi
callq 0x5bed0
jmp 0xad8d9
jmp 0xad8db
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x59820
movq %rax, -0x100(%rbp)
jmp 0xad8ee
leaq -0x70(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5c2c0
jmp 0xad900
movq -0xe8(%rbp), %rdi
callq 0x5bf70
movq %rax, -0x108(%rbp)
jmp 0xad915
leaq -0x80(%rbp), %rdi
movl $0x13, %esi
movl $0x2, %edx
callq 0x59260
jmp 0xad92a
movq -0x108(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x5db90
movq %rax, -0x110(%rbp)
jmp 0xad943
movq -0x100(%rbp), %rdi
movq -0x110(%rbp), %rax
movq %rax, -0x78(%rbp)
leaq -0x70(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x59c30
jmp 0xad964
movq -0xe8(%rbp), %rcx
movq -0x100(%rbp), %rax
movq %rax, 0x6e8(%rcx)
movq 0x6e8(%rcx), %rdi
addq $0x2f8, %rdi            # imm = 0x2F8
movq 0x15ad22(%rip), %rax    # 0x2086b0
movq %rax, -0x90(%rbp)
movq $0x0, -0x88(%rbp)
movq -0x90(%rbp), %rsi
movq -0x88(%rbp), %rdx
callq 0xaf190
jmp 0xad9b5
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x59820
movq %rax, -0x118(%rbp)
jmp 0xad9c8
leaq -0x98(%rbp), %rdi
movl $0x10, %esi
movl $0x3, %edx
callq 0x5c2c0
jmp 0xad9e0
movq -0xe8(%rbp), %rdi
callq 0x5b860
movl %eax, -0x11c(%rbp)
jmp 0xad9f4
movl -0x11c(%rbp), %edx
addl $-0x6, %edx
leaq -0xa0(%rbp), %rdi
movl $0xd, %esi
callq 0x59260
jmp 0xada10
movq -0x118(%rbp), %rdi
leaq -0x98(%rbp), %rsi
leaq -0xa0(%rbp), %rdx
callq 0x59c60
jmp 0xada2c
movq -0xe8(%rbp), %rax
movq -0x118(%rbp), %rcx
movq %rcx, 0x6f0(%rax)
movq 0x6f0(%rax), %rdi
movq (%rdi), %rax
movq 0x120(%rax), %rax
movl $0x24, %esi
callq *%rax
jmp 0xada5b
movq -0xe8(%rbp), %rcx
movq 0x6f0(%rcx), %rdi
addq $0x2f8, %rdi            # imm = 0x2F8
movq 0x15ac39(%rip), %rax    # 0x2086b0
movq %rax, -0xb0(%rbp)
movq $0x0, -0xa8(%rbp)
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rdx
callq 0xaf190
jmp 0xada9e
movq -0xe8(%rbp), %rdi
movq 0x6e8(%rdi), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
jmp 0xadab7
movq -0xe8(%rbp), %rdi
movq 0x6f0(%rdi), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
jmp 0xadad0
movq -0xe8(%rbp), %rcx
movq %rcx, %rdi
addq $0x298, %rdi            # imm = 0x298
movq 0x15a870(%rip), %rax    # 0x208358
movq %rax, -0xc0(%rbp)
movq $0x0, -0xb8(%rbp)
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
callq 0xaf2d0
jmp 0xadb0f
movq -0xe8(%rbp), %rcx
movq %rcx, %rdi
addq $0x688, %rdi            # imm = 0x688
movq 0x15adb1(%rip), %rax    # 0x2088d8
movq %rax, -0xd0(%rbp)
movq $0x0, -0xc8(%rbp)
movq -0xd0(%rbp), %rsi
movq -0xc8(%rbp), %rdx
callq 0xaf410
jmp 0xadb4e
movq -0xe8(%rbp), %rcx
movq %rcx, %rdi
addq $0x518, %rdi            # imm = 0x518
movq 0x15b342(%rip), %rax    # 0x208ea8
movq %rax, -0xe0(%rbp)
movq $0x0, -0xd8(%rbp)
movq -0xe0(%rbp), %rsi
movq -0xd8(%rbp), %rdx
callq 0xaf550
jmp 0xadb8d
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
movq -0x100(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x5b8, %esi            # imm = 0x5B8
callq 0x595b0
jmp 0xadbd2
movq -0x118(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x5b8, %esi            # imm = 0x5B8
callq 0x595b0
movq -0xe8(%rbp), %rdi
callq 0x5d800
movq -0x20(%rbp), %rdi
callq 0x5b6b0
nopw (%rax,%rax)