// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/widget.cpp
// Function: smooth::GUI::Widget::ActivateTooltip()
S::Void S::GUI::Widget::ActivateTooltip()
{
	Application::Lock	 lock;

	if (tipTimer == NIL || tooltip != NIL) return;

	tipTimer->Stop();

	DeleteObject(tipTimer);

	tipTimer = NIL;

	if (IsVisible())
	{
		Window	*window	= container->GetContainerWindow();

		tooltip = new Tooltip();

		if (tooltipText != NIL)
		{
			tooltip->SetText(tooltipText);
			tooltip->SetMetrics(window->GetMousePosition() - Point(tooltip->GetUnscaledTextWidth() > 0 ? Math::Round(0.2 * tooltip->GetUnscaledTextWidth()) : 20, Setup::HoverHeight / 2 + 1), Size(0, 0));
			tooltip->SetTimeout(3000);
		}
		else if (tooltipLayer != NIL)
		{
			tooltipLayer->Show();

			tooltip->SetLayer(tooltipLayer);
			tooltip->SetPosition(window->GetMousePosition() - Point(Math::Round(0.2 * tooltipLayer->GetWidth()), Setup::HoverHeight / 2 + 1));
			tooltip->SetTimeout(3000);
		}

		PopupMenu::internalOnOpenPopupMenu.Connect(&Widget::DeactivateTooltip, this);

		window->Add(tooltip);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x78(%rbp)
leaq -0x9(%rbp), %rdi
callq 0x5c490
movq -0x78(%rbp), %rax
cmpq $0x0, 0xa0(%rax)
je 0x896cc
movq -0x78(%rbp), %rax
cmpq $0x0, 0x90(%rax)
je 0x896d8
movl $0x1, -0x10(%rbp)
jmp 0x89ab4
movq -0x78(%rbp), %rax
movq 0xa0(%rax), %rdi
callq 0x5de90
jmp 0x896ea
movq -0x78(%rbp), %rax
movq 0xa0(%rax), %rdi
callq 0x5d8d0
jmp 0x896fc
movq -0x78(%rbp), %rdi
movq $0x0, 0xa0(%rdi)
movq (%rdi), %rax
movq 0x90(%rax), %rax
callq *%rax
movb %al, -0x79(%rbp)
jmp 0x8971c
movb -0x79(%rbp), %al
testb $0x1, %al
jne 0x89728
jmp 0x89aad
movq -0x78(%rbp), %rax
movq 0x190(%rax), %rdi
callq 0x59bc0
movq %rax, -0x88(%rbp)
jmp 0x89741
movq -0x88(%rbp), %rax
movq %rax, -0x28(%rbp)
movl $0x5d8, %edi            # imm = 0x5D8
callq 0x59820
movq %rax, -0x90(%rbp)
jmp 0x8975f
movq -0x90(%rbp), %rdi
callq 0x5c210
jmp 0x8976d
movq -0x78(%rbp), %rdi
movq -0x90(%rbp), %rax
movq %rax, 0x90(%rdi)
addq $0x120, %rdi            # imm = 0x120
xorl %esi, %esi
callq 0x5b110
movb %al, -0x91(%rbp)
jmp 0x89795
movb -0x91(%rbp), %al
testb $0x1, %al
jne 0x897a4
jmp 0x89942
movq -0x78(%rbp), %rsi
movq 0x90(%rsi), %rdi
addq $0x120, %rsi            # imm = 0x120
movq (%rdi), %rax
movq 0xa0(%rax), %rax
callq *%rax
jmp 0x897c4
movq -0x78(%rbp), %rax
movq 0x90(%rax), %rax
movq %rax, -0xa8(%rbp)
movq -0x28(%rbp), %rdi
callq 0x5b090
movq %rax, -0xa0(%rbp)
jmp 0x897e8
movq -0x78(%rbp), %rax
movq -0xa0(%rbp), %rcx
movq %rcx, -0x38(%rbp)
movq 0x90(%rax), %rdi
movq (%rdi), %rax
movq 0xf0(%rax), %rax
callq *%rax
movl %eax, -0xac(%rbp)
jmp 0x89812
movl -0xac(%rbp), %eax
cmpl $0x0, %eax
jle 0x89870
movq -0x78(%rbp), %rax
movq 0x90(%rax), %rdi
movq (%rdi), %rax
movq 0xf0(%rax), %rax
callq *%rax
movl %eax, -0xb0(%rbp)
jmp 0x8983c
movl -0xb0(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd 0xffeaa(%rip), %xmm1    # 0x1896f8
mulsd %xmm1, %xmm0
callq 0x5a970
movq %rax, -0xb8(%rbp)
jmp 0x89860
movq -0xb8(%rbp), %rax
movq %rax, -0xc0(%rbp)
jmp 0x8987e
movl $0x14, %eax
movq %rax, -0xc0(%rbp)
jmp 0x8987e
movq -0xc0(%rbp), %rax
movl %eax, %esi
movq 0x17f662(%rip), %rax    # 0x208ef0
movl (%rax), %edx
movl %edx, %eax
shrl $0x1f, %eax
addl %eax, %edx
sarl %edx
incl %edx
leaq -0x40(%rbp), %rdi
callq 0x5c2c0
jmp 0x898a6
leaq -0x38(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x5cbd0
movq %rax, -0xc8(%rbp)
jmp 0x898bc
movq -0xc8(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq -0x48(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x59260
jmp 0x898d6
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
movq 0x150(%rax), %rax
leaq -0x30(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq *%rax
jmp 0x898f3
movq -0x78(%rbp), %rax
movq 0x90(%rax), %rdi
movl $0xbb8, %esi            # imm = 0xBB8
callq 0x5d5b0
jmp 0x8990a
jmp 0x89a64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x89ac6
movq -0x90(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x5d8, %esi            # imm = 0x5D8
callq 0x595b0
jmp 0x89ac6
movq -0x78(%rbp), %rax
cmpq $0x0, 0x138(%rax)
je 0x89a62
movq -0x78(%rbp), %rax
movq 0x138(%rax), %rdi
movq (%rdi), %rax
movq 0x58(%rax), %rax
callq *%rax
jmp 0x8996a
movq -0x78(%rbp), %rax
movq 0x90(%rax), %rdi
movq 0x138(%rax), %rsi
callq 0x5c2d0
jmp 0x89983
movq -0x78(%rbp), %rax
movq 0x90(%rax), %rax
movq %rax, -0xd8(%rbp)
movq -0x28(%rbp), %rdi
callq 0x5b090
movq %rax, -0xd0(%rbp)
jmp 0x899a7
movq -0x78(%rbp), %rax
movq -0xd0(%rbp), %rcx
movq %rcx, -0x58(%rbp)
movq 0x138(%rax), %rdi
callq 0x5a210
movl %eax, -0xdc(%rbp)
jmp 0x899ca
movl -0xdc(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd 0xffd1c(%rip), %xmm1    # 0x1896f8
mulsd %xmm1, %xmm0
callq 0x5a970
movq %rax, -0xe8(%rbp)
jmp 0x899ee
movq -0xe8(%rbp), %rax
movl %eax, %esi
movq 0x17f4f2(%rip), %rax    # 0x208ef0
movl (%rax), %edx
movl %edx, %eax
shrl $0x1f, %eax
addl %eax, %edx
sarl %edx
incl %edx
leaq -0x60(%rbp), %rdi
callq 0x5c2c0
jmp 0x89a16
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x5cbd0
movq %rax, -0xf0(%rbp)
jmp 0x89a2c
movq -0xd8(%rbp), %rdi
movq -0xf0(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %rsi
callq 0x5d8c0
jmp 0x89a49
movq -0x78(%rbp), %rax
movq 0x90(%rax), %rdi
movl $0xbb8, %esi            # imm = 0xBB8
callq 0x5d5b0
jmp 0x89a60
jmp 0x89a62
jmp 0x89a64
movq -0x78(%rbp), %rcx
movq 0x17f551(%rip), %rax    # 0x208fc0
movq %rax, -0x70(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq 0x17ecd6(%rip), %rdi    # 0x208760
callq 0x8b840
jmp 0x89a91
movq -0x78(%rbp), %rax
movq -0x28(%rbp), %rdi
movq 0x90(%rax), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
jmp 0x89aab
jmp 0x89aad
movl $0x0, -0x10(%rbp)
leaq -0x9(%rbp), %rdi
callq 0x59490
addq $0xf0, %rsp
popq %rbp
retq
leaq -0x9(%rbp), %rdi
callq 0x59490
movq -0x18(%rbp), %rdi
callq 0x5b6b0
nopl (%rax,%rax)