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
@@ -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;
};