This file is indexed.

/usr/share/help/cs/gnome-devel-demos/tooltip.py.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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<?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="tooltip.py" xml:lang="cs">
  <info>
  <title type="text">Tooltip (Python)</title>
    <link type="guide" xref="beginner.py#misc"/>
    <link type="seealso" xref="toolbar.py"/>
    <link type="next" xref="toolbar_builder.py"/>
    <revision version="0.1" date="2012-08-20" status="draft"/>

    <credit type="author copyright">
      <name>Marta Maria Casetti</name>
      <email its:translate="no">mmcasetti@gmail.com</email>
      <years>2012</years>
    </credit>

    <desc>Přidání vysvětlivek do vašich widgetů</desc>
  </info>

  <title>Tooltip</title>
  <media type="image" mime="image/png" src="media/tooltip.png"/>
  <p>Nástrojová lišta s vysvětlivkami (s obrázky) u tlačítek.</p>
  <note><p>Tento příklad vychází z příkladu <link xref="toolbar.py">Toolbar</link>.</p></note>

  <links type="section"/>
    
  <section id="code">
  <title>Kód použitý k vygenerování tohoto příkladu</title>
    <code mime="text/x-python" style="numbered">from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import Gio
import sys


class MyWindow(Gtk.ApplicationWindow):

    def __init__(self, app):
        Gtk.Window.__init__(
            self, title="Toolbar with Tooltips Example", application=app)
        self.set_default_size(400, 200)

        grid = Gtk.Grid()

        toolbar = self.create_toolbar()
        toolbar.set_hexpand(True)
        toolbar.show()

        grid.attach(toolbar, 0, 0, 1, 1)

        self.add(grid)

        undo_action = Gio.SimpleAction.new("undo", None)
        undo_action.connect("activate", self.undo_callback)
        self.add_action(undo_action)

        fullscreen_action = Gio.SimpleAction.new("fullscreen", None)
        fullscreen_action.connect("activate", self.fullscreen_callback)
        self.add_action(fullscreen_action)

    def create_toolbar(self):
        toolbar = Gtk.Toolbar()
        toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)

        # Tlačítko pro akci "new"
        new_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW)
        # S vysvětlivkou se zadaným textem
        new_button.set_tooltip_text("Create a new file")
        new_button.set_is_important(True)
        toolbar.insert(new_button, 0)
        new_button.show()
        new_button.set_action_name("app.new")

        # Tlačítko pro akci "open"
        open_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN)
        # S vysvětlivkou se zadaným textem s použitím značkovacího jazyka Pango
        open_button.set_tooltip_markup("Open an &lt;i&gt;existing&lt;/i&gt; file")
        open_button.set_is_important(True)
        toolbar.insert(open_button, 1)
        open_button.show()
        open_button.set_action_name("app.open")

        # Tlačítko pro akci "undo"
        undo_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_UNDO)
        # S vysvětlivkou s obrázkem
        # Nastaví vlastnost "has-tooltip" na True
        undo_button.set_property("has-tooltip", True)
        # Napojí funkci zpětného volání na signál "query-tooltip"
        # od vysvětlivky
        undo_button.connect("query-tooltip", self.undo_tooltip_callback)
        undo_button.set_is_important(True)
        toolbar.insert(undo_button, 2)
        undo_button.show()
        undo_button.set_action_name("win.undo")

        # Tlačítko pro akci "fullscreen/leave fullscreen"
        self.fullscreen_button = Gtk.ToolButton.new_from_stock(
            Gtk.STOCK_FULLSCREEN)
        self.fullscreen_button.set_is_important(True)
        toolbar.insert(self.fullscreen_button, 3)
        self.fullscreen_button.set_action_name("win.fullscreen")

        return toolbar

    # Funkce zpětného volání pro vysvětlivku tlačítka "undo"
    def undo_tooltip_callback(self, widget, x, y, keyboard_mode, tooltip):
        # Nastaví text pro vysvětlivku
        tooltip.set_text("Undo your last action")
        # Nastaví ikonu pro vysvětlivku
        tooltip.set_icon_from_stock("gtk-undo", Gtk.IconSize.MENU)
        # Zobrazí vysvětlivku
        return True

    def undo_callback(self, action, parameter):
        print("You clicked \"Undo\".")

    def fullscreen_callback(self, action, parameter):
        is_fullscreen = self.get_window().get_state(
        ) &amp; Gdk.WindowState.FULLSCREEN != 0
        if not is_fullscreen:
            self.fullscreen_button.set_stock_id(Gtk.STOCK_LEAVE_FULLSCREEN)
            self.fullscreen()
        else:
            self.fullscreen_button.set_stock_id(Gtk.STOCK_FULLSCREEN)
            self.unfullscreen()


