// File: /workspace/github_cpp_makefile_star2_O2/eiskalteschatten[P]developersnotebook/src/windows/AboutDialog.cpp
// Function: AboutDialog::activate(_GtkWidget*, void*)
void AboutDialog::activate(GtkWidget *menu_item, void *main_window_obj) {
    MainWindow *mw = (MainWindow*)main_window_obj;
    const gchar *copyright = "(c) Alex Seifert 2018";

    Image logo("icon", "svg", mw->get_path_to_exec(), 128, 128);
    GdkPixbuf *logo_buf = logo.get_pixbuf();

    GtkWidget *dialog = gtk_about_dialog_new();

    gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(mw->get_window()));
    gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);

    gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(dialog), Constants::application_name.c_str());
    gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), Constants::application_version.c_str());
    gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog), copyright);
    gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog), Constants::application_slogan.c_str());
    gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog), Constants::application_website.c_str());
    gtk_about_dialog_set_license_type(GTK_ABOUT_DIALOG(dialog), GTK_LICENSE_MIT_X11);

    gtk_about_dialog_set_logo_icon_name(GTK_ABOUT_DIALOG(dialog), NULL);
    gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(dialog), logo_buf);
    g_object_unref(logo_buf);

    gtk_dialog_run(GTK_DIALOG(dialog));
    gtk_widget_destroy(dialog);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x110, %rsp            # imm = 0x110
movq %rsi, %r15
leaq 0x1224d(%rip), %rsi     # 0x2263b
leaq 0x48(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0xb078
leaq 0x11c3d(%rip), %rsi     # 0x22041
leaq 0x28(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0xb078
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x86e0
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x28(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movl $0x80, %r8d
movl $0x80, %r9d
callq 0xb2cc
leaq 0x8(%rsp), %rdi
callq 0x9120
leaq 0x28(%rsp), %rdi
callq 0x9120
leaq 0x48(%rsp), %rdi
callq 0x9120
leaq 0x68(%rsp), %rdi
callq 0xb43c
movq %rax, %r14
callq 0x8650
movq %rax, %rbx
callq 0x8f80
movq %rax, %r12
movq %rbx, %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, %r13
movq 0x20(%r15), %rdi
movq %r12, %rsi
callq 0x8150
movq %r13, %rdi
movq %rax, %rsi
callq 0x8c30
movq %rbx, %rdi
movq %r12, %rsi
callq 0x8150
pushq $0x1
popq %rsi
movq %rax, %rdi
callq 0x87c0
callq 0x8860
movq %rax, %r15
movq %rbx, %rdi
movq %rax, %rsi
callq 0x8150
movq 0x23233(%rip), %rsi     # 0x33708
movq %rax, %rdi
callq 0x84f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8150
movq 0x23259(%rip), %rsi     # 0x33748
movq %rax, %rdi
callq 0x8220
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8150
leaq 0x1211c(%rip), %rsi     # 0x22625
movq %rax, %rdi
callq 0x80f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8150
movq 0x23245(%rip), %rsi     # 0x33768
movq %rax, %rdi
callq 0x8c80
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8150
movq 0x2324b(%rip), %rsi     # 0x33788
movq %rax, %rdi
callq 0x8bd0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8150
pushq $0x7
popq %rsi
movq %rax, %rdi
callq 0x8ad0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8150
movq %rax, %rdi
xorl %esi, %esi
callq 0x9080
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8150
movq %rax, %rdi
movq %r14, %rsi
callq 0x81d0
movq %r14, %rdi
callq 0x8d50
callq 0x88a0
movq %rbx, %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, %rdi
callq 0x8340
movq %rbx, %rdi
callq 0x81a0
leaq 0x68(%rsp), %rdi
callq 0xb3c8
addq $0x110, %rsp            # imm = 0x110
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x105fd
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x9120
jmp 0x105dd
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x9120
jmp 0x105ec
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x9120
jmp 0x1060a
movq %rax, %rbx
jmp 0x1060a
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xb3c8
movq %rbx, %rdi
callq 0x87f0
nop