mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-01-29 20:44:25 +00:00
implement page close on tab label double click
This commit is contained in:
parent
530991a48e
commit
a7bd2ae078
@ -1,5 +1,4 @@
|
||||
#include "tab.hpp"
|
||||
#include "gtkmm/label.h"
|
||||
|
||||
using namespace app::browser::main;
|
||||
|
||||
@ -17,13 +16,36 @@ void Tab::append(
|
||||
bool open,
|
||||
bool focus
|
||||
) {
|
||||
Gtk::Label * data = new Gtk::Label("data"); // @TODO
|
||||
// Init new tab label
|
||||
Gtk::Label * name = new Gtk::Label(
|
||||
LABEL
|
||||
);
|
||||
|
||||
// Setup label controller
|
||||
auto controller = Gtk::GestureClick::create();
|
||||
|
||||
/* @TODO remove as default
|
||||
controller->set_button(
|
||||
GDK_BUTTON_PRIMARY
|
||||
);*/
|
||||
|
||||
controller->signal_pressed().connect(
|
||||
sigc::mem_fun(
|
||||
* this,
|
||||
& Tab::on_label_click
|
||||
)
|
||||
);
|
||||
|
||||
name->add_controller(
|
||||
controller
|
||||
);
|
||||
|
||||
// Init tab data container @TODO
|
||||
Gtk::Label * data = new Gtk::Label("data");
|
||||
|
||||
append_page(
|
||||
* data,
|
||||
* new Gtk::Label(
|
||||
LABEL
|
||||
)
|
||||
* name
|
||||
);
|
||||
|
||||
set_tab_reorderable(
|
||||
@ -39,4 +61,17 @@ void Tab::append(
|
||||
)
|
||||
);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
void Tab::on_label_click(
|
||||
int n,
|
||||
double x,
|
||||
double y
|
||||
) {
|
||||
if (n == 2) // double click
|
||||
{
|
||||
remove_page(
|
||||
get_current_page()
|
||||
);
|
||||
}
|
||||
}
|
@ -2,12 +2,22 @@
|
||||
#define APP_BROWSER_MAIN_TAB_H
|
||||
|
||||
#include <glibmm/i18n.h>
|
||||
#include <gtkmm/gestureclick.h>
|
||||
#include <gtkmm/label.h>
|
||||
#include <gtkmm/notebook.h>
|
||||
|
||||
namespace app::browser::main
|
||||
{
|
||||
class Tab : public Gtk::Notebook
|
||||
{
|
||||
private:
|
||||
|
||||
void on_label_click(
|
||||
int n,
|
||||
double x,
|
||||
double y
|
||||
);
|
||||
|
||||
public:
|
||||
|
||||
const bool SCROLLABLE = true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user