class MyApplication(Gtk.Application):

    def __init__(self):
        Gtk.Application.__init__(self)

    def do_activate(self):
        win = MyWindow(self)
        win.show_all()

    def do_startup(self):
        Gtk.Application.do_startup(self)

        new_action = Gio.SimpleAction.new("new", None)
        new_action.connect("activate", self.new_callback)
        app.add_action(new_action)

        open_action = Gio.SimpleAction.new("open", None)
        open_action.connect("activate", self.open_callback)
        app.add_action(open_action)

    def new_callback(self, action, parameter):
        print("You clicked \"New\".")

    def open_callback(self, action, parameter):
        print("You clicked \"Open\".")

app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)
</code>
  </section>

  <section id="methods">
  <title>Užitečné metody pro widget Tooltip</title>

    <p><code>set_tooltip_text(text)</code> a <code>set_tooltip_markup(text)</code> můžete použít k přidání vysvětlivky v podobě prostého textu (nebo textu se značkovacím jazykem Pango) k widgetu.</p>
    <p>Pro složitější vysvětlivky, například pro vysvětlivky s obrázky:</p>
    <steps>
      <item><p>Nastavte vlastnost <code>"has-tooltip"</code> widgetu na <code>True</code>. To přiměje GTK+ sledovat widget ohledně pohybu myši a dalších událostí, které jsou zapotřebí k určení, kdy a kde zobrazit vysvětlivku.</p></item>
      <item><p>Napojte signál <code>"query-tooltip"</code>. Tento signál bude vyslán, když by měla být vysvětlivka zobrazena. Jedním z argumentů předaných do obsluhy signálu je objekt <code>GtkTooltip</code>. Jedná se o objekt, který bude zobrazen jako vysvětlivka a může být v našem zpětném volání upravován pomocí funkcí, jako je <code>set_icon()</code>. Existují funkce pro nastavení textu se značkovacím jazykem (<code>set_markup(text)</code>), pro nastavení obrázku ze standardní ikony (<code>set_icon_from_stock(standardní_id, velikost)</code>) nebo i pro vložení vlastního widgetu (<code>set_custom(widget)</code>).</p></item>
      <item><p>Ze své obsluhy signálu <code>"query-tooltip"</code> vraťte <code>True</code>. Způsobí to zobrazení vysvětlivky. Když vrátíte <code>False</code>, tak se nezobrazí.</p></item>
    </steps>

    <p>V pravděpodobně zřídkavějších případech, kdy budete chtít větší kontrolu nad vysvětlivkou, která se má zobrazit, můžete nastavit své vlastní <code>GtkWidow</code>, které bude použito jako okno vysvětlivky. Funguje to následovně:</p>
    <steps>
      <item><p>Nastavte <code>"has-tooltip"</code> a napojte ke <code>"query-tooltip"</code> stejně jako dříve.</p></item>
      <item><p>Použijte u widgetu funkci <code>set_tooltip_window()</code> k nastavení <code>GtkWindow</code>, které jste vytvořili, jako okna vysvětlivky.</p></item>
      <item><p>Ve zpětném volání pro signál <code>"query-tooltip"</code> máte přístup ke svému oknu pomocí <code>get_tooltip_window()</code> a upravte si jej podle svých potřeb. Sémantika vracené hodnoty je úplně stejná jako v předchozím – <code>True</code> okno zobrazí, <code>False</code> jej nezobrazí.</p></item>
    </steps>

  </section>
  
  <section id="references">
  <title>Odkazy k API</title>
    <p>V této ukázce se používá následující:</p>
    <list>
      <item><p><link href="http://developer.gnome.org/gtk3/stable/GtkTooltip.html">GtkTooltip</link></p></item>
      <item><p><link href="http://developer.gnome.org/gtk3/stable/GtkToolbar.html">GtkToolbar</link></p></item>
      <item><p><link href="http://developer.gnome.org/gtk3/stable/GtkWidget.html">GtkWidget</link></p></item>
      <item><p><link href="http://developer.gnome.org/gtk3/stable/gtk3-Stock-Items.html">Standardní položky</link></p></item>
    </list>
  </section>
</page>