00001 <?php
00002
00011 class TKPopup extends TKContainer {
00022 public function __construct($shadow = false, $opacity = 1.0, $autohide = true) {
00023 parent::__construct();
00024
00025 $this->addProperty('opacity', self::PROP_NUMERIC);
00026 $this->addProperty('shadow', self::PROP_BOOLEAN);
00027 $this->addProperty('autohide', self::PROP_BOOLEAN);
00028
00029 $this->addEvent('onshow', self::EVENT_INDIRECT);
00030 $this->addEvent('onhide', self::EVENT_INDIRECT);
00031
00032 $this->set('opacity', $opacity);
00033 $this->set('shadow', $shadow);
00034 $this->set('autohide', $autohide);
00035 }
00036
00048 protected function renderContainer($class, $style, $events, $id) {
00049 if($style[0] != '')
00050 $style[0] = rtrim($style[0], '"') . ";position:relative;" .
00051 ($this->get('shadow')?'left:-1;top:-1;':'') . '"';
00052 else
00053 $style[0] = " style=\"position:relative;" . ($this->get('shadow')?'left:-1;top:-1;':'').'"';
00054 $html = "<div $id$class[0]$style[0]$events>";
00055 foreach($this->getChildrenBySlot('main') as $cid => $c)
00056 $html .= is_object($c) ? $c->render() : $c;
00057 $html .= '</div>';
00058 $idOuter = substr($id, 5, -1) . '_outer';
00059 $opacity = $this->get('opacity');
00060 if($this->get('autohide'))
00061 $onclick = " onclick=\"Toolkit.hidePopup('$idOuter')\"";
00062 else
00063 $onclick = "";
00064 if($this->get('shadow')) {
00065 $html = <<<END_HTML
00066 <div id="$idOuter" style="position:absolute;display:none;background-color:#BBBBBB;opacity:$opacity"
00067 $onclick>
00068 <div style="position:relative;left:-1;top:-1;background-color:#999999">
00069 <div style="position:relative;left:-1;top:-1;background-color:#777777">
00070 <div style="position:relative;left:-1;top:-1;background-color:#444444">
00071 $html
00072 </div>
00073 </div>
00074 </div>
00075 </div>
00076 END_HTML;
00077 }
00078 else {
00079 $html = <<<END_HTML
00080 <div id="$idOuter" style="position:absolute;display:none;opacity:$opacity"
00081 $onclick>
00082 $html
00083 </div>
00084 END_HTML;
00085 }
00086
00087 return $html;
00088 }
00089 }
00090
00091 ?>