// FIXME: map all modifiers correctly
		static MemberAttributes ConvMemberAttributes(Modifiers modifier)
		{
			MemberAttributes attr = (MemberAttributes)0;
			
			if ((modifier & Modifiers.Abstract) != 0)
				attr |=  MemberAttributes.Abstract;
			if ((modifier & Modifiers.Const) != 0)
				attr |=  MemberAttributes.Const;
			if ((modifier & Modifiers.Sealed) != 0)
				attr |=  MemberAttributes.Final;
			if ((modifier & Modifiers.New) != 0)
				attr |=  MemberAttributes.New;
			if ((modifier & Modifiers.Virtual) != 0)
				attr |=  MemberAttributes.Overloaded;
			if ((modifier & Modifiers.Override) != 0)
				attr |=  MemberAttributes.Override;
			if ((modifier & Modifiers.Static) != 0)
				attr |=  MemberAttributes.Static;
			
			if ((modifier & Modifiers.Private) != 0)
				attr |=  MemberAttributes.Private;
			else if ((modifier & Modifiers.Public) != 0)
				attr |=  MemberAttributes.Public;
			else if ((modifier & Modifiers.Internal) != 0 && (modifier & Modifiers.Protected) != 0)
				attr |=  MemberAttributes.FamilyOrAssembly;
			else if ((modifier & Modifiers.Internal) != 0)
				attr |=  MemberAttributes.Assembly;
			else if ((modifier & Modifiers.Protected) != 0)
				attr |=  MemberAttributes.Family;
			
			return attr;
		}
示例#2
0
        public void DoControlGroup(World world, int group, Modifiers mods)
        {
            if (mods.HasModifier(Modifiers.Ctrl))
            {
                if (actors.Count == 0)
                    return;

                controlGroups[group].Clear();

                for (var i = 0; i < 10; i++)	/* all control groups */
                    controlGroups[i].RemoveAll(a => actors.Contains(a));

                controlGroups[group].AddRange(actors);
                return;
            }

            if (mods.HasModifier(Modifiers.Alt))
            {
                Game.viewport.Center(controlGroups[group]);
                return;
            }

            Combine(world, controlGroups[group],
                mods.HasModifier(Modifiers.Shift), false);
        }
			void CheckName(TypeDeclaration node, AffectedEntity entity, Identifier identifier, Modifiers accessibilty)
			{
				TypeResolveResult resolveResult = ctx.Resolve(node) as TypeResolveResult;
				if (resolveResult == null)
					return;
				var type = resolveResult.Type;
				if (type.DirectBaseTypes.Any(t => t.FullName == "System.Attribute")) {
					if (CheckNamedResolveResult(resolveResult, node, AffectedEntity.CustomAttributes, identifier, accessibilty)) {
						return;
					}
				} else if (type.DirectBaseTypes.Any(t => t.FullName == "System.EventArgs")) {
					if (CheckNamedResolveResult(resolveResult, node, AffectedEntity.CustomEventArgs, identifier, accessibilty)) {
						return;
					}
				} else if (type.DirectBaseTypes.Any(t => t.FullName == "System.Exception")) {
					if (CheckNamedResolveResult(resolveResult, node, AffectedEntity.CustomExceptions, identifier, accessibilty)) {
						return;
					}
				}

				var typeDef = type.GetDefinition();
				if (typeDef != null && typeDef.Attributes.Any(attr => attr.AttributeType.FullName == "NUnit.Framework.TestFixtureAttribute")) {
					if (CheckNamedResolveResult(resolveResult, node, AffectedEntity.TestType, identifier, accessibilty)) {
						return;
					}
				}

				CheckNamedResolveResult(resolveResult, node, entity, identifier, accessibilty);
			}
 public ConstantFieldDeclarationNode(Token token,
                                     ParseNodeList attributes,
                                     Modifiers modifiers,
                                     ParseNode type,
                                     ParseNodeList initializers)
     : base(ParseNodeType.ConstFieldDeclaration, token, attributes, modifiers, type, initializers, false) {
 }
 public string CheckName(SemanticModel ctx, string name, AffectedEntity entity, Modifiers accessibilty = Modifiers.Private, bool isStatic = false)
 {
     foreach (var rule in Rules)
     {
         if (!rule.AffectedEntity.HasFlag(entity))
         {
             continue;
         }
         if (!rule.VisibilityMask.HasFlag(accessibilty))
         {
             continue;
         }
         if (isStatic && !rule.IncludeStaticEntities || !isStatic && !rule.IncludeInstanceMembers)
         {
             continue;
         }
         if (!rule.IsValid(name))
         {
             IList<string> suggestedNames;
             rule.GetErrorMessage(ctx, name, out suggestedNames);
             if (suggestedNames.Any())
                 return suggestedNames[0];
         }
     }
     return name;
 }
 public Hotkey(Keys key, Modifiers modifiers, HotkeyHandler handler)
 {
     Key = key;
     Modifiers = modifiers;
     Handler = handler;
     Id = GetHashCode();
 }
