File: editor.rpy

package info (click to toggle)
renpy 6.99.12.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 56,124 kB
  • ctags: 34,563
  • sloc: python: 38,642; ansic: 4,763; makefile: 51; sh: 2
file content (56 lines) | stat: -rw-r--r-- 2,325 bytes parent folder | download | duplicates (2)
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
# This file contains code that's used to display the editor button,
# and the code that launches the editor with the given filename.

# This file can serve as an example of how to use an overlay, I guess.

init:

    # This lets us control if the editor button is shown or not.
    $ show_editor_button = False

    python hide:

        # This function is called at least one per interaction.
        def overlay():

            # If we don't want to show the editor button, do nothing.
            if not show_editor_button:
                return

            # Figure out the filename and the line number.
            import os.path
            filename, line = renpy.get_filename_line()
            filename = os.path.basename(filename)

            # The function that is called when the button is clicked.
            def clicked():

                # We want to look for the filename in config.gamedir,
                # rather then using the full filename given by
                # get_filename_line. This is because the filename is fixed
                # when the file is compiled, and so may have changed before
                # the script is run. config.gamedir is computed when Ren'Py
                # starts up, and so should always be right.
                fullfn = config.gamedir + "/" + filename

                # If the file exists, then we launch it in the editor, using
                # the undocumented launch_editor function.
                if os.path.exists(fullfn):
                    renpy.launch_editor([ fullfn ], line)

            # Display the button, modifying its look so that it doesn't
            # take up an excessive amount of space.
            ui.button(clicked=clicked,
                      xpos=798, xanchor=1.0, ypos=2, xpadding=6, xminimum=200,
                      background=RoundRect((0, 60, 120, 255), 6),
                      hover_background=RoundRect((0, 80, 160, 255), 6),
                      )

            # The button contains this text. We can't use ui.textbutton,
            # since we want to restyle things.
            ui.text("%s:%d" % (filename, line),
                    style="button_text",
                    size=14)

        # Append the overlay function to the list of overlay functions.
        config.overlay_functions.append(overlay)