// File: 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 %rbp
movq %rsp, %rbp
subq $0x240, %rsp            # imm = 0x240
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq 0x34ad3(%rip), %rax     # 0x53855
movq %rax, -0x20(%rbp)
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0xaf80
movq -0x160(%rbp), %rdx
leaq 0x34ac4(%rip), %rsi     # 0x5386b
leaq -0xe8(%rbp), %rdi
callq 0x10f00
jmp 0x1edb5
leaq -0x121(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0xaf80
movq -0x168(%rbp), %rdx
leaq 0x34293(%rip), %rsi     # 0x53069
leaq -0x120(%rbp), %rdi
callq 0x10f00
jmp 0x1ede4
movq -0x18(%rbp), %rdi
callq 0x1f2a0
movq %rax, -0x170(%rbp)
jmp 0x1edf6
movq -0x170(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0xa230
jmp 0x1ee0b
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
leaq -0x120(%rbp), %rdx
leaq -0x148(%rbp), %rcx
movl $0x80, %r9d
movl %r9d, %r8d
callq 0x138c0
jmp 0x1ee37
leaq -0x148(%rbp), %rdi
callq 0xb430
leaq -0x120(%rbp), %rdi
callq 0xb430
leaq -0x121(%rbp), %rdi
callq 0xb410
leaq -0xe8(%rbp), %rdi
callq 0xb430
leaq -0xe9(%rbp), %rdi
callq 0xb410
leaq -0xc8(%rbp), %rdi
callq 0x13bb0
movq %rax, -0x178(%rbp)
jmp 0x1ee88
movq -0x178(%rbp), %rax
movq %rax, -0x150(%rbp)
callq 0xa810
movq %rax, -0x180(%rbp)
jmp 0x1eea4
movq -0x180(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x158(%rbp), %rax
movq %rax, -0x190(%rbp)
callq 0xb270
movq -0x190(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x188(%rbp)
jmp 0x1eedd
movq -0x18(%rbp), %rdi
callq 0x1f2b0
movq %rax, -0x198(%rbp)
jmp 0x1eeef
callq 0xb270
movq -0x198(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x1a0(%rbp)
jmp 0x1ef0c
movq -0x1a0(%rbp), %rsi
movq -0x188(%rbp), %rdi
callq 0xae70
jmp 0x1ef21
movq -0x158(%rbp), %rax
movq %rax, -0x1b0(%rbp)
callq 0xb270
movq -0x1b0(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x1a8(%rbp)
jmp 0x1ef4c
movq -0x1a8(%rbp), %rdi
movl $0x1, %esi
callq 0xa9d0
jmp 0x1ef5f
movq -0x158(%rbp), %rax
movq %rax, -0x1c0(%rbp)
callq 0xaa80
movq -0x1c0(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x1b8(%rbp)
jmp 0x1ef8a
leaq 0x57987(%rip), %rdi     # 0x76918
callq 0xa1d0
movq -0x1b8(%rbp), %rdi
movq %rax, %rsi
callq 0xa670
jmp 0x1efa7
movq -0x158(%rbp), %rax
movq %rax, -0x1d0(%rbp)
callq 0xaa80
movq -0x1d0(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x1c8(%rbp)
jmp 0x1efd2
leaq 0x5797f(%rip), %rdi     # 0x76958
callq 0xa1d0
movq -0x1c8(%rbp), %rdi
movq %rax, %rsi
callq 0xa2e0
jmp 0x1efef
movq -0x158(%rbp), %rax
movq %rax, -0x1e0(%rbp)
callq 0xaa80
movq -0x1e0(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x1d8(%rbp)
jmp 0x1f01a
movq -0x1d8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xa110
jmp 0x1f02c
movq -0x158(%rbp), %rax
movq %rax, -0x1f0(%rbp)
callq 0xaa80
movq -0x1f0(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x1e8(%rbp)
jmp 0x1f057
leaq 0x5791a(%rip), %rdi     # 0x76978
callq 0xa1d0
movq -0x1e8(%rbp), %rdi
movq %rax, %rsi
callq 0xaee0
jmp 0x1f074
movq -0x158(%rbp), %rax
movq %rax, -0x200(%rbp)
callq 0xaa80
movq -0x200(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x1f8(%rbp)
jmp 0x1f09f
leaq 0x578f2(%rip), %rdi     # 0x76998
callq 0xa1d0
movq -0x1f8(%rbp), %rdi
movq %rax, %rsi
callq 0xae10
jmp 0x1f0bc
movq -0x158(%rbp), %rax
movq %rax, -0x210(%rbp)
callq 0xaa80
movq -0x210(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x208(%rbp)
jmp 0x1f0e7
movq -0x208(%rbp), %rdi
movl $0x7, %esi
callq 0xad00
jmp 0x1f0fa
movq -0x158(%rbp), %rax
movq %rax, -0x220(%rbp)
callq 0xaa80
movq -0x220(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x218(%rbp)
jmp 0x1f125
movq -0x218(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xb380
jmp 0x1f137
movq -0x158(%rbp), %rax
movq %rax, -0x230(%rbp)
callq 0xaa80
movq -0x230(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x228(%rbp)
jmp 0x1f162
movq -0x228(%rbp), %rdi
movq -0x150(%rbp), %rsi
callq 0xa290
jmp 0x1f177
movq -0x150(%rbp), %rdi
callq 0xafe0
jmp 0x1f185
movq -0x158(%rbp), %rax
movq %rax, -0x240(%rbp)
callq 0xaac0
movq -0x240(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, -0x238(%rbp)
jmp 0x1f1b0
movq -0x238(%rbp), %rdi
callq 0xa480
jmp 0x1f1be
movq -0x158(%rbp), %rdi
callq 0xa250
jmp 0x1f1cc
leaq -0xc8(%rbp), %rdi
callq 0x13a50
addq $0x240, %rsp            # imm = 0x240
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x1f25f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x1f247
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0x1f23b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x148(%rbp), %rdi
callq 0xb430
leaq -0x120(%rbp), %rdi
callq 0xb430
leaq -0x121(%rbp), %rdi
callq 0xb410
leaq -0xe8(%rbp), %rdi
callq 0xb430
leaq -0xe9(%rbp), %rdi
callq 0xb410
jmp 0x1f28b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x13a50
movq -0xf8(%rbp), %rdi
callq 0xaa00
nopw (%rax,%rax)