[Checkins] SVN: grokui.introspector/trunk/ Merge changes from homework branch.

Uli Fouquet uli at gnufix.de
Tue Apr 21 20:44:16 EDT 2009


Log message for revision 99355:
  Merge changes from homework branch.

Changed:
  _U  grokui.introspector/trunk/
  U   grokui.introspector/trunk/buildout.cfg
  U   grokui.introspector/trunk/setup.py
  U   grokui.introspector/trunk/src/grokui/introspector/content.py
  U   grokui.introspector/trunk/src/grokui/introspector/content_templates/inspect.pt
  A   grokui.introspector/trunk/src/grokui/introspector/static/base.css
  A   grokui.introspector/trunk/src/grokui/introspector/static/content.css
  A   grokui.introspector/trunk/src/grokui/introspector/static/logo.gif
  A   grokui.introspector/trunk/src/grokui/introspector/static/top_bg.jpg

-=-

Property changes on: grokui.introspector/trunk
___________________________________________________________________
Modified: svn:externals
   - bootstrap svn://svn.zope.org/repos/main/zc.buildout/trunk/bootstrap/
zope.introspector svn://svn.zope.org/repos/main/zope.introspector/trunk
zope.introspectorui svn://svn.zope.org/repos/main/zope.introspectorui/trunk
grok svn://svn.zope.org/repos/main/grok/trunk


   + bootstrap svn://svn.zope.org/repos/main/zc.buildout/trunk/bootstrap/


Modified: grokui.introspector/trunk/buildout.cfg
===================================================================
--- grokui.introspector/trunk/buildout.cfg	2009-04-21 23:54:22 UTC (rev 99354)
+++ grokui.introspector/trunk/buildout.cfg	2009-04-22 00:44:15 UTC (rev 99355)
@@ -1,13 +1,12 @@
 [buildout]
-develop = . zope.introspector zope.introspectorui grok
+develop = .
 parts = test data zopectl app
-extends = http://grok.zope.org/releaseinfo/grok-0.13.cfg
+extends = http://grok.zope.org/releaseinfo/grok-1.0a3.cfg
 versions = versions
 
 [versions]
-grokcore.component = 
-grok = 
 
+
 [data]
 recipe = zc.recipe.filestorage
 

Modified: grokui.introspector/trunk/setup.py
===================================================================
--- grokui.introspector/trunk/setup.py	2009-04-21 23:54:22 UTC (rev 99354)
+++ grokui.introspector/trunk/setup.py	2009-04-22 00:44:15 UTC (rev 99355)
@@ -42,6 +42,7 @@
                       'grok',
                       'zope.introspector',
                       'zope.introspectorui',
+                      'hurry.zopeyui',
                       ],
     tests_require = tests_require,
     extras_require = dict(test=tests_require), 

Modified: grokui.introspector/trunk/src/grokui/introspector/content.py
===================================================================
--- grokui.introspector/trunk/src/grokui/introspector/content.py	2009-04-21 23:54:22 UTC (rev 99354)
+++ grokui.introspector/trunk/src/grokui/introspector/content.py	2009-04-22 00:44:15 UTC (rev 99355)
@@ -1,10 +1,13 @@
 import grok
+from hurry import yui
+from hurry.resource import NeededInclusions
 from zope import interface
 
 from zope.introspector.interfaces import IObjectInfo
 from zope.introspector.viewinfo import ViewInfo
 from grokui.introspector.util import dotted_name_url
 
+
 class Inspect(grok.View):
     grok.context(interface.Interface)
     
@@ -25,6 +28,35 @@
     def getTypeInspectURL(self):
         return dotted_name_url(self.getTypeName())
 
-    def getViews(self):
+    def getViews(self, order=(0,2,1)):
+        """Get all views for the context object.
+
+        Return a list of three-tuples describing a view (<skinname>,
+        <interface, <name>). The list is ordered by one of these
+        categories. The order number is:
+
+          0 for sort by skin
+          1 for sort by interface
+          2 for sort by name
+
+        So, if the result should be sort in skin name order first,
+        followed by interface name order, the order might be (0,1,2).
+        """
         info = ViewInfo(self.context)
