// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/multi/menu/micromenu.cpp
// Function: smooth::GUI::MicroMenu::MicroMenu(smooth::GUI::Point const&, smooth::GUI::Size const&, int)
S::GUI::MicroMenu::MicroMenu(const Point &iPos, const Size &iSize, Int sType)
{
	type	= classID;
	subtype	= sType;

	SetMetrics(iPos, iSize);

	if (GetWidth() == 0) SetWidth(subtype == OR_VERT ? 13 : 7);
	if (GetHeight() == 0) SetHeight(subtype == OR_VERT ? 7 : 13);

	onOpenPopupMenu.SetParentObject(this);
	onClosePopupMenu.SetParentObject(this);

	hotspot	= new HotspotSimpleButton(Point(), GetSize());

	hotspot->onLeftButtonDown.Connect(&MicroMenu::OpenPopupMenu, this);

	Add(hotspot);

	popup = new PopupMenu();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0x5bdc0
movq -0x58(%rbp), %rdi
movq 0x149fe6(%rip), %rax    # 0x208e58
addq $0x10, %rax
movq %rax, (%rdi)
addq $0x698, %rdi            # imm = 0x698
movq %rdi, -0x50(%rbp)
callq 0x8aae0
jmp 0xbee8b
movq -0x58(%rbp), %rdi
addq $0x6b8, %rdi            # imm = 0x6B8
movq %rdi, -0x60(%rbp)
callq 0x8aae0
jmp 0xbeea1
movq -0x58(%rbp), %rdi
movq 0x149bac(%rip), %rax    # 0x208a58
movswl (%rax), %esi
addq $0x20, %rdi
callq 0x5a2e0
jmp 0xbeeba
movq -0x58(%rbp), %rdi
movw -0x1c(%rbp), %ax
movw %ax, 0x1a0(%rdi)
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq (%rdi), %rax
movq 0x150(%rax), %rax
callq *%rax
jmp 0xbeedf
movq -0x58(%rbp), %rdi
callq 0x5a210
movl %eax, -0x64(%rbp)
jmp 0xbeeed
movl -0x64(%rbp), %eax
cmpl $0x0, %eax
jne 0xbef4d
movq -0x58(%rbp), %rdi
movw 0x1a0(%rdi), %ax
subw $0x2, %ax
movl $0xd, %eax
movl $0x7, %esi
cmovel %eax, %esi
callq 0x5db30
jmp 0xbef18
jmp 0xbef4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xbf0bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xbf0b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xbf0ad
movq -0x58(%rbp), %rdi
callq 0x5b860
movl %eax, -0x68(%rbp)
jmp 0xbef5b
movl -0x68(%rbp), %eax
cmpl $0x0, %eax
jne 0xbef88
movq -0x58(%rbp), %rdi
movw 0x1a0(%rdi), %ax
subw $0x2, %ax
movl $0x7, %eax
movl $0xd, %esi
cmovel %eax, %esi
callq 0x5bed0
jmp 0xbef86
jmp 0xbef88
movq -0x58(%rbp), %rsi
movq %rsi, %rdi
addq $0x698, %rdi            # imm = 0x698
callq 0x8ad00
jmp 0xbef9d
movq -0x58(%rbp), %rsi
movq %rsi, %rdi
addq $0x6b8, %rdi            # imm = 0x6B8
callq 0x8ad00
jmp 0xbefb2
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x59820
movq %rax, -0x70(%rbp)
jmp 0xbefc2
leaq -0x34(%rbp), %rdi
callq 0x5b530
jmp 0xbefcd
movq -0x58(%rbp), %rdi
callq 0x5bf70
movq %rax, -0x78(%rbp)
jmp 0xbefdc
movq -0x78(%rbp), %rdx
movq -0x70(%rbp), %rdi
leaq -0x34(%rbp), %rsi
callq 0x59c60
jmp 0xbefef
movq -0x58(%rbp), %rcx
movq -0x70(%rbp), %rax
movq %rax, 0x688(%rcx)
movq 0x688(%rcx), %rdi
addq $0x2f8, %rdi            # imm = 0x2F8
movq 0x149bbd(%rip), %rax    # 0x208bd0
movq %rax, -0x48(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0xbfd70
jmp 0xbf02e
movq -0x58(%rbp), %rdi
movq 0x688(%rdi), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
jmp 0xbf044
movl $0x6b8, %edi            # imm = 0x6B8
callq 0x59820
movq %rax, -0x80(%rbp)
jmp 0xbf054
movq -0x80(%rbp), %rdi
callq 0x5d910
jmp 0xbf05f
movq -0x58(%rbp), %rax
movq -0x80(%rbp), %rcx
movq %rcx, 0x690(%rax)
addq $0x80, %rsp
popq %rbp
retq
movq -0x70(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
movl $0x5b8, %esi            # imm = 0x5B8
callq 0x595b0
jmp 0xbf0ad
movq -0x80(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
movl $0x6b8, %esi            # imm = 0x6B8
callq 0x595b0
movq -0x60(%rbp), %rdi
callq 0x8ad70
movq -0x50(%rbp), %rdi
callq 0x8ad70
movq -0x58(%rbp), %rdi
callq 0x59620
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)