// ==UserScript== // @name Dreadcast Chat Enhancer // @namespace https://greasyfork.org/scripts/21359-dreadcast-chat-enhancer/ // @version 1.2 // @description Améliore le chat de Dreadcast. // @author MockingJay // @match http://www.dreadcast.net/Main // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_listValues // @downloadURL none // ==/UserScript== //Lit les variables dans GM à la demande. A utiliser pour chaque déclaration de variable qui est copiée en mémoire. //initValue: Valeur par défaut de la variable, qu'on lui donne à la déclaration et qu'elle garde si pas d'équivalent en mémoire. localVarName: Valeur GM locale. function initLocalMemory(initValue, localVarName) { if (GM_getValue(localVarName) === undefined) { GM_setValue(localVarName, initValue); return initValue; } else { return GM_getValue(localVarName); } } $(document).ready(function() { //Initialisation variables de préférences var autoScroll = initLocalMemory(false, "DCCE_autoScroll"); var scrollBar = initLocalMemory(true, "DCCE_scrollBar"); var typePredict = initLocalMemory(true, "DCCE_typePredict"); //Initialiser le CSS et scroller en bas à l'initialisation. $("#zone_chat .zone_infos .msg").css({ width: '290px', }); $("#chatContent").css({ "overflow-x": 'hidden', "overflow-y": 'scroll', height: '313px', width: '308px', }); //Applique la barre de défilement en fonction des préférences. function setChatContentScroll() { if(scrollBar) $("#chatContent").css({"padding-right": '0px'}); else $("#chatContent").css({"padding-right": '15px'}); } setChatContentScroll(); //Appliquer à l'initialisation. //Initialisation du bouton d'alerte, utilisé quand l'autoScroll est désactivé. var $newMessageAlert = $('
').appendTo($('#zone_chat')); $newMessageAlert.text("⚠ Nouveau message! ⚠"); $newMessageAlert.css({ display: 'none', top: '45px', "text-align": 'center', cursor: 'pointer', background: '#fff', border: '1px solid #fff', color: '#0296bb', "margin-top": '2px', "-webkit-box-shadow": '0 0 4px 2px #329bc2', }); $newMessageAlert.attr('onmouseover', 'this.style.backgroundColor=\"#0b9bcb\";this.style.color=\"#FFFFFF\";'); $newMessageAlert.attr('onmouseout', 'this.style.backgroundColor=\"#FFFFFF\";this.style.color=\"#0296bb\";'); //Initialisation bandeau latéral var $toggleAutoScroll = $('
  • '+'
  • ').prependTo($('#bandeau ul.menus')); if(autoScroll) { $("#toggleAutoScroll").text("AS on"); } else { $("#toggleAutoScroll").text("AS off"); } $("#toggleAutoScroll").css({ cursor: 'pointer', }); $("#toggleAutoScroll").attr('onmouseover', 'this.style.color=\"#0073d5\";'); $("#toggleAutoScroll").attr('onmouseout', 'this.style.color=\"#999\";'); //Changer l'autoscroll au clic sur le bandeau latéral. $("#toggleAutoScroll").click(function(){ if(autoScroll) { autoScroll = false; $("#toggleAutoScroll").text("AS off"); } else { autoScroll = true; $("#toggleAutoScroll").text("AS on"); } GM_setValue("DCCE_autoScroll", autoScroll); }); //Fait défiler le chat jusqu'en bas. function scrollChat(){ $('#chatContent').stop().animate({ scrollTop: $('#chatContent')[0].scrollHeight }, 800); $newMessageAlert.stop().fadeOut(500); } //********************************************** //INTERFACE DE CONFIGURATION UTILISATEUR //********************************************** var $databox = $('#zone_dataBox'); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //Constructeur de fenêtre de configuration //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var DCCE_ConfigurationWindow = function () { var window_width = '560px'; var window_height = '450px'; var $config_window = $('
    '); $config_window.draggable(); $config_window.addClass('dataBox focused ui-draggable'); $config_window.css({ width: window_width, "margin-left": '-185px', display: 'block', position: 'absolute', "z-index": '2', }); for (var i = 1; i <= 8; i++) { $('
    ').appendTo($config_window); } var $config_head = $('
    ').appendTo($config_window); $('