-        return sorted(list(info.getAllViews()))
+        view_list = list(info.getAllViews())
+        return sorted(view_list,
+                      key=lambda x: (x[order[0]], x[order[1]], x[order[2]]))
+
+    def encode(self, text):
+        text = str(text)
+        text = text.replace(
+            '&', '&amp;').replace(
+            '<', '&lt;').replace(
+            '>', '&gt;')
+        return text
+    
+    def getYUIIncludes(self):
+        # XXX: This is most probably the wrong approach
+        needed = NeededInclusions()
+        needed.need(yui.datatable)
+        return needed.render()

Modified: grokui.introspector/trunk/src/grokui/introspector/content_templates/inspect.pt
===================================================================
--- grokui.introspector/trunk/src/grokui/introspector/content_templates/inspect.pt	2009-04-21 23:54:22 UTC (rev 99354)
+++ grokui.introspector/trunk/src/grokui/introspector/content_templates/inspect.pt	2009-04-22 00:44:15 UTC (rev 99355)
@@ -1,8 +1,40 @@
 <html>
+  <head>
+    <title>Grok Content Browser</title>
+    <link type="text/css" rel="stylesheet" 
+	  href="http://yui.yahooapis.com/2.7.0/build/datatable/assets/skins/sam/datatable.css">
+
+    <link tal:attributes="href static/content.css"
+	  rel="stylesheet" type="text/css" />
+  </head>
   <body>
-    <h1>Content browser</h1>
-    
-    <h2>Content</h2>
+    <div class="header">
+      <div class="title">
+	<img src="" alt="Grok"
+	     tal:attributes="src static/logo.gif" />
+	Content browser
+      </div>
+
+      <div class="globalnav">
+	<div id="globalnavwrapper">
+	  <ul>
+	    <li><a href="/++inspect++/">Introspector</a></li>
+	    <li><a href="/++inspect++/+registry/@@index">Registry Browser</a></li>
+
+	    <li><a href="/++inspect++/+code/@@index">Code Browser</a></li>
+	    <li><a href="/++inspect++/+content/@@index">Content Browser</a></li>
+	  </ul>
+
+	</div>
+      </div>
+    </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+
+    <h2 class="section">Content</h2>
     <tal:content define="content context/keys | nothing" >
       <span tal:condition="not: content">
 	No content found...
@@ -26,9 +58,67 @@
       </p>
     </div>
 
-    <h2>Available views</h2>
-    <div tal:repeat="info view/getViews" tal:content="info">
-      All views...
+    <h2>Available Views</h2>
+
+    <div class="yui-skin-sam">
+      <div tal:content="structure view/getYUIIncludes" />
+      <div id="myMarkedUpContainer">
+	<table id="myTable">
+          <thead>
+            <tr>
+              <th>Skin</th>
+              <th>Name</th>
+              <th>Interface</th>
+            </tr>
+          </thead>
+          <tbody>
+	    <tr tal:repeat="info view/getViews">
+	      <td tal:content="python:info[0]"></td>
+	      <td tal:content="python:info[2]"></td>
+	      <td tal:content="python:info[1]"></td>
+	    </tr>
+          </tbody>
+	</table>
+      </div>
     </div>
+    <script type="text/javascript">
+      var myDataSource = new YAHOO.util.DataSource(YAHOO.util.Dom.get("myTable"));
+      myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
+      myDataSource.responseSchema = {
+        fields: [{key:"skin",},
+                 {key:"name"},
+                 {key:"iface"}
+                ]
+      };
+
+      var myColumnDefs = [
+        {key:"skin", label:"Skin", sortable:true},
+        {key:"name", label:"Name", sortable:true},
+        {key:"iface", label:"Interface", sortable:true}
+      ];
+
+      var myDataTable = new YAHOO.widget.DataTable("myMarkedUpContainer", myColumnDefs, myDataSource);
+    </script>
+
+
+	  </div>
+	</div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+          
+            <h3>Quick search</h3>
+
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+        </div>
+      </div>
+      <div class="clearer"></div>
+
+    </div>
+
   </body>
 </html>

