Piggy 0.4.2.4 → 0.4.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.txt +15 -0
- data/INSTALL.txt +9 -4
- data/README.txt +8 -6
- data/bin/directory_diff +1 -1
- data/bin/ftp_browser +1 -1
- data/bin/piggy +1 -1
- data/lib/directory_diff.rb +8 -6
- data/lib/ftp_browser.rb +8 -6
- data/lib/icons/connect.ico +0 -0
- data/lib/icons/hide_details.ico +0 -0
- data/lib/icons/show_details.ico +0 -0
- data/lib/piggy-core/alive_check.rb +4 -4
- data/lib/piggy-core/debug.rb +4 -4
- data/lib/piggy-core/environment.rb +24 -26
- data/lib/piggy-core/exifr_adapter.rb +11 -11
- data/lib/piggy-core/file_info.rb +61 -61
- data/lib/piggy-core/ftp_adapter.rb +24 -24
- data/lib/piggy-core/htmlgen.rb +41 -45
- data/lib/piggy-core/nconvert_thumbsgen.rb +22 -22
- data/lib/piggy-core/options.rb +25 -19
- data/lib/piggy-core/options_persistence.rb +8 -8
- data/lib/piggy-core/progress.rb +7 -7
- data/lib/piggy-core/rmagick_thumbnail_page_generator.rb +14 -14
- data/lib/piggy-core/thumbnail_generator.rb +26 -26
- data/lib/piggy-core/thumbnail_page_generator.rb +234 -230
- data/lib/piggy-core/upload_info.rb +22 -22
- data/lib/piggy-core/version.rb +7 -7
- data/lib/piggy-core/winshell.rb +136 -80
- data/lib/piggy-gui/dir_chooser.rb +14 -14
- data/lib/piggy-gui/directory_diff_widget.rb +177 -160
- data/lib/piggy-gui/filtered_file_list.rb +87 -87
- data/lib/piggy-gui/fox_thumbsgen.rb +4 -4
- data/lib/piggy-gui/ftp_browser_widget.rb +211 -155
- data/lib/piggy-gui/fullscreen.rb +4 -4
- data/lib/piggy-gui/html_generation_dialog.rb +42 -115
- data/lib/piggy-gui/html_options_widget.rb +97 -0
- data/lib/piggy-gui/image_processor.rb +58 -58
- data/lib/piggy-gui/modal_dialog.rb +11 -5
- data/lib/piggy-gui/multiimagecanvas.rb +59 -59
- data/lib/piggy-gui/options_dialog.rb +170 -48
- data/lib/piggy-gui/piggy_image_browser.rb +382 -340
- data/lib/piggy-gui/pipe_log.rb +17 -17
- data/lib/piggy-gui/progress_with_dialog.rb +8 -8
- data/lib/piggy-gui/require-fox.rb +23 -8
- data/lib/piggy.rb +7 -5
- data/lib/templates/styles/basic/style.css +16 -14
- data/lib/templates/styles/black/style.css +28 -29
- data/lib/templates/styles/roundedbox/style.css +28 -31
- data/lib/templates/styles/shadow/style.css +26 -26
- data/lib/templates/styles/shadow_D9F5F3/style.css +1 -1
- data/lib/templates/styles/shadow_black/lo.jpg +0 -0
- data/lib/templates/styles/shadow_black/lu.jpg +0 -0
- data/lib/templates/styles/shadow_black/ro.jpg +0 -0
- data/lib/templates/styles/shadow_black/ru.jpg +0 -0
- data/lib/templates/styles/shadow_black/style.css +78 -0
- data/lib/templates/styles/shadow_bowers/style.css +48 -51
- data/lib/templates/styles/sylvester/sh.png +0 -0
- data/lib/templates/styles/sylvester/style.css +74 -0
- data/lib/templates/styles/sylvester/wunderkerze.jpg +0 -0
- data/test/file_info_test.rb +29 -29
- metadata +52 -38
data/lib/piggy-gui/pipe_log.rb
CHANGED
@@ -13,54 +13,54 @@ class PipeLog < Fox::FXText
|
|
13
13
|
|
14
14
|
def initialize(parent)
|
15
15
|
super(parent)
|
16
|
-
@
|
16
|
+
@input_types = INPUT_READ|INPUT_EXCEPT
|
17
17
|
@pipes = Array.new
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
21
|
-
|
22
|
-
|
20
|
+
def run_command(commandline, working_dir, spawn = false)
|
21
|
+
in_path(working_dir) {
|
22
|
+
run_command_and_display_output(commandline, spawn)
|
23
23
|
}
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
26
|
+
def has_open_pipes?
|
27
27
|
!@pipes.empty?
|
28
28
|
end
|
29
29
|
|
30
30
|
# This should be used explicitly before destruction
|
31
|
-
def
|
32
|
-
@pipes.each { |p| getApp().removeInput(p, @
|
31
|
+
def close_pipes
|
32
|
+
@pipes.each { |p| getApp().removeInput(p, @input_types) }
|
33
33
|
@pipes = Array.new
|
34
34
|
end
|
35
35
|
|
36
36
|
private
|
37
37
|
|
38
|
-
def
|
39
|
-
return if !
|
40
|
-
getApp().removeInput(
|
41
|
-
@pipes.delete(
|
38
|
+
def close_pipe(pipe)
|
39
|
+
return if !pipe
|
40
|
+
getApp().removeInput(pipe, @input_types)
|
41
|
+
@pipes.delete(pipe)
|
42
42
|
end
|
43
43
|
|
44
|
-
def
|
44
|
+
def run_command_and_display_output(commandline, spawn)
|
45
45
|
unless spawn && UsePipes
|
46
46
|
system(commandline)
|
47
47
|
msg = "#{$? != 0 ? 'Error' : 'Success'}: #{commandline}\n"
|
48
48
|
appendText(msg)
|
49
49
|
return
|
50
50
|
end
|
51
|
-
|
51
|
+
new_pipe = IO.popen("#{commandline} 2>&1")
|
52
52
|
return if(spawn)
|
53
|
-
getApp().addInput(
|
53
|
+
getApp().addInput(new_pipe, @input_types) { |sender, sel, ptr|
|
54
54
|
case FXSELTYPE(sel)
|
55
55
|
when SEL_IO_READ
|
56
|
-
text =
|
56
|
+
text = new_pipe.read
|
57
57
|
if text
|
58
58
|
appendText(text)
|
59
59
|
else
|
60
|
-
|
60
|
+
close_pipe(new_pipe)
|
61
61
|
end
|
62
62
|
when SEL_IO_EXCEPT
|
63
|
-
|
63
|
+
close_pipe(new_pipe)
|
64
64
|
end
|
65
65
|
}
|
66
66
|
end
|
@@ -6,12 +6,12 @@ class ProgressWithDialog < Progress
|
|
6
6
|
def initialize(client)
|
7
7
|
super()
|
8
8
|
@client = client
|
9
|
-
|
9
|
+
new_dialog
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
12
|
+
def new_dialog
|
13
13
|
@progressDialog = Fox::FXProgressDialog.new(@client, @task, @task)
|
14
|
-
@progressDialog.setMessage(
|
14
|
+
@progressDialog.setMessage(ruby_2_fox(@task))
|
15
15
|
@progressDialog.setProgress(@units)
|
16
16
|
@progressDialog.setTotal(@numUnits)
|
17
17
|
@progressDialog.create
|
@@ -19,13 +19,13 @@ class ProgressWithDialog < Progress
|
|
19
19
|
@progressDialog.repaint
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
22
|
+
def log_task
|
23
23
|
@client.repaint
|
24
24
|
if(@progressDialog.isCancelled)
|
25
25
|
cancel
|
26
26
|
else
|
27
|
-
@progressDialog.setTitle(
|
28
|
-
@progressDialog.setMessage(
|
27
|
+
@progressDialog.setTitle(ruby_2_fox(@task))
|
28
|
+
@progressDialog.setMessage(ruby_2_fox(@task))
|
29
29
|
@progressDialog.setProgress(@units)
|
30
30
|
@progressDialog.setTotal(@numUnits)
|
31
31
|
@progressDialog.repaint
|
@@ -33,12 +33,12 @@ class ProgressWithDialog < Progress
|
|
33
33
|
super
|
34
34
|
end
|
35
35
|
|
36
|
-
def
|
36
|
+
def log_progress(message, unit)
|
37
37
|
@client.repaint
|
38
38
|
if @progressDialog.isCancelled
|
39
39
|
cancel
|
40
40
|
else
|
41
|
-
@progressDialog.setMessage(
|
41
|
+
@progressDialog.setMessage(ruby_2_fox(message))
|
42
42
|
@progressDialog.setProgress(@units)
|
43
43
|
@progressDialog.repaint
|
44
44
|
end
|
@@ -10,7 +10,7 @@
|
|
10
10
|
require 'rubygems'
|
11
11
|
require 'piggy-core/encoding'
|
12
12
|
|
13
|
-
def
|
13
|
+
def load_fox
|
14
14
|
begin
|
15
15
|
['fox16', 'fox14', 'fox12', 'fox'].each { |v|
|
16
16
|
begin
|
@@ -24,9 +24,10 @@ def loadFox
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
FOXLIB =
|
27
|
+
FOXLIB = load_fox
|
28
28
|
|
29
29
|
puts "Using FXRuby library #{FOXLIB}"
|
30
|
+
require "#{FOXLIB}/colors"
|
30
31
|
|
31
32
|
FOXVERSION_GE_1_2 = (FOXLIB != 'fox')
|
32
33
|
|
@@ -42,7 +43,7 @@ if FOXVERSION_GE_1_2
|
|
42
43
|
|
43
44
|
PIGGY_WINDOW_PLACEMENT = Fox::PLACEMENT_SCREEN
|
44
45
|
|
45
|
-
def
|
46
|
+
def new_combobox(p1, p2, p3, p4, p5, p6)
|
46
47
|
box = Fox::FXComboBox.new(p1, p2, p4, p5, p6)
|
47
48
|
box.setNumVisible(p3)
|
48
49
|
box
|
@@ -59,7 +60,7 @@ else
|
|
59
60
|
|
60
61
|
PIGGY_WINDOW_PLACEMENT = Fox::PLACEMENT_DEFAULT
|
61
62
|
|
62
|
-
def
|
63
|
+
def new_combobox(p1, p2, p3, p4, p5, p6)
|
63
64
|
Fox::FXComboBox.new(p1, p2, p3, p4, p5, p6)
|
64
65
|
end
|
65
66
|
def FXSELTYPE(sel)
|
@@ -68,20 +69,34 @@ else
|
|
68
69
|
end
|
69
70
|
|
70
71
|
if ['fox14', 'fox12', 'fox'].include? FOXLIB
|
71
|
-
def
|
72
|
+
def fox_2_ruby(string)
|
72
73
|
string
|
73
74
|
end
|
74
75
|
|
75
|
-
def
|
76
|
+
def ruby_2_fox(string)
|
76
77
|
string
|
77
78
|
end
|
78
79
|
else
|
79
|
-
def
|
80
|
+
def fox_2_ruby(string)
|
80
81
|
utf8_as_string(string)
|
81
82
|
end
|
82
83
|
|
83
|
-
def
|
84
|
+
def ruby_2_fox(string)
|
84
85
|
string_as_utf8(string)
|
85
86
|
end
|
86
87
|
end
|
87
88
|
|
89
|
+
def remove_padding(frame)
|
90
|
+
frame.padLeft=0
|
91
|
+
frame.padRight=0
|
92
|
+
frame.padTop=0
|
93
|
+
frame.padBottom=0
|
94
|
+
return frame
|
95
|
+
end
|
96
|
+
|
97
|
+
def new_hframe_without_padding(parent)
|
98
|
+
f = Fox::FXHorizontalFrame.new(parent)
|
99
|
+
f.setFrameStyle(Fox::FRAME_NONE)
|
100
|
+
remove_padding(f)
|
101
|
+
return f
|
102
|
+
end
|
data/lib/piggy.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
require 'piggy-gui/piggy_image_browser'
|
8
8
|
|
9
|
-
def
|
9
|
+
def run_piggy
|
10
10
|
# Make application
|
11
11
|
application = Fox::FXApp.new("Piggy", "Sascha D�rdelmann")
|
12
12
|
|
@@ -14,22 +14,24 @@ def runPiggy
|
|
14
14
|
window = PiggyImageBrowser.new(application)
|
15
15
|
|
16
16
|
# Handle interrupts to terminate program gracefully
|
17
|
-
application.addSignal("SIGINT", window.method(:
|
17
|
+
application.addSignal("SIGINT", window.method(:on_terminate))
|
18
18
|
|
19
19
|
# Create it
|
20
20
|
application.create
|
21
21
|
window.show
|
22
22
|
|
23
23
|
# Passed image file or directory?
|
24
|
-
arg = ARGV.length > 0 ? ARGV[0] : window.
|
25
|
-
window.
|
24
|
+
arg = ARGV.length > 0 ? ARGV[0] : window.default_startup_directory
|
25
|
+
window.open_file_or_link(arg)
|
26
26
|
|
27
27
|
# Run
|
28
28
|
application.run
|
29
29
|
end
|
30
30
|
|
31
|
+
alias :runPiggy :run_piggy
|
32
|
+
|
31
33
|
if $0 == __FILE__
|
32
|
-
|
34
|
+
run_piggy
|
33
35
|
end
|
34
36
|
|
35
37
|
|
@@ -1,27 +1,29 @@
|
|
1
|
-
body
|
2
|
-
|
1
|
+
body {
|
2
|
+
text-align: center;
|
3
3
|
}
|
4
4
|
|
5
|
-
dl {
|
6
|
-
|
5
|
+
dl, table.table {
|
6
|
+
margin-left: auto;
|
7
|
+
margin-right: auto;
|
8
|
+
max-width: 600px;
|
7
9
|
}
|
8
10
|
|
9
11
|
/* no max-width in IE < 7 */
|
10
12
|
* html dl {
|
11
|
-
|
13
|
+
width: 600px;
|
12
14
|
}
|
13
15
|
|
14
16
|
dd {
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
margin:0;
|
18
|
+
padding: 0;
|
19
|
+
width: 110px;
|
20
|
+
height: 116px;
|
21
|
+
float: left;
|
22
|
+
vertical-align: top;
|
23
|
+
text-align: center;
|
22
24
|
}
|
23
25
|
|
24
26
|
td {
|
25
|
-
|
26
|
-
|
27
|
+
vertical-align: top;
|
28
|
+
text-align: center;
|
27
29
|
}
|
@@ -1,64 +1,63 @@
|
|
1
1
|
body {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
body.thumbs {
|
7
|
-
text-align: center;
|
2
|
+
color: #FFFFFF;
|
3
|
+
background:black;
|
4
|
+
text-align: center;
|
8
5
|
}
|
9
6
|
|
10
7
|
a:link {
|
11
|
-
|
12
|
-
|
8
|
+
color: #FFFF00;
|
9
|
+
text-decoration: underline;
|
13
10
|
}
|
14
11
|
|
15
12
|
a:visited {
|
16
|
-
|
17
|
-
|
13
|
+
color: #FFFF00;
|
14
|
+
text-decoration: underline;
|
18
15
|
}
|
19
16
|
|
20
17
|
a:hover {
|
21
|
-
|
22
|
-
|
18
|
+
color: #AAAAAA;
|
19
|
+
text-decoration: underline;
|
23
20
|
}
|
24
21
|
|
25
22
|
a:active {
|
26
|
-
|
27
|
-
|
23
|
+
color: #FFFF00;
|
24
|
+
text-decoration: none;
|
28
25
|
}
|
29
26
|
|
30
|
-
dl {
|
31
|
-
|
27
|
+
dl, table.table {
|
28
|
+
margin-left: auto;
|
29
|
+
margin-right: auto;
|
30
|
+
max-width: 600px;
|
32
31
|
}
|
33
32
|
|
34
33
|
/* no max-width in IE < 7 */
|
35
34
|
* html dl {
|
36
|
-
|
35
|
+
width: 600px;
|
37
36
|
}
|
38
37
|
|
39
38
|
dd {
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
39
|
+
margin:0;
|
40
|
+
padding: 0;
|
41
|
+
width: 110px;
|
42
|
+
height: 114px;
|
43
|
+
float: left;
|
44
|
+
vertical-align: top;
|
45
|
+
text-align: center;
|
47
46
|
}
|
48
47
|
|
49
48
|
img {
|
50
|
-
|
49
|
+
border-style: none
|
51
50
|
}
|
52
51
|
|
53
52
|
div {
|
54
|
-
|
53
|
+
margin:0;
|
55
54
|
}
|
56
55
|
|
57
56
|
.thumb {
|
58
|
-
|
57
|
+
margin:0;
|
59
58
|
}
|
60
59
|
|
61
60
|
.thumb p {
|
62
|
-
|
63
|
-
|
61
|
+
margin:0;
|
62
|
+
padding:0;
|
64
63
|
}
|
@@ -1,70 +1,67 @@
|
|
1
1
|
body {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
body.thumbs {
|
6
|
-
text-align: center;
|
2
|
+
background-color:#F1EDCF;
|
3
|
+
text-align: center;
|
7
4
|
}
|
8
5
|
|
9
6
|
h1,h2,h3 {
|
10
|
-
|
7
|
+
color:#667553;
|
11
8
|
}
|
12
9
|
|
13
|
-
dl {
|
14
|
-
|
15
|
-
|
16
|
-
|
10
|
+
dl, table.table {
|
11
|
+
margin-left: auto;
|
12
|
+
margin-right: auto;
|
13
|
+
max-width: 600px;
|
17
14
|
}
|
18
15
|
|
19
16
|
/* no max-width in IE < 7 */
|
20
17
|
* html dl {
|
21
|
-
|
18
|
+
width: 600px;
|
22
19
|
}
|
23
20
|
|
24
21
|
dd {
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
22
|
+
margin:0;
|
23
|
+
padding: 0;
|
24
|
+
width: 130px;
|
25
|
+
height: 130px;
|
26
|
+
float: left;
|
27
|
+
vertical-align: top;
|
28
|
+
text-align: center;
|
32
29
|
}
|
33
30
|
|
34
31
|
div {
|
35
|
-
|
32
|
+
margin:0;
|
36
33
|
}
|
37
34
|
|
38
35
|
.preview {
|
39
|
-
|
36
|
+
background:url(roundedbox_ro.gif) top right no-repeat;
|
40
37
|
}
|
41
38
|
|
42
39
|
.thumb {
|
43
|
-
|
44
|
-
|
40
|
+
margin:0;
|
41
|
+
background:url(roundedbox_lo.gif) top left no-repeat;
|
45
42
|
}
|
46
43
|
|
47
44
|
.thumb p {
|
48
|
-
|
49
|
-
|
50
|
-
|
45
|
+
margin:0;
|
46
|
+
padding:0;
|
47
|
+
background:url(roundedbox_ru.gif) bottom right no-repeat;
|
51
48
|
}
|
52
49
|
|
53
50
|
.thumb p a {
|
54
|
-
|
55
|
-
|
56
|
-
|
51
|
+
display: block;
|
52
|
+
background:url(roundedbox_lu.gif) bottom left no-repeat;
|
53
|
+
padding: 6px 20px 20px 6px;
|
57
54
|
}
|
58
55
|
|
59
56
|
img {
|
60
|
-
|
57
|
+
border:none;
|
61
58
|
}
|
62
59
|
|
63
60
|
.image_page img {
|
64
|
-
|
61
|
+
max-width: 100%;
|
65
62
|
}
|
66
63
|
|
67
64
|
/* IE 6 image height */
|
68
65
|
* html .thumb p a {
|
69
|
-
|
66
|
+
padding-bottom: 16px;
|
70
67
|
}
|
@@ -1,63 +1,63 @@
|
|
1
|
-
body
|
2
|
-
|
1
|
+
body {
|
2
|
+
text-align: center;
|
3
3
|
}
|
4
4
|
|
5
5
|
div {
|
6
|
-
|
6
|
+
margin:0;
|
7
7
|
}
|
8
8
|
|
9
|
-
dl {
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
dl, table.table {
|
10
|
+
margin-left: auto;
|
11
|
+
margin-right: auto;
|
12
|
+
max-width: 600px;
|
13
13
|
}
|
14
14
|
|
15
15
|
/* no max-width in IE < 7 */
|
16
16
|
* html dl {
|
17
|
-
|
17
|
+
width: 600px;
|
18
18
|
}
|
19
19
|
|
20
20
|
dd {
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
margin:0;
|
22
|
+
padding: 0;
|
23
|
+
width: 110px;
|
24
|
+
height: 114px;
|
25
|
+
float: left;
|
26
|
+
vertical-align: top;
|
27
|
+
text-align: center;
|
28
28
|
}
|
29
29
|
|
30
30
|
.preview {
|
31
|
-
|
31
|
+
background:url(ro.gif) top right no-repeat;
|
32
32
|
}
|
33
33
|
|
34
34
|
.thumb {
|
35
|
-
|
35
|
+
background:url(lo.gif) top left no-repeat;
|
36
36
|
}
|
37
37
|
|
38
38
|
.thumb p {
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
margin:0;
|
40
|
+
padding:0;
|
41
|
+
background:url(ru.gif) bottom right no-repeat;
|
42
42
|
}
|
43
43
|
|
44
44
|
.thumb p a {
|
45
|
-
|
46
|
-
|
47
|
-
|
45
|
+
display: block;
|
46
|
+
background: url(lu.gif) bottom left no-repeat;
|
47
|
+
padding: 0px 9px 9px 0px;
|
48
48
|
}
|
49
49
|
|
50
50
|
.thumb p a img {
|
51
|
-
|
51
|
+
border:none;
|
52
52
|
}
|
53
53
|
|
54
54
|
.image_page img {
|
55
|
-
|
55
|
+
max-width: 100%;
|
56
56
|
}
|
57
57
|
|
58
58
|
/* IE 6 image height */
|
59
59
|
* html .thumb p a {
|
60
|
-
|
60
|
+
padding-bottom: 5px;
|
61
61
|
}
|
62
62
|
|
63
63
|
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,78 @@
|
|
1
|
+
body {
|
2
|
+
text-align: center;
|
3
|
+
color:white;
|
4
|
+
background: black;
|
5
|
+
}
|
6
|
+
|
7
|
+
a {
|
8
|
+
color:yellow;
|
9
|
+
}
|
10
|
+
|
11
|
+
.image_page a {
|
12
|
+
margin: 10px;
|
13
|
+
}
|
14
|
+
|
15
|
+
.thumbs dl.table {
|
16
|
+
padding-left: 84px;
|
17
|
+
}
|
18
|
+
|
19
|
+
div {
|
20
|
+
margin:0;
|
21
|
+
padding:0;
|
22
|
+
}
|
23
|
+
|
24
|
+
dl, table.table {
|
25
|
+
margin-left: auto;
|
26
|
+
margin-right: auto;
|
27
|
+
max-width: 600px;
|
28
|
+
}
|
29
|
+
|
30
|
+
/* no max-width in IE < 7 */
|
31
|
+
* html dl {
|
32
|
+
width: 600px;
|
33
|
+
}
|
34
|
+
|
35
|
+
dd {
|
36
|
+
margin: 0px;
|
37
|
+
padding: 0;
|
38
|
+
width: 128px;
|
39
|
+
height: 128px;
|
40
|
+
float: left;
|
41
|
+
vertical-align: middle;
|
42
|
+
text-align: center;
|
43
|
+
}
|
44
|
+
|
45
|
+
.preview {
|
46
|
+
background:url(ro.jpg) top right no-repeat;
|
47
|
+
}
|
48
|
+
|
49
|
+
.thumb {
|
50
|
+
background:url(lo.jpg) top left no-repeat;
|
51
|
+
}
|
52
|
+
|
53
|
+
.thumb p {
|
54
|
+
margin:0;
|
55
|
+
padding:0;
|
56
|
+
background:url(ru.jpg) bottom right no-repeat;
|
57
|
+
}
|
58
|
+
|
59
|
+
.thumb p a {
|
60
|
+
display: block;
|
61
|
+
background: url(lu.jpg) bottom left no-repeat;
|
62
|
+
padding: 0px;
|
63
|
+
padding-right: 28px;
|
64
|
+
padding-bottom: 28px;
|
65
|
+
}
|
66
|
+
|
67
|
+
.thumb p a img {
|
68
|
+
border:none;
|
69
|
+
}
|
70
|
+
|
71
|
+
.image_page img {
|
72
|
+
max-width: 100%;
|
73
|
+
}
|
74
|
+
|
75
|
+
/* IE 6 image height */
|
76
|
+
* html .thumb p a {
|
77
|
+
padding-bottom: 24px;
|
78
|
+
}
|