summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwei <>2006-02-01 07:12:14 +0000
committerwei <>2006-02-01 07:12:14 +0000
commitcff3c0c965c5f22918abe736432bd73a40bae5b2 (patch)
tree2609856dc7900d58ed88aca240c013a190b3981b
parent4cec5a79840bc13480c02e1032e632e9dd9bba1f (diff)
Update syntax highlighter with Copy Code option.
-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
-rw-r--r--tests/FunctionalTests/protected/pages/Home.page3
4 files changed, 36 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
diff --git a/tests/FunctionalTests/protected/pages/Home.page b/tests/FunctionalTests/protected/pages/Home.page
index 9a49e3a2..bf2830d6 100644
--- a/tests/FunctionalTests/protected/pages/Home.page
+++ b/tests/FunctionalTests/protected/pages/Home.page
@@ -1,3 +1,6 @@
<com:TContent ID="Content">
+<com:TForm>
<h1>Prado Functional Tests</h1>
+<com:TJavascriptLogger />
+</com:TForm>
</com:TContent> \ No newline at end of file