mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-25 02:35:22 +00:00
Add "File->Save snapshot" menu item to export the displayed screen.
Change-Id: Ia0e14a768d6ba6dadd520cd7c3961759771dab08 BUG=chromium-os:12643 TEST=none Review URL: http://codereview.chromium.org/6588139
This commit is contained in:
@@ -102,3 +102,11 @@ class BmpBlock(object):
|
|||||||
sc = self.yaml['screens'][self.current_screen]
|
sc = self.yaml['screens'][self.current_screen]
|
||||||
slist = [(x,y,self.yaml['images'][z]) for x,y,z in sc]
|
slist = [(x,y,self.yaml['images'][z]) for x,y,z in sc]
|
||||||
self.displayer.DisplayScreen(self.current_screen, slist)
|
self.displayer.DisplayScreen(self.current_screen, slist)
|
||||||
|
|
||||||
|
def Saveit(self):
|
||||||
|
"""Save current screen to file."""
|
||||||
|
if self.displayer:
|
||||||
|
if self.current_screen:
|
||||||
|
sc = self.yaml['screens'][self.current_screen]
|
||||||
|
slist = [(x,y,self.yaml['images'][z]) for x,y,z in sc]
|
||||||
|
self.displayer.SaveScreen(self.current_screen, slist)
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ class Frame(wx.Frame):
|
|||||||
m_about = menuFile.Append(wx.ID_ANY, "About...\tCtrl+A")
|
m_about = menuFile.Append(wx.ID_ANY, "About...\tCtrl+A")
|
||||||
menuFile.AppendSeparator()
|
menuFile.AppendSeparator()
|
||||||
m_reload = menuFile.Append(wx.ID_ANY, "Reload\tCtrl+R")
|
m_reload = menuFile.Append(wx.ID_ANY, "Reload\tCtrl+R")
|
||||||
|
m_snapshot = menuFile.Append(wx.ID_ANY, "Save snapshot")
|
||||||
m_quit = menuFile.Append(wx.ID_ANY, "Quit\tCtrl+Q")
|
m_quit = menuFile.Append(wx.ID_ANY, "Quit\tCtrl+Q")
|
||||||
menuBar = wx.MenuBar()
|
menuBar = wx.MenuBar()
|
||||||
menuBar.Append(menuFile, "&File")
|
menuBar.Append(menuFile, "&File")
|
||||||
@@ -22,6 +23,7 @@ class Frame(wx.Frame):
|
|||||||
self.CreateStatusBar()
|
self.CreateStatusBar()
|
||||||
self.Bind(wx.EVT_MENU, self.OnAbout, m_about)
|
self.Bind(wx.EVT_MENU, self.OnAbout, m_about)
|
||||||
self.Bind(wx.EVT_MENU, self.OnReload, m_reload)
|
self.Bind(wx.EVT_MENU, self.OnReload, m_reload)
|
||||||
|
self.Bind(wx.EVT_MENU, self.OnSaveit, m_snapshot)
|
||||||
self.Bind(wx.EVT_MENU, self.OnQuit, m_quit)
|
self.Bind(wx.EVT_MENU, self.OnQuit, m_quit)
|
||||||
self.Bind(wx.EVT_CLOSE, self.OnQuit)
|
self.Bind(wx.EVT_CLOSE, self.OnQuit)
|
||||||
|
|
||||||
@@ -78,6 +80,10 @@ class Frame(wx.Frame):
|
|||||||
self.do_update = True;
|
self.do_update = True;
|
||||||
self.UpdateControls()
|
self.UpdateControls()
|
||||||
|
|
||||||
|
def OnSaveit(self, event):
|
||||||
|
"""Tell the model object to save the view that the user sees."""
|
||||||
|
self.bmpblock.Saveit()
|
||||||
|
|
||||||
def OnSelected(self, event):
|
def OnSelected(self, event):
|
||||||
"""User may have picked one of the pulldowns."""
|
"""User may have picked one of the pulldowns."""
|
||||||
if event.IsSelection():
|
if event.IsSelection():
|
||||||
|
|||||||
@@ -37,6 +37,24 @@ class MyPanel(wx.Panel):
|
|||||||
bmp = img.ConvertToBitmap()
|
bmp = img.ConvertToBitmap()
|
||||||
dc.DrawBitmap(bmp, x, y)
|
dc.DrawBitmap(bmp, x, y)
|
||||||
|
|
||||||
|
def OnSave(self, name):
|
||||||
|
"""Draw the current image sequence into a file."""
|
||||||
|
dc = wx.MemoryDC()
|
||||||
|
done_first = False
|
||||||
|
for x, y, filename in self.imglist:
|
||||||
|
img = wx.Image(filename, wx.BITMAP_TYPE_ANY)
|
||||||
|
if (not done_first):
|
||||||
|
w,h = img.GetSize()
|
||||||
|
base = wx.EmptyBitmap(w,h)
|
||||||
|
dc.SelectObject(base)
|
||||||
|
done_first = True
|
||||||
|
bmp = img.ConvertToBitmap()
|
||||||
|
dc.DrawBitmap(bmp, x, y)
|
||||||
|
new = wx.ImageFromBitmap(base)
|
||||||
|
outfile = name + '.png'
|
||||||
|
new.SaveFile(outfile, wx.BITMAP_TYPE_PNG)
|
||||||
|
print "wrote", outfile
|
||||||
|
|
||||||
|
|
||||||
class Frame(wx.Frame):
|
class Frame(wx.Frame):
|
||||||
|
|
||||||
@@ -60,3 +78,7 @@ class Frame(wx.Frame):
|
|||||||
self.SetStatusText(name)
|
self.SetStatusText(name)
|
||||||
self.p.imglist = imglist
|
self.p.imglist = imglist
|
||||||
self.p.OnPaint()
|
self.p.OnPaint()
|
||||||
|
|
||||||
|
def SaveScreen(self, name, imglist):
|
||||||
|
self.p.imglist = imglist
|
||||||
|
self.p.OnSave(name)
|
||||||
|
|||||||
Reference in New Issue
Block a user