﻿// ==PREPROCESSOR==
// @name "Buttontest"
// @version "1.0"
// @author "tedGo, based on a sample created by T.P. Wang, using partial code by super-gau"
// @import "%fb2k_profile_path%buttontest\Global Config Script.js"
// @import "%fb2k_profile_path%buttontest\Global Button Script.js"
// @import "%fb2k_profile_path%buttontest\TextButton Object.js"
// ==/PREPROCESSOR==

var p_backcol = RGBA(191, 191, 191, 255);

// ----- CREATE BUTTONS -----
// Button 1: alle Optionen vorhanden, aber abgeschaltet (zum
// Spielen ;)).
// Einfach nur die jeweilige Option durch löschen der
// Slashes aktivieren (mögliche "Values" siehe Readme.txt).
// Optionen in Variante 1 angegeben (finde ich am Über-
// sichtlichsten).

var btn1Opt = {}
//btn1Opt.text_shadow = 2;
//btn1Opt.text_h_align = 1;
//btn1Opt.text_v_align = 1;
//btn1Opt.text_onclick_shift = -1;
//btn1Opt.font_name = "Courier New";
//btn1Opt.font_style = 1;
//btn1Opt.btn_style = 2;
//btn1Opt.line_width = 5;

var btn1Col = {};
//btn1Col.text_normal = RGB(0, 0, 0);
//btn1Col.text_hover = RGB(63, 127, 255);
//btn1Col.text_down = RGB(31, 63, 127);
//btn1Col.shadow_colour = RGB(127, 127, 127);
//btn1Col.line_normal = RGBA(127, 127, 127, 255);
//btn1Col.line_hover = RGBA(127, 191, 127, 255);
//btn1Col.line_down = RGBA(127, 127, 191, 255);
//btn1Col.back_normal = RGBA(191, 63, 127, 255);
//btn1Col.back_hover = RGBA(255, 127, 0, 255);
//btn1Col.back_down = RGBA(255, 255, 255, 8);

var btn1Siz = {};
//btn1Siz.text_x_margin = 10;
//btn1Siz.text_y_margin = 10;
//btn1Siz.font_size = 16;
//btn1Siz.func_left_pad = 5;
//btn1Siz.func_top_pad = 5;
//btn1Siz.func_right_pad = 155;
//btn1Siz.func_bottom_pad = 5;
//btn1Siz.arc_size = 10;

Buttons.btn1 = new TextButton("Console", function(){fb.ShowConsole()}, btn1Opt, btn1Col);
Buttons.btn1.initPos(20, 20, 200, 50, btn1Siz);

// -------------------------
// Button 2: ohne Optionen. Button wird als reiner Text
// angezeigt.

Buttons.btn2 = new TextButton("Preferences", function(){fb.ShowPreferences()});
Buttons.btn2.initPos(20, 80, 80, 20);

// -------------------------
// Button 3: mit relativen Größenangaben.
// Die Platzierung und die "Size options" sind dann in
// function on_size() anzugeben!
// Optionen in Variante 2 angegeben.

var btn3Opt = {
    text_shadow: 2,
    text_v_align: 1,
    text_onclick_shift: -1,
    font_name: "Segoe UI",
    btn_style: 1
};

var btn3Col = {
    text_normal: RGB(255, 255, 255),
    text_hover: RGB(127, 191, 255),
    shadow_colour: RGB(0, 0, 0),
    back_normal: RGBA(0, 0, 0, 95),
    back_hover: RGBA(0, 0, 0, 127)
};

var btn3Siz;

Buttons.btn3 = new TextButton("Configure panel", function(){window.ShowConfigure()}, btn3Opt, btn3Col);

function on_size() {
	ww = window.Width;
	wh = window.Height;

    btn3Siz = {
        text_x_margin: 20,
        font_size: ww / 30
    };

    Buttons.btn3.initPos(0, 110, ww, 40, btn3Siz);
}

// -------------------------
// Im Folgenden einige Buttonbeispiele.

var btn4Opt = {}
btn4Opt.text_shadow = 1;
btn4Opt.text_h_align = 1;
btn4Opt.text_v_align = 1;
btn4Opt.btn_style = 1;
btn4Opt.line_width = 2;

var btn4Col = {};
btn4Col.text_normal = RGB(19, 30, 38);
btn4Col.shadow_colour = RGB(255, 255, 255);
btn4Col.line_normal = RGBA(255, 127, 127, 255);
btn4Col.back_normal = RGBA(0, 63, 127, 255);
btn4Col.back_hover = RGBA(63, 127, 191, 255);
btn4Col.back_down = RGBA(31, 95, 159, 255);

var btn4Siz = {};
btn4Siz.text_y_margin = -1;
btn4Siz.font_size = 30;

