2006-12-06 10:10:52 +00:00
|
|
|
"""This file makes every other line read-only.
|
|
|
|
|
This is an example of using overlays"""
|
|
|
|
|
|
2008-10-22 22:27:47 +00:00
|
|
|
# ??? For a real production script, this script should be based
|
2019-10-31 19:48:17 +02:00
|
|
|
# on gs_utils.highlighter.py, which provides on-the-fly highlighting
|
2008-10-22 22:27:47 +00:00
|
|
|
|
2017-06-23 14:46:24 +02:00
|
|
|
from GPS import parse_xml, EditorBuffer
|
2006-12-06 10:10:52 +00:00
|
|
|
|
2024-06-05 14:41:24 +04:00
|
|
|
parse_xml(
|
|
|
|
|
"""
|
2006-12-06 10:10:52 +00:00
|
|
|
<action name="make lines readonly">
|
|
|
|
|
<shell lang="python">readonly.make_readonly()</shell>
|
|
|
|
|
</action>
|
|
|
|
|
<menu action="make lines readonly">
|
|
|
|
|
<title>/Tests/Make Lines Readonly</title>
|
|
|
|
|
</menu>
|
2024-06-05 14:41:24 +04:00
|
|
|
"""
|
|
|
|
|
)
|
2006-12-06 10:10:52 +00:00
|
|
|
|
2017-06-23 14:46:24 +02:00
|
|
|
|
2006-12-06 10:10:52 +00:00
|
|
|
def make_readonly():
|
2017-06-23 14:46:24 +02:00
|
|
|
"""Make every other line readonly in the current file"""
|
|
|
|
|
buffer = EditorBuffer.get()
|
|
|
|
|
loc = buffer.at(1, 1)
|
2006-12-06 10:10:52 +00:00
|
|
|
|
2017-06-23 14:46:24 +02:00
|
|
|
overlay = buffer.create_overlay("readonly")
|
|
|
|
|
overlay.set_property("editable", False)
|
2006-12-06 10:10:52 +00:00
|
|
|
|
2017-06-23 14:46:24 +02:00
|
|
|
while loc < buffer.end_of_buffer():
|
|
|
|
|
eol = loc.end_of_line()
|
|
|
|
|
buffer.apply_overlay(overlay, loc, eol - 1)
|
|
|
|
|
loc = loc.forward_line(2)
|