summaryrefslogtreecommitdiffstats
path: root/docs/porting-ugtk
blob: 5a9a9ac7f2b98f75e2e254f589f8cff2e52d38a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/perl -pi
#
# $Id$
#
# This is not an automatic gtk+-1.x to gtk+-2.x port tool,
# just a tool that ease perl apps' gtk2 port.
# you'll have to fix all remaining problems, beginning by spotted warnings
# it'll save you basic conversion work
#
# if you used Gtk::Text, a little more work will be needed (look at logdrake gtk2 port)
# if you used Gtk::CTree, Gtk::CList or worse, Gtk::Tree, you'll need quite a lot of exhausting work :-(
#
# usage: porting-ugtk <file>
#
# hint: always use strict

# switch to gtk2 :
s!Gtk:!Gtk2:!g;
/(use|require) Gtk/ and print STDERR "Warning: if this (bad) app that did not use my_gtk, you'll have a hard time :-)\n         if not, using both Gtk && my_gtk was misdesigned ...\n";
s!(use|require) Gtk.*!!g; # 
s!my_gtk!ugtk2!g;

# one should pass the right ":stuff" to "use ugtk2 qw();"
/ugtk::/ and print STDERR "Warning: you'll have to passe eiter :ask, :create, :helpers or :wrappers to ugtk\n";
s!ugtk::!!g;
# if my_gtk wasn't used, this'll be spotted by the lack of "use ugtk2;" anyway
s!(require|use) ugtk.*!!g;


# deprecated :
/::(CTree|CList|Text[^V])/ and print STDERR "Warning: CTree, CList and Text widgets are deprecated... Good luck :-(\n";
/gtkcreate_(png|xpm)/ and print STDERR "Warning: new Gtk::Pixmap(gtkcreate_(png|xpm)) should be replaced by gtkcreate_img\n";
/set_policy/ and print STDERR "Warning: ->set_policy() should be replaced by allow_shrink/allow_grow/set_resizable\n";

# obsoletes methods||functions :
s!set_usize!set_size_request!g;
s!-(end|spread|extended|start|single)!'\1'!g;
s!createScrolledWindow!create_scrolled_window!g;
# quite a lot less usefull with gtk+2 but who knows... :
s!set_position\(1\)!set_position('center')!g;
s!gtkpng!gtkcreate_img!g;
# hacky but usefull in ->set_pixmap() context; else that'll be spoted at run time :
s!gtkcreate_png!gtkcreate_img!g;
# usefull sometimes but not in most cases :
#s!new GtkVBox!create_vbox!g;
#s!new GtkHBox!create_hbox!g;