Buttons.btn4 = new TextButton("\u275a\u275a", function(){fb.Pause()}, btn4Opt, btn4Col);
Buttons.btn4.initPos(20, 160, 60, 60, btn4Siz);

// -------------------------

var btn5Opt = {}
btn5Opt.text_h_align = 1;
btn5Opt.text_v_align = 1;
btn5Opt.btn_style = 3;
btn5Opt.line_width = 10;

var btn5Col = {};
btn5Col.text_hover = RGB(63, 127, 255);
btn5Col.text_down = RGB(48, 80, 160);
btn5Col.line_normal = RGBA(0, 0, 0, 255);
btn5Col.line_hover = RGBA(63, 127, 255, 255);
btn5Col.line_down = RGBA(48, 80, 160, 255);

var btn5Siz = {};
btn5Siz.text_x_margin = 4;
btn5Siz.font_size = 30;
btn5Siz.func_left_pad = btn5Siz.func_top_pad = btn5Siz.func_right_pad = btn5Siz.func_bottom_pad = 6;

Buttons.btn5 = new TextButton("\u25b6", function(){fb.Play()}, btn5Opt, btn5Col);
Buttons.btn5.initPos(100, 160, 60, 60, btn5Siz);

// -------------------------

var btn6Opt = {}
btn6Opt.text_h_align = 1;
btn6Opt.font_name = "Arial Black";
btn6Opt.btn_style = 2;
btn6Opt.line_width = 2;

var btn6Col = {};
btn6Col.text_normal = RGB(255, 0, 0);
btn6Col.line_normal = RGBA(127, 127, 127, 255);
btn6Col.back_normal = RGBA(255, 0, 0, 31);
btn6Col.back_hover = RGBA(255, 0, 0, 63);
btn6Col.back_down = RGBA(255, 0, 0, 95);

var btn6Siz = {};
btn6Siz.font_size = 10;
btn6Siz.func_top_pad = 20;

Buttons.btn6 = new TextButton("PREVIOUS", function(){fb.Prev()}, btn6Opt, btn6Col);
Buttons.btn6.initPos(180, 170, 60, 40, btn6Siz);

// -------------------------

var btn7Opt = {}
btn7Opt.text_h_align = 1;
btn7Opt.text_v_align = 2;
btn7Opt.font_name = "Comic Sans MS";
btn7Opt.font_style = 1;
btn7Opt.btn_style = 3;

var btn7Col = {};
btn7Col.text_normal = RGB(0, 0, 255);
btn7Col.text_down = RGB(255, 0, 255);
btn7Col.back_normal = RGBA(0, 0, 255, 255);
btn7Col.back_hover = RGBA(0, 255, 255, 255);
btn7Col.back_down = RGBA(255, 0, 255, 255);

var btn7Siz = {};
btn7Siz.func_left_pad = 10;
btn7Siz.func_right_pad = 10;
btn7Siz.func_bottom_pad = 20;

Buttons.btn7 = new TextButton("Next", function(){fb.Next()}, btn7Opt, btn7Col);
Buttons.btn7.initPos(260, 170, 60, 40, btn7Siz);

// -------------------------

var btn8Opt = {}
btn8Opt.text_h_align = 2;
btn8Opt.text_v_align = 1;
btn8Opt.font_style = 1;
btn8Opt.btn_style = 3;
btn8Opt.line_width = 1;

var btn8Col = {};
btn8Col.line_normal = RGBA(0, 0, 0, 255);
btn8Col.back_normal = RGBA(0, 0, 0, 63);
btn8Col.back_hover = RGBA(0, 0, 0, 31);
btn8Col.back_down = RGBA(0, 0, 0, 127);

var btn8Siz = {};
btn8Siz.text_x_margin = -18;
btn8Siz.func_left_pad = 48;

Buttons.btn8 = new TextButton("Stop", function(){fb.Stop()}, btn8Opt, btn8Col);
Buttons.btn8.initPos(20, 230, 60, 12, btn8Siz);

// ----- DRAW -----
function on_paint(gr) {
	!window.IsTransparent && gr.FillSolidRect(0, 0, ww, wh, p_backcol);

	gr.SetInterpolationMode(7);
	gr.SetSmoothingMode(4);

	buttonsDraw(gr);
}

// ----- MOUSE ACTIONS -----
function on_mouse_move(x, y) {
	buttonsMouseMove(x, y);
}

function on_mouse_lbtn_down(x, y) {
	buttonsMouseLbtnDown(x, y);
}

function on_mouse_lbtn_up(x, y) {
	buttonsMouseLbtnUp(x, y);
}

function on_mouse_leave() {
	buttonsMouseLeave();
}