mirror of https://github.com/daleclack/My_GtkUi
Add main stack page
This commit is contained in:
parent
230bd06029
commit
92e663df5e
|
@ -23,7 +23,7 @@ pkg_check_modules (GTK REQUIRED gtk4)
|
|||
include_directories (${GTK_INCLUDE_DIRS})
|
||||
link_directories (${GTK_LIBRARY_DIRS})
|
||||
|
||||
set(SOURCES src/core/main.cpp src/core/MainWin.cpp)
|
||||
set(SOURCES src/core/main.cpp src/core/MainWin.cpp src/core/MyStack.cpp)
|
||||
|
||||
#Compile resources with GCR_CMake
|
||||
|
||||
|
|
|
@ -3,19 +3,26 @@
|
|||
<cambalache-project version="0.10.3" target_tk="gtk-4.0">
|
||||
<ui>
|
||||
(1,None,"test.ui","test.ui",None,None,None,None,None,None),
|
||||
(2,None,None,"test2.ui",None,None,None,None,None,None)
|
||||
(2,None,None,"test2.ui",None,None,None,None,None,None),
|
||||
(3,None,None,"test3",None,None,None,None,None,None)
|
||||
</ui>
|
||||
<object>
|
||||
(1,1,"GtkWindow",None,None,None,None,None,None),
|
||||
(1,2,"GtkButton",None,1,None,None,None,None),
|
||||
(1,3,"GtkImage","image1",None,None,None,None,None),
|
||||
(2,1,"GtkWindow",None,None,None,None,None,None),
|
||||
(2,2,"GtkDropDown",None,1,None,None,None,None)
|
||||
(2,2,"GtkDropDown",None,1,None,None,None,None),
|
||||
(3,1,"GtkWindow",None,None,None,None,None,None),
|
||||
(3,2,"GtkStack","main_stack",1,None,None,None,-1),
|
||||
(3,3,"GtkBox",None,2,None,None,None,-1),
|
||||
(3,4,"GtkBox",None,2,None,None,None,-1)
|
||||
</object>
|
||||
<object_property>
|
||||
(1,2,"GtkButton","child","3",None,None,None,None,None),
|
||||
(1,3,"GtkImage","icon-name","org.gtk.Demo4",None,None,None,None,None),
|
||||
(1,3,"GtkImage","pixel-size","48",None,None,None,None,None),
|
||||
(2,2,"GtkDropDown","selected","4294967292",None,None,None,None,None)
|
||||
(2,2,"GtkDropDown","selected","4294967292",None,None,None,None,None),
|
||||
(3,2,"GtkWidget","name","page2",None,None,None,None,None),
|
||||
(3,3,"GtkWidget","name","test1",None,None,None,None,None)
|
||||
</object_property>
|
||||
</cambalache-project>
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- Created with Cambalache 0.10.3 -->
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.6"/>
|
||||
<object class="GtkWindow">
|
||||
<child>
|
||||
<object class="GtkStack" id="main_stack">
|
||||
<property name="name">page2</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="name">test1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox"/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
|
@ -6,6 +6,7 @@
|
|||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="title" translatable="1">page0</property>
|
||||
<property name="name">login_page1</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox" id="login_page">
|
||||
<property name="halign">center</property>
|
||||
|
@ -37,6 +38,7 @@
|
|||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="title" translatable="1">page1</property>
|
||||
<property name="name">main_page1</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox" id="main_page">
|
||||
<property name="orientation">vertical</property>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "MainWin.h"
|
||||
#include "MyStack.h"
|
||||
|
||||
struct _MainWin{
|
||||
GtkApplicationWindow parent_class;
|
||||
|
@ -6,7 +7,14 @@ struct _MainWin{
|
|||
|
||||
G_DEFINE_TYPE(MainWin, main_win, GTK_TYPE_APPLICATION_WINDOW)
|
||||
|
||||
static void main_win_init(MainWin *win){}
|
||||
static void main_win_init(MainWin *win){
|
||||
// Initalize window
|
||||
gtk_window_set_default_size(GTK_WINDOW(win), 1024, 576);
|
||||
gtk_window_set_icon_name(GTK_WINDOW(win), "My_GtkUI");
|
||||
|
||||
// Add Main Stack
|
||||
create_main_stack(GTK_WINDOW(win));
|
||||
}
|
||||
|
||||
static void main_win_class_init(MainWinClass *win_class){}
|
||||
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
#include "MyStack.h"
|
||||
|
||||
static void btnlogin_clicked(GtkWidget *widget, GtkStack *stack){
|
||||
gtk_stack_set_visible_child_name(stack, "main_page1");
|
||||
}
|
||||
|
||||
void create_main_stack(GtkWindow *win){
|
||||
// Create a builder
|
||||
GtkBuilder *builder = gtk_builder_new_from_resource("/org/gtk/daleclack/stack.ui");
|
||||
|
||||
// Get Widgets
|
||||
GtkWidget *stack = GTK_WIDGET(gtk_builder_get_object(builder, "main_stack"));
|
||||
GtkWidget *login_page = GTK_WIDGET(gtk_builder_get_object(builder, "login_page"));
|
||||
GtkWidget *main_page = GTK_WIDGET(gtk_builder_get_object(builder, "main_page"));
|
||||
GtkWidget *btnlogin = GTK_WIDGET(gtk_builder_get_object(builder, "btnlogin"));
|
||||
|
||||
// Link Signals
|
||||
g_signal_connect(btnlogin, "clicked", G_CALLBACK(btnlogin_clicked), stack);
|
||||
|
||||
gtk_window_set_child(win, stack);
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
void create_main_stack(GtkWindow *win);
|
Loading…
Reference in New Issue