1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 """Package for the Bieri GUI interface for relax.
24
25 This GUI was announced in the post at U{https://web.archive.org/web/https://mail.gna.org/public/relax-devel/2009-11/msg00005.html}.
26 """
27
28
29 import dep_check
30
31
32 import sys
33 from time import sleep
34 if dep_check.wx_module:
35 import wx
36
37
38 from graphics import IMAGE_PATH
39 from gui.uf_objects import Uf_storage; uf_store = Uf_storage()
40 from lib.errors import RelaxError
41 import pipe_control
42 from status import Status; status = Status()
43
44
45 __all__ = ['about',
46 'base_classes',
47 'controller',
48 'derived_wx_classes',
49 'errors',
50 'filedialog',
51 'fonts',
52 'icons',
53 'interpreter',
54 'menu',
55 'message',
56 'misc',
57 'paths',
58 'pipe_editor',
59 'references',
60 'relax_gui',
61 'relax_prompt',
62 'settings',
63 'wizard']
64
65
66
68 """The relax GUI wx application."""
69
70 - def __init__(self, script_file=None, redirect=False, filename=None, useBestVisual=False, clearSigInt=True):
71 """Initialise the wx.App.
72
73 @keyword redirect: Should sys.stdout and sys.stderr be redirected? Defaults to True on Windows and Mac, False otherwise. If filename is None then output will be redirected to a window that pops up as needed. (You can control what kind of window is created for the output by resetting the class variable outputWindowClass to a class of your choosing.)
74 @type redirect: bool
75 @keyword filename: The name of a file to redirect output to, if redirect is True.
76 @type filename: file object
77 @keyword useBestVisual: Should the app try to use the best available visual provided by the system (only relevant on systems that have more than one visual.) This parameter must be used instead of calling SetUseBestVisual later on because it must be set before the underlying GUI toolkit is initialized.
78 @type useBestVisual: bool
79 @keyword clearSigInt: Should SIGINT be cleared? This allows the app to terminate upon a Ctrl-C in the console like other GUI apps will.
80 @type clearSigInt: bool
81 @keyword script_file: The path of a relax script to execute.
82 @type script_file: str
83 """
84
85
86 if script_file:
87 pipe_control.script.script(script_file)
88
89
90 super(App, self).__init__(redirect=redirect, filename=filename, useBestVisual=useBestVisual, clearSigInt=clearSigInt)
91
92
94 """Build the application, showing a splash screen first."""
95
96
97 from gui import relax_gui
98
99
100 self.gui = relax_gui.Main(parent=None, id=-1, title="")
101
102
103 self.SetTopWindow(self.gui)
104
105
106 if status.show_gui:
107
108 sleep(1)
109
110
111 self.gui.Show()
112
113
114 self.show_splash()
115
116
117 return True
118
119
121 """Build and show the splash screen."""
122
123
124 bmp = wx.Bitmap(IMAGE_PATH+'relaxGUI_splash.png', wx.BITMAP_TYPE_ANY)
125
126
127 timeout = 2500
128
129
130 screen = wx.SplashScreen(bmp, wx.SPLASH_CENTRE_ON_PARENT | wx.SPLASH_TIMEOUT, timeout, None, -1)
131