Copied: grokui.introspector/trunk/src/grokui/introspector/static/base.css (from rev 99354, grokui.introspector/branches/ulif-integrate-homework/src/grokui/introspector/static/base.css)
===================================================================
--- grokui.introspector/trunk/src/grokui/introspector/static/base.css	                        (rev 0)
+++ grokui.introspector/trunk/src/grokui/introspector/static/base.css	2009-04-22 00:44:15 UTC (rev 99355)
@@ -0,0 +1,910 @@
+/*
+ * Grok Official Documentation CSS
+ *
+ * (clean me up! improve me! make me look nicer!)
+ *
+ */
+
+body {
+    font-family: sans-serif;
+    font-size: 100%;
+    background-color: #11303d;
+    background-color: #dddddd;
+    background: #cfcccc url("top_bg.jpg") repeat-x;
+    color: #000;
+    margin: 0;
+    padding: 0;
+}
+
+td {
+    vertical-align: top;
+}
+
+/* :::: LAYOUT :::: */
+
+div.document {
+    background-color: #dddddd;
+}
+
+div.documentwrapper {
+    float: left;
+    width: 100%;
+}
+
+div.bodywrapper {
+    margin: 0 0 0 250px;
+}
+
+div.body {
+    background-color: white;
+    padding: 1.5em;
+    border-left: 1px solid #999;
+    
+}
+
+div.clearer {
+    clear: both;
+}
+
+div.footer {
+    color: #740;
+    width: 100%;
+    padding: 9px 0 9px 0;
+    text-align: center;
+    font-size: 75%;
+}
+
+div.footer a {
+    color: #740;
+    text-decoration: underline;
+}
+
+div.header {
+    background: #999999 url("top_bg.jpg") repeat-x;
+    padding: 0.5em 1em 0 1em; 
+}
+
+div.header a{
+    color: #520;
+    padding: 0.5em;
+    text-decoration: none;
+}
+
+div.globalnav {
+    color: #740;
+    border-bottom: 1px solid #aaa;
+    width: 100%;
+    font-size: small;
+}
+
+div.globalnav h3 {
+    display: none;
+}
+
+#globalnavwrapper {
+   padding: 2px;
+   margin: 0.5em 0 0 0;
+}
+
+div.globalnav ul {
+    margin: 0 0 0 0;
+    padding: 0;
+    list-style: none;
+}
+
+div.globalnav li {
+    display: inline;
+    padding: 2px 0.5em;
+    margin: 0 1px;
+    background-color: #eee;
+    border: 1px solid #999;
+}
+
+div.globalnav a {
+    color: #436976;
+    text-decoration: none;
+}
+
+div.globalnav li:hover {
+    background-color: white;
+}
+
+/* ::: Table of Contents :::: */
+
+.document > div.sidebarwrapper {
+    padding: 10px 5px 0 10px;
+}
+
+.sphinxsidebar {
+    float: left;
+    width: 250px;
+    margin-left: -100%;
+    font-size: small;
+    color: #333333;
+    padding: 8px;
+}
+
+.sphinxsidebar a {
+    color: #436976;
+}
+
+.sphinxsidebar h3 {
+    font-family: 'Trebuchet MS', sans-serif;
+    font-size: 1.4em;
+    font-weight: normal;
+    margin: 0;
+    padding: 0;
+}
+
+.sphinxsidebar h4 {
+    font-family: 'Trebuchet MS', sans-serif;
+    font-size: 1.3em;
+    font-weight: normal;
+    margin: 5px 0 0 0;
+    padding: 0;
+}
+
+.sphinxsidebar p.topless {
+    margin: 5px 10px 10px 10px;
+}
+
+.sphinxsidebar ul {
+    margin: 10px;
+    padding: 0;
+    list-style: none;
+    color: #c90;
+}
+
+.sphinxsidebar ul ul,
+.sphinxsidebar ul.want-points {
+    margin-left: 20px;
+    list-style: square;
+    color: #436976;
+}
+
+.sphinxsidebar ul ul {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+.sphinxsidebar ul li {
+    margin: 0.25em 0 0.5em 0;
+}
+
+.sphinxsidebar form {
+    margin-top: 10px;
+}
+
+.sphinxsidebar input {
+    border: 1px solid #555555;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+/* Grok Tutorial style sidebar */
+.section div.sidebar {
+    margin: 1em 2em;
+    padding: 0.5em 2em 1em 100px;
+    background-color: #fafaf8;
+    border: 1px solid #aaa;
+    border-top-width: 6px;
+    background-image: url(grok_club.gif);
+    background-repeat: no-repeat;
+}
+
+.section .sidebar-title {
+    font-weight: bold;
+    font-size: 110%;
+}
+
+/* :::: MODULE CLOUD :::: */
+div.modulecloud {
+    margin: -5px 10px 5px 10px;
+    padding: 10px;
+    line-height: 160%;
+    border: 1px solid #cbe7e5;
+    background-color: #f2fbfd;
+}
+
+div.modulecloud a {
+    padding: 0 5px 0 5px;
+}
+
+/* :::: SEARCH :::: */
+ul.search {
+    margin: 10px 0 0 20px;
+    padding: 0;
+}
+
+ul.search li {
+    padding: 5px 0 5px 20px;
+    background-image: url(file.png);
+    background-repeat: no-repeat;
+    background-position: 0 7px;
+}
+
+ul.search li a {
+    font-weight: bold;
+}
+
+ul.search li div.context {
+    color: #888;
+    margin: 2px 0 0 30px;
+    text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+    font-weight: bold;
+}
+
+/* :::: COMMON FORM STYLES :::: */
+
+div.actions {
+    padding: 5px 10px 5px 10px;
+    border-top: 1px solid #cbe7e5;
+    border-bottom: 1px solid #cbe7e5;
+    background-color: #e0f6f4;
+}
+
+form dl {
+    color: #333;
+}
+
+form dt {
+    clear: both;
+    float: left;
+    min-width: 110px;
+    margin-right: 10px;
+    padding-top: 2px;
+}
+
+input#homepage {
+    display: none;
+}
+
+div.error {
+    margin: 5px 20px 0 0;
+    padding: 5px;
+    border: 1px solid #d00;
+    font-weight: bold;
+}
+
+/* :::: INLINE COMMENTS :::: */
+
+div.inlinecomments {
+    position: absolute;
+    right: 20px;
+}
+
+div.inlinecomments a.bubble {
+    display: block;
+    float: right;
+    background-image: url(style/comment.png);
+    background-repeat: no-repeat;
+    width: 25px;
+    height: 25px;
+    text-align: center;
+    padding-top: 3px;
+    font-size: 0.9em;
+    line-height: 14px;
+    font-weight: bold;
+    color: black;
+}
+
+div.inlinecomments a.bubble span {
+    display: none;
+}
+
+div.inlinecomments a.emptybubble {
+    background-image: url(style/nocomment.png);
+}
+
+div.inlinecomments a.bubble:hover {
+    background-image: url(style/hovercomment.png);
+    text-decoration: none;
+    color: #3ca0a4;
+}
+
+div.inlinecomments div.comments {
+    float: right;
+    margin: 25px 5px 0 0;
+    max-width: 50em;
+    min-width: 30em;
+    border: 1px solid #2eabb0;
+    background-color: #f2fbfd;
+    z-index: 150;
+}
+
+div#comments {
+    border: 1px solid #2eabb0;
+    margin-top: 20px;
+}
+
+div#comments div.nocomments {
+    padding: 10px;
+    font-weight: bold;
+}
+
+div.inlinecomments div.comments h3,
+div#comments h3 {
+    margin: 0;
+    padding: 0;
+    background-color: #2eabb0;
+    color: white;
+    border: none;
+    padding: 3px;
+}
+
+div.inlinecomments div.comments div.actions {
+    padding: 4px;
+    margin: 0;
+    border-top: none;
+}
+
+div#comments div.comment {
+    margin: 10px;
+    border: 1px solid #2eabb0;
+}
+
+div.inlinecomments div.comment h4,
+div.commentwindow div.comment h4,
+div#comments div.comment h4 {
+    margin: 10px 0 0 0;
+    background-color: #2eabb0;
+    color: white;
+    border: none;
+    padding: 1px 4px 1px 4px;
+}
+
+div#comments div.comment h4 {
+    margin: 0;
+}
+
+div#comments div.comment h4 a {
+    color: #d5f4f4;
+}
+
+div.inlinecomments div.comment div.text,
+div.commentwindow div.comment div.text,
+div#comments div.comment div.text {
+    margin: -5px 0 -5px 0;
+    padding: 0 10px 0 10px;
+}
+
+div.inlinecomments div.comment div.meta,
+div.commentwindow div.comment div.meta,
+div#comments div.comment div.meta {
+    text-align: right;
+    padding: 2px 10px 2px 0;
+    font-size: 95%;
+    color: #538893;
+    border-top: 1px solid #cbe7e5;
+    background-color: #e0f6f4;
+}
+
+div.commentwindow {
+    position: absolute;
+    width: 500px;
+    border: 1px solid #cbe7e5;
+    background-color: #f2fbfd;
+    display: none;
+    z-index: 130;
+}
+
+div.commentwindow h3 {
+    margin: 0;
+    background-color: #2eabb0;
+    color: white;
+    border: none;
+    padding: 5px;
+    font-size: 1.5em;
+    cursor: pointer;
+}
+
+div.commentwindow div.actions {
+    margin: 10px -10px 0 -10px;
+    padding: 4px 10px 4px 10px;
+    color: #538893;
+}
+
+div.commentwindow div.actions input {
+    border: 1px solid #2eabb0;
+    background-color: white;
+    color: #135355;
+    cursor: pointer;
+}
+
+div.commentwindow div.form {
+    padding: 0 10px 0 10px;
+}
+
+div.commentwindow div.form input,
+div.commentwindow div.form textarea {
+    border: 1px solid #3c9ea2;
+    background-color: white;
+    color: black;
+}
+
+div.commentwindow div.error {
+    margin: 10px 5px 10px 5px;
+    background-color: #fbe5dc;
+    display: none;
+}
+
+div.commentwindow div.form textarea {
+    width: 99%;
+}
+
+div.commentwindow div.preview {
+    margin: 10px 0 10px 0;
+    background-color: #70d0d4;
+    padding: 0 1px 1px 25px;
+}
+
+div.commentwindow div.preview h4 {
+    margin: 0 0 -5px -20px;
+    padding: 4px 0 0 4px;
+    color: white;
+    font-size: 1.3em;
+}
+
+div.commentwindow div.preview div.comment {
+    background-color: #f2fbfd;
+}
+
+div.commentwindow div.preview div.comment h4 {
+    margin: 10px 0 0 0!important;
+    padding: 1px 4px 1px 4px!important;
+    font-size: 1.2em;
+}
+
+/* :::: SUGGEST CHANGES :::: */
+div#suggest-changes-box input, div#suggest-changes-box textarea {
+    border: 1px solid #dddddd;
+    background-color: white;
+    color: black;
+}
+
+div#suggest-changes-box textarea {
+    width: 99%;
+    height: 400px;
+}
+
+
+/* :::: PREVIEW :::: */
+div.preview { 
+    background-image: url(style/preview.png);
+    padding: 0 20px 20px 20px;
+    margin-bottom: 30px;
+}
+
+
+/* :::: INDEX PAGE :::: */
+
+table.contentstable {
+    width: 90%;
+    margin-top: -1em;
+    margin-left: 2em;
+}
+
+table.contentstable p.biglink {
+    line-height: 150%;
+}
+
+a.biglink {
+    font-size: 1.3em;
+}
+
+span.linkdescr {
+    color: #555;
+    padding-top: 0.25em;
+    font-size: 90%;
+}
+
+/* :::: INDEX STYLES :::: */
+
+table.indextable td {
+    text-align: left;
+    vertical-align: top;
+}
+
+table.indextable dl, table.indextable dd {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+table.indextable tr.pcap {
+    height: 10px;
+}
+
+table.indextable tr.cap {
+    margin-top: 10px;
+    background-color: #f2f2f2;
+}
+
+img.toggler {
+    margin-right: 3px;
+    margin-top: 3px;
+    cursor: pointer;
+}
+
+form.pfform {
+    margin: 10px 0 20px 0;
+}
+
+/* :::: GLOBAL STYLES :::: */
+
+.docwarning {
+    background-color: #ffe4e4;
+    padding: 10px;
+    margin: 0 -20px 0 -20px;
+    border-bottom: 1px solid #f66;
+}
+
+p.subhead {
+    font-weight: bold;
+    margin-top: 20px;
+}
+
+a {
+    color: #355f7c;
+    color: #a70;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+div.body h1,
+div.body h2,
+div.body h3,
+div.body h4,
+div.body h5,
+div.body h6 {
+    font-family: 'Trebuchet MS', sans-serif;
+    font-weight: normal;
+    color: #c90;
+    border-bottom: 1px solid #ddd;
+    margin: 1em 0 0.5em 0;
+    padding: 3px 1em 3px 0.25em;
+}
+
+div.body h1 { margin-top: 0; background-color: #f2f2f2; font-size: 200%; }
+div.body h2 { font-size: 160%; background-color: #f2f2f2; }
+div.body h3 { font-size: 140%; border-bottom-width: 0; padding-left: 0;  }
+div.body h4 { font-size: 120%; border-bottom-width: 0; padding-left: 0;  }
+div.body h5 { font-size: 110%; border-bottom-width: 0; padding-left: 0;  }
+div.body h6 { font-size: 100%; border-bottom-width: 0; padding-left: 0;  }
+
+a.headerlink {
+    color: #dddddd;
+    font-size: 0.8em;
+    padding: 0 4px 0 4px;
+    text-decoration: none;
+    visibility: hidden;
+}
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink {
+    visibility: visible;
+}
+
+a.headerlink:hover {
+    color: #555555;
+}
+
+div.body p, div.body dd, div.body li {
+    line-height: 150%;
+}
+
+div.body td {
+    text-align: left;
+}
+
+ul.fakelist {
+    list-style: none;
+    margin: 10px 0 10px 20px;
+    padding: 0;
+}
+
+/* "Footnotes" heading */
+p.rubric {
+    margin-top: 30px;
+    font-weight: bold;
+}
+
+/* "Topics" */
+
+div.topic {
+    background-color: #eeeeee;
+    border: 1px solid #dddddd;
+    padding: 0 7px 0 7px;
+    margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+    font-size: 1.1em;
+    font-weight: bold;
+    margin-top: 10px;
+}
+
+.topic ul {
+    margin: 0 0 0.5em 1.5em;
+    padding: 0;
+}
+
+.topic > ul {
+    margin-left: 0;
+}
+
+.simple li {
+    list-style: none;
+}
+
+/* Admonitions */
+
+div.admonition {
+    margin: 0.5em 0;
+    padding: 0.5em;
+}
+
+div.admonition dt {
+    font-weight: bold;
+}
+
+div.admonition dl {
+    margin-bottom: 0;
+}
+
+div.admonition p {
+    display: inline;
+}
+
+div.seealso {
+    padding: 0;
+    background-color: #ffc;
+    border: 1px solid #ff6;
+}
+
+div.seealso .first {
+    background-color: #ffa;
+    padding: 0.25em 0.5em;
+    display: block;
+    float: left;
+    margin: 0 0.5em 0 0;
+}
+
+div.seealso .last {
+    padding: 0.25em 0;
+    display: block;
+    margin: 0;
+}
+
+div.warning {
+    background-color: #ffe4e4;
+    border: 1px solid #f66;
+}
+
+div.note {
+    background-color: #eeeeee;
+    border: 1px solid #dddddd;
+}
+
+dl.class {
+    color: #555555;
+    background: #fafaf8;
+    padding: 0 1em 1em 1em;
+    border: 1px solid #eed;
+}
+
+dl.class dt {
+    margin: 0;
+    padding: 0;
+}
+
+/* only applies to the class name */
+dl.class > dt {
+    padding: 0.5em;
+    margin: 0 -1em;
+    background-color: #eed;
+}
+
+dl.class dd {
+    color: black;
+    font-size: 100%;
+    padding: 0;
+    margin: 0.5em 1em 0.5em 1em;
+}
+
+dl.class > dd {
+    margin: 0.5em 0 0 0;
+    padding: 0;
+}
+
+p.admonition-title {
+    margin: 0 0.5em 0.5em 0;
+    display: inline;
+}
+
+p.admonition-title:after {
+    content: ":";
+}
+
+div.body p.centered {
+    text-align: center;
+    margin-top: 25px;
+}
+
+table.docutils {
+    border: 0;
+}
+
+table.docutils td, table.docutils th {
+    padding: 1px 8px 1px 0;
+    border-top: 0;
+    border-left: 0;
+    border-right: 0;
+    border-bottom: 1px solid #aaa;
+}
+
+table.field-list td, table.field-list th {
+    border: 0 !important;
+}
+
+table.footnote td, table.footnote th {
+    border: 0 !important;
+}
+
+dl {
+    margin-bottom: 15px;
+    clear: both;
+}
+
+dd p {
+    margin-top: 0px;
+}
+
+dd ul, dd table {
+    margin-bottom: 10px;
+}
+
+dd {
+    margin-top: 3px;
+    margin-bottom: 10px;
+    margin-left: 30px;
+}
+
+.refcount {
+    color: #060;
+}
+
+dt:target,
+.highlight {
+    background-color: #fbe54e;
+}
+
+dl.glossary dt {
+    font-weight: bold;
+    font-size: 1.1em;
+}
+
+th {
+    text-align: left;
+    padding-right: 5px;
+}
+
+pre {
+    padding: 1em;
+    background-color: #fafafa;
+    color: #333333;
+    border: 2px dotted #eee;
+    border-left: none;
+    border-right: none;
+    font-size: medium;
+    line-height: 150%;
+}
+
+tt {
+    background-color: #ecf0f3;
+    padding: 0;
+}
+
+tt.descname {
+    background-color: transparent;
+    font-weight: bold;
+    font-size: 1.2em;
+}
+
+tt.descclassname {
+    background-color: transparent;
+    font-weight: bold;
+    font-size: 1.2em;
+    /* a little hand kerning for grok.Whatever typography */
+    margin-right: -1px;
+}
+
+tt.xref, a tt {
+    background-color: transparent;
+    font-weight: bold;
+}
+
+.footnote:target  { background-color: #ffa }
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+    background-color: transparent;
+}
+
+.optional {
+    font-size: 1.3em;
+}
+
+.versionmodified {
+    font-style: italic;
+}
+
+form.comment {
+    margin: 0;
+    padding: 10px 30px 10px 30px;
+    background-color: #eee;
+}
+
+form.comment h3 {
+    background-color: #326591;
+    color: white;
+    margin: -10px -30px 10px -30px;
+    padding: 5px;
+    font-size: 1.4em;
+}
+
+form.comment input,
+form.comment textarea {
+    border: 1px solid #dddddd;
+    padding: 2px;
+    font-family: sans-serif;
+    font-size: 100%;
+}
+
+form.comment input[type="text"] {
+    width: 240px;
+}
+
+form.comment textarea {
+    width: 100%;
+    height: 200px;
+    margin-bottom: 10px;
+}
+
+.system-message {
+    background-color: #fda;
+    padding: 5px;
+    border: 3px solid red;
+}
+
+img.logo {
+    border-width: 0;
+    margin-bottom: 1em;
+}
+
+/* :::: PRINT :::: */
+ at media print {
+    div.document, 
+    div.documentwrapper, 
+    div.bodywrapper {
+        margin: 0;
+        width : 100%;
+    }
+
+    div.sidebar,
+    div.globalnav,
+    div.footer,
+    div#comments div.new-comment-box,
+    #top-link {
+        display: none;
+    }
+}

Copied: grokui.introspector/trunk/src/grokui/introspector/static/content.css (from rev 99354, grokui.introspector/branches/ulif-integrate-homework/src/grokui/introspector/static/content.css)
===================================================================
--- grokui.introspector/trunk/src/grokui/introspector/static/content.css	                        (rev 0)
+++ grokui.introspector/trunk/src/grokui/introspector/static/content.css	2009-04-22 00:44:15 UTC (rev 99355)
@@ -0,0 +1,39 @@
+/*
+ * Grok Official Documentation CSS
+ *
+ * (clean me up! improve me! make me look nicer!)
+ *
+ */
+ at import url("base.css");
+
+div.header div.title {
+    font-family: 'Trebuchet MS', sans-serif;
+    font-weight: normal;
+    font-size: 180%;
+    color: #444;
+    margin: 0px 0px 0.5em 10px;
+    padding: 3px 1em 5px 0.25em;
+}
+
+div.header div.title img { 
+    margin-top: -10px;
+    he/ight: 60px;
+ }
+
+div.globalnav {
+    color: #740;
+    border-bottom: 1px solid #aaa;
+    width: 100%;
+    font-size: small;
+    margin-top: -25px;
+}
+
+.yui-skin-sam tr { 
+    font-family: 'Trebuchet MS', sans-serif;
+    background-color: red;
+}
+
+.yui-skin-sam .yui-dt th,
+.yui-skin-sam .yui-dt th a { 
+    font-weight: bold;
+}

Copied: grokui.introspector/trunk/src/grokui/introspector/static/logo.gif (from rev 99354, grokui.introspector/branches/ulif-integrate-homework/src/grokui/introspector/static/logo.gif)
===================================================================
(Binary files differ)

Copied: grokui.introspector/trunk/src/grokui/introspector/static/top_bg.jpg (from rev 99354, grokui.introspector/branches/ulif-integrate-homework/src/grokui/introspector/static/top_bg.jpg)
===================================================================
(Binary files differ)



More information about the Checkins mailing list