def __init__(self, logger, app, ev_quit): self.logger = logger self.app = app self.ev_quit = ev_quit self.histlimit = 5000 self._plot_w = None self.zv = ZView.ZView(logger, self) from ginga.gw import Widgets, GwHelp self.top = self.app.make_window('GView') self.top.add_callback('close', lambda w: self.quit()) vbox = Widgets.VBox() vbox.set_border_width(2) vbox.set_spacing(1) self.top.set_widget(vbox) self.top.resize(800, 600) mbar = Widgets.Menubar() vbox.add_widget(mbar, stretch=0) filemenu = mbar.add_name("File") filemenu.add_separator() item = filemenu.add_name("Quit") item.add_callback('activated', lambda *args: self.quit()) nb = Widgets.TabWidget() vbox.add_widget(nb, stretch=1) sbar = Widgets.StatusBar() vbox.add_widget(sbar, stretch=0) vbox = Widgets.VBox() vbox.set_border_width(2) vbox.set_spacing(1) vbox.add_widget(Widgets.Label("Type command here:")) self.cmd_w = Widgets.TextEntry() # TODO: this is not fetching a fixed font font = GwHelp.get_font("fixed", 12) self.cmd_w.set_font(font) vbox.add_widget(self.cmd_w, stretch=0) self.cmd_w.add_callback('activated', self.exec_cmd_cb) vbox.add_widget(Widgets.Label("Output:")) self.hist_w = Widgets.TextArea(wrap=True, editable=True) self.hist_w.set_font(font) self.hist_w.set_limit(self.histlimit) vbox.add_widget(self.hist_w, stretch=1) nb.add_widget(vbox, "Command") self.top.show()
def __init__(self, logger): self.logger = logger self.drawcolors = colors.get_colors() self.dc = get_canvas_types() from ginga.gw import Widgets, Viewers, GwHelp self.app = Widgets.Application(logger=logger) self.app.add_callback('shutdown', self.quit) self.top = self.app.make_window("Ginga example2") self.top.add_callback('close', self.closed) vbox = Widgets.VBox() vbox.set_border_width(2) vbox.set_spacing(1) fi = Viewers.CanvasView(logger=logger) fi.enable_autocuts('on') fi.set_autocut_params('zscale') fi.enable_autozoom('on') fi.set_zoom_algorithm('rate') fi.set_zoomrate(1.4) fi.show_pan_mark(True) fi.set_callback('drag-drop', self.drop_file) fi.set_callback('none-move', self.motion) fi.set_bg(0.2, 0.2, 0.2) fi.ui_setActive(True) self.fitsimage = fi bd = fi.get_bindings() bd.enable_all(True) # add a color bar fi.private_canvas.add(self.dc.ColorBar(side='bottom', offset=10)) # add little mode indicator that shows modal states in # lower left hand corner fi.private_canvas.add(self.dc.ModeIndicator(corner='ur', fontsize=14)) # little hack necessary to get correct operation of the mode indicator # in all circumstances bm = fi.get_bindmap() bm.add_callback('mode-set', lambda *args: fi.redraw(whence=3)) # canvas that we will draw on canvas = self.dc.DrawingCanvas() canvas.enable_draw(True) canvas.enable_edit(True) canvas.set_drawtype('rectangle', color='lightblue') canvas.setSurface(fi) self.canvas = canvas # add canvas to view fi.get_canvas().add(canvas) canvas.ui_setActive(True) canvas.register_for_cursor_drawing(fi) self.drawtypes = canvas.get_drawtypes() self.drawtypes.sort() fi.set_desired_size(512, 512) iw = Viewers.GingaViewerWidget(viewer=fi) vbox.add_widget(iw, stretch=1) self.readout = Widgets.Label("") vbox.add_widget(self.readout, stretch=0) hbox = Widgets.HBox() hbox.set_border_width(2) wdrawtype = Widgets.ComboBox() for name in self.drawtypes: wdrawtype.append_text(name) index = self.drawtypes.index('rectangle') wdrawtype.set_index(index) wdrawtype.add_callback('activated', lambda w, idx: self.set_drawparams()) self.wdrawtype = wdrawtype wdrawcolor = Widgets.ComboBox() for name in self.drawcolors: wdrawcolor.append_text(name) index = self.drawcolors.index('lightblue') wdrawcolor.set_index(index) wdrawcolor.add_callback('activated', lambda w, idx: self.set_drawparams()) self.wdrawcolor = wdrawcolor wfill = Widgets.CheckBox("Fill") wfill.add_callback('activated', lambda w, tf: self.set_drawparams()) self.wfill = wfill walpha = Widgets.SpinBox(dtype=float) walpha.set_limits(0.0, 1.0, incr_value=0.1) walpha.set_value(1.0) walpha.set_decimals(2) walpha.add_callback('value-changed', lambda w, val: self.set_drawparams()) self.walpha = walpha wclear = Widgets.Button("Clear Canvas") wclear.add_callback('activated', lambda w: self.clear_canvas()) wopen = Widgets.Button("Open File") wopen.add_callback('activated', lambda w: self.open_file()) wquit = Widgets.Button("Quit") wquit.add_callback('activated', lambda w: self.quit()) hbox.add_widget(Widgets.Label(''), stretch=1) for w in (wopen, wdrawtype, wdrawcolor, wfill, Widgets.Label('Alpha:'), walpha, wclear, wquit): hbox.add_widget(w, stretch=0) vbox.add_widget(hbox, stretch=0) mode = self.canvas.get_draw_mode() hbox = Widgets.HBox() btn1 = Widgets.RadioButton("Draw") btn1.set_state(mode == 'draw') btn1.add_callback('activated', lambda w, val: self.set_mode_cb('draw', val)) btn1.set_tooltip("Choose this to draw on the canvas") hbox.add_widget(btn1) btn2 = Widgets.RadioButton("Edit", group=btn1) btn2.set_state(mode == 'edit') btn2.add_callback('activated', lambda w, val: self.set_mode_cb('edit', val)) btn2.set_tooltip("Choose this to edit things on the canvas") hbox.add_widget(btn2) btn3 = Widgets.CheckBox("I'm using a trackpad") btn3.add_callback('activated', lambda w, tf: self.use_trackpad_cb(tf)) hbox.add_widget(btn3) hbox.add_widget(Widgets.Label(''), stretch=1) vbox.add_widget(hbox, stretch=0) self.top.set_widget(vbox) self.fs = None if hasattr(GwHelp, 'FileSelection'): self.fs = GwHelp.FileSelection(self.top.get_widget())
def get_icon(self, icondir, filename): iconpath = os.path.join(icondir, filename) icon = GwHelp.get_icon(iconpath) return icon
def getFont(self, fontType, pointSize): font_family = self.settings.get(fontType) return GwHelp.get_font(font_family, pointSize)
def add_dialogs(self): if hasattr(GwHelp, 'FileSelection'): self.filesel = GwHelp.FileSelection(self.w.root.get_widget())
def __init__(self, logger, settings, options): self.logger = logger self.options = options self.settings = settings colors = [ 'lightgreen', 'orange', 'cyan', 'pink', 'slateblue', 'yellow', 'maroon', 'brown' ] self.color_index = 0 cols = 3 if options.num_cols is not None: cols = options.num_cols self.settings.add_defaults(columns=cols, zones=['UTC'], colors=colors) self.colors = self.settings.get('colors', colors) # now import our items from ginga.gw import Widgets, GwHelp self.app = Widgets.Application(logger=logger) self.app.add_callback('shutdown', self.quit) self.top = self.app.make_window("Clocks") self.top.add_callback('close', self.closed) menubar = Widgets.Menubar() clockmenu = menubar.add_name('Clock') item = clockmenu.add_name("Quit") item.add_callback('activated', lambda *args: self.quit()) self.top.set_widget(menubar) vbox = Widgets.VBox() self.grid = Widgets.GridBox() self.grid.set_border_width(1) self.grid.set_spacing(2) vbox.add_widget(self.grid, stretch=1) self.top.set_widget(vbox) hbox = Widgets.HBox() self.timezone_label = Widgets.Label('TimeZone') self.county_timezone = Widgets.ComboBox() self.county_timezone.widget.setEditable(True) # make a giant list of time zones zones = [ timezone for timezones in pytz.country_timezones.values() for timezone in timezones ] zones.sort() for timezone in zones: self.county_timezone.append_text(timezone) # also let user set timezone by UTC offset self.location_label = Widgets.Label('Location') self.location = Widgets.TextEntry() self.location.set_tooltip("Type a label to denote this UTC offset") #self.location.set_length(10) self.timeoffset_label = Widgets.Label('UTC Offset(hour)') self.time_offset = Widgets.SpinBox(dtype=float) self.time_offset.set_decimals(2) self.time_offset.set_limits(-12, 12) self.time_offset.set_tooltip("Time offset from UTC") self.timezone_button = Widgets.Button('Add by Timezone') self.offset_button = Widgets.Button('Add by Offset') self.timezone_button.widget.clicked.connect( self.more_clock_by_timezone) self.offset_button.widget.clicked.connect(self.more_clock_by_offset) hbox.add_widget(self.timezone_label, stretch=0) hbox.add_widget(self.county_timezone, stretch=0) hbox.add_widget(self.timezone_button, stretch=0) hbox.add_widget(Widgets.Label(''), stretch=1) hbox.add_widget(self.location_label, stretch=0) hbox.add_widget(self.location, stretch=0) hbox.add_widget(self.timeoffset_label, stretch=0) hbox.add_widget(self.time_offset, stretch=0) hbox.add_widget(self.offset_button, stretch=0) hbox.add_widget(Widgets.Label(''), stretch=1) self.top.set_widget(hbox) self.clocks = {} self.timer = GwHelp.Timer(1.0) self.timer.add_callback('expired', self.timer_cb) self.timer.start(1.0)
def get_font(self, font_family, point_size): #font_family = self.settings.get(font_type, 'sans') font = GwHelp.get_font(font_family, point_size) return font
def get_font(self, font_family, point_size): return GwHelp.get_font(font_family, point_size)