implement main menu popover (container)

This commit is contained in:
yggverse 2024-08-05 19:08:38 +03:00
parent 7b8b3b860c
commit 5075798b0e
5 changed files with 90 additions and 1 deletions

View File

@ -13,7 +13,8 @@ SRCS = src/main.cpp\
src/app/browser/header.cpp\
src/app/browser/header/bar.cpp\
src/app/browser/header/bar/title.cpp\
src/app/browser/header/bar/menu.cpp
src/app/browser/header/bar/menu.cpp\
src/app/browser/header/bar/menu/main.cpp
OBJS = $(SRCS:.cpp=.o)

View File

@ -6,9 +6,28 @@ namespace app::browser::header::bar
Menu::Menu(
Bar *bar
) {
// Init dependencies
this->bar = bar;
// Init GTK
this->gtk = gtk_menu_button_new();
// Init requirements
this->main = new menu::Main(
this
);
// Init main popover
gtk_menu_button_set_popover(
GTK_MENU_BUTTON(
this->gtk
),
GTK_WIDGET(
this->main->gtk
)
);
// Render
gtk_widget_show(
GTK_WIDGET(
this->gtk

View File

@ -1,20 +1,37 @@
#ifndef APP_BROWSER_HEADER_BAR_MENU_H
#define APP_BROWSER_HEADER_BAR_MENU_H
// Dependencies
#include "../bar.h"
// Requirements
#include "menu/main.h"
namespace app::browser::header
{
class Bar;
namespace bar
{
namespace menu
{
class Main;
};
class Menu
{
public:
// GTK
GtkWidget *gtk;
// Dependencies
Bar *bar;
// Requirements
menu::Main *main;
// Constructor
Menu(
Bar *bar
);

View File

@ -0,0 +1,15 @@
#include "main.h"
namespace app::browser::header::bar::menu
{
// Construct
Main::Main(
Menu *menu
) {
// Init dependencies
this->menu = menu;
// Init GTK
this->gtk = gtk_popover_new();
}
}

View File

@ -0,0 +1,37 @@
#ifndef APP_BROWSER_HEADER_BAR_MENU_MAIN_H
#define APP_BROWSER_HEADER_BAR_MENU_MAIN_H
// Dependencies
#include "../menu.h"
// Requirements
// ..
namespace app::browser::header::bar
{
class Menu;
namespace menu
{
class Main
{
public:
// GTK
GtkWidget *gtk;
// Dependencies
Menu *menu;
// Requirements
// ..
// Constructor
Main(
Menu *menu
);
};
};
};
#endif