mirror of https://github.com/daleclack/My_GtkUi
Update title bar for text editor
This commit is contained in:
parent
b81414180b
commit
cadb560664
|
@ -3,18 +3,20 @@
|
||||||
#include "../json_nlohmann/json.hpp"
|
#include "../json_nlohmann/json.hpp"
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
#include "MyTitleBar.h"
|
||||||
|
|
||||||
using json = nlohmann::json;
|
using json = nlohmann::json;
|
||||||
|
|
||||||
struct _TextEditor
|
struct _TextEditor
|
||||||
{
|
{
|
||||||
GtkApplicationWindow parent_instance;
|
GtkApplicationWindow parent_instance;
|
||||||
GtkWidget *header;
|
MyTitleBar *header;
|
||||||
GtkWidget *main_box;
|
GtkWidget *main_box;
|
||||||
GtkWidget *text_view, *scrolled_win;
|
GtkWidget *text_view, *scrolled_win;
|
||||||
GtkTextBuffer *text_buffer;
|
GtkTextBuffer *text_buffer;
|
||||||
GtkWidget *menu_btn, *popover;
|
GtkWidget *menu_btn, *popover;
|
||||||
GtkBuilder *menu_builder, *expander_builder;
|
GtkBuilder *menu_builder, *expander_builder;
|
||||||
|
|
||||||
// Input keyboard
|
// Input keyboard
|
||||||
GtkWidget *expander;
|
GtkWidget *expander;
|
||||||
GtkWidget *btns[26];
|
GtkWidget *btns[26];
|
||||||
|
@ -301,9 +303,9 @@ static void text_editor_init(TextEditor *self)
|
||||||
json_file.close();
|
json_file.close();
|
||||||
|
|
||||||
// Use headerbar for title and more info
|
// Use headerbar for title and more info
|
||||||
self->header = gtk_header_bar_new();
|
self->header = my_titlebar_new();
|
||||||
gtk_window_set_title(GTK_WINDOW(self), "Text editor");
|
gtk_window_set_title(GTK_WINDOW(self), "Text editor");
|
||||||
gtk_window_set_titlebar(GTK_WINDOW(self), self->header);
|
my_titlebar_set_window(self->header, self);
|
||||||
gtk_window_set_default_size(GTK_WINDOW(self), width, height);
|
gtk_window_set_default_size(GTK_WINDOW(self), width, height);
|
||||||
|
|
||||||
// Add Actions for menu
|
// Add Actions for menu
|
||||||
|
@ -323,8 +325,7 @@ static void text_editor_init(TextEditor *self)
|
||||||
// Add menu button
|
// Add menu button
|
||||||
self->menu_btn = gtk_menu_button_new();
|
self->menu_btn = gtk_menu_button_new();
|
||||||
gtk_menu_button_set_icon_name(GTK_MENU_BUTTON(self->menu_btn), "open-menu");
|
gtk_menu_button_set_icon_name(GTK_MENU_BUTTON(self->menu_btn), "open-menu");
|
||||||
gtk_header_bar_pack_end(GTK_HEADER_BAR(self->header), self->menu_btn);
|
my_titlebar_pack_end(self->header, self->menu_btn);
|
||||||
gtk_header_bar_set_show_title_buttons(GTK_HEADER_BAR(self->header), TRUE);
|
|
||||||
|
|
||||||
// Add a menu
|
// Add a menu
|
||||||
self->menu_builder = gtk_builder_new_from_resource("/org/gtk/daleclack/text_menu.xml");
|
self->menu_builder = gtk_builder_new_from_resource("/org/gtk/daleclack/text_menu.xml");
|
||||||
|
@ -341,7 +342,7 @@ static void text_editor_init(TextEditor *self)
|
||||||
// Add Search Button
|
// Add Search Button
|
||||||
self->btnsearch = gtk_toggle_button_new();
|
self->btnsearch = gtk_toggle_button_new();
|
||||||
gtk_button_set_icon_name(GTK_BUTTON(self->btnsearch), "find");
|
gtk_button_set_icon_name(GTK_BUTTON(self->btnsearch), "find");
|
||||||
gtk_header_bar_pack_end(GTK_HEADER_BAR(self->header), self->btnsearch);
|
my_titlebar_pack_end(self->header, self->btnsearch);
|
||||||
|
|
||||||
// Add a search bar
|
// Add a search bar
|
||||||
self->search_bar = gtk_search_bar_new();
|
self->search_bar = gtk_search_bar_new();
|
||||||
|
|
|
@ -26,6 +26,11 @@ void _my_titlebar_set_window(MyTitleBar *self, GtkWidget *window)
|
||||||
self->ctrl_window = window;
|
self->ctrl_window = window;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _my_titlebar_pack_end(MyTitleBar *self, GtkWidget *widget)
|
||||||
|
{
|
||||||
|
gtk_header_bar_pack_end(GTK_HEADER_BAR(self->header), widget);
|
||||||
|
}
|
||||||
|
|
||||||
static void my_titlebar_init(MyTitleBar *self)
|
static void my_titlebar_init(MyTitleBar *self)
|
||||||
{
|
{
|
||||||
// Create widgets
|
// Create widgets
|
||||||
|
|
|
@ -2,11 +2,16 @@
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
// For any style of pointer
|
||||||
#define my_titlebar_set_window(title_bar, window) \
|
#define my_titlebar_set_window(title_bar, window) \
|
||||||
_my_titlebar_set_window(My_TitleBar(title_bar), GTK_WIDGET(window))
|
_my_titlebar_set_window(My_TitleBar(title_bar), GTK_WIDGET(window))
|
||||||
|
#define my_titlebar_pack_end(title_bar, widget) \
|
||||||
|
_my_titlebar_pack_end(My_TitleBar(title_bar), GTK_WIDGET(widget))
|
||||||
|
|
||||||
G_DECLARE_FINAL_TYPE(MyTitleBar, my_titlebar, My, TitleBar, GObject)
|
G_DECLARE_FINAL_TYPE(MyTitleBar, my_titlebar, My, TitleBar, GObject)
|
||||||
|
|
||||||
void _my_titlebar_set_window(MyTitleBar *title_bar, GtkWidget *window);
|
void _my_titlebar_set_window(MyTitleBar *title_bar, GtkWidget *window);
|
||||||
|
|
||||||
|
void _my_titlebar_pack_end(MyTitleBar *title_bar, GtkWidget *widget);
|
||||||
|
|
||||||
MyTitleBar *my_titlebar_new();
|
MyTitleBar *my_titlebar_new();
|
Loading…
Reference in New Issue