Check-in [2aa3b014ac]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:More work on Google+ display
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 2aa3b014ac89cf3d088488a6417c4615489b46cf
User & Date: bernd 2019-03-12 22:15:59
Context
2019-03-13
21:44
Postings display started (text only) check-in: 4c18cd8708 user: bernd tags: trunk
2019-03-12
22:15
More work on Google+ display check-in: 2aa3b014ac user: bernd tags: trunk
2019-03-11
22:32
More on project rendering check-in: 8ca92fda4e user: bernd tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to gui.fs.

33
34
35
36
37
38
39

40
41
42
43
44
45
46
..
86
87
88
89
90
91
92

93
94
95
96
97
98
99
...
603
604
605
606
607
608
609
























































610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
...
869
870
871
872
873
874
875

876
877
878
879
880
881
882
    f/ fround to font-size#
    font-size# 133% f* fround to baseline#
    font-size# 32e f/ to pixelsize# ;

update-size#

require minos2/text-style.fs


glue new Constant glue-sleft
glue new Constant glue-sright
glue ' new static-a with-allocater Constant glue-left
glue ' new static-a with-allocater Constant glue-right

: glue0 ( -- ) 0e fdup
................................................................................
    slide# @ ['] next-anim >animate +textures +lang ;

\ frames

0 Value pw-frame
0 Value id-frame
0 Value chat-frame


\ password screen

0 Value pw-err
0 Value pw-num
0 Value phrase-unlock
0 Value create-new-id
................................................................................
[THEN]

: .project ( addr u -- )
    2dup keysize /string
    2dup printable? IF  '[' emit type '@' emit
    ELSE  ." #["  85type ." /@"  THEN
    key| .key-id? ;
























































: open-project { d: prj -- }
    ." open " prj .project cr
    prj 2dup keysize /string [: type '@' emit key| .key-id? ;] $tmp nick>chat
    >dir
    "posts" ~net2o-cache/
    handle-clone
    prj keysize /string set-dir throw
    .dvcs-log
    dir> ;

:noname ( -- )
    glue*ll }}glue msg-box .child+
    dpy-w @ 90% fm* msg-par .par-split
    {{ msg-par unbox }}
    dup >r 0 ?DO  I pick box[] "unboxed" name! drop  LOOP  r>
................................................................................
\ top box

{{
    glue-left }}glue
    pw-frame          dup >slides
    id-frame   /flip  dup >slides
    chat-frame /flip  dup >slides

    glue-right }}glue
}}h box[]
Value n2o-frame

\ top widgets

: !widgets ( -- )







>







 







>







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







|







 







>







33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
..
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
...
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
...
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
    f/ fround to font-size#
    font-size# 133% f* fround to baseline#
    font-size# 32e f/ to pixelsize# ;

update-size#

require minos2/text-style.fs
require minos2/md-viewer.fs

glue new Constant glue-sleft
glue new Constant glue-sright
glue ' new static-a with-allocater Constant glue-left
glue ' new static-a with-allocater Constant glue-right

: glue0 ( -- ) 0e fdup
................................................................................
    slide# @ ['] next-anim >animate +textures +lang ;

\ frames

0 Value pw-frame
0 Value id-frame
0 Value chat-frame
0 Value post-frame

\ password screen

0 Value pw-err
0 Value pw-num
0 Value phrase-unlock
0 Value create-new-id
................................................................................
[THEN]

: .project ( addr u -- )
    2dup keysize /string
    2dup printable? IF  '[' emit type '@' emit
    ELSE  ." #["  85type ." /@"  THEN
    key| .key-id? ;

scope{ dvcs
dvcs-log-class class
end-class project-log-class

:noname ( addr u -- )
    + sigpksize# - [ keysize $10 + ]L dvcs-log:id$ $!
; project-log-class is msg:start
' 2drop project-log-class is msg:tag
' 2drop project-log-class is msg:id
' 2drop project-log-class is msg:text
' 2drop project-log-class is msg:action
' 2drop project-log-class is msg:chain
:noname ( addr u -- )
    [: dvcs-log:id$ $. forth:type ;] dvcs-log:urls[] dup $[]# swap $[] $exec
; project-log-class is msg:url

: new-project-log ( -- o )
    project-log-class new >o msg-table @ token-table ! o o> ;
}scope

0 Value project-vp

{{
    $FFFFFFFF color, pres-frame
    {{
	glue*ll }}glue
	tex: vp-md
    glue*l ' vp-md }}vp vp[] dup to project-vp
    >o font-size# dpy-w @ s>f 25% f* fdup fnegate to borderv f+ to border o o>
}}z box[] to post-frame

: display-file ( addr u -- )
    2dup key| .key-id?
    over keysize + le-64@ .ticks space
    [ keysize $10 + ]L safe/string
    2dup "file:" string-prefix? IF
	5 /string [: ." ~+/" type ;] $tmp markdown-parse
	v-box project-vp .+child
	dpy-w @ s>f font-size# fover 25% f* f+ f2* f- ~~ p-format
    ELSE  2drop  THEN ;
: display-project ( addr u -- )
    project:branch$ $@ { d: branch }
    dvcs:new-project-log >o
    ?msg-log  last# msg-log@ 2dup { log u }
    bounds ?DO
	I $@ msg:display \ this will only set the URLs
    cell +LOOP
    log free
    dvcs-log:urls[] ['] display-file $[]map
    dvcs:dispose-dvcs-log o> throw ;
: .project-log ( -- )
    dvcs:new-dvcs >o  config>dvcs
    project:project$ $@ @/ 2drop 2dup load-msg
    display-project
    dvcs:dispose-dvcs o> ;
: open-project { d: prj -- }
    ." open " prj .project cr
    prj 2dup keysize /string [: type '@' emit key| .key-id? ;] $tmp nick>chat
    >dir
    "posts" ~net2o-cache/
    handle-clone
    prj keysize /string set-dir throw
    .project-log
    dir> ;

:noname ( -- )
    glue*ll }}glue msg-box .child+
    dpy-w @ 90% fm* msg-par .par-split
    {{ msg-par unbox }}
    dup >r 0 ?DO  I pick box[] "unboxed" name! drop  LOOP  r>
................................................................................
\ top box

{{
    glue-left }}glue
    pw-frame          dup >slides
    id-frame   /flip  dup >slides
    chat-frame /flip  dup >slides
    post-frame /flip  dup >slides
    glue-right }}glue
}}h box[]
Value n2o-frame

\ top widgets

: !widgets ( -- )