Our members are dedicated to PASSION and PURPOSE without drama!

Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - VLS

#556
Loader / Re: BetSoftware Loader - 2014-05-05
May 05, 2014, 06:27:09 AM
Code (csharp) Select
/// <summary>
/// Exit tool strip menu item click.
/// </summary>
private void ExitToolStripMenuItem_Click(object sender, EventArgs e)
{
// Close
Close();
}

/// <summary>
/// Launches web browser to BetSelection.cc
/// </summary>
void LlWeb_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
// Launch site
Process.Start("http://betselection.cc");
}

/// <summary>
/// Add module
/// </summary>
private void BAdd_Click(object sender, EventArgs e)
{
// Set listbox
ListBox lb = null;

switch (((Button)sender).Tag.ToString())
{
// Utilities
case "nUtilities":
lb = lbUtilities;
break;

// Input
case "nInput":
lb = lbInput;
break;

// Bet selection
case "nBS":
lb = lbBS;
break;

// Money management
case "nMM":
lb = lbMM;
break;

// Display
case "nDisplay":
lb = lbDisplay;
break;

// Output
case "nOutput":
lb = lbOutput;
break;
}

// Check there's something to add
if (lb.SelectedIndex > -1)
{
// Declare string for item text
String itemText;

// Iterate selected items
foreach (Object sel in lb.SelectedItems)
{
// Make string
itemText = sel as String;

// Check if it's unique
if (!tvLaunch.Nodes[((Button)sender).Tag.ToString()].Nodes.ContainsKey(itemText))
{
// Add to TreeView
tvLaunch.Nodes[((Button)sender).Tag.ToString()].Nodes.Add(itemText, itemText);
}
}
}

// Change status text
tsslStatus.Text = "2) Set launch order, then click 'Launch'";

// Enable
tvLaunch.Enabled = true;
bUp.Enabled = true;
bDown.Enabled = true;
bDelete.Enabled = true;
bLaunch.Enabled = true;

// Expand all nodes
tvLaunch.ExpandAll();
}

/// <summary>
/// Moves selected module up in TreeView
/// </summary>
void BUp_Click(object sender, EventArgs e)
{
// Check it isn't null
if (tvLaunch.SelectedNode != null && tvLaunch.SelectedNode.Parent != null && tvLaunch.SelectedNode.Index > 0)
{
// Suspend redraws
tvLaunch.SuspendLayout();

// Save selected node
TreeNode node = tvLaunch.SelectedNode;

// Set parent
TreeNode parent = tvLaunch.SelectedNode.Parent;

// Set index
int index = tvLaunch.SelectedNode.Index;

// Remove it
parent.Nodes.RemoveAt(index);

// Insert it again
parent.Nodes.Insert(index - 1, node);

//select the node
tvLaunch.SelectedNode = parent.Nodes[index - 1];

// Resume redrawing
tvLaunch.ResumeLayout();

// Refresh
tvLaunch.Refresh();
}

// Focus treeview
tvLaunch.Focus();
}

/// <summary>
/// Moves selected module down in TreeView
/// </summary>
void BDown_Click(object sender, EventArgs e)
{
// Check it isn't null
if (tvLaunch.SelectedNode != null && tvLaunch.SelectedNode.Parent != null && tvLaunch.SelectedNode.Index < tvLaunch.SelectedNode.Parent.Nodes.Count - 1)
{
// Suspend redraws
tvLaunch.SuspendLayout();

// Save selected node
TreeNode node = tvLaunch.SelectedNode;

// Set parent
TreeNode parent = tvLaunch.SelectedNode.Parent;

// Set index
int index = tvLaunch.SelectedNode.Index;

// Remove it
parent.Nodes.RemoveAt(index);

// Insert it again
parent.Nodes.Insert(index + 1, node);

//select the node
tvLaunch.SelectedNode = tvLaunch.SelectedNode.Parent.Nodes[index + 1];

// Resume redrawing
tvLaunch.ResumeLayout();

// Refresh
tvLaunch.Refresh();
}

// Focus treeview
tvLaunch.Focus();
}

/// <summary>
/// Launch button
/// </summary>
private void BLaunch_Click(object sender, EventArgs e)
{
// Namespace string
string nSpace = string.Empty;

/* Assign */

/* Utilities */
foreach (TreeNode tn in tvLaunch.Nodes["nUtilities"].Nodes)
{
// Set namespace
nSpace = DisplayNameToNameSpace(tn.Text);

// Load assembly
Assembly asm = Assembly.LoadFile(GetDllPath(tn.Text, "Utilities", tags["Utilities"][nSpace]));

// Add to Utilities dict
Modules.Utilities.Dict.Add(nSpace, asm);

// Add to Utilities list
Modules.Utilities.List.Add(nSpace);

// Utilities module
Modules.Utilities.Dict[nSpace].GetType(nSpace + ".Comm").GetMethod("Init", BindingFlags.Static | BindingFlags.Public).Invoke(null, new object[] { Data.NameSpace });
}

/* Input */
foreach (TreeNode tn in tvLaunch.Nodes["nInput"].Nodes)
{
// Set namespace
nSpace = DisplayNameToNameSpace(tn.Text);

// Load assembly
Assembly asm = Assembly.LoadFile(GetDllPath(tn.Text, "Input", tags["Input"][nSpace]));

// Add to input dict
Modules.Input.Dict.Add(nSpace, asm);

// Add to input list
Modules.Input.List.Add(nSpace);

// Init module
Modules.Input.Dict[nSpace].GetType(nSpace + ".Comm").GetMethod("Init", BindingFlags.Static | BindingFlags.Public).Invoke(null, new object[] { Data.NameSpace });
}

/* Bet Selection */
foreach (TreeNode tn in tvLaunch.Nodes["nBS"].Nodes)
{
// Set namespace
nSpace = DisplayNameToNameSpace(tn.Text);

// Load assembly
Assembly asm = Assembly.LoadFile(GetDllPath(tn.Text, "BetSelection", tags["BetSelection"][nSpace]));

// Add to Bet Selection dict
Modules.BS.Dict.Add(nSpace, asm);

// Add to Bet Selection list
Modules.BS.List.Add(nSpace);

// Init module
Modules.BS.Dict[nSpace].GetType(nSpace + ".Comm").GetMethod("Init", BindingFlags.Static | BindingFlags.Public).Invoke(null, new object[] { Data.NameSpace });
}

/* Money Management */
foreach (TreeNode tn in tvLaunch.Nodes["nMM"].Nodes)
{
// Set namespace
nSpace = DisplayNameToNameSpace(tn.Text);

// Load assembly
Assembly asm = Assembly.LoadFile(GetDllPath(tn.Text, "MoneyManagement", tags["MoneyManagement"][nSpace]));

// Add to Money Management dict
Modules.MM.Dict.Add(nSpace, asm);

// Add to Money Management list
Modules.MM.List.Add(nSpace);

// Init module
Modules.MM.Dict[nSpace].GetType(nSpace + ".Comm").GetMethod("Init", BindingFlags.Static | BindingFlags.Public).Invoke(null, new object[] { Data.NameSpace });
}

/* Display */
foreach (TreeNode tn in tvLaunch.Nodes["nDisplay"].Nodes)
{
// Set namespace
nSpace = DisplayNameToNameSpace(tn.Text);

// Load assembly
Assembly asm = Assembly.LoadFile(GetDllPath(tn.Text, "Display", tags["Display"][nSpace]));

// Add to display dict
Modules.Display.Dict.Add(nSpace, asm);

// Add to display list
Modules.Display.List.Add(nSpace);

// Init module
Modules.Display.Dict[nSpace].GetType(nSpace + ".Comm").GetMethod("Init", BindingFlags.Static | BindingFlags.Public).Invoke(null, new object[] { Data.NameSpace });
}

/* Output */
foreach (TreeNode tn in tvLaunch.Nodes["nOutput"].Nodes)
{
// Set namespace
nSpace = DisplayNameToNameSpace(tn.Text);

// Load assembly
Assembly asm = Assembly.LoadFile(GetDllPath(tn.Text, "Output", tags["Output"][nSpace]));

// Add to Output dict
Modules.Output.Dict.Add(nSpace, asm);

// Add to Output list
Modules.Output.List.Add(nSpace);

// Init module
Modules.Output.Dict[nSpace].GetType(nSpace + ".Comm").GetMethod("Init", BindingFlags.Static | BindingFlags.Public).Invoke(null, new object[] { Data.NameSpace });
}

/* Re-enable (a bit more efficient than comparing on every iteration) */

// Enable link
llWeb.Enabled = true;

// Change color
lWeb.ForeColor = Color.Red;

// Enable web label
lWeb.Enabled = true;

// Enabe status label
ss.Enabled = true;

// Set status label
tsslStatus.Text = "3) Close program when finished. --Or visit our web!";
}

