diff --git a/gtkpp/Window.cpp b/gtkpp/Window.cpp index 120ec70..41a0586 100644 --- a/gtkpp/Window.cpp +++ b/gtkpp/Window.cpp @@ -10,6 +10,11 @@ namespace gtkpp { return wnd1._window == wnd2._window; } + Window::Window() { + _window = nullptr; + _builder = nullptr; + } + Window::Window(std::shared_ptr app, bool isAppWindow) { if(isAppWindow) { _window = GTK_WINDOW(adw_application_window_new(GTK_APPLICATION(app->gobj()))); diff --git a/gtkpp/Window.h b/gtkpp/Window.h index c08127d..d64ae64 100644 --- a/gtkpp/Window.h +++ b/gtkpp/Window.h @@ -21,6 +21,7 @@ namespace gtkpp { friend bool operator==(const Window& wnd1, const Window& wnd2); public: + Window(); Window(std::shared_ptr app, bool isAppWindow); Window(std::shared_ptr app, const char* resourceName, const char* id); void show(); @@ -31,6 +32,7 @@ namespace gtkpp { [[nodiscard]] std::shared_ptr application() const; }; + using WindowPtr = std::shared_ptr; } #endif //AUTOCAT_GNOME_WINDOW_H diff --git a/gui/AddNumberDialog.cpp b/gui/AddNumberDialog.cpp index 9c0b5cb..3290f0a 100644 --- a/gui/AddNumberDialog.cpp +++ b/gui/AddNumberDialog.cpp @@ -4,6 +4,20 @@ #include "AddNumberDialog.h" -AddNumberDialog::AddNumberDialog(): gtkpp::Window(nullptr, "/gui/AddNumberDialog.xml", "add_number_dialog") { +AddNumberDialog::AddNumberDialog(GtkWindow* parent): gtkpp::Window() { + auto flags = static_cast(GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL); + auto dialog = gtk_dialog_new_with_buttons("Add plate number", + parent, + flags, + "OK", GTK_RESPONSE_ACCEPT, + "Cancel", GTK_RESPONSE_REJECT, + nullptr); + _window = GTK_WINDOW(dialog); + //auto contentArea = gtk_dialog_get_content_area (GTK_DIALOG(dialog)); + + g_signal_connect_swapped (dialog, + "response", + G_CALLBACK(gtk_window_destroy), + dialog); } diff --git a/gui/AddNumberDialog.h b/gui/AddNumberDialog.h index 5b07748..427737b 100644 --- a/gui/AddNumberDialog.h +++ b/gui/AddNumberDialog.h @@ -9,7 +9,7 @@ class AddNumberDialog: public gtkpp::Window { public: - AddNumberDialog(); + explicit AddNumberDialog(GtkWindow* parent); }; diff --git a/gui/AddNumberDialog.xml b/gui/AddNumberDialog.xml index dcd759d..0e1841f 100644 --- a/gui/AddNumberDialog.xml +++ b/gui/AddNumberDialog.xml @@ -1,19 +1,32 @@ + button_cancel button_ok + --> + + + + + + + _Ok + True + + + + + + \ No newline at end of file diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp index 88532a1..98e5049 100644 --- a/gui/MainWindow.cpp +++ b/gui/MainWindow.cpp @@ -14,7 +14,7 @@ MainWindow::MainWindow(std::shared_ptr app): _addNumberButton.onClick([this] { std::cout << "Add clicked" << std::endl; - auto dialog = std::make_unique(); + auto dialog = std::make_unique(gobj()); dialog->show(); }); }