aboutsummaryrefslogtreecommitdiff
path: root/imagegrid/imagegrid.tk
blob: f984d3855a112f824dbebd8f47d732c5a995ddd1 (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
############ procediments per imagegrid  -- slario(at)gmail.com [a partir del codi del grid de l'Ives: ydegoyon(at)free.fr]        #########

proc imagegrid_apply {id} {
# strip "." from the TK id to make a variable name suffix 
     set vid [string trimleft $id .]

# for each variable, make a local variable to hold its name...
     set var_graph_name [concat graph_name_$vid]
     global $var_graph_name
     set var_graph_num_fil [concat graph_num_fil_$vid]
     global $var_graph_num_fil 
     set var_graph_num_col [concat graph_num_col_$vid]
     global $var_graph_num_col
     set var_graph_color_fons [concat graph_color_fons_$vid]
     global $var_graph_color_fons
     set var_graph_color_marc [concat graph_color_marc_$vid]
     global $var_graph_color_marc
     set var_graph_color_grasp [concat graph_color_grasp_$vid]
     global $var_graph_color_grasp

     set cmd [concat $id dialog \
     	[eval concat $$var_graph_name] \
     	[eval concat $$var_graph_num_fil] \
     	[eval concat $$var_graph_num_col] \
     	[eval concat $$var_graph_color_fons] \
     	[eval concat $$var_graph_color_marc] \
     	[eval concat $$var_graph_color_grasp] \
 	\;]
#puts stderr $cmd
     pd $cmd
}
 
proc imagegrid_cancel {id} {
     set cmd [concat $id cancel \;]
#puts stderr $cmd
     pd $cmd
}
 
proc imagegrid_ok {id} {
     imagegrid_apply $id
     imagegrid_cancel $id
}
 
proc pdtk_imagegrid_dialog {id name num_fil num_col color_fons color_marc color_grasp} {
     set vid [string trimleft $id .]
     set var_graph_name [concat graph_name_$vid]
     global $var_graph_name
     set var_graph_num_fil [concat graph_num_fil_$vid]
     global $var_graph_num_fil
     set var_graph_num_col [concat graph_num_col_$vid]
     global $var_graph_num_col
     set var_graph_color_fons [concat graph_color_fons_$vid]
     global $var_graph_color_fons
     set var_graph_color_marc [concat graph_color_marc_$vid]
     global $var_graph_color_marc
     set var_graph_color_grasp [concat graph_color_grasp_$vid]
     global $var_graph_color_grasp
     
     set $var_graph_name $name
     set $var_graph_num_fil $num_fil
     set $var_graph_num_col $num_col
     set $var_graph_color_fons $color_fons
     set $var_graph_color_marc $color_marc
     set $var_graph_color_grasp $color_grasp
 
     toplevel $id
     wm title $id {imagegrid}
     wm protocol $id WM_DELETE_WINDOW [concat imagegrid_cancel $id]
 
     label $id.label -text {IMAGEGRID PROPERTIES}
     pack $id.label -side top
 
     frame $id.buttonframe
     pack $id.buttonframe -side bottom -fill x -pady 2m
     button $id.buttonframe.cancel -text {Cancel}\
     	-command "imagegrid_cancel $id"
     button $id.buttonframe.apply -text {Apply}\
     	-command "imagegrid_apply $id"
     button $id.buttonframe.ok -text {OK}\
     	-command "imagegrid_ok $id"
     pack $id.buttonframe.cancel -side left -expand 1
     pack $id.buttonframe.apply -side left -expand 1
     pack $id.buttonframe.ok -side left -expand 1
     
     frame $id.1rangef
     pack $id.1rangef -side top
     label $id.1rangef.lname -text "Name :"
     entry $id.1rangef.name -textvariable $var_graph_name -width 7
     pack $id.1rangef.lname $id.1rangef.name -side left
 
     frame $id.2rangef
     pack $id.2rangef -side top
     label $id.2rangef.lnum_fil -text "Rows :"
     entry $id.2rangef.num_fil -textvariable $var_graph_num_fil -width 7
     pack $id.2rangef.lnum_fil $id.2rangef.num_fil -side left
 
     frame $id.3rangef
     pack $id.3rangef -side top
     label $id.3rangef.lnum_col -text "Cols :"
     entry $id.3rangef.num_col -textvariable $var_graph_num_col -width 7
     pack $id.3rangef.lnum_col $id.3rangef.num_col -side left
 
     frame $id.4rangef
     pack $id.4rangef -side top
     label $id.4rangef.lcolor_fons -text "Bg Color :"
     entry $id.4rangef.color_fons -textvariable $var_graph_color_fons -width 7
     pack $id.4rangef.lcolor_fons $id.4rangef.color_fons -side left

     frame $id.5rangef
     pack $id.5rangef -side top
     label $id.5rangef.lcolor_marc -text "Border Color :"
     entry $id.5rangef.color_marc -textvariable $var_graph_color_marc -width 7
     pack $id.5rangef.lcolor_marc $id.5rangef.color_marc -side left

     frame $id.6rangef
     pack $id.6rangef -side top
     label $id.6rangef.lcolor_grasp -text "Sel Color :"
     entry $id.6rangef.color_grasp -textvariable $var_graph_color_grasp -width 7
     pack $id.6rangef.lcolor_grasp $id.6rangef.color_grasp -side left

     bind $id.1rangef.name <KeyPress-Return> [concat imagegrid_ok $id]
     bind $id.2rangef.num_fil <KeyPress-Return> [concat imagegrid_ok $id]
     bind $id.3rangef.num_col <KeyPress-Return> [concat imagegrid_ok $id]
     bind $id.4rangef.color_fons <KeyPress-Return> [concat imagegrid_ok $id]
     bind $id.5rangef.color_marc <KeyPress-Return> [concat imagegrid_ok $id]
     bind $id.6rangef.color_grasp <KeyPress-Return> [concat imagegrid_ok $id]

     focus $id.1rangef.name
}

proc table {w content args} {
    frame $w -bg black
    set r 0
    foreach row $content {
        set fields {}
        set c 0
        foreach col $row {
            # lappend fields [label $w.$r/$c -text $col]
	    set img [image create photo -file $col]
	    lappend fields [label $w.$r/$c -image $img]
            incr c
        }
        eval grid $fields -sticky news -padx 1 -pady 1
        incr r
    }
    set w
}

proc pdtk_imagegrid_table {id name num_fil num_col} {
    table .tauler {
        {sll80x60.gif 3160x120.gif sll80x60.gif}
        {sll80x60.gif sll80x60.gif sll80x60.gif}
        {sll80x60.ppm sll80x60.gif 3160x120.gif}
    }
    pack .tauler
}
############ FINAL procediments per imagegrid  -- slario(at)gmail.com [a partir del codi del grid de l'Ives: ydegoyon(at)free.fr]        #########