// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/gui/widgets/basic/arrows.cpp
// Function: smooth::GUI::Arrows::Arrows(smooth::GUI::Point const&, smooth::GUI::Size const&, int, int*, int, int)
S::GUI::Arrows::Arrows(const Point &iPos, const Size &iSize, Int sType, Int *var, Int rangeStart, Int rangeEnd) : Widget(iPos, iSize)
{
	type		= classID;
	subtype		= sType;

	startValue	= rangeStart;
	endValue	= rangeEnd;

	stepSize	= 1;

	dummyVariable	= 0;

	if (var == NIL)	variable = &dummyVariable;
	else		variable = var;

	SetValue(*variable);

	timer		= NIL;
	timerCount	= 0;
	timerDirection	= 1;

	if (GetWidth() == 0) SetWidth(subtype == OR_VERT ? 17 : 24);
	if (GetHeight() == 0) SetHeight(subtype == OR_VERT ? 24 : 17);

	onRangeChange.SetParentObject(this);

	onValueChange.SetParentObject(this);
	onValueChange.Connect(&onAction);

	SetBackgroundColor(Setup::BackgroundColor);

	arrow1Hotspot	= new HotspotSimpleButton(Point(2 + (subtype == OR_HORZ ? GetWidth() / 2 : 0), 2), GetSize() - Size(4 + (subtype == OR_HORZ ? GetWidth() / 2 : 0), 4 + (subtype == OR_HORZ ? 0 : GetHeight() / 2)));
	arrow2Hotspot	= new HotspotSimpleButton(Point(2, 2 + (subtype == OR_VERT ? GetHeight() / 2 : 0)), GetSize() - Size(4 + (subtype == OR_HORZ ? GetWidth() / 2 : 0), 4 + (subtype == OR_HORZ ? 0 : GetHeight() / 2)));

	arrow1Hotspot->onLeftButtonDown.Connect(&Arrows::OnMouseDownPlus, this);
	arrow2Hotspot->onLeftButtonDown.Connect(&Arrows::OnMouseDownMinus, this);

	arrow1Hotspot->onLeftButtonUp.Connect(&Arrows::OnMouseRelease, this);
	arrow2Hotspot->onLeftButtonUp.Connect(&Arrows::OnMouseRelease, this);

	Add(arrow1Hotspot);
	Add(arrow2Hotspot);

	onChangeSize.Connect(&Arrows::OnChangeSize, this);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x150, %rsp            # imm = 0x150
movl 0x10(%rbp), %eax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq %r8, -0x28(%rbp)
movl %r9d, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x5c220
movq -0xd0(%rbp), %rdi
movq 0x17a4ed(%rip), %rax    # 0x208de8
addq $0x10, %rax
movq %rax, (%rdi)
addq $0x5f8, %rdi            # imm = 0x5F8
movq %rdi, -0xc8(%rbp)
callq 0x901c0
jmp 0x8e917
movq -0xd0(%rbp), %rdi
addq $0x618, %rdi            # imm = 0x618
movq %rdi, -0xd8(%rbp)
callq 0x90210
jmp 0x8e933
movq -0xd0(%rbp), %rdi
movq 0x179c8f(%rip), %rax    # 0x2085d0
movswl (%rax), %esi
addq $0x20, %rdi
callq 0x5a2e0
jmp 0x8e94f
movq -0xd0(%rbp), %rax
movl -0x1c(%rbp), %ecx
movw %cx, 0x1a0(%rax)
movl -0x2c(%rbp), %ecx
movl %ecx, 0x5d8(%rax)
movl 0x10(%rbp), %ecx
movl %ecx, 0x5dc(%rax)
movl $0x1, 0x5e0(%rax)
movl $0x0, 0x5b8(%rax)
cmpq $0x0, -0x28(%rbp)
jne 0x8e9da
movq -0xd0(%rbp), %rax
movq %rax, %rcx
addq $0x5b8, %rcx            # imm = 0x5B8
movq %rcx, 0x5d0(%rax)
jmp 0x8e9ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8effa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8efee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8efe2
movq -0xd0(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, 0x5d0(%rax)
movq -0xd0(%rbp), %rdi
movq 0x5d0(%rdi), %rax
movl (%rax), %esi
callq 0x5b550
jmp 0x8ea03
movq -0xd0(%rbp), %rdi
movq $0x0, 0x5c0(%rdi)
movl $0x0, 0x5c8(%rdi)
movl $0x1, 0x5cc(%rdi)
callq 0x5a210
movl %eax, -0xdc(%rbp)
jmp 0x8ea36
movl -0xdc(%rbp), %eax
cmpl $0x0, %eax
jne 0x8ea69
movq -0xd0(%rbp), %rdi
movw 0x1a0(%rdi), %ax
subw $0x2, %ax
movl $0x11, %eax
movl $0x18, %esi
cmovel %eax, %esi
callq 0x5db30
jmp 0x8ea67
jmp 0x8ea69
movq -0xd0(%rbp), %rdi
callq 0x5b860
movl %eax, -0xe0(%rbp)
jmp 0x8ea7d
movl -0xe0(%rbp), %eax
cmpl $0x0, %eax
jne 0x8eab0
movq -0xd0(%rbp), %rdi
movw 0x1a0(%rdi), %ax
subw $0x2, %ax
movl $0x18, %eax
movl $0x11, %esi
cmovel %eax, %esi
callq 0x5bed0
jmp 0x8eaae
jmp 0x8eab0
movq -0xd0(%rbp), %rsi
movq %rsi, %rdi
addq $0x5f8, %rdi            # imm = 0x5F8
callq 0x8ad00
jmp 0x8eac8
movq -0xd0(%rbp), %rsi
movq %rsi, %rdi
addq $0x618, %rdi            # imm = 0x618
callq 0x8ad00
jmp 0x8eae0
movq -0xd0(%rbp), %rsi
movq %rsi, %rdi
addq $0x618, %rdi            # imm = 0x618
addq $0x478, %rsi            # imm = 0x478
callq 0x90260
jmp 0x8eaff
movq -0xd0(%rbp), %rdi
movq (%rdi), %rax
movq 0x138(%rax), %rax
movq 0x179991(%rip), %rsi    # 0x2084a8
callq *%rax
jmp 0x8eb1b
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x59820
movq %rax, -0xe8(%rbp)
jmp 0x8eb2e
movq -0xd0(%rbp), %rax
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0x8eb6b
movq -0xd0(%rbp), %rdi
callq 0x5a210
movl %eax, -0xec(%rbp)
jmp 0x8eb55
movl -0xec(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0xf0(%rbp)
jmp 0x8eb75
xorl %eax, %eax
movl %eax, -0xf0(%rbp)
jmp 0x8eb75
movl -0xf0(%rbp), %esi
addl $0x2, %esi
leaq -0x44(%rbp), %rdi
movl $0x2, %edx
callq 0x5c2c0
jmp 0x8eb8e
movq -0xd0(%rbp), %rdi
callq 0x5bf70
movq %rax, -0xf8(%rbp)
jmp 0x8eba3
movq -0xd0(%rbp), %rax
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0x8ebe0
movq -0xd0(%rbp), %rdi
callq 0x5a210
movl %eax, -0xfc(%rbp)
jmp 0x8ebca
movl -0xfc(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x100(%rbp)
jmp 0x8ebea
xorl %eax, %eax
movl %eax, -0x100(%rbp)
jmp 0x8ebea
movq -0xd0(%rbp), %rax
movl -0x100(%rbp), %ecx
addl $0x4, %ecx
movl %ecx, -0x104(%rbp)
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0x8ec16
xorl %eax, %eax
movl %eax, -0x108(%rbp)
jmp 0x8ec3e
movq -0xd0(%rbp), %rdi
callq 0x5b860
movl %eax, -0x10c(%rbp)
jmp 0x8ec2a
movl -0x10c(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x108(%rbp)
movl -0x104(%rbp), %esi
movl -0x108(%rbp), %edx
addl $0x4, %edx
leaq -0x54(%rbp), %rdi
callq 0x59260
jmp 0x8ec58
movq -0xf8(%rbp), %rdi
leaq -0x54(%rbp), %rsi
callq 0x5db90
movq %rax, -0x118(%rbp)
jmp 0x8ec71
movq -0xe8(%rbp), %rdi
movq -0x118(%rbp), %rax
movq %rax, -0x4c(%rbp)
leaq -0x44(%rbp), %rsi
leaq -0x4c(%rbp), %rdx
callq 0x59c60
jmp 0x8ec92
movq -0xd0(%rbp), %rax
movq -0xe8(%rbp), %rcx
movq %rcx, 0x5e8(%rax)
movl $0x5b8, %edi            # imm = 0x5B8
callq 0x59820
movq %rax, -0x120(%rbp)
jmp 0x8ecba
movq -0xd0(%rbp), %rax
movswl 0x1a0(%rax), %eax
cmpl $0x2, %eax
jne 0x8ecf7
movq -0xd0(%rbp), %rdi
callq 0x5b860
movl %eax, -0x124(%rbp)
jmp 0x8ece1
movl -0x124(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x128(%rbp)
jmp 0x8ed01
xorl %eax, %eax
movl %eax, -0x128(%rbp)
jmp 0x8ed01
movl -0x128(%rbp), %edx
addl $0x2, %edx
leaq -0x5c(%rbp), %rdi
movl $0x2, %esi
callq 0x5c2c0
jmp 0x8ed1a
movq -0xd0(%rbp), %rdi
callq 0x5bf70
movq %rax, -0x130(%rbp)
jmp 0x8ed2f
movq -0xd0(%rbp), %rax
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0x8ed6c
movq -0xd0(%rbp), %rdi
callq 0x5a210
movl %eax, -0x134(%rbp)
jmp 0x8ed56
movl -0x134(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x138(%rbp)
jmp 0x8ed76
xorl %eax, %eax
movl %eax, -0x138(%rbp)
jmp 0x8ed76
movq -0xd0(%rbp), %rax
movl -0x138(%rbp), %ecx
addl $0x4, %ecx
movl %ecx, -0x13c(%rbp)
movswl 0x1a0(%rax), %eax
cmpl $0x1, %eax
jne 0x8eda2
xorl %eax, %eax
movl %eax, -0x140(%rbp)
jmp 0x8edca
movq -0xd0(%rbp), %rdi
callq 0x5b860
movl %eax, -0x144(%rbp)
jmp 0x8edb6
movl -0x144(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x140(%rbp)
movl -0x13c(%rbp), %esi
movl -0x140(%rbp), %edx
addl $0x4, %edx
leaq -0x6c(%rbp), %rdi
callq 0x59260
jmp 0x8ede4
movq -0x130(%rbp), %rdi
leaq -0x6c(%rbp), %rsi
callq 0x5db90
movq %rax, -0x150(%rbp)
jmp 0x8edfd
movq -0x120(%rbp), %rdi
movq -0x150(%rbp), %rax
movq %rax, -0x64(%rbp)
leaq -0x5c(%rbp), %rsi
leaq -0x64(%rbp), %rdx
callq 0x59c60
jmp 0x8ee1e
movq -0xd0(%rbp), %rcx
movq -0x120(%rbp), %rax
movq %rax, 0x5f0(%rcx)
movq 0x5e8(%rcx), %rdi
addq $0x2f8, %rdi            # imm = 0x2F8
movq 0x1795f8(%rip), %rax    # 0x208440
movq %rax, -0x80(%rbp)
movq $0x0, -0x78(%rbp)
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
callq 0x90390
jmp 0x8ee63
movq -0xd0(%rbp), %rcx
movq 0x5f0(%rcx), %rdi
addq $0x2f8, %rdi            # imm = 0x2F8
movq 0x179ad9(%rip), %rax    # 0x208958
movq %rax, -0x90(%rbp)
movq $0x0, -0x88(%rbp)
movq -0x90(%rbp), %rsi
movq -0x88(%rbp), %rdx
callq 0x90390
jmp 0x8eea6
movq -0xd0(%rbp), %rcx
movq 0x5e8(%rcx), %rdi
addq $0x318, %rdi            # imm = 0x318
movq 0x179966(%rip), %rax    # 0x208828
movq %rax, -0xa0(%rbp)
movq $0x0, -0x98(%rbp)
movq -0xa0(%rbp), %rsi
movq -0x98(%rbp), %rdx
callq 0x90390
jmp 0x8eee9
movq -0xd0(%rbp), %rcx
movq 0x5f0(%rcx), %rdi
addq $0x318, %rdi            # imm = 0x318
movq 0x179923(%rip), %rax    # 0x208828
movq %rax, -0xb0(%rbp)
movq $0x0, -0xa8(%rbp)
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rdx
callq 0x90390
jmp 0x8ef2c
movq -0xd0(%rbp), %rdi
movq 0x5e8(%rdi), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
jmp 0x8ef45
movq -0xd0(%rbp), %rdi
movq 0x5f0(%rdi), %rsi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
jmp 0x8ef5e
movq -0xd0(%rbp), %rcx
movq %rcx, %rdi
addq $0x298, %rdi            # imm = 0x298
movq 0x179fc2(%rip), %rax    # 0x208f38
movq %rax, -0xc0(%rbp)
movq $0x0, -0xb8(%rbp)
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
callq 0x904d0
jmp 0x8ef9d
addq $0x150, %rsp            # imm = 0x150
popq %rbp
retq
movq -0xe8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x5b8, %esi            # imm = 0x5B8
callq 0x595b0
jmp 0x8efe2
movq -0x120(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl $0x5b8, %esi            # imm = 0x5B8
callq 0x595b0
movq -0xd8(%rbp), %rdi
callq 0x90610
movq -0xc8(%rbp), %rdi
callq 0x90650
movq -0xd0(%rbp), %rdi
callq 0x5bd90
movq -0x38(%rbp), %rdi
callq 0x5b6b0
nop