Browse Source

update namespace model

CPP-GTK4
yggverse 5 months ago
parent
commit
47bd3b5b8b
  1. 4
      Makefile
  2. 32
      src/Yoda/Browser.cpp
  3. 20
      src/Yoda/Browser/Header.cpp
  4. 21
      src/Yoda/Browser/Header.h
  5. 43
      src/app/browser.cpp
  6. 18
      src/app/browser.h
  7. 28
      src/app/browser/header.cpp
  8. 27
      src/app/browser/header.h
  9. 2
      src/main.cpp
  10. 2
      src/main.h

4
Makefile

@ -6,8 +6,8 @@ LDFLAGS = `pkg-config --libs gtk4` @@ -6,8 +6,8 @@ LDFLAGS = `pkg-config --libs gtk4`
# Define target executable and source files
TARGET = bin/Yoda
SRCS = src/main.cpp\
src/Yoda/Browser.cpp\
src/Yoda/Browser/Header.cpp
src/app/browser.cpp\
src/app/browser/header.cpp
OBJS = $(SRCS:.cpp=.o)

32
src/Yoda/Browser.cpp

@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
#include "Browser.h"
Yoda::Browser::Browser(
GtkApplication *application
) {
this->gtk = gtk_application_window_new(
GTK_APPLICATION(
application
)
);
gtk_window_set_default_size(
GTK_WINDOW(
this->gtk
),
Browser::WIDTH,
Browser::HEIGHT
);
gtk_window_set_titlebar(
GTK_WINDOW(
this->gtk
),
(new YodaBrowser::Header())->gtk
);
gtk_widget_show(
GTK_WIDGET(
this->gtk
)
);
}

20
src/Yoda/Browser/Header.cpp

@ -1,20 +0,0 @@ @@ -1,20 +0,0 @@
#include "Header.h"
YodaBrowser::Header::Header()
{
// Init GTK
this->gtk = gtk_header_bar_new();
gtk_header_bar_set_show_title_buttons(
GTK_HEADER_BAR(
this->gtk
),
Header::SHOW_TITLE_BUTTONS
);
gtk_widget_show(
GTK_WIDGET(
this->gtk
)
);
}

21
src/Yoda/Browser/Header.h

@ -1,21 +0,0 @@ @@ -1,21 +0,0 @@
#ifndef YODA_BROWSER_HEADER_H
#define YODA_BROWSER_HEADER_H
// Dependencies
#include "../Browser.h"
namespace YodaBrowser
{
class Header
{
public:
GtkWidget *gtk;
const gboolean SHOW_TITLE_BUTTONS = true;
Header();
};
};
#endif

43
src/app/browser.cpp

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
#include "browser.h"
namespace app
{
// Construct
Browser::Browser(
GtkApplication *application
) {
// Init GTK
this->gtk = gtk_application_window_new(
GTK_APPLICATION(
application
)
);
gtk_window_set_default_size(
GTK_WINDOW(
this->gtk
),
Browser::WIDTH,
Browser::HEIGHT
);
// Init requirements
this->header = new browser::Header(
this
);
gtk_window_set_titlebar(
GTK_WINDOW(
this->gtk
),
this->header->gtk
);
// Render
gtk_widget_show(
GTK_WIDGET(
this->gtk
)
);
}
}

18
src/Yoda/Browser.h → src/app/browser.h

@ -1,23 +1,33 @@ @@ -1,23 +1,33 @@
#ifndef YODA_BROWSER_H
#define YODA_BROWSER_H
#ifndef APP_BROWSER_H
#define APP_BROWSER_H
// Dependencies
#include "../main.h"
// Requirements
#include "Browser/Header.h"
#include "browser/header.h"
namespace Yoda
namespace app
{
namespace browser
{
class Header;
}
class Browser
{
public:
// GTK
GtkWidget *gtk;
// Defaults
const guint WIDTH = 640;
const guint HEIGHT = 480;
// Requirements
browser::Header *header;
Browser(
GtkApplication *application
);

28
src/app/browser/header.cpp

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
#include "header.h"
namespace app
{
namespace browser
{
// Construct
Header::Header(
Browser *browser
) {
// Init GTK
this->gtk = gtk_header_bar_new();
gtk_header_bar_set_show_title_buttons(
GTK_HEADER_BAR(
this->gtk
),
Header::SHOW_TITLE_BUTTONS
);
gtk_widget_show(
GTK_WIDGET(
this->gtk
)
);
}
}
}

27
src/app/browser/header.h

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
#ifndef APP_BROWSER_HEADER_H
#define APP_BROWSER_HEADER_H
#include "../browser.h"
namespace app
{
class Browser;
namespace browser
{
class Header
{
public:
GtkWidget *gtk;
const gboolean SHOW_TITLE_BUTTONS = true;
Header(
Browser *browser
);
};
};
};
#endif

2
src/main.cpp

@ -4,7 +4,7 @@ void activate( @@ -4,7 +4,7 @@ void activate(
GtkApplication *application
) {
// Init default component
new Yoda::Browser(
new app::Browser(
application
);
}

2
src/main.h

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
#include <iostream>
#include <gtk/gtk.h>
#include "Yoda/Browser.h"
#include "app/browser.h"
void static activate(
GtkApplication *application

Loading…
Cancel
Save