Revision 32fa785e
Von Moritz Bunkus vor mehr als 16 Jahren hinzugefügt
SL/Menu.pm | ||
---|---|---|
return $str;
|
||
}
|
||
|
||
sub menuitem_new {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my ($self, $name, $item) = @_;
|
||
|
||
my $form = $main::form;
|
||
|
||
my $module = $self->{$name}->{module} || $form->{script};
|
||
my $action = $self->{$name}->{action};
|
||
|
||
$item->{target} = $self->{$name}->{target} || "main_window";
|
||
$item->{href} = $self->{$name}->{href} || "${module}?action=" . $form->escape($action);
|
||
|
||
my @vars = qw(module target href);
|
||
push @vars, $action unless ($self->{$name}->{href});
|
||
|
||
map { delete $self->{$name}{$_} } @vars;
|
||
|
||
# add other params
|
||
foreach my $key (keys %{ $self->{$name} }) {
|
||
my ($value, $conf) = split(m/=/, $self->{$name}->{$key}, 2);
|
||
$value = $myconfig->{$value} . "/$conf" if ($conf);
|
||
$item->{href} .= "&" . $form->escape($key) . "=" . $form->escape($value);
|
||
}
|
||
|
||
$main::lxdebug->leave_sub();
|
||
}
|
||
|
||
sub menuitem_v3 {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
... | ... | |
return $str;
|
||
}
|
||
|
||
sub menuitemNew {
|
||
my ($self, $myconfig, $form, $item) = @_;
|
||
|
||
my $module = $form->{script};
|
||
my $action = "section_menu";
|
||
|
||
#if ($self->{$item}{module}) {
|
||
$module = $self->{$item}{module};
|
||
|
||
#}
|
||
if ($self->{$item}{action}) {
|
||
$action = $self->{$item}{action};
|
||
}
|
||
|
||
my $level = $form->escape($item);
|
||
my $str = qq|$module?action=$action&level=$level|;
|
||
my @vars = qw(module action target href);
|
||
|
||
if ($self->{$item}{href}) {
|
||
$str = qq|$self->{$item}{href}|;
|
||
@vars = qw(module target href);
|
||
}
|
||
|
||
map { delete $self->{$item}{$_} } @vars;
|
||
|
||
# add other params
|
||
foreach my $key (keys %{ $self->{$item} }) {
|
||
$str .= "&" . $form->escape($key, 1) . "=";
|
||
($value, $conf) = split(/=/, $self->{$item}{$key}, 2);
|
||
$value = $myconfig->{$value} . "/$conf" if ($conf);
|
||
$str .= $form->escape($value, 1);
|
||
}
|
||
|
||
$str .= " ";
|
||
|
||
}
|
||
|
||
sub access_control {
|
||
$main::lxdebug->enter_sub(2);
|
||
|
bin/mozilla/menunew.pl | ||
---|---|---|
#
|
||
# thre frame layout with refractured menu
|
||
#
|
||
# CHANGE LOG:
|
||
# DS. 2002-03-25 Created
|
||
# 2004-12-14 - New Optik - Marco Welter <mawe@linux-studio.de>
|
||
#######################################################################
|
||
|
||
$menufile = "menu.ini";
|
||
use English qw(-no_match_vars);
|
||
use List::Util qw(max);
|
||
|
||
use SL::Menu;
|
||
use CGI::Carp qw(fatalsToBrowser);
|
||
|
||
1;
|
||
|
||
# end of main
|
||
|
||
sub display {
|
||
$form->header();
|
||
|
||
$form->header;
|
||
|
||
&clock_line;
|
||
|
||
&acc_menu;
|
||
|
||
print qq|
|
||
<iframe id="win1" src="login.pl?action=company_logo" width="100%" height="93%" name="main_window" style="position: absolute; border:0px;">
|
||
<p>Ihr Browser kann leider keine eingebetteten Frames anzeigen.
|
||
</p>
|
||
</iframe>
|
||
</body>
|
||
</html>
|
||
|
||
|;
|
||
# $form->{force_ul_width} = $ENV{HTTP_USER_AGENT} =~ m/MSIE\s+6\./;
|
||
$form->{force_ul_width} = $ENV{HTTP_USER_AGENT} !~ m/Opera/;
|
||
# $form->{force_ul_width} = 1;
|
||
$form->{date} = clock_line();
|
||
$form->{menu_items} = acc_menu();
|
||
|
||
print $form->parse_html_template("menu/menunew");
|
||
}
|
||
|
||
sub clock_line {
|
||
|
||
$fensterlink="menunew.pl?action=display";
|
||
$fenster = "["."<a href=\"$fensterlink\" target=\"_blank\">neues Fenster</a>]";
|
||
|
||
$login = "[Nutzer "
|
||
. $form->{login}
|
||
. " - <a href=\"login.pl?action=logout\" target=\"_top\">"
|
||
. $locale->text('Logout')
|
||
. "</a>] ";
|
||
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
|
||
$Jahr, $Wochentag, $Jahrestag, $Sommerzeit)
|
||
= localtime(time);
|
||
my $CTIME_String = localtime(time);
|
||
$Monat += 1;
|
||
$Jahrestag += 1;
|
||
$Monat = $Monat < 10 ? $Monat = "0" . $Monat : $Monat;
|
||
... | ... | |
"April", "Mai", "Juni", "Juli",
|
||
"August", "September", "Oktober", "November",
|
||
"Dezember");
|
||
$datum =
|
||
return
|
||
$Wochentage[$Wochentag] . ", der "
|
||
. $Monatstag . "."
|
||
. $Monat . "."
|
||
. $Jahr . " - ";
|
||
|
||
#$zeit="<div id='Uhr'>".$Stunden.":".$Minuten.":".$Sekunden."</div>";
|
||
$zeit = "<div id='Uhr'>" . $Stunden . ":" . $Minuten . "</div>";
|
||
print qq|
|
||
<script type="text/javascript">
|
||
<!--
|
||
function clockon() {
|
||
var now = new Date();
|
||
var h = now.getHours();
|
||
var m = now.getMinutes();
|
||
document.getElementById('clock_id').innerHTML = (h<10?'0'+h:h)+":"+(m<10?'0'+m:m);
|
||
var timer=setTimeout("clockon()", 10000);
|
||
}
|
||
window.onload=clockon
|
||
//-->
|
||
</script>
|
||
<table border="0" width="100%" background="image/bg_titel.gif" cellpadding="0" cellspacing="0">
|
||
<tr>
|
||
<td style="color:white; font-family:verdana,arial,sans-serif; font-size: 12px;"> $fenster [<a href="JavaScript:top.main_window.print()">drucken</a>]</td>
|
||
<td align="right" style="vertical-align:middle; color:white; font-family:verdana,arial,sans-serif; font-size: 12px;" nowrap>
|
||
$login $datum <span id='clock_id' style='position:relative'></span>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|;
|
||
}
|
||
|
||
sub acc_menu {
|
||
$mainlevel = $form->{level};
|
||
$mainlevel =~ s/\Q$mainlevel\E--//g;
|
||
my $menu = new Menu "$menufile";
|
||
$locale = Locale->new($language, "menu");
|
||
|
||
$| = 1;
|
||
my $mainlevel = $form->{level};
|
||
$mainlevel =~ s/\Q$mainlevel\E--//g;
|
||
my $menu = Menu->new('menu.ini');
|
||
|
||
print qq|
|
||
<style>
|
||
<!--
|
||
$AUTOFLUSH = 1;
|
||
|
||
.itemBorder {
|
||
border: 1px solid black
|
||
}
|
||
my $all_items = [];
|
||
create_menu($menu, $all_items);
|
||
|
||
.itemText {
|
||
text-decoration: none;
|
||
color: #000000;
|
||
font: 12px Arial, Helvetica
|
||
}
|
||
|
||
.rootItemText {
|
||
text-decoration: none;
|
||
color: #ffffff;
|
||
font: 12px Arial, Helvetica
|
||
}
|
||
|
||
.menu {
|
||
color:#ffffff;
|
||
background:url(image/bg_css_menu.png) repeat bottom;
|
||
border:1px solid;
|
||
border-color:#ccc #888 #555 #bbb;
|
||
}
|
||
|
||
-->
|
||
</style>
|
||
|
||
<script type="text/javascript">
|
||
<!--
|
||
var isDOM = (document.getElementById ? true : false);
|
||
var isIE4 = ((document.all && !isDOM) ? true : false);
|
||
var isNS4 = (document.layers ? true : false);
|
||
//var KO = (navigator.appName=="Konqueror" \|\| navigator.appName=="Opera") ;
|
||
var KO = ((navigator.userAgent.indexOf('Opera',0) != -1) \|\| (navigator.userAgent.indexOf('Konqueror',0) != -1));
|
||
function getRef(id) {
|
||
if (isDOM) return document.getElementById(id);
|
||
if (isIE4) return document.all[id];
|
||
if (isNS4) return document.layers[id];
|
||
}
|
||
function getSty(id) {
|
||
return (isNS4 ? getRef(id) : getRef(id).style);
|
||
}
|
||
var popTimer = 0;
|
||
var litNow = new Array();
|
||
function popOver(menuNum, itemNum) {
|
||
if (KO) document.getElementById("win1").style.visibility = "hidden";
|
||
clearTimeout(popTimer);
|
||
hideAllBut(menuNum);
|
||
litNow = getTree(menuNum, itemNum);
|
||
changeCol(litNow, true);
|
||
targetNum = menu[menuNum][itemNum].target;
|
||
if (targetNum > 0) {
|
||
thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left);
|
||
thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top);
|
||
with (menu[targetNum][0].ref) {
|
||
left = parseInt(thisX + menu[targetNum][0].x);
|
||
top = parseInt(thisY + menu[targetNum][0].y);
|
||
visibility = 'visible';
|
||
}
|
||
}
|
||
}
|
||
function popOut(menuNum, itemNum) {
|
||
if ((menuNum == 0) && !menu[menuNum][itemNum].target)
|
||
hideAllBut(0)
|
||
if (KO) document.getElementById("win1").style.visibility = "visible";
|
||
else
|
||
popTimer = setTimeout('hideAllBut(0)', 500);
|
||
}
|
||
function getTree(menuNum, itemNum) {
|
||
itemArray = new Array(menu.length);
|
||
while(1) {
|
||
itemArray[menuNum] = itemNum;
|
||
if (menuNum == 0) return itemArray;
|
||
itemNum = menu[menuNum][0].parentItem;
|
||
menuNum = menu[menuNum][0].parentMenu;
|
||
}
|
||
}
|
||
function changeCol(changeArray, isOver) {
|
||
for (menuCount = 0; menuCount < changeArray.length; menuCount++) {
|
||
if (changeArray[menuCount]) {
|
||
newCol = isOver ? menu[menuCount][0].overCol : menu[menuCount][0].backCol;
|
||
with (menu[menuCount][changeArray[menuCount]].ref) {
|
||
if (isNS4) bgColor = newCol;
|
||
else backgroundColor = newCol;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
function hideAllBut(menuNum) {
|
||
var keepMenus = getTree(menuNum, 1);
|
||
for (count = 0; count < menu.length; count++)
|
||
if (!keepMenus[count])
|
||
menu[count][0].ref.visibility = 'hidden';
|
||
changeCol(litNow, false);
|
||
}
|
||
my $item = { 'subitems' => $all_items };
|
||
calculate_width($item);
|
||
|
||
function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass) {
|
||
this.isVert = isVert;
|
||
this.popInd = popInd
|
||
this.x = x;
|
||
this.y = y;
|
||
this.width = width;
|
||
this.overCol = overCol;
|
||
this.backCol = backCol;
|
||
this.borderClass = borderClass;
|
||
this.textClass = textClass;
|
||
this.parentMenu = null;
|
||
this.parentItem = null;
|
||
this.ref = null;
|
||
}
|
||
function Item(text, href, frame, length, spacing, target) {
|
||
this.text = text;
|
||
this.href = href;
|
||
this.frame = frame;
|
||
this.length = length;
|
||
this.spacing = spacing;
|
||
this.target = target;
|
||
this.ref = null;
|
||
return $all_items;
|
||
}
|
||
function go(link,frame) {
|
||
tmp=eval("top."+frame);
|
||
tmp.location=link;
|
||
//top.main_window.location=link;
|
||
}
|
||
function writeMenus() {
|
||
if (!isDOM && !isIE4 && !isNS4) return;
|
||
for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[currMenu][0]) {
|
||
var str = '', itemX = 0, itemY = 0;
|
||
for (currItem = 1; currItem < menu[currMenu].length; currItem++) with (menu[currMenu][currItem]) {
|
||
var itemID = 'menu' + currMenu + 'item' + currItem;
|
||
var w = (isVert ? width : length);
|
||
var h = (isVert ? length : width);
|
||
if (isDOM \|\| isIE4) {
|
||
str += '<div id="' + itemID + '" style="position: absolute; left: ' + itemX + '; top: ' + itemY + '; width: ' + w + '; height: ' + h + '; visibility: inherit; ';
|
||
if (backCol) str += 'background: ' + backCol + '; ';
|
||
str += '" ';
|
||
}
|
||
if (isNS4) {
|
||
str += '<layer id="' + itemID + '" left="' + itemX + '" top="' + itemY + '" width="' + w + '" height="' + h + '" visibility="inherit" ';
|
||
if (backCol) str += 'bgcolor="' + backCol + '" ';
|
||
}
|
||
if (borderClass) str += 'class="' + borderClass + '" "';
|
||
str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">';
|
||
str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (!isNS4 && borderClass ? 3 : 0) + '">';
|
||
str +='<tr><td class="' + textClass + '" style="cursor:pointer;" align="left" height="' + (h - 7) + '" onClick=\\'go("' + href + '","' + frame + '")\\'>' + text + '</a></td>';
|
||
if (target > 0) {
|
||
menu[target][0].parentMenu = currMenu;
|
||
menu[target][0].parentItem = currItem;
|
||
if (popInd) str += '<td class="' + textClass + '" align="right">' + popInd + '</td>';
|
||
}
|
||
str += '</tr></table>' + (isNS4 ? '</layer>' : '</div>');
|
||
if (isVert) itemY += length + spacing;
|
||
else itemX += length + spacing;
|
||
}
|
||
if (isDOM) {
|
||
var newDiv = document.createElement('div');
|
||
document.getElementsByTagName('body').item(0).appendChild(newDiv);
|
||
newDiv.innerHTML = str;
|
||
ref = newDiv.style;
|
||
ref.position = 'absolute';
|
||
ref.visibility = 'hidden';
|
||
}
|
||
if (isIE4) {
|
||
document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>');
|
||
ref = getSty('menu' + currMenu + 'div');
|
||
}
|
||
if (isNS4) {
|
||
ref = new Layer(0);
|
||
ref.document.write(str);
|
||
ref.document.close();
|
||
}
|
||
for (currItem = 1; currItem < menu[currMenu].length; currItem++) {
|
||
itemName = 'menu' + currMenu + 'item' + currItem;
|
||
if (isDOM \|\| isIE4) menu[currMenu][currItem].ref = getSty(itemName);
|
||
if (isNS4) menu[currMenu][currItem].ref = ref.document[itemName];
|
||
}
|
||
}
|
||
with(menu[0][0]) {
|
||
ref.left = x;
|
||
ref.top = y;
|
||
ref.visibility = 'visible';
|
||
}
|
||
}
|
||
var menu = new Array();
|
||
var defOver = '#cccccc';
|
||
var defBack = '#dddddd';
|
||
var defLength = 22;
|
||
menu[0] = new Array();
|
||
menu[0][0] = new Menu(false, '', 5, 18, 19, '#cccccc', '', '', 'rootItemText');
|
||
|
||
|;
|
||
sub calculate_width {
|
||
my $item = shift;
|
||
|
||
§ion_menu($menu);
|
||
$item->{max_width} = max map { length $_->{title} } @{ $item->{subitems} };
|
||
|
||
print qq|
|
||
var popOldWidth = window.innerWidth;
|
||
nsResizeHandler = new Function('if (popOldWidth != window.innerWidth) location.reload()');
|
||
if (isNS4) document.captureEvents(Event.CLICK);
|
||
document.onclick = clickHandle;
|
||
function clickHandle(evt) {
|
||
if (isNS4) document.routeEvent(evt);
|
||
hideAllBut(0);
|
||
if (KO) document.getElementById("win1").style.visibility = "visible";
|
||
}
|
||
function moveRoot() {
|
||
with(menu[0][0].ref) left = ((parseInt(left) < 100) ? 100 : 5);
|
||
foreach my $subitem (@{ $item->{subitems} }) {
|
||
calculate_width($subitem) if ($subitem->{subitems});
|
||
}
|
||
}
|
||
// End -->
|
||
</script>
|
||
|
||
<BODY scrolling="no" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" style="margin: 0" onLoad="writeMenus(); clockon();" onResize="if (isNS4) nsResizeHandler()">
|
||
sub create_menu {
|
||
my ($menu, $all_items, $parent, $depth) = @_;
|
||
my $html;
|
||
|
||
die if ($depth * 1 > 5);
|
||
|
||
<table class="menu" width="100%" border="0" cellpadding="0" cellspacing="0">
|
||
<tr><td height="21"><font size="1"> </font></td></tr></table>
|
||
my @menuorder = $menu->access_control(\%myconfig, $parent);
|
||
$parent .= "--" if ($parent);
|
||
|
||
foreach my $name (@menuorder) {
|
||
substr($name, 0, length($parent), "");
|
||
next if (($name eq "") || ($name =~ /--/));
|
||
|
||
|;
|
||
my $menu_item = $menu->{"${parent}${name}"};
|
||
my $item = { 'title' => $locale->text($name) };
|
||
push @{ $all_items }, $item;
|
||
|
||
print qq|
|
||
|
||
|;
|
||
if ($menu_item->{submenu} || !defined($menu_item->{module}) || ($menu_item->{module} eq "menu.pl")) {
|
||
$item->{subitems} = [];
|
||
create_menu($menu, $item->{subitems}, "${parent}${name}", $depth * 1 + 1);
|
||
|
||
}
|
||
|
||
sub section_menu {
|
||
my ($menu, $level) = @_;
|
||
|
||
# build tiered menus
|
||
my @menuorder = $menu->access_control(\%myconfig, $level);
|
||
$main = 0;
|
||
|
||
#$pm=0;
|
||
$shlp=0;
|
||
while (@menuorder) {
|
||
$item = shift @menuorder;
|
||
$label = $item;
|
||
$ml = $item;
|
||
$label =~ s/\Q$level\E--//g;
|
||
$ml =~ s/--.*//;
|
||
$label = $locale->text($label);
|
||
$label =~ s/ / /g;
|
||
$menu->{$item}{target} = "main_window" unless $menu->{$item}{target};
|
||
|
||
if ($menu->{$item}{submenu}) {
|
||
$menu->{$item}{$item} = !$form->{$item};
|
||
|
||
# Untermen
|
||
if ($mlz{"s$ml"} > 1) {
|
||
$z++;
|
||
$sm = 1;
|
||
} else {
|
||
$z = $sm;
|
||
$mlz{"s$ml"}++;
|
||
}
|
||
print
|
||
qq|menu[$mlz{$ml}][$z] = new Item('$label', '#', '', defLength, 0, |
|
||
. ++$pm
|
||
. qq|);\n|;
|
||
$sm = 1;
|
||
print qq|menu[$pm] = new Array();\n|;
|
||
print
|
||
qq|menu[$pm][0] = new Menu(true, '', 85, 0, 180, defOver, defBack, 'itemBorder', 'itemText');\n|;
|
||
map { shift @menuorder } grep /^$item/, @menuorder;
|
||
§ion_menu($menu, $item);
|
||
map { shift @menuorder } grep /^$item/, @menuorder;
|
||
} else {
|
||
if ($menu->{$item}{module}) {
|
||
|
||
#Untermen?punkte
|
||
$target = $menu->{$item}{target};
|
||
$uri = $menu->menuitemNew(\%myconfig, \%$form, $item, $level);
|
||
|
||
#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|;
|
||
print
|
||
qq|menu[$pm][$sm] = new Item('$label', '$uri', '$target', defLength, 0, 0);\n|;
|
||
$sm++;
|
||
} else { # Hauptmenu
|
||
my $ml_ = $form->escape($ml);
|
||
$mm++;
|
||
$pm++;
|
||
%mlz = ($ml, $pm, "s$ml", 1);
|
||
$shlp = $sm;
|
||
$sm = 1;
|
||
$breit = 15 + length($label) * 6;
|
||
print
|
||
qq|menu[0][$mm] = new Item(' $label', '#', '', $breit, 10, $pm); \n|;
|
||
print qq|menu[$pm] = new Array();\n|;
|
||
print
|
||
qq|menu[$pm][0] = new Menu(true, '>', 0, 20, 180, defOver, defBack, 'itemBorder', 'itemText');\n|;
|
||
|
||
#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|;
|
||
§ion_menu($menu, $item);
|
||
|
||
#print qq|<br>\n|;
|
||
}
|
||
$menu->menuitem_new("${parent}${name}", $item);
|
||
}
|
||
}
|
||
}
|
css/dhtmlsuite/menu-bar.css | ||
---|---|---|
/************************************************************************************************************
|
||
|
||
DHTML Suite for Applications
|
||
(C) www.dhtmlgoodies.com, August 2006
|
||
|
||
CSS for the DHTMLsuite_tableWidget class.
|
||
|
||
Terms of use:
|
||
Look at the terms of use at http://www.dhtmlgoodies.com/index.html?page=termsOfUse
|
||
|
||
Thank you!
|
||
|
||
www.dhtmlgoodies.com
|
||
Alf Magne Kalleland
|
||
|
||
************************************************************************************************************/
|
||
|
||
.DHTMLSuite_menuBar_top{ /* The bar that is parent of the menu strip */
|
||
color:#FFF;
|
||
height:26px;
|
||
width:100%;
|
||
background-repeat:repeat-x;
|
||
font-family: Arial;
|
||
font-size:12px;
|
||
z-index:100000;
|
||
padding-left:10px;
|
||
/* background-image:url('../../image/dhtmlsuite/menu_strip_bg.jpg');*/
|
||
background-image:url('../../image/bg_css_menu.png');
|
||
}
|
||
|
||
.DHTMLSuite_menuBar_sub{
|
||
position:absolute;
|
||
background-color:#FFF;
|
||
border:1px solid #000;
|
||
background-image:url('../../image/dhtmlsuite/menu-bar-gradient.jpg'); /* Background image for sub menu items */
|
||
background-repeat:repeat-y;
|
||
background-position: left center;
|
||
display:inline;
|
||
}
|
||
|
css/dhtmlsuite/menu-item.css | ||
---|---|---|
/* CSS FOR MENU ITEM OF TYPE "top" */
|
||
|
||
.DHTMLSuite_menuItem_top_regular,.DHTMLSuite_menuItem_top_over,.DHTMLSuite_menuItem_top_click,.DHTMLSuite_menuItem_top_disabled,.DHTMLSuite_menuItem_top_active{
|
||
height:19px;
|
||
}
|
||
.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{
|
||
padding-top:2px;
|
||
padding-bottom:2px;
|
||
}
|
||
.DHTMLSuite_menuItem_top_regular{ /* Top level menu item - Regular state */
|
||
padding-left:4px;
|
||
padding-right:4px;
|
||
margin-right:2px;
|
||
padding-top:1px;
|
||
padding-bottom:1px;
|
||
cursor:pointer;
|
||
line-height:16px;
|
||
margin-top:2px;
|
||
}
|
||
|
||
.DHTMLSuite_menuItem_top_over{ /* Top level menu item - Mouse over state */
|
||
padding-left:3px;
|
||
padding-right:3px;
|
||
margin-right:2px;
|
||
border:1px solid #000;
|
||
color:#000;
|
||
background-color:#FFEEC2;
|
||
cursor:pointer;
|
||
line-height:16px;
|
||
margin-top:2px;
|
||
}
|
||
|
||
.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 */
|
||
padding-left:3px;
|
||
padding-right:3px;
|
||
margin-right:2px;
|
||
border:1px solid #000;
|
||
border-bottom:1px solid #FFF;
|
||
cursor:pointer;
|
||
line-height:16px;
|
||
margin-top:2px;
|
||
}
|
||
|
||
.DHTMLSuite_menuItem_top_click{ /* Top level menu item - Mouse click state */
|
||
padding-left:3px;
|
||
padding-right:3px;
|
||
margin-right:2px;
|
||
border:1px solid #000;
|
||
background-color:#FFB25C;
|
||
cursor:pointer;
|
||
line-height:16px;
|
||
margin-top:2px;
|
||
z-index:20000;
|
||
}
|
||
|
||
.DHTMLSuite_menuItem_top_disabled{ /* Disabled menu item */
|
||
padding-left:4px;
|
||
padding-right:4px;
|
||
margin-right:2px;
|
||
padding-top:1px;
|
||
padding-bottom:1px;
|
||
cursor:default;
|
||
line-height:16px;
|
||
margin-top:2px;
|
||
}
|
||
|
||
.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 */
|
||
filter:alpha(opacity=40); /* Transparency */
|
||
opacity:0.4; /* Transparency */
|
||
-moz-opacity:0.4; /* Transparency */
|
||
-khtml-opacity:.4; /* Transparency */
|
||
}
|
||
|
||
.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 */
|
||
float:left;
|
||
padding-left:1px;
|
||
padding-right:1px;
|
||
}
|
||
|
||
/* CSS FOR THE SMALL ARROW DIV - WHEN YOU CLICK ON THIS DIV, SUB ELEMENTS WILL SHOW */
|
||
.DHTMLSuite_menuItem_top_arrowShowSub{ /* This is the arrow for top level elements */
|
||
width:12px; /* Width of item */
|
||
background-repeat:no-repeat; /* No background repeat for the arrow */
|
||
background-position:center center; /* Position of the arrow. at the center of this div */
|
||
background-image: url('../../image/dhtmlsuite/menu_strip_down_arrow.png'); /* Relative path to the arrow */
|
||
margin:0px;
|
||
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 */
|
||
padding:0px;
|
||
height:16px;
|
||
margin-left:2px;
|
||
float:right;
|
||
}
|
||
|
||
.DHTMLSuite_menuItem_top_over .DHTMLSuite_menuItem_top_arrowShowSub,
|
||
.DHTMLSuite_menuItem_top_click .DHTMLSuite_menuItem_top_arrowShowSub
|
||
{ /* Sub menu arrows */
|
||
margin-left:1px;
|
||
border-left:1px solid #000;
|
||
}
|
||
|
||
/* CSS FOR SEPARATOR */
|
||
|
||
.DHTMLSuite_menuItem_separator_top{ /* Separator of type "top" */
|
||
height:20px;
|
||
margin-top:3px;
|
||
margin-bottom:3px;
|
||
width:4px;
|
||
padding-left:3px;
|
||
padding-right:3px;
|
||
background-repeat:repeat-y;
|
||
background-image:url('../../image/dhtmlsuite/menu_strip_separator.gif');
|
||
|
||
}
|
||
|
||
|
||
/* CSS FOR MENU ITEM OF TYPE "sub" */
|
||
|
||
.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 */
|
||
clear:both;
|
||
line-height:18px; /* Height of menu item */
|
||
height:18px; /* Height of menu item */
|
||
padding-left:25px; /* Space inside the menu item - the 25 pixels are used in order to avoid text overlapping menu item icon */
|
||
padding-right:4px; /* Space inside the menu item */
|
||
padding-top:2px; /* Space inside the menu item */
|
||
padding-bottom:2px; /* Space inside the menu item */
|
||
cursor:pointer; /* Mouse cursor set to a "hand" */
|
||
margin:1px; /* A little space around the item */
|
||
background-repeat:no-repeat; /* No background repeat */
|
||
}
|
||
.DHTMLSuite_menuItem_sub_disabled{ /* Disabled sub menu item */
|
||
cursor:default; /* Arrow as cursor instead of hand */
|
||
}
|
||
.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 */
|
||
filter:alpha(opacity=40); /* Transparency */
|
||
opacity:0.4; /* Transparency */
|
||
-moz-opacity:0.4; /* Transparency */
|
||
-khtml-opacity:.4; /* Transparency */
|
||
}
|
||
.DHTMLSuite_menuItem_sub_regular,.DHTMLSuite_menuItem_sub_disabled{ /* Regular menu item */
|
||
margin-left:2px; /* size of margin above + 1 pixel */
|
||
padding-top:3px; /* Size of padding-top above + 1 pixel */
|
||
padding-bottom:3px; /* Size of padding-bottom above + 1 pixel */
|
||
}
|
||
|
||
.DHTMLSuite_menuItem_sub_over,.DHTMLSuite_menuItem_sub_click,.DHTMLSuite_menuItem_sub_active{
|
||
border:1px solid #006; /* Border around mouse over items, click items and active items */
|
||
}
|
||
|
||
.DHTMLSuite_menuItem_sub_over,.DHTMLSuite_menuItem_sub_active{ /* Mouse over effect */
|
||
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 */
|
||
}
|
||
|
||
.DHTMLSuite_menuItem_sub_click{ /* Mouse click effect */
|
||
background-color:#FFB25C; /* Background color when the mouse button is pressed down on a menu item */
|
||
}
|
||
|
||
.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 */
|
||
float:left; /* To get the icons and text of sub elements side by side */
|
||
padding-left:1px;
|
||
padding-right:1px;
|
||
|
||
}
|
||
.DHTMLSuite_menuItem_sub_arrowShowSub{ /* Arrow div for sub elements (Right pointing arrow ) */
|
||
position:absolute; /* Never change this one */
|
||
background-image:url('../../image/dhtmlsuite/menu-bar-right-arrow.png'); /* Path relative to the css file */
|
||
width:18px;
|
||
height:18px;
|
||
text-align:right;
|
||
right:0px;
|
||
background-repeat:no-repeat; /* No background repeat */
|
||
background-position: center right; /* Position of arrow */
|
||
}
|
||
|
||
|
||
.DHTMLSuite_menuItem_separator_sub{ /* Separator of type "sub" */
|
||
height:1px; /* Height of separator */
|
||
margin-top:1px; /* Space above the separator */
|
||
margin-bottom:1px; /* Space below the separator */
|
||
margin-left:24px; /* left margin because we don't want the separator to cover the gradient */
|
||
padding-right:3px; /* space at the right of the separator */
|
||
background-color:#6A8CCB; /* background color for the separator - blue */
|
||
}
|
||
|
||
|
doc/modules/LICENSE.dhtmlsuite-for-applications | ||
---|---|---|
GNU LESSER GENERAL PUBLIC LICENSE
|
||
Version 2.1, February 1999
|
||
|
||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||
Everyone is permitted to copy and distribute verbatim copies
|
||
of this license document, but changing it is not allowed.
|
||
|
||
[This is the first released version of the Lesser GPL. It also counts
|
||
as the successor of the GNU Library Public License, version 2, hence
|
||
the version number 2.1.]
|
||
|
||
Preamble
|
||
|
||
The licenses for most software are designed to take away your
|
||
freedom to share and change it. By contrast, the GNU General Public
|
||
Licenses are intended to guarantee your freedom to share and change
|
||
free software--to make sure the software is free for all its users.
|
||
|
||
This license, the Lesser General Public License, applies to some
|
||
specially designated software packages--typically libraries--of the
|
||
Free Software Foundation and other authors who decide to use it. You
|
||
can use it too, but we suggest you first think carefully about whether
|
||
this license or the ordinary General Public License is the better
|
||
strategy to use in any particular case, based on the explanations below.
|
||
|
||
When we speak of free software, we are referring to freedom of use,
|
||
not price. Our General Public Licenses are designed to make sure that
|
||
you have the freedom to distribute copies of free software (and charge
|
||
for this service if you wish); that you receive source code or can get
|
||
it if you want it; that you can change the software and use pieces of
|
||
it in new free programs; and that you are informed that you can do
|
||
these things.
|
||
|
||
To protect your rights, we need to make restrictions that forbid
|
||
distributors to deny you these rights or to ask you to surrender these
|
||
rights. These restrictions translate to certain responsibilities for
|
||
you if you distribute copies of the library or if you modify it.
|
||
|
||
For example, if you distribute copies of the library, whether gratis
|
||
or for a fee, you must give the recipients all the rights that we gave
|
||
you. You must make sure that they, too, receive or can get the source
|
||
code. If you link other code with the library, you must provide
|
||
complete object files to the recipients, so that they can relink them
|
||
with the library after making changes to the library and recompiling
|
||
it. And you must show them these terms so they know their rights.
|
||
|
||
We protect your rights with a two-step method: (1) we copyright the
|
||
library, and (2) we offer you this license, which gives you legal
|
||
permission to copy, distribute and/or modify the library.
|
||
|
||
To protect each distributor, we want to make it very clear that
|
||
there is no warranty for the free library. Also, if the library is
|
||
modified by someone else and passed on, the recipients should know
|
||
that what they have is not the original version, so that the original
|
||
author's reputation will not be affected by problems that might be
|
||
introduced by others.
|
||
|
||
Finally, software patents pose a constant threat to the existence of
|
||
any free program. We wish to make sure that a company cannot
|
||
effectively restrict the users of a free program by obtaining a
|
||
restrictive license from a patent holder. Therefore, we insist that
|
||
any patent license obtained for a version of the library must be
|
||
consistent with the full freedom of use specified in this license.
|
||
|
||
Most GNU software, including some libraries, is covered by the
|
||
ordinary GNU General Public License. This license, the GNU Lesser
|
||
General Public License, applies to certain designated libraries, and
|
||
is quite different from the ordinary General Public License. We use
|
||
this license for certain libraries in order to permit linking those
|
||
libraries into non-free programs.
|
||
|
||
When a program is linked with a library, whether statically or using
|
||
a shared library, the combination of the two is legally speaking a
|
||
combined work, a derivative of the original library. The ordinary
|
||
General Public License therefore permits such linking only if the
|
||
entire combination fits its criteria of freedom. The Lesser General
|
||
Public License permits more lax criteria for linking other code with
|
||
the library.
|
||
|
||
We call this license the "Lesser" General Public License because it
|
||
does Less to protect the user's freedom than the ordinary General
|
||
Public License. It also provides other free software developers Less
|
||
of an advantage over competing non-free programs. These disadvantages
|
||
are the reason we use the ordinary General Public License for many
|
||
libraries. However, the Lesser license provides advantages in certain
|
||
special circumstances.
|
||
|
||
For example, on rare occasions, there may be a special need to
|
||
encourage the widest possible use of a certain library, so that it becomes
|
||
a de-facto standard. To achieve this, non-free programs must be
|
||
allowed to use the library. A more frequent case is that a free
|
||
library does the same job as widely used non-free libraries. In this
|
||
case, there is little to gain by limiting the free library to free
|
||
software only, so we use the Lesser General Public License.
|
||
|
||
In other cases, permission to use a particular library in non-free
|
||
programs enables a greater number of people to use a large body of
|
||
free software. For example, permission to use the GNU C Library in
|
||
non-free programs enables many more people to use the whole GNU
|
||
operating system, as well as its variant, the GNU/Linux operating
|
||
system.
|
||
|
||
Although the Lesser General Public License is Less protective of the
|
||
users' freedom, it does ensure that the user of a program that is
|
||
linked with the Library has the freedom and the wherewithal to run
|
||
that program using a modified version of the Library.
|
||
|
||
The precise terms and conditions for copying, distribution and
|
||
modification follow. Pay close attention to the difference between a
|
||
"work based on the library" and a "work that uses the library". The
|
||
former contains code derived from the library, whereas the latter must
|
||
be combined with the library in order to run.
|
||
|
||
GNU LESSER GENERAL PUBLIC LICENSE
|
||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||
|
||
0. This License Agreement applies to any software library or other
|
||
program which contains a notice placed by the copyright holder or
|
||
other authorized party saying it may be distributed under the terms of
|
||
this Lesser General Public License (also called "this License").
|
||
Each licensee is addressed as "you".
|
||
|
||
A "library" means a collection of software functions and/or data
|
||
prepared so as to be conveniently linked with application programs
|
||
(which use some of those functions and data) to form executables.
|
||
|
||
The "Library", below, refers to any such software library or work
|
||
which has been distributed under these terms. A "work based on the
|
||
Library" means either the Library or any derivative work under
|
||
copyright law: that is to say, a work containing the Library or a
|
||
portion of it, either verbatim or with modifications and/or translated
|
||
straightforwardly into another language. (Hereinafter, translation is
|
||
included without limitation in the term "modification".)
|
||
|
||
"Source code" for a work means the preferred form of the work for
|
||
making modifications to it. For a library, complete source code means
|
||
all the source code for all modules it contains, plus any associated
|
||
interface definition files, plus the scripts used to control compilation
|
||
and installation of the library.
|
||
|
||
Activities other than copying, distribution and modification are not
|
||
covered by this License; they are outside its scope. The act of
|
||
running a program using the Library is not restricted, and output from
|
||
such a program is covered only if its contents constitute a work based
|
||
on the Library (independent of the use of the Library in a tool for
|
||
writing it). Whether that is true depends on what the Library does
|
||
and what the program that uses the Library does.
|
||
|
||
1. You may copy and distribute verbatim copies of the Library's
|
||
complete source code as you receive it, in any medium, provided that
|
||
you conspicuously and appropriately publish on each copy an
|
||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||
all the notices that refer to this License and to the absence of any
|
||
warranty; and distribute a copy of this License along with the
|
||
Library.
|
||
|
||
You may charge a fee for the physical act of transferring a copy,
|
||
and you may at your option offer warranty protection in exchange for a
|
||
fee.
|
||
|
||
2. You may modify your copy or copies of the Library or any portion
|
||
of it, thus forming a work based on the Library, and copy and
|
||
distribute such modifications or work under the terms of Section 1
|
||
above, provided that you also meet all of these conditions:
|
||
|
||
a) The modified work must itself be a software library.
|
||
|
||
b) You must cause the files modified to carry prominent notices
|
||
stating that you changed the files and the date of any change.
|
||
|
||
c) You must cause the whole of the work to be licensed at no
|
||
charge to all third parties under the terms of this License.
|
||
|
||
d) If a facility in the modified Library refers to a function or a
|
||
table of data to be supplied by an application program that uses
|
||
the facility, other than as an argument passed when the facility
|
||
is invoked, then you must make a good faith effort to ensure that,
|
||
in the event an application does not supply such function or
|
||
table, the facility still operates, and performs whatever part of
|
||
its purpose remains meaningful.
|
||
|
||
(For example, a function in a library to compute square roots has
|
||
a purpose that is entirely well-defined independent of the
|
||
application. Therefore, Subsection 2d requires that any
|
||
application-supplied function or table used by this function must
|
||
be optional: if the application does not supply it, the square
|
||
root function must still compute square roots.)
|
||
|
||
These requirements apply to the modified work as a whole. If
|
||
identifiable sections of that work are not derived from the Library,
|
||
and can be reasonably considered independent and separate works in
|
||
themselves, then this License, and its terms, do not apply to those
|
||
sections when you distribute them as separate works. But when you
|
||
distribute the same sections as part of a whole which is a work based
|
||
on the Library, the distribution of the whole must be on the terms of
|
||
this License, whose permissions for other licensees extend to the
|
||
entire whole, and thus to each and every part regardless of who wrote
|
||
it.
|
||
|
||
Thus, it is not the intent of this section to claim rights or contest
|
||
your rights to work written entirely by you; rather, the intent is to
|
||
exercise the right to control the distribution of derivative or
|
||
collective works based on the Library.
|
||
|
||
In addition, mere aggregation of another work not based on the Library
|
||
with the Library (or with a work based on the Library) on a volume of
|
||
a storage or distribution medium does not bring the other work under
|
||
the scope of this License.
|
||
|
||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||
License instead of this License to a given copy of the Library. To do
|
||
this, you must alter all the notices that refer to this License, so
|
||
that they refer to the ordinary GNU General Public License, version 2,
|
||
instead of to this License. (If a newer version than version 2 of the
|
||
ordinary GNU General Public License has appeared, then you can specify
|
||
that version instead if you wish.) Do not make any other change in
|
||
these notices.
|
||
|
||
Once this change is made in a given copy, it is irreversible for
|
||
that copy, so the ordinary GNU General Public License applies to all
|
||
subsequent copies and derivative works made from that copy.
|
||
|
||
This option is useful when you wish to copy part of the code of
|
||
the Library into a program that is not a library.
|
||
|
||
4. You may copy and distribute the Library (or a portion or
|
||
derivative of it, under Section 2) in object code or executable form
|
||
under the terms of Sections 1 and 2 above provided that you accompany
|
||
it with the complete corresponding machine-readable source code, which
|
||
must be distributed under the terms of Sections 1 and 2 above on a
|
||
medium customarily used for software interchange.
|
||
|
||
If distribution of object code is made by offering access to copy
|
||
from a designated place, then offering equivalent access to copy the
|
||
source code from the same place satisfies the requirement to
|
||
distribute the source code, even though third parties are not
|
||
compelled to copy the source along with the object code.
|
||
|
||
5. A program that contains no derivative of any portion of the
|
||
Library, but is designed to work with the Library by being compiled or
|
||
linked with it, is called a "work that uses the Library". Such a
|
||
work, in isolation, is not a derivative work of the Library, and
|
||
therefore falls outside the scope of this License.
|
||
|
||
However, linking a "work that uses the Library" with the Library
|
||
creates an executable that is a derivative of the Library (because it
|
||
contains portions of the Library), rather than a "work that uses the
|
||
library". The executable is therefore covered by this License.
|
||
Section 6 states terms for distribution of such executables.
|
||
|
||
When a "work that uses the Library" uses material from a header file
|
||
that is part of the Library, the object code for the work may be a
|
||
derivative work of the Library even though the source code is not.
|
||
Whether this is true is especially significant if the work can be
|
||
linked without the Library, or if the work is itself a library. The
|
||
threshold for this to be true is not precisely defined by law.
|
||
|
||
If such an object file uses only numerical parameters, data
|
||
structure layouts and accessors, and small macros and small inline
|
||
functions (ten lines or less in length), then the use of the object
|
||
file is unrestricted, regardless of whether it is legally a derivative
|
||
work. (Executables containing this object code plus portions of the
|
||
Library will still fall under Section 6.)
|
||
|
||
Otherwise, if the work is a derivative of the Library, you may
|
||
distribute the object code for the work under the terms of Section 6.
|
||
Any executables containing that work also fall under Section 6,
|
||
whether or not they are linked directly with the Library itself.
|
||
|
||
6. As an exception to the Sections above, you may also combine or
|
||
link a "work that uses the Library" with the Library to produce a
|
||
work containing portions of the Library, and distribute that work
|
||
under terms of your choice, provided that the terms permit
|
||
modification of the work for the customer's own use and reverse
|
||
engineering for debugging such modifications.
|
||
|
||
You must give prominent notice with each copy of the work that the
|
||
Library is used in it and that the Library and its use are covered by
|
||
this License. You must supply a copy of this License. If the work
|
||
during execution displays copyright notices, you must include the
|
||
copyright notice for the Library among them, as well as a reference
|
||
directing the user to the copy of this License. Also, you must do one
|
||
of these things:
|
||
|
||
a) Accompany the work with the complete corresponding
|
||
machine-readable source code for the Library including whatever
|
||
changes were used in the work (which must be distributed under
|
||
Sections 1 and 2 above); and, if the work is an executable linked
|
||
with the Library, with the complete machine-readable "work that
|
||
uses the Library", as object code and/or source code, so that the
|
||
user can modify the Library and then relink to produce a modified
|
||
executable containing the modified Library. (It is understood
|
||
that the user who changes the contents of definitions files in the
|
||
Library will not necessarily be able to recompile the application
|
||
to use the modified definitions.)
|
||
|
||
b) Use a suitable shared library mechanism for linking with the
|
||
Library. A suitable mechanism is one that (1) uses at run time a
|
||
copy of the library already present on the user's computer system,
|
||
rather than copying library functions into the executable, and (2)
|
||
will operate properly with a modified version of the library, if
|
||
the user installs one, as long as the modified version is
|
||
interface-compatible with the version that the work was made with.
|
||
|
||
c) Accompany the work with a written offer, valid for at
|
||
least three years, to give the same user the materials
|
||
specified in Subsection 6a, above, for a charge no more
|
||
than the cost of performing this distribution.
|
||
|
||
d) If distribution of the work is made by offering access to copy
|
||
from a designated place, offer equivalent access to copy the above
|
||
specified materials from the same place.
|
||
|
||
e) Verify that the user has already received a copy of these
|
||
materials or that you have already sent this user a copy.
|
||
|
||
For an executable, the required form of the "work that uses the
|
||
Library" must include any data and utility programs needed for
|
||
reproducing the executable from it. However, as a special exception,
|
||
the materials to be distributed need not include anything that is
|
||
normally distributed (in either source or binary form) with the major
|
||
components (compiler, kernel, and so on) of the operating system on
|
||
which the executable runs, unless that component itself accompanies
|
||
the executable.
|
||
|
||
It may happen that this requirement contradicts the license
|
||
restrictions of other proprietary libraries that do not normally
|
||
accompany the operating system. Such a contradiction means you cannot
|
||
use both them and the Library together in an executable that you
|
||
distribute.
|
||
|
||
7. You may place library facilities that are a work based on the
|
||
Library side-by-side in a single library together with other library
|
||
facilities not covered by this License, and distribute such a combined
|
||
library, provided that the separate distribution of the work based on
|
||
the Library and of the other library facilities is otherwise
|
||
permitted, and provided that you do these two things:
|
||
|
||
a) Accompany the combined library with a copy of the same work
|
||
based on the Library, uncombined with any other library
|
||
facilities. This must be distributed under the terms of the
|
||
Sections above.
|
||
|
||
b) Give prominent notice with the combined library of the fact
|
||
that part of it is a work based on the Library, and explaining
|
||
where to find the accompanying uncombined form of the same work.
|
||
|
||
8. You may not copy, modify, sublicense, link with, or distribute
|
||
the Library except as expressly provided under this License. Any
|
||
attempt otherwise to copy, modify, sublicense, link with, or
|
||
distribute the Library is void, and will automatically terminate your
|
||
rights under this License. However, parties who have received copies,
|
||
or rights, from you under this License will not have their licenses
|
||
terminated so long as such parties remain in full compliance.
|
||
|
||
9. You are not required to accept this License, since you have not
|
||
signed it. However, nothing else grants you permission to modify or
|
||
distribute the Library or its derivative works. These actions are
|
||
prohibited by law if you do not accept this License. Therefore, by
|
||
modifying or distributing the Library (or any work based on the
|
||
Library), you indicate your acceptance of this License to do so, and
|
||
all its terms and conditions for copying, distributing or modifying
|
||
the Library or works based on it.
|
||
|
||
10. Each time you redistribute the Library (or any work based on the
|
||
Library), the recipient automatically receives a license from the
|
||
original licensor to copy, distribute, link with or modify the Library
|
||
subject to these terms and conditions. You may not impose any further
|
||
restrictions on the recipients' exercise of the rights granted herein.
|
||
You are not responsible for enforcing compliance by third parties with
|
||
this License.
|
||
|
||
11. If, as a consequence of a court judgment or allegation of patent
|
||
infringement or for any other reason (not limited to patent issues),
|
||
conditions are imposed on you (whether by court order, agreement or
|
||
otherwise) that contradict the conditions of this License, they do not
|
||
excuse you from the conditions of this License. If you cannot
|
||
distribute so as to satisfy simultaneously your obligations under this
|
||
License and any other pertinent obligations, then as a consequence you
|
||
may not distribute the Library at all. For example, if a patent
|
||
license would not permit royalty-free redistribution of the Library by
|
||
all those who receive copies directly or indirectly through you, then
|
||
the only way you could satisfy both it and this License would be to
|
||
refrain entirely from distribution of the Library.
|
||
|
||
If any portion of this section is held invalid or unenforceable under any
|
||
particular circumstance, the balance of the section is intended to apply,
|
||
and the section as a whole is intended to apply in other circumstances.
|
||
|
||
It is not the purpose of this section to induce you to infringe any
|
||
patents or other property right claims or to contest validity of any
|
||
such claims; this section has the sole purpose of protecting the
|
||
integrity of the free software distribution system which is
|
||
implemented by public license practices. Many people have made
|
||
generous contributions to the wide range of software distributed
|
||
through that system in reliance on consistent application of that
|
||
system; it is up to the author/donor to decide if he or she is willing
|
||
to distribute software through any other system and a licensee cannot
|
||
impose that choice.
|
||
|
||
This section is intended to make thoroughly clear what is believed to
|
||
be a consequence of the rest of this License.
|
||
|
||
12. If the distribution and/or use of the Library is restricted in
|
||
certain countries either by patents or by copyrighted interfaces, the
|
||
original copyright holder who places the Library under this License may add
|
||
an explicit geographical distribution limitation excluding those countries,
|
||
so that distribution is permitted only in or among countries not thus
|
||
excluded. In such case, this License incorporates the limitation as if
|
||
written in the body of this License.
|
||
|
||
13. The Free Software Foundation may publish revised and/or new
|
||
versions of the Lesser General Public License from time to time.
|
||
Such new versions will be similar in spirit to the present version,
|
||
but may differ in detail to address new problems or concerns.
|
||
|
||
Each version is given a distinguishing version number. If the Library
|
||
specifies a version number of this License which applies to it and
|
||
"any later version", you have the option of following the terms and
|
||
conditions either of that version or of any later version published by
|
||
the Free Software Foundation. If the Library does not specify a
|
||
license version number, you may choose any version ever published by
|
||
the Free Software Foundation.
|
||
|
||
14. If you wish to incorporate parts of the Library into other free
|
||
programs whose distribution conditions are incompatible with these,
|
||
write to the author to ask for permission. For software which is
|
||
copyrighted by the Free Software Foundation, write to the Free
|
||
Software Foundation; we sometimes make exceptions for this. Our
|
||
decision will be guided by the two goals of preserving the free status
|
||
of all derivatives of our free software and of promoting the sharing
|
||
and reuse of software generally.
|
||
|
||
NO WARRANTY
|
||
|
||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||
|
||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||
DAMAGES.
|
||
|
||
END OF TERMS AND CONDITIONS
|
||
|
||
How to Apply These Terms to Your New Libraries
|
||
|
||
If you develop a new library, and you want it to be of the greatest
|
||
possible use to the public, we recommend making it free software that
|
||
everyone can redistribute and change. You can do so by permitting
|
||
redistribution under these terms (or, alternatively, under the terms of the
|
||
ordinary General Public License).
|
||
|
||
To apply these terms, attach the following notices to the library. It is
|
||
safest to attach them to the start of each source file to most effectively
|
||
convey the exclusion of warranty; and each file should have at least the
|
||
"copyright" line and a pointer to where the full notice is found.
|
||
|
||
<one line to give the library's name and a brief idea of what it does.>
|
||
Copyright (C) <year> <name of author>
|
||
|
||
This library is free software; you can redistribute it and/or
|
||
modify it under the terms of the GNU Lesser General Public
|
||
License as published by the Free Software Foundation; either
|
||
version 2.1 of the License, or (at your option) any later version.
|
||
|
||
This library is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
Lesser General Public License for more details.
|
||
|
||
You should have received a copy of the GNU Lesser General Public
|
||
License along with this library; if not, write to the Free Software
|
||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||
|
||
Also add information on how to contact you by electronic and paper mail.
|
||
|
||
You should also get your employer (if you work as a programmer) or your
|
||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||
necessary. Here is a sample; alter the names:
|
||
|
||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||
|
||
<signature of Ty Coon>, 1 April 1990
|
||
Ty Coon, President of Vice
|
||
|
||
That's all there is to it!
|
||
|
||
|
||
|
js/dhtmlsuite/menu-for-applications.js | ||
---|---|---|
/************************************************************************************************************
|
||
@fileoverview
|
||
DHTML Suite for Applications.
|
||
Copyright (C) 2006 Alf Magne Kalleland(post@dhtmlgoodies.com)<br>
|
||
<br>
|
||
This library is free software; you can redistribute it and/or<br>
|
||
modify it under the terms of the GNU Lesser General Public<br>
|
||
License as published by the Free Software Foundation; either<br>
|
||
version 2.1 of the License, or (at your option) any later version.<br>
|
||
<br>
|
||
This library is distributed in the hope that it will be useful,<br>
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU<br>
|
||
Lesser General Public License for more details.<br>
|
||
<br>
|
||
You should have received a copy of the GNU Lesser General Public<br>
|
||
License along with this library; if not, write to the Free Software<br>
|
||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA<br>
|
||
<br>
|
||
<br>
|
||
www.dhtmlgoodies.com<br>
|
||
Alf Magne Kalleland<br>
|
||
|
||
************************************************************************************************************/
|
||
|
||
|
||
/**
|
||
*
|
||
* @package DHTMLSuite for applications
|
||
* @copyright Copyright © 2006, www.dhtmlgoodies.com
|
||
* @author Alf Magne Kalleland <post@dhtmlgoodies.com>
|
||
*/
|
||
|
||
|
||
/************************************************************************************************************
|
||
*
|
||
* Global variables
|
||
*
|
||
************************************************************************************************************/
|
||
|
||
|
||
// {{{ DHTMLSuite.createStandardObjects()
|
||
/**
|
||
* Create objects used by all scripts
|
||
*
|
||
* @public
|
||
*/
|
||
|
||
|
||
var DHTMLSuite = new Object();
|
||
|
||
var standardObjectsCreated = false; // The classes below will check this variable, if it is false, default help objects will be created
|
||
DHTMLSuite.eventElements = new Array(); // Array of elements that has been assigned to an event handler.
|
||
|
||
DHTMLSuite.createStandardObjects = function()
|
||
{
|
||
DHTMLSuite.clientInfoObj = new DHTMLSuite.clientInfo(); // Create browser info object
|
||
DHTMLSuite.clientInfoObj.init();
|
||
if(!DHTMLSuite.configObj){ // If this object isn't allready created, create it.
|
||
DHTMLSuite.configObj = new DHTMLSuite.config(); // Create configuration object.
|
||
DHTMLSuite.configObj.init();
|
||
}
|
||
DHTMLSuite.commonObj = new DHTMLSuite.common(); // Create configuration object.
|
||
DHTMLSuite.variableStorage = new DHTMLSuite.globalVariableStorage();; // Create configuration object.
|
||
DHTMLSuite.commonObj.init();
|
||
window.onunload = function() { DHTMLSuite.commonObj.__clearGarbage(); }
|
||
|
||
standardObjectsCreated = true;
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
/************************************************************************************************************
|
||
* Configuration class used by most of the scripts
|
||
*
|
||
* Created: August, 19th, 2006
|
||
* Update log:
|
||
*
|
||
************************************************************************************************************/
|
||
|
||
|
||
/**
|
||
* @constructor
|
||
* @class Store global variables/configurations used by the classes below. Example: If you want to
|
||
* change the path to the images used by the scripts, change it here. An object of this
|
||
* class will always be available to the other classes. The name of this object is
|
||
* "DHTMLSuite.configObj". <br><br>
|
||
*
|
||
* If you want to create an object of this class manually, remember to name it "DHTMLSuite.configObj"
|
||
* This object should then be created before any other objects. This is nescessary if you want
|
||
* the other objects to use the values you have put into the object. <br>
|
||
* @version 1.0
|
||
* @version 1.0
|
||
* @author Alf Magne Kalleland(www.dhtmlgoodies.com)
|
||
**/
|
||
DHTMLSuite.config = function()
|
||
{
|
||
var imagePath; // Path to images used by the classes.
|
||
var cssPath; // Path to CSS files used by the DHTML suite.
|
||
}
|
||
|
||
|
||
DHTMLSuite.config.prototype = {
|
||
// {{{ init()
|
||
/**
|
||
*
|
||
* @public
|
||
*/
|
||
init : function()
|
||
{
|
||
this.imagePath = '../images_dhtmlsuite/'; // Path to images
|
||
this.cssPath = '../css_dhtmlsuite/'; // Path to images
|
||
}
|
||
// }}}
|
||
,
|
||
// {{{ setCssPath()
|
||
/**
|
||
* This method will save a new CSS path, i.e. where the css files of the dhtml suite are located.
|
||
*
|
||
* @param string newCssPath = New path to css files
|
||
* @public
|
||
*/
|
||
|
||
setCssPath : function(newCssPath)
|
||
{
|
||
this.cssPath = newCssPath;
|
||
}
|
||
// }}}
|
||
,
|
||
// {{{ setImagePath()
|
||
/**
|
||
* This method will save a new image file path, i.e. where the image files used by the dhtml suite ar located
|
||
*
|
||
* @param string newImagePath = New path to image files
|
||
* @public
|
||
*/
|
||
setImagePath : function(newImagePath)
|
||
{
|
||
this.imagePath = newImagePath;
|
||
}
|
||
// }}}
|
||
}
|
||
|
||
|
||
|
||
DHTMLSuite.globalVariableStorage = function()
|
||
{
|
||
var menuBar_highlightedItems; // Array of highlighted menu bar items
|
||
this.menuBar_highlightedItems = new Array();
|
||
|
||
var arrayOfDhtmlSuiteObjects; // Array of objects of class menuItem.
|
||
this.arrayOfDhtmlSuiteObjects = new Array();
|
||
}
|
||
|
||
DHTMLSuite.globalVariableStorage.prototype = {
|
||
|
||
}
|
||
|
||
|
||
/************************************************************************************************************
|
||
* A class with general methods used by most of the scripts
|
||
*
|
||
* Created: August, 19th, 2006
|
||
* Purpose of 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.
|
||
* Update log:
|
||
*
|
||
************************************************************************************************************/
|
||
|
||
|
||
/**
|
||
* @constructor
|
||
* @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.
|
||
* @version 1.0
|
||
* @author Alf Magne Kalleland(www.dhtmlgoodies.com)
|
||
**/
|
||
|
||
DHTMLSuite.common = function()
|
||
{
|
||
var loadedCSSFiles; // Array of loaded CSS files. Prevent same CSS file from being loaded twice.
|
||
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.