source: sasview/sansview/welcome_panel.py @ 20f00bed

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since 20f00bed was 3c44c66, checked in by Gervaise Alina <gervyh@…>, 14 years ago

working on guiframe

  • Property mode set to 100644
File size: 5.3 KB
Line 
1"""
2    Welcome panel for SansView
3"""
4"""
5This software was developed by the University of Tennessee as part of the
6Distributed Data Analysis of Neutron Scattering Experiments (DANSE)
7project funded by the US National Science Foundation.
8
9See the license text in license.txt
10
11copyright 2009, University of Tennessee
12"""
13
14import wx
15import wx.aui
16import wx.lib.hyperlink
17import os.path
18import os, sys
19import local_config as config
20
21#Font size width
22if sys.platform.count("win32")>0:
23    FONT_VARIANT = 0
24else:
25    FONT_VARIANT = 1 
26 
27class WelcomePanel(wx.aui.AuiNotebook):
28    """
29        Panel created like about box  as a welcome page
30        Shows product name, current version, authors, and link to the product page.
31    """
32    ## Internal nickname for the window, used by the AUI manager
33    window_name = "default"
34    ## Name to appear on the window title bar
35    window_caption = "Welcome panel"
36    ## Flag to tell the AUI manager to put this panel in the center pane
37    CENTER_PANE = True
38   
39   
40    def __init__(self,parent, *args, **kwds):
41       
42        kwds["style"] = wx.aui.AUI_NB_DEFAULT_STYLE
43       
44        wx.aui.AuiNotebook.__init__(self, parent, *args, **kwds)
45        #For sansview the parent is guiframe
46        self.parent = parent
47       
48        welcome_page = WelcomePage(self)
49        self.AddPage(page=welcome_page, caption="Welcome")
50       
51        pageClosedEvent = wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE
52        self.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.on_close_page)
53        self.Center()
54   
55    def set_manager(self, manager):
56        """
57            the manager of the panel in this case the application itself
58        """
59        self.manager = manager
60       
61    def on_close_page(self, event):
62        """
63           
64        """
65        if self.parent is not None:
66            self.parent.on_close_welcome_panel()
67        event.Veto() 
68       
69    def set_data(self, list=[]):
70        """
71        """
72        pass
73   
74   
75class WelcomePage(wx.Panel):
76    """
77        Panel created like about box  as a welcome page
78        Shows product name, current version, authors, and link to the product page.
79    """
80    ## Internal nickname for the window, used by the AUI manager
81    window_name = "default"
82    ## Name to appear on the window title bar
83    window_caption = "Welcome panel"
84    ## Flag to tell the AUI manager to put this panel in the center pane
85    CENTER_PANE = True
86   
87   
88    def __init__(self, *args, **kwds):
89
90        kwds["style"] = wx.DEFAULT_DIALOG_STYLE
91       
92        wx.Panel.__init__(self, *args, **kwds)
93       
94        image = os.path.join("images","SVwelcome.png")
95       
96        self.SetWindowVariant(variant = FONT_VARIANT)
97        self.bitmap_logo = wx.StaticBitmap(self, -1, wx.Bitmap(image))
98       
99        self.label_copyright = wx.StaticText(self, -1, config._copyright)
100        self.static_line_1 = wx.StaticLine(self, -1)
101        self.label_acknowledgement = wx.StaticText(self, -1, config._acknowledgement)
102       
103        self.hyperlink_license = wx.StaticText(self, -1, "Comments? Bugs? Requests?")
104        self.hyperlink_paper = wx.lib.hyperlink.HyperLinkCtrl(self, -1,
105                                         "Send us a ticket at:  sansdanse@gmail.com",URL=config._license)
106       
107        verwords = config.__version__.split('.')
108        version = '.'.join(verwords[:-1])
109        revision = verwords[-1]
110        self.label_title = wx.StaticText(self, -1, config.__appname__+ " "+str(config.__version__))#(version))
111        self.label_build = wx.StaticText(self, -1, "Build: "+str(config.__version__))
112     
113        sizer_main = wx.BoxSizer(wx.VERTICAL)
114        sizer_header = wx.BoxSizer(wx.HORIZONTAL)
115        sizer_build = wx.BoxSizer(wx.VERTICAL)
116       
117        sizer_header.Add(self.bitmap_logo, 0, wx.EXPAND|wx.LEFT, 5)
118       
119        sizer_build.Add(self.label_acknowledgement,0,wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
120        sizer_build.Add((5,5))
121        sizer_build.Add(self.label_title ,0,wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
122        sizer_build.Add(self.label_build,0,wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
123        sizer_build.Add( self.label_copyright,0,wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
124        sizer_build.Add((5,5))
125        sizer_build.Add( self.hyperlink_license,0,wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
126        sizer_build.Add( self.hyperlink_paper,0,wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
127       
128        sizer_main.Add(sizer_header, 0, wx.TOP|wx.EXPAND, 3)
129        sizer_main.Add(self.static_line_1, 0, wx.EXPAND, 0)
130        sizer_main.Add(sizer_build,0, wx.BOTTOM|wx.EXPAND, 3)
131       
132        self.SetAutoLayout(True)
133        self.SetSizer(sizer_main)
134        self.Fit()
135       
136    def set_data(self, list=[]):
137        """
138        """
139        pass
140
141class ViewApp(wx.App):
142    def OnInit(self):
143        self.frame = WelcomeFrame(None, -1, "Test App")   
144        self.frame.Show(True)
145        return True
146
147class WelcomeFrame(wx.Frame):
148    def __init__(self, parent, id, title):
149        wx.Frame.__init__(self, parent, id, title, size=(570, 400))
150        WelcomePanel(self)
151        self.Centre()
152        self.Show(True)
153   
154if __name__ == "__main__": 
155    app = ViewApp(0)
156    app.MainLoop()
Note: See TracBrowser for help on using the repository browser.