static void Test5() { UIRoot root = new UIRoot(); Assembly xnaPlugin = Assembly.Load("RC.UI.XnaPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); root.LoadPlugins(xnaPlugin); root.InstallPlugins(); UISprite source = root.GraphicsPlatform.SpriteManager.LoadSprite(".\\sprite_tests\\orig_source.png"); source.TransparentColor = new RCColor(255, 0, 0); UISprite med = root.GraphicsPlatform.SpriteManager.LoadSprite(".\\sprite_tests\\orig_med.png", new RCIntVector(1, 2)); med.TransparentColor = new RCColor(0, 255, 255); UISprite final = root.GraphicsPlatform.SpriteManager.LoadSprite(".\\sprite_tests\\orig_final.png", new RCIntVector(2, 1)); IUIRenderContext ctx = root.GraphicsPlatform.SpriteManager.CreateRenderContext(med); ctx.RenderSprite(source, new RCIntVector(0, 0), new RCIntRectangle(3, 2, 5, 6)); root.GraphicsPlatform.SpriteManager.CloseRenderContext(med); ctx = root.GraphicsPlatform.SpriteManager.CreateRenderContext(final); ctx.RenderSprite(med, new RCIntVector(1, 2)); root.GraphicsPlatform.SpriteManager.CloseRenderContext(final); med.TransparentColor = RCColor.Undefined; med.Save(".\\sprite_tests\\med.png"); final.Save(".\\sprite_tests\\final.png"); root.GraphicsPlatform.RenderLoop.Start(new RCIntVector(320, 200)); root.Dispose(); }
static void Main(string[] args) { /// Initialize the UI-core and install the XNA-plugin (TODO: make it configurable) UIRoot root = new UIRoot(); Assembly xnaPlugin = Assembly.Load("RC.UI.XnaPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); root.LoadPlugins(xnaPlugin); root.InstallPlugins(); /// Create the UIWorkspace and set the mouse pointer UIWorkspace workspace = new UIWorkspace(new RCIntVector(1024, 768), new RCIntVector(1024, 768)); UISprite mouseIcon = root.GraphicsPlatform.SpriteManager.LoadSprite("..\\..\\..\\..\\sprites\\pointers\\normal_pointer.png"); mouseIcon.TransparentColor = new RCColor(255, 0, 255); mouseIcon.Upload(); UIPointer pointer = new UIPointer(mouseIcon, new RCIntVector(0, 0)); UIWorkspace.Instance.SetDefaultMousePointer(pointer); /// Create and activate the test page RCMotionControlTestPage motionControlTestPage = new RCMotionControlTestPage(); UIWorkspace.Instance.RegisterPage(motionControlTestPage); motionControlTestPage.Activate(); /// Start and run the render loop root.GraphicsPlatform.RenderLoop.Start(workspace.DisplaySize); /// After the render loop has been stopped, release all resources of the UIRoot. root.GraphicsPlatform.SpriteManager.DestroySprite(mouseIcon); root.Dispose(); }
public static void Test() { ConfigurationManager.Initialize("../../../../config/RC.UI.Test/RC.UI.Test.root"); UIRoot root = new UIRoot(); Assembly xnaPlugin = Assembly.Load("RC.UI.XnaPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); root.LoadPlugins(xnaPlugin); root.InstallPlugins(); display = new TestUIObject(new RCIntVector(1, 1), new RCIntVector(0, 0), new RCIntRectangle(0, 0, 800, 600)); workspace = new TestUIObject(new RCIntVector(2, 2), new RCIntVector(80, 100), new RCIntRectangle(0, 0, 320, 200)); display.Attach(workspace); workspace.LoadSprite(".\\testui_sprites\\workspace.png"); workspace.Sprite.TransparentColor = new RCColor(255, 0, 255); workspace.ActivateStringRender(); //root.SystemEventQueue.Subscribe<UIKeyboardEventArgs>(OnKeyboardEvent); //root.SystemEventQueue.Subscribe<UIMouseEventArgs>(OnMouseEvent); UISprite mouseIcon = root.GraphicsPlatform.SpriteManager.LoadSprite(".\\testui_sprites\\pointer.png"); mouseIcon.TransparentColor = new RCColor(255, 0, 255); mouseIcon.Upload(); //UIMouseManager mouseMgr = new UIMouseManager(workspace); //mouseMgr.Pointer = new UIBasicPointer(mouseIcon, new RCIntVector(4, 4)); root.GraphicsPlatform.RenderManager.Attach(display); root.GraphicsPlatform.RenderLoop.Start(new RCIntVector(800, 600)); root.Dispose(); }
public static void Test() { UIRoot root = new UIRoot(); Assembly xnaPlugin = Assembly.Load("RC.UI.XnaPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); root.LoadPlugins(xnaPlugin); root.InstallPlugins(); obj0 = new TestUIObject(new RCIntVector(10, 10), new RCIntVector(0, 0), new RCIntRectangle(0, 0, 70, 70)); obj1 = new TestUIObject(new RCIntVector(1, 1), new RCIntVector(0, 0), new RCIntRectangle(10, 10, 50, 50)); //obj2 = new TestUIObject(new RCIntVector(1, 2), new RCIntVector(6, 7), new RCIntRectangle(0, 0, 20, 20)); obj0.Attach(obj1); //obj1.Attach(obj2); obj0.LoadSprite(".\\test_scene_sprites\\obj0.png"); obj1.LoadSprite(".\\test_scene_sprites\\background.png"); //obj2.LoadSprite(".\\test_scene_sprites\\obj2.png"); root.KeyboardAccess.StateChanged += OnKeyboardEvent; root.MouseAccess.StateChanged += OnMouseEvent; UISprite mouseIcon = root.GraphicsPlatform.SpriteManager.LoadSprite(".\\test_scene_sprites\\pointer.png"); mouseIcon.TransparentColor = new RCColor(255, 0, 255); //UIMouseManager mouseMgr = new UIMouseManager(obj1); //mouseMgr.Pointer = new UIBasicPointer(mouseIcon, new RCIntVector(4, 4)); root.GraphicsPlatform.RenderManager.Attach(obj0); root.GraphicsPlatform.RenderLoop.Start(new RCIntVector(800, 600)); root.Dispose(); }
static void Test4() { UIRoot root = new UIRoot(); Assembly xnaPlugin = Assembly.Load("RC.UI.XnaPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); root.LoadPlugins(xnaPlugin); root.InstallPlugins(); MyUIObject2 obj = new MyUIObject2(); root.GraphicsPlatform.RenderManager.Attach(obj); root.GraphicsPlatform.RenderLoop.Start(new RCIntVector(320, 200)); root.Dispose(); }
public static void Test() { ConfigurationManager.Initialize("../../../../config/RC.UI.Test/RC.UI.Test.root"); UIRoot root = new UIRoot(); Assembly xnaPlugin = Assembly.Load("RC.UI.XnaPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); root.LoadPlugins(xnaPlugin); root.InstallPlugins(); UIWorkspace workspace = new UIWorkspace(new RCIntVector(740, 500), new RCIntVector(320, 200)); pageA = new UIPage(); pageB = new UIPage(); panelAA = new MyPanel(new RCIntRectangle(5, 5, 100, 90), new RCIntRectangle(5, 5, 90, 80), UIPanel.ShowMode.DriftFromTop, UIPanel.HideMode.DriftToLeft); panelAB = new MyPanel(new RCIntRectangle(5, 100, 100, 90), new RCIntRectangle(5, 5, 90, 80), UIPanel.ShowMode.DriftFromBottom, UIPanel.HideMode.DriftToLeft); panelAC = new MyPanel(new RCIntRectangle(110, 5, 200, 90), new RCIntRectangle(5, 5, 190, 80), UIPanel.ShowMode.DriftFromTop, UIPanel.HideMode.DriftToRight); panelAD = new MyPanel(new RCIntRectangle(110, 100, 200, 90), new RCIntRectangle(5, 5, 190, 80), UIPanel.ShowMode.DriftFromBottom, UIPanel.HideMode.DriftToRight); panelBA = new MyPanel(new RCIntRectangle(5, 5, 100, 90), new RCIntRectangle(5, 5, 90, 80), UIPanel.ShowMode.DriftFromLeft, UIPanel.HideMode.DriftToTop); panelBB = new MyPanel(new RCIntRectangle(5, 100, 100, 90), new RCIntRectangle(5, 5, 90, 80), UIPanel.ShowMode.DriftFromLeft, UIPanel.HideMode.DriftToBottom); panelBC = new MyPanel(new RCIntRectangle(110, 5, 200, 90), new RCIntRectangle(5, 5, 190, 80), UIPanel.ShowMode.DriftFromRight, UIPanel.HideMode.DriftToTop); panelBD = new MyPanel(new RCIntRectangle(110, 100, 200, 90), new RCIntRectangle(5, 5, 190, 80), UIPanel.ShowMode.DriftFromRight, UIPanel.HideMode.DriftToBottom); workspace.RegisterPage(pageA); workspace.RegisterPage(pageB); pageA.RegisterPanel(panelAA); pageA.RegisterPanel(panelAB); pageA.RegisterPanel(panelAC); pageA.RegisterPanel(panelAD); pageB.RegisterPanel(panelBA); pageB.RegisterPanel(panelBB); pageB.RegisterPanel(panelBC); pageB.RegisterPanel(panelBD); pageB.Activate(); panelBA.Show(); panelBB.Show(); panelBC.Show(); panelBD.Show(); pageA.StatusChanged += OnPageStatusChanged; pageB.StatusChanged += OnPageStatusChanged; pageB.Deactivate(); root.GraphicsPlatform.RenderLoop.Start(workspace.DisplaySize); root.Dispose(); }
/// <summary> /// This is the starting point of the RC application. Command line switches for RC.exe: /// /cfg filename --> Name of the root configuration file to initialize with (RC.root by default). /// /c --> Run RC.exe with console window (console is hidden by default). You can also toggle the console /// window by pressing the CTRL + ALT + SHIFT + C combination during runtime. /// </summary> static void Main(string[] args) { try { /// Read and execute the command line switches ConsoleHelper.HideConsole(); CmdLineSwitch.ParseCommandLine(args); CmdLineSwitch.ExecuteSwitches(); /// Initialize the configuration sub-system if (!ConfigurationManager.IsInitialized) { ConfigurationManager.Initialize(RCAppSetup.Mode == RCAppMode.Normal ? "RC.App.root" : "RC.MapEditor.root"); } /// Start the components of the system StartComponents(); /// Initialize the UI-core and install the XNA-plugin (TODO: make it configurable) UIRoot root = new UIRoot(RCAppSetup.ScreenIndex); Assembly xnaPlugin = Assembly.Load("RC.UI.XnaPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); root.LoadPlugins(xnaPlugin); root.InstallPlugins(); /// Create the UIWorkspace (TODO: make it configurable) UIWorkspace workspace = new UIWorkspace(new RCIntVector(1024, 768), RCAppSetup.Mode == RCAppMode.Normal ? new RCIntVector(320, 200) : new RCIntVector(1024, 768)); if (RCAppSetup.Mode == RCAppMode.Normal) { TraceManager.WriteAllTrace("NORMAL STARTUP...", TraceManager.GetTraceFilterID("RC.App.Info")); /// Load the common resource group (TODO: make it configurable?) UIResourceManager.LoadResourceGroup("RC.App.SplashScreen"); /// Initialize the pages of the RC application. root.GraphicsPlatform.RenderLoop.FrameUpdate += InitPages; /// Start and run the render loop root.GraphicsPlatform.RenderLoop.Start(workspace.DisplaySize); } else { ConsoleHelper.ShowConsole(); TraceManager.WriteAllTrace("STARTING MAP EDITOR...", TraceManager.GetTraceFilterID("RC.MapEditor.Info")); /// Read the parameters from the command line if (RCAppSetup.Mode == RCAppMode.NewMap) { Console.Write("Name of the new map file: "); RCAppSetup.MapFile = Console.ReadLine(); if (File.Exists(RCAppSetup.MapFile)) { throw new IOException(string.Format("The file '{0}' already exists!", RCAppSetup.MapFile)); } Console.Write("Name of the new map: "); RCAppSetup.MapName = Console.ReadLine(); Console.Write("Name of the tileset of the new map: "); RCAppSetup.TilesetName = Console.ReadLine(); Console.Write("Name of the default terrain of the new map: "); RCAppSetup.DefaultTerrain = Console.ReadLine(); Console.Write("Size of the new map: "); RCAppSetup.MapSize = XmlHelper.LoadIntVector(Console.ReadLine()); } else if (RCAppSetup.Mode == RCAppMode.LoadMap) { Console.Write("Name of the map file to load: "); RCAppSetup.MapFile = Console.ReadLine(); } TraceManager.WriteAllTrace(RCAppSetup.ToString(), TraceManager.GetTraceFilterID("RC.MapEditor.Info")); /// Load the resources for the map editor. UIResourceManager.LoadResourceGroup("RC.MapEditor.Resources"); /// Set the default mouse pointer. workspace.SetDefaultMousePointer(UIResourceManager.GetResource <UIPointer>("RC.App.Pointers.NormalPointer")); /// Initialize the page of the map editor. root.GraphicsPlatform.RenderLoop.FrameUpdate += InitMapEditorPage; /// Start and run the render loop root.GraphicsPlatform.RenderLoop.Start(workspace.DisplaySize); } /// After the render loop has been stopped, release all resources of the UIRoot. root.Dispose(); ComponentManager.StopComponents(); ComponentManager.UnregisterComponentsAndPlugins(); /// End of RC application if (ConsoleHelper.IsConsoleHidden) { Console.Clear(); ConsoleHelper.ShowConsole(); } } catch (Exception ex) { /// Catch any exception from the UI-thread, write it to the console and show a "sorry" message-box Exception currException = ex; Console.WriteLine(currException.ToString()); while (currException.InnerException != null) { currException = currException.InnerException; Console.WriteLine(currException.ToString()); } MessageBox.Show("An internal error happened and the application will be closed.\nSee the contents of installed traces for more information!", "Sorry"); } }
public static void Test() { ConfigurationManager.Initialize("../../../../config/RC.UI.Test/RC.UI.Test.root"); UIRoot root = new UIRoot(); Assembly xnaPlugin = Assembly.Load("RC.UI.XnaPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); root.LoadPlugins(xnaPlugin); root.InstallPlugins(); DynamicString.RegisterResolver("RC.UI.UIWorkspace.PixelScaling", delegate() { return("2;2"); }); UIResourceManager.LoadResourceGroup("RC.App.SplashScreen"); UIResourceManager.LoadResourceGroup("RC.App.CommonResources"); UISprite mouseIcon = root.GraphicsPlatform.SpriteManager.LoadSprite("..\\..\\..\\..\\sprites\\pointers\\normal_pointer.png", new RCIntVector(2, 2)); mouseIcon.TransparentColor = new RCColor(255, 0, 255); mouseIcon.Upload(); UIPointer pointer = new UIPointer(mouseIcon, new RCIntVector(0, 0)); display = new TestUIObject(new RCIntVector(2, 2), new RCIntVector(0, 0), new RCIntRectangle(0, 0, 400, 300)); workspace = new MySensitiveAnimObject(new RCIntVector(40, 50), new RCIntRectangle(0, 0, 320, 200), "Workspace", RCColor.Gray, RCColor.Gray); display.Attach(workspace); MyButton button = new MyButton(new RCIntVector(5, 12), new RCIntVector(60, 20), RCColor.Brown, RCColor.Yellow, RCColor.White, "MyButton"); //button.MouseSensor.Enter += delegate(UISensitiveObject sender) { Console.WriteLine("BUTTON ENTER"); }; //button.MouseSensor.Move += delegate(UISensitiveObject sender, UIMouseEventArgs args) { Console.WriteLine("BUTTON MOVE"); }; //button.MouseSensor.Leave += delegate(UISensitiveObject sender) { Console.WriteLine("BUTTON LEAVE"); }; MyCheckbox checkbox = new MyCheckbox(new RCIntVector(70, 12), new RCIntVector(80, 20), RCColor.Red, RCColor.Green, RCColor.LightRed, RCColor.LightGreen, RCColor.White, "MyCheckbox"); MyDropdownSelector selector = new MyDropdownSelector(new RCIntVector(5, 50), new RCIntVector(60, 20), new string[4] { "option0", "option1", "option2", "option3" }, RCColor.WhiteHigh, RCColor.Red, RCColor.Green, RCColor.LightGreen, RCColor.LightBlue, RCColor.Gray); //selector.MouseSensor.Enter += delegate(UISensitiveObject sender) { Console.WriteLine("SELECTOR ENTER"); }; //selector.MouseSensor.Move += delegate(UISensitiveObject sender, UIMouseEventArgs args) { Console.WriteLine("SELECTOR MOVE"); }; //selector.MouseSensor.Leave += delegate(UISensitiveObject sender) { Console.WriteLine("SELECTOR LEAVE"); }; MySlider sliderHorz = new MySlider(new RCIntVector(5, 80), new RCIntVector(80, 10), new UISlider.Settings() { Alignment = UISlider.Alignment.Horizontal, IntervalLength = 10, SliderBottom = 3, SliderLeft = 1, SliderRight = 1, SliderTop = 3, TimeBetweenTrackings = 300, TrackingValueChange = 3, TrackPos = new RCIntVector(10, 5), TrackSize = new RCIntVector(60, 1) }, RCColor.Green, RCColor.LightGreen, RCColor.White); MySlider sliderVert = new MySlider(new RCIntVector(5, 100), new RCIntVector(10, 80), new UISlider.Settings() { Alignment = UISlider.Alignment.Vertical, IntervalLength = 10, SliderBottom = 1, SliderLeft = 3, SliderRight = 3, SliderTop = 1, TimeBetweenTrackings = 300, TrackingValueChange = 3, TrackPos = new RCIntVector(5, 10), TrackSize = new RCIntVector(60, 1) }, RCColor.Green, RCColor.LightGreen, RCColor.White); workspace.Attach(button); workspace.Attach(checkbox); workspace.Attach(selector); workspace.Attach(sliderHorz); workspace.Attach(sliderVert); workspace.AttachSensitive(button); workspace.AttachSensitive(checkbox); workspace.AttachSensitive(selector); workspace.AttachSensitive(sliderHorz); workspace.AttachSensitive(sliderVert); button.Pressed += delegate(UISensitiveObject sender) { TraceManager.WriteAllTrace("BUTTON PRESSED", TraceManager.GetTraceFilterID("RC.UI.Test.Info")); checkbox.IsEnabled = !checkbox.IsEnabled; }; checkbox.CheckedStateChanged += delegate(UISensitiveObject sender) { TraceManager.WriteAllTrace("CHECKBOX STATE CHANGED", TraceManager.GetTraceFilterID("RC.UI.Test.Info")); button.IsEnabled = checkbox.IsChecked; }; selector.SelectedIndexChanged += delegate(UISensitiveObject sender) { TraceManager.WriteAllTrace("SELECTED INDEX CHANGED", TraceManager.GetTraceFilterID("RC.UI.Test.Info")); }; sliderHorz.SelectedValueChanged += delegate(UISensitiveObject sender) { TraceManager.WriteAllTrace(string.Format("SELECTED VALUE CHANGED (horizontal): {0}", sliderHorz.SelectedValue), TraceManager.GetTraceFilterID("RC.UI.Test.Info")); }; sliderVert.SelectedValueChanged += delegate(UISensitiveObject sender) { TraceManager.WriteAllTrace(string.Format("SELECTED VALUE CHANGED (vertical): {0}", sliderVert.SelectedValue), TraceManager.GetTraceFilterID("RC.UI.Test.Info")); }; UIMouseManager mouseMgr = new UIMouseManager(workspace); mouseMgr.SetDefaultMousePointer(pointer); root.GraphicsPlatform.RenderManager.Attach(display); root.GraphicsPlatform.RenderLoop.Start(new RCIntVector(800, 600)); root.Dispose(); }
public static void Test() { ConfigurationManager.Initialize("../../../../config/RC.UI.Test/RC.UI.Test.root"); UIRoot root = new UIRoot(); Assembly xnaPlugin = Assembly.Load("RC.UI.XnaPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); root.LoadPlugins(xnaPlugin); root.InstallPlugins(); UISprite mouseIcon = root.GraphicsPlatform.SpriteManager.LoadSprite("..\\..\\..\\..\\sprites\\pointers\\normal_pointer.png", new RCIntVector(2, 2)); mouseIcon.TransparentColor = new RCColor(255, 0, 255); mouseIcon.Upload(); UIPointer pointer = new UIPointer(mouseIcon, new RCIntVector(0, 0)); DynamicString.RegisterResolver("RC.UI.UIWorkspace.PixelScaling", delegate() { return("2;2"); }); UIResourceManager.LoadResourceGroup("RC.App.SplashScreen"); UIResourceManager.LoadResourceGroup("RC.App.CommonResources"); display = new TestUIObject(new RCIntVector(2, 2), new RCIntVector(0, 0), new RCIntRectangle(0, 0, 400, 300)); workspace = new MySensitiveObject(new RCIntVector(40, 50), new RCIntRectangle(0, 0, 320, 200), "Workspace", RCColor.Gray, RCColor.Gray); display.Attach(workspace); MySensitiveObject objA = new MySensitiveObject(new RCIntVector(5, 12), new RCIntRectangle(0, 0, 130, 90), "A", RCColor.Blue, RCColor.LightBlue); MySensitiveObject objB = new MySensitiveObject(new RCIntVector(5, 107), new RCIntRectangle(0, 0, 130, 90), "B", RCColor.Blue, RCColor.LightBlue); MyDraggableObject objC = new MyDraggableObject(new RCIntVector(140, 12), new RCIntRectangle(0, 0, 130, 180), "C", RCColor.Cyan, RCColor.LightCyan); workspace.Attach(objA); workspace.Attach(objB); workspace.Attach(objC); workspace.AttachSensitive(objA); workspace.AttachSensitive(objB); workspace.AttachSensitive(objC); MySensitiveObject objAA = new MySensitiveObject(new RCIntVector(5, 12), new RCIntRectangle(0, 0, 120, 30), "AA", RCColor.Green, RCColor.LightGreen); MySensitiveObject objAB = new MySensitiveObject(new RCIntVector(5, 47), new RCIntRectangle(0, 0, 120, 30), "AB", RCColor.Green, RCColor.LightGreen); MySensitiveObject objBA = new MySensitiveObject(new RCIntVector(5, 12), new RCIntRectangle(0, 0, 120, 30), "BA", RCColor.Green, RCColor.LightGreen); MySensitiveObject objBB = new MySensitiveObject(new RCIntVector(5, 47), new RCIntRectangle(0, 0, 120, 30), "BB", RCColor.Green, RCColor.LightGreen); MyDraggableObject objCA = new MyDraggableObject(new RCIntVector(5, 12), new RCIntRectangle(0, 0, 120, 30), "CA", RCColor.Magenta, RCColor.LightMagenta); MyDraggableObject objCB = new MyDraggableObject(new RCIntVector(5, 47), new RCIntRectangle(0, 0, 120, 30), "CB", RCColor.Gray, RCColor.White); objA.Attach(objAA); objA.Attach(objAB); objB.Attach(objBA); objB.Attach(objBB); objC.Attach(objCA); objC.Attach(objCB); objA.AttachSensitive(objAA); objA.AttachSensitive(objAB); objB.AttachSensitive(objBA); objB.AttachSensitive(objBB); objC.AttachSensitive(objCA); objC.AttachSensitive(objCB); //root.SystemEventQueue.Subscribe<UIKeyboardEventArgs>(OnKeyboardEvent); //root.SystemEventQueue.Subscribe<UIMouseEventArgs>(OnMouseEvent); UIMouseManager mouseMgr = new UIMouseManager(workspace); mouseMgr.SetDefaultMousePointer(pointer); root.GraphicsPlatform.RenderManager.Attach(display); root.GraphicsPlatform.RenderLoop.Start(new RCIntVector(800, 600)); root.Dispose(); }