Add support for dock pos

This commit is contained in:
daleclack 2024-04-29 19:54:37 +08:00
parent c471dd0bda
commit 7f1d657fc2
2 changed files with 61 additions and 21 deletions

View File

@ -217,6 +217,28 @@ MyDock::MyDock(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Gl
// } // }
// } // }
// Set icon for dock
void MyDock::set_dock_icon(Gtk::Button &dock_btn, const Glib::ustring &icon_name)
{
Glib::ustring icon_name1 = icon_name;
// Set icons for icon pos
switch (dock_pos)
{
case DockPos::POS_LEFT:
icon_name1 += "_running";
dock_btn.set_image_from_icon_name(icon_name1, Gtk::ICON_SIZE_DIALOG);
break;
case DockPos::POS_BOTTOM:
icon_name1 += "_bottom";
dock_btn.set_image_from_icon_name(icon_name1, Gtk::ICON_SIZE_DIALOG);
break;
case DockPos::POS_RIGHT:
icon_name1 += "_right";
dock_btn.set_image_from_icon_name(icon_name1, Gtk::ICON_SIZE_DIALOG);
break;
}
}
// Set the style of dock widget // Set the style of dock widget
void MyDock::apply_style(Gtk::Widget &widget) void MyDock::apply_style(Gtk::Widget &widget)
{ {
@ -336,7 +358,8 @@ bool MyDock::prefs_win_closed(GdkEventAny *event)
void MyDock::btnset_clicked() void MyDock::btnset_clicked()
{ {
// Show settings window (preferences) // Show settings window (preferences)
btnset->set_image_from_icon_name("my_prefs_running", Gtk::ICON_SIZE_DIALOG); // btnset->set_image_from_icon_name("my_prefs_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btnset, "my_prefs");
finder.set_title("Preferences"); // Replace title for finder finder.set_title("Preferences"); // Replace title for finder
window_ctrl(prefs_win); window_ctrl(prefs_win);
} }
@ -344,7 +367,8 @@ void MyDock::btnset_clicked()
void MyDock::padset_clicked() void MyDock::padset_clicked()
{ {
// Function for button on launchpad // Function for button on launchpad
btnset->set_image_from_icon_name("my_prefs_running", Gtk::ICON_SIZE_DIALOG); // btnset->set_image_from_icon_name("my_prefs_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btnset, "my_prefs");
finder.set_title("Preferences"); // Replace title for finder finder.set_title("Preferences"); // Replace title for finder
window_ctrl(prefs_win, false); window_ctrl(prefs_win, false);
btnlaunch_clicked(); btnlaunch_clicked();
@ -369,14 +393,16 @@ void MyDock::draw_win_hide()
void MyDock::btndraw_clicked() void MyDock::btndraw_clicked()
{ {
btndraw->set_image_from_icon_name("drawing_app_running", Gtk::ICON_SIZE_DIALOG); // btndraw->set_image_from_icon_name("drawing_app_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btndraw, "drawing_app");
finder.set_title("Draw App"); // Replace title for finder finder.set_title("Draw App"); // Replace title for finder
window_ctrl(draw_app); window_ctrl(draw_app);
} }
void MyDock::paddraw_clicked() void MyDock::paddraw_clicked()
{ {
btndraw->set_image_from_icon_name("drawing_app_running", Gtk::ICON_SIZE_DIALOG); // btndraw->set_image_from_icon_name("drawing_app_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btndraw, "drawing_app");
finder.set_title("Draw App"); // Replace title for finder finder.set_title("Draw App"); // Replace title for finder
window_ctrl(draw_app, false); window_ctrl(draw_app, false);
btnlaunch_clicked(); btnlaunch_clicked();
@ -393,13 +419,15 @@ bool MyDock::file_win_closed(GdkEventAny *event)
void MyDock::btnfile_clicked() void MyDock::btnfile_clicked()
{ {
btnfiles->set_image_from_icon_name("file-app_running", Gtk::ICON_SIZE_DIALOG); // btnfiles->set_image_from_icon_name("file-app_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btnfiles, "file-app");
window_ctrl(file_app); window_ctrl(file_app);
} }
void MyDock::padfile_clicked() void MyDock::padfile_clicked()
{ {
btnfiles->set_image_from_icon_name("file-app_running", Gtk::ICON_SIZE_DIALOG); // btnfiles->set_image_from_icon_name("file-app_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btnfiles, "file-app");
window_ctrl(file_app, false); window_ctrl(file_app, false);
btnlaunch_clicked(); btnlaunch_clicked();
} }
@ -423,14 +451,16 @@ void MyDock::game_win_hide()
void MyDock::btngame_clicked() void MyDock::btngame_clicked()
{ {
btngame->set_image_from_icon_name("game_running", Gtk::ICON_SIZE_DIALOG); // btngame->set_image_from_icon_name("game_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btngame, "game");
finder.set_title("Guess Game"); // Replace title for finder finder.set_title("Guess Game"); // Replace title for finder
window_ctrl(*game_win); window_ctrl(*game_win);
} }
void MyDock::padgame_clicked() void MyDock::padgame_clicked()
{ {
btngame->set_image_from_icon_name("game_running", Gtk::ICON_SIZE_DIALOG); // btngame->set_image_from_icon_name("game_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btngame, "game");
finder.set_title("Guess Game"); // Replace title for finder finder.set_title("Guess Game"); // Replace title for finder
window_ctrl(*game_win, false); window_ctrl(*game_win, false);
btnlaunch_clicked(); btnlaunch_clicked();
@ -448,14 +478,16 @@ bool MyDock::game24_win_closed(GdkEventAny *event)
void MyDock::btngame24_clicked() void MyDock::btngame24_clicked()
{ {
btngame24->set_image_from_icon_name("24game_running", Gtk::ICON_SIZE_DIALOG); // btngame24->set_image_from_icon_name("24game_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btngame24, "24game");
finder.set_title("24 Game"); // Replace title for finder finder.set_title("24 Game"); // Replace title for finder
window_ctrl(*game24_win); window_ctrl(*game24_win);
} }
void MyDock::padgame24_clicked() void MyDock::padgame24_clicked()
{ {
btngame24->set_image_from_icon_name("24game_running", Gtk::ICON_SIZE_DIALOG); // btngame24->set_image_from_icon_name("24game_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btngame24, "24game");
finder.set_title("24 Game"); // Replace title for finder finder.set_title("24 Game"); // Replace title for finder
window_ctrl(*game24_win, false); window_ctrl(*game24_win, false);
btnlaunch_clicked(); btnlaunch_clicked();
@ -480,14 +512,16 @@ bool MyDock::calc_win_closed(GdkEventAny *event)
void MyDock::btncalc_clicked() void MyDock::btncalc_clicked()
{ {
btncalc->set_image_from_icon_name("calcapp_running", Gtk::ICON_SIZE_DIALOG); // btncalc->set_image_from_icon_name("calcapp_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btncalc, "calcapp");
finder.set_title("Calculator"); // Replace title for finder finder.set_title("Calculator"); // Replace title for finder
window_ctrl(*calc_win); window_ctrl(*calc_win);
} }
void MyDock::padcalc_clicked() void MyDock::padcalc_clicked()
{ {
btncalc->set_image_from_icon_name("calcapp_running", Gtk::ICON_SIZE_DIALOG); // btncalc->set_image_from_icon_name("calcapp_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btncalc, "calcapp");
finder.set_title("Calculator"); // Replace title for finder finder.set_title("Calculator"); // Replace title for finder
window_ctrl(*calc_win); window_ctrl(*calc_win);
btnlaunch_clicked(); btnlaunch_clicked();
@ -512,14 +546,16 @@ bool MyDock::image_win_closed(GdkEventAny *event)
void MyDock::btnimage_clicked() void MyDock::btnimage_clicked()
{ {
btnimage->set_image_from_icon_name("image_app_running", Gtk::ICON_SIZE_DIALOG); // btnimage->set_image_from_icon_name("image_app_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btnimage, "image_app");
finder.set_title("Image Viewer"); // Replace title for finder finder.set_title("Image Viewer"); // Replace title for finder
window_ctrl(image_win); window_ctrl(image_win);
} }
void MyDock::padimage_clicked() void MyDock::padimage_clicked()
{ {
btnimage->set_image_from_icon_name("image_app_running", Gtk::ICON_SIZE_DIALOG); // btnimage->set_image_from_icon_name("image_app_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btnimage, "image_app");
finder.set_title("Image Viewer"); // Replace title for finder finder.set_title("Image Viewer"); // Replace title for finder
window_ctrl(image_win, false); window_ctrl(image_win, false);
btnlaunch_clicked(); btnlaunch_clicked();
@ -537,14 +573,16 @@ bool MyDock::editor_win_closed(GdkEventAny *event)
void MyDock::btnedit_clicked() void MyDock::btnedit_clicked()
{ {
btnedit->set_image_from_icon_name("my_textedit_running", Gtk::ICON_SIZE_DIALOG); // btnedit->set_image_from_icon_name("my_textedit_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btnedit, "my_textedit");
finder.set_title("Text Editor"); // Replace title for finder finder.set_title("Text Editor"); // Replace title for finder
window_ctrl(editor_win); window_ctrl(editor_win);
} }
void MyDock::padedit_clicked() void MyDock::padedit_clicked()
{ {
btnedit->set_image_from_icon_name("my_textedit_running", Gtk::ICON_SIZE_DIALOG); // btnedit->set_image_from_icon_name("my_textedit_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btnedit, "my_textedit");
finder.set_title("Text Editor"); // Replace title for finder finder.set_title("Text Editor"); // Replace title for finder
window_ctrl(editor_win, false); window_ctrl(editor_win, false);
btnlaunch_clicked(); btnlaunch_clicked();
@ -562,14 +600,16 @@ bool MyDock::mine_win_closed(GdkEventAny *event)
void MyDock::btnmine_clicked() void MyDock::btnmine_clicked()
{ {
btnmine->set_image_from_icon_name("mines_app_running", Gtk::ICON_SIZE_DIALOG); // btnmine->set_image_from_icon_name("mines_app_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btnmine, "mines_app");
finder.set_title("MineSweeper"); // Replace title for finder finder.set_title("MineSweeper"); // Replace title for finder
window_ctrl(mine_win); window_ctrl(mine_win);
} }
void MyDock::padmine_clicked() void MyDock::padmine_clicked()
{ {
btnmine->set_image_from_icon_name("mines_app_running", Gtk::ICON_SIZE_DIALOG); // btnmine->set_image_from_icon_name("mines_app_running", Gtk::ICON_SIZE_DIALOG);
set_dock_icon(*btnmine, "mines_app");
finder.set_title("MineSweeoer"); // Replace title for finder finder.set_title("MineSweeoer"); // Replace title for finder
window_ctrl(mine_win, false); window_ctrl(mine_win, false);
btnlaunch_clicked(); btnlaunch_clicked();

View File

@ -50,7 +50,7 @@ private:
void padset_clicked(); void padset_clicked();
// Hooked function for icon set // Hooked function for icon set
void set_dock_icon(Gtk::Button &dock_btn, const Glib::ustring &icon_name);
// Drawing Window // Drawing Window
Drawing draw_app; Drawing draw_app;