def save(self, key=None): return save_dialog(self)
def open_and_save(gui): mol = molecule('H2O') for i in range(3): mol.write('h2o.json') gui.open(filename='h2o.json') save_dialog(gui, 'h2o.cif@-1')
def open_and_save(gui): mol = molecule('H2O') for i in range(3): mol.write('h2o.json') gui.open(filename='h2o.json') save_dialog(gui, 'h2o.cif@-1')
def __init__(self, images, rotations='', show_unit_cell=True, show_bonds=False): # Try to change into directory of file you are viewing try: os.chdir(os.path.split(sys.argv[1])[0]) # This will fail sometimes (e.g. for starting a new session) except: pass self.images = images self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) # self.window.set_icon(gtk.gdk.pixbuf_new_from_file('guiase.png')) self.window.set_position(gtk.WIN_POS_CENTER) # self.window.connect("destroy", lambda w: gtk.main_quit()) self.window.connect('delete_event', self.exit) vbox = gtk.VBox() self.window.add(vbox) if gtk.pygtk_version < (2, 12): self.set_tip = gtk.Tooltips().set_tip actions = gtk.ActionGroup("Actions") actions.add_actions([ ('FileMenu', None, _('_File')), ('EditMenu', None, _('_Edit')), ('ViewMenu', None, _('_View')), ('ToolsMenu', None, _('_Tools')), # TRANSLATORS: Set up (i.e. build) surfaces, nanoparticles, ... ('SetupMenu', None, _('_Setup')), ('CalculateMenu', None, _('_Calculate')), ('HelpMenu', None, _('_Help')), ('Open', gtk.STOCK_OPEN, _('_Open'), '<control>O', _('Create a new file'), self.open), ('New', gtk.STOCK_NEW, _('_New'), '<control>N', _('New ase.gui window'), lambda widget: os.system('ase-gui &')), ('Save', gtk.STOCK_SAVE, _('_Save'), '<control>S', _('Save current file'), lambda x: save_dialog(self)), ('Quit', gtk.STOCK_QUIT, _('_Quit'), '<control>Q', _('Quit'), self.exit), ('SelectAll', None, _('Select _all'), None, '', self.select_all), ('Invert', None, _('_Invert selection'), None, '', self.invert_selection), ('SelectConstrained', None, _('Select _constrained atoms'), None, '', self.select_constrained_atoms), ('SelectImmobile', None, _('Select _immobile atoms'), '<control>I', '', self.select_immobile_atoms), ('Copy', None, _('_Copy'), '<control>C', _('Copy current selection and its orientation to clipboard'), self.copy_atoms), ('Paste', None, _('_Paste'), '<control>V', _('Insert current clipboard selection'), self.paste_atoms), ('Modify', None, _('_Modify'), '<control>Y', _('Change tags, moments and atom types of the selected atoms'), self.modify_atoms), ('AddAtoms', None, _('_Add atoms'), '<control>A', _('Insert or import atoms and molecules'), self.add_atoms), ('DeleteAtoms', None, _('_Delete selected atoms'), 'BackSpace', _('Delete the selected atoms'), self.delete_selected_atoms), ('First', gtk.STOCK_GOTO_FIRST, _('_First image'), 'Home', '', self.step), ('Previous', gtk.STOCK_GO_BACK, _('_Previous image'), 'Page_Up', '', self.step), ('Next', gtk.STOCK_GO_FORWARD, _('_Next image'), 'Page_Down', '', self.step), ('Last', gtk.STOCK_GOTO_LAST, _('_Last image'), 'End', '', self.step), ('ShowLabels', None, _('Show _Labels')), ('HideAtoms', None, _('Hide selected atoms'), None, '', self.hide_selected), ('ShowAtoms', None, _('Show selected atoms'), None, '', self.show_selected), ('QuickInfo', None, _('Quick Info ...'), None, '', self.quick_info_window), ('Repeat', None, _('Repeat ...'), None, '', self.repeat_window), ('Rotate', None, _('Rotate ...'), None, '', self.rotate_window), ('Colors', None, _('Colors ...'), 'C', '', self.colors_window), # TRANSLATORS: verb ('Focus', gtk.STOCK_ZOOM_FIT, _('Focus'), 'F', '', self.focus), ('ZoomIn', gtk.STOCK_ZOOM_IN, _('Zoom in'), 'plus', '', self.zoom), ('ZoomOut', gtk.STOCK_ZOOM_OUT, _('Zoom out'), 'minus', '', self.zoom), ('ChangeView', None, _('Change View')), ('ResetView', None, _('Reset View'), 'equal', '', self.reset_view), ('xyPlane', None, _('\'xy\' Plane'), 'z', '', self.set_view), ('yzPlane', None, _('\'yz\' Plane'), 'x', '', self.set_view), ('zxPlane', None, _('\'zx\' Plane'), 'y', '', self.set_view), ('yxPlane', None, _('\'yx\' Plane'), '<alt>z', '', self.set_view), ('zyPlane', None, _('\'zy\' Plane'), '<alt>x', '', self.set_view), ('xzPlane', None, _('\'xz\' Plane'), '<alt>y', '', self.set_view), ('a2a3Plane', None, _('\'a2 a3\' Plane'), '1', '', self.set_view), ('a3a1Plane', None, _('\'a3 a1\' Plane'), '2', '', self.set_view), ('a1a2Plane', None, _('\'a1 a2\' Plane'), '3', '', self.set_view), ('a3a2Plane', None, _('\'a3 a2\' Plane'), '<alt>1', '', self.set_view), ('a1a3Plane', None, _('\'a1 a3\' Plane'), '<alt>2', '', self.set_view), ('a2a1Plane', None, _('\'a2 a1\' Plane'), '<alt>3', '', self.set_view), ('Settings', gtk.STOCK_PREFERENCES, _('Settings ...'), None, '', self.settings), ('VMD', None, _('VMD'), None, '', self.external_viewer), ('RasMol', None, _('RasMol'), None, '', self.external_viewer), ('XMakeMol', None, _('xmakemol'), None, '', self.external_viewer), ('Avogadro', None, _('avogadro'), None, '', self.external_viewer), ('Graphs', None, _('Graphs ...'), None, '', self.plot_graphs), ('Movie', None, _('Movie ...'), None, '', self.movie), ('EModify', None, _('Expert mode ...'), '<control>E', '', self.execute), ('Constraints', None, _('Constraints ...'), None, '', self.constraints_window), ('RenderScene', None, _('Render scene ...'), None, '', self.render_window), ('NEB', None, _('NE_B'), None, '', self.NEB), ('BulkModulus', None, _('B_ulk Modulus'), None, '', self.bulk_modulus), ('Bulk', None, _('_Bulk Crystal'), None, _("Create a bulk crystal with arbitrary orientation"), self.bulk_window), ('Surface', None, _('_Surface slab'), None, _("Create the most common surfaces"), self.surface_window), ('Nanoparticle', None, _('_Nanoparticle'), None, _("Create a crystalline nanoparticle"), self.nanoparticle_window), ('Nanotube', None, _('Nano_tube'), None, _("Create a nanotube"), self.nanotube_window), ('Graphene', None, _('Graphene'), None, _("Create a graphene sheet or nanoribbon"), self.graphene_window), ('SetCalculator', None, _('Set _Calculator'), None, _("Set a calculator used in all calculation modules"), self.calculator_window), ('EnergyForces', None, _('_Energy and Forces'), None, _("Calculate energy and forces"), self.energy_window), ('Minimize', None, _('Energy _Minimization'), None, _("Minimize the energy"), self.energy_minimize_window), ('Scaling', None, _('Scale system'), None, _("Deform system by scaling it"), self.scaling_window), ('About', None, _('_About'), None, None, self.about), ('Webpage', gtk.STOCK_HELP, _('Webpage ...'), None, None, webpage), ('Debug', None, _('Debug ...'), None, None, self.debug) ]) actions.add_toggle_actions([ ('ShowUnitCell', None, _('Show _unit cell'), '<control>U', 'Bold', self.toggle_show_unit_cell, show_unit_cell > 0), ('ShowAxes', None, _('Show _axes'), None, 'Bold', self.toggle_show_axes, True), ('ShowBonds', None, _('Show _bonds'), '<control>B', 'Bold', self.toggle_show_bonds, show_bonds), ('ShowVelocities', None, _('Show _velocities'), '<control>G', 'Bold', self.toggle_show_velocities, False), ('ShowForces', None, _('Show _forces'), '<control>F', 'Bold', self.toggle_show_forces, False), ('MoveAtoms', None, _('_Move atoms'), '<control>M', 'Bold', self.toggle_move_mode, False), ('RotateAtoms', None, _('_Rotate atoms'), '<control>R', 'Bold', self.toggle_rotate_mode, False), ('OrientAtoms', None, _('Orien_t atoms'), '<control>T', 'Bold', self.toggle_orient_mode, False) ]) actions.add_radio_actions( (('NoLabel', None, _('_None'), None, None, 0), ('AtomIndex', None, _('Atom _Index'), None, None, 1), ('MagMom', None, _('_Magnetic Moments'), None, None, 2), ('Element', None, _('_Element Symbol'), None, None, 3)), 0, self.show_labels) self.ui = ui = gtk.UIManager() ui.insert_action_group(actions, 0) self.window.add_accel_group(ui.get_accel_group()) ui.add_ui_from_string(ui_info) vbox.pack_start(ui.get_widget('/MenuBar'), False, False, 0) View.__init__(self, vbox, rotations) Status.__init__(self, vbox) vbox.show() # self.window.set_events(gtk.gdk.BUTTON_PRESS_MASK) self.window.connect('key-press-event', self.scroll) self.window.connect('scroll_event', self.scroll_event) self.window.show() self.graphs = [] # list of matplotlib processes self.graph_wref = [] # list of weakrefs to Graph objects self.movie_window = None self.vulnerable_windows = [] self.simulation = {} # Used by modules on Calculate menu. self.module_state = {} # Used by modules to store their state.
def save(self, key=None): return save_dialog(self)