New look for menus
parent
46da224f8b
commit
c46b400d40
basis/ui
gadgets
corners
labeled
menus
theme
render
|
@ -0,0 +1 @@
|
||||||
|
Slava Pestov
|
|
@ -0,0 +1,43 @@
|
||||||
|
! Copyright (C) 2009 Slava Pestov.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: accessors kernel sequences namespaces ui.gadgets.frames
|
||||||
|
ui.pens.image ui.gadgets.icons ui.gadgets.grids ;
|
||||||
|
IN: ui.gadgets.corners
|
||||||
|
|
||||||
|
CONSTANT: @center { 1 1 }
|
||||||
|
CONSTANT: @left { 0 1 }
|
||||||
|
CONSTANT: @right { 2 1 }
|
||||||
|
CONSTANT: @top { 1 0 }
|
||||||
|
CONSTANT: @bottom { 1 2 }
|
||||||
|
|
||||||
|
CONSTANT: @top-left { 0 0 }
|
||||||
|
CONSTANT: @top-right { 2 0 }
|
||||||
|
CONSTANT: @bottom-left { 0 2 }
|
||||||
|
CONSTANT: @bottom-right { 2 2 }
|
||||||
|
|
||||||
|
SYMBOL: name
|
||||||
|
|
||||||
|
: corner-image ( name -- image )
|
||||||
|
[ name get "-" ] dip 3append theme-image ;
|
||||||
|
|
||||||
|
: corner-icon ( name -- icon )
|
||||||
|
corner-image <icon> ;
|
||||||
|
|
||||||
|
: /-----\ ( corner -- corner )
|
||||||
|
"top-left" corner-icon @top-left grid-add
|
||||||
|
"top-middle" corner-icon @top grid-add
|
||||||
|
"top-right" corner-icon @top-right grid-add ;
|
||||||
|
|
||||||
|
: |-----| ( gadget corner -- corner )
|
||||||
|
"left-edge" corner-icon @left grid-add
|
||||||
|
swap @center grid-add
|
||||||
|
"right-edge" corner-icon @right grid-add ;
|
||||||
|
|
||||||
|
: \-----/ ( corner -- corner )
|
||||||
|
"bottom-left" corner-icon @bottom-left grid-add
|
||||||
|
"bottom-middle" corner-icon @bottom grid-add
|
||||||
|
"bottom-right" corner-icon @bottom-right grid-add ;
|
||||||
|
|
||||||
|
: make-corners ( class name quot -- corners )
|
||||||
|
[ [ [ 3 3 ] dip new-frame { 1 1 } >>filled-cell ] dip name ] dip
|
||||||
|
with-variable ; inline
|
|
@ -2,67 +2,33 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors kernel sequences colors fonts ui.gadgets
|
USING: accessors kernel sequences colors fonts ui.gadgets
|
||||||
ui.gadgets.frames ui.gadgets.grids ui.gadgets.icons ui.gadgets.labels
|
ui.gadgets.frames ui.gadgets.grids ui.gadgets.icons ui.gadgets.labels
|
||||||
ui.gadgets.borders ui.pens.image ;
|
ui.gadgets.borders ui.pens.image ui.gadgets.corners ui.render ;
|
||||||
IN: ui.gadgets.labeled
|
IN: ui.gadgets.labeled
|
||||||
|
|
||||||
TUPLE: labeled-gadget < frame content ;
|
TUPLE: labeled-gadget < frame content ;
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
CONSTANT: @center { 1 1 }
|
|
||||||
CONSTANT: @left { 0 1 }
|
|
||||||
CONSTANT: @right { 2 1 }
|
|
||||||
CONSTANT: @top { 1 0 }
|
|
||||||
CONSTANT: @bottom { 1 2 }
|
|
||||||
|
|
||||||
CONSTANT: @top-left { 0 0 }
|
|
||||||
CONSTANT: @top-right { 2 0 }
|
|
||||||
CONSTANT: @bottom-left { 0 2 }
|
|
||||||
CONSTANT: @bottom-right { 2 2 }
|
|
||||||
|
|
||||||
: labeled-image ( name -- image )
|
|
||||||
"labeled-block-" prepend theme-image ;
|
|
||||||
|
|
||||||
: labeled-icon ( name -- icon )
|
|
||||||
labeled-image <icon> ;
|
|
||||||
|
|
||||||
CONSTANT: labeled-title-background
|
|
||||||
T{ rgba f
|
|
||||||
0.7843137254901961
|
|
||||||
0.7686274509803922
|
|
||||||
0.7176470588235294
|
|
||||||
1.0
|
|
||||||
}
|
|
||||||
|
|
||||||
: <labeled-title> ( gadget -- label )
|
: <labeled-title> ( gadget -- label )
|
||||||
>label
|
>label
|
||||||
[ labeled-title-background font-with-background ] change-font
|
[ panel-background-color font-with-background ] change-font
|
||||||
{ 0 2 } <border>
|
{ 0 2 } <border>
|
||||||
"title-middle" labeled-image
|
"title-middle" corner-image
|
||||||
<image-pen> t >>fill? >>interior ;
|
<image-pen> t >>fill? >>interior ;
|
||||||
|
|
||||||
: /-FOO-\ ( title labeled -- labeled )
|
: /-FOO-\ ( title labeled -- labeled )
|
||||||
"title-left" labeled-icon @top-left grid-add
|
"title-left" corner-icon @top-left grid-add
|
||||||
swap <labeled-title> @top grid-add
|
swap <labeled-title> @top grid-add
|
||||||
"title-right" labeled-icon @top-right grid-add ;
|
"title-right" corner-icon @top-right grid-add ;
|
||||||
|
|
||||||
: |-----| ( gadget labeled -- labeled )
|
|
||||||
"left-edge" labeled-icon @left grid-add
|
|
||||||
swap [ >>content ] [ @center grid-add ] bi
|
|
||||||
"right-edge" labeled-icon @right grid-add ;
|
|
||||||
|
|
||||||
: \-----/ ( labeled -- labeled )
|
|
||||||
"bottom-left" labeled-icon @bottom-left grid-add
|
|
||||||
"bottom-middle" labeled-icon @bottom grid-add
|
|
||||||
"bottom-right" labeled-icon @bottom-right grid-add ;
|
|
||||||
|
|
||||||
M: labeled-gadget focusable-child* content>> ;
|
M: labeled-gadget focusable-child* content>> ;
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
: <labeled-gadget> ( gadget title -- newgadget )
|
: <labeled-gadget> ( gadget title -- newgadget )
|
||||||
3 3 labeled-gadget new-frame
|
labeled-gadget "labeled-block" [
|
||||||
{ 1 1 } >>filled-cell
|
over >>content
|
||||||
/-FOO-\
|
/-FOO-\
|
||||||
|-----|
|
|-----|
|
||||||
\-----/ ;
|
\-----/
|
||||||
|
] make-corners ;
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
! Copyright (C) 2005, 2009 Slava Pestov.
|
! Copyright (C) 2005, 2009 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: colors.constants kernel locals math.rectangles
|
USING: colors.constants kernel locals math.rectangles namespaces
|
||||||
namespaces sequences ui.commands ui.gadgets ui.gadgets.borders
|
sequences ui.commands ui.gadgets ui.gadgets.borders ui.gadgets.buttons
|
||||||
ui.gadgets.buttons ui.gadgets.glass ui.gadgets.packs
|
ui.gadgets.glass ui.gadgets.packs ui.gadgets.frames ui.gadgets.worlds
|
||||||
ui.gadgets.worlds ui.gestures ui.operations ui.pens ui.pens.solid
|
ui.gadgets.frames ui.gadgets.corners ui.gestures ui.operations
|
||||||
opengl math.vectors words accessors math math.order sorting ;
|
ui.render ui.pens ui.pens.solid opengl math.vectors words accessors
|
||||||
|
math math.order sorting ;
|
||||||
IN: ui.gadgets.menus
|
IN: ui.gadgets.menus
|
||||||
|
|
||||||
: show-menu ( owner menu -- )
|
: show-menu ( owner menu -- )
|
||||||
|
@ -30,6 +31,10 @@ M: separator-pen draw-interior
|
||||||
dim>> [ { 0 0.5 } v* ] [ { 1 0.5 } v* ] bi
|
dim>> [ { 0 0.5 } v* ] [ { 1 0.5 } v* ] bi
|
||||||
[ [ >integer ] map ] bi@ gl-line ;
|
[ [ >integer ] map ] bi@ gl-line ;
|
||||||
|
|
||||||
|
: <menu-items> ( items -- gadget )
|
||||||
|
[ <filled-pile> ] dip add-gadgets
|
||||||
|
panel-background-color <solid> >>interior ;
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
SINGLETON: ----
|
SINGLETON: ----
|
||||||
|
@ -43,10 +48,16 @@ M: ---- <menu-item>
|
||||||
: menu-theme ( gadget -- gadget )
|
: menu-theme ( gadget -- gadget )
|
||||||
COLOR: light-gray <solid> >>interior ;
|
COLOR: light-gray <solid> >>interior ;
|
||||||
|
|
||||||
|
: <menu> ( gadgets -- menu )
|
||||||
|
<menu-items>
|
||||||
|
frame "menu-background" [
|
||||||
|
/-----\
|
||||||
|
|-----|
|
||||||
|
\-----/
|
||||||
|
] make-corners ;
|
||||||
|
|
||||||
: <commands-menu> ( target hook commands -- menu )
|
: <commands-menu> ( target hook commands -- menu )
|
||||||
[ <filled-pile> ] 3dip
|
[ <menu-item> ] with with map <menu> ;
|
||||||
[ <menu-item> add-gadget ] with with each
|
|
||||||
{ 5 5 } <border> menu-theme ;
|
|
||||||
|
|
||||||
: show-commands-menu ( target commands -- )
|
: show-commands-menu ( target commands -- )
|
||||||
[ dup [ ] ] dip <commands-menu> show-menu ;
|
[ dup [ ] ] dip <commands-menu> show-menu ;
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -112,4 +112,12 @@ M: gadget draw-children
|
||||||
|
|
||||||
CONSTANT: selection-color T{ rgba f 0.8 0.8 1.0 1.0 }
|
CONSTANT: selection-color T{ rgba f 0.8 0.8 1.0 1.0 }
|
||||||
|
|
||||||
|
CONSTANT: panel-background-color
|
||||||
|
T{ rgba f
|
||||||
|
0.7843137254901961
|
||||||
|
0.7686274509803922
|
||||||
|
0.7176470588235294
|
||||||
|
1.0
|
||||||
|
}
|
||||||
|
|
||||||
CONSTANT: focus-border-color COLOR: dark-gray
|
CONSTANT: focus-border-color COLOR: dark-gray
|
||||||
|
|
Loading…
Reference in New Issue