/// <summary>
/// Remove currently selected module from tree
/// </summary>
private void BDelete_Click(object sender, EventArgs e)
{
// Check it isn't null
if (tvLaunch.SelectedNode != null && tvLaunch.SelectedNode.Parent != null)
{
// Delete node
tvLaunch.SelectedNode.Remove();
}
}

/// <summary>
/// Changes a display name to its .dll representation
/// </summary>
private string GetDllPath(string displayName, string folder)
{
return string.Empty;
}

/// <summary>
/// Changes a display name to its .dll representation
/// </summary>
private string GetDllPath(string displayName, string folder, string subfolder)
{
// Check strings are there
if (displayName.Length > 0 && folder.Length > 0)
{
// Replace and return
return appDir + folder + Path.DirectorySeparatorChar + subfolder + Path.DirectorySeparatorChar + DisplayNameToNameSpace(displayName) + ".dll";
}

// Return empty string by default
return String.Empty;
}

/// <summary>
/// Load event for main form
/// </summary>
void MainForm_Load(object sender, EventArgs e)
{
// Select tpInput
tcMain.SelectedTab = tpInput;

/* Handle options */

// Always on top
if (alwaysOntopToolStripMenuItem.Checked)
{
// On top
this.TopMost = true;
}

/* Event handlers */

// Buttons
Button[] buttons = new Button[] { bAddBS, bAddDisplay, bAddInput, bAddMM, bAddOut, bAddUtilities };

// Handler
foreach (Button b in buttons)
{
// Attach
b.Click += new EventHandler(BAdd_Click);
}

// Load modules
LoadModules(false);
}