示例#7
0
 /// <summary>
 /// Creates a new KeyboardEventArgs, given a time for the event, the key that was pressed, and
 /// the modifiers that were applied at the time of the press, as well as the keyboard state at 
 /// the time the event occurred.
 /// </summary>
 public CharacterEventArgs(TimeSpan time, char character, Modifiers modifiers, KeyboardState state)
     : base(time)
 {
     Character = character;
     State = state;
     Modifiers = modifiers;
 }
 public DestructorDeclarationNode(Token token,
                                  ParseNodeList attributes,
                                  Modifiers modifiers,
                                  AtomicNameNode name,
                                  BlockStatementNode body)
     : base(ParseNodeType.DestructorDeclaration, token, attributes, modifiers, /* return type */ null, name, new ParseNodeList(), body) {
 }
示例#9
0
        public void DoControlGroup(World world, WorldRenderer worldRenderer, int group, Modifiers mods, int MultiTapCount)
        {
            var addModifier = Platform.CurrentPlatform == PlatformType.OSX ? Modifiers.Meta : Modifiers.Ctrl;
            if (mods.HasModifier(addModifier))
            {
                if (actors.Count == 0)
                    return;

                if (!mods.HasModifier(Modifiers.Shift))
                    controlGroups[group].Clear();

                for (var i = 0; i < 10; i++)	/* all control groups */
                    controlGroups[i].RemoveAll(a => actors.Contains(a));

                controlGroups[group].AddRange(actors.Where(a => a.Owner == world.LocalPlayer));
                return;
            }

            var groupActors = controlGroups[group].Where(a => !a.IsDead() && !world.FogObscures(a));

            if (mods.HasModifier(Modifiers.Alt) || MultiTapCount >= 2)
            {
                worldRenderer.Viewport.Center(groupActors);
                return;
            }

            Combine(world, groupActors, mods.HasModifier(Modifiers.Shift), false);
        }
示例#10
0
 public ConstructorDeclaration(string name, Modifiers modifier,
     List<ParameterDeclarationExpression> parameters,
     ConstructorInitializer constructorInitializer,
     List<AttributeSection> attributes)
     : base(modifier, attributes, name, parameters)
 {
 }
示例#11
0
        public void DoControlGroup(World world, int group, Modifiers mods, int MultiTapCount)
        {
            var addModifier = Platform.CurrentPlatform == PlatformType.OSX ? Modifiers.Meta : Modifiers.Ctrl;
            if (mods.HasModifier(addModifier))
            {
                if (actors.Count == 0)
                    return;

                if (!mods.HasModifier(Modifiers.Shift))
                    controlGroups[group].Clear();

                for (var i = 0; i < 10; i++)	/* all control groups */
                    controlGroups[i].RemoveAll(a => actors.Contains(a));

                controlGroups[group].AddRange(actors);
                return;
            }

            if (mods.HasModifier(Modifiers.Alt) || MultiTapCount >= 2)
            {
                Game.viewport.Center(controlGroups[group]);
                return;
            }

            Combine(world, controlGroups[group],
                mods.HasModifier(Modifiers.Shift), false);
        }
示例#12
0
 //        public void Add(Modifiers m)
 //        {
 //            Add(m.cur, m.Location);
 //        }
 public void Check(Modifiers allowed)
 {
     Modifiers wrong = cur & ~allowed;
     if (wrong != Modifiers.None) {
     //				parser.Error("modifier(s) " + wrong + " not allowed here");
     }
 }
 public VariableDeclarationNode(Token token,
                                ParseNodeList attributes,
                                Modifiers modifiers,
                                ParseNode type,
                                ParseNodeList initializers,
                                bool isFixed)
     : this(ParseNodeType.VariableDeclaration, token, attributes, modifiers, type, initializers, isFixed) {
 }
示例#14
0
 /// <summary>
 /// Creates a new KeyboardEventArgs, given a time for the event, the key that was pressed, and
 /// the modifiers that were applied at the time of the press, as well as the keyboard state at 
 /// the time the event occurred.
 /// </summary>
 public KeyboardEventArgs(TimeSpan time, Keys key, Modifiers modifiers, KeyboardState state)
     : base(time)
 {
     Character = KeyboardUtil.ToChar(key, modifiers);
     State = state;
     Modifiers = modifiers;
     Key = key;
 }
示例#15
0
 public void ReplaceModifiers(AttributedNode node, Modifiers oldModifier, Modifiers newModifier)
 {
     if (ContainsModifier(node, oldModifier))
     {
         RemoveModifierFrom(node, oldModifier);
         AddModifierTo(node, newModifier);
     }
 }
示例#16
0
		protected CompilerGeneratedContainer (TypeContainer parent, MemberName name, Modifiers mod, MemberKind kind)
			: base (parent, name, null, kind)
		{
			Debug.Assert ((mod & Modifiers.AccessibilityMask) != 0);

			ModFlags = mod | Modifiers.COMPILER_GENERATED | Modifiers.SEALED;
			spec = new TypeSpec (Kind, null, this, null, ModFlags);
		}
		int GetAccessSortValue (Modifiers mods)
		{
			if ((mods & Modifiers.Private) != 0) return 0;
			if ((mods & Modifiers.Internal) != 0) return 1;
			if ((mods & Modifiers.Protected) != 0) return 2;
			if ((mods & Modifiers.Public) != 0) return 3;
			return 4;
		}
