Check-in [a28a0f2c63]
Not logged in

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

Overview
Comment:Start album viewer
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: a28a0f2c633e6375dc4d20b1de38aa594c74cbcb
User & Date: bernd 2019-12-02 22:24:28
Context
2019-12-02
23:31
Work on album viewer check-in: b5c83311ad user: bernd tags: trunk
22:24
Start album viewer check-in: a28a0f2c63 user: bernd tags: trunk
20:27
Chat thumbnail handling considderably improved check-in: 096c09b945 user: bernd tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to classes.fs.

134
135
136
137
138
139
140
141
142

143
144
145
146
147
148
149
cmd-class class
    field: silent-last#
end-class msging-class

cmd-class class{ msg
    $10 +field dummy
    $value: name$ \ group name
    $value: id$
    $value: msg$  \ decrypted message

    field: peers[]
    field: keys[]
    field: log[]
    field: perms# \ pk -> permission map
    field: mode
    \ mode bits:
    1 4 bits: otr# redate# lock# visible#







|

>







134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
cmd-class class
    field: silent-last#
end-class msging-class

cmd-class class{ msg
    $10 +field dummy
    $value: name$ \ group name
    $value: id$   \ id of current message
    $value: msg$  \ decrypted message
    64value: timestamp \ timestamp of message
    field: peers[]
    field: keys[]
    field: log[]
    field: perms# \ pk -> permission map
    field: mode
    \ mode bits:
    1 4 bits: otr# redate# lock# visible#

Changes to gui.fs.

874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
....
1054
1055
1056
1057
1058
1059
1060

















1061
1062
1063
1064
1065
1066
1067
1068
1069

1070
1071
1072
1073
1074
1075
1076
1077
; wmsg-class is msg:.nobody
: new-msg-par ( -- )
    {{ }}p "msg-par" name!
    dup .subbox box[] drop box[] cbl >bl
    dup .subbox "msg-box" name!
    to msg-box to msg-par ;
:noname { d: pk -- o }
    pk key| to msg:id$
    pk [: .simple-id ." : " ;] $tmp notify-nick!
    pk key| pkc over str= { me? }
    pk enddate@ otr? { otr }
    pk key| last-bubble-pk $@ str= otr last-otr? = and
    pk startdate@ last-tick 64over to last-tick
    64- delta-bubble 64< and
    IF
................................................................................
	>r r@ i.w 2* r@ i.h 2* hash >swap
	glue*thumb r> }}thumb >r hash r@ .>rotate
    ELSE
	128 128 glue*thumb dummy-thumb }}thumb >r
	r@ [n:h update-thumb ;] { w^ xt } xt cell hash key| fetch-finish# #!
	hash key| ?fetch
    THEN  {{ glue*ll }}glue r> }}v 40%bv box[] ;


















:noname ( addr u type -- )
    obj-red
    case 0 >r
	msg:image#     of
	    msg-box .childs[] $[]# ?dup-IF
		rdrop  1- msg-box .childs[] $[] @
		dup .name$ "thumbnail" str= IF
		    [: ." display image: " addr data $@ 85type cr ;]

		    2swap $make click[] drop  EXIT  THEN  drop  THEN
	    [: ." img["      85type ']' emit ;] $tmp }}text  "image" name!
	endof
	msg:thumbnail# of  ?thumb  "thumbnail" name!  endof
	msg:patch#     of  [: ." patch["    85type ']' emit
	    ;] $tmp }}text  "patch" name!  endof
	msg:snapshot#  of  [: ." snapshot[" 85type ']' emit
	    ;] $tmp }}text  "snapshot" name!  endof







|







 







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









>
|







874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
....
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
; wmsg-class is msg:.nobody
: new-msg-par ( -- )
    {{ }}p "msg-par" name!
    dup .subbox box[] drop box[] cbl >bl
    dup .subbox "msg-box" name!
    to msg-box to msg-par ;
:noname { d: pk -- o }
    pk key| to msg:id$  pk startdate@ to msg:timestamp
    pk [: .simple-id ." : " ;] $tmp notify-nick!
    pk key| pkc over str= { me? }
    pk enddate@ otr? { otr }
    pk key| last-bubble-pk $@ str= otr last-otr? = and
    pk startdate@ last-tick 64over to last-tick
    64- delta-bubble 64< and
    IF
................................................................................
	>r r@ i.w 2* r@ i.h 2* hash >swap
	glue*thumb r> }}thumb >r hash r@ .>rotate
    ELSE
	128 128 glue*thumb dummy-thumb }}thumb >r
	r@ [n:h update-thumb ;] { w^ xt } xt cell hash key| fetch-finish# #!
	hash key| ?fetch
    THEN  {{ glue*ll }}glue r> }}v 40%bv box[] ;

hash: imgs# \ hash of tables of

: .imgs ( -- )
    imgs# [: dup $. ." :" cr
	cell+ $@ bounds ?DO
	    I $@ over be-64@ .ticks space
	    1 64s /string 85type cr
	cell +LOOP ;] #map ;
: +imgs ( addr$ -- )
    [: { w^ string | ts[ 1 64s ] } msg:timestamp ts[ be-64!
	ts[ 1 64s type  string $. ;] $tmp $make { w^ string }
    msg-group$ $@ imgs# #@ d0= IF
	string cell msg-group$ $@ imgs# #!
    ELSE
	string $@ last# cell+ $ins[]  string $free
    THEN ;

:noname ( addr u type -- )
    obj-red
    case 0 >r
	msg:image#     of
	    msg-box .childs[] $[]# ?dup-IF
		rdrop  1- msg-box .childs[] $[] @
		dup .name$ "thumbnail" str= IF
		    [: ." display image: " addr data $@ 85type cr ;]
		    2swap $make dup +imgs
		    click[] drop  EXIT  THEN  drop  THEN
	    [: ." img["      85type ']' emit ;] $tmp }}text  "image" name!
	endof
	msg:thumbnail# of  ?thumb  "thumbnail" name!  endof
	msg:patch#     of  [: ." patch["    85type ']' emit
	    ;] $tmp }}text  "patch" name!  endof
	msg:snapshot#  of  [: ." snapshot[" 85type ']' emit
	    ;] $tmp }}text  "snapshot" name!  endof

Changes to msg.fs.

794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
    +zero16 nest$
    0 msg-group-o .msg:keys[] $[]@ encrypt$
    ['] .encsign ']nestsig ;

\ nest-sig for msg/msging classes

' message msging-class is start-req
:noname quicksig( check-date )else( pk-sig? )
    >r 2dup r> ; msging-class is nest-sig
' message msg-class is start-req
:noname 2dup msg-dec?-sig? ; msg-class is nest-sig

' context-table is gen-table

also }scope







|







794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
    +zero16 nest$
    0 msg-group-o .msg:keys[] $[]@ encrypt$
    ['] .encsign ']nestsig ;

\ nest-sig for msg/msging classes

' message msging-class is start-req
:noname check-date \ quicksig( check-date )else( pk-sig? )
    >r 2dup r> ; msging-class is nest-sig
' message msg-class is start-req
:noname 2dup msg-dec?-sig? ; msg-class is nest-sig

' context-table is gen-table

also }scope