/// <summary>
/// Handles form closing
/// </summary>
void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
// Check if must ask
if (askOnExitToolStripMenuItem.Checked)
{
// Ask
if (MessageBox.Show("Would you like to exit now?", "Confirm exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) != DialogResult.Yes)
{
// Cancel form close
e.Cancel = true;

// Exit procedure
return;
}
}

/* Save XML */

// Instantiate XmlTextWriter
XmlTextWriter writer = new XmlTextWriter(xmlFile, null);

// Set formatting
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;

// Document start
writer.WriteStartDocument();

// Root start
writer.WriteStartElement("BetSoftware");

// Options start
writer.WriteStartElement("Options");

// Write options
foreach (ToolStripMenuItem tsmi in optionsToolStripMenuItem.DropDownItems)
{
// Save checked status
writer.WriteElementString(tsmi.Name.Replace("ToolStripMenuItem", ""), tsmi.CheckState.ToString());
}

// Options end
writer.WriteEndElement();

// Root start
writer.WriteEndElement();

// Document end
writer.WriteEndDocument();

// Close writer
writer.Close();
}

/// <summary>
/// Generic event handler for ToolStripMenuItem
/// </summary>
void ToolStripMenuItem_Click(object sender, EventArgs e)
{
// Toggle
((ToolStripMenuItem)sender).Checked = !((ToolStripMenuItem)sender).Checked;
}

/// <summary>
/// Shows about form
/// </summary>
void AboutToolStripMenuItem_Click(object sender, EventArgs e)
{
// Display about msg
MessageBox.Show("Coded by Victor/VLS for BetSelection.cc" + Environment.NewLine + Environment.NewLine + "(2014-04-02 / Version 0.1)", "About BetSoftware", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

/// <summary>
/// Sets TopMost
/// </summary>
void alwaysOntopToolStripMenuItem_Click(object sender, EventArgs e)
{
// Set
this.TopMost = !alwaysOntopToolStripMenuItem.Checked;

// Toggle
ToolStripMenuItem_Click(sender, e);
}

/// <summary>
/// Check/creates directories and loads modules
/// </summary>
private void LoadModules(bool init)
{
// Temporary string array
string[] tempSA;

// List of string to hold modules
List<string> mods = new List<string>();

// Prepare or clear tags
SetTags();

/* Clear listboxes */

lbUtilities.Items.Clear();
lbInput.Items.Clear();
lbBS.Items.Clear();
lbMM.Items.Clear();
lbDisplay.Items.Clear();
lbOutput.Items.Clear();

/* Utilities */

// Check for an existent directory
if (!Directory.Exists(appDir + "Utilities"))
{
// Not present, create it
Directory.CreateDirectory(appDir + "Utilities");

// Create subdirectories for games
Directory.CreateDirectory(appDir + "Utilities" + Path.DirectorySeparatorChar + "Roulette");
Directory.CreateDirectory(appDir + "Utilities" + Path.DirectorySeparatorChar + "Baccarat");
}
else if (!init)
{

/* Add modules to Utilities list */

// Append current game modules to list
if (Directory.Exists(appDir + "Utilities" + Path.DirectorySeparatorChar + UpperFirst(Data.Game)))
{
// Current game
tempSA = Directory.GetFiles(appDir + "Utilities" + Path.DirectorySeparatorChar + UpperFirst(Data.Game), "*.dll");

// Populate
for (int i = 0; i < tempSA.Length; i++)
{
// Add current module to list
mods.Add(tempSA[i]);

// Set matching current module tag
tags["Utilities"].Add(DisplayNameToNameSpace(GetDisplayNameFromPath(tempSA[i])), UpperFirst(Data.Game));
}
}

// Iterate mods
foreach (string mod in mods)
{
// Get file name
lbUtilities.Items.Add(GetDisplayNameFromPath(mod));
}

// Set module counter
if (lbUtilities.Items.Count > 0)
{
// Display count
tpUtilities.Text = "Util. (" + lbUtilities.Items.Count + ")";
}
else
{
// Initial label
tpUtilities.Text = "Utilities";
}
}

/* Input */

// Check for an existent directory
if (!Directory.Exists(appDir + "Input"))
{
// Not present, create it
Directory.CreateDirectory(appDir + "Input");

// Create subdirectories for games
Directory.CreateDirectory(appDir + "Input" + Path.DirectorySeparatorChar + "Roulette");
Directory.CreateDirectory(appDir + "Input" + Path.DirectorySeparatorChar + "Baccarat");
}
else if (!init)
{
/* Add modules to input list */

// Clear list
mods.Clear();

// Append current game modules to list
if (Directory.Exists(appDir + "Input" + Path.DirectorySeparatorChar + UpperFirst(Data.Game)))
{
// Current game
tempSA = Directory.GetFiles(appDir + "Input" + Path.DirectorySeparatorChar + UpperFirst(Data.Game), "*.dll");

// Populate
for (int i = 0; i < tempSA.Length; i++)
{
// Add current module to list
mods.Add(tempSA[i]);

// Set matching current module tag
tags["Input"].Add(DisplayNameToNameSpace(GetDisplayNameFromPath(tempSA[i])), UpperFirst(Data.Game));
}
}

// Iterate
foreach (string mod in mods)
{
// Get file name
lbInput.Items.Add(GetDisplayNameFromPath(mod));
}

// Set module counter
if (lbInput.Items.Count > 0)
{
// Display count
tpInput.Text = "Input (" + lbInput.Items.Count + ")";
}
else
{
// Initial label
tpInput.Text = "Input";
}
}

/* BetSelection */

// Check for an existent directory
if (!Directory.Exists(appDir + "BetSelection"))
{
// Not present, create it
Directory.CreateDirectory(appDir + "BetSelection");

// Create subdirectories for games
Directory.CreateDirectory(appDir + "BetSelection" + Path.DirectorySeparatorChar + "Roulette");
Directory.CreateDirectory(appDir + "BetSelection" + Path.DirectorySeparatorChar + "Baccarat");
}
else if (!init)
{
/* Add modules to BetSelection list */

// Clear list
mods.Clear();

// Append current game modules to list
if (Directory.Exists(appDir + "BetSelection" + Path.DirectorySeparatorChar + UpperFirst(Data.Game)))
{
// Current game
tempSA = Directory.GetFiles(appDir + "BetSelection" + Path.DirectorySeparatorChar + UpperFirst(Data.Game), "*.dll");

// Populate
for (int i = 0; i < tempSA.Length; i++)
{
// Add current module to list
mods.Add(tempSA[i]);

// Set matching current module tag
tags["BetSelection"].Add(DisplayNameToNameSpace(GetDisplayNameFromPath(tempSA[i])), UpperFirst(Data.Game));
}
}

// Iterate mods
foreach (string mod in mods)
{
// Get file name
lbBS.Items.Add(GetDisplayNameFromPath(mod));
}

// Set module counter
if (lbBS.Items.Count > 0)
{
// Display count
tpBS.Text = "Bet S. (" + lbBS.Items.Count + ")";
}
else
{
// Initial label
tpBS.Text = "Bet S.";
}
}

/* MoneyManagement */

// Check for an existent directory
if (!Directory.Exists(appDir + "MoneyManagement"))
{
// Not present, create it
Directory.CreateDirectory(appDir + "MoneyManagement");

// Create subdirectories for games
Directory.CreateDirectory(appDir + "MoneyManagement" + Path.DirectorySeparatorChar + "Roulette");
Directory.CreateDirectory(appDir + "MoneyManagement" + Path.DirectorySeparatorChar + "Baccarat");
}
else if (!init)
{
/* Add modules to MoneyManagement list */

// Clear list
mods.Clear();

// Append current game modules to list
if (Directory.Exists(appDir + "MoneyManagement" + Path.DirectorySeparatorChar + UpperFirst(Data.Game)))
{
// Current game
tempSA = Directory.GetFiles(appDir + "MoneyManagement" + Path.DirectorySeparatorChar + UpperFirst(Data.Game), "*.dll");

// Populate
for (int i = 0; i < tempSA.Length; i++)
{
// Add current module to list
mods.Add(tempSA[i]);

// Set matching current module tag
tags["MoneyManagement"].Add(DisplayNameToNameSpace(GetDisplayNameFromPath(tempSA[i])), UpperFirst(Data.Game));
}
}

// Iterate mods
foreach (string mod in mods)
{
// Get file name
lbMM.Items.Add(GetDisplayNameFromPath(mod));
}

// Set module counter
if (lbMM.Items.Count > 0)
{
// Display count
tpMM.Text = "Mon. M. (" + lbMM.Items.Count + ")";
}
else
{
// Initial label
tpMM.Text = "Mon. M.";
}
}

/* Display */

// Check for an existent directory
if (!Directory.Exists(appDir + "Display"))
{
// Not present, create it
Directory.CreateDirectory(appDir + "Display");

// Create subdirectories for games
Directory.CreateDirectory(appDir + "Display" + Path.DirectorySeparatorChar + "Roulette");
Directory.CreateDirectory(appDir + "Display" + Path.DirectorySeparatorChar + "Baccarat");
}
else if (!init)
{
/* Add modules to Display list */

// Clear list
mods.Clear();

// Append current game modules to list
if (Directory.Exists(appDir + "Display" + Path.DirectorySeparatorChar + UpperFirst(Data.Game)))
{
// Current game
tempSA = Directory.GetFiles(appDir + "Display" + Path.DirectorySeparatorChar + UpperFirst(Data.Game), "*.dll");

// Populate
for (int i = 0; i < tempSA.Length; i++)
{
// Add current module to list
mods.Add(tempSA[i]);

// Set matching current module tag
tags["Display"].Add(DisplayNameToNameSpace(GetDisplayNameFromPath(tempSA[i])), UpperFirst(Data.Game));
}
}

// Iterate mods
foreach (string mod in mods)
{
// Get file name
lbDisplay.Items.Add(GetDisplayNameFromPath(mod));
}

// Set module counter
if (lbDisplay.Items.Count > 0)
{
// Display count
tpDisplay.Text = "Disp. (" + lbDisplay.Items.Count + ")";
}
else
{
// Initial label
tpDisplay.Text = "Display";
}
}

/* Output */

// Check for an existent directory
if (!Directory.Exists(appDir + "Output"))
{
// Not present, create it
Directory.CreateDirectory(appDir + "Output");

// Create subdirectories for games
Directory.CreateDirectory(appDir + "Output" + Path.DirectorySeparatorChar + "Roulette");
Directory.CreateDirectory(appDir + "Output" + Path.DirectorySeparatorChar + "Baccarat");
}
else if (!init)
{
/* Add modules to Output list */

// Clear list
mods.Clear();

// Append current game modules to list
if (Directory.Exists(appDir + "Output" + Path.DirectorySeparatorChar + UpperFirst(Data.Game)))
{
// Current game
tempSA = Directory.GetFiles(appDir + "Output" + Path.DirectorySeparatorChar + UpperFirst(Data.Game), "*.dll");

// Populate
for (int i = 0; i < tempSA.Length; i++)
{
// Add current module to list
mods.Add(tempSA[i]);

// Set matching current module tag
tags["Output"].Add(DisplayNameToNameSpace(GetDisplayNameFromPath(tempSA[i])), UpperFirst(Data.Game));
}
}

// Iterate mods
foreach (string mod in mods)
{
// Get file name
lbOutput.Items.Add(GetDisplayNameFromPath(mod));
}

// Set module counter
if (lbOutput.Items.Count > 0)
{
// Display count
tpOutput.Text = "Output (" + lbOutput.Items.Count + ")";
}
else
{
// Initial label
tpOutput.Text = "Output";
}
}
}

/// <summary>
/// Prepares tags dictionary
/// </summary>
private void SetTags()
{
// Check if there's something
if (tags.Count > 0)
{
// Clear 'em
tags.Clear();
}

// Populate base
tags.Add("Utilities", new Dictionary<string, string>());
tags.Add("Input", new Dictionary<string, string>());
tags.Add("BetSelection", new Dictionary<string, string>());
tags.Add("MoneyManagement", new Dictionary<string, string>());
tags.Add("Display", new Dictionary<string, string>());
tags.Add("Output", new Dictionary<string, string>());
}

/// <summary>
/// Changes a path to its display name representation
/// </summary>
private string GetDisplayNameFromPath(string filePath)
{
// Check there's something to act upon
if (filePath.Length > 0)
{
// File name without extension
string FileNameWithoutExtension = Path.GetFileNameWithoutExtension(filePath);

// Make replacements
string displayName = NameSpaceToDisplayName(FileNameWithoutExtension);

// Return proper Display Name
return displayName;
}

// Return empty string by default
return String.Empty;
}

/// <summary>
/// Changes a display name to namespace
/// </summary>
private string DisplayNameToNameSpace(string displayName)
{
// Check strings are there
if (displayName.Length > 0)
{
// Match with regular expression
MatchCollection matches = Regex.Matches(displayName, @"[^a-zA-Z0-9_]");

// Walk reversed
for (int i = matches.Count - 1; i >= 0; i--)
{
// Handle space
if (matches[i].Value == " ")
{
// Remove original
displayName = displayName.Remove(matches[i].Index, 1);

// Insert replacement
displayName = displayName.Insert(matches[i].Index, "__");

// Next iteration
continue;
}

// Set encoding
UTF32Encoding encoding = new UTF32Encoding();

// Get current bytes
byte[] bytes = encoding.GetBytes(matches[i].Value.ToCharArray());

// Remove original
displayName = displayName.Remove(matches[i].Index, 1);

// Insert replacement
displayName = displayName.Insert(matches[i].Index, "_" + BitConverter.ToInt32(bytes, 0).ToString() + "_");
}

// Return processed display name
return displayName;
}

// Return empty string by default
return String.Empty;
}

/// <summary>
/// Changes namespace to display name by naming convention
/// </summary>
/// <param name="nameSpace">string Passed namespace</param>
/// <returns>String with replacements</returns>
private string NameSpaceToDisplayName(string nameSpace)
{
// Match with regular expression
MatchCollection matches = Regex.Matches(nameSpace, @"_[0-9]+_");

// Walk reversed
for (int i = matches.Count - 1; i >= 0; i--)
{
/* Validate odd underscores */

// Counter
int count = 0;

// Get underscores
for (int j = matches[i].Index; j >= 0; j--)
{
// Check for non-underscore
if (nameSpace[j].ToString() != "_")
{
// Halt flow
break;
}

// Rise counter
count++;
}

// Check for odd
if ((count % 2) == 0)
{
// Move to next iteration
continue;
}

// Convert
try
{
// Declare
Int32 int32Val;

// Parse from string
if (Int32.TryParse(matches[i].Value.Replace("_", ""), NumberStyles.Integer, null, out int32Val))
{
// Remove original
nameSpace = nameSpace.Remove(matches[i].Index, matches[i].Length);

// Insert replacement
nameSpace = nameSpace.Insert(matches[i].Index, char.ConvertFromUtf32(int32Val).ToString());
}
}
catch (Exception e)
{
// Let is fall through
}
}

// Replace double-space with single
nameSpace = nameSpace.Replace("__", " ");

// Processed namespace back
return nameSpace;
}

/// <summary>
/// Converts passed string's first letter to uppercase
/// </summary>
/// <param name="text">String to work with</param>
/// <returns>String with first letter in uppercase and the rest in lowercase</returns>
private string UpperFirst(string text)
{
// Check there's something to work with
if (text.Length > 1)
{
// Make title case
text = text[0].ToString().ToUpper() + text.Substring(1).ToLower();
}

// Return
return text;
}

/// <summary>
/// The entry point of the program, where the program control starts and ends.
/// </summary>
[STAThread]
public static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}
#557
Loader / Re: BetSoftware Loader - 2014-05-05
May 05, 2014, 06:26:11 AM
Code (csharp) Select
//
//  MainForm.cs
//
//  Author:
//       Victor L. Senior <betselection﹫gmail.com>
//
//  Website:
//       http://betselection.cc
//
//  Copyright (c) 2014 Victor L. Senior
//
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Reflection;
using System.Diagnostics;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Threading;
using System.Globalization;
using System.Windows.Forms.VisualStyles;

namespace BetSoftware_Loader
{
   /// <summary>
   /// Main form.
   /// </summary>
   public class MainForm : Form
   {
      // Directory tags for each module
      private Dictionary<string, Dictionary<string, string>> tags = new Dictionary<string, Dictionary<string, string>>();
      // Application directory
      private string appDir = Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar;
      // Form declarations
      private ToolStripStatusLabel tsslStatus;
      private StatusStrip ss;
      private Button bAddOut;
      private ListBox lbOutput;
      private Button bReloadOutput;
      private TabPage tpOutput;
      private Button bAddDisplay;
      private ListBox lbDisplay;
      private Button bReloadDisplay;
      private TabPage tpDisplay;
      private Button bAddMM;
      private ListBox lbMM;
      private Button bReloadMM;
      private TabPage tpMM;
      private Button bAddBS;
      private ListBox lbBS;
      private Button bReloadBS;
      private TabPage tpBS;
      private Button bReloadInput;
      private Button bAddInput;
      private ListBox lbInput;
      private TabPage tpInput;
      private Button bReloadUtilities;
      private Button bAddUtilities;
      private ListBox lbUtilities;
      private TabPage tpUtilities;
      private TabControl tcMain;
      private Button bLaunch;
      private Button bUp;
      private Button bDown;
      private Button bDelete;
      private Label lLauncher;
      private Label lWeb;
      private TreeView tvLaunch;
      private LinkLabel llWeb;
      private ToolStripMenuItem aboutToolStripMenuItem;
      private ToolStripMenuItem helpToolStripMenuItem;
      private ToolStripMenuItem savepositionToolStripMenuItem;
      private ToolStripMenuItem saveSizeToolStripMenuItem;
      private ToolStripMenuItem alwaysOntopToolStripMenuItem;
      private ToolStripMenuItem askOnExitToolStripMenuItem;
      private ToolStripMenuItem undoStepsToolStripMenuItem;
      private ToolStripMenuItem optionsToolStripMenuItem;
      private ToolStripMenuItem exitToolStripMenuItem;
      private ToolStripMenuItem fileToolStripMenuItem;
      private MenuStrip ms;
      // XML settings Filename
      string xmlFile = Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + "BetSoftware.xml";

      /// <summary>
      /// Initializes a new instance of the MainForm class.
      /// </summary>
      public MainForm()
      {
         TreeNode treeNode1 = new TreeNode("Utilities");
         TreeNode treeNode2 = new TreeNode("Input");
         TreeNode treeNode3 = new TreeNode("Bet selection");
         TreeNode treeNode4 = new TreeNode("Money Management");
         TreeNode treeNode5 = new TreeNode("Display");
         TreeNode treeNode6 = new TreeNode("Output");
         ms = new MenuStrip();
         fileToolStripMenuItem = new ToolStripMenuItem();
         exitToolStripMenuItem = new ToolStripMenuItem();
         optionsToolStripMenuItem = new ToolStripMenuItem();
         undoStepsToolStripMenuItem = new ToolStripMenuItem();
         alwaysOntopToolStripMenuItem = new ToolStripMenuItem();
         askOnExitToolStripMenuItem = new ToolStripMenuItem();
         saveSizeToolStripMenuItem = new ToolStripMenuItem();
         savepositionToolStripMenuItem = new ToolStripMenuItem();
         helpToolStripMenuItem = new ToolStripMenuItem();
         aboutToolStripMenuItem = new ToolStripMenuItem();
         llWeb = new LinkLabel();
         tvLaunch = new TreeView();
         lWeb = new Label();
         lLauncher = new Label();
         bDelete = new Button();
         bDown = new Button();
         bUp = new Button();
         bLaunch = new Button();
         tcMain = new TabControl();
         tpUtilities = new TabPage();
         lbUtilities = new ListBox();
         bAddUtilities = new Button();
         bReloadUtilities = new Button();
         tpInput = new TabPage();
         lbInput = new ListBox();
         bAddInput = new Button();
         bReloadInput = new Button();
         tpBS = new TabPage();
         bReloadBS = new Button();
         lbBS = new ListBox();
         bAddBS = new Button();
         tpMM = new TabPage();
         bReloadMM = new Button();
         lbMM = new ListBox();
         bAddMM = new Button();
         tpDisplay = new TabPage();
         bReloadDisplay = new Button();
         lbDisplay = new ListBox();
         bAddDisplay = new Button();
         tpOutput = new TabPage();
         bReloadOutput = new Button();
         lbOutput = new ListBox();
         bAddOut = new Button();
         ss = new StatusStrip();
         tsslStatus = new ToolStripStatusLabel();
         ms.SuspendLayout();
         tcMain.SuspendLayout();
         tpUtilities.SuspendLayout();
         tpInput.SuspendLayout();
         tpBS.SuspendLayout();
         tpMM.SuspendLayout();
         tpDisplay.SuspendLayout();
         tpOutput.SuspendLayout();
         ss.SuspendLayout();
         SuspendLayout();
         //
         // ms
         //
         ms.Items.AddRange(new ToolStripItem[]
         {
            fileToolStripMenuItem,
            optionsToolStripMenuItem,
            helpToolStripMenuItem
         });
         ms.Location = new Point(0, 0);
         ms.Name = "ms";
         ms.Size = new Size(551, 24);
         ms.TabIndex = 21;
         ms.Text = "menuStrip1";
         //
         // fileToolStripMenuItem
         //
         fileToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[]
         {
            exitToolStripMenuItem
         });
         fileToolStripMenuItem.Name = "fileToolStripMenuItem";
         fileToolStripMenuItem.Size = new Size(37, 20);
         fileToolStripMenuItem.Text = "&File";
         //
         // exitToolStripMenuItem
         //
         exitToolStripMenuItem.Name = "exitToolStripMenuItem";
         exitToolStripMenuItem.Size = new Size(92, 22);
         exitToolStripMenuItem.Text = "E&xit";
         exitToolStripMenuItem.Click += new EventHandler(ExitToolStripMenuItem_Click);
         //
         // optionsToolStripMenuItem
         //
         optionsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[]
         {
            //undoStepsToolStripMenuItem,
            alwaysOntopToolStripMenuItem,
            askOnExitToolStripMenuItem,
            //saveSizeToolStripMenuItem,
            //savepositionToolStripMenuItem
         });
         optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
         optionsToolStripMenuItem.Size = new Size(61, 20);
         optionsToolStripMenuItem.Text = "&Options";
         //
         // undoStepsToolStripMenuItem
         //
         undoStepsToolStripMenuItem.Name = "undoStepsToolStripMenuItem";
         undoStepsToolStripMenuItem.Size = new Size(193, 22);
         undoStepsToolStripMenuItem.Text = "Set &undo steps (10)";
         //
         // alwaysOntopToolStripMenuItem
         //
         alwaysOntopToolStripMenuItem.Checked = true;
         alwaysOntopToolStripMenuItem.CheckState = CheckState.Checked;
         alwaysOntopToolStripMenuItem.Name = "alwaysOntopToolStripMenuItem";
         alwaysOntopToolStripMenuItem.Size = new Size(193, 22);
         alwaysOntopToolStripMenuItem.Text = "Always on &top";
         alwaysOntopToolStripMenuItem.Click += new EventHandler(alwaysOntopToolStripMenuItem_Click);
         //
         // askOnExitToolStripMenuItem
         //
         askOnExitToolStripMenuItem.Checked = true;
         askOnExitToolStripMenuItem.CheckState = CheckState.Checked;
         askOnExitToolStripMenuItem.Name = "askOnExitToolStripMenuItem";
         askOnExitToolStripMenuItem.Size = new Size(152, 22);
         askOnExitToolStripMenuItem.Text = "&Ask on exit";
         askOnExitToolStripMenuItem.Click += new EventHandler(ToolStripMenuItem_Click);
         //
         // saveSizeToolStripMenuItem
         //
         saveSizeToolStripMenuItem.Checked = true;
         saveSizeToolStripMenuItem.CheckState = CheckState.Checked;
         saveSizeToolStripMenuItem.Name = "saveSizeToolStripMenuItem";
         saveSizeToolStripMenuItem.Size = new Size(193, 22);
         saveSizeToolStripMenuItem.Text = "Save modules size";
         saveSizeToolStripMenuItem.Click += new EventHandler(ToolStripMenuItem_Click);
         //
         // savepositionToolStripMenuItem
         //
         savepositionToolStripMenuItem.Checked = true;
         savepositionToolStripMenuItem.CheckState = CheckState.Checked;
         savepositionToolStripMenuItem.Name = "savepositionToolStripMenuItem";
         savepositionToolStripMenuItem.Size = new Size(193, 22);
         savepositionToolStripMenuItem.Text = "Save modules &position";
         savepositionToolStripMenuItem.Click += new EventHandler(ToolStripMenuItem_Click);
         //
         // helpToolStripMenuItem
         //
         helpToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[]
         {
            aboutToolStripMenuItem
         });
         helpToolStripMenuItem.Name = "helpToolStripMenuItem";
         helpToolStripMenuItem.Size = new Size(44, 20);
         helpToolStripMenuItem.Text = "&Help";
         //
         // aboutToolStripMenuItem
         //
         aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
         aboutToolStripMenuItem.Size = new Size(116, 22);
         aboutToolStripMenuItem.Text = "&About...";
         aboutToolStripMenuItem.Click += new EventHandler(AboutToolStripMenuItem_Click);
         //
         // llWeb
         //
         llWeb.Location = new Point(217, 214);
         llWeb.Name = "llWeb";
         llWeb.Size = new Size(135, 13);
         llWeb.TabIndex = 37;
         llWeb.TabStop = true;
         llWeb.Text = "www.BetSelection.cc";
         llWeb.Visible = true;
         llWeb.LinkClicked += new LinkLabelLinkClickedEventHandler(LlWeb_LinkClicked);
         //
         // tvLaunch
         //
         tvLaunch.Enabled = false;
         tvLaunch.HideSelection = false;
         tvLaunch.Location = new Point(9, 230);
         tvLaunch.Name = "tvLaunch";
         treeNode1.Name = "nUtilities";
         treeNode1.Text = "Utilities";
         treeNode2.Name = "nInput";
         treeNode2.Text = "Input";
         treeNode3.Name = "nBS";
         treeNode3.Text = "Bet selection";
         treeNode4.Name = "nMM";
         treeNode4.Text = "Money Management";
         treeNode5.Name = "nDisplay";
         treeNode5.Text = "Display";
         treeNode6.Name = "nOutput";
         treeNode6.Text = "Output";
         tvLaunch.Nodes.AddRange(new TreeNode[]
         {
            treeNode1,
            treeNode2,
            treeNode3,
            treeNode4,
            treeNode5,
            treeNode6
         });
         tvLaunch.Size = new Size(328, 122);
         tvLaunch.TabIndex = 34;
         tvLaunch.Visible = true;
         //
         // lWeb
         //
         lWeb.AutoSize = true;
         lWeb.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Italic, GraphicsUnit.Point, ((byte)(0)));
         lWeb.Location = new Point(186, 215);
         lWeb.Name = "lWeb";
         lWeb.Size = new Size(33, 13);
         lWeb.TabIndex = 35;
         lWeb.Text = "Web:";
         lWeb.Visible = true;
         //
         // lLauncher
         //
         lLauncher.AutoSize = true;
         lLauncher.Enabled = false;
         lLauncher.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Bold, GraphicsUnit.Point, ((byte)(0)));
         lLauncher.Location = new Point(6, 214);
         lLauncher.Name = "lLauncher";
         lLauncher.Size = new Size(64, 13);
         lLauncher.TabIndex = 36;
         lLauncher.Text = "Launcher:";
         lLauncher.Visible = true;
         //
         // bDelete
         //
         bDelete.Enabled = false;
         bDelete.Location = new Point(110, 354);
         bDelete.Name = "bDelete";
         bDelete.Size = new Size(47, 23);
         bDelete.TabIndex = 33;
         bDelete.Text = "Del";
         bDelete.UseVisualStyleBackColor = true;
         bDelete.Visible = true;
         bDelete.Click += new System.EventHandler(BDelete_Click);
         //
         // bDown
         //
         bDown.Enabled = false;
         bDown.Location = new Point(59, 354);
         bDown.Name = "bDown";
         bDown.Size = new Size(47, 23);
         bDown.TabIndex = 32;
         bDown.Text = "Down";
         bDown.UseVisualStyleBackColor = true;
         bDown.Visible = true;
         bDown.Click += new System.EventHandler(BDown_Click);
         //
         // bUp
         //
         bUp.Enabled = false;
         bUp.Location = new Point(9, 354);
         bUp.Name = "bUp";
         bUp.Size = new Size(47, 23);
         bUp.TabIndex = 30;
         bUp.Text = "Up";
         bUp.UseVisualStyleBackColor = true;
         bUp.Visible = true;
         bUp.Click += new System.EventHandler(BUp_Click);
         //
         // bLaunch
         //
         bLaunch.Enabled = false;
         bLaunch.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Bold, GraphicsUnit.Point, ((byte)(0)));
         bLaunch.Location = new Point(202, 354);
         bLaunch.Name = "bLaunch";
         bLaunch.Size = new Size(135, 23);
         bLaunch.TabIndex = 31;
         bLaunch.Text = "Launch!";
         bLaunch.UseVisualStyleBackColor = true;
         bLaunch.Visible = true;
         bLaunch.Click += new System.EventHandler(BLaunch_Click);
         //
         // tcMain
         //
         tcMain.Controls.Add(tpUtilities);
         tcMain.Controls.Add(tpInput);
         tcMain.Controls.Add(tpBS);
         tcMain.Controls.Add(tpMM);
         tcMain.Controls.Add(tpDisplay);
         tcMain.Controls.Add(tpOutput);
         tcMain.Location = new Point(6, 28);
         tcMain.Name = "tcMain";
         tcMain.SelectedIndex = 0;
         tcMain.Size = new Size(335, 173);
         tcMain.TabIndex = 29;
         tcMain.Visible = true;
         //
         // tpUtilities
         //
         tpUtilities.Controls.Add(lbUtilities);
         tpUtilities.Controls.Add(bAddUtilities);
         tpUtilities.Controls.Add(bReloadUtilities);
         tpUtilities.Location = new Point(4, 22);
         tpUtilities.Name = "tpUtilities";
         tpUtilities.Size = new Size(327, 147);
         tpUtilities.TabIndex = 6;
         tpUtilities.Text = "Utilities";
         tpUtilities.UseVisualStyleBackColor = true;
         //
         // lbUtilities
         //
         lbUtilities.FormattingEnabled = true;
         lbUtilities.Location = new Point(8, 12);
         lbUtilities.Name = "lbUtilities";
         lbUtilities.SelectionMode = SelectionMode.MultiSimple;
         lbUtilities.Size = new Size(311, 108);
         lbUtilities.Sorted = true;
         lbUtilities.TabIndex = 9;
         //
         // bAddUtilities
         //
         bAddUtilities.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Bold);
         bAddUtilities.Location = new Point(192, 121);
         bAddUtilities.Name = "bAddUtilities";
         bAddUtilities.Size = new Size(127, 23);
         bAddUtilities.TabIndex = 8;
         bAddUtilities.Tag = "nUtilities";
         bAddUtilities.Text = "Add";
         bAddUtilities.UseVisualStyleBackColor = true;
         //
         // bReloadUtilities
         //
         bReloadUtilities.Location = new Point(8, 121);
         bReloadUtilities.Name = "bReloadUtilities";
         bReloadUtilities.Size = new Size(56, 23);
         bReloadUtilities.TabIndex = 7;
         bReloadUtilities.Text = "Reload";
         bReloadUtilities.UseVisualStyleBackColor = true;
         //
         // tpInput
         //
         tpInput.Controls.Add(lbInput);
         tpInput.Controls.Add(bAddInput);
         tpInput.Controls.Add(bReloadInput);
         tpInput.Location = new Point(4, 22);
         tpInput.Name = "tpInput";
         tpInput.Padding = new Padding(3);
         tpInput.Size = new Size(327, 147);
         tpInput.TabIndex = 0;
         tpInput.Text = "Input";
         tpInput.UseVisualStyleBackColor = true;
         //
         // lbInput
         //
         lbInput.FormattingEnabled = true;
         lbInput.Location = new Point(8, 12);
         lbInput.Name = "lbInput";
         lbInput.SelectionMode = SelectionMode.MultiSimple;
         lbInput.Size = new Size(311, 108);
         lbInput.Sorted = true;
         lbInput.TabIndex = 6;
         //
         // bAddInput
         //
         bAddInput.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Bold);
         bAddInput.Location = new Point(192, 121);
         bAddInput.Name = "bAddInput";
         bAddInput.Size = new Size(127, 23);
         bAddInput.TabIndex = 5;
         bAddInput.Tag = "nInput";
         bAddInput.Text = "Add";
         bAddInput.UseVisualStyleBackColor = true;
         //
         // bReloadInput
         //
         bReloadInput.Location = new Point(8, 121);
         bReloadInput.Name = "bReloadInput";
         bReloadInput.Size = new Size(56, 23);
         bReloadInput.TabIndex = 1;
         bReloadInput.Text = "Reload";
         bReloadInput.UseVisualStyleBackColor = true;
         //
         // tpBS
         //
         tpBS.Controls.Add(bReloadBS);
         tpBS.Controls.Add(lbBS);
         tpBS.Controls.Add(bAddBS);
         tpBS.Location = new Point(4, 22);
         tpBS.Name = "tpBS";
         tpBS.Padding = new Padding(3);
         tpBS.Size = new Size(327, 147);
         tpBS.TabIndex = 1;
         tpBS.Text = "Bet S.";
         tpBS.UseVisualStyleBackColor = true;
         //
         // bReloadBS
         //
         bReloadBS.Location = new Point(8, 121);
         bReloadBS.Name = "bReloadBS";
         bReloadBS.Size = new Size(56, 23);
         bReloadBS.TabIndex = 5;
         bReloadBS.Text = "Reload";
         bReloadBS.UseVisualStyleBackColor = true;
         //
         // lbBS
         //
         lbBS.FormattingEnabled = true;
         lbBS.Location = new Point(8, 12);
         lbBS.Name = "lbBS";
         lbBS.SelectionMode = SelectionMode.MultiSimple;
         lbBS.Size = new Size(311, 108);
         lbBS.Sorted = true;
         lbBS.TabIndex = 4;
         //
         // bAddBS
         //
         bAddBS.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Bold);
         bAddBS.Location = new Point(192, 121);
         bAddBS.Name = "bAddBS";
         bAddBS.Size = new Size(127, 23);
         bAddBS.TabIndex = 1;
         bAddBS.Tag = "nBS";
         bAddBS.Text = "Add";
         bAddBS.UseVisualStyleBackColor = true;
         //
         // tpMM
         //
         tpMM.Controls.Add(bReloadMM);
         tpMM.Controls.Add(lbMM);
         tpMM.Controls.Add(bAddMM);
         tpMM.Location = new Point(4, 22);
         tpMM.Name = "tpMM";
         tpMM.Padding = new Padding(3);
         tpMM.Size = new Size(327, 147);
         tpMM.TabIndex = 2;
         tpMM.Text = "Mon. M.";
         tpMM.UseVisualStyleBackColor = true;
         //
         // bReloadMM
         //
         bReloadMM.Location = new Point(8, 121);
         bReloadMM.Name = "bReloadMM";
         bReloadMM.Size = new Size(56, 23);
         bReloadMM.TabIndex = 7;
         bReloadMM.Text = "Reload";
         bReloadMM.UseVisualStyleBackColor = true;
         //
         // lbMM
         //
         lbMM.FormattingEnabled = true;
         lbMM.Location = new Point(8, 12);
         lbMM.Name = "lbMM";
         lbMM.SelectionMode = SelectionMode.MultiSimple;
         lbMM.Size = new Size(311, 108);
         lbMM.Sorted = true;
         lbMM.TabIndex = 6;
         //
         // bAddMM
         //
         bAddMM.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Bold);
         bAddMM.Location = new Point(192, 121);
         bAddMM.Name = "bAddMM";
         bAddMM.Size = new Size(127, 23);
         bAddMM.TabIndex = 5;
         bAddMM.Tag = "nMM";
         bAddMM.Text = "Add";
         bAddMM.UseVisualStyleBackColor = true;
         //
         // tpDisplay
         //
         tpDisplay.Controls.Add(bReloadDisplay);
         tpDisplay.Controls.Add(lbDisplay);
         tpDisplay.Controls.Add(bAddDisplay);
         tpDisplay.Location = new Point(4, 22);
         tpDisplay.Name = "tpDisplay";
         tpDisplay.Size = new Size(327, 147);
         tpDisplay.TabIndex = 3;
         tpDisplay.Text = "Display";
         tpDisplay.UseVisualStyleBackColor = true;
         //
         // bReloadDisplay
         //
         bReloadDisplay.Location = new Point(8, 121);
         bReloadDisplay.Name = "bReloadDisplay";
         bReloadDisplay.Size = new Size(56, 23);
         bReloadDisplay.TabIndex = 7;
         bReloadDisplay.Text = "Reload";
         bReloadDisplay.UseVisualStyleBackColor = true;
         //
         // lbDisplay
         //
         lbDisplay.FormattingEnabled = true;
         lbDisplay.Location = new Point(8, 12);
         lbDisplay.Name = "lbDisplay";
         lbDisplay.SelectionMode = SelectionMode.MultiSimple;
         lbDisplay.Size = new Size(311, 108);
         lbDisplay.Sorted = true;
         lbDisplay.TabIndex = 6;
         //
         // bAddDisplay
         //
         bAddDisplay.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Bold);
         bAddDisplay.Location = new Point(192, 121);
         bAddDisplay.Name = "bAddDisplay";
         bAddDisplay.Size = new Size(127, 23);
         bAddDisplay.TabIndex = 5;
         bAddDisplay.Tag = "nDisplay";
         bAddDisplay.Text = "Add";
         bAddDisplay.UseVisualStyleBackColor = true;
         //
         // tpOutput
         //
         tpOutput.Controls.Add(bReloadOutput);
         tpOutput.Controls.Add(lbOutput);
         tpOutput.Controls.Add(bAddOut);
         tpOutput.Location = new Point(4, 22);
         tpOutput.Name = "tpOutput";
         tpOutput.Size = new Size(327, 147);
         tpOutput.TabIndex = 5;
         tpOutput.Text = "Output";
         tpOutput.UseVisualStyleBackColor = true;
         //
         // bReloadOutput
         //
         bReloadOutput.Location = new Point(8, 121);
         bReloadOutput.Name = "bReloadOutput";
         bReloadOutput.Size = new Size(56, 23);
         bReloadOutput.TabIndex = 7;
         bReloadOutput.Text = "Reload";
         bReloadOutput.UseVisualStyleBackColor = true;
         //
         // lbOutput
         //
         lbOutput.FormattingEnabled = true;
         lbOutput.Location = new Point(8, 12);
         lbOutput.Name = "lbOutput";
         lbOutput.SelectionMode = SelectionMode.MultiSimple;
         lbOutput.Size = new Size(311, 108);
         lbOutput.Sorted = true;
         lbOutput.TabIndex = 6;
         //
         // bAddOut
         //
         bAddOut.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Bold, GraphicsUnit.Point, ((byte)(0)));
         bAddOut.Location = new Point(192, 121);
         bAddOut.Name = "bAddOut";
         bAddOut.Size = new Size(127, 23);
         bAddOut.TabIndex = 5;
         bAddOut.Tag = "nOutput";
         bAddOut.Text = "Add";
         bAddOut.UseVisualStyleBackColor = true;
         //
         // ss
         //
         ss.Items.AddRange(new ToolStripItem[]
         {
            tsslStatus
         });
         ss.Location = new Point(0, 425);
         ss.Name = "ss";
         ss.Size = new Size(551, 22);
         ss.TabIndex = 26;
         //
         // tsslStatus
         //
         tsslStatus.Font = new Font("Segoe UI", 9F, ((FontStyle)((FontStyle.Bold | FontStyle.Italic))), GraphicsUnit.Point, ((byte)(0)));
         tsslStatus.ForeColor = Color.Blue;
         tsslStatus.Name = "tsslStatus";
         tsslStatus.Size = new Size(95, 17);
         tsslStatus.Text = "1) Choose desired module, then click 'Add'";
         //
         // MainForm
         //
         AutoScaleDimensions = new SizeF(6F, 13F);
         AutoScaleMode = AutoScaleMode.None;
         FormBorderStyle = FormBorderStyle.FixedSingle;
         ClientSize = new Size(354, 403);
         StartPosition = FormStartPosition.CenterScreen;
         Controls.Add(ms);
         Controls.Add(llWeb);
         Controls.Add(tvLaunch);
         Controls.Add(lWeb);
         Controls.Add(lLauncher);
         Controls.Add(bDelete);
         Controls.Add(bDown);
         Controls.Add(bUp);
         Controls.Add(bLaunch);
         Controls.Add(tcMain);
         Controls.Add(ss);
         Name = "MainForm";
         Text = "BetSoftware v0.1";
         Load += new EventHandler(MainForm_Load);
         FormClosing += new FormClosingEventHandler(MainForm_FormClosing);
         ms.ResumeLayout(false);
         ms.PerformLayout();
         tcMain.ResumeLayout(false);
         tpUtilities.ResumeLayout(false);
         tpInput.ResumeLayout(false);
         tpBS.ResumeLayout(false);
         tpMM.ResumeLayout(false);
         tpDisplay.ResumeLayout(false);
         tpOutput.ResumeLayout(false);
         ss.ResumeLayout(false);
         ss.PerformLayout();
         ResumeLayout(false);
         PerformLayout();

         // Set icon
         Icon = new Icon(Assembly.GetExecutingAssembly().GetManifestResourceStream("BetSoftware_Loader.atom_256_96_48_32_24_16.ico"));

         // File Size
         FileInfo xmlInfo = new FileInfo(xmlFile);

         // Check for XML file's existence and length
         if (File.Exists(xmlFile) && xmlInfo.Length > 0)
         {
            // Set XPath Document               
            XPathDocument document = new XPathDocument(xmlFile);

            // Create XPath Navigator
            XPathNavigator navigator = document.CreateNavigator();

            // Process Options
            foreach (XPathNavigator section in navigator.Select("/BetSoftware/Options"))
            {
               foreach (XPathNavigator node in section.SelectChildren(XPathNodeType.All))
               {
                  // Toggle options
                  foreach (ToolStripMenuItem tsmi in optionsToolStripMenuItem.DropDownItems)
                  {
                     // Set CheckState
                     if (tsmi.Name == node.Name + "ToolStripMenuItem")
                     {
                        // Load from file
                        tsmi.CheckState = (node.InnerXml == "Checked" ? CheckState.Checked : CheckState.Unchecked);
                     }
                  }
               }
            }
         }

         /*
         // Load game form
         GameForm gForm = new GameForm();

         // Make it visible
         gForm.ShowDialog();

         // Unload
         gForm.Dispose();

         // Load mode form
         ModeForm mForm = new ModeForm();

         // Make it visible
         mForm.ShowDialog();
         */

         //TODO Fix: Fake GameForm selection
         Data.Game = "roulette";

         //TODO Fix: separate in two functions 1) set directories 2) load modules;
         LoadModules(true);
      }



