From cff3c0c965c5f22918abe736432bd73a40bae5b2 Mon Sep 17 00:00:00 2001 From: wei <> Date: Wed, 1 Feb 2006 07:12:14 +0000 Subject: Update syntax highlighter with Copy Code option. --- framework/3rdParty/geshi/highlight.css | 19 ++++++++++++++++++- framework/Web/UI/TClientScriptManager.php | 5 +++++ framework/Web/UI/WebControls/TTextHighlighter.php | 10 ++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) (limited to 'framework') 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 ""; + } + 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 -- cgit v1.2.3