summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorwei <>2006-02-01 07:12:14 +0000
committerwei <>2006-02-01 07:12:14 +0000
commitcff3c0c965c5f22918abe736432bd73a40bae5b2 (patch)
tree2609856dc7900d58ed88aca240c013a190b3981b /framework
parent4cec5a79840bc13480c02e1032e632e9dd9bba1f (diff)
Update syntax highlighter with Copy Code option.
Diffstat (limited to 'framework')
-rw-r--r--framework/3rdParty/geshi/highlight.css19
-rw-r--r--framework/Web/UI/TClientScriptManager.php5
-rw-r--r--framework/Web/UI/WebControls/TTextHighlighter.php10
3 files changed, 33 insertions, 1 deletions
diff --git a/framework/3rdParty/geshi/highlight.css b/framework/3rdParty/geshi/highlight.css
index be000a83..00a53f41 100644
--- a/framework/3rdParty/geshi/highlight.css
+++ b/framework/3rdParty/geshi/highlight.css
@@ -93,4 +93,21 @@
.javascript .st0 {color: #3366CC;}
.javascript .nu0 {color: #CC0000;}
.javascript .me1 {color: #006600;}
-.javascript .re0 {color: #0066FF;} \ No newline at end of file
+.javascript .re0 {color: #0066FF;}
+
+.source .copycode
+{
+ text-align: right;
+ float: right;
+}
+
+.source .copycode a
+{
+ cursor: pointer;
+ color: blue;
+}
+
+.source .copycode_hover a
+{
+ color: red;
+}
diff --git a/framework/Web/UI/TClientScriptManager.php b/framework/Web/UI/TClientScriptManager.php
index be6611cd..7b85dbab 100644
--- a/framework/Web/UI/TClientScriptManager.php
+++ b/framework/Web/UI/TClientScriptManager.php
@@ -463,6 +463,11 @@ class TClientScriptManager extends TComponent
}
*/
+ public function renderJavascriptBlock($code)
+ {
+ return "<script type=\"text/javascript\">\n/*<![CDATA[*/\n{$code}\n/*]]>*/\n</script>";
+ }
+
public function renderStyleSheetFiles($writer)
{
$str='';
diff --git a/framework/Web/UI/WebControls/TTextHighlighter.php b/framework/Web/UI/WebControls/TTextHighlighter.php
index 35f3cc23..de34b652 100644
--- a/framework/Web/UI/WebControls/TTextHighlighter.php
+++ b/framework/Web/UI/WebControls/TTextHighlighter.php
@@ -85,6 +85,7 @@ class TTextHighlighter extends TWebControl
{
parent::onPreRender($writer);
$this->registerHighlightStyleSheet();
+ $this->getPage()->getClientScript()->registerClientScript('prado');
}
/**
@@ -138,7 +139,16 @@ class TTextHighlighter extends TWebControl
if($this->getShowLineNumbers())
$geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS);
$geshi->enable_classes();
+ $geshi->set_header_content($this->getHeaderTemplate());
+
return $geshi->parse_code();
}
+
+ function getHeaderTemplate()
+ {
+ $id = $this->getClientID();
+ $cs = $this->getPage()->getClientScript();
+ return $cs->renderJavascriptBlock("new Prado.WebUI.TTextHighlighter('{$id}');");
+ }
}
?> \ No newline at end of file