mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 02:40:11 +00:00
Add a GtkStack example to gtk-demo
This commit is contained in:
parent
85ccb93b9f
commit
49511c7f42
@ -43,6 +43,7 @@ demos = \
|
|||||||
search_entry.c \
|
search_entry.c \
|
||||||
sizegroup.c \
|
sizegroup.c \
|
||||||
spinner.c \
|
spinner.c \
|
||||||
|
stack.c \
|
||||||
stock_browser.c \
|
stock_browser.c \
|
||||||
textview.c \
|
textview.c \
|
||||||
textscroll.c \
|
textscroll.c \
|
||||||
@ -110,6 +111,7 @@ RESOURCES= $(demos) \
|
|||||||
application.ui \
|
application.ui \
|
||||||
demo.ui \
|
demo.ui \
|
||||||
menus.ui \
|
menus.ui \
|
||||||
|
stack.ui \
|
||||||
theming.ui \
|
theming.ui \
|
||||||
alphatest.png \
|
alphatest.png \
|
||||||
apple-red.png \
|
apple-red.png \
|
||||||
|
@ -55,6 +55,9 @@
|
|||||||
<file preprocess="to-pixdata">gnome-fs-directory.png</file>
|
<file preprocess="to-pixdata">gnome-fs-directory.png</file>
|
||||||
<file preprocess="to-pixdata">gnome-fs-regular.png</file>
|
<file preprocess="to-pixdata">gnome-fs-regular.png</file>
|
||||||
</gresource>
|
</gresource>
|
||||||
|
<gresource prefix="/stack">
|
||||||
|
<file>stack.ui</file>
|
||||||
|
</gresource>
|
||||||
<gresource prefix="/images">
|
<gresource prefix="/images">
|
||||||
<file>alphatest.png</file>
|
<file>alphatest.png</file>
|
||||||
<file>floppybuddy.gif</file>
|
<file>floppybuddy.gif</file>
|
||||||
@ -110,6 +113,7 @@
|
|||||||
<file>rotated_text.c</file>
|
<file>rotated_text.c</file>
|
||||||
<file>search_entry.c</file>
|
<file>search_entry.c</file>
|
||||||
<file>sizegroup.c</file>
|
<file>sizegroup.c</file>
|
||||||
|
<file>stack.c</file>
|
||||||
<file>spinner.c</file>
|
<file>spinner.c</file>
|
||||||
<file>stock_browser.c</file>
|
<file>stock_browser.c</file>
|
||||||
<file>textview.c</file>
|
<file>textview.c</file>
|
||||||
|
48
demos/gtk-demo/stack.c
Normal file
48
demos/gtk-demo/stack.c
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/* Stack
|
||||||
|
*
|
||||||
|
* GtkStack is a container that shows a single child at a time,
|
||||||
|
* with nice transitions when the visible child changes.
|
||||||
|
*
|
||||||
|
* GtkStackSwitcher adds buttons to control which child is visible.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
static GtkBuilder *builder;
|
||||||
|
|
||||||
|
GtkWidget *
|
||||||
|
do_stack (GtkWidget *do_widget)
|
||||||
|
{
|
||||||
|
static GtkWidget *window = NULL;
|
||||||
|
GError *err = NULL;
|
||||||
|
|
||||||
|
if (!window)
|
||||||
|
{
|
||||||
|
builder = gtk_builder_new ();
|
||||||
|
gtk_builder_add_from_resource (builder, "/stack/stack.ui", &err);
|
||||||
|
if (err)
|
||||||
|
{
|
||||||
|
g_error ("ERROR: %s\n", err->message);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
gtk_builder_connect_signals (builder, NULL);
|
||||||
|
window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
|
||||||
|
gtk_window_set_screen (GTK_WINDOW (window),
|
||||||
|
gtk_widget_get_screen (do_widget));
|
||||||
|
g_signal_connect (window, "destroy",
|
||||||
|
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!gtk_widget_get_visible (window))
|
||||||
|
{
|
||||||
|
gtk_widget_show_all (window);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gtk_widget_destroy (window);
|
||||||
|
window = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return window;
|
||||||
|
}
|
82
demos/gtk-demo/stack.ui
Normal file
82
demos/gtk-demo/stack.ui
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface>
|
||||||
|
<!-- interface-requires gtk+ 3.6 -->
|
||||||
|
<object class="GtkWindow" id="window1">
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="title" translatable="yes">GtkStack</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkGrid" id="grid1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkStackSwitcher" id="switcher">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="stack">stack</property>
|
||||||
|
<property name="halign">center</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">0</property>
|
||||||
|
<property name="top_attach">0</property>
|
||||||
|
<property name="width">1</property>
|
||||||
|
<property name="height">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkStack" id="stack">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="transition-type">crossfade</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage" id="image1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="margin-top">20</property>
|
||||||
|
<property name="margin-bottom">20</property>
|
||||||
|
<property name="resource">/application/gtk-logo-48.png</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="name">page1</property>
|
||||||
|
<property name="title" translatable="yes">Page 1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="checkbutton1">
|
||||||
|
<property name="label" translatable="yes">Page 2</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">False</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="name">page2</property>
|
||||||
|
<property name="title" translatable="yes">Page 2</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSpinner" id="spinner1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="active">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="name">page3</property>
|
||||||
|
<property name="icon-name">face-laugh-symbolic</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="left_attach">0</property>
|
||||||
|
<property name="top_attach">1</property>
|
||||||
|
<property name="width">1</property>
|
||||||
|
<property name="height">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</interface>
|
Loading…
Reference in New Issue
Block a user