gtk: Initial implementation of message box.
This commit is contained in:
parent
63ed4acd49
commit
6b9148127e
1 changed files with 21 additions and 0 deletions
|
@ -4,7 +4,10 @@
|
|||
|
||||
#include "browser/ui/message_box.h"
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "base/callback.h"
|
||||
#include "browser/native_window.h"
|
||||
|
||||
namespace atom {
|
||||
|
||||
|
@ -24,6 +27,24 @@ void ShowMessageBox(NativeWindow* parent_window,
|
|||
const std::string& message,
|
||||
const std::string& detail,
|
||||
const MessageBoxCallback& callback) {
|
||||
GtkWindow* window = parent_window ? parent_window->GetNativeWindow() : NULL;
|
||||
GtkWidget* dialog = gtk_dialog_new_with_buttons(
|
||||
title.c_str(),
|
||||
window,
|
||||
static_cast<GtkDialogFlags>(GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR),
|
||||
NULL);
|
||||
|
||||
for (size_t i = 0; i < buttons.size(); ++i)
|
||||
gtk_dialog_add_button(GTK_DIALOG(dialog), buttons[i].c_str(), i);
|
||||
|
||||
GtkWidget* content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
|
||||
GtkWidget* message_label = gtk_label_new(message.c_str());
|
||||
gtk_box_pack_start(GTK_BOX(content_area), message_label, FALSE, FALSE, 0);
|
||||
GtkWidget* detail_label = gtk_label_new(detail.c_str());
|
||||
gtk_box_pack_start(GTK_BOX(content_area), detail_label, FALSE, FALSE, 0);
|
||||
|
||||
gtk_widget_show_all(dialog);
|
||||
|
||||
callback.Run(0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue