Move Window Preferences to dock

This commit is contained in:
daleclack 2022-02-04 12:15:46 +08:00
parent 4b34eb4758
commit e5ecb46534
7 changed files with 80 additions and 32 deletions

View File

@ -78,7 +78,7 @@
<property name="valign">center</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkButton">
<object class="GtkButton" id="btnlaunch">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@ -93,7 +93,7 @@
</packing>
</child>
<child>
<object class="GtkButton">
<object class="GtkButton" id="btndraw">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@ -108,7 +108,7 @@
</packing>
</child>
<child>
<object class="GtkButton">
<object class="GtkButton" id="btnfiles">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@ -123,7 +123,7 @@
</packing>
</child>
<child>
<object class="GtkButton">
<object class="GtkButton" id="btngame">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@ -138,7 +138,7 @@
</packing>
</child>
<child>
<object class="GtkButton">
<object class="GtkButton" id="btnedit">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@ -153,7 +153,7 @@
</packing>
</child>
<child>
<object class="GtkButton">
<object class="GtkButton" id="btnimage">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@ -168,7 +168,7 @@
</packing>
</child>
<child>
<object class="GtkButton">
<object class="GtkButton" id="btnset">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@ -193,8 +193,11 @@
</packing>
</child>
<child>
<placeholder/>
</child>
<object class="GtkStack">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<placeholder/>
</child>
@ -206,4 +209,11 @@
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</interface>

View File

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

View File

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

View File

@ -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()

View File

@ -2,7 +2,6 @@
#include <gtkmm.h>
#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();

View File

@ -1,12 +1,22 @@
#include "MyDock.hh"
MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> ref_Glade)
:Gtk::Box(cobject),
ref_builder(ref_Glade)
MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &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;
}

View File

@ -2,22 +2,30 @@
#include <gtkmm.h>
#include "MyFinder.hh"
#include "MyPrefs.hh"
class MyDock : public Gtk::Box
{
public:
MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> ref_Glade);
static MyDock * create();
MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &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<Gtk::Builder> ref_builder;
Glib::RefPtr<Gtk::CssProvider> provider;
};