Revision 32fa785e
Von Moritz Bunkus vor mehr als 16 Jahren hinzugefügt
SL/Menu.pm | ||
---|---|---|
107 | 107 |
return $str; |
108 | 108 |
} |
109 | 109 |
|
110 |
sub menuitem_new { |
|
111 |
$main::lxdebug->enter_sub(); |
|
112 |
|
|
113 |
my ($self, $name, $item) = @_; |
|
114 |
|
|
115 |
my $form = $main::form; |
|
116 |
|
|
117 |
my $module = $self->{$name}->{module} || $form->{script}; |
|
118 |
my $action = $self->{$name}->{action}; |
|
119 |
|
|
120 |
$item->{target} = $self->{$name}->{target} || "main_window"; |
|
121 |
$item->{href} = $self->{$name}->{href} || "${module}?action=" . $form->escape($action); |
|
122 |
|
|
123 |
my @vars = qw(module target href); |
|
124 |
push @vars, $action unless ($self->{$name}->{href}); |
|
125 |
|
|
126 |
map { delete $self->{$name}{$_} } @vars; |
|
127 |
|
|
128 |
# add other params |
|
129 |
foreach my $key (keys %{ $self->{$name} }) { |
|
130 |
my ($value, $conf) = split(m/=/, $self->{$name}->{$key}, 2); |
|
131 |
$value = $myconfig->{$value} . "/$conf" if ($conf); |
|
132 |
$item->{href} .= "&" . $form->escape($key) . "=" . $form->escape($value); |
|
133 |
} |
|
134 |
|
|
135 |
$main::lxdebug->leave_sub(); |
|
136 |
} |
|
137 |
|
|
110 | 138 |
sub menuitem_v3 { |
111 | 139 |
$main::lxdebug->enter_sub(); |
112 | 140 |
|
... | ... | |
223 | 251 |
return $str; |
224 | 252 |
} |
225 | 253 |
|
226 |
sub menuitemNew { |
|
227 |
my ($self, $myconfig, $form, $item) = @_; |
|
228 |
|
|
229 |
my $module = $form->{script}; |
|
230 |
my $action = "section_menu"; |
|
231 |
|
|
232 |
#if ($self->{$item}{module}) { |
|
233 |
$module = $self->{$item}{module}; |
|
234 |
|
|
235 |
#} |
|
236 |
if ($self->{$item}{action}) { |
|
237 |
$action = $self->{$item}{action}; |
|
238 |
} |
|
239 |
|
|
240 |
my $level = $form->escape($item); |
|
241 |
my $str = qq|$module?action=$action&level=$level|; |
|
242 |
my @vars = qw(module action target href); |
|
243 |
|
|
244 |
if ($self->{$item}{href}) { |
|
245 |
$str = qq|$self->{$item}{href}|; |
|
246 |
@vars = qw(module target href); |
|
247 |
} |
|
248 |
|
|
249 |
map { delete $self->{$item}{$_} } @vars; |
|
250 |
|
|
251 |
# add other params |
|
252 |
foreach my $key (keys %{ $self->{$item} }) { |
|
253 |
$str .= "&" . $form->escape($key, 1) . "="; |
|
254 |
($value, $conf) = split(/=/, $self->{$item}{$key}, 2); |
|
255 |
$value = $myconfig->{$value} . "/$conf" if ($conf); |
|
256 |
$str .= $form->escape($value, 1); |
|
257 |
} |
|
258 |
|
|
259 |
$str .= " "; |
|
260 |
|
|
261 |
} |
|
262 |
|
|
263 | 254 |
sub access_control { |
264 | 255 |
$main::lxdebug->enter_sub(2); |
265 | 256 |
|
bin/mozilla/menunew.pl | ||
---|---|---|
30 | 30 |
# |
31 | 31 |
# thre frame layout with refractured menu |
32 | 32 |
# |
33 |
# CHANGE LOG: |
|
34 |
# DS. 2002-03-25 Created |
|
35 |
# 2004-12-14 - New Optik - Marco Welter <mawe@linux-studio.de> |
|
36 | 33 |
####################################################################### |
37 | 34 |
|
38 |
$menufile = "menu.ini"; |
|
35 |
use English qw(-no_match_vars); |
|
36 |
use List::Util qw(max); |
|
37 |
|
|
39 | 38 |
use SL::Menu; |
40 |
use CGI::Carp qw(fatalsToBrowser); |
|
41 | 39 |
|
42 | 40 |
1; |
43 | 41 |
|
44 | 42 |
# end of main |
45 | 43 |
|
46 | 44 |
sub display { |
45 |
$form->header(); |
|
47 | 46 |
|
48 |
$form->header; |
|
49 |
|
|
50 |
&clock_line; |
|
51 |
|
|
52 |
&acc_menu; |
|
53 |
|
|
54 |
print qq| |
|
55 |
<iframe id="win1" src="login.pl?action=company_logo" width="100%" height="93%" name="main_window" style="position: absolute; border:0px;"> |
|
56 |
<p>Ihr Browser kann leider keine eingebetteten Frames anzeigen. |
|
57 |
</p> |
|
58 |
</iframe> |
|
59 |
</body> |
|
60 |
</html> |
|
61 |
|
|
62 |
|; |
|
47 |
# $form->{force_ul_width} = $ENV{HTTP_USER_AGENT} =~ m/MSIE\s+6\./; |
|
48 |
$form->{force_ul_width} = $ENV{HTTP_USER_AGENT} !~ m/Opera/; |
|
49 |
# $form->{force_ul_width} = 1; |
|
50 |
$form->{date} = clock_line(); |
|
51 |
$form->{menu_items} = acc_menu(); |
|
63 | 52 |
|
53 |
print $form->parse_html_template("menu/menunew"); |
|
64 | 54 |
} |
65 | 55 |
|
66 | 56 |
sub clock_line { |
67 |
|
|
68 |
$fensterlink="menunew.pl?action=display"; |
|
69 |
$fenster = "["."<a href=\"$fensterlink\" target=\"_blank\">neues Fenster</a>]"; |
|
70 |
|
|
71 |
$login = "[Nutzer " |
|
72 |
. $form->{login} |
|
73 |
. " - <a href=\"login.pl?action=logout\" target=\"_top\">" |
|
74 |
. $locale->text('Logout') |
|
75 |
. "</a>] "; |
|
76 | 57 |
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, |
77 | 58 |
$Jahr, $Wochentag, $Jahrestag, $Sommerzeit) |
78 | 59 |
= localtime(time); |
79 |
my $CTIME_String = localtime(time); |
|
80 | 60 |
$Monat += 1; |
81 | 61 |
$Jahrestag += 1; |
82 | 62 |
$Monat = $Monat < 10 ? $Monat = "0" . $Monat : $Monat; |
... | ... | |
88 | 68 |
"April", "Mai", "Juni", "Juli", |
89 | 69 |
"August", "September", "Oktober", "November", |
90 | 70 |
"Dezember"); |
91 |
$datum =
|
|
71 |
return
|
|
92 | 72 |
$Wochentage[$Wochentag] . ", der " |
93 | 73 |
. $Monatstag . "." |
94 | 74 |
. $Monat . "." |
95 | 75 |
. $Jahr . " - "; |
96 |
|
|
97 |
#$zeit="<div id='Uhr'>".$Stunden.":".$Minuten.":".$Sekunden."</div>"; |
|
98 |
$zeit = "<div id='Uhr'>" . $Stunden . ":" . $Minuten . "</div>"; |
|
99 |
print qq| |
|
100 |
<script type="text/javascript"> |
|
101 |
<!-- |
|
102 |
function clockon() { |
|
103 |
var now = new Date(); |
|
104 |
var h = now.getHours(); |
|
105 |
var m = now.getMinutes(); |
|
106 |
document.getElementById('clock_id').innerHTML = (h<10?'0'+h:h)+":"+(m<10?'0'+m:m); |
|
107 |
var timer=setTimeout("clockon()", 10000); |
|
108 |
} |
|
109 |
window.onload=clockon |
|
110 |
//--> |
|
111 |
</script> |
|
112 |
<table border="0" width="100%" background="image/bg_titel.gif" cellpadding="0" cellspacing="0"> |
|
113 |
<tr> |
|
114 |
<td style="color:white; font-family:verdana,arial,sans-serif; font-size: 12px;"> $fenster [<a href="JavaScript:top.main_window.print()">drucken</a>]</td> |
|
115 |
<td align="right" style="vertical-align:middle; color:white; font-family:verdana,arial,sans-serif; font-size: 12px;" nowrap> |
|
116 |
$login $datum <span id='clock_id' style='position:relative'></span> |
|
117 |
</td> |
|
118 |
</tr> |
|
119 |
</table> |
|
120 |
|; |
|
121 | 76 |
} |
122 | 77 |
|
123 | 78 |
sub acc_menu { |
124 |
$mainlevel = $form->{level}; |
|
125 |
$mainlevel =~ s/\Q$mainlevel\E--//g; |
|
126 |
my $menu = new Menu "$menufile"; |
|
79 |
$locale = Locale->new($language, "menu"); |
|
127 | 80 |
|
128 |
$| = 1; |
|
81 |
my $mainlevel = $form->{level}; |
|
82 |
$mainlevel =~ s/\Q$mainlevel\E--//g; |
|
83 |
my $menu = Menu->new('menu.ini'); |
|
129 | 84 |
|
130 |
print qq| |
|
131 |
<style> |
|
132 |
<!-- |
|
85 |
$AUTOFLUSH = 1; |
|
133 | 86 |
|
134 |
.itemBorder { |
|
135 |
border: 1px solid black |
|
136 |
} |
|
87 |
my $all_items = []; |
|
88 |
create_menu($menu, $all_items); |
|
137 | 89 |
|
138 |
.itemText { |
|
139 |
text-decoration: none; |
|
140 |
color: #000000; |
|
141 |
font: 12px Arial, Helvetica |
|
142 |
} |
|
143 |
|
|
144 |
.rootItemText { |
|
145 |
text-decoration: none; |
|
146 |
color: #ffffff; |
|
147 |
font: 12px Arial, Helvetica |
|
148 |
} |
|
149 |
|
|
150 |
.menu { |
|
151 |
color:#ffffff; |
|
152 |
background:url(image/bg_css_menu.png) repeat bottom; |
|
153 |
border:1px solid; |
|
154 |
border-color:#ccc #888 #555 #bbb; |
|
155 |
} |
|
156 |
|
|
157 |
--> |
|
158 |
</style> |
|
159 |
|
|
160 |
<script type="text/javascript"> |
|
161 |
<!-- |
|
162 |
var isDOM = (document.getElementById ? true : false); |
|
163 |
var isIE4 = ((document.all && !isDOM) ? true : false); |
|
164 |
var isNS4 = (document.layers ? true : false); |
|
165 |
//var KO = (navigator.appName=="Konqueror" \|\| navigator.appName=="Opera") ; |
|
166 |
var KO = ((navigator.userAgent.indexOf('Opera',0) != -1) \|\| (navigator.userAgent.indexOf('Konqueror',0) != -1)); |
|
167 |
function getRef(id) { |
|
168 |
if (isDOM) return document.getElementById(id); |
|
169 |
if (isIE4) return document.all[id]; |
|
170 |
if (isNS4) return document.layers[id]; |
|
171 |
} |
|
172 |
function getSty(id) { |
|
173 |
return (isNS4 ? getRef(id) : getRef(id).style); |
|
174 |
} |
|
175 |
var popTimer = 0; |
|
176 |
var litNow = new Array(); |
|
177 |
function popOver(menuNum, itemNum) { |
|
178 |
if (KO) document.getElementById("win1").style.visibility = "hidden"; |
|
179 |
clearTimeout(popTimer); |
|
180 |
hideAllBut(menuNum); |
|
181 |
litNow = getTree(menuNum, itemNum); |
|
182 |
changeCol(litNow, true); |
|
183 |
targetNum = menu[menuNum][itemNum].target; |
|
184 |
if (targetNum > 0) { |
|
185 |
thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left); |
|
186 |
thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top); |
|
187 |
with (menu[targetNum][0].ref) { |
|
188 |
left = parseInt(thisX + menu[targetNum][0].x); |
|
189 |
top = parseInt(thisY + menu[targetNum][0].y); |
|
190 |
visibility = 'visible'; |
|
191 |
} |
|
192 |
} |
|
193 |
} |
|
194 |
function popOut(menuNum, itemNum) { |
|
195 |
if ((menuNum == 0) && !menu[menuNum][itemNum].target) |
|
196 |
hideAllBut(0) |
|
197 |
if (KO) document.getElementById("win1").style.visibility = "visible"; |
|
198 |
else |
|
199 |
popTimer = setTimeout('hideAllBut(0)', 500); |
|
200 |
} |
|
201 |
function getTree(menuNum, itemNum) { |
|
202 |
itemArray = new Array(menu.length); |
|
203 |
while(1) { |
|
204 |
itemArray[menuNum] = itemNum; |
|
205 |
if (menuNum == 0) return itemArray; |
|
206 |
itemNum = menu[menuNum][0].parentItem; |
|
207 |
menuNum = menu[menuNum][0].parentMenu; |
|
208 |
} |
|
209 |
} |
|
210 |
function changeCol(changeArray, isOver) { |
|
211 |
for (menuCount = 0; menuCount < changeArray.length; menuCount++) { |
|
212 |
if (changeArray[menuCount]) { |
|
213 |
newCol = isOver ? menu[menuCount][0].overCol : menu[menuCount][0].backCol; |
|
214 |
with (menu[menuCount][changeArray[menuCount]].ref) { |
|
215 |
if (isNS4) bgColor = newCol; |
|
216 |
else backgroundColor = newCol; |
|
217 |
} |
|
218 |
} |
|
219 |
} |
|
220 |
} |
|
221 |
function hideAllBut(menuNum) { |
|
222 |
var keepMenus = getTree(menuNum, 1); |
|
223 |
for (count = 0; count < menu.length; count++) |
|
224 |
if (!keepMenus[count]) |
|
225 |
menu[count][0].ref.visibility = 'hidden'; |
|
226 |
changeCol(litNow, false); |
|
227 |
} |
|
90 |
my $item = { 'subitems' => $all_items }; |
|
91 |
calculate_width($item); |
|
228 | 92 |
|
229 |
function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass) { |
|
230 |
this.isVert = isVert; |
|
231 |
this.popInd = popInd |
|
232 |
this.x = x; |
|
233 |
this.y = y; |
|
234 |
this.width = width; |
|
235 |
this.overCol = overCol; |
|
236 |
this.backCol = backCol; |
|
237 |
this.borderClass = borderClass; |
|
238 |
this.textClass = textClass; |
|
239 |
this.parentMenu = null; |
|
240 |
this.parentItem = null; |
|
241 |
this.ref = null; |
|
242 |
} |
|
243 |
function Item(text, href, frame, length, spacing, target) { |
|
244 |
this.text = text; |
|
245 |
this.href = href; |
|
246 |
this.frame = frame; |
|
247 |
this.length = length; |
|
248 |
this.spacing = spacing; |
|
249 |
this.target = target; |
|
250 |
this.ref = null; |
|
93 |
return $all_items; |
|
251 | 94 |
} |
252 |
function go(link,frame) { |
|
253 |
tmp=eval("top."+frame); |
|
254 |
tmp.location=link; |
|
255 |
//top.main_window.location=link; |
|
256 |
} |
|
257 |
function writeMenus() { |
|
258 |
if (!isDOM && !isIE4 && !isNS4) return; |
|
259 |
for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[currMenu][0]) { |
|
260 |
var str = '', itemX = 0, itemY = 0; |
|
261 |
for (currItem = 1; currItem < menu[currMenu].length; currItem++) with (menu[currMenu][currItem]) { |
|
262 |
var itemID = 'menu' + currMenu + 'item' + currItem; |
|
263 |
var w = (isVert ? width : length); |
|
264 |
var h = (isVert ? length : width); |
|
265 |
if (isDOM \|\| isIE4) { |
|
266 |
str += '<div id="' + itemID + '" style="position: absolute; left: ' + itemX + '; top: ' + itemY + '; width: ' + w + '; height: ' + h + '; visibility: inherit; '; |
|
267 |
if (backCol) str += 'background: ' + backCol + '; '; |
|
268 |
str += '" '; |
|
269 |
} |
|
270 |
if (isNS4) { |
|
271 |
str += '<layer id="' + itemID + '" left="' + itemX + '" top="' + itemY + '" width="' + w + '" height="' + h + '" visibility="inherit" '; |
|
272 |
if (backCol) str += 'bgcolor="' + backCol + '" '; |
|
273 |
} |
|
274 |
if (borderClass) str += 'class="' + borderClass + '" "'; |
|
275 |
str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">'; |
|
276 |
str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (!isNS4 && borderClass ? 3 : 0) + '">'; |
|
277 |
str +='<tr><td class="' + textClass + '" style="cursor:pointer;" align="left" height="' + (h - 7) + '" onClick=\\'go("' + href + '","' + frame + '")\\'>' + text + '</a></td>'; |
|
278 |
if (target > 0) { |
|
279 |
menu[target][0].parentMenu = currMenu; |
|
280 |
menu[target][0].parentItem = currItem; |
|
281 |
if (popInd) str += '<td class="' + textClass + '" align="right">' + popInd + '</td>'; |
|
282 |
} |
|
283 |
str += '</tr></table>' + (isNS4 ? '</layer>' : '</div>'); |
|
284 |
if (isVert) itemY += length + spacing; |
|
285 |
else itemX += length + spacing; |
|
286 |
} |
|
287 |
if (isDOM) { |
|
288 |
var newDiv = document.createElement('div'); |
|
289 |
document.getElementsByTagName('body').item(0).appendChild(newDiv); |
|
290 |
newDiv.innerHTML = str; |
|
291 |
ref = newDiv.style; |
|
292 |
ref.position = 'absolute'; |
|
293 |
ref.visibility = 'hidden'; |
|
294 |
} |
|
295 |
if (isIE4) { |
|
296 |
document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>'); |
|
297 |
ref = getSty('menu' + currMenu + 'div'); |
|
298 |
} |
|
299 |
if (isNS4) { |
|
300 |
ref = new Layer(0); |
|
301 |
ref.document.write(str); |
|
302 |
ref.document.close(); |
|
303 |
} |
|
304 |
for (currItem = 1; currItem < menu[currMenu].length; currItem++) { |
|
305 |
itemName = 'menu' + currMenu + 'item' + currItem; |
|
306 |
if (isDOM \|\| isIE4) menu[currMenu][currItem].ref = getSty(itemName); |
|
307 |
if (isNS4) menu[currMenu][currItem].ref = ref.document[itemName]; |
|
308 |
} |
|
309 |
} |
|
310 |
with(menu[0][0]) { |
|
311 |
ref.left = x; |
|
312 |
ref.top = y; |
|
313 |
ref.visibility = 'visible'; |
|
314 |
} |
|
315 |
} |
|
316 |
var menu = new Array(); |
|
317 |
var defOver = '#cccccc'; |
|
318 |
var defBack = '#dddddd'; |
|
319 |
var defLength = 22; |
|
320 |
menu[0] = new Array(); |
|
321 |
menu[0][0] = new Menu(false, '', 5, 18, 19, '#cccccc', '', '', 'rootItemText'); |
|
322 | 95 |
|
323 |
|; |
|
96 |
sub calculate_width { |
|
97 |
my $item = shift; |
|
324 | 98 |
|
325 |
§ion_menu($menu);
|
|
99 |
$item->{max_width} = max map { length $_->{title} } @{ $item->{subitems} };
|
|
326 | 100 |
|
327 |
print qq| |
|
328 |
var popOldWidth = window.innerWidth; |
|
329 |
nsResizeHandler = new Function('if (popOldWidth != window.innerWidth) location.reload()'); |
|
330 |
if (isNS4) document.captureEvents(Event.CLICK); |
|
331 |
document.onclick = clickHandle; |
|
332 |
function clickHandle(evt) { |
|
333 |
if (isNS4) document.routeEvent(evt); |
|
334 |
hideAllBut(0); |
|
335 |
if (KO) document.getElementById("win1").style.visibility = "visible"; |
|
336 |
} |
|
337 |
function moveRoot() { |
|
338 |
with(menu[0][0].ref) left = ((parseInt(left) < 100) ? 100 : 5); |
|
101 |
foreach my $subitem (@{ $item->{subitems} }) { |
|
102 |
calculate_width($subitem) if ($subitem->{subitems}); |
|
103 |
} |
|
339 | 104 |
} |
340 |
// End --> |
|
341 |
</script> |
|
342 | 105 |
|
343 |
<BODY scrolling="no" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" style="margin: 0" onLoad="writeMenus(); clockon();" onResize="if (isNS4) nsResizeHandler()"> |
|
106 |
sub create_menu { |
|
107 |
my ($menu, $all_items, $parent, $depth) = @_; |
|
108 |
my $html; |
|
344 | 109 |
|
110 |
die if ($depth * 1 > 5); |
|
345 | 111 |
|
346 |
<table class="menu" width="100%" border="0" cellpadding="0" cellspacing="0">
|
|
347 |
<tr><td height="21"><font size="1"> </font></td></tr></table>
|
|
112 |
my @menuorder = $menu->access_control(\%myconfig, $parent);
|
|
113 |
$parent .= "--" if ($parent);
|
|
348 | 114 |
|
115 |
foreach my $name (@menuorder) { |
|
116 |
substr($name, 0, length($parent), ""); |
|
117 |
next if (($name eq "") || ($name =~ /--/)); |
|
349 | 118 |
|
350 |
|; |
|
119 |
my $menu_item = $menu->{"${parent}${name}"}; |
|
120 |
my $item = { 'title' => $locale->text($name) }; |
|
121 |
push @{ $all_items }, $item; |
|
351 | 122 |
|
352 |
print qq|
|
|
353 |
|
|
354 |
|;
|
|
123 |
if ($menu_item->{submenu} || !defined($menu_item->{module}) || ($menu_item->{module} eq "menu.pl")) {
|
|
124 |
$item->{subitems} = []; |
|
125 |
create_menu($menu, $item->{subitems}, "${parent}${name}", $depth * 1 + 1);
|
|
355 | 126 |
|
356 |
} |
|
357 |
|
|
358 |
sub section_menu { |
|
359 |
my ($menu, $level) = @_; |
|
360 |
|
|
361 |
# build tiered menus |
|
362 |
my @menuorder = $menu->access_control(\%myconfig, $level); |
|
363 |
$main = 0; |
|
364 |
|
|
365 |
#$pm=0; |
|
366 |
$shlp=0; |
|
367 |
while (@menuorder) { |
|
368 |
$item = shift @menuorder; |
|
369 |
$label = $item; |
|
370 |
$ml = $item; |
|
371 |
$label =~ s/\Q$level\E--//g; |
|
372 |
$ml =~ s/--.*//; |
|
373 |
$label = $locale->text($label); |
|
374 |
$label =~ s/ / /g; |
|
375 |
$menu->{$item}{target} = "main_window" unless $menu->{$item}{target}; |
|
376 |
|
|
377 |
if ($menu->{$item}{submenu}) { |
|
378 |
$menu->{$item}{$item} = !$form->{$item}; |
|
379 |
|
|
380 |
# Untermen |
|
381 |
if ($mlz{"s$ml"} > 1) { |
|
382 |
$z++; |
|
383 |
$sm = 1; |
|
384 |
} else { |
|
385 |
$z = $sm; |
|
386 |
$mlz{"s$ml"}++; |
|
387 |
} |
|
388 |
|
|
389 |
qq|menu[$mlz{$ml}][$z] = new Item('$label', '#', '', defLength, 0, | |
|
390 |
. ++$pm |
|
391 |
. qq|);\n|; |
|
392 |
$sm = 1; |
|
393 |
print qq|menu[$pm] = new Array();\n|; |
|
394 |
|
|
395 |
qq|menu[$pm][0] = new Menu(true, '', 85, 0, 180, defOver, defBack, 'itemBorder', 'itemText');\n|; |
|
396 |
map { shift @menuorder } grep /^$item/, @menuorder; |
|
397 |
§ion_menu($menu, $item); |
|
398 |
map { shift @menuorder } grep /^$item/, @menuorder; |
|
399 | 127 |
} else { |
400 |
if ($menu->{$item}{module}) { |
|
401 |
|
|
402 |
#Untermen?punkte |
|
403 |
$target = $menu->{$item}{target}; |
|
404 |
$uri = $menu->menuitemNew(\%myconfig, \%$form, $item, $level); |
|
405 |
|
|
406 |
#print qq|<tr><td class="hover" height="13" >$spacer<img src="image/unterpunkt.png" style="vertical-align:text-top">|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a></td></tr>\n|; |
|
407 |
|
|
408 |
qq|menu[$pm][$sm] = new Item('$label', '$uri', '$target', defLength, 0, 0);\n|; |
|
409 |
$sm++; |
|
410 |
} else { # Hauptmenu |
|
411 |
my $ml_ = $form->escape($ml); |
|
412 |
$mm++; |
|
413 |
$pm++; |
|
414 |
%mlz = ($ml, $pm, "s$ml", 1); |
|
415 |
$shlp = $sm; |
|
416 |
$sm = 1; |
|
417 |
$breit = 15 + length($label) * 6; |
|
418 |
|
|
419 |
qq|menu[0][$mm] = new Item(' $label', '#', '', $breit, 10, $pm); \n|; |
|
420 |
print qq|menu[$pm] = new Array();\n|; |
|
421 |
|
|
422 |
qq|menu[$pm][0] = new Menu(true, '>', 0, 20, 180, defOver, defBack, 'itemBorder', 'itemText');\n|; |
|
423 |
|
|
424 |
#print qq|<tr><td class="bg" height="22" align="left" valign="middle" ><img src="image/$item.png" style="vertical-align:middle"> <a href="menu.pl?action=acc_menu&level=$ml_" class="nohover">$label</a> </td></tr>\n|; |
|
425 |
§ion_menu($menu, $item); |
|
426 |
|
|
427 |
#print qq|<br>\n|; |
|
428 |
} |
|
128 |
$menu->menuitem_new("${parent}${name}", $item); |
|
429 | 129 |
} |
430 | 130 |
} |
431 | 131 |
} |
css/dhtmlsuite/menu-bar.css | ||
---|---|---|
1 |
/************************************************************************************************************ |
|
2 |
|
|
3 |
DHTML Suite for Applications |
|
4 |
(C) www.dhtmlgoodies.com, August 2006 |
|
5 |
|
|
6 |
CSS for the DHTMLsuite_tableWidget class. |
|
7 |
|
|
8 |
Terms of use: |
|
9 |
Look at the terms of use at http://www.dhtmlgoodies.com/index.html?page=termsOfUse |
|
10 |
|
|
11 |
Thank you! |
|
12 |
|
|
13 |
www.dhtmlgoodies.com |
|
14 |
Alf Magne Kalleland |
|
15 |
|
|
16 |
************************************************************************************************************/ |
|
17 |
|
|
18 |
.DHTMLSuite_menuBar_top{ /* The bar that is parent of the menu strip */ |
|
19 |
color:#FFF; |
|
20 |
height:26px; |
|
21 |
width:100%; |
|
22 |
background-repeat:repeat-x; |
|
23 |
font-family: Arial; |
|
24 |
font-size:12px; |
|
25 |
z-index:100000; |
|
26 |
padding-left:10px; |
|
27 |
/* background-image:url('../../image/dhtmlsuite/menu_strip_bg.jpg');*/ |
|
28 |
background-image:url('../../image/bg_css_menu.png'); |
|
29 |
} |
|
30 |
|
|
31 |
.DHTMLSuite_menuBar_sub{ |
|
32 |
position:absolute; |
|
33 |
background-color:#FFF; |
|
34 |
border:1px solid #000; |
|
35 |
background-image:url('../../image/dhtmlsuite/menu-bar-gradient.jpg'); /* Background image for sub menu items */ |
|
36 |
background-repeat:repeat-y; |
|
37 |
background-position: left center; |
|
38 |
display:inline; |
|
39 |
} |
|
40 |
|
css/dhtmlsuite/menu-item.css | ||
---|---|---|
1 |
/* CSS FOR MENU ITEM OF TYPE "top" */ |
|
2 |
|
|
3 |
.DHTMLSuite_menuItem_top_regular,.DHTMLSuite_menuItem_top_over,.DHTMLSuite_menuItem_top_click,.DHTMLSuite_menuItem_top_disabled,.DHTMLSuite_menuItem_top_active{ |
|
4 |
height:19px; |
|
5 |
} |
|
6 |
.DHTMLSuite_menuItem_top_regular div,.DHTMLSuite_menuItem_top_over div,.DHTMLSuite_menuItem_top_click div,.DHTMLSuite_menuItem_top_disabled div,.DHTMLSuite_menuItem_top_active div{ |
|
7 |
padding-top:2px; |
|
8 |
padding-bottom:2px; |
|
9 |
} |
|
10 |
.DHTMLSuite_menuItem_top_regular{ /* Top level menu item - Regular state */ |
|
11 |
padding-left:4px; |
|
12 |
padding-right:4px; |
|
13 |
margin-right:2px; |
|
14 |
padding-top:1px; |
|
15 |
padding-bottom:1px; |
|
16 |
cursor:pointer; |
|
17 |
line-height:16px; |
|
18 |
margin-top:2px; |
|
19 |
} |
|
20 |
|
|
21 |
.DHTMLSuite_menuItem_top_over{ /* Top level menu item - Mouse over state */ |
|
22 |
padding-left:3px; |
|
23 |
padding-right:3px; |
|
24 |
margin-right:2px; |
|
25 |
border:1px solid #000; |
|
26 |
color:#000; |
|
27 |
background-color:#FFEEC2; |
|
28 |
cursor:pointer; |
|
29 |
line-height:16px; |
|
30 |
margin-top:2px; |
|
31 |
} |
|
32 |
|
|
33 |
.DHTMLSuite_menuItem_top_active{ /* Top level menu item - Active state - this is typical the state for menu item 1 when a sub group is expanded and the mouse is located over one of the sub menu items */ |
|
34 |
padding-left:3px; |
|
35 |
padding-right:3px; |
|
36 |
margin-right:2px; |
|
37 |
border:1px solid #000; |
|
38 |
border-bottom:1px solid #FFF; |
|
39 |
cursor:pointer; |
|
40 |
line-height:16px; |
|
41 |
margin-top:2px; |
|
42 |
} |
|
43 |
|
|
44 |
.DHTMLSuite_menuItem_top_click{ /* Top level menu item - Mouse click state */ |
|
45 |
padding-left:3px; |
|
46 |
padding-right:3px; |
|
47 |
margin-right:2px; |
|
48 |
border:1px solid #000; |
|
49 |
background-color:#FFB25C; |
|
50 |
cursor:pointer; |
|
51 |
line-height:16px; |
|
52 |
margin-top:2px; |
|
53 |
z-index:20000; |
|
54 |
} |
|
55 |
|
|
56 |
.DHTMLSuite_menuItem_top_disabled{ /* Disabled menu item */ |
|
57 |
padding-left:4px; |
|
58 |
padding-right:4px; |
|
59 |
margin-right:2px; |
|
60 |
padding-top:1px; |
|
61 |
padding-bottom:1px; |
|
62 |
cursor:default; |
|
63 |
line-height:16px; |
|
64 |
margin-top:2px; |
|
65 |
} |
|
66 |
|
|
67 |
.DHTMLSuite_menuItem_top_disabled img,.DHTMLSuite_menuItem_top_disabled div{ /* Sub divs of disabled top level items. A menu item is a div with some subdivs(one for the icon, one for text etc.). this is the css for these sub divs */ |
|
68 |
filter:alpha(opacity=40); /* Transparency */ |
|
69 |
opacity:0.4; /* Transparency */ |
|
70 |
-moz-opacity:0.4; /* Transparency */ |
|
71 |
-khtml-opacity:.4; /* Transparency */ |
|
72 |
} |
|
73 |
|
|
74 |
.DHTMLSuite_menuItem_top_disabled div,.DHTMLSuite_menuItem_top_active div, .DHTMLSuite_menuItem_top_click div, .DHTMLSuite_menuItem_top_regular div,.DHTMLSuite_menuItem_top_over div{ /* divs for the text,icon and arrow of a menu item */ |
|
75 |
float:left; |
|
76 |
padding-left:1px; |
|
77 |
padding-right:1px; |
|
78 |
} |
|
79 |
|
|
80 |
/* CSS FOR THE SMALL ARROW DIV - WHEN YOU CLICK ON THIS DIV, SUB ELEMENTS WILL SHOW */ |
|
81 |
.DHTMLSuite_menuItem_top_arrowShowSub{ /* This is the arrow for top level elements */ |
|
82 |
width:12px; /* Width of item */ |
|
83 |
background-repeat:no-repeat; /* No background repeat for the arrow */ |
|
84 |
background-position:center center; /* Position of the arrow. at the center of this div */ |
|
85 |
background-image: url('../../image/dhtmlsuite/menu_strip_down_arrow.png'); /* Relative path to the arrow */ |
|
86 |
margin:0px; |
|
87 |
margin-right:-1px; /* -1 pixel is added to get the arrow a little bit more to the right. this is because of the right padding of top level items */ |
|
88 |
padding:0px; |
|
89 |
height:16px; |
|
90 |
margin-left:2px; |
|
91 |
float:right; |
|
92 |
} |
|
93 |
|
|
94 |
.DHTMLSuite_menuItem_top_over .DHTMLSuite_menuItem_top_arrowShowSub, |
|
95 |
.DHTMLSuite_menuItem_top_click .DHTMLSuite_menuItem_top_arrowShowSub |
|
96 |
{ /* Sub menu arrows */ |
|
97 |
margin-left:1px; |
|
98 |
border-left:1px solid #000; |
|
99 |
} |
|
100 |
|
|
101 |
/* CSS FOR SEPARATOR */ |
|
102 |
|
|
103 |
.DHTMLSuite_menuItem_separator_top{ /* Separator of type "top" */ |
|
104 |
height:20px; |
|
105 |
margin-top:3px; |
|
106 |
margin-bottom:3px; |
|
107 |
width:4px; |
|
108 |
padding-left:3px; |
|
109 |
padding-right:3px; |
|
110 |
background-repeat:repeat-y; |
|
111 |
background-image:url('../../image/dhtmlsuite/menu_strip_separator.gif'); |
|
112 |
|
|
113 |
} |
|
114 |
|
|
115 |
|
|
116 |
/* CSS FOR MENU ITEM OF TYPE "sub" */ |
|
117 |
|
|
118 |
.DHTMLSuite_menuItem_sub_regular, .DHTMLSuite_menuItem_sub_over,.DHTMLSuite_menuItem_sub_click,.DHTMLSuite_menuItem_sub_disabled,.DHTMLSuite_menuItem_sub_active{ /* Commom css for regular, mouse over and mouse click items */ |
|
119 |
clear:both; |
|
120 |
line-height:18px; /* Height of menu item */ |
|
121 |
height:18px; /* Height of menu item */ |
|
122 |
padding-left:25px; /* Space inside the menu item - the 25 pixels are used in order to avoid text overlapping menu item icon */ |
|
123 |
padding-right:4px; /* Space inside the menu item */ |
|
124 |
padding-top:2px; /* Space inside the menu item */ |
|
125 |
padding-bottom:2px; /* Space inside the menu item */ |
|
126 |
cursor:pointer; /* Mouse cursor set to a "hand" */ |
|
127 |
margin:1px; /* A little space around the item */ |
|
128 |
background-repeat:no-repeat; /* No background repeat */ |
|
129 |
} |
|
130 |
.DHTMLSuite_menuItem_sub_disabled{ /* Disabled sub menu item */ |
|
131 |
cursor:default; /* Arrow as cursor instead of hand */ |
|
132 |
} |
|
133 |
.DHTMLSuite_menuItem_sub_disabled div,.DHTMLSuite_menuItem_sub_disabled{ /* Disabled sub menu item - Here, we apply the rules on the divs inside the element, i.e. the div for the icon, text and arrow */ |
|
134 |
filter:alpha(opacity=40); /* Transparency */ |
|
135 |
opacity:0.4; /* Transparency */ |
|
136 |
-moz-opacity:0.4; /* Transparency */ |
|
137 |
-khtml-opacity:.4; /* Transparency */ |
|
138 |
} |
|
139 |
.DHTMLSuite_menuItem_sub_regular,.DHTMLSuite_menuItem_sub_disabled{ /* Regular menu item */ |
|
140 |
margin-left:2px; /* size of margin above + 1 pixel */ |
|
141 |
padding-top:3px; /* Size of padding-top above + 1 pixel */ |
|
142 |
padding-bottom:3px; /* Size of padding-bottom above + 1 pixel */ |
|
143 |
} |
|
144 |
|
|
145 |
.DHTMLSuite_menuItem_sub_over,.DHTMLSuite_menuItem_sub_click,.DHTMLSuite_menuItem_sub_active{ |
|
146 |
border:1px solid #006; /* Border around mouse over items, click items and active items */ |
|
147 |
} |
|
148 |
|
|
149 |
.DHTMLSuite_menuItem_sub_over,.DHTMLSuite_menuItem_sub_active{ /* Mouse over effect */ |
|
150 |
background-color:#FFEEC2; /* Background color of mouse over items and active items(Active item = parent elements of the menu item the mouse is currently over */ |
|
151 |
} |
|
152 |
|
|
153 |
.DHTMLSuite_menuItem_sub_click{ /* Mouse click effect */ |
|
154 |
background-color:#FFB25C; /* Background color when the mouse button is pressed down on a menu item */ |
|
155 |
} |
|
156 |
|
|
157 |
.DHTMLSuite_menuItem_sub_click div, .DHTMLSuite_menuItem_sub_regular div,.DHTMLSuite_menuItem_sub_over div,.DHTMLSuite_menuItem_sub_active div,.DHTMLSuite_menuItem_sub_disabled div{ /* divs for the text,icon and arrow of a menu item */ |
|
158 |
float:left; /* To get the icons and text of sub elements side by side */ |
|
159 |
padding-left:1px; |
|
160 |
padding-right:1px; |
|
161 |
|
|
162 |
} |
|
163 |
.DHTMLSuite_menuItem_sub_arrowShowSub{ /* Arrow div for sub elements (Right pointing arrow ) */ |
|
164 |
position:absolute; /* Never change this one */ |
|
165 |
background-image:url('../../image/dhtmlsuite/menu-bar-right-arrow.png'); /* Path relative to the css file */ |
|
166 |
width:18px; |
|
167 |
height:18px; |
|
168 |
text-align:right; |
|
169 |
right:0px; |
|
170 |
background-repeat:no-repeat; /* No background repeat */ |
|
171 |
background-position: center right; /* Position of arrow */ |
|
172 |
} |
|
173 |
|
|
174 |
|
|
175 |
.DHTMLSuite_menuItem_separator_sub{ /* Separator of type "sub" */ |
|
176 |
height:1px; /* Height of separator */ |
|
177 |
margin-top:1px; /* Space above the separator */ |
|
178 |
margin-bottom:1px; /* Space below the separator */ |
|
179 |
margin-left:24px; /* left margin because we don't want the separator to cover the gradient */ |
|
180 |
padding-right:3px; /* space at the right of the separator */ |
|
181 |
background-color:#6A8CCB; /* background color for the separator - blue */ |
|
182 |
} |
|
183 |
|
|
184 |
|
doc/modules/LICENSE.dhtmlsuite-for-applications | ||
---|---|---|
1 |
GNU LESSER GENERAL PUBLIC LICENSE |
|
2 |
Version 2.1, February 1999 |
|
3 |
|
|
4 |
Copyright (C) 1991, 1999 Free Software Foundation, Inc. |
|
5 |
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
6 |
Everyone is permitted to copy and distribute verbatim copies |
|
7 |
of this license document, but changing it is not allowed. |
|
8 |
|
|
9 |
[This is the first released version of the Lesser GPL. It also counts |
|
10 |
as the successor of the GNU Library Public License, version 2, hence |
|
11 |
the version number 2.1.] |
|
12 |
|
|
13 |
Preamble |
|
14 |
|
|
15 |
The licenses for most software are designed to take away your |
|
16 |
freedom to share and change it. By contrast, the GNU General Public |
|
17 |
Licenses are intended to guarantee your freedom to share and change |
|
18 |
free software--to make sure the software is free for all its users. |
|
19 |
|
|
20 |
This license, the Lesser General Public License, applies to some |
|
21 |
specially designated software packages--typically libraries--of the |
|
22 |
Free Software Foundation and other authors who decide to use it. You |
|
23 |
can use it too, but we suggest you first think carefully about whether |
|
24 |
this license or the ordinary General Public License is the better |
|
25 |
strategy to use in any particular case, based on the explanations below. |
|
26 |
|
|
27 |
When we speak of free software, we are referring to freedom of use, |
|
28 |
not price. Our General Public Licenses are designed to make sure that |
|
29 |
you have the freedom to distribute copies of free software (and charge |
|
30 |
for this service if you wish); that you receive source code or can get |
|
31 |
it if you want it; that you can change the software and use pieces of |
|
32 |
it in new free programs; and that you are informed that you can do |
|
33 |
these things. |
|
34 |
|
|
35 |
To protect your rights, we need to make restrictions that forbid |
|
36 |
distributors to deny you these rights or to ask you to surrender these |
|
37 |
rights. These restrictions translate to certain responsibilities for |
|
38 |
you if you distribute copies of the library or if you modify it. |
|
39 |
|
|
40 |
For example, if you distribute copies of the library, whether gratis |
|
41 |
or for a fee, you must give the recipients all the rights that we gave |
|
42 |
you. You must make sure that they, too, receive or can get the source |
|
43 |
code. If you link other code with the library, you must provide |
|
44 |
complete object files to the recipients, so that they can relink them |
|
45 |
with the library after making changes to the library and recompiling |
|
46 |
it. And you must show them these terms so they know their rights. |
|
47 |
|
|
48 |
We protect your rights with a two-step method: (1) we copyright the |
|
49 |
library, and (2) we offer you this license, which gives you legal |
|
50 |
permission to copy, distribute and/or modify the library. |
|
51 |
|
|
52 |
To protect each distributor, we want to make it very clear that |
|
53 |
there is no warranty for the free library. Also, if the library is |
|
54 |
modified by someone else and passed on, the recipients should know |
|
55 |
that what they have is not the original version, so that the original |
|
56 |
author's reputation will not be affected by problems that might be |
|
57 |
introduced by others. |
|
58 |
|
|
59 |
Finally, software patents pose a constant threat to the existence of |
|
60 |
any free program. We wish to make sure that a company cannot |
|
61 |
effectively restrict the users of a free program by obtaining a |
|
62 |
restrictive license from a patent holder. Therefore, we insist that |
|
63 |
any patent license obtained for a version of the library must be |
|
64 |
consistent with the full freedom of use specified in this license. |
|
65 |
|
|
66 |
Most GNU software, including some libraries, is covered by the |
|
67 |
ordinary GNU General Public License. This license, the GNU Lesser |
|
68 |
General Public License, applies to certain designated libraries, and |
|
69 |
is quite different from the ordinary General Public License. We use |
|
70 |
this license for certain libraries in order to permit linking those |
|
71 |
libraries into non-free programs. |
|
72 |
|
|
73 |
When a program is linked with a library, whether statically or using |
|
74 |
a shared library, the combination of the two is legally speaking a |
|
75 |
combined work, a derivative of the original library. The ordinary |
|
76 |
General Public License therefore permits such linking only if the |
|
77 |
entire combination fits its criteria of freedom. The Lesser General |
|
78 |
Public License permits more lax criteria for linking other code with |
|
79 |
the library. |
|
80 |
|
|
81 |
We call this license the "Lesser" General Public License because it |
|
82 |
does Less to protect the user's freedom than the ordinary General |
|
83 |
Public License. It also provides other free software developers Less |
|
84 |
of an advantage over competing non-free programs. These disadvantages |
|
85 |
are the reason we use the ordinary General Public License for many |
|
86 |
libraries. However, the Lesser license provides advantages in certain |
|
87 |
special circumstances. |
|
88 |
|
|
89 |
For example, on rare occasions, there may be a special need to |
|
90 |
encourage the widest possible use of a certain library, so that it becomes |
|
91 |
a de-facto standard. To achieve this, non-free programs must be |
|
92 |
allowed to use the library. A more frequent case is that a free |
|
93 |
library does the same job as widely used non-free libraries. In this |
|
94 |
case, there is little to gain by limiting the free library to free |
|
95 |
software only, so we use the Lesser General Public License. |
|
96 |
|
|
97 |
In other cases, permission to use a particular library in non-free |
|
98 |
programs enables a greater number of people to use a large body of |
|
99 |
free software. For example, permission to use the GNU C Library in |
|
100 |
non-free programs enables many more people to use the whole GNU |
|
101 |
operating system, as well as its variant, the GNU/Linux operating |
|
102 |
system. |
|
103 |
|
|
104 |
Although the Lesser General Public License is Less protective of the |
|
105 |
users' freedom, it does ensure that the user of a program that is |
|
106 |
linked with the Library has the freedom and the wherewithal to run |
|
107 |
that program using a modified version of the Library. |
|
108 |
|
|
109 |
The precise terms and conditions for copying, distribution and |
|
110 |
modification follow. Pay close attention to the difference between a |
|
111 |
"work based on the library" and a "work that uses the library". The |
|
112 |
former contains code derived from the library, whereas the latter must |
|
113 |
be combined with the library in order to run. |
|
114 |
|
|
115 |
GNU LESSER GENERAL PUBLIC LICENSE |
|
116 |
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
|
117 |
|
|
118 |
0. This License Agreement applies to any software library or other |
|
119 |
program which contains a notice placed by the copyright holder or |
|
120 |
other authorized party saying it may be distributed under the terms of |
|
121 |
this Lesser General Public License (also called "this License"). |
|
122 |
Each licensee is addressed as "you". |
|
123 |
|
|
124 |
A "library" means a collection of software functions and/or data |
|
125 |
prepared so as to be conveniently linked with application programs |
|
126 |
(which use some of those functions and data) to form executables. |
|
127 |
|
|
128 |
The "Library", below, refers to any such software library or work |
|
129 |
which has been distributed under these terms. A "work based on the |
|
130 |
Library" means either the Library or any derivative work under |
|
131 |
copyright law: that is to say, a work containing the Library or a |
|
132 |
portion of it, either verbatim or with modifications and/or translated |
|
133 |
straightforwardly into another language. (Hereinafter, translation is |
|
134 |
included without limitation in the term "modification".) |
|
135 |
|
|
136 |
"Source code" for a work means the preferred form of the work for |
|
137 |
making modifications to it. For a library, complete source code means |
|
138 |
all the source code for all modules it contains, plus any associated |
|
139 |
interface definition files, plus the scripts used to control compilation |
|
140 |
and installation of the library. |
|
141 |
|
|
142 |
Activities other than copying, distribution and modification are not |
|
143 |
covered by this License; they are outside its scope. The act of |
|
144 |
running a program using the Library is not restricted, and output from |
|
145 |
such a program is covered only if its contents constitute a work based |
|
146 |
on the Library (independent of the use of the Library in a tool for |
|
147 |
writing it). Whether that is true depends on what the Library does |
|
148 |
and what the program that uses the Library does. |
|
149 |
|
|
150 |
1. You may copy and distribute verbatim copies of the Library's |
|
151 |
complete source code as you receive it, in any medium, provided that |
|
152 |
you conspicuously and appropriately publish on each copy an |
|
153 |
appropriate copyright notice and disclaimer of warranty; keep intact |
|
154 |
all the notices that refer to this License and to the absence of any |
|
155 |
warranty; and distribute a copy of this License along with the |
|
156 |
Library. |
|
157 |
|
|
158 |
You may charge a fee for the physical act of transferring a copy, |
|
159 |
and you may at your option offer warranty protection in exchange for a |
|
160 |
fee. |
|
161 |
|
|
162 |
2. You may modify your copy or copies of the Library or any portion |
|
163 |
of it, thus forming a work based on the Library, and copy and |
|
164 |
distribute such modifications or work under the terms of Section 1 |
|
165 |
above, provided that you also meet all of these conditions: |
|
166 |
|
|
167 |
a) The modified work must itself be a software library. |
|
168 |
|
|
169 |
b) You must cause the files modified to carry prominent notices |
|
170 |
stating that you changed the files and the date of any change. |
|
171 |
|
|
172 |
c) You must cause the whole of the work to be licensed at no |
|
173 |
charge to all third parties under the terms of this License. |
|
174 |
|
|
175 |
d) If a facility in the modified Library refers to a function or a |
|
176 |
table of data to be supplied by an application program that uses |
|
177 |
the facility, other than as an argument passed when the facility |
|
178 |
is invoked, then you must make a good faith effort to ensure that, |
|
179 |
in the event an application does not supply such function or |
|
180 |
table, the facility still operates, and performs whatever part of |
|
181 |
its purpose remains meaningful. |
|
182 |
|
|
183 |
(For example, a function in a library to compute square roots has |
|
184 |
a purpose that is entirely well-defined independent of the |
|
185 |
application. Therefore, Subsection 2d requires that any |
|
186 |
application-supplied function or table used by this function must |
|
187 |
be optional: if the application does not supply it, the square |
|
188 |
root function must still compute square roots.) |
|
189 |
|
|
190 |
These requirements apply to the modified work as a whole. If |
|
191 |
identifiable sections of that work are not derived from the Library, |
|
192 |
and can be reasonably considered independent and separate works in |
|
193 |
themselves, then this License, and its terms, do not apply to those |
|
194 |
sections when you distribute them as separate works. But when you |
|
195 |
distribute the same sections as part of a whole which is a work based |
|
196 |
on the Library, the distribution of the whole must be on the terms of |
|
197 |
this License, whose permissions for other licensees extend to the |
|
198 |
entire whole, and thus to each and every part regardless of who wrote |
|
199 |
it. |
|
200 |
|
|
201 |
Thus, it is not the intent of this section to claim rights or contest |
|
202 |
your rights to work written entirely by you; rather, the intent is to |
|
203 |
exercise the right to control the distribution of derivative or |
|
204 |
collective works based on the Library. |
|
205 |
|
|
206 |
In addition, mere aggregation of another work not based on the Library |
|
207 |
with the Library (or with a work based on the Library) on a volume of |
|
208 |
a storage or distribution medium does not bring the other work under |
|
209 |
the scope of this License. |
|
210 |
|
|
211 |
3. You may opt to apply the terms of the ordinary GNU General Public |
|
212 |
License instead of this License to a given copy of the Library. To do |
|
213 |
this, you must alter all the notices that refer to this License, so |
|
214 |
that they refer to the ordinary GNU General Public License, version 2, |
|
215 |
instead of to this License. (If a newer version than version 2 of the |
|
216 |
ordinary GNU General Public License has appeared, then you can specify |
|
217 |
that version instead if you wish.) Do not make any other change in |
|
218 |
these notices. |
|
219 |
|
|
220 |
Once this change is made in a given copy, it is irreversible for |
|
221 |
that copy, so the ordinary GNU General Public License applies to all |
|
222 |
subsequent copies and derivative works made from that copy. |
|
223 |
|
|
224 |
This option is useful when you wish to copy part of the code of |
|
225 |
the Library into a program that is not a library. |
|
226 |
|
|
227 |
4. You may copy and distribute the Library (or a portion or |
|
228 |
derivative of it, under Section 2) in object code or executable form |
|
229 |
under the terms of Sections 1 and 2 above provided that you accompany |
|
230 |
it with the complete corresponding machine-readable source code, which |
|
231 |
must be distributed under the terms of Sections 1 and 2 above on a |
|
232 |
medium customarily used for software interchange. |
|
233 |
|
|
234 |
If distribution of object code is made by offering access to copy |
|
235 |
from a designated place, then offering equivalent access to copy the |
|
236 |
source code from the same place satisfies the requirement to |
|
237 |
distribute the source code, even though third parties are not |
|
238 |
compelled to copy the source along with the object code. |
|
239 |
|
|
240 |
5. A program that contains no derivative of any portion of the |
|
241 |
Library, but is designed to work with the Library by being compiled or |
|
242 |
linked with it, is called a "work that uses the Library". Such a |
|
243 |
work, in isolation, is not a derivative work of the Library, and |
|
244 |
therefore falls outside the scope of this License. |
|
245 |
|
|
246 |
However, linking a "work that uses the Library" with the Library |
|
247 |
creates an executable that is a derivative of the Library (because it |
|
248 |
contains portions of the Library), rather than a "work that uses the |
|
249 |
library". The executable is therefore covered by this License. |
|
250 |
Section 6 states terms for distribution of such executables. |
|
251 |
|
|
252 |
When a "work that uses the Library" uses material from a header file |
|
253 |
that is part of the Library, the object code for the work may be a |
|
254 |
derivative work of the Library even though the source code is not. |
|
255 |
Whether this is true is especially significant if the work can be |
|
256 |
linked without the Library, or if the work is itself a library. The |
|
257 |
threshold for this to be true is not precisely defined by law. |
|
258 |
|
|
259 |
If such an object file uses only numerical parameters, data |
|
260 |
structure layouts and accessors, and small macros and small inline |
|
261 |
functions (ten lines or less in length), then the use of the object |
|
262 |
file is unrestricted, regardless of whether it is legally a derivative |
|
263 |
work. (Executables containing this object code plus portions of the |
|
264 |
Library will still fall under Section 6.) |
|
265 |
|
|
266 |
Otherwise, if the work is a derivative of the Library, you may |
|
267 |
distribute the object code for the work under the terms of Section 6. |
|
268 |
Any executables containing that work also fall under Section 6, |
|
269 |
whether or not they are linked directly with the Library itself. |
|
270 |
|
|
271 |
6. As an exception to the Sections above, you may also combine or |
|
272 |
link a "work that uses the Library" with the Library to produce a |
|
273 |
work containing portions of the Library, and distribute that work |
|
274 |
under terms of your choice, provided that the terms permit |
|
275 |
modification of the work for the customer's own use and reverse |
|
276 |
engineering for debugging such modifications. |
|
277 |
|
|
278 |
You must give prominent notice with each copy of the work that the |
|
279 |
Library is used in it and that the Library and its use are covered by |
|
280 |
this License. You must supply a copy of this License. If the work |
|
281 |
during execution displays copyright notices, you must include the |
|
282 |
copyright notice for the Library among them, as well as a reference |
|
283 |
directing the user to the copy of this License. Also, you must do one |
|
284 |
of these things: |
|
285 |
|
|
286 |
a) Accompany the work with the complete corresponding |
|
287 |
machine-readable source code for the Library including whatever |
|
288 |
changes were used in the work (which must be distributed under |
|
289 |
Sections 1 and 2 above); and, if the work is an executable linked |
|
290 |
with the Library, with the complete machine-readable "work that |
|
291 |
uses the Library", as object code and/or source code, so that the |
|
292 |
user can modify the Library and then relink to produce a modified |
|
293 |
executable containing the modified Library. (It is understood |
|
294 |
that the user who changes the contents of definitions files in the |
|
295 |
Library will not necessarily be able to recompile the application |
|
296 |
to use the modified definitions.) |
|
297 |
|
|
298 |
b) Use a suitable shared library mechanism for linking with the |
|
299 |
Library. A suitable mechanism is one that (1) uses at run time a |
|
300 |
copy of the library already present on the user's computer system, |
|
301 |
rather than copying library functions into the executable, and (2) |
|
302 |
will operate properly with a modified version of the library, if |
|
303 |
the user installs one, as long as the modified version is |
|
304 |
interface-compatible with the version that the work was made with. |
|
305 |
|
|
306 |
c) Accompany the work with a written offer, valid for at |
|
307 |
least three years, to give the same user the materials |
|
308 |
specified in Subsection 6a, above, for a charge no more |
|
309 |
than the cost of performing this distribution. |
|
310 |
|
|
311 |
d) If distribution of the work is made by offering access to copy |
|
312 |
from a designated place, offer equivalent access to copy the above |
|
313 |
specified materials from the same place. |
|
314 |
|
|
315 |
e) Verify that the user has already received a copy of these |
|
316 |
materials or that you have already sent this user a copy. |
|
317 |
|
|
318 |
For an executable, the required form of the "work that uses the |
|
319 |
Library" must include any data and utility programs needed for |
|
320 |
reproducing the executable from it. However, as a special exception, |
|
321 |
the materials to be distributed need not include anything that is |
|
322 |
normally distributed (in either source or binary form) with the major |
|
323 |
components (compiler, kernel, and so on) of the operating system on |
|
324 |
which the executable runs, unless that component itself accompanies |
|
325 |
the executable. |
|
326 |
|
|
327 |
It may happen that this requirement contradicts the license |
|
328 |
restrictions of other proprietary libraries that do not normally |
|
329 |
accompany the operating system. Such a contradiction means you cannot |
|
330 |
use both them and the Library together in an executable that you |
|
331 |
distribute. |
|
332 |
|
|
333 |
7. You may place library facilities that are a work based on the |
|
334 |
Library side-by-side in a single library together with other library |
|
335 |
facilities not covered by this License, and distribute such a combined |
|
336 |
library, provided that the separate distribution of the work based on |
|
337 |
the Library and of the other library facilities is otherwise |
|
338 |
permitted, and provided that you do these two things: |
|
339 |
|
|
340 |
a) Accompany the combined library with a copy of the same work |
|
341 |
based on the Library, uncombined with any other library |
|
342 |
facilities. This must be distributed under the terms of the |
|
343 |
Sections above. |
|
344 |
|
|
345 |
b) Give prominent notice with the combined library of the fact |
|
346 |
that part of it is a work based on the Library, and explaining |
|
347 |
where to find the accompanying uncombined form of the same work. |
|
348 |
|
|
349 |
8. You may not copy, modify, sublicense, link with, or distribute |
|
350 |
the Library except as expressly provided under this License. Any |
|
351 |
attempt otherwise to copy, modify, sublicense, link with, or |
|
352 |
distribute the Library is void, and will automatically terminate your |
|
353 |
rights under this License. However, parties who have received copies, |
|
354 |
or rights, from you under this License will not have their licenses |
|
355 |
terminated so long as such parties remain in full compliance. |
|
356 |
|
|
357 |
9. You are not required to accept this License, since you have not |
|
358 |
signed it. However, nothing else grants you permission to modify or |
|
359 |
distribute the Library or its derivative works. These actions are |
|
360 |
prohibited by law if you do not accept this License. Therefore, by |
|
361 |
modifying or distributing the Library (or any work based on the |
|
362 |
Library), you indicate your acceptance of this License to do so, and |
|
363 |
all its terms and conditions for copying, distributing or modifying |
|
364 |
the Library or works based on it. |
|
365 |
|
|
366 |
10. Each time you redistribute the Library (or any work based on the |
|
367 |
Library), the recipient automatically receives a license from the |
|
368 |
original licensor to copy, distribute, link with or modify the Library |
|
369 |
subject to these terms and conditions. You may not impose any further |
|
370 |
restrictions on the recipients' exercise of the rights granted herein. |
|
371 |
You are not responsible for enforcing compliance by third parties with |
|
372 |
this License. |
|
373 |
|
|
374 |
11. If, as a consequence of a court judgment or allegation of patent |
|
375 |
infringement or for any other reason (not limited to patent issues), |
|
376 |
conditions are imposed on you (whether by court order, agreement or |
|
377 |
otherwise) that contradict the conditions of this License, they do not |
|
378 |
excuse you from the conditions of this License. If you cannot |
|
379 |
distribute so as to satisfy simultaneously your obligations under this |
|
380 |
License and any other pertinent obligations, then as a consequence you |
|
381 |
may not distribute the Library at all. For example, if a patent |
|
382 |
license would not permit royalty-free redistribution of the Library by |
|
383 |
all those who receive copies directly or indirectly through you, then |
|
384 |
the only way you could satisfy both it and this License would be to |
|
385 |
refrain entirely from distribution of the Library. |
|
386 |
|
|
387 |
If any portion of this section is held invalid or unenforceable under any |
|
388 |
particular circumstance, the balance of the section is intended to apply, |
|
389 |
and the section as a whole is intended to apply in other circumstances. |
|
390 |
|
|
391 |
It is not the purpose of this section to induce you to infringe any |
|
392 |
patents or other property right claims or to contest validity of any |
|
393 |
such claims; this section has the sole purpose of protecting the |
|
394 |
integrity of the free software distribution system which is |
|
395 |
implemented by public license practices. Many people have made |
|
396 |
generous contributions to the wide range of software distributed |
|
397 |
through that system in reliance on consistent application of that |
|
398 |
system; it is up to the author/donor to decide if he or she is willing |
|
399 |
to distribute software through any other system and a licensee cannot |
|
400 |
impose that choice. |
|
401 |
|
|
402 |
This section is intended to make thoroughly clear what is believed to |
|
403 |
be a consequence of the rest of this License. |
|
404 |
|
|
405 |
12. If the distribution and/or use of the Library is restricted in |
|
406 |
certain countries either by patents or by copyrighted interfaces, the |
|
407 |
original copyright holder who places the Library under this License may add |
|
408 |
an explicit geographical distribution limitation excluding those countries, |
|
409 |
so that distribution is permitted only in or among countries not thus |
|
410 |
excluded. In such case, this License incorporates the limitation as if |
|
411 |
written in the body of this License. |
|
412 |
|
|
413 |
13. The Free Software Foundation may publish revised and/or new |
|
414 |
versions of the Lesser General Public License from time to time. |
|
415 |
Such new versions will be similar in spirit to the present version, |
|
416 |
but may differ in detail to address new problems or concerns. |
|
417 |
|
|
418 |
Each version is given a distinguishing version number. If the Library |
|
419 |
specifies a version number of this License which applies to it and |
|
420 |
"any later version", you have the option of following the terms and |
|
421 |
conditions either of that version or of any later version published by |
|
422 |
the Free Software Foundation. If the Library does not specify a |
|
423 |
license version number, you may choose any version ever published by |
|
424 |
the Free Software Foundation. |
|
425 |
|
|
426 |
14. If you wish to incorporate parts of the Library into other free |
|
427 |
programs whose distribution conditions are incompatible with these, |
|
428 |
write to the author to ask for permission. For software which is |
|
429 |
copyrighted by the Free Software Foundation, write to the Free |
|
430 |
Software Foundation; we sometimes make exceptions for this. Our |
|
431 |
decision will be guided by the two goals of preserving the free status |
|
432 |
of all derivatives of our free software and of promoting the sharing |
|
433 |
and reuse of software generally. |
|
434 |
|
|
435 |
NO WARRANTY |
|
436 |
|
|
437 |
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO |
|
438 |
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. |
|
439 |
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR |
|
440 |
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY |
|
441 |
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE |
|
442 |
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
443 |
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE |
|
444 |
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME |
|
445 |
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. |
|
446 |
|
|
447 |
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN |
|
448 |
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY |
|
449 |
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU |
|
450 |
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR |
|
451 |
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE |
|
452 |
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING |
|
453 |
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A |
|
454 |
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF |
|
455 |
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH |
|
456 |
DAMAGES. |
|
457 |
|
|
458 |
END OF TERMS AND CONDITIONS |
|
459 |
|
|
460 |
How to Apply These Terms to Your New Libraries |
|
461 |
|
|
462 |
If you develop a new library, and you want it to be of the greatest |
|
463 |
possible use to the public, we recommend making it free software that |
|
464 |
everyone can redistribute and change. You can do so by permitting |
|
465 |
redistribution under these terms (or, alternatively, under the terms of the |
|
466 |
ordinary General Public License). |
|
467 |
|
|
468 |
To apply these terms, attach the following notices to the library. It is |
|
469 |
safest to attach them to the start of each source file to most effectively |
|
470 |
convey the exclusion of warranty; and each file should have at least the |
|
471 |
"copyright" line and a pointer to where the full notice is found. |
|
472 |
|
|
473 |
<one line to give the library's name and a brief idea of what it does.> |
|
474 |
Copyright (C) <year> <name of author> |
|
475 |
|
|
476 |
This library is free software; you can redistribute it and/or |
|
477 |
modify it under the terms of the GNU Lesser General Public |
|
478 |
License as published by the Free Software Foundation; either |
|
479 |
version 2.1 of the License, or (at your option) any later version. |
|
480 |
|
|
481 |
This library is distributed in the hope that it will be useful, |
|
482 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
483 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
484 |
Lesser General Public License for more details. |
|
485 |
|
|
486 |
You should have received a copy of the GNU Lesser General Public |
|
487 |
License along with this library; if not, write to the Free Software |
|
488 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
489 |
|
|
490 |
Also add information on how to contact you by electronic and paper mail. |
|
491 |
|
|
492 |
You should also get your employer (if you work as a programmer) or your |
|
493 |
school, if any, to sign a "copyright disclaimer" for the library, if |
|
494 |
necessary. Here is a sample; alter the names: |
|
495 |
|
|
496 |
Yoyodyne, Inc., hereby disclaims all copyright interest in the |
|
497 |
library `Frob' (a library for tweaking knobs) written by James Random Hacker. |
|
498 |
|
|
499 |
<signature of Ty Coon>, 1 April 1990 |
|
500 |
Ty Coon, President of Vice |
|
501 |
|
|
502 |
That's all there is to it! |
|
503 |
|
|
504 |
|
|
505 |
|
js/dhtmlsuite/menu-for-applications.js | ||
---|---|---|
1 |
/************************************************************************************************************ |
|
2 |
@fileoverview |
|
3 |
DHTML Suite for Applications. |
|
4 |
Copyright (C) 2006 Alf Magne Kalleland(post@dhtmlgoodies.com)<br> |
|
5 |
<br> |
|
6 |
This library is free software; you can redistribute it and/or<br> |
|
7 |
modify it under the terms of the GNU Lesser General Public<br> |
|
8 |
License as published by the Free Software Foundation; either<br> |
|
9 |
version 2.1 of the License, or (at your option) any later version.<br> |
|
10 |
<br> |
|
11 |
This library is distributed in the hope that it will be useful,<br> |
|
12 |
but WITHOUT ANY WARRANTY; without even the implied warranty of<br> |
|
13 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br> |
|
14 |
Lesser General Public License for more details.<br> |
|
15 |
<br> |
|
16 |
You should have received a copy of the GNU Lesser General Public<br> |
|
17 |
License along with this library; if not, write to the Free Software<br> |
|
18 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA<br> |
|
19 |
<br> |
|
20 |
<br> |
|
21 |
www.dhtmlgoodies.com<br> |
|
22 |
Alf Magne Kalleland<br> |
|
23 |
|
|
24 |
************************************************************************************************************/ |
|
25 |
|
|
26 |
|
|
27 |
/** |
|
28 |
* |
|
29 |
* @package DHTMLSuite for applications |
|
30 |
* @copyright Copyright © 2006, www.dhtmlgoodies.com |
|
31 |
* @author Alf Magne Kalleland <post@dhtmlgoodies.com> |
|
32 |
*/ |
|
33 |
|
|
34 |
|
|
35 |
/************************************************************************************************************ |
|
36 |
* |
|
37 |
* Global variables |
|
38 |
* |
|
39 |
************************************************************************************************************/ |
|
40 |
|
|
41 |
|
|
42 |
// {{{ DHTMLSuite.createStandardObjects() |
|
43 |
/** |
|
44 |
* Create objects used by all scripts |
|
45 |
* |
|
46 |
* @public |
|
47 |
*/ |
|
48 |
|
|
49 |
|
|
50 |
var DHTMLSuite = new Object(); |
|
51 |
|
|
52 |
var standardObjectsCreated = false; // The classes below will check this variable, if it is false, default help objects will be created |
|
53 |
DHTMLSuite.eventElements = new Array(); // Array of elements that has been assigned to an event handler. |
|
54 |
|
|
55 |
DHTMLSuite.createStandardObjects = function() |
|
56 |
{ |
|
57 |
DHTMLSuite.clientInfoObj = new DHTMLSuite.clientInfo(); // Create browser info object |
|
58 |
DHTMLSuite.clientInfoObj.init(); |
|
59 |
if(!DHTMLSuite.configObj){ // If this object isn't allready created, create it. |
|
60 |
DHTMLSuite.configObj = new DHTMLSuite.config(); // Create configuration object. |
|
61 |
DHTMLSuite.configObj.init(); |
|
62 |
} |
|
63 |
DHTMLSuite.commonObj = new DHTMLSuite.common(); // Create configuration object. |
|
64 |
DHTMLSuite.variableStorage = new DHTMLSuite.globalVariableStorage();; // Create configuration object. |
|
65 |
DHTMLSuite.commonObj.init(); |
|
66 |
window.onunload = function() { DHTMLSuite.commonObj.__clearGarbage(); } |
|
67 |
|
|
68 |
standardObjectsCreated = true; |
|
69 |
|
|
70 |
|
|
71 |
} |
|
72 |
|
|
73 |
|
|
74 |
|
|
75 |
|
|
76 |
/************************************************************************************************************ |
|
77 |
* Configuration class used by most of the scripts |
|
78 |
* |
|
79 |
* Created: August, 19th, 2006 |
|
80 |
* Update log: |
|
81 |
* |
|
82 |
************************************************************************************************************/ |
|
83 |
|
|
84 |
|
|
85 |
/** |
|
86 |
* @constructor |
|
87 |
* @class Store global variables/configurations used by the classes below. Example: If you want to |
|
88 |
* change the path to the images used by the scripts, change it here. An object of this |
|
89 |
* class will always be available to the other classes. The name of this object is |
|
90 |
* "DHTMLSuite.configObj". <br><br> |
|
91 |
* |
|
92 |
* If you want to create an object of this class manually, remember to name it "DHTMLSuite.configObj" |
|
93 |
* This object should then be created before any other objects. This is nescessary if you want |
|
94 |
* the other objects to use the values you have put into the object. <br> |
|
95 |
* @version 1.0 |
|
96 |
* @version 1.0 |
|
97 |
* @author Alf Magne Kalleland(www.dhtmlgoodies.com) |
|
98 |
**/ |
|
99 |
DHTMLSuite.config = function() |
|
100 |
{ |
|
101 |
var imagePath; // Path to images used by the classes. |
|
102 |
var cssPath; // Path to CSS files used by the DHTML suite. |
|
103 |
} |
|
104 |
|
|
105 |
|
|
106 |
DHTMLSuite.config.prototype = { |
|
107 |
// {{{ init() |
|
108 |
/** |
|
109 |
* |
|
110 |
* @public |
|
111 |
*/ |
|
112 |
init : function() |
|
113 |
{ |
|
114 |
this.imagePath = '../images_dhtmlsuite/'; // Path to images |
|
115 |
this.cssPath = '../css_dhtmlsuite/'; // Path to images |
|
116 |
} |
|
117 |
// }}} |
|
118 |
, |
|
119 |
// {{{ setCssPath() |
|
120 |
/** |
|
121 |
* This method will save a new CSS path, i.e. where the css files of the dhtml suite are located. |
|
122 |
* |
|
123 |
* @param string newCssPath = New path to css files |
|
124 |
* @public |
|
125 |
*/ |
|
126 |
|
|
127 |
setCssPath : function(newCssPath) |
|
128 |
{ |
|
129 |
this.cssPath = newCssPath; |
|
130 |
} |
|
131 |
// }}} |
|
132 |
, |
|
133 |
// {{{ setImagePath() |
|
134 |
/** |
|
135 |
* This method will save a new image file path, i.e. where the image files used by the dhtml suite ar located |
|
136 |
* |
|
137 |
* @param string newImagePath = New path to image files |
|
138 |
* @public |
|
139 |
*/ |
|
140 |
setImagePath : function(newImagePath) |
|
141 |
{ |
|
142 |
this.imagePath = newImagePath; |
|
143 |
} |
|
144 |
// }}} |
|
145 |
} |
|
146 |
|
|
147 |
|
|
148 |
|
|
149 |
DHTMLSuite.globalVariableStorage = function() |
|
150 |
{ |
|
151 |
var menuBar_highlightedItems; // Array of highlighted menu bar items |
|
152 |
this.menuBar_highlightedItems = new Array(); |
|
153 |
|
|
154 |
var arrayOfDhtmlSuiteObjects; // Array of objects of class menuItem. |
|
155 |
this.arrayOfDhtmlSuiteObjects = new Array(); |
|
156 |
} |
|
157 |
|
|
158 |
DHTMLSuite.globalVariableStorage.prototype = { |
|
159 |
|
|
160 |
} |
|
161 |
|
|
162 |
|
|
163 |
/************************************************************************************************************ |
|
164 |
* A class with general methods used by most of the scripts |
|
165 |
* |
|
166 |
* Created: August, 19th, 2006 |
|
167 |
* Purpose of class: A class containing common method used by one or more of the gui classes below, |
|
168 |
* example: loadCSS. |
|
169 |
* An object("DHTMLSuite.commonObj") of this class will always be available to the other classes. |
|
170 |
* Update log: |
|
171 |
* |
|
172 |
************************************************************************************************************/ |
|
173 |
|
|
174 |
|
|
175 |
/** |
|
176 |
* @constructor |
|
177 |
* @class A class containing common method used by one or more of the gui classes below, example: loadCSS. An object("DHTMLSuite.commonObj") of this class will always be available to the other classes. |
|
178 |
* @version 1.0 |
|
179 |
* @author Alf Magne Kalleland(www.dhtmlgoodies.com) |
|
180 |
**/ |
|
181 |
|
|
182 |
DHTMLSuite.common = function() |
|
183 |
{ |
|
184 |
var loadedCSSFiles; // Array of loaded CSS files. Prevent same CSS file from being loaded twice. |
|
185 |
var cssCacheStatus; // Css cache status |
Auch abrufbar als: Unified diff
Das Javascript-Menü durch eine andere Implementation ersetzt, die auch unter dem Internet Explorer 7 funktioniert.