(continued below)
#558
Loader / BetSoftware Loader - 2014-05-05
May 05, 2014, 06:02:29 AM
[attachmini=1]

Relevant sources below.
#559
Quote from: wannawin on May 01, 2014, 04:54:56 PMIn a word document when you press the TAB key you get space to start writing.

You can emulate this by using the space key...


TIP: once you do your desired amount of spaces when beginning your first paragraph, copy/paste them in the subsequent ones. Spaces can be highlighted just like any regular text.




The tab key is commonly used in user interfaces to move focus from text, buttons (and other) fields without using the mouse.

Chances are a "hack" to address this tab2space issue gets implemented in future editors.
#560
Quote from: esoito on May 04, 2014, 11:17:34 PM
Hey, Victor. Didn't you realize the camera was on

[smiley]monkey/crazy-monkey-emoticon-026.gif[/smiley]

[smiley]monkey/crazy-monkey-emoticon-022.gif[/smiley]

NO! [smiley]blacy/blacy-big_smile.png[/smiley]
#562
While it's true a quickie fix or very simple feature can be knocked-off in minutes, coding can also become a painstakingly slow endeavor. The more complex the goal, the more time it demands.

If you don't see a feature being coded in your website or forum of choice at a fast-enough pace, remember programmers are people too. This is a word of support to the fellow programmers in the community, I send this "from the trenches" too.

