mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-03-13 06:01:21 +00:00
draft main tab features
This commit is contained in:
parent
aa4b15076b
commit
ee890b9859
3
Makefile
3
Makefile
@ -10,7 +10,8 @@ SRCS = src/main.cpp\
|
||||
src/app/browser/header.cpp\
|
||||
src/app/browser/header/menu.cpp\
|
||||
src/app/browser/header/tab.cpp\
|
||||
src/app/browser/page.cpp\
|
||||
src/app/browser/main.cpp\
|
||||
src/app/browser/main/tab.cpp\
|
||||
src/lib/database.cpp\
|
||||
src/lib/database/session.cpp
|
||||
|
||||
|
@ -6,8 +6,10 @@ src/app/browser/header/menu.cpp
|
||||
src/app/browser/header/menu.hpp
|
||||
src/app/browser/header/tab.cpp
|
||||
src/app/browser/header/tab.hpp
|
||||
src/app/browser/page.cpp
|
||||
src/app/browser/page.hpp
|
||||
src/app/browser/main.cpp
|
||||
src/app/browser/main.hpp
|
||||
src/app/browser/main/tab.cpp
|
||||
src/app/browser/main/tab.hpp
|
||||
src/lib/database.cpp
|
||||
src/lib/database.hpp
|
||||
src/lib/database/session.cpp
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "browser.hpp"
|
||||
#include "browser/header.hpp"
|
||||
#include "browser/main.hpp"
|
||||
|
||||
using namespace app;
|
||||
|
||||
@ -7,6 +8,7 @@ Browser::Browser(
|
||||
const Glib::RefPtr<Gtk::Application> & app,
|
||||
const lib::Database & db
|
||||
) {
|
||||
// Init window
|
||||
set_title(
|
||||
TITLE
|
||||
);
|
||||
@ -16,8 +18,27 @@ Browser::Browser(
|
||||
HEIGHT
|
||||
);
|
||||
|
||||
// Init header widget
|
||||
header = new browser::Header();
|
||||
|
||||
set_titlebar(
|
||||
* new browser::Header()
|
||||
* header
|
||||
);
|
||||
|
||||
// Init main widget
|
||||
main = new browser::Main();
|
||||
|
||||
set_child(
|
||||
* main
|
||||
);
|
||||
|
||||
// Init actions
|
||||
add_action(
|
||||
"tab",
|
||||
sigc::mem_fun(
|
||||
* this,
|
||||
& Browser::mainTabAppend
|
||||
)
|
||||
);
|
||||
|
||||
add_action(
|
||||
@ -28,12 +49,23 @@ Browser::Browser(
|
||||
)
|
||||
);
|
||||
|
||||
// Init
|
||||
app->set_accel_for_action(
|
||||
"win.tab",
|
||||
"<Primary>t"
|
||||
);
|
||||
|
||||
app->set_accel_for_action(
|
||||
"win.debug",
|
||||
"<Primary>i"
|
||||
);
|
||||
}
|
||||
|
||||
void Browser::mainTabAppend()
|
||||
{
|
||||
main->tabAppend();
|
||||
};
|
||||
|
||||
void Browser::debug()
|
||||
{
|
||||
gtk_window_set_interactive_debugging(
|
||||
|
@ -11,8 +11,19 @@ namespace lib
|
||||
|
||||
namespace app
|
||||
{
|
||||
namespace browser
|
||||
{
|
||||
class Header;
|
||||
class Main;
|
||||
}
|
||||
|
||||
class Browser : public Gtk::ApplicationWindow
|
||||
{
|
||||
private:
|
||||
|
||||
app::browser::Header * header;
|
||||
app::browser::Main * main;
|
||||
|
||||
public:
|
||||
|
||||
const char * TITLE = _("Yoda");
|
||||
@ -24,6 +35,8 @@ namespace app
|
||||
const lib::Database & db
|
||||
);
|
||||
|
||||
void mainTabAppend();
|
||||
|
||||
void debug();
|
||||
};
|
||||
}
|
||||
|
@ -13,8 +13,8 @@ Menu::Menu()
|
||||
auto tab = Gio::Menu::create();
|
||||
|
||||
tab->append(
|
||||
_("New tab"),
|
||||
"tab.new"
|
||||
_("New tab.."),
|
||||
"win.tab"
|
||||
);
|
||||
|
||||
// Build tool submenu
|
||||
|
@ -2,11 +2,11 @@
|
||||
#define APP_BROWSER_HEADER_TAB_H
|
||||
|
||||
#include <glibmm/i18n.h>
|
||||
#include <gtkmm/menubutton.h>
|
||||
#include <gtkmm/button.h>
|
||||
|
||||
namespace app::browser::header
|
||||
{
|
||||
class Tab : public Gtk::MenuButton
|
||||
class Tab : public Gtk::Button
|
||||
{
|
||||
public:
|
||||
|
||||
|
28
src/app/browser/main.cpp
Normal file
28
src/app/browser/main.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
#include "main.hpp"
|
||||
#include "main/tab.hpp"
|
||||
|
||||
using namespace app::browser;
|
||||
|
||||
Main::Main()
|
||||
{
|
||||
// Init container
|
||||
set_homogeneous(
|
||||
true
|
||||
);
|
||||
|
||||
// Init tabs
|
||||
tab = new main::Tab();
|
||||
|
||||
append(
|
||||
* tab
|
||||
);
|
||||
}
|
||||
|
||||
void Main::tabAppend()
|
||||
{
|
||||
tab->append(
|
||||
nullptr,
|
||||
true,
|
||||
true
|
||||
);
|
||||
};
|
27
src/app/browser/main.hpp
Normal file
27
src/app/browser/main.hpp
Normal file
@ -0,0 +1,27 @@
|
||||
#ifndef APP_BROWSER_MAIN_H
|
||||
#define APP_BROWSER_MAIN_H
|
||||
|
||||
#include <gtkmm/box.h>
|
||||
|
||||
namespace app::browser
|
||||
{
|
||||
namespace main
|
||||
{
|
||||
class Tab;
|
||||
}
|
||||
|
||||
class Main : public Gtk::Box
|
||||
{
|
||||
private:
|
||||
|
||||
app::browser::main::Tab * tab;
|
||||
|
||||
public:
|
||||
|
||||
Main();
|
||||
|
||||
void tabAppend();
|
||||
};
|
||||
}
|
||||
|
||||
#endif // APP_BROWSER_MAIN_H
|
22
src/app/browser/main/tab.cpp
Normal file
22
src/app/browser/main/tab.cpp
Normal file
@ -0,0 +1,22 @@
|
||||
#include "tab.hpp"
|
||||
#include "gtkmm/label.h"
|
||||
|
||||
using namespace app::browser::main;
|
||||
|
||||
Tab::Tab()
|
||||
{
|
||||
set_scrollable(
|
||||
SCROLLABLE
|
||||
);
|
||||
}
|
||||
|
||||
void Tab::append(
|
||||
const char * request,
|
||||
bool open,
|
||||
bool focus
|
||||
) {
|
||||
append_page( // @TODO
|
||||
* new Gtk::Label("data"),
|
||||
* new Gtk::Label("tab")
|
||||
);
|
||||
};
|
@ -1,11 +1,11 @@
|
||||
#ifndef APP_BROWSER_PAGE_H
|
||||
#define APP_BROWSER_PAGE_H
|
||||
#ifndef APP_BROWSER_MAIN_TAB_H
|
||||
#define APP_BROWSER_MAIN_TAB_H
|
||||
|
||||
#include <gtkmm/notebook.h>
|
||||
|
||||
namespace app::browser
|
||||
namespace app::browser::main
|
||||
{
|
||||
class Page : public Gtk::Notebook
|
||||
class Tab : public Gtk::Notebook
|
||||
{
|
||||
public:
|
||||
|
||||
@ -26,16 +26,16 @@ namespace app::browser
|
||||
Body();
|
||||
};
|
||||
|
||||
Page();
|
||||
Tab();
|
||||
|
||||
void append(
|
||||
char* request,
|
||||
bool open = true,
|
||||
bool focus = false
|
||||
const char * request,
|
||||
bool open,
|
||||
bool focus
|
||||
);
|
||||
|
||||
void update();
|
||||
};
|
||||
}
|
||||
|
||||
#endif // APP_BROWSER_PAGE_H
|
||||
#endif // APP_BROWSER_MAIN_TAB_H
|
@ -1,10 +0,0 @@
|
||||
#include "page.hpp"
|
||||
|
||||
using namespace app::browser;
|
||||
|
||||
Page::Page()
|
||||
{
|
||||
set_scrollable(
|
||||
SCROLLABLE
|
||||
);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user