//code section
///Static Debug Window reflection
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
namespace IndiLogiX
{
public static class _Debug
{
static int indx; //Line numbers
static Form fdebug = new Form();
static RichTextBox rtext = new RichTextBox();
static Font fn = new Font("Lucida Console", 10);
// PROPS
public struct ConFig
{
private static Color backColor = Color.Black;
private static Color foreColor = Color.LightBlue;
//private static Boolean MultiLine = true;
private static DockStyle docking = DockStyle.Fill;
private static Boolean read_only = true;
private static Boolean enabled = false;
private static Boolean bullet = true;
private static int indent = 8;
private static Boolean detectURL = true;
private static float opacity = 0.85F;
private static Boolean showInTaskbar = true;
private static Boolean topMost = true;
private static Boolean details = true;
public static Color BackColor
{ get { return backColor; } set { backColor = value; } }
public static Color ForeColor
{ get { return foreColor; } set { foreColor = value; } }
public static Boolean Readonly
{ get { return read_only; } set { read_only = value; } }
public static Boolean Enabled
{ get { return enabled; } set { enabled = value; } }
public static Boolean Bullet
{ get { return bullet; } set { bullet = value; } }
public static int Indent
{ get { return indent; } set { indent = value; } }
public static Boolean DetectURL
{ get { return detectURL; } set { detectURL = value; } }
public static float Opacity
{ get { return opacity; } set { opacity = value; } }
public static Boolean ShowInTaskbar
{ get { return showInTaskbar; } set { showInTaskbar = value; } }
//public static
//{ get { return detectURL; } set { detectURL = value; } }
public static Boolean TopMostWindow
{get { return topMost; } set { topMost = value; }}
static public bool Details
{get { return details; } set { details = value; }}
static public DockStyle Docking
{ get { return docking; } set { docking = value; } }
}
//}
//static public bool details;
// static string rheader = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
//{\colortbl ;\red255\green255\blue255;\red255\green0\blue0;\red0\green255\blue0;\red0\green0\blue255;\red0\green255\blue255;\red255\green0\blue255;\red255\green100\blue0;}
//{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20";
public static void BUG(Exception e)
{
MessageBox.Show(e.Message + "\nSOURCE: [" + e.Source + "]\nTARGET: " + e.TargetSite + "\nSTACKTRACE: " + e.StackTrace + "\nDATA: [ " + e.Data +" ]", "XXX ERROR XXX", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
public static void Create()
{
//frtb.Top = 11;
//frtb.Left = 1;
//frtb.Width = 200;
//frtb.Height = 200;
rtext.BackColor = Color.White;
rtext.ForeColor = Color.Black;
rtext.Multiline = true;
rtext.ScrollBars = RichTextBoxScrollBars.Both;
rtext.BorderStyle = BorderStyle.None;
rtext.Parent = fdebug;
rtext.Dock = DockStyle.Fill;
rtext.Font = fn;
rtext.ReadOnly = true;
rtext.Cursor = Cursors.Arrow;
//frtb.Enabled = false;
//rtext.SelectionBullet = true;
//rtext.SelectionIndent = 8;
rtext.DetectUrls = true;
rtext.Name = "frtb";
//rtext.Text = "Debug Output";
// rtext.Rtf = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
//{\colortbl ;\red255\green255\blue255;\red255\green0\blue0;\red0\green255\blue0;\red0\green0\blue255;\red0\green255\blue255;\red255\green0\blue255;\red255\green100\blue0;}
//{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 black\par
//
//";
fdebug.Controls.Add(rtext);
fdebug.BackColor = Color.Black;
fdebug.Opacity = 0.85;
fdebug.Text = ":: DEBUG ::";
fdebug.ShowInTaskbar = true;
fdebug.StartPosition = FormStartPosition.CenterScreen;
fdebug.WindowState = FormWindowState.Normal;
fdebug.Width = 500;
fdebug.TopMost = ConFig.TopMostWindow;
fdebug.Show();
}
public static void Print(Object data)
{
Create();
string tag = "\n" + indx.ToString() + " > #"+ data + " ##"+ data.ToString() +"##: \n";
//rtext.AppendText(tag + data);
indx++;
tag += "[ " + data.GetType().Name.ToString() + "] ";
tag += "{Namespace: " + data.GetType().Namespace + "}";
tag += "[SystemType: " + data.GetType().UnderlyingSystemType.ToString() + "]";
if (data.GetType().IsClass)
tag += "{Class}";
if (data.GetType().IsAbstract)
tag += "(Abstract)";
if (data.GetType().IsAnsiClass)
tag += "(AnsiClass)";
if (data.GetType().IsPublic)
tag += "(Public)";
if (data.GetType().IsSealed)
tag += "(Sealed)";
if (data.GetType().IsAutoClass)
tag += "(AutoClass)";
if (data.GetType().IsInterface)
tag += "(Interface)";
if (data.GetType().IsPointer)
tag += "(Pointer)";
if (data.GetType().IsArray)
tag += "(Array)";
if (data.GetType().IsEnum)
tag += "(Enum)";
if (data.GetType().IsAutoLayout)
tag += "(AutoLayout)";
if (data.GetType().IsByRef)
tag += "(ByRef)";
if (data.GetType().IsNotPublic)
tag += "(NotPublic)";
//rtext.SelectionBullet = true;
if (ConFig.Details==true)
{
tag += "\n[RuntimeTypeHandle: " + data.GetType().TypeHandle.Value.ToString() + "]\n";
if (data.GetType().IsCOMObject)
tag += "(COMobject)";
if (data.GetType().IsContextful)
tag += "(Contextful)";
if (data.GetType().IsExplicitLayout)
tag += "(ExplicitLayout)";
if (data.GetType().IsGenericParameter)
tag += "(Genericparameter)";
if (data.GetType().IsGenericType)
tag += "(GenericType)";
if (data.GetType().IsGenericTypeDefinition)
tag += "(GenericTypeDefination)";
if (data.GetType().IsImport)
tag += "(Import)";
if (data.GetType().IsLayoutSequential)
tag += "(LayoutSequential)";
if (data.GetType().IsMarshalByRef)
tag += "(MarshalByRef)";
if (data.GetType().IsNested)
tag += "(Nested)";
if (data.GetType().IsNestedAssembly)
tag += "(NestedAssembly)";
if (data.GetType().IsNestedFamANDAssem)
tag += "(NestedFamANDAssem)";
if (data.GetType().IsNestedFamily)
tag += "(NestedFamily)";
if (data.GetType().IsNestedFamORAssem)
tag += "(NestedFamORAssem)";
if (data.GetType().IsNestedPrivate)
tag += "(NestedPrivate)";
if (data.GetType().IsNestedPublic)
tag += "(NestedPublic)";
if (data.GetType().IsPrimitive)
tag += "(Primitive)";
if (data.GetType().IsSerializable)
tag += "(Serializable)";
if (data.GetType().IsSpecialName)
tag += "(SpecialName)";
if (data.GetType().IsUnicodeClass)
tag += "(UnicodeClass)";
if (data.GetType().IsValueType)
tag += "(ValueType)";
if (data.GetType().IsVisible)
tag += "(Visible)";
//if (data.GetType().MemberType)
tag += "\n(MemberType: " + data.GetType().MemberType.ToString() + ")";
//if (data.GetType().MetadataToken)
tag += "(MetadataToken: " + data.GetType().MetadataToken.ToString() + ")";
//if (data.GetType().Module)
tag += "\n[Module:" + data.GetType().Module.ToString() + ")";
//if (data.GetType().ReflectedType)
tag += "\n[Module.FullyQualifiedName: " + data.GetType().Module.FullyQualifiedName.ToString() + "]";
tag += "\n [MDStreamVersion: " + data.GetType().Module.MDStreamVersion.ToString() + "]";
tag += "\n [MetadaataToken: " + data.GetType().Module.MetadataToken.ToString() + "]";
tag += "\n [ModuleHandle: " + data.GetType().Module.ModuleHandle.ToString() + "]";
tag += "\n [ModuleVersionID: " + data.GetType().Module.ModuleVersionId.ToString() + "]";
tag += "\n [Name: " + data.GetType().Module.Name.ToString() + "]";
tag += "\n [ScopeName: " + data.GetType().Module.ScopeName.ToString() + "]\n";
}
rtext.AppendText(""+tag);
}
}
}