From d2be75b083d8dfb3e2c4070d9c028b5e73585770 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 16 Feb 2009 04:25:15 -0600 Subject: [PATCH] ui.gadgets.tables: add support for column headers ui.gadgets.search-tables: use Joe's X icon --- .../gadgets/line-support/line-support.factor | 8 +- .../search-tables/search-tables.factor | 34 +++++--- basis/ui/gadgets/tables/tables-tests.factor | 22 +++++ basis/ui/gadgets/tables/tables.factor | 86 ++++++++++++++----- basis/ui/tools/debugger/debugger.factor | 3 +- basis/ui/tools/inspector/inspector.factor | 7 +- .../listener/completion/completion.factor | 3 +- basis/ui/tools/profiler/profiler.factor | 32 ++++--- basis/ui/tools/traceback/traceback.factor | 3 +- 9 files changed, 141 insertions(+), 57 deletions(-) create mode 100644 basis/ui/gadgets/tables/tables-tests.factor diff --git a/basis/ui/gadgets/line-support/line-support.factor b/basis/ui/gadgets/line-support/line-support.factor index ab44d45839..5d12d9e75c 100644 --- a/basis/ui/gadgets/line-support/line-support.factor +++ b/basis/ui/gadgets/line-support/line-support.factor @@ -65,14 +65,16 @@ GENERIC: draw-line ( line index gadget -- ) [ -1/0. or * ] [ 1/.0 or * ] bi-curry* bi [ max ] [ min ] bi* ; +: em ( font -- x ) "m" text-width ; + +PRIVATE> + : line-gadget-width ( pref-dim gadget -- w ) - [ first ] [ [ font>> "m" text-width ] [ min-cols>> ] [ max-cols>> ] tri ] bi* clamp ; + [ first ] [ [ font>> em ] [ min-cols>> ] [ max-cols>> ] tri ] bi* clamp ; : line-gadget-height ( pref-dim gadget -- h ) [ second ] [ [ line-height ] [ min-rows>> ] [ max-rows>> ] tri ] bi* clamp ; -PRIVATE> - M: line-gadget pref-viewport-dim [ pref-dim ] keep [ line-gadget-width ] diff --git a/basis/ui/gadgets/search-tables/search-tables.factor b/basis/ui/gadgets/search-tables/search-tables.factor index 44678c5cf1..24343c4180 100644 --- a/basis/ui/gadgets/search-tables/search-tables.factor +++ b/basis/ui/gadgets/search-tables/search-tables.factor @@ -1,10 +1,9 @@ ! Copyright (C) 2008, 2009 Slava Pestov ! See http://factorcode.org/license.txt for BSD license. -USING: accessors kernel delegate fry sequences -models models.search models.delay calendar locals -ui.gadgets.editors ui.gadgets.labels ui.gadgets.scrollers -ui.gadgets.tables ui.gadgets.tracks ui.gadgets.borders -ui.gadgets.buttons ui.gadgets ; +USING: accessors kernel delegate fry sequences models models.search +models.delay calendar locals ui.pens ui.pens.image ui.gadgets.editors +ui.gadgets.labels ui.gadgets.scrollers ui.gadgets.tables +ui.gadgets.tracks ui.gadgets.borders ui.gadgets.buttons ui.gadgets ; IN: ui.gadgets.search-tables TUPLE: search-field < track field ; @@ -12,14 +11,20 @@ TUPLE: search-field < track field ; : clear-search-field ( search-field -- ) field>> editor>> clear-editor ; +: ( -- pen ) + "clear-button" theme-image dup + "clear-button-clicked" theme-image dup dup ; + : ( search-field -- button ) - "X" swap '[ drop _ clear-search-field ] ; + [ f ] dip '[ drop _ clear-search-field ]