示例#18
0
 public GlobalHotKey(IntPtr handle, Key keys, Modifiers modifiers, Action handler)
 {
     this.handle = handle;
     this.key = keys;
     this.modifiers = modifiers;
     this.handler = handler;
     this.id = (int)keys ^ (int)modifiers;
 }
示例#19
0
 // This checks if the only key being held is the one we want using the Modifier helper.
 public bool GetModifier(Modifiers key)
 {
     switch (key)
     {
         case Modifiers.Control: return Modifier(Modifiers.Control) && !Modifier(Modifiers.Alt) && !Modifier(Modifiers.Shift);
         case Modifiers.Alt: return !Modifier(Modifiers.Control) && Modifier(Modifiers.Alt) && !Modifier(Modifiers.Shift);
         default: return !Modifier(Modifiers.Control) && !Modifier(Modifiers.Alt) && Modifier(Modifiers.Shift);
     }
 }
 public static PropertyDeclaration CreateAutoPropertyDeclaration(string name, string type, Modifiers modifiers)
 {
     return new PropertyDeclaration(modifiers, new List<AttributeSection>(), name, new List<ParameterDeclarationExpression>())
     {
         TypeReference = CreateTypeReference(type),
         GetRegion = CreateAutoPropertyGetRegion(),
         SetRegion = CreateAutoPropertySetRegion()
     };
 }
示例#21
0
		public MouseInput(MouseInputEvent ev, MouseButton button, int scrollDelta, int2 location, Modifiers mods, int multiTapCount)
		{
			Event = ev;
			Button = button;
			ScrollDelta = scrollDelta;
			Location = location;
			Modifiers = mods;
			MultiTapCount = multiTapCount;
		}
        private static bool IsPrivateOrNone(Modifiers modifiers)
        {
            if ((modifiers & Modifiers.Private) == Modifiers.Private)
                return true;

            if ((modifiers & Modifiers.Visibility) == Modifiers.None)
                return true;

            return false;
        }
 public OperatorDeclarationNode(Token token,
                                ParseNodeList attributes,
                                Modifiers modifiers,
                                TokenType operatorNodeType,
                                ParseNode returnType,
                                ParseNodeList formals,
                                BlockStatementNode body)
     : base(ParseNodeType.OperatorDeclaration, token, attributes, modifiers, returnType, /* name */ null, formals, body) {
     this.operatorTokenType = operatorNodeType;
 }
