mirror of https://github.com/daleclack/My_GtkUi
Add support for change dock position
This commit is contained in:
parent
4f2694df74
commit
69972c3078
|
@ -2,6 +2,162 @@
|
|||
<!-- Generated with glade 3.40.0 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<object class="GtkImage" id="image1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">My_GtkUI</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image10">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">audacious_whitesur</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image11">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">file-app</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image12">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_textedit</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image13">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">game</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image14">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">image_app</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image15">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_textedit</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image16">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_textedit</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image17">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">vlc_whitesur</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image18">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">vlc_whitesur</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image19">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">myrunner</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">drawing_app</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image20">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_prefs</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image21">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_trash</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image22">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">24game</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image23">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">24game</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image24">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">calcapp</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image25">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">calcapp</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image26">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">mines_app</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image27">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">mines_app</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">file-app</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">game</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_textedit</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">image_app</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image7">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_prefs</property>
|
||||
</object>
|
||||
<object class="GtkBox" id="dock_box">
|
||||
<property name="width-request">54</property>
|
||||
<property name="visible">True</property>
|
||||
|
@ -38,7 +194,7 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<object class="GtkSeparator" id="separator_2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
|
@ -49,20 +205,16 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="width-request">52</property>
|
||||
<property name="height-request">340</property>
|
||||
<object class="GtkScrolledWindow" id="icons_sw">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="hscrollbar-policy">never</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<object class="GtkBox" id="icons_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
|
@ -237,7 +389,7 @@
|
|||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<object class="GtkSeparator" id="separator_3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
|
@ -283,162 +435,6 @@
|
|||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkImage" id="image1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">My_GtkUI</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image10">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">audacious_whitesur</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image11">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">file-app</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image12">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_textedit</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image13">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">game</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image14">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">image_app</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image15">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_textedit</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image16">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_textedit</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image17">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">vlc_whitesur</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image18">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">vlc_whitesur</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image19">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">myrunner</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">drawing_app</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image20">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_prefs</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image21">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_trash</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image22">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">24game</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image23">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">24game</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image24">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">calcapp</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image25">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">calcapp</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image26">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">mines_app</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image27">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">mines_app</property>
|
||||
<property name="icon_size">6</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">file-app</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">game</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_textedit</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">image_app</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image7">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="pixel-size">48</property>
|
||||
<property name="icon-name">my_prefs</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image8">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
@ -1012,7 +1008,24 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
<object class="GtkBox" id="dock_bottom">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
|
|
|
@ -15,6 +15,8 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
ref_builder->get_widget("dock_box", dock_box);
|
||||
ref_builder->get_widget("dock_left", dock_left);
|
||||
ref_builder->get_widget("dock_right", dock_right);
|
||||
ref_builder->get_widget("dock_bottom", dock_bottom);
|
||||
ref_builder->get_widget("icons_box", icons_box);
|
||||
ref_builder->get_widget("btnlaunch", btnlaunch);
|
||||
ref_builder->get_widget("btndraw", btndraw);
|
||||
ref_builder->get_widget("btnfiles", btnfiles);
|
||||
|
@ -26,7 +28,10 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
ref_builder->get_widget("btncalc", btncalc);
|
||||
ref_builder->get_widget("btnmine", btnmine);
|
||||
ref_builder->get_widget("separator_start", separator_start);
|
||||
ref_builder->get_widget("separator_2", separator_2);
|
||||
ref_builder->get_widget("separator_3", separator_3);
|
||||
ref_builder->get_widget("separator_end", separator_end);
|
||||
ref_builder->get_widget("icons_sw", icons_sw);
|
||||
ref_builder->get_widget("launchpad_stack", launchpad_stack);
|
||||
ref_builder->get_widget("default_page", default_page);
|
||||
ref_builder->get_widget("launchpad_page", launchpad_page);
|
||||
|
@ -122,6 +127,37 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
apply_style(*separator_end);
|
||||
// apps_grid->foreach(sigc::mem_fun(*this,&MyDock::apply_style));
|
||||
|
||||
// Set dock position
|
||||
// The dock can be positioned at the left, right and the bottom of the window
|
||||
auto dock_pos = prefs_win.get_dock_pos();
|
||||
switch (dock_pos)
|
||||
{
|
||||
case DockPos::POS_LEFT:
|
||||
// Set the default size of scrolled window
|
||||
icons_sw->set_size_request(52, 340);
|
||||
icons_sw->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
|
||||
dock_left->pack_start(*dock_box);
|
||||
break;
|
||||
case DockPos::POS_RIGHT:
|
||||
// Set the default size of scrolled window
|
||||
icons_sw->set_size_request(52, 340);
|
||||
icons_sw->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
|
||||
dock_right->pack_start(*dock_box);
|
||||
break;
|
||||
case DockPos::POS_BOTTOM:
|
||||
// Change Orientation before pack
|
||||
dock_box->set_orientation(Gtk::ORIENTATION_HORIZONTAL);
|
||||
icons_box->set_orientation(Gtk::ORIENTATION_HORIZONTAL);
|
||||
// Set the default size of scrolled window
|
||||
icons_sw->set_size_request(340, 52);
|
||||
icons_sw->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_NEVER);
|
||||
// Pack dock to the position
|
||||
dock_bottom->pack_start(*dock_box);
|
||||
break;
|
||||
default:
|
||||
dock_right->pack_start(*dock_box);
|
||||
}
|
||||
|
||||
// Set Dock or panel mode
|
||||
switch (mode1)
|
||||
{
|
||||
|
@ -130,28 +166,19 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
|
|||
// std::cout << "dock mode" << std::endl;
|
||||
break;
|
||||
case DockMode::MODE_PANEL:
|
||||
dock_box->set_vexpand();
|
||||
dock_box->set_valign(Gtk::ALIGN_FILL);
|
||||
if(dock_pos == DockPos::POS_BOTTOM){
|
||||
dock_box->set_hexpand();
|
||||
dock_box->set_halign(Gtk::ALIGN_FILL);
|
||||
icons_sw->set_hexpand();
|
||||
}else{
|
||||
dock_box->set_vexpand();
|
||||
dock_box->set_valign(Gtk::ALIGN_FILL);
|
||||
icons_sw->set_vexpand();
|
||||
}
|
||||
// std::cout << "panel mode" << std::endl;
|
||||
break;
|
||||
}
|
||||
|
||||
// Set dock position
|
||||
// The dock can be positioned at the left, right and the bottom of the window
|
||||
auto dock_pos = prefs_win.get_dock_pos();
|
||||
switch (dock_pos)
|
||||
{
|
||||
case DockPos::POS_LEFT:
|
||||
dock_left->pack_start(*dock_box);
|
||||
break;
|
||||
case DockPos::POS_RIGHT:
|
||||
dock_right->pack_start(*dock_box);
|
||||
break;
|
||||
case DockPos::POS_BOTTOM:
|
||||
default:
|
||||
dock_right->pack_start(*dock_box);
|
||||
}
|
||||
|
||||
show_all_children();
|
||||
}
|
||||
|
||||
|
|
|
@ -24,10 +24,11 @@ public:
|
|||
|
||||
private:
|
||||
// Child widgets
|
||||
Gtk::Box *finder_box, *dock_box, *dock_left, *dock_right;
|
||||
Gtk::Box *finder_box, *dock_box, *dock_left, *dock_right, *dock_bottom, *icons_box;
|
||||
Gtk::Button *btnlaunch, *btndraw, *btnfiles, *btncalc,
|
||||
*btngame, *btnedit, *btnimage, *btnset, *btngame24, *btnmine;
|
||||
Gtk::Separator *separator_start, *separator_end;
|
||||
Gtk::Separator *separator_start, *separator_2, *separator_3, *separator_end;
|
||||
Gtk::ScrolledWindow *icons_sw;
|
||||
|
||||
// Finder
|
||||
MyFinder finder;
|
||||
|
|
Loading…
Reference in New Issue