/// <summary> /// Generates the specified source. /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="method">The method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod method, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, method, generateField); Control control = source as Control; CodeComHelper.GenerateBrushField(method, fieldReference, source, Control.BackgroundProperty); CodeComHelper.GenerateBrushField(method, fieldReference, source, Control.BorderBrushProperty); CodeComHelper.GenerateThicknessField(method, fieldReference, source, Control.BorderThicknessProperty); CodeComHelper.GenerateThicknessField(method, fieldReference, source, Control.PaddingProperty); CodeComHelper.GenerateBrushField(method, fieldReference, source, Control.ForegroundProperty); CodeComHelper.GenerateEnumField <HorizontalAlignment>(method, fieldReference, source, Control.HorizontalContentAlignmentProperty); CodeComHelper.GenerateEnumField <VerticalAlignment>(method, fieldReference, source, Control.VerticalContentAlignmentProperty); CodeComHelper.GenerateField <bool>(method, fieldReference, source, Control.IsTabStopProperty); CodeComHelper.GenerateField <int>(method, fieldReference, source, Control.TabIndexProperty); CodeComHelper.GenerateTemplateStyleField(classType, method, fieldReference, source, Control.TemplateProperty); if (!CodeComHelper.IsDefaultValue(source, Control.FontFamilyProperty) || !CodeComHelper.IsDefaultValue(source, Control.FontSizeProperty) || !CodeComHelper.IsDefaultValue(source, Control.FontStyleProperty) || !CodeComHelper.IsDefaultValue(source, Control.FontWeightProperty)) { FontGenerator.Instance.AddFont(control.FontFamily, control.FontSize, control.FontStyle, control.FontWeight, method); } CodeComHelper.GenerateFontFamilyField(method, fieldReference, source, Control.FontFamilyProperty); CodeComHelper.GenerateFieldDoubleToFloat(method, fieldReference, source, Control.FontSizeProperty); CodeComHelper.GenerateFontStyleField(method, fieldReference, source, Control.FontStyleProperty, Control.FontWeightProperty); return(fieldReference); }
/// <summary> /// Generates code /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField"></param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); CodeComHelper.GenerateEnumField <Stretch>(initMethod, fieldReference, source, ImageButton.ImageStretchProperty); ImageButton imageButton = source as ImageButton; BitmapImage bitmap = imageButton.ImageNormal as BitmapImage; if (bitmap != null) { CodeComHelper.GenerateBitmapImageField(initMethod, fieldReference, source, bitmap.UriSource, imageButton.Name + "_normal_bm", ImageButton.ImageNormalProperty); } bitmap = imageButton.ImageDisabled as BitmapImage; if (bitmap != null) { CodeComHelper.GenerateBitmapImageField(initMethod, fieldReference, source, bitmap.UriSource, imageButton.Name + "_disabled_bm", ImageButton.ImageDisabledProperty); } bitmap = imageButton.ImageHover as BitmapImage; if (bitmap != null) { CodeComHelper.GenerateBitmapImageField(initMethod, fieldReference, source, bitmap.UriSource, imageButton.Name + "_hover_bm", ImageButton.ImageHoverProperty); } bitmap = imageButton.ImagePressed as BitmapImage; if (bitmap != null) { CodeComHelper.GenerateBitmapImageField(initMethod, fieldReference, source, bitmap.UriSource, imageButton.Name + "_pressed_bm", ImageButton.ImagePressedProperty); } return(fieldReference); }
/// <summary> /// Generates code /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); DataGrid grid = source as DataGrid; CodeComHelper.GenerateEnumField <DataGridSelectionMode>(initMethod, fieldReference, source, DataGrid.SelectionModeProperty); CodeComHelper.GenerateField <bool>(initMethod, fieldReference, source, DataGrid.AutoGenerateColumnsProperty); CodeComHelper.GenerateEnumField <ScrollBarVisibility>(initMethod, fieldReference, source, DataGrid.HorizontalScrollBarVisibilityProperty); CodeComHelper.GenerateEnumField <ScrollBarVisibility>(initMethod, fieldReference, source, DataGrid.VerticalScrollBarVisibilityProperty); if (grid.Columns.Count > 0) { TypeGenerator colGenerator = new TypeGenerator(); for (int i = 0; i < grid.Columns.Count; i++) { var column = grid.Columns[i]; DataGridColumnGeneratorType.ColumnName = grid.Name + "_Col" + i; CodeExpression expr = colGenerator.ProcessGenerators(column, classType, initMethod, false); if (expr == null) { continue; } initMethod.Statements.Add(new CodeMethodInvokeExpression(fieldReference, "Columns.Add", expr)); } } return(fieldReference); }
private static CodeExpression GetControlTemplateValueExpression(CodeTypeDeclaration parentClass, CodeMemberMethod method, object value, string baseName) { ControlTemplate controlTemplate = value as ControlTemplate; DependencyObject content = controlTemplate.LoadContent(); string variableName = baseName + "_ct"; string creator = CodeComHelper.GenerateTemplate(parentClass, method, content, variableName); Type targetType = controlTemplate.TargetType; CodeVariableDeclarationStatement controlTemplateVar; if (targetType != null) { controlTemplateVar = new CodeVariableDeclarationStatement( "ControlTemplate", variableName, new CodeObjectCreateExpression("ControlTemplate", new CodeTypeOfExpression(targetType.Name), new CodeSnippetExpression(creator))); } else { controlTemplateVar = new CodeVariableDeclarationStatement( "ControlTemplate", variableName, new CodeObjectCreateExpression("ControlTemplate", new CodeSnippetExpression(creator))); } method.Statements.Add(controlTemplateVar); TriggerCollection triggers = controlTemplate.Triggers; CodeComHelper.GenerateTriggers(parentClass, method, variableName, targetType, triggers); return(new CodeVariableReferenceExpression(variableName)); }
public CodeExpression Generate(CodeTypeDeclaration parentClass, CodeMemberMethod method, object value, string baseName, ResourceDictionary dictionary = null) { var refExpr2 = new CodeObjectCreateExpression(ValueType, new CodeExpression[] { }); CodeVariableDeclarationStatement variable = new CodeVariableDeclarationStatement( ValueType, baseName, refExpr2 ); method.Statements.Add(variable); var refExpr = new CodeVariableReferenceExpression(baseName); foreach (var pi in ValueType.GetProperties()) { var getM = pi.GetGetMethod(); if (getM.GetParameters().Length == 0 && pi.GetSetMethod() != null) { object o = getM.Invoke(value, new object[] { }); CodeComHelper.GenerateFieldNonGeneric(method, refExpr, pi.Name, o); } } return(refExpr); }
/// <summary> /// Generates control fields /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="method">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod method, bool generateField) { CodeExpression fieldReference = new CodeThisReferenceExpression(); CodeComHelper.GenerateBrushField(method, fieldReference, source, Control.BackgroundProperty); CodeComHelper.GenerateBrushField(method, fieldReference, source, Control.BorderBrushProperty); CodeComHelper.GenerateThicknessField(method, fieldReference, source, Control.BorderThicknessProperty); CodeComHelper.GenerateThicknessField(method, fieldReference, source, Control.PaddingProperty); CodeComHelper.GenerateBrushField(method, fieldReference, source, Control.ForegroundProperty); CodeComHelper.GenerateField <bool>(method, fieldReference, source, UIRoot.IsTabNavigationEnabledProperty); CodeComHelper.GenerateColorField(method, fieldReference, source, UIRoot.MessageBoxOverlayProperty); CodeComHelper.GenerateTemplateStyleField(classType, method, fieldReference, source, FrameworkElement.StyleProperty); Control control = source as Control; if (!CodeComHelper.IsDefaultValue(source, Control.FontFamilyProperty) || !CodeComHelper.IsDefaultValue(source, Control.FontSizeProperty) || !CodeComHelper.IsDefaultValue(source, Control.FontStyleProperty) || !CodeComHelper.IsDefaultValue(source, Control.FontWeightProperty)) { FontGenerator.Instance.AddFont(control.FontFamily, control.FontSize, control.FontStyle, control.FontWeight, method); } CodeComHelper.GenerateFontFamilyField(method, fieldReference, source, Control.FontFamilyProperty); CodeComHelper.GenerateFieldDoubleToFloat(method, fieldReference, source, Control.FontSizeProperty); CodeComHelper.GenerateFontStyleField(method, fieldReference, source, Control.FontStyleProperty, Control.FontWeightProperty); return(fieldReference); }
/// <summary> /// Generates code /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="method">The initialize method.</param> /// <param name="generateField"></param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod method, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, method, generateField); ItemsControl itemsControl = source as ItemsControl; CodeComHelper.GenerateTemplateStyleField(classType, method, fieldReference, source, ItemsControl.ItemsPanelProperty); CodeComHelper.GenerateTemplateStyleField(classType, method, fieldReference, source, ItemsControl.ItemTemplateProperty); if (itemsControl.Items.Count > 0) { TypeGenerator typeGenerator = new TypeGenerator(); ValueGenerator valueGenerator = new ValueGenerator(); CodeMemberMethod itemsMethod = new CodeMemberMethod(); itemsMethod.Attributes = MemberAttributes.Static | MemberAttributes.Private; itemsMethod.Name = "Get_" + itemsControl.Name + "_Items"; itemsMethod.ReturnType = new CodeTypeReference(typeof(ObservableCollection <object>)); classType.Members.Add(itemsMethod); CodeVariableDeclarationStatement collection = new CodeVariableDeclarationStatement( typeof(ObservableCollection <object>), "items", new CodeObjectCreateExpression(typeof(ObservableCollection <object>))); itemsMethod.Statements.Add(collection); CodeVariableReferenceExpression itemsVar = new CodeVariableReferenceExpression("items"); foreach (var item in itemsControl.Items) { Type itemType = item.GetType(); CodeExpression itemExpr = null; if (typeGenerator.HasGenerator(itemType)) { itemExpr = typeGenerator.ProcessGenerators(item, classType, itemsMethod, false); } else { itemExpr = valueGenerator.ProcessGenerators(classType, itemsMethod, item, itemsControl.Name); } if (itemExpr != null) { CodeMethodInvokeExpression addItem = new CodeMethodInvokeExpression(itemsVar, "Add", itemExpr); itemsMethod.Statements.Add(addItem); } else { CodeComHelper.GenerateError(itemsMethod, string.Format("Type {0} in Items Control collection not supported", itemType.Name)); } } CodeMethodReturnStatement returnStatement = new CodeMethodReturnStatement(itemsVar); itemsMethod.Statements.Add(returnStatement); method.Statements.Add(new CodeAssignStatement( new CodeFieldReferenceExpression(fieldReference, "ItemsSource"), new CodeMethodInvokeExpression(null, itemsMethod.Name))); } return(fieldReference); }
/// <summary> /// Generates control fields /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = new CodeThisReferenceExpression(); CodeComHelper.GenerateTemplateStyleField(classType, initMethod, fieldReference, source, FrameworkElement.StyleProperty); return(fieldReference); }
/// <summary> /// Generates code for value /// </summary> /// <param name="parentClass">The parent class.</param> /// <param name="method">The method.</param> /// <param name="value">The value.</param> /// <param name="baseName">Name of the base.</param> /// <param name="dictionary">The dictionary.</param> /// <returns></returns> public CodeExpression Generate(CodeTypeDeclaration parentClass, CodeMemberMethod method, object value, string baseName, ResourceDictionary dictionary = null) { string bitmapVarName = baseName + "_bm"; BitmapImage bitmap = value as BitmapImage; return(CodeComHelper.GenerateBitmapImageValue(method, bitmap.UriSource, bitmapVarName)); }
/// <summary> /// Generates the specified initialize method. /// </summary> /// <param name="source">The dependency object</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); DockPanel dockPanel = source as DockPanel; CodeComHelper.GenerateField <bool>(initMethod, fieldReference, source, DockPanel.LastChildFillProperty); return(fieldReference); }
/// <summary> /// Generates control fields /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); CodeComHelper.GenerateField <bool>(initMethod, fieldReference, source, ScrollViewer.CanContentScrollProperty); return(fieldReference); }
/// <summary> /// Generates control fields /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); CodeComHelper.GenerateEnumField <Orientation>(initMethod, fieldReference, source, ScrollBar.OrientationProperty); CodeComHelper.GenerateFieldDoubleToFloat(initMethod, fieldReference, source, ScrollBar.ViewportSizeProperty); return(fieldReference); }
/// <summary> /// Generates the specified source. /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="method">The method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod method, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, method, generateField); CodeComHelper.GenerateEnumField <Orientation>(method, fieldReference, source, Slider.OrientationProperty); return(fieldReference); }
private void GenerateBehaviorActions(ActionCollection actionCollection, CodeTypeDeclaration classType, CodeMemberMethod method, CodeVariableReferenceExpression behaviorVarRef, string behaviorName) { for (int i = 0; i < actionCollection.Count; i++) { var action = actionCollection[i]; string actionName = behaviorName + "_ACT_" + i; Type type = action.GetType(); CodeVariableDeclarationStatement variable = new CodeVariableDeclarationStatement(type.Name, actionName, new CodeObjectCreateExpression(type.Name)); method.Statements.Add(variable); var actionVarRef = new CodeVariableReferenceExpression(actionName); method.Statements.Add(new CodeMethodInvokeExpression( behaviorVarRef, "Actions.Add", actionVarRef)); ValueGenerator valueGenerator = new ValueGenerator(); MethodInfo generateFieldMethod = typeof(CodeComHelper).GetMethod("GenerateField"); LocalValueEnumerator enumerator = action.GetLocalValueEnumerator(); while (enumerator.MoveNext()) { LocalValueEntry entry = enumerator.Current; DependencyProperty property = entry.Property; Type valueType = entry.Value.GetType(); if (CodeComHelper.IsValidForFieldGenerator(entry.Value)) { if (valueGenerator.Generators.ContainsKey(property.PropertyType) || valueGenerator.Generators.ContainsKey(valueType)) { CodeExpression propValue = valueGenerator.ProcessGenerators(classType, method, entry.Value, actionName); if (propValue != null) { method.Statements.Add(new CodeAssignStatement(new CodeFieldReferenceExpression(actionVarRef, property.Name), propValue)); } } else if (entry.Value is PropertyPath) { PropertyPath path = entry.Value as PropertyPath; method.Statements.Add(new CodeAssignStatement( new CodeFieldReferenceExpression(actionVarRef, property.Name), new CodeObjectCreateExpression("PropertyPath", new CodePrimitiveExpression(path.Path)))); } else { MethodInfo generic = generateFieldMethod.MakeGenericMethod(property.PropertyType); if (generic == null) { throw new NullReferenceException("Generic method not created for type - " + property.PropertyType); } generic.Invoke(null, new object[] { method, actionVarRef, action, property }); } } } CodeComHelper.GenerateBindings(method, actionVarRef, action, actionName, behaviorVarRef); //CodeComHelper.GenerateResourceReferences(method, actionVarRef, action); } }
/// <summary> /// Generates control fields /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="method"></param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod method, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, method, generateField); DataGridTemplateColumn column = source as DataGridTemplateColumn; CodeComHelper.GenerateTemplateStyleField(classType, method, fieldReference, source, DataGridTemplateColumn.CellTemplateProperty, ColumnName + "_ct"); return(fieldReference); }
/// <summary> /// Generates control fields /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); ButtonBase buttonBase = source as ButtonBase; CodeComHelper.GenerateField <object>(initMethod, fieldReference, source, ButtonBase.CommandParameterProperty); CodeComHelper.GenerateEnumField <ClickMode>(initMethod, fieldReference, source, ButtonBase.ClickModeProperty); return(fieldReference); }
/// <summary> /// Generates code /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField"></param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); CodeComHelper.GenerateField <int>(initMethod, fieldReference, source, RepeatButton.DelayProperty); CodeComHelper.GenerateField <int>(initMethod, fieldReference, source, RepeatButton.IntervalProperty); return(fieldReference); }
/// <summary> /// Generates code /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); TabControl tabControl = source as TabControl; CodeComHelper.GenerateEnumField <Dock>(initMethod, fieldReference, source, TabControl.TabStripPlacementProperty); return(fieldReference); }
/// <summary> /// Generates control fields /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="method">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod method, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, method, generateField); CodeComHelper.GenerateField <int>(method, fieldReference, source, AnimatedImage.FrameWidthProperty); CodeComHelper.GenerateField <int>(method, fieldReference, source, AnimatedImage.FrameHeightProperty); CodeComHelper.GenerateField <int>(method, fieldReference, source, AnimatedImage.FramesPerSecondProperty); return(fieldReference); }
private static CodeExpression GetSoundSourceCollectionValueExpression(CodeMemberMethod method, object value, string baseName) { string collVar = baseName + "_sounds"; CodeVariableDeclarationStatement collection = new CodeVariableDeclarationStatement("var", collVar, new CodeObjectCreateExpression("SoundSourceCollection")); method.Statements.Add(collection); CodeComHelper.GenerateSoundSources(method, value as SoundSourceCollection, collVar); return(new CodeVariableReferenceExpression(collVar)); }
/// <summary> /// Generates code /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); TextBox textBox = source as TextBox; CodeComHelper.GenerateField <string>(initMethod, fieldReference, source, TextBox.TextProperty); return(fieldReference); }
/// <summary> /// Generates code /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField"></param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); ListBox listBox = source as ListBox; CodeComHelper.GenerateEnumField <SelectionMode>(initMethod, fieldReference, source, ListBox.SelectionModeProperty); return(fieldReference); }
/// <summary> /// Generates code /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="method">The initialize method.</param> /// <param name="generateField"></param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod method, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, method, generateField); TabItem item = source as TabItem; CodeComHelper.GenerateField <bool>(method, fieldReference, source, Selector.IsSelectedProperty); return(fieldReference); }
/// <summary> /// Generates the specified source. /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); ProgressBar bar = source as ProgressBar; CodeComHelper.GenerateEnumField <Orientation>(initMethod, fieldReference, bar, ProgressBar.OrientationProperty); return(fieldReference); }
/// <summary> /// Generates control fields /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField"></param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); ComboBox combo = source as ComboBox; CodeComHelper.GenerateFieldDoubleToFloat(initMethod, fieldReference, source, ComboBox.MaxDropDownHeightProperty); return(fieldReference); }
/// <summary> /// Generates code /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField"></param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); Expander expander = source as Expander; CodeComHelper.GenerateField <bool>(initMethod, fieldReference, source, Expander.IsExpandedProperty); return(fieldReference); }
/// <summary> /// Generates code /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); RadioButton radio = source as RadioButton; CodeComHelper.GenerateField <string>(initMethod, fieldReference, source, RadioButton.GroupNameProperty); return(fieldReference); }
/// <summary> /// Generates code /// </summary> /// <param name="source">The dependence object</param> /// <param name="classType">Type of the class.</param> /// <param name="initMethod">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField); PasswordBox passBox = source as PasswordBox; CodeComHelper.GenerateField <char>(initMethod, fieldReference, source, PasswordBox.PasswordCharProperty); return(fieldReference); }
/// <summary> /// Generates the specified source. /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="method">The method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod method, bool generateField) { CodeExpression fieldReference = base.Generate(source, classType, method, generateField); LineSeries2D series = source as LineSeries2D; CodeComHelper.GenerateField <float>(method, fieldReference, source, LineSeries2D.LineThicknessProperty); return(fieldReference); }
private static void GenerateInputBindings(CodeMemberMethod method, FrameworkElement element) { for (int i = 0; i < element.InputBindings.Count; i++) { CodeVariableDeclarationStatement bindingVar = null; string bindingVarName = element.Name + "_IB_" + i; var bindingVarRef = new CodeVariableReferenceExpression(bindingVarName); MouseBinding mouseBinding = element.InputBindings[i] as MouseBinding; if (mouseBinding != null) { bindingVar = new CodeVariableDeclarationStatement("MouseBinding", bindingVarName, new CodeObjectCreateExpression("MouseBinding")); method.Statements.Add(bindingVar); MouseGesture mouseGesture = mouseBinding.Gesture as MouseGesture; if (mouseGesture != null) { method.Statements.Add(new CodeAssignStatement( new CodeFieldReferenceExpression(bindingVarRef, "Gesture"), new CodeObjectCreateExpression("MouseGesture", new CodeFieldReferenceExpression(new CodeTypeReferenceExpression(typeof(MouseAction).Name), mouseGesture.MouseAction.ToString()), new CodeFieldReferenceExpression(new CodeTypeReferenceExpression(typeof(ModifierKeys).Name), mouseGesture.Modifiers.ToString()) ))); } } KeyBinding keyBinding = element.InputBindings[i] as KeyBinding; if (keyBinding != null) { bindingVar = new CodeVariableDeclarationStatement("KeyBinding", bindingVarName, new CodeObjectCreateExpression("KeyBinding")); method.Statements.Add(bindingVar); KeyGesture keyGesture = keyBinding.Gesture as KeyGesture; if (keyGesture != null) { method.Statements.Add(new CodeAssignStatement( new CodeFieldReferenceExpression(bindingVarRef, "Gesture"), new CodeObjectCreateExpression("KeyGesture", new CodeFieldReferenceExpression(new CodeTypeReferenceExpression("KeyCode"), keyGesture.Key.ToString()), new CodeFieldReferenceExpression(new CodeTypeReferenceExpression(typeof(ModifierKeys).Name), keyGesture.Modifiers.ToString()), new CodePrimitiveExpression(keyGesture.DisplayString) ))); } } if (bindingVar != null) { DependencyObject depObject = element.InputBindings[i] as DependencyObject; CodeComHelper.GenerateField <object>(method, bindingVarRef, depObject, InputBinding.CommandParameterProperty); CodeComHelper.GenerateBindings(method, bindingVarRef, depObject, bindingVarName); method.Statements.Add(new CodeMethodInvokeExpression( new CodeVariableReferenceExpression(element.Name), "InputBindings.Add", new CodeVariableReferenceExpression(bindingVarName))); } } }