Diff
Not logged in

Differences From Artifact [cfea3ec31f]:

To Artifact [460354ea40]:


348
349
350
351
352
353
354







355
356
357
358
359
360

361
362
363
364
365
366
367
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366

367
368
369
370
371
372
373
374







+
+
+
+
+
+
+





-
+







      messageIsInView: function(e){
        return e ? overlapsElemView(e, this.e.messagesWrapper) : false;
      },
      settings:{
        get: (k,dflt)=>F.storage.get(k,dflt),
        getBool: (k,dflt)=>F.storage.getBool(k,dflt),
        set: (k,v)=>F.storage.set(k,v),
        /* Toggles the boolean setting specified by k. Returns the
           new value.*/
        toggle: function(k){
          const v = this.getBool(k);
          this.set(k, !v);
          return !v;
        },
        defaults:{
          "images-inline": !!F.config.chat.imagesInline,
          "edit-multiline": false,
          "monospace-messages": false,
          "chat-only-mode": false,
          "audible-alert": true,
          "audible-alert": true
        }
      },
      /** Plays a new-message notification sound IF the audible-alert
          setting is true, else this is a no-op. Returns this.
      */
      playNewMessageSound: function f(){
        if(this.settings.getBool('audible-alert',false)){
927
928
929
930
931
932
933
934

935
936

937
938
939
940
941
942

943
944
945

946
947

948
949
950
951
952
953
954
934
935
936
937
938
939
940

941


942
943
944
945
946
947

948



949


950
951
952
953
954
955
956
957







-
+
-
-
+





-
+
-
-
-
+
-
-
+







      label: "Message home/end buttons",
      boolValue: ()=>!Chat.e.btnMsgHome.classList.contains('hidden'),
      callback: ()=>Chat.toggleNavButtons()
    },{
      label: "Images inline",
      boolValue: ()=>Chat.settings.getBool('images-inline'),
      callback: function(){
        const v = Chat.settings.getBool('images-inline',true);
        const v = Chat.settings.toggle('images-inline');
        Chat.settings.set('images-inline', !v);
        F.toast.message("Image mode set to "+(v ? "hyperlink" : "inline")+".");
        F.toast.message("Image mode set to "+(v ? "inline" : "hyperlink")+".");
      }
    },{
      label: "Audible alerts",
      boolValue: ()=>Chat.settings.getBool('audible-alert'),
      callback: function(){
        const v = Chat.settings.getBool('audible-alert');
        const v = Chat.settings.toggle('audible-alert');
        Chat.settings.set('audible-alert', !v);
        if(!v){
          setTimeout(()=>Chat.playNewMessageSound(), 50);
        if(v) setTimeout(()=>Chat.playNewMessageSound(), 50);
        }
        F.toast.message("Audio notifications "+(v ? "disabled" : "enabled")+".");
        F.toast.message("Audio notifications "+(v ? "enabled" : "disabled")+".");
      }
    }];

    /**
       Rebuild the menu each time it's shown so that the toggles can
       show their current values.
    */