"Code monkeys" :no: => People with family and lives :nod:

Vic
#563
[smiley]welcome/WELCOME.GIF[/smiley] to our community Anabelle.

You add to a very distinguished group of ladies around, both active as well as more reserved in their participation.

Have a happy stay [smiley]cxp/great.gif[/smiley]
#564
Awesome Les!


Thanks for letting us know  :thumbsup:
#565
Ideally some sort of "limited/lite version" version or free trial is in place to allow the product itself to attract more users.


An online store with a free collection of downloadable works can do wonders to attract users. Then those users can be offered paid products matching the audience.


(Good ol' marketing of course should work too, even using a steady share of the profit for further perpetuating the virtuous circle actively funded by means of itself)


Plenty of possible fine-tunings for this vFunding business idea!
#566
If you create a paid digital product for one-shot payments (as opposed to monthly subscription services), you can use vFunding to attract users with an unique offer to differentiate from the competition using the regular model.

It can be applied to any one-time delivery product yet since I'm a programmer it is easier for me to explain the concept with coding.

vFunding goes like this:

1) The user contacts the digital creator (programmer) exposing his idea.

2) The programmer sets a price to code it.

3) On completion, the programmer posts finished program to his online store.

4) The user gets his copy of the program + 50% profit-sharing on all sales at the online store.

