/usr/share/help/cs/gnome-devel-demos/statusbar.c.page is in gnome-devel-docs 3.28.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | <?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" xmlns:xi="http://www.w3.org/2001/XInclude" type="guide" style="task" id="statusbar.c" xml:lang="cs">
<info>
<title type="text">Statusbar (C)</title>
<link type="guide" xref="c#buttons"/>
<link type="seealso" xref="grid.c"/>
<link type="seealso" xref="button.c"/>
<revision version="0.1" date="2012-06-22" status="draft"/>
<credit type="author copyright">
<name>Monica Kochofar</name>
<email its:translate="no">monicakochofar@gmail.com</email>
<years>2012</years>
</credit>
<desc>Oznamuje uživateli zprávy s nižší důležitostí</desc>
</info>
<title>Statusbar</title>
<media type="image" mime="image/png" src="media/statusbar3.png"/>
<p>Tato stavová lišta je použita jako názorný příklad, jak jsou zprávy ukládány do zásobníku v pořadí poslední-dovnitř-první-ven (LIFO). Zpráva na vrcholu zásobníku je vždy ta, která je zobrazená.</p>
<code mime="text/x-csrc" style="numbered">
#include <gtk/gtk.h>
/* Funkce zpětného volání, ve které vložíme položku do stavové lišty */
static void
push_item (GtkWidget *widget,
gpointer data)
{
GtkWidget *status_bar = data;
/* Vytvoří ID kontextu, které slouží k jedinečné identifikaci
* zdroje zprávy */
guint context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (status_bar),
"Statusbar example");
/* Počitadlo je použito k udržování přehledu o množství položek,
* které uživatel vložil/vytáhl */
static int count = 1;
char hold_output[20];
/* Toto je bezpečnější, než standardní funkce sprintf(). Je zaručno, že výstup
* v tomto případě nepřesáhne 20 znaků a výsledek je uchován v proměnné
* 'hold_output' */
g_snprintf (hold_output, 20, "Item %d", count++);
gtk_statusbar_push (GTK_STATUSBAR (status_bar),
context_id,
hold_output);
}
/* Funkce zpětného volání, která je použita k vytažení položky ze stavové lišty */
static void
pop_item (GtkWidget *widget,
gpointer data )
{
GtkWidget *status_bar = data;
guint context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (status_bar),
"Statusbar example");
gtk_statusbar_pop (GTK_STATUSBAR (status_bar), context_id);
}
static void
activate (GtkApplication *app,
gpointer user_data)
{
GtkWidget *grid;
GtkWidget *window;
GtkWidget *status_bar;
GtkWidget *pop_button;
GtkWidget *push_button;
/* Vytvoří okno s názvem, šířkou okraje a výchozí velikostí */
window = gtk_application_window_new (app);
gtk_window_set_default_size (GTK_WINDOW (window), 220, 100);
gtk_window_set_title (GTK_WINDOW (window), "Statusbar Example");
gtk_container_set_border_width (GTK_CONTAINER(window), 10);
/* Vytvoří stavovou lištu, která udržuje globální proměnnou */
status_bar = gtk_statusbar_new ();
/* Vytvoří tlačítka s popisky */
push_button = gtk_button_new_with_label ("push item");
pop_button = gtk_button_new_with_label ("pop last item");
/* Vytvoří mřížku a správně do ní připojí tlačítka/stavovou lištu */
grid = gtk_grid_new ();
gtk_grid_attach (GTK_GRID (grid), push_button, 0,1,1,1);
gtk_grid_attach (GTK_GRID (grid), pop_button, 0,2,1,1);
gtk_grid_attach (GTK_GRID (grid), status_bar, 0,3,1,1);
/* Napojí signály kliknutí k odpovídajícím funkcím zpětného volání */
g_signal_connect (GTK_BUTTON (push_button), "clicked",
G_CALLBACK (push_item), status_bar);
g_signal_connect (GTK_BUTTON (pop_button), "clicked",
G_CALLBACK (pop_item), status_bar);
/* Připojí mřížku uchovávající synovské widgety do okna a zobrazí jej */
gtk_container_add (GTK_CONTAINER (window), grid);
gtk_widget_show_all (window);
}
int
main (int argc, char **argv)
{
GtkApplication *app;
int status;
app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
return status;
}
</code>
<p>V této ukázce se používá následující:</p>
<list>
<item><p><link href="http://developer.gnome.org/gtk3/3.4/GtkApplication.html">GtkApplication</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/3.4/GtkWindow.html">GtkWindow</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/stable/GtkStatusbar.html">GtkStatusBar</link></p></item>
<item><p><link href="http://developer.gnome.org/glib/stable/glib-String-Utility-Functions.html#g-snprintf">Funkce pro práci s řetězci</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/stable/GtkGrid.html">GtkGrid</link></p></item>
</list>
</page>
|