]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/ui/tools/inspector/inspector.factor
ui.theme: updates to color scheme.
[factor.git] / basis / ui / tools / inspector / inspector.factor
index 1fc1ad18601080bcb02a6dadc80c78fe6e1da313..209e0624bfe3ada19e29de36942ebdd50a6918a0 100644 (file)
@@ -1,12 +1,14 @@
 ! Copyright (C) 2006, 2009 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors inspector namespaces kernel models fry
-colors.constants models.arrow prettyprint sequences mirrors assocs
-classes io io.styles arrays hashtables math.order sorting refs fonts
-ui.tools.browser ui.commands ui.operations ui.gadgets ui.gadgets.panes
-ui.gadgets.scrollers ui.gadgets.slots ui.gadgets.tracks ui.gestures
-ui.gadgets.buttons ui.gadgets.tables ui.gadgets.status-bar
-ui.gadgets.labeled ui.tools.common ui ;
+USING: accessors colors inspector namespaces kernel models fry
+colors.constants models.arrow prettyprint sequences mirrors
+assocs classes io io.styles arrays hashtables math.order sorting
+refs fonts ui.tools.browser ui.commands ui.operations ui.gadgets
+ui.gadgets.panes ui.gadgets.scrollers ui.gadgets.slots
+ui.gadgets.theme ui.gadgets.tracks ui.gestures
+ui.gadgets.buttons ui.gadgets.tables ui.theme ui.gadgets.toolbar
+ui.gadgets.status-bar ui.gadgets.labeled ui.tools.common ui
+combinators ui.gadgets.worlds ;
 IN: ui.tools.inspector
 
 TUPLE: inspector-gadget < tool table ;
@@ -30,24 +32,34 @@ M: inspector-renderer column-titles
 : <summary-gadget> ( model -- gadget )
     [
         standard-table-style [
-            [
+            {
                 [
-                    [ "Class:" write ] with-cell
-                    [ class pprint ] with-cell
-                ] with-row
-            ]
-            [
+                    [
+                        [ "Class:" write ] with-cell
+                        [ class-of pprint ] with-cell
+                    ] with-row
+                ]
                 [
-                    [ "Object:" write ] with-cell
-                    [ pprint-short ] with-cell
-                ] with-row
-            ]
-            [
+                    [
+                        [ "Object:" write ] with-cell
+                        [ pprint-short ] with-cell
+                    ] with-row
+                ]
                 [
-                    [ "Summary:" write ] with-cell
-                    [ print-summary ] with-cell
-                ] with-row
-            ] tri
+                    [
+                        [ "Summary:" write ] with-cell
+                        [ print-summary ] with-cell
+                    ] with-row
+                ]
+                [
+                    content-gadget [
+                        [
+                            [ "Content:" write ] with-cell
+                            [ output-stream get write-gadget ] with-cell
+                        ] with-row
+                    ] when*
+                ]
+            } cleave
         ] tabular-output
     ] <pane-control> ;
 
@@ -62,8 +74,8 @@ M: hashtable make-slot-descriptions
 : <inspector-table> ( model -- table )
     [ make-slot-descriptions ] <arrow> inspector-renderer <table>
         [ invoke-primary-operation ] >>action
-        monospace-font >>font
-        COLOR: dark-gray >>column-line-color
+        monospace-font >>font theme-font-colors
+        line-color >>column-line-color
         6 >>gap
         15 >>min-rows
         15 >>max-rows
@@ -71,13 +83,12 @@ M: hashtable make-slot-descriptions
         40 >>max-cols ;
 
 : <inspector-gadget> ( model -- gadget )
-    vertical inspector-gadget new-track
-        { 3 3 } >>gap
+    vertical inspector-gadget new-track with-lines
         add-toolbar
         swap >>model
         dup model>> <inspector-table> >>table
-        dup model>> <summary-gadget> "Object" <labeled-gadget> f track-add
-        dup table>> <scroller> "Contents" <labeled-gadget> 1 track-add ;
+        dup model>> <summary-gadget> margins white-interior "Object" object-color <labeled> f track-add
+        dup table>> <scroller> margins white-interior "Contents" contents-color <labeled> 1 track-add ;
 
 M: inspector-gadget focusable-child*
     table>> ;
@@ -91,7 +102,12 @@ M: inspector-gadget focusable-child*
 \ com-push H{ { +listener+ t } } define-command
 
 : slot-editor-window ( close-hook update-hook assoc key key-string -- )
-    [ <value-ref> <slot-editor> ] [ "Slot editor: " prepend ] bi*
+    [ <value-ref> <slot-editor> ]
+    [
+        <world-attributes>
+            swap "Slot editor: " prepend >>title
+            [ { dialog-window } append ] change-window-controls
+    ] bi*
     open-status-window ;
 
 : com-edit-slot ( inspector -- )
@@ -101,7 +117,7 @@ M: inspector-gadget focusable-child*
     [ table>> (selected-row) ] tri [
         [ key>> ] [ key-string>> ] bi
         slot-editor-window
-    ] [ 2drop 2drop ] if ;
+    ] [ 4drop ] if ;
 
 : inspector-help ( -- ) "ui-inspector" com-browse ;
 
@@ -123,3 +139,5 @@ inspector-gadget "multi-touch" f {
 
 : inspector ( obj -- )
     <model> inspect-model ;
+
+{ 550 400 } inspector-gadget set-tool-dim