This file is indexed.

/usr/share/help/ko/gnome-devel-demos/gmenu.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
<?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="gmenu.py" xml:lang="ko">
  <info>
    <title type="text">GMenu(Python)</title>
    <link type="guide" xref="beginner.py#menu-combo-toolbar"/>
    <link type="seealso" xref="signals-callbacks.py"/>
    <link type="next" xref="menubutton.py"/>
    <revision version="0.1" date="2012-04-28" status="draft"/>

    <credit type="author copyright">
      <name>Tiffany Antopolski</name>
      <email its:translate="no">tiffany.antopolski@gmail.com</email>
      <years>2012</years>
    </credit>

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

    <desc>GMenu의 간단한 구현체</desc>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>조성호</mal:name>
      <mal:email>shcho@gnome.org</mal:email>
      <mal:years>2017</mal:years>
    </mal:credit>
  </info>

  <title>GMenu</title>
  <media type="image" mime="image/png" src="media/gmenu.py.png"/>
  <p>간단한 GMenu 및 SimpleAction과 사용하는 GtkApplication</p>

  <links type="section"/>

  <section id="code">
    <title>예제 결과를 만드는 코드</title>
    <code mime="text/x-python" style="numbered">
    from gi.repository import Gtk
from gi.repository import Gio
import sys


class MyWindow(Gtk.ApplicationWindow):

    def __init__(self, app):
        Gtk.Window.__init__(self, title="GMenu Example", application=app)


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):
        # start the application
        Gtk.Application.do_startup(self)

        # create a menu
        menu = Gio.Menu()
        # append to the menu three options
        menu.append("New", "app.new")
        menu.append("About", "app.about")
        menu.append("Quit", "app.quit")
        # set the menu as menu of the application
        self.set_app_menu(menu)

        # create an action for the option "new" of the menu
        new_action = Gio.SimpleAction.new("new", None)
        # connect it to the callback function new_cb
        new_action.connect("activate", self.new_cb)
        # add the action to the application
        self.add_action(new_action)

        # option "about"
        about_action = Gio.SimpleAction.new("about", None)
        about_action.connect("activate", self.about_cb)
        self.add_action(about_action)

        # option "quit"
        quit_action = Gio.SimpleAction.new("quit", None)
        quit_action.connect("activate", self.quit_cb)
        self.add_action(quit_action)

    # callback function for "new"
    def new_cb(self, action, parameter):
        print("This does nothing. It is only a demonstration.")

    # callback function for "about"
    def about_cb(self, action, parameter):
        print("No AboutDialog for you. This is only a demonstration.")

    # callback function for "quit"
    def quit_cb(self, action, parameter):
        print("You have quit.")
        self.quit()

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

  <section id="methods">
    <title>GSimpleAction과 GMenu에 쓸만한 메서드</title>

    <p>33번째 줄에서 <code>new_action</code> 동작의 <code>"activate"</code> 시그널은 <code><var>widget</var>.connect(<var>signal</var>, <var>callback function</var>)</code> 콜백 함수에 연결했습니다. 더 자세한 설명은 <link xref="signals-callbacks.py"/>를 참조하십시오.</p>

    <p>GSimpleAction에 쓸만한 메서드:</p>
    <list>
      <item><p>동작 자체에 주어진 상태를 유지하거나 이에 따르지 않아 <em>상태를 반영하지 않는</em> 새 동작을 만들려면 다음 코드를 사용하십시오.</p>
      <code>
action = Gio.SimpleAction.new("name", parameter_type)</code>
      <p>여기서 <code>"name"</code>는 동작 이름,  <code>parameter_type</code>은 활성화했을 때 받는 동작을 나타내는 매개변수 형식입니다. <code>parameter_type</code> 값은 <code>None</code> 또는, 매개변수 값 형식이 <code>str</code> 일 경우 <code>GLib.VariantType.new('s')</code> 또는 <link href="http://developer.gnome.org/glib/unstable/glib-GVariantType.html">여기</link>서 설명한대로 <code>'s'</code> 문자를 그냥 쓰면 됩니다. 새 <em>상태 반영</em>(무상태 아님) 동작을 만들려면 다음 코드를 사용하십시오.</p>
      <code>
