public Color GetColor(string key) { object obj = this[key]; string color_string = obj as string; if (null != color_string) { return(ColorTools.HEXToColor(color_string)); } ColorWrapper color_wrapper = obj as ColorWrapper; if (null != color_wrapper) { Logging.Info("Doing a legacy Color upgrade for key " + key); SetColor(key, color_wrapper.Color); return(color_wrapper.Color); } // Not a good place to be, but we will try our best :-) // This means that we somehow didnt write a correct color to the streamm... JContainer color_json = obj as JContainer; if (null != color_json) { ColorWrapper cw = JsonConvert.DeserializeObject <ColorWrapper>(color_json.ToString()); return(cw.Color); } // If we get here there is no color! return(Colors.Transparent); }
public override void ProcessInput( Event ev ) { base.ProcessInput( ev ); if ( usePicker ) { Color col = parentLight.CompGlower.Props.glowColor.ToColor; // set alpha to 1 (lights use alpha zero, but that won't show in the picker) ColorWrapper _color = new ColorWrapper( new Color( col.r, col.g, col.b ) ); Find.WindowStack.Add( new Dialog_ColorPicker( _color, delegate { parentLight.ChangeColor( _color.Color ); }, ev.button == 1, true ) ); } else { if( ev.button == 0 ) { parentLight.IncrementColorIndex(); } else if( ev.button == 1 ) { parentLight.DecrementColorIndex(); } } }
static public object Parse(string value, Type type) { if (type == typeof(System.Drawing.SizeF)) { return(Parse(new System.Drawing.SizeF(0, 0), value)); } if (type == typeof(System.Drawing.PointF)) { return(Parse(new System.Drawing.PointF(0, 0), value)); } if (type == typeof(System.Drawing.Color)) { value = value.Replace("Color ", ""); value = value.Trim(new char[] { '[', ']' }); System.Drawing.Color c = System.Drawing.Color.FromName(value); if (c.IsKnownColor) { return(c); } ColorWrapper color = new ColorWrapper(); Parse(color, value); return(color.Color); } return(null); }
public override void ProcessInput(Event ev) { base.ProcessInput(ev); if (usePicker) { Color col = parentLight.CompGlower.Props.glowColor.ToColor; // set alpha to 1 (lights use alpha zero, but that won't show in the picker) ColorWrapper _color = new ColorWrapper(new Color(col.r, col.g, col.b)); Find.WindowStack.Add(new Dialog_ColorPicker(_color, delegate { parentLight.ChangeColor(_color.Color); }, ev.button == 1, true)); } else { if (ev.button == 0) { parentLight.IncrementColorIndex(); } else if (ev.button == 1) { parentLight.DecrementColorIndex(); } } }
protected override bool Init(object controller, object binding, DefinitionFile definition) { if (!base.Init(controller, binding, definition)) { return(false); } DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiImage)); _image = DefinitionResolver.GetShared <Texture2D>(Controller, Binding, file["Image"], null); _stretch = DefinitionResolver.Get <Stretch>(Controller, Binding, file["Stretch"], Stretch.Uniform); _color = DefinitionResolver.GetColorWrapper(Controller, Binding, file["Color"]) ?? new ColorWrapper(); _rotationSpeed = (float)DefinitionResolver.Get <double>(Controller, Binding, file["RotationSpeed"], 0); _scaleByUnit = DefinitionResolver.Get <bool>(Controller, Binding, file["ScaleByUnit"], true); _scale = DefinitionResolver.Get(Controller, Binding, file["Scale"], Scale.One); _image.ValueChanged += _image_ValueChanged; switch (DefinitionResolver.Get <ResampleFilter>(Controller, Binding, file["ResampleFilter"], ResampleFilter.Default)) { case ResampleFilter.Point: _samplerState = SamplerState.PointClamp; break; case ResampleFilter.Linear: _samplerState = SamplerState.LinearClamp; break; case ResampleFilter.Anisotropic: _samplerState = SamplerState.AnisotropicClamp; break; } return(true); }
protected virtual void Init(UiController controller, object binding, DefinitionFile definition) { DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(ButtonDrawable)); float changeTime = (float)DefinitionResolver.Get <double>(controller, binding, file["ChangeTime"], 0) / 1000.0f; _changeSpeed = changeTime > 0 ? 1 / changeTime : 10000; _colorDisabled = DefinitionResolver.GetColorWrapper(controller, binding, file["ColorDisabled"]); _colorReleased = DefinitionResolver.GetColorWrapper(controller, binding, file["ColorReleased"]); _colorPushed = DefinitionResolver.GetColorWrapper(controller, binding, file["ColorPushed"]); _margin = DefinitionResolver.Get <Margin>(controller, binding, file["Margin"], Margin.None); _opacity = (float)DefinitionResolver.Get <double>(controller, binding, file["Opacity"], 1); if (file["Special"] != null) { _specialState = DefinitionResolver.Get <bool>(controller, binding, file["Special"], false); } else { _specialState = null; } if (file["Checked"] != null) { _checkedState = DefinitionResolver.Get <bool>(controller, binding, file["Checked"], false); } else { _checkedState = null; } }
public MyApp(ApplicationConfiguration config) { appClient = new Client(config.Hostname, config.Port); appServer = new Server(config.ReceivePort); mainColor = new ColorWrapper(); Target = config.Target; appServer.StartListen(); }
bool IDefinitionClass.Init(UiController controller, object binding, DefinitionFile definition) { DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(QuickSeparatorLine)); _color = DefinitionResolver.GetColorWrapper(controller, binding, file["Color"]); _left = DefinitionResolver.Get <Length>(controller, binding, file["Left"], Length.Zero); _right = DefinitionResolver.Get <Length>(controller, binding, file["Right"], Length.Zero); return(true); }
protected override bool Init(object controller, object binding, DefinitionFile definition) { if (!base.Init(controller, binding, definition)) { return(false); } DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiListBox)); _selectionColor = DefinitionResolver.GetColorWrapper(Controller, Binding, file["SelectionColor"]); return(true); }
bool IDefinitionClass.Init(UiController controller, object binding, DefinitionFile definition) { DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(NinePatchBackground)); _image = DefinitionResolver.Get <NinePatchImage>(controller, binding, file["Image"], null); _scaleByUnit = DefinitionResolver.Get <bool>(controller, binding, file["ScaleByUnit"], false); _scale = (float)DefinitionResolver.Get <double>(controller, binding, file["Scale"], 1); _color = DefinitionResolver.GetColorWrapper(controller, binding, file["Color"]) ?? new ColorWrapper(); _margin = DefinitionResolver.Get <Margin>(controller, binding, file["Margin"], Margin.None); return(true); }
/// <summary> /// Call with a ColorWrapper object containing the color to be changed, with an optional callback which is called when Apply or OK are clicked. /// Setting draggable = true will break sliders for now. /// </summary> /// <param name="color"></param> /// <param name="callback"></param> public Dialog_ColorPicker(ColorWrapper color, Action callback = null, bool preview = true, bool autoApply = false) { // TODO: figure out if sliders and draggable = true can coexist. // using Event.current.Use() prevents further drawing of the tab and closes parent(s). _wrapper = color; _callback = callback; _preview = preview; _autoApply = autoApply; Color = _wrapper.Color; tempColor = _wrapper.Color; Notify_RGBUpdated(); }
/// <summary> /// Call with a ColorWrapper object containing the color to be changed, with an optional callback which is called when Apply or OK are clicked. /// Setting draggable = true will break sliders for now. /// </summary> /// <param name="color"></param> /// <param name="callback"></param> public Dialog_ColorPicker( ColorWrapper color, Action callback = null, bool preview = true, bool autoApply = false ) { // TODO: figure out if sliders and draggable = true can coexist. // using Event.current.Use() prevents further drawing of the tab and closes parent(s). _wrapper = color; _callback = callback; _preview = preview; _autoApply = autoApply; Color = _wrapper.Color; tempColor = _wrapper.Color; Notify_RGBUpdated(); }
protected override bool Init(object controller, object binding, DefinitionFile definition) { if (!base.Init(controller, binding, definition)) { return(false); } DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiVerticalGradient)); _topColor = DefinitionResolver.GetColorWrapper(Controller, Binding, file["TopColor"]); _bottomColor = DefinitionResolver.GetColorWrapper(Controller, Binding, file["BottomColor"]); return(true); }
protected override bool Init(object controller, object binding, DefinitionFile definition) { if (!base.Init(controller, binding, definition)) { return(false); } DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiHorizontalGradient)); _leftColor = DefinitionResolver.GetColorWrapper(Controller, Binding, file["LeftColor"]); _rightColor = DefinitionResolver.GetColorWrapper(Controller, Binding, file["RightColor"]); return(true); }
public Color GetColor(int key, out bool found) { object obj2 = this.GetObject(key, out found); if (found) { ColorWrapper wrapper = obj2 as ColorWrapper; if (wrapper != null) { return(wrapper.Color); } } found = false; return(Color.Empty); }
protected override bool Init(object controller, object binding, DefinitionFile definition) { if (!base.Init(controller, binding, definition)) { return(false); } DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiRectangle)); _image = DefinitionResolver.Get <NinePatchImage>(Controller, Binding, file["Image"], null); _scaleByUnit = DefinitionResolver.Get(Controller, Binding, file["ScaleByUnit"], false); _scale = (float)DefinitionResolver.Get(Controller, Binding, file["Scale"], 1.0); _color = DefinitionResolver.GetColorWrapper(Controller, Binding, file["Color"]); return(true); }
protected override bool Init(object controller, object binding, DefinitionFile definition) { if (!base.Init(controller, binding, definition)) { return(false); } DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiSeparatorLine)); _image = DefinitionResolver.GetShared <Texture2D>(Controller, Binding, file["Image"], null); _color = DefinitionResolver.GetColorWrapper(Controller, Binding, file["Color"]) ?? new ColorWrapper(); _scaleByUnit = DefinitionResolver.Get <bool>(Controller, Binding, file["ScaleByUnit"], true); _scale = (float)DefinitionResolver.Get <double>(Controller, Binding, file["Scale"], 1); _vertical = DefinitionResolver.Get <Mode>(Controller, Binding, file["Mode"], Mode.Horizontal) == Mode.Vertical; return(true); }
/// <summary> /// Handles the MouseUp event of the PersistentList control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Windows.Input.MouseButtonEventArgs"/> instance containing the event data.</param> void PaletteList_MouseUp(object sender, MouseButtonEventArgs e) { ColorWrapper cw = persistentList.SelectedItem as ColorWrapper; ObservableCollection <ColorWrapper> items = persistentList.ItemsSource as ObservableCollection <ColorWrapper>; if (items != null) { // Get the operation mode based on either keys or mouse click-position Mode m = GetMode(sender, e); if (m == Mode.Add) { // Add another color item items.Insert(0, new ColorWrapper(SelectedColor)); UpdateCurrentPaletteStore(); } else if (m == Mode.Remove) { // Remove current color, but only if there are two or more items left and there is a selected item // and the user clicked the persistent list if (cw != null && items.Count > 1) { items.Remove(cw); UpdateCurrentPaletteStore(); } } else if (cw != null) { if (m == Mode.Update) { // Update the persistent palette with the current color cw.Color = SelectedColor; UpdateCurrentPaletteStore(); } else if (sender == persistentList) { // No key pressed, just update the current color SelectedColor = cw.Color; } } // Event handled if mode was anything other than None e.Handled = m != Mode.None; } }
protected override bool Init(object controller, object binding, DefinitionFile definition) { if (!base.Init(controller, binding, definition)) { return(false); } DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiImage)); _image = DefinitionResolver.GetShared <Texture2D>(Controller, Binding, file["Image"], null); _stretch = DefinitionResolver.Get <Stretch>(Controller, Binding, file["Stretch"], Stretch.Uniform); _color = DefinitionResolver.GetColorWrapper(Controller, Binding, file["Color"]) ?? new ColorWrapper(); _rotationSpeed = (float)DefinitionResolver.Get <double>(Controller, Binding, file["RotationSpeed"], 0); _scaleByUnit = DefinitionResolver.Get <bool>(Controller, Binding, file["ScaleByUnit"], true); _scale = (float)DefinitionResolver.Get <double>(Controller, Binding, file["Scale"], 1); return(true); }
public object ParseColor(string id) { string name = Value(id); object method = ParseMethodOrField(name); if (method != null) { return(method); } if (name.IsNullOrEmpty()) { return(null); } if (name[0] == ':') { ColorWrapper colorWrapper = ColorsManager.Instance[name]; if (colorWrapper != null) { return(colorWrapper); } } Color?color = ColorParser.Parse(name); if (color.HasValue) { return(color.Value); } { Exception ex = Error(id, "Invalid format. Color formats are: '#aarrggbb' '#rrggbb' 'r,g,b' 'r,g,b,a' 'Name' 'Name*Alpha'."); if (ex != null) { throw ex; } } return(null); }
public void SetColor(int key, Color value) { bool flag; object obj2 = this.GetObject(key, out flag); if (!flag) { this.SetObject(key, new ColorWrapper(value)); } else { ColorWrapper wrapper = obj2 as ColorWrapper; if (wrapper != null) { wrapper.Color = value; } else { this.SetObject(key, new ColorWrapper(value)); } } }
public static double[] GetRowGrayScaleValues(WriteableBitmap bitmap, int row) { WriteableBitmapWrapper wrapper = WriteableBitmapWrapper.Create(bitmap); if (wrapper.IsFormatGrayScale) { double[] grayScaleValues = wrapper.GetRowGrayValues(row); return(grayScaleValues); } else { Color[] rowColors = wrapper.GetRowColors(row); double[] grayScaleValues = new double[rowColors.Length]; for (int index = 0; index < rowColors.Length; index++) { Color color = rowColors[index]; double grayIntensity = ColorWrapper.GetGrayIntensity(color); grayScaleValues[index] = grayIntensity; } return(grayScaleValues); } }
// this is a wrapper around GetObject designed to // reduce the boxing hit public Color GetColor(int key, out bool found) { object storedObject = GetObject(key, out found); if (found) { ColorWrapper wrapper = storedObject as ColorWrapper; if (wrapper != null) { return(wrapper.Color); } #if DEBUG else if (storedObject != null) { Debug.Fail("Have non-null object that isnt a color wrapper stored in a color entry!\r\nDid someone SetObject instead of SetColor?"); } #endif } // we didnt actually find a non-null color wrapper. found = false; return(Color.Empty); }
public void SetColor(int key, Color value) { bool found; object storedObject = GetObject(key, out found); if (!found) { SetObject(key, new ColorWrapper(value)); } else { ColorWrapper wrapper = storedObject as ColorWrapper; if (wrapper != null) { // re-using the wrapper reduces the boxing hit. wrapper.Color = value; } else { Debug.Assert(storedObject == null, "object should either be null or ColorWrapper"); // could someone have SetObject to this key behind our backs? SetObject(key, new ColorWrapper(value)); } } }
protected override bool Init(object controller, object binding, DefinitionFile definition) { if(!base.Init(controller, binding, definition)) { return false; } DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiScrollBar)); _grid = DefinitionResolver.GetShared<AutomataGrid>(Controller, Binding, file["AutomataGrid"], null); _editEnabled = DefinitionResolver.GetShared<bool>(Controller, Binding, file["EditEnabled"], true); _zoom = DefinitionResolver.GetShared<double>(Controller, Binding, file["Zoom"], 16); _colors = DefinitionResolver.Get<Color[]>(Controller, Binding, file["Colors"], null); _gridColor = DefinitionResolver.GetColorWrapper(Controller, Binding, file["GridColor"]); _stateToPaint = DefinitionResolver.GetShared<int>(Controller, Binding, file["StateToPaint"], 0); _calculatedForSize = new Point(_grid.Value.Width, _grid.Value.Height); return true; }
public static bool Eval(string a, ColorWrapper aVal, string b, ColorWrapper bVal) { return(aVal != bVal); }
public void Initialize() { colorWrapper = new ColorWrapper(Color.FromArgb(255, 100, 100, 100)); }
public static object Parse(string value, Type type) { if (type == typeof(System.Drawing.SizeF)) return Parse(new System.Drawing.SizeF(0, 0), value); if (type == typeof(System.Drawing.PointF)) return Parse(new System.Drawing.PointF(0, 0), value); if (type == typeof(System.Drawing.Color)) { value = value.Replace("Color ", ""); value = value.Trim(new char[] { '[', ']' }); System.Drawing.Color c = System.Drawing.Color.FromName(value); if (c.IsKnownColor) return c; ColorWrapper color = new ColorWrapper(); Parse(color, value); return color.Color; } return null; }
protected virtual bool Init(object controller, object binding, DefinitionFile definition) { DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiView)); Type controllerType = file["Controller"] as Type; _controller = controller as UiController; if (controllerType != null) { var newController = Activator.CreateInstance(controllerType) as UiController; if (newController != null) { newController.Parent = _controller; Controller = newController; } } Binding = binding; object bindParameter = file["Binding"]; if (bindParameter != null) { Object bind = DefinitionResolver.GetValueFromMethodOrField(Controller, binding, bindParameter); if (bind != null) { Binding = bind; } } Id = DefinitionResolver.GetString(Controller, Binding, file["Id"]); if (file["Hidden"] != null && file["Visible"] == null) { _visiblityFlag = DefinitionResolver.GetShared <bool>(Controller, Binding, file["Hidden"], false); _visibleIsHidden = true; } else { _visiblityFlag = DefinitionResolver.GetShared <bool>(Controller, Binding, file["Visible"], true); } Tag = DefinitionResolver.GetSharedString(Controller, Binding, file["Tag"]); Opacity = DefinitionResolver.GetShared <double>(Controller, Binding, file["Opacity"], 1); DisplayVisibility = Visible ? 1 : 0; _modal = DefinitionResolver.Get <bool>(Controller, Binding, file["Modal"], false); RegisterDelegate("ViewRemoved", file["ViewRemoved"]); RegisterDelegate("ViewAdded", file["ViewAdded"]); RegisterDelegate("ViewActivated", file["ViewActivated"]); RegisterDelegate("ViewDeactivated", file["ViewDeactivated"]); RegisterDelegate("ViewResized", file["ViewResized"]); _minWidth = DefinitionResolver.Get <Length>(Controller, Binding, file["MinWidth"], Length.Zero); _minHeight = DefinitionResolver.Get <Length>(Controller, Binding, file["MinHeight"], Length.Zero); _showSpeed = (float)Math.Max( DefinitionResolver.Get <double>(Controller, Binding, file["ShowHideTime"], -1), DefinitionResolver.Get <double>(Controller, Binding, file["ShowTime"], -1)); if (_showSpeed < 0) { _showSpeed = DefaultShowTime; } _showSpeed /= 1000.0f; _showSpeed = _showSpeed > 0 ? 1 / _showSpeed : float.MaxValue; _hideSpeed = (float)Math.Max( DefinitionResolver.Get <double>(Controller, Binding, file["ShowHideTime"], -1), DefinitionResolver.Get <double>(Controller, Binding, file["HideTime"], -1)); if (_hideSpeed < 0) { _hideSpeed = DefaultHideTime; } _hideSpeed /= 1000.0f; _hideSpeed = _hideSpeed > 0 ? 1 / _hideSpeed : float.MaxValue; CreatePositionParameters(Controller, Binding, definition); DefinitionFile backgroundDrawable = file["BackgroundDrawable"] as DefinitionFile; Color defaultBackgroundColor = Color.Transparent; if (backgroundDrawable != null) { BackgroundDrawable = backgroundDrawable.CreateInstance(Controller, Binding) as IBackgroundDrawable; if (BackgroundDrawable != null) { defaultBackgroundColor = Color.White; } } _backgroundColor = DefinitionResolver.GetColorWrapper(Controller, Binding, file["BackgroundColor"]) ?? new ColorWrapper(defaultBackgroundColor); DefinitionFile showTransitionEffectFile = file["ShowTransitionEffect"] as DefinitionFile; DefinitionFile hideTransitionEffectFile = file["HideTransitionEffect"] as DefinitionFile; DefinitionFile parentShowTransitionEffectFile = file["ParentShowTransitionEffect"] as DefinitionFile; DefinitionFile parentHideTransitionEffectFile = file["ParentHideTransitionEffect"] as DefinitionFile; if (showTransitionEffectFile != null) { _showTransitionEffect = showTransitionEffectFile.CreateInstance(Controller, Binding) as TransitionEffect; } if (hideTransitionEffectFile != null) { _hideTransitionEffect = hideTransitionEffectFile.CreateInstance(Controller, Binding) as TransitionEffect; } if (parentShowTransitionEffectFile != null) { _parentShowTransitionEffect = parentShowTransitionEffectFile.CreateInstance(Controller, Binding) as TransitionEffect; } if (parentHideTransitionEffectFile != null) { _parentHideTransitionEffect = parentHideTransitionEffectFile.CreateInstance(Controller, Binding) as TransitionEffect; } return(true); }
protected override bool Init(object controller, object binding, DefinitionFile definition) { if (!base.Init(controller, binding, definition)) { return(false); } DefinitionFileWithStyle file = new DefinitionFileWithStyle(definition, typeof(UiRichView)); string defaultFont = file["Font"] as string; int defaultFontSize = DefinitionResolver.Get <int>(Controller, Binding, file["FontSize"], 0); int defaultFontSpacing = DefinitionResolver.Get <int>(Controller, Binding, file["FontSpacing"], int.MaxValue); for (int idx = 0; idx < (int)FontType.Count; ++idx) { FontType type = (FontType)idx; string font = string.Format("{0}.Font", type); string spacing = string.Format("{0}.FontSpacing", type); string resize = string.Format("{0}.FontResize", type); string fontName = file[font] as string; int fontSpacing = DefinitionResolver.Get <int>(Controller, Binding, file[spacing], defaultFontSpacing == int.MaxValue ? 0 : defaultFontSpacing); int fontResize = DefinitionResolver.Get <int>(Controller, Binding, file[resize], 0); if (fontName == null) { fontName = defaultFont; } FontFace fontObj = FontManager.Instance.FindFont(fontName); if (defaultFont == null) { defaultFont = fontName; } if (defaultFontSpacing == int.MaxValue) { defaultFontSpacing = fontSpacing; } _fonts[idx] = new FontInfo() { Font = fontObj, FontSpacing = (float)fontSpacing / 1000.0f, FontResize = fontResize }; } for (int idx = 0; idx < (int)SizeType.Count; ++idx) { SizeType type = (SizeType)idx; string size = string.Format("{0}.FontSize", type); int fontSize = DefinitionResolver.Get <int>(Controller, Binding, file[size], defaultFontSize); if (defaultFontSize == 0) { defaultFontSize = fontSize; } _sizes[idx] = fontSize; } _bulletText = DefinitionResolver.GetString(Controller, Binding, file["BulletText"]) ?? "* "; //_bulletText = _bulletText.Replace(" ", ((char)0xa0).ToString()); _horizontalRulerHeight = DefinitionResolver.Get <Length>(Controller, Binding, file["HorizontalRulerHeight"], new Length(0, 0, 1)); _indentSize = DefinitionResolver.Get <Length>(Controller, Binding, file["Indent"], Length.Zero); _paragraphSpacing = DefinitionResolver.Get <Length>(Controller, Binding, file["ParagraphSpacing"], Length.Zero); _imageNotLoaded = DefinitionResolver.Get <Texture2D>(Controller, Binding, file["ImageNotLoaded"], AdvancedDrawBatch.OnePixelWhiteTexture); _lineHeight = (float)DefinitionResolver.Get <int>(Controller, Binding, file["LineHeight"], 100) / 100.0f; _justify = DefinitionResolver.Get <bool>(Controller, Binding, file["Justify"], false); _linkResolver = DefinitionResolver.Get <ILinkResolver>(Controller, Binding, file["LinkResolver"], this); _baseLineCorrection = DefinitionResolver.Get <bool>(Controller, Binding, file["EnableBaseLineCorrection"], false); Type processorType = file["Processor"] as Type; if (processorType != null) { _richProcessor = Activator.CreateInstance(processorType) as IRichProcessor; } Text = DefinitionResolver.GetString(Controller, Binding, file["Text"]); _colorNormal = DefinitionResolver.GetColorWrapper(Controller, Binding, file["TextColor"]) ?? UiLabel.DefaultTextColor; _colorClickable = DefinitionResolver.GetColorWrapper(Controller, Binding, file["LinkColor"]) ?? UiLabel.DefaultTextColor; _colorClickableActive = DefinitionResolver.GetColorWrapper(Controller, Binding, file["ActiveLinkColor"]) ?? _colorClickable; _colorRuler = DefinitionResolver.GetColorWrapper(Controller, Binding, file["HorizontalRulerColor"]) ?? UiLabel.DefaultTextColor; HorizontalContentAlignment horzAlign = DefinitionResolver.Get <HorizontalContentAlignment>(Controller, Binding, file["HorizontalContentAlignment"], HorizontalContentAlignment.Left); VerticalContentAlignment vertAlign = DefinitionResolver.Get <VerticalContentAlignment>(Controller, Binding, file["VerticalContentAlignment"], VerticalContentAlignment.Top); _textAlign = UiHelper.TextAlignFromContentAlignment(horzAlign, vertAlign); _clickMargin = DefinitionResolver.Get <Length>(Controller, Binding, file["ClickMargin"], Length.Zero); RegisterDelegate("UrlClick", file["UrlClick"]); EnabledGestures = (GestureType.Down | GestureType.Up | GestureType.Move | GestureType.Tap); return(true); }
private void btnGraphFromImages_Click(object sender, EventArgs e) { string directoryPath = @"D:\Images\!"; int x = 2690; int y = 1990; if (Directory.Exists(directoryPath)) { string[] files = Directory.GetFiles(directoryPath); IEnumerable <string> sortedFiles = files.OrderBy(f => int.Parse(Path.GetFileNameWithoutExtension(f))); int n = 0; int minIntensity = 255; int maxIntensity = 0; List <ChartPoint> points = new List <ChartPoint>(); foreach (string file in sortedFiles) { using (Bitmap bitmap = new Bitmap(file)) { System.Drawing.Color color = bitmap.GetPixel(x, y); int intensity = ColorWrapper.GetGrayIntensity(color); if (intensity < minIntensity) { minIntensity = intensity; } if (intensity > maxIntensity) { maxIntensity = intensity; } ChartPoint chartPoint = new ChartPoint(n, intensity); points.Add(chartPoint); n++; } } Chart chart1 = new Chart() { SeriesCollection = new List <ChartSeries>() { new ChartSeries() { Name = "Grpah", Type = HoloCommon.Enumeration.Charting.ChartSeriesType.Linear, ColorDescriptor = new ColorDescriptor(255, 0, 0), Points = points } } }; MemoryWriter.Write <Chart>(chart1, new ChartSerialization()); ProcessManager.RunProcess(@"D:\Projects\HoloApplication\Modules\ChartApp\ChartApp\bin\Release\ChartApp.exe", null, false, false); Thread.Sleep(2000); Interval <double> startInterval = new Interval <double>(minIntensity, maxIntensity); Interval <double> finishInterval = new Interval <double>(-1, 1); RealIntervalTransform transform = new RealIntervalTransform(startInterval, finishInterval); List <ChartPoint> points2 = new List <ChartPoint>(); foreach (ChartPoint p in points) { double newValue = transform.TransformToFinishIntervalValue(p.Y); ChartPoint point = new ChartPoint(p.X, newValue); points2.Add(point); } Chart chart2 = new Chart() { SeriesCollection = new List <ChartSeries>() { new ChartSeries() { Name = "Grpah2", Type = HoloCommon.Enumeration.Charting.ChartSeriesType.Linear, ColorDescriptor = new ColorDescriptor(0, 255, 0), Points = points2 } } }; MemoryWriter.Write <Chart>(chart2, new ChartSerialization()); ProcessManager.RunProcess(@"D:\Projects\HoloApplication\Modules\ChartApp\ChartApp\bin\Release\ChartApp.exe", null, false, false); Thread.Sleep(2000); List <ChartPoint> points3 = new List <ChartPoint>(); foreach (ChartPoint p in points2) { double newValue = Math.Acos(p.Y); ChartPoint point = new ChartPoint(p.X, newValue); points3.Add(point); } Chart chart3 = new Chart() { SeriesCollection = new List <ChartSeries>() { new ChartSeries() { Name = "Grpah3", Type = HoloCommon.Enumeration.Charting.ChartSeriesType.Linear, ColorDescriptor = new ColorDescriptor(0, 0, 0), Points = points3 } } }; MemoryWriter.Write <Chart>(chart3, new ChartSerialization()); ProcessManager.RunProcess(@"D:\Projects\HoloApplication\Modules\ChartApp\ChartApp\bin\Release\ChartApp.exe", null, false, false); Thread.Sleep(2000); } }
private void Awake() { colors = new ColorWrapper[3]; colors[0] = new ColorWrapper { id = "red", color = new Color32(244, 67, 54, 255), }; colors[1] = new ColorWrapper { id = "green", color = new Color32(76, 175, 80, 255), }; colors[2] = new ColorWrapper { id = "blue", color = new Color32(33, 150, 243, 255), }; int order = Manager.currentLevel.order + (Manager.currentLevel.tier * 3); LevelData data = levels[order]; for (int i = 0; i < data.items.Length; i++) { Tile t = data.items[i]; switch (t.tile) { case "c": GameObject cItem = Instantiate(Circle, Vector2.zero, Quaternion.identity, transform) as GameObject; cItem.GetComponent <RectTransform>().localPosition = new Vector2(-390 + ((i > 2 ? i + 1 : i) * 130), 0); for (int j = 0; j < colors.Length; j++) { ColorWrapper cw = colors[j]; if (cw.id == t.color) { cItem.GetComponent <Image>().color = cw.color; } } break; case "s": GameObject sItem = Instantiate(Square, Vector2.zero, Quaternion.identity, transform) as GameObject; sItem.GetComponent <RectTransform>().localPosition = new Vector2(-390 + ((i > 2 ? i + 1 : i) * 130), 0); for (int j = 0; j < colors.Length; j++) { ColorWrapper cw = colors[j]; if (cw.id == t.color) { sItem.transform.GetChild(0).GetComponent <Image>().color = cw.color; } } break; case "t": GameObject tItem = Instantiate(Triangle, Vector2.zero, Quaternion.identity, transform) as GameObject; tItem.GetComponent <RectTransform>().localPosition = new Vector2(-390 + ((i > 2 ? i + 1 : i) * 130), 0); for (int j = 0; j < colors.Length; j++) { ColorWrapper cw = colors[j]; if (cw.id == t.color) { tItem.transform.GetChild(0).GetComponent <Image>().color = cw.color; } } break; } } for (int i = 0; i < data.options.Length; i++) { Tile t = data.options[i]; switch (t.tile) { case "c": GameObject cOption = Instantiate(Circle, Vector2.zero, Quaternion.identity, transform) as GameObject; cOption.GetComponent <RectTransform>().localPosition = new Vector2(-150 + (i * 150), -205); for (int j = 0; j < colors.Length; j++) { ColorWrapper cw = colors[j]; if (cw.id == t.color) { cOption.GetComponent <Image>().color = cw.color; } } cOption.AddComponent <Button>(); Button c = cOption.GetComponent <Button>(); c.onClick.AddListener(() => Answer(data.answer, cOption)); break; case "s": GameObject sOption = Instantiate(Square, Vector2.zero, Quaternion.identity, transform) as GameObject; sOption.GetComponent <RectTransform>().localPosition = new Vector2(-150 + (i * 150), -205); for (int j = 0; j < colors.Length; j++) { ColorWrapper cw = colors[j]; if (cw.id == t.color) { sOption.transform.GetChild(0).GetComponent <Image>().color = cw.color; } } sOption.AddComponent <Button>(); Button s = sOption.GetComponent <Button>(); s.onClick.AddListener(() => Answer(data.answer, sOption)); break; case "t": GameObject tOption = Instantiate(Triangle, Vector2.zero, Quaternion.identity, transform) as GameObject; tOption.GetComponent <RectTransform>().localPosition = new Vector2(-150 + (i * 150), -205); for (int j = 0; j < colors.Length; j++) { ColorWrapper cw = colors[j]; if (cw.id == t.color) { tOption.transform.GetChild(0).GetComponent <Image>().color = cw.color; } } tOption.AddComponent <Button>(); Button tt = tOption.GetComponent <Button>(); tt.onClick.AddListener(() => Answer(data.answer, tOption)); break; default: GameObject dOption = Instantiate(Circle, Vector2.zero, Quaternion.identity, transform) as GameObject; dOption.GetComponent <RectTransform>().localPosition = new Vector2(-150 + (i * 150), -205); for (int j = 0; j < colors.Length; j++) { ColorWrapper cw = colors[j]; if (cw.id == t.color) { dOption.GetComponent <Image>().color = cw.color; } } Button dd = dOption.AddComponent <Button>() as Button; dd.onClick.AddListener(() => Answer(data.answer, dOption)); break; } } }
public WndAppearance(BaseObject obj, Vector2f pos) : base(obj, WndWidth, pos) { var wrapper = new ColorWrapper(() => obj.Color); var renderImg = new Image(WndWidth, SqSize + 2 * Margin, BackColor); var selector = new Canvas(); selector.SizeLayout = new Layout2d(renderImg.Size.X, renderImg.Size.Y); selector.Clear(BackColor); Add(selector); Color oldColor = default; IntPtr oldPointer = default; var userChanging = false; var previewRect = new VertexArray(PrimitiveType.Quads, 4); var previewOutline = new VertexArray(PrimitiveType.LineStrip, 5); Vector2f[] previewCorners = { new Vector2f(Margin + PreviewOffset, Margin), new Vector2f(Margin + PreviewOffset + PreviewWidth, Margin), new Vector2f(Margin + PreviewOffset + PreviewWidth, Margin + SqSize), new Vector2f(Margin + PreviewOffset, Margin + SqSize), }; var hueSelector = new RectangleShape(new Vector2f(HueWidth, 4)) { OutlineColor = SelectorOutline, OutlineThickness = 2f, FillColor = Color.Transparent, Origin = new Vector2f(HueWidth / 2, 2) }; var colorSelector = new RectangleShape(new Vector2f(8, 8)) { OutlineColor = SelectorOutline, OutlineThickness = 2f, FillColor = Color.Transparent, Origin = new Vector2f(4, 4) }; wrapper.ValueChanged += delegate { UpdateSelector(); }; void DrawSelector() { var tex = selector.RenderTexture(); if (tex == null) { return; } oldPointer = tex.CPointer; oldColor = wrapper.Value; const float fac = 1f / SqSize; selector.Clear(BackColor); for (uint y = 0; y < renderImg.Size.Y; y++) { for (uint x = 0; x < renderImg.Size.X; x++) { renderImg.SetPixel(x, y, BackColor); } } renderImg.Copy(HueImg, Margin, Margin); var hue = wrapper.H; for (uint y = 0; y < SqSize; y++) { var v = y * fac; for (uint x = 0; x < SqSize; x++) { var s = x * fac; renderImg.SetPixel(Margin + Offset + x, Margin + y, new Hsva(hue, s, 1 - v, 1)); } } tex.Texture.Update(renderImg); hueSelector.Position = new Vector2f( Margin + HueWidth / 2, Margin + (float)((360 - wrapper.H) / HueFac)); tex.Draw(hueSelector); colorSelector.Position = new Vector2f( (float)(Margin + Offset + wrapper.S * SqSize), (float)(Margin + wrapper.V * SqSize)); tex.Draw(colorSelector); var col = wrapper.Value; previewRect[0] = new Vertex(previewCorners[0], col); previewRect[1] = new Vertex(previewCorners[1], col); previewRect[2] = new Vertex(previewCorners[2], col); previewRect[3] = new Vertex(previewCorners[3], col); tex.Draw(previewRect); col.A = 255; previewOutline[0] = new Vertex(previewCorners[0], col); previewOutline[1] = new Vertex(previewCorners[1], col); previewOutline[2] = new Vertex(previewCorners[2], col); previewOutline[3] = new Vertex(previewCorners[3], col); previewOutline[4] = new Vertex(previewCorners[0], col); tex.Draw(previewOutline); } void UpdateSelector() { if (userChanging) { return; } if (Mouse.IsButtonPressed(Mouse.Button.Left)) { userChanging = true; var mpos = Mouse.GetPosition(Render.Window).F() - AbsolutePosition - new Vector2f(0, Renderer.TitleBarHeight); if (selector.MouseOnWidget(mpos)) { var(x, y) = (mpos - selector.Position).I(); x -= Margin; y -= Margin; if (x >= 0 && x <= TotalSize && y >= 0 && y < 140) { if (x <= HueWidth) { wrapper.H = y * HueFac; } else if (x >= Offset) { wrapper.Value = new Color(renderImg.GetPixel(Margin + (uint)x, Margin + (uint)y)) { A = wrapper.A } } ; } } userChanging = false; } if (wrapper.Value != oldColor || selector.RenderTexture()?.CPointer != oldPointer) { DrawSelector(); } } Ui.Drawn += UpdateSelector; Closed += delegate { Ui.Drawn -= UpdateSelector; }; Add(new NumberField <double>(0, 360, () => wrapper.H, unit: "°", inline: true, round: 0)); Add(new NumberField <double>(0, 100, () => wrapper.S, unit: "%", factor: 100, inline: true, round: 0)); Add(new NumberField <double>(0, 100, () => wrapper.V, unit: "%", factor: 100, inline: true, round: 0)); Add(new NumberField <double>(0, 100, () => wrapper.Ad, unit: "%", factor: 100, inline: true, round: 0)); Add(new NumberField <byte>(0, 255, () => wrapper.R, deci: false, inline: true)); Add(new NumberField <byte>(0, 255, () => wrapper.G, deci: false, inline: true)); Add(new NumberField <byte>(0, 255, () => wrapper.B, deci: false, inline: true)); var btnRandom = new BitmapButton(L["Random color"]) { Image = new Texture("icons/small/random.png") }; btnRandom.Clicked += delegate { wrapper.Value = new Color(Palette.Default.ColorRange.RandomColor()) { A = wrapper.A }; }; Add(btnRandom); if (obj is PhysicalObject phy) { Add(new NumberField <float>(30, 2000, () => phy.ColorFilterWidth, log: true) { RightValue = float.PositiveInfinity }); var absorbanceImg = new Image(WndWidth, AbsorbHeight + 2 * Margin, BackColor); var absorbance = new Canvas(); absorbance.SizeLayout = new Layout2d(absorbanceImg.Size.X, absorbanceImg.Size.Y); absorbance.Clear(BackColor); var txtA = new Text("A", Ui.FontMono, AbsorbTextSize) { FillColor = Color.White, Scale = new Vector2f(1, -1) }.CenterOriginText(); var txtH = new Text("H", Ui.FontMono, AbsorbTextSize) { FillColor = Color.White, Scale = new Vector2f(1, -1) }.CenterOriginText(); Add(absorbance); IntPtr oldPointerAbs = default; var oldCol = new Hsva(-1, -1, -1, -1); var oldWidth = -1f; void DrawAbsorbance() { var tex = absorbance.RenderTexture(); if (tex == null) { return; } oldCol = wrapper.ValueHsv; oldWidth = phy.ColorFilterWidth; oldPointerAbs = tex.CPointer; absorbance.Clear(BackColor); absorbanceImg.Copy(HueImgHoriz, Margin + AbsorbTextSize, Margin + AbsorbTextSize); var hsva = phy.ColorHsva; var objHue = hsva.H; var objSat = hsva.S; var alphaD = 1 - hsva.A; for (uint x = 0; x < HueWidthHoriz; x++) { var transmittance = (int)((1 - alphaD * Transmittance(x * HueFacHoriz, objHue, phy.ColorFilterWidth, objSat)) * HueHeightHoriz) + 1; for (uint y = 0; y < transmittance; y++) { absorbanceImg.SetPixel(Margin + AbsorbTextSize + x, Margin + AbsorbTextSize + y, BackColor); } } tex.Texture.Update(absorbanceImg); var hx = (float)(Margin + AbsorbTextSize + objHue / HueFacHoriz); var ay = (float)(Margin - 1 + alphaD * HueHeightHoriz); tex.Draw(new[] { new Vertex(new Vector2f(hx, Margin), Color.White), new Vertex(new Vector2f(hx, Margin + HueHeightHoriz + 2), Color.White), new Vertex(new Vector2f(Margin, ay), Color.White), new Vertex(new Vector2f(WndWidth - Margin, ay), Color.White), }, PrimitiveType.Lines); txtA.Position = new Vector2f(Margin + AbsorbTextSize / 2, ay + AbsorbTextSize); tex.Draw(txtA); txtH.Position = new Vector2f(hx, AbsorbHeight - Margin + AbsorbTextSize / 2); tex.Draw(txtH); } void UpdateAbsorbance() { if (wrapper.ValueHsv != oldCol || phy.ColorFilterWidth != oldWidth || absorbance.RenderTexture()?.CPointer != oldPointerAbs) { DrawAbsorbance(); } } Ui.Drawn += UpdateAbsorbance; Closed += delegate { Ui.Drawn -= UpdateAbsorbance; }; Add(new CheckField(() => phy.Appearance.Borders, onChanged: () => { phy.UpdateOutline(); })); Add(new CheckField(() => phy.Appearance.OpaqueBorders, onChanged: () => { phy.UpdateOutline(); })); if (phy is Circle circle) { Add(new CheckField(() => circle.Appearance.DrawCircleCakes)); Add(new CheckField(() => circle.Appearance.Protractor)); } if (phy is Box box) { Add(new CheckField(() => box.Appearance.Ruler)); } } Show(); } }