Benefits:

- The user gets the program he paid for.

- The programmer gets paid for the coding hours.

- Both the programmer and the user benefit from lifetime residual income thanks to the unlimited sales possible for digital products once created.





Extra advantages:

An user who truly believes in the program he wants can show more willingness to support its creation. Especially if he's confident it solves actual problems to deliver solutions to other willing users.

The programmer gets an increasing passive income source the more he uses vFunding with a larger pool of users.

The user can re-use funds from previous profit-sharing revenue to re-invest in new programs, creating a virtuous circle both for him and the programmer.




Note:

Step #3 can also be divided as a group, with proportional % split according to the funding provided by each person; with a fixed percentage agreed for the programmer.




When given the choice to buy from a regular seller without any further benefit after the download versus a seller applying vFunding who offers money-back or even a profit-making opportunity for the same dollars, which one do you think users will choose? [smiley]cxp/glasses.gif[/smiley]




If you are a payware maker, you might want to motivate your users to choose you by becoming part of a profit-sharing endeavor with the product they believe in and are willing to fund.

Vic
#567
Very wise words dear Sumit  :nod:




Guys, don't worry about server move. We should have it covered gracefully.




On my side I'm glad things are flowing towards mutual harmony with good will validating we're all showing maturity for moving this to the past where it belongs so we can build a brighter future in respect of each other.

