Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/turtleart.py
diff options
context:
space:
mode:
Diffstat (limited to 'turtleart.py')
-rwxr-xr-xturtleart.py54
1 files changed, 26 insertions, 28 deletions
diff --git a/turtleart.py b/turtleart.py
index ca9153a..1980e1d 100755
--- a/turtleart.py
+++ b/turtleart.py
@@ -21,9 +21,7 @@
#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
#THE SOFTWARE.
-import pygtk
-pygtk.require('2.0')
-import gtk
+from util.gtkcompat import Gtk, Gdk, GdkPixbuf
import getopt
import sys
@@ -83,9 +81,9 @@ class TurtleMain():
self._plugins = []
if self.output_png:
- pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8,
- gtk.gdk.screen_width(),
- gtk.gdk.screen_height())
+ pixbuf = GdkPixbuf.Pixbuf(GdkPixbuf.Colorspace.RGB, False, 8,
+ Gdk.Screen.width(),
+ Gdk.Screen.height())
self.canvas, mask = pixbuf.render_pixmap_and_mask()
self._build_window()
self._draw_and_quit()
@@ -166,7 +164,7 @@ class TurtleMain():
self.tw.load_start(self.ta_file)
self.tw.lc.trace = 0
self.tw.run_button(0)
- gtk.main()
+ Gtk.main()
def _draw_and_quit(self):
''' Non-interactive mode: run the project, save it to a file
@@ -265,7 +263,7 @@ class TurtleMain():
def _setup_gtk(self):
''' Set up a scrolled window in which to run Turtle Blocks. '''
- win = gtk.Window(gtk.WINDOW_TOPLEVEL)
+ win = Gtk.Window()
win.set_default_size(self.width, self.height)
win.move(self.x, self.y)
win.maximize()
@@ -275,7 +273,7 @@ class TurtleMain():
self._ICON_SUBPATH))
win.connect('delete_event', self._quit_ta)
- vbox = gtk.VBox(False, 0)
+ vbox = Gtk.VBox.new(False, 0)
win.add(vbox)
vbox.show()
@@ -283,16 +281,16 @@ class TurtleMain():
vbox.pack_start(menu_bar, False, False, 2)
menu_bar.show()
- sw = gtk.ScrolledWindow()
- sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+ sw = Gtk.ScrolledWindow()
+ sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
sw.show()
- canvas = gtk.DrawingArea()
- width = gtk.gdk.screen_width() * 2
- height = gtk.gdk.screen_height() * 2
+ canvas = Gtk.DrawingArea()
+ width = Gdk.Screen.width() * 2
+ height = Gdk.Screen.height() * 2
canvas.set_size_request(width, height)
sw.add_with_viewport(canvas)
canvas.show()
- vbox.pack_end(sw, True, True)
+ vbox.pack_end(sw, True, True, 0)
win.show_all()
self.win = win
@@ -300,7 +298,7 @@ class TurtleMain():
def _get_menu_bar(self):
''' Instead of Sugar toolbars, use GNOME menus. '''
- menu = gtk.Menu()
+ menu = Gtk.Menu()
MenuBuilder.make_menu_item(menu, _('New'), self._do_new_cb)
MenuBuilder.make_menu_item(menu, _('Open'), self._do_open_cb)
MenuBuilder.make_menu_item(menu, _('Save'), self._do_save_cb)
@@ -314,7 +312,7 @@ class TurtleMain():
MenuBuilder.make_menu_item(menu, _('Quit'), self.destroy)
activity_menu = MenuBuilder.make_sub_menu(menu, _('File'))
- menu = gtk.Menu()
+ menu = Gtk.Menu()
MenuBuilder.make_menu_item(menu, _('Cartesian coordinates'),
self._do_cartesian_cb)
MenuBuilder.make_menu_item(menu, _('Polar coordinates'),
@@ -329,12 +327,12 @@ class TurtleMain():
self._do_resize_cb, -1)
view_menu = MenuBuilder.make_sub_menu(menu, _('View'))
- menu = gtk.Menu()
+ menu = Gtk.Menu()
MenuBuilder.make_menu_item(menu, _('Copy'), self._do_copy_cb)
MenuBuilder.make_menu_item(menu, _('Paste'), self._do_paste_cb)
edit_menu = MenuBuilder.make_sub_menu(menu, _('Edit'))
- menu = gtk.Menu()
+ menu = Gtk.Menu()
MenuBuilder.make_menu_item(menu, _('Show palette'),
self._do_palette_cb)
MenuBuilder.make_menu_item(menu, _('Hide palette'),
@@ -343,7 +341,7 @@ class TurtleMain():
self._do_hideshow_cb)
tool_menu = MenuBuilder.make_sub_menu(menu, _('Tools'))
- menu = gtk.Menu()
+ menu = Gtk.Menu()
MenuBuilder.make_menu_item(menu, _('Clean'), self._do_eraser_cb)
MenuBuilder.make_menu_item(menu, _('Run'), self._do_run_cb)
MenuBuilder.make_menu_item(menu, _('Step'), self._do_step_cb)
@@ -351,7 +349,7 @@ class TurtleMain():
MenuBuilder.make_menu_item(menu, _('Stop'), self._do_stop_cb)
turtle_menu = MenuBuilder.make_sub_menu(menu, _('Turtle'))
- menu_bar = gtk.MenuBar()
+ menu_bar = Gtk.MenuBar()
menu_bar.append(activity_menu)
menu_bar.append(edit_menu)
menu_bar.append(view_menu)
@@ -372,12 +370,12 @@ class TurtleMain():
else:
if self.tw.project_has_changed():
self._show_save_dialog(False)
- gtk.main_quit()
+ Gtk.main_quit()
def _show_save_dialog(self, new_project=True):
''' Dialog for save project '''
- dlg = gtk.MessageDialog(parent=None, type=gtk.MESSAGE_INFO,
- buttons=gtk.BUTTONS_OK_CANCEL,
+ dlg = Gtk.MessageDialog(parent=None, type=Gtk.MessageType.INFO,
+ buttons=Gtk.ButtonsType.OK_CANCEL,
message_format=_(
'You have unsaved work. Would you like to save before quitting?'))
dlg.set_title(_('Save project?'))
@@ -385,7 +383,7 @@ class TurtleMain():
resp = dlg.run()
dlg.destroy()
- if resp == gtk.RESPONSE_OK:
+ if resp == Gtk.ResponseType.OK:
if new_project:
self._save_as()
else:
@@ -545,7 +543,7 @@ class TurtleMain():
def _do_copy_cb(self, button):
''' Callback for copy button. '''
- clipBoard = gtk.Clipboard()
+ clipBoard = Gtk.Clipboard()
data = self.tw.assemble_data_to_save(False, False)
if data is not []:
text = data_to_string(data)
@@ -553,7 +551,7 @@ class TurtleMain():
def _do_paste_cb(self, button):
''' Callback for paste button. '''
- clipBoard = gtk.Clipboard()
+ clipBoard = Gtk.Clipboard()
text = clipBoard.wait_for_text()
if text is not None:
if self.tw.selected_blk is not None and\
@@ -576,7 +574,7 @@ class TurtleMain():
def destroy(self, event, data=None):
''' Callback for destroy event. '''
- gtk.main_quit()
+ Gtk.main_quit()
def nick_changed(self, nick):
''' TODO: Rename default turtle in dictionary '''