def __init__(self, text=''): super(CheckBox, self).__init__() self.widget = GtkHelp.CheckButton(text) self.widget.sconnect('toggled', self._cb_redirect) self.enable_callback('activated')
def _create_header_window(self, info): width, height = 300, -1 vbox = gtk.VBox() sw = gtk.ScrolledWindow() sw.set_border_width(2) sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) # create the TreeView treeview = gtk.TreeView() # create the TreeViewColumns to display the data tvcolumn = [None] * len(self.columns) for n in range(0, len(self.columns)): cell = gtk.CellRendererText() cell.set_padding(2, 0) header, kwd = self.columns[n] tvc = gtk.TreeViewColumn(header, cell) tvc.set_resizable(True) tvc.connect('clicked', self.sort_cb, n) tvc.set_clickable(True) tvcolumn[n] = tvc fn_data = self._mkcolfnN(kwd) tvcolumn[n].set_cell_data_func(cell, fn_data) treeview.append_column(tvcolumn[n]) sw.add(treeview) vbox.pack_start(sw, fill=True, expand=True) # create sort toggle cb = GtkHelp.CheckButton("Sortable") cb.sconnect('toggled', lambda w: self.set_sortable_cb(info)) hbox = gtk.HBox() hbox.pack_start(cb, fill=True, expand=False) vbox.pack_start(hbox, fill=True, expand=False) vbox.show_all() info.setvals(widget=vbox, treeview=treeview, sortw=cb) return vbox
def __init__(self, logger): self.logger = logger self.drawcolors = colors.get_colors() self.dc = get_canvas_types() root = gtk.Window(gtk.WINDOW_TOPLEVEL) root.set_title("Gtk2 CanvasView Example") root.set_border_width(2) root.connect("delete_event", lambda w, e: quit(w)) self.root = root self.select = GtkHelp.FileSelection(root) vbox = gtk.VBox(spacing=2) fi = CanvasView(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) # canvas that we will draw on canvas = self.dc.DrawingCanvas() canvas.enable_draw(True) canvas.set_drawtype('rectangle', color='lightblue') canvas.setSurface(fi) self.canvas = canvas # add canvas to view private_canvas = fi.get_canvas() private_canvas.register_for_cursor_drawing(fi) private_canvas.add(canvas) canvas.ui_setActive(True) self.drawtypes = canvas.get_drawtypes() self.drawtypes.sort() # add a color bar #fi.show_color_bar(True) # add little mode indicator that shows keyboard modal states fi.show_mode_indicator(True, corner='ur') w = fi.get_widget() w.set_size_request(512, 512) vbox.pack_start(w, fill=True, expand=True) self.readout = gtk.Label("") vbox.pack_start(self.readout, fill=True, expand=False) hbox = gtk.HBox(spacing=5) wdrawtype = GtkHelp.combo_box_new_text() index = 0 for name in self.drawtypes: wdrawtype.insert_text(index, name) index += 1 index = self.drawtypes.index('rectangle') wdrawtype.set_active(index) wdrawtype.connect('changed', self.set_drawparams) self.wdrawtype = wdrawtype wdrawcolor = GtkHelp.combo_box_new_text() index = 0 for name in self.drawcolors: wdrawcolor.insert_text(index, name) index += 1 index = self.drawcolors.index('lightblue') wdrawcolor.set_active(index) wdrawcolor.connect('changed', self.set_drawparams) self.wdrawcolor = wdrawcolor wfill = GtkHelp.CheckButton("Fill") wfill.sconnect('toggled', self.set_drawparams) self.wfill = wfill walpha = GtkHelp.SpinButton() adj = walpha.get_adjustment() adj.configure(0.0, 0.0, 1.0, 0.1, 0.1, 0) walpha.set_value(1.0) walpha.set_digits(1) walpha.sconnect('value-changed', self.set_drawparams) self.walpha = walpha wclear = gtk.Button("Clear Canvas") wclear.connect('clicked', self.clear_canvas) wopen = gtk.Button("Open File") wopen.connect('clicked', self.open_file) wquit = gtk.Button("Quit") wquit.connect('clicked', quit) for w in (wquit, wclear, walpha, gtk.Label("Alpha:"), wfill, wdrawcolor, wdrawtype, wopen): hbox.pack_end(w, fill=False, expand=False) vbox.pack_start(hbox, fill=False, expand=False) root.add(vbox)
def build_gui(self, container): # Paned container is just to provide a way to size the graph # to a reasonable size box = gtk.VPaned() container.pack_start(box, expand=True, fill=True) # Make the histogram plot vbox = gtk.VBox() self.msgFont = pango.FontDescription("Monospace 10") tw = gtk.TextView() tw.set_wrap_mode(gtk.WRAP_NONE) tw.set_left_margin(4) tw.set_right_margin(4) tw.set_editable(False) tw.modify_font(self.msgFont) self.tw = tw fr = gtk.Frame(" Pixel Values ") fr.set_shadow_type(gtk.SHADOW_ETCHED_OUT) fr.set_label_align(0.1, 0.5) fr.add(tw) fr.show_all() vbox.pack_start(fr, padding=4, fill=True, expand=False) box.pack1(vbox, resize=True, shrink=True) hbox = gtk.HBox(spacing=4) combobox = GtkHelp.combo_box_new_text() index = 0 for i in self.sizes: j = 1 + i * 2 name = "%dx%d" % (j, j) combobox.insert_text(index, name) index += 1 index = self.sizes.index(self.pixtbl_radius) combobox.set_active(index) combobox.sconnect('changed', self.set_cutout_size) self.w.tooltips.set_tip(combobox, "Select size of pixel table") hbox.pack_start(combobox, fill=False, expand=False) # control for selecting a mark combobox = GtkHelp.combo_box_new_text() for tag in self.marks: combobox.append_text(tag) if self.mark_selected == None: combobox.set_active(0) else: combobox.show_text(self.mark_selected) combobox.sconnect("changed", self.mark_select_cb) self.w.marks = combobox self.w.tooltips.set_tip(combobox, "Select a mark") hbox.pack_start(combobox, fill=False, expand=False) btn = gtk.Button("Delete") btn.connect('clicked', lambda w: self.clear_mark_cb()) self.w.tooltips.set_tip(btn, "Delete selected mark") hbox.pack_start(btn, fill=False, expand=False) btn = gtk.Button("Delete All") btn.connect('clicked', lambda w: self.clear_all()) self.w.tooltips.set_tip(btn, "Clear all marks") hbox.pack_start(btn, fill=False, expand=False) btn = GtkHelp.CheckButton("Pan to mark") btn.set_active(self.pan2mark) btn.sconnect('toggled', self.pan2mark_cb) self.w.tooltips.set_tip(btn, "Pan follows selected mark") hbox.pack_start(btn, fill=False, expand=False) vbox.pack_start(hbox, fill=True, expand=False) btns = gtk.HButtonBox() btns.set_layout(gtk.BUTTONBOX_START) btns.set_spacing(3) btns.set_child_size(15, -1) btn = gtk.Button("Close") btn.connect('clicked', lambda w: self.close()) btns.add(btn) vbox.pack_start(btns, padding=4, fill=True, expand=False) box.pack2(gtk.Label(), resize=True, shrink=True)