Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def show_shortcuts(self, *args):
""" Display the shortcuts window.
"""
# Use a different builder to load and be able to release the shortcuts window
shortcuts_builder = builder.Builder()
shortcuts_builder.load_ui('shortcuts')
self.shortcuts_window = shortcuts_builder.get_object('shortcuts_window')
for command, shortcut_list in self.config.items('shortcuts'):
display_shortcut = shortcuts_builder.get_object('shortcut_' + command)
if display_shortcut is not None:
display_shortcut.props.accelerator = shortcut_list
self.shortcuts_window.set_transient_for(self.p_win)
self.shortcuts_window.show_all()
self.shortcuts_window.present()
import gi
import cairo
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk, GLib, Pango
import mimetypes
from collections import defaultdict
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
from pympress import document, builder, config
from pympress.media_overlays.base import VideoOverlay
class TimingReport(builder.Builder):
#: `list` of time at which each page was reached
page_time = []
#: `int` the time at which the clock was reset
reset_time = -1
#: The :class:`~Gtk.TreeView` containing the timing data to display in the dialog.
timing_treeview = None
#: A :class:`~Gtk.Dialog` to contain the timing to show.
time_report_dialog = None
def __init__(self, parent):
super(TimingReport, self).__init__()
self.load_ui('time_report_dialog')
self.time_report_dialog.set_transient_for(parent.p_win)
self.time_report_dialog.add_button(Gtk.STOCK_CLOSE, Gtk.ResponseType.CLOSE)
self.connect_signals(self)
logger = logging.getLogger(__name__)
import os.path
import sys
import gi
import cairo
gi.require_version('Gtk', '3.0')
from gi.repository import GObject, Gtk, Gdk, GLib, GdkPixbuf
from pympress import document, surfacecache, util, pointer, scribble, config, builder, talk_time, extras, editable_label
class UI(builder.Builder):
""" Pympress GUI management.
"""
#: Content window, as a :class:`~Gtk.Window` instance.
c_win = None
#: :class:`~Gtk.AspectFrame` for the Content window.
c_frame = None
#: :class:`~Gtk.DrawingArea` for the Content window.
c_da = None
#: :class:`~Gtk.CheckMenuItem` that shows whether the c_win is fullscreen
pres_fullscreen = None
#: Presenter window, as a :class:`~Gtk.Window` instance.
p_win = None
#: :class:`~Gtk.Box` for the Presenter window.
p_central = None
#: :class:`~Gtk.AspectFrame` for the current slide in the Presenter window.
"""
from __future__ import print_function, unicode_literals
import logging
logger = logging.getLogger(__name__)
import gi
import cairo
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk
from pympress import builder, surfacecache, document, extras
class Scribbler(builder.Builder):
#: Whether we are displaying the interface to scribble on screen and the overlays containing said scribbles
scribbling_mode = False
#: `list` of scribbles to be drawn, as tuples of color :class:`~Gdk.RGBA`, width `int`, and a `list` of points.
scribble_list = []
#: Whether the current mouse movements are drawing strokes or should be ignored
scribble_drawing = False
#: :class:`~Gdk.RGBA` current color of the scribbling tool
scribble_color = Gdk.RGBA()
#: `int` current stroke width of the scribbling tool
scribble_width = 1
#: :class:`~Gtk.HBox` that is replaces normal panes when scribbling is toggled, contains buttons and scribble drawing area
scribble_overlay = None
#: :class:`~Gtk.DrawingArea` for the scribbles in the Presenter window. Actually redraws the slide.
scribble_p_da = None
#: :class:`~Gtk.EventBox` for the scribbling in the Content window, captures freehand drawing
Args:
window (:class:`~Gdk.Window`): The window for which we want to get the handle
Returns:
The handle to the win32 window
"""
# get the c gpointer of the gdk window
ctypes.pythonapi.PyCapsule_GetPointer.restype = ctypes.c_void_p
ctypes.pythonapi.PyCapsule_GetPointer.argtypes = [ctypes.py_object]
drawingarea_gpointer = ctypes.pythonapi.PyCapsule_GetPointer(window.__gpointer__, None)
# get the win32 handle
gdkdll = ctypes.CDLL('libgdk-3-0.dll')
return gdkdll.gdk_win32_window_get_handle(drawingarea_gpointer)
class VideoOverlay(builder.Builder):
""" Simple Video widget.
Args:
container (:class:`~Gtk.Overlay`): The container with the slide, at the top of which we add the movie area
show_controls (`bool`): whether to display controls on the video player
page_type (:class:`~pympress.document.PdfPage`): the part of the page to display
relative_margins (:class:`~Poppler.Rectangle`): the margins defining the position of the video in the frame.
"""
#: :class:`~Gtk.Overlay` that is the parent of the VideoOverlay widget.
parent = None
#: :class:`~Gtk.VBox` that contains all the elements to be overlayed.
media_overlay = None
#: A :class:`~Gtk.HBox` containing a toolbar with buttons and :attr:`~progress` the progress bar
toolbar = None
#: :class:`~Gtk.Scale` that is the progress bar in the controls toolbar - if we have one.
progress = None