diff --git a/Gtkmm3_Mac/res/mydock.ui b/Gtkmm3_Mac/res/mydock.ui index a7c1a21..8e3f09e 100644 --- a/Gtkmm3_Mac/res/mydock.ui +++ b/Gtkmm3_Mac/res/mydock.ui @@ -78,7 +78,7 @@ center vertical - + True True True @@ -93,7 +93,7 @@ - + True True True @@ -108,7 +108,7 @@ - + True True True @@ -123,7 +123,7 @@ - + True True True @@ -138,7 +138,7 @@ - + True True True @@ -153,7 +153,7 @@ - + True True True @@ -168,7 +168,7 @@ - + True True True @@ -193,10 +193,20 @@ - - - - + + True + False + True + True + + + + + + False + True + 1 + diff --git a/Gtkmm3_Mac/src/core/MyStack.cc b/Gtkmm3_Mac/src/core/MyStack.cc index 55230a7..41e5741 100644 --- a/Gtkmm3_Mac/src/core/MyStack.cc +++ b/Gtkmm3_Mac/src/core/MyStack.cc @@ -18,6 +18,14 @@ MyStack::MyStack(){ main_page->pack_start(*main_dock); } +void MyStack::mystack_init(Gtk::Window *window, Gtk::Image *m_back){ + main_dock->mydock_init(window,m_back); +} + +void MyStack::show_prefs(){ + main_dock->btnset_clicked(); +} + void MyStack::logout(){ stack->set_visible_child(*login_page); } diff --git a/Gtkmm3_Mac/src/core/MyStack.hh b/Gtkmm3_Mac/src/core/MyStack.hh index 69a5210..903f6f8 100644 --- a/Gtkmm3_Mac/src/core/MyStack.hh +++ b/Gtkmm3_Mac/src/core/MyStack.hh @@ -8,6 +8,8 @@ class MyStack public: MyStack(); void logout(); + void mystack_init(Gtk::Window *window, Gtk::Image *m_back); + void show_prefs(); // Main Widget Gtk::Stack *stack; diff --git a/Gtkmm3_Mac/src/core/MyWin.cc b/Gtkmm3_Mac/src/core/MyWin.cc index b71cdd8..ddfdd53 100644 --- a/Gtkmm3_Mac/src/core/MyWin.cc +++ b/Gtkmm3_Mac/src/core/MyWin.cc @@ -21,9 +21,6 @@ MyWin::MyWin() add_action("about",sigc::mem_fun(*this,&MyWin::about_activated)); add_action("back",sigc::mem_fun(*this,&MyWin::back_actiavted)); - prefs_win.set_background(&m_background); - prefs_win.set_transient_for(*this); - // Add Stack m_overlay.add_overlay(*(main_stack.stack)); @@ -39,6 +36,9 @@ MyWin::MyWin() gesture->set_button(GDK_BUTTON_SECONDARY); gesture->signal_pressed().connect(sigc::mem_fun(*this, &MyWin::press)); + // Initalize Stack + main_stack.mystack_init(this,&m_background); + add(m_overlay); show_all_children(); } @@ -56,7 +56,7 @@ void MyWin::logout_activated() } void MyWin::back_actiavted(){ - prefs_win.show_all(); + main_stack.show_prefs(); } void MyWin::about_activated() diff --git a/Gtkmm3_Mac/src/core/MyWin.hh b/Gtkmm3_Mac/src/core/MyWin.hh index 8cfe228..432ea52 100644 --- a/Gtkmm3_Mac/src/core/MyWin.hh +++ b/Gtkmm3_Mac/src/core/MyWin.hh @@ -2,7 +2,6 @@ #include #include "MyStack.hh" -#include "MyPrefs.hh" class MyWin : public Gtk::ApplicationWindow{ public: @@ -21,9 +20,6 @@ private: //Main Stack MyStack main_stack; - //Window Preferences - MyPrefs prefs_win; - //Signal Handlers void logout_activated(); void quit_activated(); diff --git a/Gtkmm3_Mac/src/ui/MyDock.cc b/Gtkmm3_Mac/src/ui/MyDock.cc index 4450a5e..417dd7d 100644 --- a/Gtkmm3_Mac/src/ui/MyDock.cc +++ b/Gtkmm3_Mac/src/ui/MyDock.cc @@ -1,12 +1,22 @@ #include "MyDock.hh" -MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr ref_Glade) -:Gtk::Box(cobject), -ref_builder(ref_Glade) +MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr &ref_Glade) + : Gtk::Box(cobject), + ref_builder(ref_Glade) { // Get Widget - ref_builder->get_widget("finder_box",finder_box); - ref_builder->get_widget("dock_box",dock_box); + ref_builder->get_widget("finder_box", finder_box); + ref_builder->get_widget("dock_box", dock_box); + ref_builder->get_widget("btnlaunch",btnlaunch); + ref_builder->get_widget("btndraw",btndraw); + ref_builder->get_widget("btnfiles",btnfiles); + ref_builder->get_widget("btngame",btngame); + ref_builder->get_widget("btnedit",btnedit); + ref_builder->get_widget("btnimage",btnimage); + ref_builder->get_widget("btnset",btnset); + + //Link signals + btnset->signal_clicked().connect(sigc::mem_fun(*this,&MyDock::btnset_clicked)); finder_box->pack_start(finder); // Add Style for MyFinder @@ -18,12 +28,26 @@ ref_builder(ref_Glade) show_all_children(); } -MyDock * MyDock::create(){ - MyDock * dock; +void MyDock::mydock_init(Gtk::Window *window, Gtk::Image *background1) +{ + // Initalize Preference window + prefs_win.set_background(background1); + prefs_win.set_transient_for(*window); + parent_win = window; +} + +void MyDock::btnset_clicked() +{ + prefs_win.show_all(); +} + +MyDock *MyDock::create() +{ + MyDock *dock; // Get Widget auto builder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/mydock.ui"); - builder->get_widget_derived("main_box",dock); + builder->get_widget_derived("main_box", dock); return dock; } diff --git a/Gtkmm3_Mac/src/ui/MyDock.hh b/Gtkmm3_Mac/src/ui/MyDock.hh index abb2365..c63ec91 100644 --- a/Gtkmm3_Mac/src/ui/MyDock.hh +++ b/Gtkmm3_Mac/src/ui/MyDock.hh @@ -2,22 +2,30 @@ #include #include "MyFinder.hh" +#include "MyPrefs.hh" class MyDock : public Gtk::Box { public: - MyDock(BaseObjectType *cobject, const Glib::RefPtr ref_Glade); - static MyDock * create(); + MyDock(BaseObjectType *cobject, const Glib::RefPtr &ref_Glade); + static MyDock *create(); + void btnset_clicked(); + void mydock_init(Gtk::Window * window, Gtk::Image *background1); private: // Child widgets Gtk::Box *finder_box, *dock_box; + Gtk::Button *btnlaunch, *btndraw, *btnfiles, + *btngame, *btnedit, *btnimage, *btnset; - //Finder + // Finder MyFinder finder; - //Other - Gtk::Window * parent_win; + //Window Preferences + MyPrefs prefs_win; + + // Other + Gtk::Window *parent_win; Glib::RefPtr ref_builder; Glib::RefPtr provider; };