Browse Source

draft main tab features

CPP-GTK4
yggverse 1 month ago
parent
commit
ee890b9859
  1. 3
      Makefile
  2. 6
      po/POTFILES.in
  3. 34
      src/app/browser.cpp
  4. 13
      src/app/browser.hpp
  5. 4
      src/app/browser/header/menu.cpp
  6. 4
      src/app/browser/header/tab.hpp
  7. 28
      src/app/browser/main.cpp
  8. 27
      src/app/browser/main.hpp
  9. 22
      src/app/browser/main/tab.cpp
  10. 18
      src/app/browser/main/tab.hpp
  11. 10
      src/app/browser/page.cpp

3
Makefile

@ -10,7 +10,8 @@ SRCS = src/main.cpp\ @@ -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
po/POTFILES.in

@ -6,8 +6,10 @@ src/app/browser/header/menu.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

34
src/app/browser.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
#include "browser.hpp"
#include "browser/header.hpp"
#include "browser/main.hpp"
using namespace app;
@ -7,6 +8,7 @@ Browser::Browser( @@ -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( @@ -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( @@ -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(

13
src/app/browser.hpp

@ -11,8 +11,19 @@ namespace lib @@ -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 @@ -24,6 +35,8 @@ namespace app
const lib::Database & db
);
void mainTabAppend();
void debug();
};
}

4
src/app/browser/header/menu.cpp

@ -13,8 +13,8 @@ Menu::Menu() @@ -13,8 +13,8 @@ Menu::Menu()
auto tab = Gio::Menu::create();
tab->append(
_("New tab"),
"tab.new"
_("New tab.."),
"win.tab"
);
// Build tool submenu

4
src/app/browser/header/tab.hpp

@ -2,11 +2,11 @@ @@ -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

@ -0,0 +1,28 @@ @@ -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

@ -0,0 +1,27 @@ @@ -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

@ -0,0 +1,22 @@ @@ -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")
);
};

18
src/app/browser/page.hpp → src/app/browser/main/tab.hpp

@ -1,11 +1,11 @@ @@ -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 @@ -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

10
src/app/browser/page.cpp

@ -1,10 +0,0 @@ @@ -1,10 +0,0 @@
#include "page.hpp"
using namespace app::browser;
Page::Page()
{
set_scrollable(
SCROLLABLE
);
}
Loading…
Cancel
Save