From 9b6d04d554a9df9d4696f23566c2a6b6215eb66d Mon Sep 17 00:00:00 2001 From: daleclack Date: Tue, 29 Jun 2021 18:01:35 +0800 Subject: [PATCH] Add startup apps --- Gtkmm3/CMakeLists.txt | 2 +- Gtkmm3/src/LeftPanel.cc | 45 +++++++++++++++++++++++++++++++++++++++++ Gtkmm3/src/LeftPanel.hh | 8 ++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/Gtkmm3/CMakeLists.txt b/Gtkmm3/CMakeLists.txt index 903e8c6..a1d65cf 100644 --- a/Gtkmm3/CMakeLists.txt +++ b/Gtkmm3/CMakeLists.txt @@ -19,4 +19,4 @@ link_directories (${GTKMM3_LIBRARY_DIRS}) add_executable(My_GtkUI src/main.cc src/MyWin.cc src/MyStack.cc src/TopPanel.cc src/LeftPanel.cc src/winconf.cc src/resources.cc) add_definitions (${GTKMM3_CFLAGS_OTHER}) -target_link_libraries (${PROJECT_NAME} ${GTKMM3_LIBRARIES}) +target_link_libraries (${PROJECT_NAME} ${GTKMM3_LIBRARIES} -lpthread) diff --git a/Gtkmm3/src/LeftPanel.cc b/Gtkmm3/src/LeftPanel.cc index ece97bc..8f2b4c2 100644 --- a/Gtkmm3/src/LeftPanel.cc +++ b/Gtkmm3/src/LeftPanel.cc @@ -1,8 +1,24 @@ #include "LeftPanel.hh" +#include +#include LeftPanel::LeftPanel(Gtk::Window *parent1){ + //Get Widgets panel_builder=Gtk::Builder::create_from_resource("/GtkUI/leftpanel.ui"); + panel_builder->get_widget("popover1",popover); panel_builder->get_widget("btnbox",btnbox); + panel_builder->get_widget("btnaud",btnaud); + panel_builder->get_widget("btngedit",btngedit); + panel_builder->get_widget("btnvlc",btnvlc); + panel_builder->get_widget("btn_note",btnnote); + panel_builder->get_widget("btn_vlc",btnvlc_win32); + + //Link Signals + btnaud->signal_clicked().connect(sigc::mem_fun(*this,&LeftPanel::btnaud_clicked)); + btngedit->signal_clicked().connect(sigc::mem_fun(*this,&LeftPanel::btngedit_clicked)); + btnvlc->signal_clicked().connect(sigc::mem_fun(*this,&LeftPanel::btnvlc_clicked)); + btnnote->signal_clicked().connect(sigc::mem_fun(*this,&LeftPanel::btnnote_clicked)); + btnvlc_win32->signal_clicked().connect(sigc::mem_fun(*this,&LeftPanel::winvlc_clicked)); parent=parent1; } @@ -11,3 +27,32 @@ void LeftPanel::add_panel(Gtk::Overlay &overlay){ btnbox->set_valign(Gtk::ALIGN_START); overlay.add_overlay(*btnbox); } + +void LeftPanel::btnaud_clicked(){ + std::thread first(system,"audacious"); + first.detach(); + popover->popdown(); +} + +void LeftPanel::btngedit_clicked(){ + std::thread second(system,"gedit"); + second.detach(); + popover->popdown(); +} + +void LeftPanel::btnvlc_clicked(){ + std::thread third(system,"vlc"); + third.detach(); +} + +void LeftPanel::btnnote_clicked(){ + std::thread fourth(system,"start notepad"); + fourth.detach(); + popover->popdown(); +} + +void LeftPanel::winvlc_clicked(){ + std::thread fifth(system,"start ..\\vlc\\vlc.exe"); + fifth.detach(); + popover->popdown(); +} diff --git a/Gtkmm3/src/LeftPanel.hh b/Gtkmm3/src/LeftPanel.hh index c7817ef..f2dc461 100644 --- a/Gtkmm3/src/LeftPanel.hh +++ b/Gtkmm3/src/LeftPanel.hh @@ -11,6 +11,14 @@ private: Glib::RefPtr panel_builder; //Child widgets Gtk::Box *btnbox; + Gtk::Popover *popover; + Gtk::Button *btnaud,*btngedit,*btnvlc,*btnnote,*btnvlc_win32; //Parent Window Gtk::Window *parent; + //Signal Handlers for application start + void btnaud_clicked(); + void btngedit_clicked(); + void btnvlc_clicked(); + void btnnote_clicked(); + void winvlc_clicked(); };