Let's coexist in peace,
Vic
#568
Proofreader wiped his board (hence it was removed).

Plenty of success to him in his current and future endeavors [smiley]yahoo/goodluck.gif[/smiley]
#569
General Discussion / Re: Moving forward
April 22, 2014, 10:38:04 PM
No big conspiracy theory here

There's no big conspiracy theory in what I'm going to mention. Just something that happened: We were going to do a profit-sharing venture but I got laid-off in the interim and couldn't afford to do it anymore. It doesn't mean I'm an enemy, or that I suddenly turned into a creature which came out of a horror novel :o . It simply means at this time I can't afford to work 100% to earn 75%. These are sensible times for me and my family, which I'm entirely certain we'll surpass. I have not a single atom of doubt the best is yet to come for us, and by extension to all of those who choose to accompany us under our BetSelection roof (and associated sites in time).




Even when it's my personal life aspect and I would have liked to have retained privacy in what was disclosed publicly about my family and life (plus in general with all chat logs; as mostly everybody would, in all my 1-on-1 chats I did with Stef, I chatted and PM'd with him having full expectation of privacy for the messages), now it's out there and I can safely say it isn't shameful to be laid-off. So I take no offense, it can happen to anyone.




Finally: Yes, some things just happen; they aren't pre-meditated nor backed by a big conspiracy. They just happen, and we have to do our best with what we have at hand to overcome them. That's the quid of the moving forward philosophy. The alternative to "moving forward" being "stay the same and cry forever", but it never solved anything. No matter how hard you fell, your best move is to stand up and get yourself back on track.

Vic
#570
General Discussion / Re: Moving forward
April 22, 2014, 10:26:44 PM
The always-extended helping hand

There was an "@Stef" thread published by me in Betforum. In it there was some code and my offer of a helping hand in what I could assist with IT-wise.

I found out the thread was removed, yet the underlying spirit for burying any hatchet stays past it.

MY HELPING HAND REMAINS EXTENDED.

I don't know everything, but I'm willing to assist with what I know if it's for the benefit of the community.