// File: eiskalteschatten[P]developersnotebook/src/views/ProjectsView.cpp
// Function: ProjectsView::setup_list_view_toolbar()
void ProjectsView::setup_list_view_toolbar() {
    list_view_grid = gtk_grid_new();
    g_object_set(list_view_grid, "hexpand", TRUE, NULL);
    g_object_set(list_view_grid, "vexpand", TRUE, NULL);
    gtk_widget_set_halign(list_view_grid, GTK_ALIGN_FILL);
    gtk_widget_set_valign(list_view_grid, GTK_ALIGN_FILL);

    gtk_grid_insert_row(GTK_GRID(list_view_grid), 0);
    gtk_grid_insert_row(GTK_GRID(list_view_grid), 1);

    gtk_grid_attach(GTK_GRID(list_view_grid), list_scrolled_window, 0, 0, 1, 1);

    toolbar_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1);
    gtk_widget_set_name(toolbar_box, "projects-view_toolbar");

    // New button
    {
        new_toolbar_button = gtk_button_new_from_icon_name("document-new", GTK_ICON_SIZE_SMALL_TOOLBAR);
        gtk_button_set_relief(GTK_BUTTON(new_toolbar_button), GTK_RELIEF_NONE);
        g_object_set(new_toolbar_button, "hexpand", FALSE, NULL);
        g_signal_connect(G_OBJECT(new_toolbar_button), "clicked", G_CALLBACK(create_new_project_static), this);
        gtk_box_pack_start(GTK_BOX(toolbar_box), new_toolbar_button, FALSE, FALSE, 0);
    }

    // Delete button
    {
        delete_toolbar_button = gtk_button_new_from_icon_name("edit-delete", GTK_ICON_SIZE_SMALL_TOOLBAR);
        gtk_button_set_relief(GTK_BUTTON(delete_toolbar_button), GTK_RELIEF_NONE);
        g_object_set(delete_toolbar_button, "hexpand", FALSE, NULL);
        g_signal_connect(G_OBJECT(delete_toolbar_button), "clicked", G_CALLBACK(delete_project), this);
        gtk_box_pack_start(GTK_BOX(toolbar_box), delete_toolbar_button, FALSE, FALSE, 0);
        gtk_widget_set_sensitive(delete_toolbar_button, FALSE);
    }

    gtk_grid_attach(GTK_GRID(list_view_grid), toolbar_box, 0, 1, 1, 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
callq 0xaea0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rax), %rdi
leaq 0x3b8da(%rip), %rsi     # 0x53459
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x3b8c3(%rip), %rsi     # 0x53461
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %esi, %esi
callq 0xaff0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %esi, %esi
callq 0xb190
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x50(%rbp)
callq 0xac20
movq -0x50(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
xorl %esi, %esi
callq 0xa400
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
callq 0xac20
movq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x1, %esi
callq 0xa400
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x40(%rbp)
callq 0xac20
movq -0x40(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
xorl %ecx, %ecx
movl $0x1, %r9d
movl %ecx, %edx
movl %r9d, %r8d
callq 0xad40
xorl %edi, %edi
movl $0x1, %esi
callq 0xb2b0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x48(%rax)
movq 0x48(%rax), %rdi
leaq 0x3b827(%rip), %rsi     # 0x534a0
callq 0xa2f0
leaq 0x3b831(%rip), %rdi     # 0x534b6
movl $0x2, %esi
callq 0xb000
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x50(%rax)
movq 0x50(%rax), %rax
movq %rax, -0x38(%rbp)
callq 0xa8d0
movq -0x38(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x2, %esi
callq 0xadc0
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rdi
leaq 0x3b78a(%rip), %rsi     # 0x53459
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rdi
movl $0x50, %esi
callq 0xa190
movq -0x10(%rbp), %rcx
movq %rax, %rdi
leaq 0x3b7c7(%rip), %rsi     # 0x534c3
leaq -0x18d3(%rip), %rdx     # 0x16430
xorl %eax, %eax
movl %eax, %r8d
xorl %r9d, %r9d
callq 0xa380
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x30(%rbp)
callq 0xab50
movq -0x30(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rsi
xorl %r8d, %r8d
movl %r8d, %edx
movl %r8d, %ecx
callq 0xa340
leaq 0x3b77e(%rip), %rdi     # 0x534cb
movl $0x2, %esi
callq 0xb000
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x58(%rax)
movq 0x58(%rax), %rax
movq %rax, -0x28(%rbp)
callq 0xa8d0
movq -0x28(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x2, %esi
callq 0xadc0
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdi
leaq 0x3b6c2(%rip), %rsi     # 0x53459
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdi
movl $0x50, %esi
callq 0xa190
movq -0x10(%rbp), %rcx
movq %rax, %rdi
leaq 0x3b6ff(%rip), %rsi     # 0x534c3
leaq -0x1fcb(%rip), %rdx     # 0x15e00
xorl %eax, %eax
movl %eax, %r8d
xorl %r9d, %r9d
callq 0xa380
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x20(%rbp)
callq 0xab50
movq -0x20(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rsi
xorl %r8d, %r8d
movl %r8d, %edx
movl %r8d, %ecx
callq 0xa340
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdi
xorl %esi, %esi
callq 0xb300
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rbp)
callq 0xac20
movq -0x18(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rsi
xorl %edx, %edx
movl $0x1, %r9d
movl %r9d, %ecx
movl %r9d, %r8d
callq 0xad40
addq $0x50, %rsp
popq %rbp
retq
nop