示例#24
0
 public Hotkey(Modifiers modifier, Keys key, Window window, bool registerImmediately = false)
 {
     if (window == null) throw new ArgumentException("You must provide a form or window to register the hotkey to.", "window");
     Modifier = modifier;
     Key = key;
     _hWnd = new WindowInteropHelper(window).Handle;
     Id = GetHashCode();
     HookWndProc(window);
     if (registerImmediately) Register();
 }
 public PropertyDeclarationNode(Token token,
                                ParseNodeList attributes,
                                Modifiers modifiers,
                                ParseNode type,
                                NameNode interfaceType,
                                AtomicNameNode name,
                                AccessorNode getOrRemove,
                                AccessorNode setOrAdd)
     : this(ParseNodeType.PropertyDeclaration, token, attributes, modifiers, type, interfaceType, getOrRemove, setOrAdd) {
     _name = (AtomicNameNode)GetParentedNode(name);
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="AccessModifier">Access modifier</param>
 /// <param name="Modifier">Modifier</param>
 /// <param name="Type">Type</param>
 /// <param name="FunctionName">Function name</param>
 /// <param name="ParameterList">Parameter list</param>
 /// <param name="Body">Body of the function</param>
 /// <param name="Parser">Parser to use</param>
 public Function(AccessModifier AccessModifier, Modifiers Modifier, string Type,
     string FunctionName, IParameter[] ParameterList, string Body, IParser Parser)
     : base(Parser)
 {
     this.AccessModifier = AccessModifier;
     this.Modifier = Modifier;
     this.Type = Type;
     this.Name = FunctionName;
     this.Parameters = ParameterList.ToList();
     this.Body = Body;
 }
 public static MethodDeclaration CreateEmptyMethodDeclaration(string name, string returnTypeName, Modifiers modifiers, List<ParameterDeclarationExpression> parameters)
 {
     return new MethodDeclaration
     {
         Name = name,
         TypeReference = CreateTypeReference(returnTypeName),
         Modifier = modifiers,
         Parameters = parameters,
         Body = CreateEmptyBlockStatement(returnTypeName)
     };
 }
 /// <summary>
 /// Creates a GlobalHotkey object.
 /// </summary>
 /// <param name="modifier">Hotkey modifier keys</param>
 /// <param name="key">Hotkey</param>
 /// <param name="window">The Window that the hotkey should be registered to</param>
 /// <param name="registerImmediately"> </param>
 public GlobalHotkey(Modifiers modifier, Keys key, IWin32Window window, bool registerImmediately = false)
 {
     if (window == null && registerImmediately) throw new ArgumentNullException("window", "You must provide a form or window to register the hotkey against.");
     Modifier = modifier;
     Key = (int)key;
     if (window != null)
         hWnd = window.Handle;
     Id = GetHashCode();
     if (registerImmediately) Register();
     nextId+=10;
 }
示例#29
0
 public AccessorNode(Token token,
                     ParseNodeList attributes,
                     AtomicNameNode name,
                     BlockStatementNode body,
                     Modifiers modifiers)
     : base(ParseNodeType.AccessorDeclaration, token) {
     _name = (AtomicNameNode)GetParentedNode(name);
     _implementation = (BlockStatementNode)GetParentedNode(body);
     _attributes = GetParentedNodeList(attributes);
     _modifiers = modifiers;
 }
 public IndexerDeclarationNode(Token token,
                               ParseNodeList attributes,
                               Modifiers modifiers,
                               ParseNode type,
                               NameNode interfaceType,
                               ParseNodeList parameters,
                               AccessorNode get,
                               AccessorNode set)
     : base(ParseNodeType.IndexerDeclaration, token, attributes, modifiers, type, interfaceType, get, set)
 {
     _parameters = GetParentedNodeList(parameters);
 }
示例#31
0
 // ignore all input
 public void ModifierKeys(Modifiers mods)
 {
 }
示例#32
0
 public ClassInfo(TypeDefinition c)
 {
     this.def       = c;
     this.modifiers = Util.ConvertModifiers(c);
     Rename();
 }
示例#33
0
        ///<summary> Add radiation sub-panel, including tooltips </summary>
        private static void AddSubPanelRadiation(Panel p)
        {
            // get first radiation rule
            // - guaranteed to exist, as this panel is not rendered if it doesn't
            // - even without crew, it is safe to evaluate the modifiers that use it
            Rule rule = Profile.rules.Find(k => k.modifiers.Contains("radiation"));

            // detect if it use shielding
            bool use_shielding = rule.modifiers.Contains("shielding");

            // calculate various radiation levels
            double[] levels = new[]
            {
                Math.Max(Radiation.Nominal, (env_analyzer.surface_rad + vessel_analyzer.emitted)),                        // surface
                Math.Max(Radiation.Nominal, (env_analyzer.magnetopause_rad + vessel_analyzer.emitted)),                   // inside magnetopause
                Math.Max(Radiation.Nominal, (env_analyzer.inner_rad + vessel_analyzer.emitted)),                          // inside inner belt
                Math.Max(Radiation.Nominal, (env_analyzer.outer_rad + vessel_analyzer.emitted)),                          // inside outer belt
                Math.Max(Radiation.Nominal, (env_analyzer.heliopause_rad + vessel_analyzer.emitted)),                     // interplanetary
                Math.Max(Radiation.Nominal, (env_analyzer.extern_rad + vessel_analyzer.emitted)),                         // interstellar
                Math.Max(Radiation.Nominal, (env_analyzer.storm_rad + vessel_analyzer.emitted))                           // storm
            };

            // evaluate modifiers (except radiation)
            List <string> modifiers_except_radiation = new List <string>();

            foreach (string s in rule.modifiers)
            {
                if (s != "radiation")
                {
                    modifiers_except_radiation.Add(s);
                }
            }
            double mod = Modifiers.Evaluate(env_analyzer, vessel_analyzer, resource_sim, modifiers_except_radiation);

            // calculate life expectancy at various radiation levels
            double[] estimates = new double[7];
            for (int i = 0; i < 7; ++i)
            {
                estimates[i] = rule.fatal_threshold / (rule.degeneration * mod * levels[i]);
            }

            // generate tooltip
            RadiationModel mf      = Radiation.Info(env_analyzer.body).model;
            string         tooltip = Lib.BuildString
                                     (
                "<align=left />",
                String.Format("{0,-20}\t<b>{1}</b>\n", "surface", Lib.HumanReadableDuration(estimates[0])),
                mf.has_pause ? String.Format("{0,-20}\t<b>{1}</b>\n", "magnetopause", Lib.HumanReadableDuration(estimates[1])) : "",
                mf.has_inner ? String.Format("{0,-20}\t<b>{1}</b>\n", "inner belt", Lib.HumanReadableDuration(estimates[2])) : "",
                mf.has_outer ? String.Format("{0,-20}\t<b>{1}</b>\n", "outer belt", Lib.HumanReadableDuration(estimates[3])) : "",
                String.Format("{0,-20}\t<b>{1}</b>\n", "interplanetary", Lib.HumanReadableDuration(estimates[4])),
                String.Format("{0,-20}\t<b>{1}</b>\n", "interstellar", Lib.HumanReadableDuration(estimates[5])),
                String.Format("{0,-20}\t<b>{1}</b>", "storm", Lib.HumanReadableDuration(estimates[6]))
                                     );

            // render the panel
            p.AddSection("RADIATION", string.Empty,
                         () => { p.Prev(ref special_index, panel_special.Count); enforceUpdate = true; },
                         () => { p.Next(ref special_index, panel_special.Count); enforceUpdate = true; });
            p.AddContent("surface", Lib.HumanReadableRadiation(env_analyzer.surface_rad + vessel_analyzer.emitted), tooltip);
            p.AddContent("orbit", Lib.HumanReadableRadiation(env_analyzer.magnetopause_rad), tooltip);
            if (vessel_analyzer.emitted >= 0.0)
            {
                p.AddContent("emission", Lib.HumanReadableRadiation(vessel_analyzer.emitted), tooltip);
            }
            else
            {
                p.AddContent("active shielding", Lib.HumanReadableRadiation(-vessel_analyzer.emitted), tooltip);
            }
            p.AddContent("shielding", rule.modifiers.Contains("shielding") ? Habitat.Shielding_to_string(vessel_analyzer.shielding) : "n/a", tooltip);
        }
示例#34
0
 internal static void HandleModifierKeys(Modifiers mods)
 {
     modifiers = mods;
 }
示例#35
0
        /// <summary>
        ///   send MG_ACT_ARROW_KEY to worker thread form key down,up,left,right
        ///   we are handling those keys
        /// </summary>
        /// <param name = "mgControl"> </param>
        /// <param name = "modifier"> </param>
        /// <param name = "keyCode"> </param>
        /// <param name = "suggestedValue"> </param>
        /// <returns> true if need to ignore this action key</returns>
        private bool processKeyForSelectionControl(MgFormBase mgForm, MgControlBase mgControl, Modifiers modifier, int keyCode, String suggestedValue)
        {
            bool isSelectionKey = false;

            switch (keyCode)
            {
            case GuiConstants.KEY_DOWN:
            case GuiConstants.KEY_UP:
                isSelectionKey = true;
                break;

            case GuiConstants.KEY_RIGHT:
            case GuiConstants.KEY_LEFT:
                if (!mgControl.isListBox())
                {
                    isSelectionKey = true;
                }
                break;

            case GuiConstants.KEY_SPACE:
                if (mgControl.isRadio())
                {
                    isSelectionKey = true;
                }
                break;

            case GuiConstants.KEY_PG_DOWN:
            case GuiConstants.KEY_PG_UP:
            case GuiConstants.KEY_HOME:
            case GuiConstants.KEY_END:
                if (mgControl.isComboBox())
                {
                    isSelectionKey = true;
                }
                break;
            }

            if (isSelectionKey)
            {
                // raise event
                Manager.EventsManager.AddKeyboardEvent(mgForm, mgControl, modifier, keyCode,
                                                       0, 0, null, null,
                                                       false, suggestedValue, InternalInterface.MG_ACT_ARROW_KEY);
            }
            return(isSelectionKey);
        }
示例#36
0
 public Hotkey(Keycode virtKey, Modifiers mod)
 {
     Key       = virtKey;
     Modifiers = mod;
 }
示例#37
0
文件: Command.cs 项目: aologos/Citrus
 public Command(Modifiers modifiers, Key main)
 {
     Shortcut = new Shortcut(modifiers, main);
 }
            void CheckName(MethodDeclaration node, AffectedEntity entity, Identifier identifier, Modifiers accessibilty)
            {
                ResolveResult resolveResult = null;

                if (node != null && node.Attributes.Any())
                {
                    resolveResult = ctx.Resolve(node);
                }

                if (resolveResult is MemberResolveResult)
                {
                    var member = ((MemberResolveResult)resolveResult).Member;
                    if (member.EntityType == EntityType.Method && member.Attributes.Any(attr => attr.AttributeType.FullName == "NUnit.Framework.TestAttribute"))
                    {
                        if (CheckNamedResolveResult(resolveResult, node, AffectedEntity.TestMethod, identifier, accessibilty))
                        {
                            return;
                        }
                    }
                }

                CheckNamedResolveResult(resolveResult, node, entity, identifier, accessibilty);
            }
 void CheckName(AstNode node, AffectedEntity entity, Identifier identifier, Modifiers accessibilty)
 {
     CheckNamedResolveResult(null, node, entity, identifier, accessibilty);
 }
            bool CheckNamedResolveResult(ResolveResult resolveResult, AstNode node, AffectedEntity entity, Identifier identifier, Modifiers accessibilty)
            {
                bool wasHandled = false;

                foreach (var rule in service.Rules)
                {
                    if (!rule.AffectedEntity.HasFlag(entity))
                    {
                        continue;
                    }
                    if (!rule.VisibilityMask.HasFlag(accessibilty))
                    {
                        continue;
                    }
                    if (!rule.IncludeInstanceMembers || !rule.IncludeStaticEntities)
                    {
                        EntityDeclaration typeSystemEntity;
                        if (node is VariableInitializer)
                        {
                            typeSystemEntity = node.Parent as EntityDeclaration;
                        }
                        else
                        {
                            typeSystemEntity = node as EntityDeclaration;
                        }
                        if (!rule.IncludeInstanceMembers)
                        {
                            if (typeSystemEntity == null || !typeSystemEntity.HasModifier(Modifiers.Static) || typeSystemEntity.HasModifier(Modifiers.Sealed))
                            {
                                continue;
                            }
                        }
                        if (!rule.IncludeStaticEntities)
                        {
                            if (typeSystemEntity == null || typeSystemEntity.HasModifier(Modifiers.Static) || typeSystemEntity.HasModifier(Modifiers.Sealed))
                            {
                                continue;
                            }
                        }
                    }

                    wasHandled = true;
                    if (!rule.IsValid(identifier.Name))
                    {
                        IList <string> suggestedNames;
                        var            msg     = rule.GetErrorMessage(ctx, identifier.Name, out suggestedNames);
                        var            actions = new List <CodeAction>(suggestedNames.Select(n => new CodeAction(string.Format(ctx.TranslateString("Rename to '{0}'"), n), (Script script) => {
                            if (resolveResult == null)
                            {
                                resolveResult = ctx.Resolve(node);
                            }
                            if (resolveResult is MemberResolveResult)
                            {
                                script.Rename(((MemberResolveResult)resolveResult).Member, n);
                            }
                            else if (resolveResult is TypeResolveResult)
                            {
                                var def = ((TypeResolveResult)resolveResult).Type.GetDefinition();
                                if (def != null)
                                {
                                    script.Rename(def, n);
                                }
                                else
                                {
                                    script.RenameTypeParameter(((TypeResolveResult)resolveResult).Type, n);
                                }
                            }
                            else if (resolveResult is LocalResolveResult)
                            {
                                script.Rename(((LocalResolveResult)resolveResult).Variable, n);
                            }
                            else if (resolveResult is NamespaceResolveResult)
                            {
                                script.Rename(((NamespaceResolveResult)resolveResult).Namespace, n);
                            }
                            else
                            {
                                script.Replace(identifier, Identifier.Create(n));
                            }
                        }, identifier)));

                        if (entity != AffectedEntity.Label)
                        {
                            actions.Add(new CodeAction(string.Format(ctx.TranslateString("Rename '{0}'..."), identifier.Name), (Script script) => {
                                if (resolveResult == null)
                                {
                                    resolveResult = ctx.Resolve(node);
                                }
                                if (resolveResult is MemberResolveResult)
                                {
                                    script.Rename(((MemberResolveResult)resolveResult).Member);
                                }
                                else if (resolveResult is TypeResolveResult)
                                {
                                    var def = ((TypeResolveResult)resolveResult).Type.GetDefinition();
                                    if (def != null)
                                    {
                                        script.Rename(def);
                                    }
                                    else
                                    {
                                        script.RenameTypeParameter(((TypeResolveResult)resolveResult).Type);
                                    }
                                }
                                else if (resolveResult is LocalResolveResult)
                                {
                                    script.Rename(((LocalResolveResult)resolveResult).Variable);
                                }
                                else if (resolveResult is NamespaceResolveResult)
                                {
                                    script.Rename(((NamespaceResolveResult)resolveResult).Namespace);
                                }
                            }, identifier));
                        }

                        AddIssue(identifier, msg, actions);
                    }
                }
                return(wasHandled);
            }
示例#41
0
 protected override string Append(string name)
 {
     return(name + " " + String.Join(" ", Modifiers.Select(m => m.ToString())));
 }
示例#42
0
 public CSharpModifierToken(TextLocation location, Modifiers modifier) : base(location, null)
 {
     this.Modifier = modifier;
 }
示例#43
0
 public MouseInput(MouseInputEvent ev, MouseButton button, int2 location, int2 delta, Modifiers mods, int multiTapCount)
 {
     Event         = ev;
     Button        = button;
     Location      = location;
     Delta         = delta;
     Modifiers     = mods;
     MultiTapCount = multiTapCount;
 }
示例#44
0
 public T OopModifier(Modifiers enumModifier)
 {
     OopModifierScript = ModifierReverser.GetModifier(enumModifier);
     return(Link);
 }
 public TypeDeclaration(Modifiers modifier, List <AttributeSection> attributes) : base(modifier, attributes)
 {
 }
示例#46
0
 public FieldInfo(FieldDefinition f)
 {
     this.def  = f;
     modifiers = Util.ConvertModifiers(f);
     Rename();
 }
示例#47
0
    public SystemElement(SystemElementControl control, SystemElementType type, int size, Modifiers modifiers)
    {
        Control        = control;
        Type           = type;
        Size           = size;
        this.modifiers = modifiers;

        Name = control.Name + " " + type.Name;

        float modifier = (Type.Power + Control.Power) * Size;

        PowerModifier = Mathf.RoundToInt(modifier);
    }
示例#48
0
        public static IEnumerable <Actor> SelectActorsInBoxWithDeadzone(World world, int2 a, int2 b, Modifiers modifiers)
        {
            // For dragboxes that are too small, shrink the dragbox to a single point (point b)
            if ((a - b).Length <= Game.Settings.Game.SelectionDeadzone)
            {
                a = b;
            }

            if (a == b)
            {
                return(SelectHighestPriorityActorAtPoint(world, a, modifiers));
            }

            return(world.ScreenMap.ActorsInMouseBox(a, b)
                   .Select(x => x.Actor)
                   .Where(x => x.Info.HasTraitInfo <ISelectableInfo>() && (x.Owner.IsAlliedWith(world.RenderPlayer) || !world.FogObscures(x)))
                   .SubsetWithHighestSelectionPriority(modifiers));
        }
示例#49
0
        /// <summary>Pass keycode and modifier to bridge, bridge then converts it to keyboard action and adds in MgCore.dll
        /// events queue</summary>
        /// <param name="form"></param>
        /// <param name="guiMgCtrl"></param>
        /// <param name="modifier"></param>
        /// <param name="keyCode"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="caretPos"></param>
        /// <param name="text"></param>
        /// <param name="im"></param>
        /// <param name="isActChar"></param>
        /// <param name="suggestedValue"></param>
        /// <param name="ComboIsDropDown"></param>
        /// <param name="handled">boolean variable event is handled or not.</param>
        /// <returns> true only if we have handled the KeyDown event (otherwise the CLR should handle). If true magic will handle else CLR will handle.</returns>
        protected virtual bool processKeyDown(GuiMgForm guiMgForm, GuiMgControl guiMgCtrl, Modifiers modifier, int keyCode,
                                              int start, int end, string text, ImeParam im,
                                              bool isActChar, string suggestedValue, bool ComboIsDropDown, bool handled)
        {
            bool eventHandled     = handled;
            bool addKeyBoardEvent = true;

            MgControlBase mgControl = (MgControlBase)guiMgCtrl;
            MgFormBase    mgForm    = (MgFormBase)guiMgForm;

            if (mgControl != null)
            {
                //In case of help window, the events like up arrow\down arrow key, should be handled by the
                //CLR.So first check if the form is help form and return the value true or false.

                if (mgControl.getForm() != null && mgControl.getForm().IsHelpWindow&& keyCode != GuiConstants.KEY_ESC)
                {
                    //events related with the help window will NOT be handled by magic.
                    return(false);
                }

                // DOWN or UP invoked on a SELECT/RADIO control
                if ((mgControl.isRadio() || mgControl.isListBox() ||
                     (mgControl.isComboBox() && ComboIsDropDown) ||
                     (mgControl.isTabControl() && !suggestedValue.Equals("-1"))))
                {
                    if (processKeyForSelectionControl(mgForm, mgControl, modifier, keyCode, suggestedValue))
                    {
                        addKeyBoardEvent = false;
                    }
                }
            }

            if (addKeyBoardEvent)
            {
                // raise event
                Manager.EventsManager.AddKeyboardEvent(mgForm, mgControl, modifier, keyCode,
                                                       start, end, text, im,
                                                       isActChar, suggestedValue, InternalInterface.MG_ACT_CTRL_KEYDOWN);
            }

            return(eventHandled);
        }
示例#50
0
        public static IEnumerable <Actor> SelectHighestPriorityActorAtPoint(World world, int2 a, Modifiers modifiers)
        {
            var selected = world.ScreenMap.ActorsAtMouse(a)
                           .Where(x => x.Actor.Info.HasTraitInfo <ISelectableInfo>() && (x.Actor.Owner.IsAlliedWith(world.RenderPlayer) || !world.FogObscures(x.Actor)))
                           .WithHighestSelectionPriority(a, modifiers);

            if (selected != null)
            {
                yield return(selected);
            }
        }
示例#51
0
 /// <summary>
 /// put multimark hit event
 /// </summary>
 /// <param name="guiMgCtrl"></param>
 /// <param name="row"></param>
 void processMultimarkHitEvent(GuiMgControl guiMgCtrl, int row, Modifiers modifier)
 {
     Manager.EventsManager.addGuiTriggeredEvent((MgControlBase)guiMgCtrl, InternalInterface.MG_ACT_MULTI_MARK_HIT, row, modifier);
 }
示例#52
0
        public static string GetModifierName(Modifiers modifier)
        {
            switch (modifier)
            {
            case Modifiers.Private:
                return("private");

            case Modifiers.Internal:
                return("internal");

            case Modifiers.Protected:
                return("protected");

            case Modifiers.Public:
                return("public");

            case Modifiers.Abstract:
                return("abstract");

            case Modifiers.Virtual:
                return("virtual");

            case Modifiers.Sealed:
                return("sealed");

            case Modifiers.Static:
                return("static");

            case Modifiers.Override:
                return("override");

            case Modifiers.Ref:
                return("ref");

            case Modifiers.Readonly:
                return("readonly");

            case Modifiers.Const:
                return("const");

            case Modifiers.New:
                return("new");

            case Modifiers.Partial:
                return("partial");

            case Modifiers.Extern:
                return("extern");

            case Modifiers.Volatile:
                return("volatile");

            case Modifiers.Unsafe:
                return("unsafe");

            case Modifiers.Async:
                return("async");

            case Modifiers.Any:
                // even though it's used for pattern matching only, 'any' needs to be in this list to be usable in the AST
                return("any");

            default:
                throw new NotSupportedException("Invalid value for Modifiers");
            }
        }
 public string CheckName(RefactoringContext ctx, string name, AffectedEntity entity, Modifiers accessibilty = Modifiers.Private, bool isStatic = false)
 {
     foreach (var rule in Rules)
     {
         if (!rule.AffectedEntity.HasFlag(entity))
         {
             continue;
         }
         if (!rule.VisibilityMask.HasFlag(accessibilty))
         {
             continue;
         }
         if (isStatic && !rule.IncludeStaticEntities || !isStatic && !rule.IncludeInstanceMembers)
         {
             continue;
         }
         if (!rule.IsValid(name))
         {
             IList <string> suggestedNames;
             rule.GetErrorMessage(ctx, name, out suggestedNames);
             if (suggestedNames.Any())
             {
                 return(suggestedNames [0]);
             }
         }
     }
     return(name);
 }
示例#54
0
 public static bool HasModifier(this Modifiers k, Modifiers mod)
 {
     // PERF: Enum.HasFlag is slower and requires allocations.
     return((k & mod) == mod);
 }
示例#55
0
 public void ModifierKeys(Modifiers mods)
 {
     Game.HandleModifierKeys(mods);
 }
示例#56
0
 public KeyEventArgs(Keys keyCode, Modifiers keyModifiers)
 {
     this._keyCode      = keyCode;
     this._keyModifiers = keyModifiers;
 }
示例#57
0
 protected FieldBase(TypeDefinition parent, FullNamedExpression type, Modifiers mod, Modifiers allowed_mod, MemberName name, Attributes attrs)
     : base(parent, type, mod, allowed_mod | Modifiers.ABSTRACT, Modifiers.PRIVATE, name, attrs)
 {
     if ((mod & Modifiers.ABSTRACT) != 0)
     {
         Report.Error(681, Location, "The modifier 'abstract' is not valid on fields. Try using a property instead");
     }
 }
            void CheckName(TypeDeclaration node, AffectedEntity entity, Identifier identifier, Modifiers accessibilty)
            {
                TypeResolveResult resolveResult = ctx.Resolve(node) as TypeResolveResult;

                if (resolveResult == null)
                {
                    return;
                }
                var type = resolveResult.Type;

                if (type.DirectBaseTypes.Any(t => t.FullName == "System.Attribute"))
                {
                    if (CheckNamedResolveResult(resolveResult, node, AffectedEntity.CustomAttributes, identifier, accessibilty))
                    {
                        return;
                    }
                }
                else if (type.DirectBaseTypes.Any(t => t.FullName == "System.EventArgs"))
                {
                    if (CheckNamedResolveResult(resolveResult, node, AffectedEntity.CustomEventArgs, identifier, accessibilty))
                    {
                        return;
                    }
                }
                else if (type.DirectBaseTypes.Any(t => t.FullName == "System.Exception"))
                {
                    if (CheckNamedResolveResult(resolveResult, node, AffectedEntity.CustomExceptions, identifier, accessibilty))
                    {
                        return;
                    }
                }

                var typeDef = type.GetDefinition();

                if (typeDef != null && typeDef.Attributes.Any(attr => attr.AttributeType.FullName == "NUnit.Framework.TestFixtureAttribute"))
                {
                    if (CheckNamedResolveResult(resolveResult, node, AffectedEntity.TestType, identifier, accessibilty))
                    {
                        return;
                    }
                }

                CheckNamedResolveResult(resolveResult, node, entity, identifier, accessibilty);
            }
示例#59
0
 public Field(TypeDefinition parent, FullNamedExpression type, Modifiers mod, MemberName name, Attributes attrs)
     : base(parent, type, mod, AllowedModifiers, name, attrs)
 {
 }
示例#60
0
        public void DoControlGroup(World world, WorldRenderer worldRenderer, int group, Modifiers mods, int multiTapCount)
        {
            var addModifier = Platform.CurrentPlatform == PlatformType.OSX ? Modifiers.Meta : Modifiers.Ctrl;

            if (mods.HasModifier(addModifier))
            {
                if (actors.Count == 0)
                {
                    return;
                }

                if (!mods.HasModifier(Modifiers.Shift))
                {
                    controlGroups[group].Clear();
                }

                for (var i = 0; i < 10; i++)                    /* all control groups */
                {
                    controlGroups[i].RemoveAll(a => actors.Contains(a));
                }

                controlGroups[group].AddRange(actors.Where(a => a.Owner == world.LocalPlayer));
                return;
            }

            var groupActors = controlGroups[group].Where(a => !a.IsDead);

            if (mods.HasModifier(Modifiers.Alt) || multiTapCount >= 2)
            {
                worldRenderer.Viewport.Center(groupActors);
                return;
            }

            Combine(world, groupActors, mods.HasModifier(Modifiers.Shift), false);
        }