action = Gio.SimpleAction.new_stateful("name", parameter_type, initial_state)</code>
      <p>여기서 <code>initial_state</code>는 GVariant 형식으로 정의합니다. 이를 테면 <code>Glib.Variant.new_string('start')</code> 코드가 있습니다. 가능한 코드를 보려면 <link href="http://developer.gnome.org/glib/unstable/glib-GVariant.html">이 문서</link>를 참고하십시오.</p></item>
      <item><p><code>set_enabled(True)</code> 함수는 동작 활성화를 설정하며, 활성화하거나 외부 호출자가 상태를 바꾸게 하려면 반드시 동작을 활성화해야 합니다. 이 함수는 동작 구현체에서만 호출해야 합니다. 동작 사용자는 활성 플래그를 수정하지 못하게 해야합니다.</p></item>
      <item><p><code>set_state(state)</code> 함수는 주어진 값으로 'state' 속성 값을 업데이트하여 동작의 상태를 설정하며, <code>state</code> 는 GVariant 형식입니다. 이 함수는 동작 구현체에서만 호출해야합니다. 동작 사용자는 상태 전환을 요청하려면 이 함수 대신 <code>change_state(state)</code>(<code>state</code> 값은 위에서 설명) 함수를 사용해야합니다.</p></item>
    </list>

    <p>GMenu에 쓸만한 메서드:</p>
    <list>
      <item><p>항목을 메뉴의 <code>position</code> 위치에 넣으려면 <code>insert(position, label, detailed_action)</code> 함수를 활용하십시오. 여기서 <code>label</code> 은 메뉴에 나타나는 레이블이며, <code>detailed_action</code> 는 앞에 <code>app.</code>이 뭍는 동작 이름으로 이루어진 문자열이 들어갑니다. 이 부분에 대한 자세한 이야기에는 <link xref="menubar.py#win-app"/>에 있습니다.</p>
      <p>메뉴에 항목을 뒤에 붙이려면 <code>append(label, detailed_action)</code> 함수를, 앞에 붙이려면 <code>prepend(label, detailed_action)</code> 함수를 사용하십시오.</p></item>
      <item><p>메뉴에 항목을 추가하는 다른 방법으로는 <code>GMenuItem</code> 항목을 만들고 <code>insert_item(position, item)</code>, <code>append_item(item)</code>, <code>prepend_item(item)</code> 함수를 사용하는 방법입니다. 그러니까 예를 들면 다음 코드와 같습니다:</p>
      <code>
about = Gio.MenuItem.new("About", "app.about")
menu.append_item(about)</code>
      </item>
      <item><p>메뉴에 <code>insert_section(position, label, section)</code>, <code>append_section(label, section)</code>, <code>prepend_section(label, section)</code> 함수로 전체 하위 섹션을 추가할 수 있습니다. 여기서 <code>label</code>은 하위 섹션의 제목입니다.</p></item>
      <item><p>나타내고 숨길 하위 메뉴를 추가하려면 <code>insert_submenu(position, label, section)</code>, <code>append_submenu(label, section)</code>, <code>prepend_submenu(label, section)</code> 함수를 사용하십시오. 여기서 <code>label</code>은 하위 섹션의 제목입니다.</p></item>
      <item><p>메뉴 항목을 제거하려면 <code>remove(position)</code> 함수를 사용하십시오.</p></item>
      <item><p>메뉴에 레이블을 설정하려면 <code>set_label(label)</code> 함수를 사용하십시오.</p></item>
    </list>

  </section>

  <section id="references">
    <title>API 참고서</title>
    <p>이 예제는 다음 참고자료가 필요합니다:</p>
    <list>
      <item><p><link href="http://developer.gnome.org/gio/unstable/GMenu.html">GMenu</link></p></item>
      <item><p><link href="http://developer.gnome.org/gio/stable/GSimpleAction.html">GSimpleAction</link></p></item>
      <item><p><link href="http://developer.gnome.org/glib/unstable/glib-GVariantType.html">GVariantType</link></p></item>
      <item><p><link href="http://developer.gnome.org/glib/unstable/glib-GVariant.html">GVariant</link></p></item>
    </list>
  </section>
</page>