mirror of https://github.com/YGGverse/Yoda.git
yggverse
5 months ago
15 changed files with 235 additions and 145 deletions
@ -1,4 +1,12 @@ |
|||||||
src/app/browser.cpp |
src/app/browser.cpp |
||||||
src/app/browser.h |
src/app/browser.hpp |
||||||
|
src/app/browser/header.cpp |
||||||
|
src/app/browser/header.hpp |
||||||
|
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/main.cpp |
src/main.cpp |
||||||
src/main.h |
src/main.hpp |
@ -1,98 +0,0 @@ |
|||||||
#ifndef APP_BROWSER_H |
|
||||||
#define APP_BROWSER_H |
|
||||||
|
|
||||||
#include <glibmm/i18n.h> |
|
||||||
|
|
||||||
#include <gtkmm/application.h> |
|
||||||
#include <gtkmm/applicationwindow.h> |
|
||||||
#include <gtkmm/headerbar.h> |
|
||||||
#include <gtkmm/menubutton.h> |
|
||||||
#include <gtkmm/notebook.h> |
|
||||||
|
|
||||||
namespace app |
|
||||||
{ |
|
||||||
class Browser : public Gtk::ApplicationWindow |
|
||||||
{ |
|
||||||
public: |
|
||||||
|
|
||||||
const char* TITLE = _("Yoda"); |
|
||||||
const int WIDTH = 640; |
|
||||||
const int HEIGHT = 480; |
|
||||||
|
|
||||||
Browser(); |
|
||||||
|
|
||||||
class Header : public Gtk::HeaderBar |
|
||||||
{ |
|
||||||
public: |
|
||||||
|
|
||||||
const bool SHOW_TITLE_BUTTONS = true; |
|
||||||
|
|
||||||
Header(); |
|
||||||
|
|
||||||
class Menu : public Gtk::MenuButton |
|
||||||
{ |
|
||||||
public: |
|
||||||
|
|
||||||
const char* TOOLTIP = _("Menu"); |
|
||||||
|
|
||||||
Menu(); |
|
||||||
}; |
|
||||||
|
|
||||||
class Tab : public Gtk::MenuButton |
|
||||||
{ |
|
||||||
public: |
|
||||||
|
|
||||||
const char* ICON = "tab-new-symbolic"; |
|
||||||
const char* TOOLTIP = _("New tab"); |
|
||||||
|
|
||||||
Tab(); |
|
||||||
}; |
|
||||||
}; |
|
||||||
|
|
||||||
class Container : public Gtk::Notebook |
|
||||||
{ |
|
||||||
public: |
|
||||||
|
|
||||||
class Page |
|
||||||
{ |
|
||||||
public: |
|
||||||
|
|
||||||
class Navbar |
|
||||||
{ |
|
||||||
public: |
|
||||||
|
|
||||||
Navbar(); |
|
||||||
}; |
|
||||||
|
|
||||||
class Body |
|
||||||
{ |
|
||||||
public: |
|
||||||
|
|
||||||
Body(); |
|
||||||
}; |
|
||||||
|
|
||||||
Page(); |
|
||||||
|
|
||||||
private: |
|
||||||
|
|
||||||
Navbar _navbar; |
|
||||||
Body _body; |
|
||||||
}; |
|
||||||
|
|
||||||
const bool SCROLLABLE = true; |
|
||||||
const bool REORDERABLE = true; |
|
||||||
|
|
||||||
Container(); |
|
||||||
|
|
||||||
Page append( |
|
||||||
char* request, |
|
||||||
bool open = true, |
|
||||||
bool focus = false |
|
||||||
); |
|
||||||
|
|
||||||
void update(); |
|
||||||
}; |
|
||||||
}; |
|
||||||
} |
|
||||||
|
|
||||||
#endif // APP_BROWSER_H
|
|
@ -0,0 +1,21 @@ |
|||||||
|
#ifndef APP_BROWSER_H |
||||||
|
#define APP_BROWSER_H |
||||||
|
|
||||||
|
#include <glibmm/i18n.h> |
||||||
|
#include <gtkmm/applicationwindow.h> |
||||||
|
|
||||||
|
namespace app |
||||||
|
{ |
||||||
|
class Browser : public Gtk::ApplicationWindow |
||||||
|
{ |
||||||
|
public: |
||||||
|
|
||||||
|
const char * TITLE = _("Yoda"); |
||||||
|
const int WIDTH = 640; |
||||||
|
const int HEIGHT = 480; |
||||||
|
|
||||||
|
Browser(); |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
#endif // APP_BROWSER_H
|
@ -0,0 +1,20 @@ |
|||||||
|
#include "header.hpp" |
||||||
|
#include "header/menu.hpp" |
||||||
|
#include "header/tab.hpp" |
||||||
|
|
||||||
|
using namespace app::browser; |
||||||
|
|
||||||
|
Header::Header() |
||||||
|
{ |
||||||
|
set_show_title_buttons( |
||||||
|
SHOW_TITLE_BUTTONS |
||||||
|
); |
||||||
|
|
||||||
|
pack_start( |
||||||
|
* new header::Menu() |
||||||
|
); |
||||||
|
|
||||||
|
pack_start( |
||||||
|
* new header::Tab() |
||||||
|
); |
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
#ifndef APP_BROWSER_HEADER_H |
||||||
|
#define APP_BROWSER_HEADER_H |
||||||
|
|
||||||
|
#include <gtkmm/headerbar.h> |
||||||
|
|
||||||
|
namespace app::browser |
||||||
|
{ |
||||||
|
class Header : public Gtk::HeaderBar |
||||||
|
{ |
||||||
|
public: |
||||||
|
|
||||||
|
const bool SHOW_TITLE_BUTTONS = true; |
||||||
|
|
||||||
|
Header(); |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
#endif // APP_BROWSER_HEADER_H
|
@ -0,0 +1,48 @@ |
|||||||
|
#include "menu.hpp" |
||||||
|
|
||||||
|
using namespace app::browser::header; |
||||||
|
|
||||||
|
Menu::Menu() |
||||||
|
{ |
||||||
|
set_tooltip_text( |
||||||
|
TOOLTIP |
||||||
|
); |
||||||
|
|
||||||
|
// Build tab submenu
|
||||||
|
auto tab = Gio::Menu::create(); |
||||||
|
|
||||||
|
tab->append( |
||||||
|
_("New tab"), |
||||||
|
"app.tab.new" |
||||||
|
); |
||||||
|
|
||||||
|
// Build tool submenu
|
||||||
|
auto tool = Gio::Menu::create(); |
||||||
|
|
||||||
|
tool->append( |
||||||
|
_("Debug"), |
||||||
|
"app.tool.debug" |
||||||
|
); |
||||||
|
|
||||||
|
// Build main menu
|
||||||
|
auto main = Gio::Menu::create(); |
||||||
|
|
||||||
|
main->append_submenu( |
||||||
|
_("Tab"), |
||||||
|
tab |
||||||
|
); |
||||||
|
|
||||||
|
main->append_submenu( |
||||||
|
_("Tool"), |
||||||
|
tool |
||||||
|
); |
||||||
|
|
||||||
|
main->append( |
||||||
|
_("Quit"), |
||||||
|
"win.quit" |
||||||
|
); |
||||||
|
|
||||||
|
set_menu_model( |
||||||
|
main |
||||||
|
); |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
#ifndef APP_BROWSER_HEADER_MENU_H |
||||||
|
#define APP_BROWSER_HEADER_MENU_H |
||||||
|
|
||||||
|
#include <giomm/menu.h> |
||||||
|
|
||||||
|
#include <glibmm/i18n.h> |
||||||
|
#include <gtkmm/menubutton.h> |
||||||
|
|
||||||
|
namespace app::browser::header |
||||||
|
{ |
||||||
|
class Menu : public Gtk::MenuButton |
||||||
|
{ |
||||||
|
public: |
||||||
|
|
||||||
|
const char* TOOLTIP = _("Menu"); |
||||||
|
|
||||||
|
Menu(); |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
#endif // APP_BROWSER_HEADER_MENU_H
|
@ -0,0 +1,14 @@ |
|||||||
|
#include "tab.hpp" |
||||||
|
|
||||||
|
using namespace app::browser::header; |
||||||
|
|
||||||
|
Tab::Tab() |
||||||
|
{ |
||||||
|
set_tooltip_text( |
||||||
|
TOOLTIP |
||||||
|
); |
||||||
|
|
||||||
|
set_icon_name( |
||||||
|
ICON |
||||||
|
); |
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
#ifndef APP_BROWSER_HEADER_TAB_H |
||||||
|
#define APP_BROWSER_HEADER_TAB_H |
||||||
|
|
||||||
|
#include <glibmm/i18n.h> |
||||||
|
#include <gtkmm/menubutton.h> |
||||||
|
|
||||||
|
namespace app::browser::header |
||||||
|
{ |
||||||
|
class Tab : public Gtk::MenuButton |
||||||
|
{ |
||||||
|
public: |
||||||
|
|
||||||
|
const char* ICON = "tab-new-symbolic"; |
||||||
|
const char* TOOLTIP = _("New tab"); |
||||||
|
|
||||||
|
Tab(); |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
#endif // APP_BROWSER_HEADER_TAB_H
|
@ -0,0 +1,10 @@ |
|||||||
|
#include "page.hpp" |
||||||
|
|
||||||
|
using namespace app::browser; |
||||||
|
|
||||||
|
Page::Page() |
||||||
|
{ |
||||||
|
set_scrollable( |
||||||
|
SCROLLABLE |
||||||
|
); |
||||||
|
} |
@ -0,0 +1,41 @@ |
|||||||
|
#ifndef APP_BROWSER_PAGE_H |
||||||
|
#define APP_BROWSER_PAGE_H |
||||||
|
|
||||||
|
#include <gtkmm/notebook.h> |
||||||
|
|
||||||
|
namespace app::browser |
||||||
|
{ |
||||||
|
class Page : public Gtk::Notebook |
||||||
|
{ |
||||||
|
public: |
||||||
|
|
||||||
|
const bool SCROLLABLE = true; |
||||||
|
const bool REORDERABLE = true; |
||||||
|
|
||||||
|
class Navbar |
||||||
|
{ |
||||||
|
public: |
||||||
|
|
||||||
|
Navbar(); |
||||||
|
}; |
||||||
|
|
||||||
|
class Body |
||||||
|
{ |
||||||
|
public: |
||||||
|
|
||||||
|
Body(); |
||||||
|
}; |
||||||
|
|
||||||
|
Page(); |
||||||
|
|
||||||
|
void append( |
||||||
|
char* request, |
||||||
|
bool open = true, |
||||||
|
bool focus = false |
||||||
|
); |
||||||
|
|
||||||
|
void update(); |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
#endif // APP_BROWSER_PAGE_H
|
Loading…
Reference in new issue