mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-03-13 06:01:21 +00:00
update menu build
This commit is contained in:
parent
8a65c7aed9
commit
f23a54c58a
@ -4,6 +4,8 @@ src/app/browser/header/main.cpp
|
||||
src/app/browser/header/main/subtitle.cpp
|
||||
src/app/browser/header/main/title.cpp
|
||||
src/app/browser/header/menu.cpp
|
||||
src/app/browser/header/menu/tab.cpp
|
||||
src/app/browser/header/menu/tools.cpp
|
||||
src/app/browser/header/tab.cpp
|
||||
src/app/browser/main.cpp
|
||||
src/app/browser/main/tab.cpp
|
||||
|
@ -22,7 +22,7 @@ Browser::Browser(
|
||||
}
|
||||
);
|
||||
|
||||
add_action(
|
||||
const auto ACTION__DEBUG = add_action(
|
||||
"debug",
|
||||
[this]
|
||||
{
|
||||
@ -38,7 +38,7 @@ Browser::Browser(
|
||||
"<Primary>i"
|
||||
);
|
||||
|
||||
add_action(
|
||||
const auto ACTION__MAIN_TAB_APPEND = add_action(
|
||||
"main_tab_append",
|
||||
[this]
|
||||
{
|
||||
@ -151,7 +151,14 @@ Browser::Browser(
|
||||
);
|
||||
|
||||
// Init components
|
||||
browserHeader = Gtk::make_managed<browser::Header>();
|
||||
browserHeader = Gtk::make_managed<browser::Header>(
|
||||
ACTION__DEBUG,
|
||||
ACTION__MAIN_TAB_APPEND,
|
||||
ACTION__MAIN_TAB_CLOSE,
|
||||
ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_BACK,
|
||||
ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_FORWARD,
|
||||
ACTION__MAIN_TAB_PAGE_NAVIGATION_UPDATE
|
||||
);
|
||||
|
||||
set_titlebar(
|
||||
* browserHeader
|
||||
|
@ -5,33 +5,44 @@
|
||||
|
||||
using namespace app::browser;
|
||||
|
||||
Header::Header()
|
||||
{
|
||||
// Init header bar
|
||||
Header::Header(
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__DEBUG,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_APPEND,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_CLOSE,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_BACK,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_FORWARD,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_UPDATE
|
||||
) {
|
||||
// Init widget
|
||||
set_show_title_buttons(
|
||||
SHOW_TITLE_BUTTONS
|
||||
);
|
||||
|
||||
// Init menu
|
||||
headerMenu = Gtk::make_managed<header::Menu>();
|
||||
|
||||
pack_start(
|
||||
* headerMenu
|
||||
// Init components
|
||||
headerMenu = Gtk::make_managed<header::Menu>(
|
||||
ACTION__DEBUG,
|
||||
ACTION__MAIN_TAB_APPEND,
|
||||
ACTION__MAIN_TAB_CLOSE,
|
||||
ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_BACK,
|
||||
ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_FORWARD,
|
||||
ACTION__MAIN_TAB_PAGE_NAVIGATION_UPDATE
|
||||
);
|
||||
|
||||
// Init tab
|
||||
pack_start(
|
||||
* headerMenu
|
||||
);
|
||||
|
||||
headerTab = Gtk::make_managed<header::Tab>();
|
||||
|
||||
pack_start(
|
||||
* headerTab
|
||||
);
|
||||
pack_start(
|
||||
* headerTab
|
||||
);
|
||||
|
||||
// Init main widget
|
||||
headerMain = Gtk::make_managed<header::Main>();
|
||||
|
||||
set_title_widget(
|
||||
* headerMain
|
||||
);
|
||||
set_title_widget(
|
||||
* headerMain
|
||||
);
|
||||
}
|
||||
|
||||
void Header::refresh(
|
||||
|
@ -1,6 +1,8 @@
|
||||
#ifndef APP_BROWSER_HEADER_HPP
|
||||
#define APP_BROWSER_HEADER_HPP
|
||||
|
||||
#include <giomm/simpleaction.h>
|
||||
#include <glibmm/refptr.h>
|
||||
#include <glibmm/ustring.h>
|
||||
#include <gtkmm/headerbar.h>
|
||||
#include <gtkmm/object.h>
|
||||
@ -26,7 +28,14 @@ namespace app::browser
|
||||
|
||||
public:
|
||||
|
||||
Header();
|
||||
Header(
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__DEBUG,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_APPEND,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_CLOSE,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_BACK,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_FORWARD,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_UPDATE
|
||||
);
|
||||
|
||||
void refresh(
|
||||
const Glib::ustring & TITLE,
|
||||
|
@ -2,158 +2,144 @@
|
||||
|
||||
using namespace app::browser::header;
|
||||
|
||||
Menu::Menu()
|
||||
{
|
||||
Menu::Menu(
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__DEBUG,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_APPEND,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_CLOSE,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_BACK,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_FORWARD,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_UPDATE
|
||||
) {
|
||||
// Init widget
|
||||
set_tooltip_text(
|
||||
_("Menu")
|
||||
);
|
||||
|
||||
set_menu_model(
|
||||
main(
|
||||
main_tab(
|
||||
main_tab_page(
|
||||
main_tab_page_navigation(
|
||||
main_tab_page_navigation_history()
|
||||
// Init components @TODO make builder
|
||||
const auto MENU__MAIN = Gio::Menu::create();
|
||||
|
||||
const auto MENU__MAIN_TAB = Gio::Menu::create();
|
||||
|
||||
MENU__MAIN_TAB->append(
|
||||
_("New.."),
|
||||
get_action_detailed_name(
|
||||
ACTION__MAIN_TAB_APPEND
|
||||
)
|
||||
);
|
||||
|
||||
const auto MENU__MAIN_TAB_PAGE = Gio::Menu::create();
|
||||
|
||||
const auto MENU__MAIN_TAB_PAGE_NAVIGATION = Gio::Menu::create();
|
||||
|
||||
const auto MENU__MAIN_TAB_PAGE_NAVIGATION_HISTORY = Gio::Menu::create();
|
||||
|
||||
MENU__MAIN_TAB_PAGE_NAVIGATION_HISTORY->append(
|
||||
_("Back"),
|
||||
get_action_detailed_name(
|
||||
ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_BACK
|
||||
)
|
||||
);
|
||||
|
||||
MENU__MAIN_TAB_PAGE_NAVIGATION_HISTORY->append(
|
||||
_("Forward"),
|
||||
get_action_detailed_name(
|
||||
ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_FORWARD
|
||||
)
|
||||
);
|
||||
|
||||
MENU__MAIN_TAB_PAGE_NAVIGATION->append_submenu(
|
||||
_("History"),
|
||||
MENU__MAIN_TAB_PAGE_NAVIGATION_HISTORY
|
||||
);
|
||||
|
||||
MENU__MAIN_TAB_PAGE_NAVIGATION->append(
|
||||
_("Update"),
|
||||
get_action_detailed_name(
|
||||
ACTION__MAIN_TAB_PAGE_NAVIGATION_UPDATE
|
||||
)
|
||||
);
|
||||
|
||||
MENU__MAIN_TAB_PAGE->append_submenu(
|
||||
_("Navigation"),
|
||||
MENU__MAIN_TAB_PAGE_NAVIGATION
|
||||
);
|
||||
|
||||
MENU__MAIN_TAB->append_submenu(
|
||||
_("Page"),
|
||||
MENU__MAIN_TAB_PAGE
|
||||
);
|
||||
|
||||
const auto MENU__MAIN_TAB_CLOSE = Gio::Menu::create();
|
||||
|
||||
MENU__MAIN_TAB_CLOSE->append(
|
||||
_("Active tab"),
|
||||
get_action_detailed_name(
|
||||
ACTION__MAIN_TAB_CLOSE
|
||||
)
|
||||
),
|
||||
main_tab_close()
|
||||
),
|
||||
main_tools()
|
||||
)
|
||||
);
|
||||
|
||||
// @TODO
|
||||
/*
|
||||
MENU__MAIN_TAB_CLOSE->append(
|
||||
_("All tabs to left"),
|
||||
get_action_detailed_name(
|
||||
ACTION__MAIN_TAB_CLOSE
|
||||
)
|
||||
);
|
||||
|
||||
MENU__MAIN_TAB_CLOSE->append(
|
||||
_("All tabs to right"),
|
||||
get_action_detailed_name(
|
||||
ACTION__MAIN_TAB_CLOSE
|
||||
)
|
||||
);
|
||||
|
||||
MENU__MAIN_TAB_CLOSE->append(
|
||||
_("All tabs"),
|
||||
get_action_detailed_name(
|
||||
ACTION__MAIN_TAB_CLOSE
|
||||
)
|
||||
);
|
||||
*/
|
||||
|
||||
MENU__MAIN_TAB->append_submenu(
|
||||
_("Close"),
|
||||
MENU__MAIN_TAB_CLOSE
|
||||
);
|
||||
|
||||
MENU__MAIN->append_submenu(
|
||||
_("Tab"),
|
||||
MENU__MAIN_TAB
|
||||
);
|
||||
|
||||
const auto MENU__MAIN_TOOLS = Gio::Menu::create();
|
||||
|
||||
MENU__MAIN_TOOLS->append(
|
||||
_("Debug"),
|
||||
get_action_detailed_name(
|
||||
ACTION__DEBUG
|
||||
)
|
||||
);
|
||||
|
||||
MENU__MAIN->append_submenu(
|
||||
_("Tools"),
|
||||
MENU__MAIN_TOOLS
|
||||
);
|
||||
|
||||
MENU__MAIN->append(
|
||||
_("Quit"),
|
||||
"app.quit" // @TODO
|
||||
);
|
||||
|
||||
set_menu_model(
|
||||
MENU__MAIN
|
||||
);
|
||||
}
|
||||
|
||||
Glib::RefPtr<Gio::Menu> Menu::main(
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TAB,
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TOOLS
|
||||
Glib::ustring Menu::get_action_detailed_name(
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION
|
||||
) {
|
||||
auto menu = Gio::Menu::create();
|
||||
|
||||
menu->append_submenu(
|
||||
_("Tab"),
|
||||
MAIN_TAB
|
||||
return Glib::ustring::sprintf(
|
||||
"win.%s", ACTION->get_name()
|
||||
);
|
||||
|
||||
menu->append_submenu(
|
||||
_("Tools"),
|
||||
MAIN_TOOLS
|
||||
);
|
||||
|
||||
menu->append(
|
||||
_("Quit"),
|
||||
"app.quit"
|
||||
);
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
Glib::RefPtr<Gio::Menu> Menu::main_tab(
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TAB_PAGE,
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TAB_CLOSE
|
||||
) {
|
||||
auto menu = Gio::Menu::create();
|
||||
|
||||
menu->append(
|
||||
_("New.."),
|
||||
"win.main_tab_append"
|
||||
);
|
||||
|
||||
menu->append_submenu(
|
||||
_("Page"),
|
||||
MAIN_TAB_PAGE
|
||||
);
|
||||
|
||||
menu->append_submenu(
|
||||
_("Close"),
|
||||
MAIN_TAB_CLOSE
|
||||
);
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
Glib::RefPtr<Gio::Menu> Menu::main_tab_page(
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TAB_PAGE_NAVIGATION
|
||||
) {
|
||||
auto menu = Gio::Menu::create();
|
||||
|
||||
menu->append_submenu(
|
||||
_("Navigation"),
|
||||
MAIN_TAB_PAGE_NAVIGATION
|
||||
);
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
Glib::RefPtr<Gio::Menu> Menu::main_tab_page_navigation(
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TAB_PAGE_NAVIGATION_HISTORY
|
||||
) {
|
||||
auto menu = Gio::Menu::create();
|
||||
|
||||
menu->append_submenu(
|
||||
_("History"),
|
||||
MAIN_TAB_PAGE_NAVIGATION_HISTORY
|
||||
);
|
||||
|
||||
menu->append(
|
||||
_("Update"),
|
||||
"win.main_tab_page_navigation_update"
|
||||
);
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
Glib::RefPtr<Gio::Menu> Menu::main_tab_page_navigation_history()
|
||||
{
|
||||
auto menu = Gio::Menu::create();
|
||||
|
||||
menu->append(
|
||||
_("Back"),
|
||||
"win.main_tab_page_navigation_history_back"
|
||||
);
|
||||
|
||||
menu->append(
|
||||
_("Forward"),
|
||||
"win.main_tab_page_navigation_history_forward"
|
||||
);
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
Glib::RefPtr<Gio::Menu> Menu::main_tab_close()
|
||||
{
|
||||
auto menu = Gio::Menu::create();
|
||||
|
||||
menu->append(
|
||||
_("Active tab"),
|
||||
"win.main_tab_close"
|
||||
);
|
||||
|
||||
menu->append(
|
||||
_("All tabs to left"),
|
||||
"win.main_tab_close_left"
|
||||
);
|
||||
|
||||
menu->append(
|
||||
_("All tabs to right"),
|
||||
"win.main_tab_close_right"
|
||||
);
|
||||
|
||||
menu->append(
|
||||
_("All tabs"),
|
||||
"win.main_tab_close_all"
|
||||
);
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
Glib::RefPtr<Gio::Menu> Menu::main_tools()
|
||||
{
|
||||
auto menu = Gio::Menu::create();
|
||||
|
||||
menu->append(
|
||||
_("Debug"),
|
||||
"win.debug"
|
||||
);
|
||||
|
||||
return menu;
|
||||
}
|
@ -2,45 +2,29 @@
|
||||
#define APP_BROWSER_HEADER_MENU_HPP
|
||||
|
||||
#include <giomm/menu.h>
|
||||
#include <giomm/simpleaction.h>
|
||||
#include <glibmm/i18n.h>
|
||||
#include <glibmm/refptr.h>
|
||||
#include <gtkmm/menubutton.h>
|
||||
|
||||
namespace app::browser::header
|
||||
{
|
||||
class Menu : public Gtk::MenuButton
|
||||
{
|
||||
// 1 level
|
||||
static Glib::RefPtr<Gio::Menu> main(
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TAB,
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TOOLS
|
||||
static Glib::ustring get_action_detailed_name(
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION
|
||||
);
|
||||
|
||||
// 2 level
|
||||
static Glib::RefPtr<Gio::Menu> main_tab(
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TAB_PAGE,
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TAB_CLOSE
|
||||
);
|
||||
|
||||
// 3 level
|
||||
static Glib::RefPtr<Gio::Menu> main_tab_page(
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TAB_PAGE_NAVIGATION
|
||||
);
|
||||
|
||||
// 4 level
|
||||
static Glib::RefPtr<Gio::Menu> main_tab_page_navigation(
|
||||
const Glib::RefPtr<Gio::Menu> & MAIN_TAB_PAGE_NAVIGATION_HISTORY
|
||||
);
|
||||
|
||||
// 5 level
|
||||
static Glib::RefPtr<Gio::Menu> main_tab_page_navigation_history();
|
||||
|
||||
static Glib::RefPtr<Gio::Menu> main_tab_close();
|
||||
|
||||
static Glib::RefPtr<Gio::Menu> main_tools();
|
||||
|
||||
public:
|
||||
|
||||
Menu();
|
||||
Menu(
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__DEBUG,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_APPEND,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_CLOSE,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_BACK,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_HISTORY_FORWARD,
|
||||
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_PAGE_NAVIGATION_UPDATE
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user