ig3tool 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/ig3tool +17 -21
- data/lib/actions/bib.rb +295 -0
- data/lib/actions/bitching.rb +19 -0
- data/lib/actions/cultuur.rb +3 -0
- data/lib/actions/interne.rb +98 -0
- data/lib/actions/kaching.rb +90 -0
- data/lib/actions/people.rb +178 -0
- data/lib/actions/printing.rb +125 -0
- data/lib/actions/product.rb +154 -0
- data/lib/bib.rb +94 -0
- data/lib/billing.rb +112 -0
- data/lib/bitching.rb +49 -0
- data/lib/config.rb +19 -0
- data/lib/glade/cola_light_small.png +0 -0
- data/lib/glade/cola_light_xsmall.png +0 -0
- data/lib/glade/cola_small.png +0 -0
- data/lib/glade/cola_xsmall.png +0 -0
- data/lib/glade/doos_small.png +0 -0
- data/lib/glade/doos_xsmall.png +0 -0
- data/lib/glade/icons/cola_light_small.png +0 -0
- data/lib/glade/icons/cola_light_xsmall.png +0 -0
- data/lib/glade/icons/cola_small.png +0 -0
- data/lib/glade/icons/cola_xsmall.png +0 -0
- data/lib/glade/icons/doos_small.png +0 -0
- data/lib/glade/icons/doos_xsmall.png +0 -0
- data/lib/glade/icons/piggy_small.png +0 -0
- data/lib/glade/icons/piggy_xsmall.png +0 -0
- data/lib/glade/money_small.png +0 -0
- data/lib/glade/money_xsmall.png +0 -0
- data/lib/glade/newinterne.glade +504 -0
- data/lib/glade/piggy_small.png +0 -0
- data/lib/glade/piggy_xsmall.png +0 -0
- data/lib/glade/sales.glade +89 -87
- data/lib/horrible_hack.rb +15 -0
- data/lib/interne.rb +111 -0
- data/lib/ldap.rb +104 -0
- data/lib/log.rb +25 -0
- data/lib/membership.rb +32 -0
- data/lib/mymd5.rb +95 -0
- data/lib/people.rb +143 -0
- data/lib/printing.rb +238 -0
- data/lib/request.rb +14 -0
- data/lib/sales.rb +158 -0
- data/lib/ui/automaatwindow.rb +2 -2
- data/lib/ui/bibliotheekwindow.rb +16 -17
- data/lib/ui/bibwindow.rb +15 -15
- data/lib/ui/gladehelper.rb +20 -6
- data/lib/ui/internewindow.rb +12 -9
- data/lib/ui/loginwindow.rb +2 -4
- data/lib/ui/memberswindow.rb +9 -9
- data/lib/ui/newinterne.rb +258 -0
- data/lib/ui/peoplewindow.rb +14 -16
- data/lib/ui/printenwindow.rb +11 -11
- data/lib/ui/printingwindow.rb +19 -20
- data/lib/ui/productswindow.rb +27 -15
- data/lib/ui/saleswindow.rb +21 -8
- data/lib/ui/toolwindow.rb +5 -3
- data/lib/utils.rb +106 -0
- data/lib/web.rb +98 -0
- metadata +48 -3
data/lib/bib.rb
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
module Ig3tool
|
2
|
+
|
3
|
+
class BibSection < ActiveRecord::Base
|
4
|
+
|
5
|
+
set_table_name "bib_sections"
|
6
|
+
set_nonauto_primary_key :name
|
7
|
+
|
8
|
+
validates_presence_of :name, :full_name
|
9
|
+
|
10
|
+
validates_uniqueness_of :name
|
11
|
+
|
12
|
+
has_many :books,
|
13
|
+
:class_name => "BibBook",
|
14
|
+
:foreign_key => "section"
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
class BibBook < ActiveRecord::Base
|
19
|
+
|
20
|
+
set_table_name "bib_books"
|
21
|
+
set_nonauto_primary_key :isbn
|
22
|
+
|
23
|
+
validates_presence_of :isbn,
|
24
|
+
:title,
|
25
|
+
:author,
|
26
|
+
:publisher,
|
27
|
+
:section
|
28
|
+
|
29
|
+
validates_each :section do |record, attr, value|
|
30
|
+
begin
|
31
|
+
BibSection.find(value)
|
32
|
+
rescue
|
33
|
+
record.errors.add attr, "Invalid section: '#{value}'"
|
34
|
+
false
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
has_many :loans,
|
39
|
+
:class_name => "BibLoan",
|
40
|
+
:foreign_key => "isbn"
|
41
|
+
|
42
|
+
def available?
|
43
|
+
available > 0
|
44
|
+
end
|
45
|
+
|
46
|
+
def available
|
47
|
+
copies - loans.length
|
48
|
+
end
|
49
|
+
|
50
|
+
# ISBN-13 -> ISBN-10
|
51
|
+
def self._isbn13(code)
|
52
|
+
raise "Invalid ISBN-10 number!" if code.length != 10
|
53
|
+
code.chop!
|
54
|
+
code = "978" + code
|
55
|
+
|
56
|
+
sum = 0
|
57
|
+
code.split(//).each_with_index do |c, i|
|
58
|
+
sum += c.to_i * ( i % 2 == 0 ? 1 : 3 )
|
59
|
+
end
|
60
|
+
|
61
|
+
rem = sum % 10
|
62
|
+
check = (rem == 0) ? 0 : 10 - rem
|
63
|
+
|
64
|
+
code = code + check.to_s
|
65
|
+
end
|
66
|
+
|
67
|
+
# ISBN-10 -> ISBN-13
|
68
|
+
def self._isbn10(code)
|
69
|
+
raise "Invalid ISBN-13 number!" if code.length != 13
|
70
|
+
code = code[3..11]
|
71
|
+
|
72
|
+
sum = 0
|
73
|
+
9.times {|i| sum += code[i].chr.to_i * (10 - i) }
|
74
|
+
|
75
|
+
check = 11 - sum % 11
|
76
|
+
check = 0 if sum == 0
|
77
|
+
check = 'X' if check == 10
|
78
|
+
code = code + check.to_s
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
class BibLoan < ActiveRecord::Base
|
84
|
+
|
85
|
+
set_table_name "bib_loans"
|
86
|
+
|
87
|
+
validates_presence_of :isbn,
|
88
|
+
:member_id,
|
89
|
+
:warranty,
|
90
|
+
:loan_date
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
data/lib/billing.rb
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
module Ig3tool
|
2
|
+
|
3
|
+
#
|
4
|
+
# Handige documentatie:
|
5
|
+
#
|
6
|
+
# Lesk, M.E.: "TBL -- A Program to Format Tables"
|
7
|
+
# http://www.cs.bell-labs.com/10thEdMan/tbl.pdf
|
8
|
+
#
|
9
|
+
# PIC -- A Graphics Language for Typesetting, Brian Kernighan
|
10
|
+
# http://www.cs.bell-labs.com/cm/cs/cstr/116.ps.gz
|
11
|
+
#
|
12
|
+
|
13
|
+
# dit is het billing gedoe
|
14
|
+
# om een fancy factuur uit te printen
|
15
|
+
# again thx to Peter
|
16
|
+
|
17
|
+
|
18
|
+
CONFIG = { 'groff' => 'groff -ma4 -p -t | gv -',
|
19
|
+
'groff_alt' => 'groff -ma4 -p -t -l -L-Pigprint@igwe' }
|
20
|
+
|
21
|
+
|
22
|
+
class Sales
|
23
|
+
|
24
|
+
def printout debugger
|
25
|
+
return if @sales.empty?
|
26
|
+
|
27
|
+
p = Person.find(:first, :conditions => ['username=?', debugger])
|
28
|
+
return unless p
|
29
|
+
debugger = p.firstname + " " + p.lastname
|
30
|
+
date = dutch_date
|
31
|
+
|
32
|
+
def to_groff (str)
|
33
|
+
gr = ''
|
34
|
+
str.unpack('U*').each do |c|
|
35
|
+
gr += c < 256 ? c.chr : sprintf('\[u%04X]', c)
|
36
|
+
end
|
37
|
+
return gr
|
38
|
+
end
|
39
|
+
|
40
|
+
groff = IO.popen(CONFIG["groff"], "w")
|
41
|
+
groff.print <<EOF
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
.TS
|
48
|
+
box, expand ;
|
49
|
+
l r
|
50
|
+
^ r .
|
51
|
+
T{
|
52
|
+
Infogroep
|
53
|
+
p/a Faculteit Wetenschappen
|
54
|
+
lokaal 1E8, tel. 02/629 33 56
|
55
|
+
Vrije Universiteit Brussel
|
56
|
+
T}\tBrussel, #{date}
|
57
|
+
\tT{
|
58
|
+
.PS
|
59
|
+
B: box height 1 width 3.3
|
60
|
+
.ps 8
|
61
|
+
" stempel" at B.sw above ljust
|
62
|
+
.ps 10
|
63
|
+
.PE
|
64
|
+
T}
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
.TE
|
69
|
+
.TS
|
70
|
+
box, expand ;
|
71
|
+
l | c | c
|
72
|
+
l | n | n .
|
73
|
+
Omschrijving artikels\tAantal\tPrijs
|
74
|
+
_
|
75
|
+
EOF
|
76
|
+
|
77
|
+
each do |s|
|
78
|
+
groff.printf("%s\t%d\t%.2f\n", to_groff(s.product.name), s.count, s.price)
|
79
|
+
end
|
80
|
+
|
81
|
+
groff.print <<EOF
|
82
|
+
_
|
83
|
+
.T&
|
84
|
+
l s nB .
|
85
|
+
T{
|
86
|
+
|
87
|
+
|
88
|
+
Voor Infogroep,
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
#{to_groff(debugger)}
|
93
|
+
T}\t#{sprintf '%.2f', total_price}
|
94
|
+
.TE
|
95
|
+
EOF
|
96
|
+
|
97
|
+
groff.close
|
98
|
+
end
|
99
|
+
|
100
|
+
def dutch_date
|
101
|
+
months = %w(_ januari februari maart april mei juni juli
|
102
|
+
augustus september oktober november december)
|
103
|
+
days = %w(zondag maandag dinsdag woensdag donderdag
|
104
|
+
vrijdag zaterdag zondag)
|
105
|
+
t = Time.now
|
106
|
+
"#{days[t.wday]} #{t.day} #{months[t.month]} #{t.year}"
|
107
|
+
end
|
108
|
+
private :dutch_date
|
109
|
+
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
data/lib/bitching.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'digest/md5'
|
2
|
+
|
3
|
+
module Ig3tool
|
4
|
+
|
5
|
+
class Bitch < ActiveRecord::Base
|
6
|
+
|
7
|
+
set_table_name "bitches"
|
8
|
+
|
9
|
+
validates_presence_of :crap, :bitch
|
10
|
+
|
11
|
+
validates_uniqueness_of :crap
|
12
|
+
|
13
|
+
def self.lookup(crap)
|
14
|
+
Bitch.find(:first, :conditions => ["crap = ?", crap])
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.bitch(crap)
|
18
|
+
Bitch.lookup(crap).bitch
|
19
|
+
end
|
20
|
+
|
21
|
+
def log_request(request)
|
22
|
+
r = Request.new
|
23
|
+
r.bitch = self.bitch
|
24
|
+
r.request = request
|
25
|
+
r.save
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.can_request?(crap)
|
29
|
+
not Bitch.lookup(crap).nil?
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.wannabe(user, pass)
|
33
|
+
# check if user isa ldap user
|
34
|
+
# generate some sort of token to auth with
|
35
|
+
raise Token, "you don't know the magic word..." unless IGLDAP.bitchke?(user, pass)
|
36
|
+
b = Bitch.new
|
37
|
+
b.bitch = user
|
38
|
+
#b.crap = user.crypt("$1$" + Time.now.strftime("%S%M"))
|
39
|
+
b.crap = Digest::MD5.hexdigest(user + Time.now.to_s)
|
40
|
+
b.save!
|
41
|
+
b.crap
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
|
data/lib/config.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
module Ig3tool
|
2
|
+
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
class Config
|
6
|
+
def Config.load(file)
|
7
|
+
begin
|
8
|
+
@@file = YAML.load_file(file)
|
9
|
+
rescue SystemCallError => boom
|
10
|
+
abort "Kon config file niet laden: #{boom.message}"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def Config.[](attribute)
|
15
|
+
@@file[attribute]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,504 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
|
3
|
+
<!--Generated with glade3 3.4.1 on Fri Mar 21 11:27:19 2008 -->
|
4
|
+
<glade-interface>
|
5
|
+
<widget class="GtkWindow" id="window">
|
6
|
+
<property name="visible">True</property>
|
7
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
8
|
+
<property name="border_width">5</property>
|
9
|
+
<property name="title" translatable="yes">ig3tool - members</property>
|
10
|
+
<property name="default_width">500</property>
|
11
|
+
<property name="default_height">500</property>
|
12
|
+
<property name="icon">members_xklein.png</property>
|
13
|
+
<property name="icon_name">printingicon</property>
|
14
|
+
<property name="gravity">GDK_GRAVITY_CENTER</property>
|
15
|
+
<child>
|
16
|
+
<widget class="GtkAlignment" id="alignment1">
|
17
|
+
<property name="visible">True</property>
|
18
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
19
|
+
<property name="border_width">5</property>
|
20
|
+
<child>
|
21
|
+
<widget class="GtkFrame" id="credits">
|
22
|
+
<property name="visible">True</property>
|
23
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
24
|
+
<property name="border_width">1</property>
|
25
|
+
<property name="label_xalign">0</property>
|
26
|
+
<property name="shadow_type">GTK_SHADOW_NONE</property>
|
27
|
+
<child>
|
28
|
+
<widget class="GtkAlignment" id="alignment1">
|
29
|
+
<property name="visible">True</property>
|
30
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
31
|
+
<property name="top_padding">20</property>
|
32
|
+
<property name="left_padding">5</property>
|
33
|
+
<property name="right_padding">5</property>
|
34
|
+
<child>
|
35
|
+
<widget class="GtkVBox" id="vbox1">
|
36
|
+
<property name="visible">True</property>
|
37
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
38
|
+
<child>
|
39
|
+
<widget class="GtkAlignment" id="alignment2">
|
40
|
+
<property name="visible">True</property>
|
41
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
42
|
+
<child>
|
43
|
+
<widget class="GtkVBox" id="vbox2">
|
44
|
+
<property name="visible">True</property>
|
45
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
46
|
+
<child>
|
47
|
+
<widget class="GtkAlignment" id="alignment7">
|
48
|
+
<property name="visible">True</property>
|
49
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
50
|
+
<child>
|
51
|
+
<widget class="GtkHBox" id="hbox1">
|
52
|
+
<property name="visible">True</property>
|
53
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
54
|
+
<child>
|
55
|
+
<widget class="GtkAlignment" id="alignment9">
|
56
|
+
<property name="visible">True</property>
|
57
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
58
|
+
<property name="right_padding">5</property>
|
59
|
+
<child>
|
60
|
+
<widget class="GtkComboBox" id="fromcombo">
|
61
|
+
<property name="visible">True</property>
|
62
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
63
|
+
<signal name="changed" handler="fromchange"/>
|
64
|
+
</widget>
|
65
|
+
</child>
|
66
|
+
</widget>
|
67
|
+
</child>
|
68
|
+
<child>
|
69
|
+
<widget class="GtkAlignment" id="alignment10">
|
70
|
+
<property name="visible">True</property>
|
71
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
72
|
+
<child>
|
73
|
+
<widget class="GtkButton" id="sendbutton">
|
74
|
+
<property name="visible">True</property>
|
75
|
+
<property name="can_focus">True</property>
|
76
|
+
<property name="receives_default">True</property>
|
77
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
78
|
+
<property name="tooltip" translatable="yes">toss money from left to right</property>
|
79
|
+
<property name="response_id">0</property>
|
80
|
+
<signal name="clicked" handler="tossmoney"/>
|
81
|
+
<signal name="activate" handler="tossmoney"/>
|
82
|
+
<child>
|
83
|
+
<widget class="GtkImage" id="image2">
|
84
|
+
<property name="visible">True</property>
|
85
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
86
|
+
<property name="stock">gtk-go-forward</property>
|
87
|
+
</widget>
|
88
|
+
</child>
|
89
|
+
</widget>
|
90
|
+
</child>
|
91
|
+
</widget>
|
92
|
+
<packing>
|
93
|
+
<property name="expand">False</property>
|
94
|
+
<property name="padding">5</property>
|
95
|
+
<property name="position">1</property>
|
96
|
+
</packing>
|
97
|
+
</child>
|
98
|
+
<child>
|
99
|
+
<widget class="GtkAlignment" id="alignment11">
|
100
|
+
<property name="visible">True</property>
|
101
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
102
|
+
<property name="left_padding">5</property>
|
103
|
+
<child>
|
104
|
+
<widget class="GtkComboBox" id="tocombo">
|
105
|
+
<property name="visible">True</property>
|
106
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
107
|
+
<signal name="changed" handler="tochange"/>
|
108
|
+
</widget>
|
109
|
+
</child>
|
110
|
+
</widget>
|
111
|
+
<packing>
|
112
|
+
<property name="position">2</property>
|
113
|
+
</packing>
|
114
|
+
</child>
|
115
|
+
</widget>
|
116
|
+
</child>
|
117
|
+
</widget>
|
118
|
+
</child>
|
119
|
+
<child>
|
120
|
+
<widget class="GtkAlignment" id="alignment9">
|
121
|
+
<property name="visible">True</property>
|
122
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
123
|
+
<property name="top_padding">10</property>
|
124
|
+
<child>
|
125
|
+
<widget class="GtkLabel" id="action">
|
126
|
+
<property name="visible">True</property>
|
127
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
128
|
+
<property name="label" translatable="yes">the imps are <b>procrastinating</b>...</property>
|
129
|
+
<property name="use_markup">True</property>
|
130
|
+
</widget>
|
131
|
+
</child>
|
132
|
+
</widget>
|
133
|
+
<packing>
|
134
|
+
<property name="position">1</property>
|
135
|
+
</packing>
|
136
|
+
</child>
|
137
|
+
</widget>
|
138
|
+
</child>
|
139
|
+
</widget>
|
140
|
+
<packing>
|
141
|
+
<property name="expand">False</property>
|
142
|
+
</packing>
|
143
|
+
</child>
|
144
|
+
<child>
|
145
|
+
<widget class="GtkAlignment" id="alignment3">
|
146
|
+
<property name="visible">True</property>
|
147
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
148
|
+
<property name="top_padding">5</property>
|
149
|
+
<property name="bottom_padding">10</property>
|
150
|
+
<child>
|
151
|
+
<widget class="GtkHSeparator" id="hseparator1">
|
152
|
+
<property name="visible">True</property>
|
153
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
154
|
+
</widget>
|
155
|
+
</child>
|
156
|
+
</widget>
|
157
|
+
<packing>
|
158
|
+
<property name="expand">False</property>
|
159
|
+
<property name="position">1</property>
|
160
|
+
</packing>
|
161
|
+
</child>
|
162
|
+
<child>
|
163
|
+
<widget class="GtkAlignment" id="alignment4">
|
164
|
+
<property name="visible">True</property>
|
165
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
166
|
+
<property name="xalign">1</property>
|
167
|
+
<child>
|
168
|
+
<widget class="GtkHBox" id="hbox2">
|
169
|
+
<property name="visible">True</property>
|
170
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
171
|
+
<child>
|
172
|
+
<widget class="GtkAlignment" id="alignment15">
|
173
|
+
<property name="visible">True</property>
|
174
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
175
|
+
<child>
|
176
|
+
<widget class="GtkVBox" id="vbox5">
|
177
|
+
<property name="visible">True</property>
|
178
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
179
|
+
<property name="spacing">5</property>
|
180
|
+
<child>
|
181
|
+
<widget class="GtkAlignment" id="alignment20">
|
182
|
+
<property name="visible">True</property>
|
183
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
184
|
+
<property name="right_padding">5</property>
|
185
|
+
<child>
|
186
|
+
<widget class="GtkLabel" id="label8">
|
187
|
+
<property name="visible">True</property>
|
188
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
189
|
+
<property name="xalign">1</property>
|
190
|
+
</widget>
|
191
|
+
</child>
|
192
|
+
</widget>
|
193
|
+
</child>
|
194
|
+
<child>
|
195
|
+
<widget class="GtkAlignment" id="alignment21">
|
196
|
+
<property name="visible">True</property>
|
197
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
198
|
+
<child>
|
199
|
+
<widget class="GtkLabel" id="label9">
|
200
|
+
<property name="visible">True</property>
|
201
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
202
|
+
<property name="xalign">1</property>
|
203
|
+
<property name="xpad">5</property>
|
204
|
+
</widget>
|
205
|
+
</child>
|
206
|
+
</widget>
|
207
|
+
<packing>
|
208
|
+
<property name="position">1</property>
|
209
|
+
</packing>
|
210
|
+
</child>
|
211
|
+
<child>
|
212
|
+
<widget class="GtkAlignment" id="alignment22">
|
213
|
+
<property name="visible">True</property>
|
214
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
215
|
+
<child>
|
216
|
+
<widget class="GtkLabel" id="label10">
|
217
|
+
<property name="visible">True</property>
|
218
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
219
|
+
<property name="xalign">1</property>
|
220
|
+
<property name="xpad">5</property>
|
221
|
+
</widget>
|
222
|
+
</child>
|
223
|
+
</widget>
|
224
|
+
<packing>
|
225
|
+
<property name="position">2</property>
|
226
|
+
</packing>
|
227
|
+
</child>
|
228
|
+
</widget>
|
229
|
+
</child>
|
230
|
+
</widget>
|
231
|
+
</child>
|
232
|
+
<child>
|
233
|
+
<widget class="GtkAlignment" id="alignment12">
|
234
|
+
<property name="visible">True</property>
|
235
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
236
|
+
<child>
|
237
|
+
<widget class="GtkVBox" id="vbox3">
|
238
|
+
<property name="visible">True</property>
|
239
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
240
|
+
<property name="spacing">5</property>
|
241
|
+
<child>
|
242
|
+
<widget class="GtkAlignment" id="alignment12">
|
243
|
+
<property name="visible">True</property>
|
244
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
245
|
+
<property name="right_padding">5</property>
|
246
|
+
<child>
|
247
|
+
<widget class="GtkLabel" id="label3">
|
248
|
+
<property name="visible">True</property>
|
249
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
250
|
+
<property name="xalign">1</property>
|
251
|
+
<property name="label" translatable="yes">current saldo:</property>
|
252
|
+
</widget>
|
253
|
+
</child>
|
254
|
+
</widget>
|
255
|
+
</child>
|
256
|
+
<child>
|
257
|
+
<widget class="GtkAlignment" id="alignment13">
|
258
|
+
<property name="visible">True</property>
|
259
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
260
|
+
<child>
|
261
|
+
<widget class="GtkLabel" id="label4">
|
262
|
+
<property name="visible">True</property>
|
263
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
264
|
+
<property name="xalign">1</property>
|
265
|
+
<property name="xpad">5</property>
|
266
|
+
<property name="label" translatable="yes">amount:</property>
|
267
|
+
</widget>
|
268
|
+
</child>
|
269
|
+
</widget>
|
270
|
+
<packing>
|
271
|
+
<property name="position">1</property>
|
272
|
+
</packing>
|
273
|
+
</child>
|
274
|
+
<child>
|
275
|
+
<widget class="GtkAlignment" id="alignment14">
|
276
|
+
<property name="visible">True</property>
|
277
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
278
|
+
<child>
|
279
|
+
<widget class="GtkLabel" id="label5">
|
280
|
+
<property name="visible">True</property>
|
281
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
282
|
+
<property name="xalign">1</property>
|
283
|
+
<property name="xpad">5</property>
|
284
|
+
<property name="label" translatable="yes">message:</property>
|
285
|
+
</widget>
|
286
|
+
</child>
|
287
|
+
</widget>
|
288
|
+
<packing>
|
289
|
+
<property name="position">2</property>
|
290
|
+
</packing>
|
291
|
+
</child>
|
292
|
+
</widget>
|
293
|
+
</child>
|
294
|
+
</widget>
|
295
|
+
<packing>
|
296
|
+
<property name="expand">False</property>
|
297
|
+
<property name="position">1</property>
|
298
|
+
</packing>
|
299
|
+
</child>
|
300
|
+
<child>
|
301
|
+
<widget class="GtkAlignment" id="alignment13">
|
302
|
+
<property name="visible">True</property>
|
303
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
304
|
+
<property name="xalign">1</property>
|
305
|
+
<child>
|
306
|
+
<widget class="GtkVBox" id="vbox3">
|
307
|
+
<property name="visible">True</property>
|
308
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
309
|
+
<property name="spacing">5</property>
|
310
|
+
<child>
|
311
|
+
<widget class="GtkAlignment" id="alignment12">
|
312
|
+
<property name="visible">True</property>
|
313
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
314
|
+
<property name="xalign">1</property>
|
315
|
+
<child>
|
316
|
+
<widget class="GtkEntry" id="saldo">
|
317
|
+
<property name="visible">True</property>
|
318
|
+
<property name="sensitive">False</property>
|
319
|
+
<property name="can_focus">True</property>
|
320
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
321
|
+
<property name="xalign">1</property>
|
322
|
+
</widget>
|
323
|
+
</child>
|
324
|
+
</widget>
|
325
|
+
</child>
|
326
|
+
<child>
|
327
|
+
<widget class="GtkAlignment" id="alignment13">
|
328
|
+
<property name="visible">True</property>
|
329
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
330
|
+
<property name="xalign">1</property>
|
331
|
+
<child>
|
332
|
+
<widget class="GtkEntry" id="amount">
|
333
|
+
<property name="visible">True</property>
|
334
|
+
<property name="can_focus">True</property>
|
335
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
336
|
+
<property name="xalign">1</property>
|
337
|
+
</widget>
|
338
|
+
</child>
|
339
|
+
</widget>
|
340
|
+
<packing>
|
341
|
+
<property name="position">1</property>
|
342
|
+
</packing>
|
343
|
+
</child>
|
344
|
+
<child>
|
345
|
+
<widget class="GtkAlignment" id="alignment14">
|
346
|
+
<property name="visible">True</property>
|
347
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
348
|
+
<property name="xalign">1</property>
|
349
|
+
<child>
|
350
|
+
<widget class="GtkEntry" id="message">
|
351
|
+
<property name="visible">True</property>
|
352
|
+
<property name="can_focus">True</property>
|
353
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
354
|
+
</widget>
|
355
|
+
</child>
|
356
|
+
</widget>
|
357
|
+
<packing>
|
358
|
+
<property name="position">2</property>
|
359
|
+
</packing>
|
360
|
+
</child>
|
361
|
+
</widget>
|
362
|
+
</child>
|
363
|
+
</widget>
|
364
|
+
<packing>
|
365
|
+
<property name="position">2</property>
|
366
|
+
</packing>
|
367
|
+
</child>
|
368
|
+
</widget>
|
369
|
+
</child>
|
370
|
+
</widget>
|
371
|
+
<packing>
|
372
|
+
<property name="expand">False</property>
|
373
|
+
<property name="position">2</property>
|
374
|
+
</packing>
|
375
|
+
</child>
|
376
|
+
<child>
|
377
|
+
<widget class="GtkAlignment" id="alignment16">
|
378
|
+
<property name="visible">True</property>
|
379
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
380
|
+
<property name="xalign">1</property>
|
381
|
+
<property name="xscale">0</property>
|
382
|
+
<property name="top_padding">5</property>
|
383
|
+
<child>
|
384
|
+
<widget class="GtkButton" id="button1">
|
385
|
+
<property name="width_request">100</property>
|
386
|
+
<property name="visible">True</property>
|
387
|
+
<property name="can_focus">True</property>
|
388
|
+
<property name="receives_default">True</property>
|
389
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
390
|
+
<property name="label" translatable="yes">gtk-refresh</property>
|
391
|
+
<property name="use_stock">True</property>
|
392
|
+
<property name="response_id">0</property>
|
393
|
+
<signal name="clicked" handler="refresh"/>
|
394
|
+
<signal name="activate" handler="refresh"/>
|
395
|
+
</widget>
|
396
|
+
</child>
|
397
|
+
</widget>
|
398
|
+
<packing>
|
399
|
+
<property name="expand">False</property>
|
400
|
+
<property name="fill">False</property>
|
401
|
+
<property name="position">3</property>
|
402
|
+
</packing>
|
403
|
+
</child>
|
404
|
+
<child>
|
405
|
+
<widget class="GtkAlignment" id="alignment5">
|
406
|
+
<property name="visible">True</property>
|
407
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
408
|
+
<property name="top_padding">10</property>
|
409
|
+
<property name="bottom_padding">10</property>
|
410
|
+
<child>
|
411
|
+
<widget class="GtkHSeparator" id="hseparator3">
|
412
|
+
<property name="visible">True</property>
|
413
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
414
|
+
</widget>
|
415
|
+
</child>
|
416
|
+
</widget>
|
417
|
+
<packing>
|
418
|
+
<property name="expand">False</property>
|
419
|
+
<property name="position">4</property>
|
420
|
+
</packing>
|
421
|
+
</child>
|
422
|
+
<child>
|
423
|
+
<widget class="GtkAlignment" id="alignment6">
|
424
|
+
<property name="visible">True</property>
|
425
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
426
|
+
<child>
|
427
|
+
<widget class="GtkScrolledWindow" id="scrolledwindow1">
|
428
|
+
<property name="visible">True</property>
|
429
|
+
<property name="can_focus">True</property>
|
430
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
431
|
+
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
432
|
+
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
433
|
+
<property name="shadow_type">GTK_SHADOW_IN</property>
|
434
|
+
<child>
|
435
|
+
<widget class="GtkTreeView" id="transactions">
|
436
|
+
<property name="visible">True</property>
|
437
|
+
<property name="can_focus">True</property>
|
438
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
439
|
+
<property name="enable_search">False</property>
|
440
|
+
</widget>
|
441
|
+
</child>
|
442
|
+
</widget>
|
443
|
+
</child>
|
444
|
+
</widget>
|
445
|
+
<packing>
|
446
|
+
<property name="position">5</property>
|
447
|
+
</packing>
|
448
|
+
</child>
|
449
|
+
<child>
|
450
|
+
<widget class="GtkAlignment" id="alignment8">
|
451
|
+
<property name="visible">True</property>
|
452
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
453
|
+
<property name="top_padding">10</property>
|
454
|
+
<child>
|
455
|
+
<widget class="GtkLabel" id="notification">
|
456
|
+
<property name="visible">True</property>
|
457
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
458
|
+
<property name="xalign">1</property>
|
459
|
+
</widget>
|
460
|
+
</child>
|
461
|
+
</widget>
|
462
|
+
<packing>
|
463
|
+
<property name="expand">False</property>
|
464
|
+
<property name="position">6</property>
|
465
|
+
</packing>
|
466
|
+
</child>
|
467
|
+
</widget>
|
468
|
+
</child>
|
469
|
+
</widget>
|
470
|
+
</child>
|
471
|
+
<child>
|
472
|
+
<widget class="GtkHBox" id="hbox3">
|
473
|
+
<property name="visible">True</property>
|
474
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
475
|
+
<child>
|
476
|
+
<widget class="GtkImage" id="image3">
|
477
|
+
<property name="visible">True</property>
|
478
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
479
|
+
<property name="pixbuf">piggy_small.png</property>
|
480
|
+
</widget>
|
481
|
+
</child>
|
482
|
+
<child>
|
483
|
+
<widget class="GtkLabel" id="label1">
|
484
|
+
<property name="visible">True</property>
|
485
|
+
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
486
|
+
<property name="xpad">5</property>
|
487
|
+
<property name="label" translatable="yes">ig3tool<b>interne</b></property>
|
488
|
+
<property name="use_markup">True</property>
|
489
|
+
</widget>
|
490
|
+
<packing>
|
491
|
+
<property name="position">1</property>
|
492
|
+
</packing>
|
493
|
+
</child>
|
494
|
+
</widget>
|
495
|
+
<packing>
|
496
|
+
<property name="type">label_item</property>
|
497
|
+
</packing>
|
498
|
+
</child>
|
499
|
+
</widget>
|
500
|
+
</child>
|
501
|
+
</widget>
|
502
|
+
</child>
|
503
|
+
</widget>
|
504
|
+
</glade-interface>
|