This file is indexed.

/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 &lt;gtk/gtk.h&gt;



/* 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>