public CurrentItemList(IEnumerable <T> collection, T defaultItem) : base(collection) { CurrentIndexBase0 = new TextInt(0); CurrentIndexBase1 = new TextInt(1); DefaultItem = defaultItem; CurrentIndexBase0.ValueChangingEvent += CurrentIndexBase0_ValueChangingEvent; CurrentIndexBase1.ValueChangingEvent += CurrentIndexBase1_ValueChangingEvent; }
public CurrentItemList(T defaultItem) : base() { CurrentIndexBase0 = new TextInt(-1); CurrentIndexBase1 = new TextInt(0); DefaultItem = defaultItem; CurrentIndexBase0.ValueChangingEvent += CurrentIndexBase0_ValueChangingEvent; CurrentIndexBase1.ValueChangingEvent += CurrentIndexBase1_ValueChangingEvent; }
private void RenderText(MapGraphics g) { if (TextInt == string.Empty) { return; } string text = (TextInt.IndexOf("#", StringComparison.Ordinal) == -1) ? TextInt : GetMapCore().ResolveAllKeywords(TextInt, this); text = text.Replace("\\n", "\n"); StringFormat stringFormat = new StringFormat(); if (TextAlignment == ContentAlignment.BottomRight) { stringFormat.Alignment = StringAlignment.Near; stringFormat.LineAlignment = StringAlignment.Near; } else if (TextAlignment == ContentAlignment.BottomCenter) { stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Near; } else if (TextAlignment == ContentAlignment.BottomLeft) { stringFormat.Alignment = StringAlignment.Far; stringFormat.LineAlignment = StringAlignment.Near; } else if (TextAlignment == ContentAlignment.MiddleRight) { stringFormat.Alignment = StringAlignment.Near; stringFormat.LineAlignment = StringAlignment.Center; } else if (TextAlignment == ContentAlignment.MiddleCenter) { stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Center; } else if (TextAlignment == ContentAlignment.MiddleLeft) { stringFormat.Alignment = StringAlignment.Far; stringFormat.LineAlignment = StringAlignment.Center; } else if (TextAlignment == ContentAlignment.TopRight) { stringFormat.Alignment = StringAlignment.Near; stringFormat.LineAlignment = StringAlignment.Far; } else if (TextAlignment == ContentAlignment.TopCenter) { stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Far; } else { stringFormat.Alignment = StringAlignment.Far; stringFormat.LineAlignment = StringAlignment.Far; } SizeF sizeF = g.MeasureString(text, Font, new SizeF(0f, 0f), StringFormat.GenericTypographic); PointF centerPointInContentPixels = GetCenterPointInContentPixels(g); new RectangleF(centerPointInContentPixels.X, centerPointInContentPixels.Y - 1f, 0f, 0f).Inflate(sizeF.Width / 2f, sizeF.Height / 2f); if (TextShadowOffset != 0) { using (Brush brush = g.GetShadowBrush()) { g.DrawString(point: new PointF(centerPointInContentPixels.X + (float)TextShadowOffset, centerPointInContentPixels.Y + (float)TextShadowOffset), s: text, font: Font, brush: brush, format: stringFormat); } } using (Brush brush2 = new SolidBrush(TextColor)) { g.DrawString(text, Font, brush2, centerPointInContentPixels, stringFormat); } }
private void OnEnable() { fsmShapeSelection = new FSM <ShapeSelectionState>(FSM.TransitionModeEnum.Immediate); fig = new GLFigure(); guiSelectedShape = new TextInt(gui.selectedShape); guiSelectedVertices = new TextInt(gui.selectedVertices); rctVisTarget = new Reactive <VisTargetEnum>(); SetMapper(new Mapper()); fig.DefaultLineMat.ZTestMode = GLMaterial.ZTestEnum.ALWAYS; guiSelectedShape.Changed += r => { validator.Invalidate(); gui.selectedShape = r.Value; }; guiSelectedVertices.Changed += r => { validator.Invalidate(); gui.selectedVertices = r.Value; }; rctVisTarget.Changed += r => { mapper.CurrFlags = r.Value == VisTargetEnum.Input ? (mapper.CurrFlags | Mapper.OutputFlags.InputVertex) : (mapper.CurrFlags & ~Mapper.OutputFlags.InputVertex); }; validator.Reset(); validator.Validation += () => { if (mapper == null) { validator.Invalidate(); return; } mapper.Clear(); foreach (var q in data.shapes.quads) { mapper.Add(q); } }; fsmShapeSelection.StateFor(ShapeSelectionState.None).Update(f => { if (0 <= gui.selectedShape && gui.selectedShape < data.shapes.Count) { f.Goto(ShapeSelectionState.Selected); return; } }); fsmShapeSelection.StateFor(ShapeSelectionState.Selected).Update(f => { if (gui.selectedShape < 0 || data.shapes.Count <= gui.selectedShape) { f.Goto(ShapeSelectionState.None); return; } }); fsmShapeSelection.Init(ShapeSelectionState.None); mouse.OnSelection += (m, arg) => { if ((arg & MouseTracker.ButtonFlag.Left) == 0) { return; } var s2n = CoordConverter.ScreenToNDC; var dx = (Vector2)s2n.MultiplyVector(m.PositionDiff); var shape = GetSelectedShape(); if (shape != null) { var vertices = GetVertices(shape); for (var i = 0; i < vertices.Count; i++) { if ((gui.selectedVertices & (1 << i)) == 0) { continue; } var v = vertices[i]; v.x += dx.x; v.y += dx.y; vertices[i] = v; } shape.Invalidate(); } }; Load(); }
public GUIData(Data data) { spout = data.spout; width = new TextInt(data.width); height = new TextInt(data.height); }