Search Results

Search found 14402 results on 577 pages for 'mouse properties'.

Page 6/577 | < Previous Page | 2 3 4 5 6 7 8 9 10 11 12 13  | Next Page >

  • How to Point sprite's direction towards Mouse or an Object [duplicate]

    - by Irfan Dahir
    This question already has an answer here: Rotating To Face a Point 1 answer I need some help with rotating sprites towards the mouse. I'm currently using the library allegro 5.XX. The rotation of the sprite works but it's constantly inaccurate. It's always a few angles off from the mouse to the left. Can anyone please help me with this? Thank you. P.S I got help with the rotating function from here: http://www.gamefromscratch.com/post/2012/11/18/GameDev-math-recipes-Rotating-to-face-a-point.aspx Although it's by javascript, the maths function is the same. And also, by placing: if(angle < 0) { angle = 360 - (-angle); } doesn't fix it. The Code: #include <allegro5\allegro.h> #include <allegro5\allegro_image.h> #include "math.h" int main(void) { int width = 640; int height = 480; bool exit = false; int shipW = 0; int shipH = 0; ALLEGRO_DISPLAY *display = NULL; ALLEGRO_EVENT_QUEUE *event_queue = NULL; ALLEGRO_BITMAP *ship = NULL; if(!al_init()) return -1; display = al_create_display(width, height); if(!display) return -1; al_install_keyboard(); al_install_mouse(); al_init_image_addon(); al_set_new_bitmap_flags(ALLEGRO_MIN_LINEAR | ALLEGRO_MAG_LINEAR); //smoother rotate ship = al_load_bitmap("ship.bmp"); shipH = al_get_bitmap_height(ship); shipW = al_get_bitmap_width(ship); int shipx = width/2 - shipW/2; int shipy = height/2 - shipH/2; int mx = width/2; int my = height/2; al_set_mouse_xy(display, mx, my); event_queue = al_create_event_queue(); al_register_event_source(event_queue, al_get_mouse_event_source()); al_register_event_source(event_queue, al_get_keyboard_event_source()); //al_hide_mouse_cursor(display); float angle; while(!exit) { ALLEGRO_EVENT ev; al_wait_for_event(event_queue, &ev); if(ev.type == ALLEGRO_EVENT_KEY_UP) { switch(ev.keyboard.keycode) { case ALLEGRO_KEY_ESCAPE: exit = true; break; /*case ALLEGRO_KEY_LEFT: degree -= 10; break; case ALLEGRO_KEY_RIGHT: degree += 10; break;*/ case ALLEGRO_KEY_W: shipy -=10; break; case ALLEGRO_KEY_S: shipy +=10; break; case ALLEGRO_KEY_A: shipx -=10; break; case ALLEGRO_KEY_D: shipx += 10; break; } }else if(ev.type == ALLEGRO_EVENT_MOUSE_AXES) { mx = ev.mouse.x; my = ev.mouse.y; angle = atan2(my - shipy, mx - shipx); } // al_draw_bitmap(ship,shipx, shipy, 0); //al_draw_rotated_bitmap(ship, shipW/2, shipH/2, shipx, shipy, degree * 3.142/180,0); al_draw_rotated_bitmap(ship, shipW/2, shipH/2, shipx, shipy,angle, 0); //I directly placed the angle because the allegro library calculates radians, and if i multiplied it by 180/3. 142 the rotation would go hawire, not would, it actually did. al_flip_display(); al_clear_to_color(al_map_rgb(0,0,0)); } al_destroy_bitmap(ship); al_destroy_event_queue(event_queue); al_destroy_display(display); return 0; } EDIT: This was marked duplicate by a moderator. I'd like to say that this isn't the same as that. I'm a total beginner at game programming, I had a view at that other topic and I had difficulty understanding it. Please understand this, thank you. :/ Also, while I was making a print of what the angle is I got this... Here is a screenshot:http://img34.imageshack.us/img34/7396/fzuq.jpg Which is weird because aren't angles supposed to be 360 degrees only?

    Read the article

  • Elantech trackpad being identified as a logitech wheel mouse

    - by user11895
    I recently purchased a Samsung RF510 laptop computer, which I absolutely love. However, upon installing Ubuntu 10.10 onto it I couldn't get the trackpad to function properly. It worked as a basic mouse (point and click) but had no functionality for edge scrolling or any of the multitouch settings the trackpad is capable of. After doing a lot of research I discovered the reason is a known issue where the Ubuntu kernel will improperly detect an Elantech trackpad as a logitech PS/2 wheel mouse, and as such will gain none of the functionality that seems to be coded for synaptics trackpads. The question I have is: does anyone know a way to get this working properly? This is my first time trying to run Ubuntu on a laptop (actually, it's my first laptop in the last 12 years) and I'm finding the experience to be intolerable without the basic scrolling/zooming/etc I've been used to using for as long as I can remember.

    Read the article

  • Swap Mouse Buttons on startup

    - by andy boot
    This one bugs me. I fashioned this handy script to swap the left and right mouse buttons over: [My mouse is a Razer] /usr/bin/xinput set-button-map `xinput list | grep 'Razer' | grep -o \=[0-9]* | grep -o [0-9]*$` 3 2 1 4 5 6 7 8 1 10 11 12 13 When I run this in a Terminal it works. When I go to Startup Application Preferences - Add and then literally paste the above into the command field as an 'Additional startup program' It does not run on startup. Why not? I'm using Ubuntu 11-10 but this also applied to the 10-10

    Read the article

  • USB Mouse/Keyboard not working

    - by crstn
    I installed Ubuntu 11.10 after booting it from a USB drive. Everything worked fine there, after booting the keyboard worked in grub but not after Ubuntu was booted. I can unplug either of them and plug them in via a PS2/USB adapter and the device will work. After switching a couple of times, I got the keyboard and mouse both working via usb but after I rebooted either stopped working. How can I fix this? The mouse is a Razer Krait and the keyboard is a Logitech ClassicKeyboard 200.

    Read the article

  • Mouse cursor is MASSIVE inside of firefox and chromium

    - by user171396
    While installing ubuntu i accidently hit the high contrast option. I could not figure out how to diable it within the install, so i let it complete. I booted up into ubuntu 13.04 and HC was still on. I disabled it in Universal Access, and now am noticing my mouse curose is huge in web browsers. This is very much a stock install. Is there a setting to disable the HUGE mouse? I mean the thing is 4 times the size of text etc on normal pages. and its only in broswsers from what ive seen so far. EDIT Looks like its in everthing with text.. terminal, app store, folders and files... /sigh.

    Read the article

  • Mouse running amok

    - by Norene Bult
    While using my mouse, it will all of a sudden take off and might run to calendar or/and trash. It opened calendar, then went down and opened trash up several times. It started out just doing it once in awhile with opening something and I didn't move it there. It did on it's own. Is someone controlling my computer? That's how it acts. I would like to get this straighted out. If it is my mouse just going berserk then I will install a new one. If it is something else, I'd like to know what could be causing it. I have my security set so no one can access my computer. Please can anyone help?

    Read the article

  • Mouse on screen lags

    - by Jeggy
    I just made a fresh install of Ubuntu 13.10 64bit on my Dell XPS 15 laptop. My mouse lags/glitches/blinks each time something is loading in Ubuntu. when a youtube video is playing in the background it blinks all the time, and it also blinks for each character that I write, it's very annoying. It also blinks for each time the Blinking Cursor in a text field blinks. When I have just booted up my laptop it can be away for a second or more (than after it comes back it goes away for a second or more and this happends for awhile), so I have no chance of seeing the mouse on my screen.

    Read the article

  • How do I configure the mouse to raise and lower windows

    - by user288496
    I've just installed 14.04 and cannot find the congfuration screen to control how mouse clicks are acted on by the window manager, and then optionally passed to the application. I want to set the sane traditional unix behaviour of: - 'focus follows mouse': done. - 'never auto-raise': done. - 'raise when click on border or title': Can't find the option. A middle button click on the tile does lower a window - but traditionally it would also raise the botton window. I can set 'raise on any click' - but that is absolutely hopeless when you are trying to copy text from a lower window.

    Read the article

  • Sensitive middle-button (mouse)

    - by Gilead
    Whenever I click on the middle-button on my mouse-wheel, it seems that multiple click events are being sent in succession. Case in point: when I middle-click a bookmark folder in Chrome (to open up all the bookmarks in tabs), Chrome opens up the same set of bookmarks three times. This is very annoying. Is there a way in X or Gnome to detune the sensitivity of my mouse's middle button to prevent multiple click events from being sent? Maybe like a double-click speed adjustment for the middle-button?

    Read the article

  • USB mouse freezes

    - by Zabba
    A simple Microsoft Optical mouse 1000 (USB) that runs perfectly on Windows, freezes up under Ubuntu 10.x and Fedora 1x after about 10 minutes of using the OS.Rebooting, the same problem comes up again in a few minutes. Interestingly, the problem does not occur when Ubuntu is installed in Oracle VirtualBox VM. Installing Ubuntu "as usual" (i.e. not in a VM), causes the problem to occur. Has any one here faced the same problem or have a solution for it? Maybe using a different mouse that is known to work with Ubuntu 10.x? If it helps my system is: Asus P5NSLI motherboard (nVidia nForce 570 chipset), 4 GB RAM Ubuntu 10.10 refers to "32 bit" version of Ubuntu It seems that Ubuntu has a lot of all types of freeze issues. Can someone recommend a version of Ubuntu that is fairly recent and stable ? I intend to use Ubuntu for Ruby on Rails development.

    Read the article

  • Ubuntu 12.10, mouse double click by itself

    - by Ribi
    I updated ubuntu 11.10 some time ago and I had a problem with my mouse. When I click somewhere it would double click by itself. It was pretty anoying as I would start 2x my application almost each time. Then, some update came and the mouse was better. But now, I updated to 12.10 and it does the same thing again. I'm using an Logitech MX Revolution. I don't know what I can do to resolve this problem? Thanks

    Read the article

  • properties-maven-plugin: Error loading properties-file

    - by yournamehere
    I want to extract all the properties from my pom.xml into a properties-file. These are the common properties like dependency-versions, plugin-versions and directories. I'm using the properties-maven-plugin, but its not working as i want it to. The essential part of my pom.xml: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <version>1.0-alpha-1</version> <executions> <execution> <phase>initialize</phase> <goals> <goal>read-project-properties</goal> </goals> <configuration> <files> <file>${basedir}/pom.properties</file> </files> </configuration> </execution> </executions> </plugin> Now when i run "mvn properties:read-project-properties" i get the following error: [INFO] One or more required plugin parameters are invalid/missing for 'properties:read-project-properties' [0] Inside the definition for plugin 'properties-maven-plugin' specify the following: <configuration> ... <files>VALUE</files> </configuration>. The pom.properties-file is located in the same dir as the pom.xml. What can i do to let the properties-maven-plugin read my properties-file?

    Read the article

  • The mouse pointer in my Ubuntu VM has turned into a little hand with a document, and clicks are igno

    - by Daryl Spitzer
    The mouse pointer in my Ubuntu 8.04.3 LTS VM (running in VMware Fusion) has changed into a little hand holding a document. It doesn't show up in screen-shots. All mouse clicks (left or right) are ignored. But I can still type in the one Terminal window I have open. (And commands work fine.) I wonder if I'm in some kind of drag-and-drop mode. How do I get out of this? Update: Rebooting (from the command-line) worked. Ubuntu came up with the regular mouse-pointer.

    Read the article

  • Scroll with Middle Click

    - by Anast
    Can i use the middle click mouse button so i can scroll down faster like windows? I mean when i am in windows and i press the middle click somewhere i can scroll in a 4 way pointer shows on the screen and when i move the mouse in any direction the window will scroll in that direction even without pressing the middle click. Is there anything like this in ubuntu? How can i do this esspecially in chrome!

    Read the article

  • Creating a dynamic, extensible C# Expando Object

    - by Rick Strahl
    I love dynamic functionality in a strongly typed language because it offers us the best of both worlds. In C# (or any of the main .NET languages) we now have the dynamic type that provides a host of dynamic features for the static C# language. One place where I've found dynamic to be incredibly useful is in building extensible types or types that expose traditionally non-object data (like dictionaries) in easier to use and more readable syntax. I wrote about a couple of these for accessing old school ADO.NET DataRows and DataReaders more easily for example. These classes are dynamic wrappers that provide easier syntax and auto-type conversions which greatly simplifies code clutter and increases clarity in existing code. ExpandoObject in .NET 4.0 Another great use case for dynamic objects is the ability to create extensible objects - objects that start out with a set of static members and then can add additional properties and even methods dynamically. The .NET 4.0 framework actually includes an ExpandoObject class which provides a very dynamic object that allows you to add properties and methods on the fly and then access them again. For example with ExpandoObject you can do stuff like this:dynamic expand = new ExpandoObject(); expand.Name = "Rick"; expand.HelloWorld = (Func<string, string>) ((string name) => { return "Hello " + name; }); Console.WriteLine(expand.Name); Console.WriteLine(expand.HelloWorld("Dufus")); Internally ExpandoObject uses a Dictionary like structure and interface to store properties and methods and then allows you to add and access properties and methods easily. As cool as ExpandoObject is it has a few shortcomings too: It's a sealed type so you can't use it as a base class It only works off 'properties' in the internal Dictionary - you can't expose existing type data It doesn't serialize to XML or with DataContractSerializer/DataContractJsonSerializer Expando - A truly extensible Object ExpandoObject is nice if you just need a dynamic container for a dictionary like structure. However, if you want to build an extensible object that starts out with a set of strongly typed properties and then allows you to extend it, ExpandoObject does not work because it's a sealed class that can't be inherited. I started thinking about this very scenario for one of my applications I'm building for a customer. In this system we are connecting to various different user stores. Each user store has the same basic requirements for username, password, name etc. But then each store also has a number of extended properties that is available to each application. In the real world scenario the data is loaded from the database in a data reader and the known properties are assigned from the known fields in the database. All unknown fields are then 'added' to the expando object dynamically. In the past I've done this very thing with a separate property - Properties - just like I do for this class. But the property and dictionary syntax is not ideal and tedious to work with. I started thinking about how to represent these extra property structures. One way certainly would be to add a Dictionary, or an ExpandoObject to hold all those extra properties. But wouldn't it be nice if the application could actually extend an existing object that looks something like this as you can with the Expando object:public class User : Westwind.Utilities.Dynamic.Expando { public string Email { get; set; } public string Password { get; set; } public string Name { get; set; } public bool Active { get; set; } public DateTime? ExpiresOn { get; set; } } and then simply start extending the properties of this object dynamically? Using the Expando object I describe later you can now do the following:[TestMethod] public void UserExampleTest() { var user = new User(); // Set strongly typed properties user.Email = "[email protected]"; user.Password = "nonya123"; user.Name = "Rickochet"; user.Active = true; // Now add dynamic properties dynamic duser = user; duser.Entered = DateTime.Now; duser.Accesses = 1; // you can also add dynamic props via indexer user["NickName"] = "AntiSocialX"; duser["WebSite"] = "http://www.west-wind.com/weblog"; // Access strong type through dynamic ref Assert.AreEqual(user.Name,duser.Name); // Access strong type through indexer Assert.AreEqual(user.Password,user["Password"]); // access dyanmically added value through indexer Assert.AreEqual(duser.Entered,user["Entered"]); // access index added value through dynamic Assert.AreEqual(user["NickName"],duser.NickName); // loop through all properties dynamic AND strong type properties (true) foreach (var prop in user.GetProperties(true)) { object val = prop.Value; if (val == null) val = "null"; Console.WriteLine(prop.Key + ": " + val.ToString()); } } As you can see this code somewhat blurs the line between a static and dynamic type. You start with a strongly typed object that has a fixed set of properties. You can then cast the object to dynamic (as I discussed in my last post) and add additional properties to the object. You can also use an indexer to add dynamic properties to the object. To access the strongly typed properties you can use either the strongly typed instance, the indexer or the dynamic cast of the object. Personally I think it's kinda cool to have an easy way to access strongly typed properties by string which can make some data scenarios much easier. To access the 'dynamically added' properties you can use either the indexer on the strongly typed object, or property syntax on the dynamic cast. Using the dynamic type allows all three modes to work on both strongly typed and dynamic properties. Finally you can iterate over all properties, both dynamic and strongly typed if you chose. Lots of flexibility. Note also that by default the Expando object works against the (this) instance meaning it extends the current object. You can also pass in a separate instance to the constructor in which case that object will be used to iterate over to find properties rather than this. Using this approach provides some really interesting functionality when use the dynamic type. To use this we have to add an explicit constructor to the Expando subclass:public class User : Westwind.Utilities.Dynamic.Expando { public string Email { get; set; } public string Password { get; set; } public string Name { get; set; } public bool Active { get; set; } public DateTime? ExpiresOn { get; set; } public User() : base() { } // only required if you want to mix in seperate instance public User(object instance) : base(instance) { } } to allow the instance to be passed. When you do you can now do:[TestMethod] public void ExpandoMixinTest() { // have Expando work on Addresses var user = new User( new Address() ); // cast to dynamicAccessToPropertyTest dynamic duser = user; // Set strongly typed properties duser.Email = "[email protected]"; user.Password = "nonya123"; // Set properties on address object duser.Address = "32 Kaiea"; //duser.Phone = "808-123-2131"; // set dynamic properties duser.NonExistantProperty = "This works too"; // shows default value Address.Phone value Console.WriteLine(duser.Phone); } Using the dynamic cast in this case allows you to access *three* different 'objects': The strong type properties, the dynamically added properties in the dictionary and the properties of the instance passed in! Effectively this gives you a way to simulate multiple inheritance (which is scary - so be very careful with this, but you can do it). How Expando works Behind the scenes Expando is a DynamicObject subclass as I discussed in my last post. By implementing a few of DynamicObject's methods you can basically create a type that can trap 'property missing' and 'method missing' operations. When you access a non-existant property a known method is fired that our code can intercept and provide a value for. Internally Expando uses a custom dictionary implementation to hold the dynamic properties you might add to your expandable object. Let's look at code first. The code for the Expando type is straight forward and given what it provides relatively short. Here it is.using System; using System.Collections.Generic; using System.Linq; using System.Dynamic; using System.Reflection; namespace Westwind.Utilities.Dynamic { /// <summary> /// Class that provides extensible properties and methods. This /// dynamic object stores 'extra' properties in a dictionary or /// checks the actual properties of the instance. /// /// This means you can subclass this expando and retrieve either /// native properties or properties from values in the dictionary. /// /// This type allows you three ways to access its properties: /// /// Directly: any explicitly declared properties are accessible /// Dynamic: dynamic cast allows access to dictionary and native properties/methods /// Dictionary: Any of the extended properties are accessible via IDictionary interface /// </summary> [Serializable] public class Expando : DynamicObject, IDynamicMetaObjectProvider { /// <summary> /// Instance of object passed in /// </summary> object Instance; /// <summary> /// Cached type of the instance /// </summary> Type InstanceType; PropertyInfo[] InstancePropertyInfo { get { if (_InstancePropertyInfo == null && Instance != null) _InstancePropertyInfo = Instance.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly); return _InstancePropertyInfo; } } PropertyInfo[] _InstancePropertyInfo; /// <summary> /// String Dictionary that contains the extra dynamic values /// stored on this object/instance /// </summary> /// <remarks>Using PropertyBag to support XML Serialization of the dictionary</remarks> public PropertyBag Properties = new PropertyBag(); //public Dictionary<string,object> Properties = new Dictionary<string, object>(); /// <summary> /// This constructor just works off the internal dictionary and any /// public properties of this object. /// /// Note you can subclass Expando. /// </summary> public Expando() { Initialize(this); } /// <summary> /// Allows passing in an existing instance variable to 'extend'. /// </summary> /// <remarks> /// You can pass in null here if you don't want to /// check native properties and only check the Dictionary! /// </remarks> /// <param name="instance"></param> public Expando(object instance) { Initialize(instance); } protected virtual void Initialize(object instance) { Instance = instance; if (instance != null) InstanceType = instance.GetType(); } /// <summary> /// Try to retrieve a member by name first from instance properties /// followed by the collection entries. /// </summary> /// <param name="binder"></param> /// <param name="result"></param> /// <returns></returns> public override bool TryGetMember(GetMemberBinder binder, out object result) { result = null; // first check the Properties collection for member if (Properties.Keys.Contains(binder.Name)) { result = Properties[binder.Name]; return true; } // Next check for Public properties via Reflection if (Instance != null) { try { return GetProperty(Instance, binder.Name, out result); } catch { } } // failed to retrieve a property result = null; return false; } /// <summary> /// Property setter implementation tries to retrieve value from instance /// first then into this object /// </summary> /// <param name="binder"></param> /// <param name="value"></param> /// <returns></returns> public override bool TrySetMember(SetMemberBinder binder, object value) { // first check to see if there's a native property to set if (Instance != null) { try { bool result = SetProperty(Instance, binder.Name, value); if (result) return true; } catch { } } // no match - set or add to dictionary Properties[binder.Name] = value; return true; } /// <summary> /// Dynamic invocation method. Currently allows only for Reflection based /// operation (no ability to add methods dynamically). /// </summary> /// <param name="binder"></param> /// <param name="args"></param> /// <param name="result"></param> /// <returns></returns> public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result) { if (Instance != null) { try { // check instance passed in for methods to invoke if (InvokeMethod(Instance, binder.Name, args, out result)) return true; } catch { } } result = null; return false; } /// <summary> /// Reflection Helper method to retrieve a property /// </summary> /// <param name="instance"></param> /// <param name="name"></param> /// <param name="result"></param> /// <returns></returns> protected bool GetProperty(object instance, string name, out object result) { if (instance == null) instance = this; var miArray = InstanceType.GetMember(name, BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance); if (miArray != null && miArray.Length > 0) { var mi = miArray[0]; if (mi.MemberType == MemberTypes.Property) { result = ((PropertyInfo)mi).GetValue(instance,null); return true; } } result = null; return false; } /// <summary> /// Reflection helper method to set a property value /// </summary> /// <param name="instance"></param> /// <param name="name"></param> /// <param name="value"></param> /// <returns></returns> protected bool SetProperty(object instance, string name, object value) { if (instance == null) instance = this; var miArray = InstanceType.GetMember(name, BindingFlags.Public | BindingFlags.SetProperty | BindingFlags.Instance); if (miArray != null && miArray.Length > 0) { var mi = miArray[0]; if (mi.MemberType == MemberTypes.Property) { ((PropertyInfo)mi).SetValue(Instance, value, null); return true; } } return false; } /// <summary> /// Reflection helper method to invoke a method /// </summary> /// <param name="instance"></param> /// <param name="name"></param> /// <param name="args"></param> /// <param name="result"></param> /// <returns></returns> protected bool InvokeMethod(object instance, string name, object[] args, out object result) { if (instance == null) instance = this; // Look at the instanceType var miArray = InstanceType.GetMember(name, BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance); if (miArray != null && miArray.Length > 0) { var mi = miArray[0] as MethodInfo; result = mi.Invoke(Instance, args); return true; } result = null; return false; } /// <summary> /// Convenience method that provides a string Indexer /// to the Properties collection AND the strongly typed /// properties of the object by name. /// /// // dynamic /// exp["Address"] = "112 nowhere lane"; /// // strong /// var name = exp["StronglyTypedProperty"] as string; /// </summary> /// <remarks> /// The getter checks the Properties dictionary first /// then looks in PropertyInfo for properties. /// The setter checks the instance properties before /// checking the Properties dictionary. /// </remarks> /// <param name="key"></param> /// /// <returns></returns> public object this[string key] { get { try { // try to get from properties collection first return Properties[key]; } catch (KeyNotFoundException ex) { // try reflection on instanceType object result = null; if (GetProperty(Instance, key, out result)) return result; // nope doesn't exist throw; } } set { if (Properties.ContainsKey(key)) { Properties[key] = value; return; } // check instance for existance of type first var miArray = InstanceType.GetMember(key, BindingFlags.Public | BindingFlags.GetProperty); if (miArray != null && miArray.Length > 0) SetProperty(Instance, key, value); else Properties[key] = value; } } /// <summary> /// Returns and the properties of /// </summary> /// <param name="includeProperties"></param> /// <returns></returns> public IEnumerable<KeyValuePair<string,object>> GetProperties(bool includeInstanceProperties = false) { if (includeInstanceProperties && Instance != null) { foreach (var prop in this.InstancePropertyInfo) yield return new KeyValuePair<string, object>(prop.Name, prop.GetValue(Instance, null)); } foreach (var key in this.Properties.Keys) yield return new KeyValuePair<string, object>(key, this.Properties[key]); } /// <summary> /// Checks whether a property exists in the Property collection /// or as a property on the instance /// </summary> /// <param name="item"></param> /// <returns></returns> public bool Contains(KeyValuePair<string, object> item, bool includeInstanceProperties = false) { bool res = Properties.ContainsKey(item.Key); if (res) return true; if (includeInstanceProperties && Instance != null) { foreach (var prop in this.InstancePropertyInfo) { if (prop.Name == item.Key) return true; } } return false; } } } Although the Expando class supports an indexer, it doesn't actually implement IDictionary or even IEnumerable. It only provides the indexer and Contains() and GetProperties() methods, that work against the Properties dictionary AND the internal instance. The reason for not implementing IDictionary is that a) it doesn't add much value since you can access the Properties dictionary directly and that b) I wanted to keep the interface to class very lean so that it can serve as an entity type if desired. Implementing these IDictionary (or even IEnumerable) causes LINQ extension methods to pop up on the type which obscures the property interface and would only confuse the purpose of the type. IDictionary and IEnumerable are also problematic for XML and JSON Serialization - the XML Serializer doesn't serialize IDictionary<string,object>, nor does the DataContractSerializer. The JavaScriptSerializer does serialize, but it treats the entire object like a dictionary and doesn't serialize the strongly typed properties of the type, only the dictionary values which is also not desirable. Hence the decision to stick with only implementing the indexer to support the user["CustomProperty"] functionality and leaving iteration functions to the publicly exposed Properties dictionary. Note that the Dictionary used here is a custom PropertyBag class I created to allow for serialization to work. One important aspect for my apps is that whatever custom properties get added they have to be accessible to AJAX clients since the particular app I'm working on is a SIngle Page Web app where most of the Web access is through JSON AJAX calls. PropertyBag can serialize to XML and one way serialize to JSON using the JavaScript serializer (not the DCS serializers though). The key components that make Expando work in this code are the Properties Dictionary and the TryGetMember() and TrySetMember() methods. The Properties collection is public so if you choose you can explicitly access the collection to get better performance or to manipulate the members in internal code (like loading up dynamic values form a database). Notice that TryGetMember() and TrySetMember() both work against the dictionary AND the internal instance to retrieve and set properties. This means that user["Name"] works against native properties of the object as does user["Name"] = "RogaDugDog". What's your Use Case? This is still an early prototype but I've plugged it into one of my customer's applications and so far it's working very well. The key features for me were the ability to easily extend the type with values coming from a database and exposing those values in a nice and easy to use manner. I'm also finding that using this type of object for ViewModels works very well to add custom properties to view models. I suspect there will be lots of uses for this - I've been using the extra dictionary approach to extensibility for years - using a dynamic type to make the syntax cleaner is just a bonus here. What can you think of to use this for? Resources Source Code and Tests (GitHub) Also integrated in Westwind.Utilities of the West Wind Web Toolkit West Wind Utilities NuGet© Rick Strahl, West Wind Technologies, 2005-2012Posted in CSharp  .NET  Dynamic Types   Tweet !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();

    Read the article

  • How can I change mouse keymapping

    - by zuberuber
    I have Razer DeathAdder(left handed edition) and A4Tech wireless mouse. My problem is I don't know how to change wireless mouse keymapping(swaping left/right click). Can somebody guide me how to do such thing? List of my devices: ? Virtual core pointer id=2 [master pointer (3)] ? ? Virtual core XTEST pointer id=4 [slave pointer (2)] ? ? Logitech Unifying Device. Wireless PID:4004 id=8 [slave pointer (2)] ? ? Razer Razer DeathAdder id=11 [slave pointer (2)] ? ? A4TECH USB Device id=12 [slave pointer (2)] ? ? A4TECH USB Device id=13 [slave pointer (2)] ? Virtual core keyboard id=3 [master keyboard (2)] ? Virtual core XTEST keyboard id=5 [slave keyboard (3)] ? Power Button id=6 [slave keyboard (3)] ? Power Button id=7 [slave keyboard (3)] ? Logitech USB Keyboard id=9 [slave keyboard (3)] ? Logitech USB Keyboard id=10 [slave keyboard (3)] This is my Razer xinput: Device 'Razer Razer DeathAdder': Device Enabled (121): 1 Coordinate Transformation Matrix (123): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (246): 0 Device Accel Constant Deceleration (247): 5.000000 Device Accel Adaptive Deceleration (248): 1.000000 Device Accel Velocity Scaling (249): 10.000000 Device Product ID (240): 5426, 22 Device Node (241): "/dev/input/event4" Evdev Axis Inversion (250): 0, 0 Evdev Axes Swap (252): 0 Axis Labels (253): "Rel X" (131), "Rel Y" (132), "Rel Vert Wheel" (274) Button Labels (254): "Button Left" (124), "Button Middle" (125), "Button Right" (126), "Button Wheel Up" (127), "Button Wheel Down" (128), "Button Horiz Wheel Left" (129), "Button Horiz Wheel Right" (130), "Button Side" (269), "Button Extra" (270), "Button Forward" (271), "Button Back" (272), "Button Task" (273), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243) Evdev Middle Button Emulation (255): 0 Evdev Middle Button Timeout (256): 50 Evdev Third Button Emulation (257): 0 Evdev Third Button Emulation Timeout (258): 1000 Evdev Third Button Emulation Button (259): 3 Evdev Third Button Emulation Threshold (260): 20 Evdev Wheel Emulation (261): 0 Evdev Wheel Emulation Axes (262): 0, 0, 4, 5 Evdev Wheel Emulation Inertia (263): 10 Evdev Wheel Emulation Timeout (264): 200 Evdev Wheel Emulation Button (265): 4 Evdev Drag Lock Buttons (266): 0 And this is my wireless mouse xinput: Device 'A4TECH USB Device': Device Enabled (121): 1 Coordinate Transformation Matrix (123): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (246): 0 Device Accel Constant Deceleration (247): 1.000000 Device Accel Adaptive Deceleration (248): 1.000000 Device Accel Velocity Scaling (249): 10.000000 Device Product ID (240): 2522, 1359 Device Node (241): "/dev/input/event16" Evdev Axis Inversion (250): 0, 0 Evdev Axes Swap (252): 0 Axis Labels (253): "Rel X" (131), "Rel Y" (132), "Rel Horiz Wheel" (245), "Rel Vert Wheel" (274) Button Labels (254): "Button Left" (124), "Button Middle" (125), "Button Right" (126), "Button Wheel Up" (127), "Button Wheel Down" (128), "Button Horiz Wheel Left" (129), "Button Horiz Wheel Right" (130), "Button Side" (269), "Button Extra" (270), "Button Forward" (271), "Button Back" (272), "Button Task" (273), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243), "Button Unknown" (243) Evdev Middle Button Emulation (255): 0 Evdev Middle Button Timeout (256): 50 Evdev Third Button Emulation (257): 0 Evdev Third Button Emulation Timeout (258): 1000 Evdev Third Button Emulation Button (259): 3 Evdev Third Button Emulation Threshold (260): 20 Evdev Wheel Emulation (261): 0 Evdev Wheel Emulation Axes (262): 0, 0, 4, 5 Evdev Wheel Emulation Inertia (263): 10 Evdev Wheel Emulation Timeout (264): 200 Evdev Wheel Emulation Button (265): 4 Evdev Drag Lock Buttons (266): 0

    Read the article

  • c# Properties.Settings.Default Doesn't work as expected

    - by Jack
    I've been working on a program to automate my backup checks with LogMeIn backup (a windows forms based program). I now need a way to store user settings, to save information easily. I've never worked with the Application/User settings that is somewhat "built-in" - and decided to try it, but ran into problems. I added four settings for now: IncludeCriteria (Specialized.StringCollection) ExcludeCriteria (Specialized.StringCollection) ReportPath (string) ReportType (int) But the behavior doesn't act as expected (go figure). After saving some values in my program, I go back into edit/view my settings values using the VS 2008 settings editor. None of my values are stored. While I think this may be because those values are just default values, wouldn't that be where they can be stored/read/changed? Here is my load form code (still very unrefined): private void setupForm() { txtPath.Text = BackupReport.Properties.Settings.Default.ReportPath == null ? "" : BackupReport.Properties.Settings.Default.ReportPath; if (BackupReport.Properties.Settings.Default.ReportType == 0) { radioHTML.Checked = true; } else radioExcel.Checked = true; if (BackupReport.Properties.Settings.Default.IncludeCriteria.Count > 0) { listIncludeCriteria.DataSource = Properties.Settings.Default.IncludeCriteria; //foreach (string s in Properties.Settings.Default.IncludeCriteria) // listIncludeCriteria.Items.Add(s); } if (BackupReport.Properties.Settings.Default.ExcludeCriteria.Count > 0) { listExcludeCriteria.DataSource = BackupReport.Properties.Settings.Default.ExcludeCriteria; //foreach (string s in Properties.Settings.Default.ExcludeCriteria) // listExcludeCriteria.Items.Add(s); } } listIncludeCriteria is just a listbox. When the user saves I call this method: private void saveSettings() { //var settings = BackupReport.Properties.Settings; if (txtPath.Text != "") { BackupReport.Properties.Settings.Default.ReportPath = txtPath.Text; } if (listIncludeCriteria.Items.Count > 0) { //BackupReport.Properties.Settings.Default.IncludeCriteria = (StringCollection)listIncludeCriteria.Items.AsQueryable(); foreach (var i in listIncludeCriteria.Items) { if (!isIncludeDuplicate(i.ToString())) BackupReport.Properties.Settings.Default.IncludeCriteria.Add(i.ToString()); } } if (listExcludeCriteria.Items.Count > 0) { //BackupReport.Properties.Settings.Default.ExcludeCriteria = (StringCollection)listExcludeCriteria.Items.AsQueryable(); foreach (var i in listExcludeCriteria.Items) { if (!isExcludeDuplicate(i.ToString())) Properties.Settings.Default.ExcludeCriteria.Add(i.ToString()); } } if (radioExcel.Checked == true) BackupReport.Properties.Settings.Default.ReportType = 1; else BackupReport.Properties.Settings.Default.ReportType = 0; BackupReport.Properties.Settings.Default.Save(); //Properties.Settings.Default.Save(); this.DialogResult = DialogResult.OK; this.Close(); } The wierd thing is when the form loads, the path I put in the first time seems to come up (ReportPath) - even the listBoxes are populated with a bunch of crap I put in - yet I cant find these values anywhere. Any help would be appreciated! Josh

    Read the article

  • Mouse for a lefty?

    - by Kyralessa
    As a programmer, I'm fairly particular about my keyboard and mouse. One thing I've only recently noticed is that the mice I tend to prefer don't work well for my five-year-old. He's left-handed, but ends up mousing with his right hand on the computer because (a) that's where the mouse is, and (b) most mice are designed for right-handed people anyway. So, a couple of questions: If you're left-handed and you mouse with your left hand, do you have any recommendations on good mice? If you have a lefty in your household (whether or not it's you), is there an easy way to swap settings between left-handed and right-handed mouse buttons? One way is Control Panel Mouse Check the box on the first tab OK. Do you know of anything faster? Or, better yet, what I'd really like is a way to reverse those settings on only one particular mouse, which would be designated as my son's mouse.

    Read the article

  • External mouse clicks not working during UAC prompt/windows or other elevated privilege programs

    - by user26453
    I have a Logitech Revolution VX, a small portable mouse. I use it on my laptop running Windows 7 64bit Professional. When a UAC prompt comes up, I can use the mouse to move the pointer, however any clicking via the external mouse is disabled. I have to use my trackpad to actually click. This continues on into whatever UAC window comes next, such as a program install. The mouse pointer can move via my external mouse, but no button clicks register except on the trackpad. This also happens if I am to right click a program and select "Run as Administrator". The external mouse will move the pointer, but no button clicks work. I've tried to google for this issue but haven't found anything. To be it seems generally a problem with my external mouse driver not running with elevated privileges itself. Any help would be appreciated.

    Read the article

  • Microsoft mouse screws up my power settings

    - by Patriot
    Running a new computer with Windows 7 and 64-bit OS. Had a wireless Logitech mouse that worked perfectly with this set up. The mouse was old, and the buttons were sticking and causing double clicks, so I bought a new Microsoft Mobile Wireless 3000 mouse to replace it. The new mouse works perfectly, but now my screen saver is disabled and my computer won't go into sleep mode after 15 minutes as per my power setting. If I hook the Logitech mouse back up, screen saver works fine and computer goes to sleep as it should. Am I missing something, or is Microsoft's mouse just junk. Got no software with the new mouse, so no drivers seem available.

    Read the article

  • There is no two finger scroll option in my "Mouse and Touchpad" settings

    - by Ian
    I simply do not have the option for "two-finger scrolling" available in my "Mouse and Touchpad" settings. I have tried a lot of terminal commands that I have found in the forums with no success. Who has a solution that will enable two-finger scrolling? A little about me: Ubuntu 12.04.1 LTS \n \l Built-in Pointing Device Type: Mouse Interface: PS/2 Buttons: 2 ~$ xinput list ? Virtual core pointer id=2 [master pointer (3)] ? ? Virtual core XTEST pointer id=4 [slave pointer (2)] ? ? PS/2 Synaptics TouchPad id=15 [slave pointer (2)] ? Virtual core keyboard id=3 [master keyboard (2)] ? Virtual core XTEST keyboard id=5 [slave keyboard (3)] ? Power Button id=6 [slave keyboard (3)] ? Video Bus id=7 [slave keyboard (3)] ? Power Button id=8 [slave keyboard (3)] ? Sleep Button id=9 [slave keyboard (3)] ? WebCam SC-13HDL10931N id=10 [slave keyboard (3)] ? AT Translated Set 2 keyboard id=14 [slave keyboard (3)] Screenshot of system settings:

    Read the article

  • WizMouse Enables Mouse Over Scrolling on Any Window

    - by ETC
    WizMouse is a free and lightweight Windows application that enables a simple but effective trick: the ability to scroll the contents of a window that is under your mouse cursor without shifting the focus to that window. It may not seem like much, at first glance, but the ability to scroll a window without having to click on it and shift the focus of your current window is a huge time saver. Once WizMouse is installed simply mousing over any open window and engage your scroll wheel for instant scroll with no additional click or shift in focus necessary. You’ll get so used to it you’ll forget that it wasn’t built into Windows from the start. Hit up the link below to grab a copy of WizMouse, a free and Windows only application. WizMouse [Antibody Software] Latest Features How-To Geek ETC Should You Delete Windows 7 Service Pack Backup Files to Save Space? What Can Super Mario Teach Us About Graphics Technology? Windows 7 Service Pack 1 is Released: But Should You Install It? How To Make Hundreds of Complex Photo Edits in Seconds With Photoshop Actions How to Enable User-Specific Wireless Networks in Windows 7 How to Use Google Chrome as Your Default PDF Reader (the Easy Way) WizMouse Enables Mouse Over Scrolling on Any Window Enhance GIMP’s Image Editing Power with Gimp Paint Studio Reclaim Vertical UI Space by Moving Your Tabs to the Side in Firefox Wind and Water: Puzzle Battles – An Awesome Game for Linux and Windows How Star Wars Changed the World [Infographic] Tabs Visual Manager Adds Thumbnailed Tab Switching to Chrome

    Read the article

  • How to hide the mouse cursor

    - by MvG
    I'm building a kiosk using Ubuntu Precise on a touch screen. Now I'm looking for the appropriate way to make the mouse cursor disappear. As people know where they are pointing, displaying an arrow under their finger is useless, and having an error where they last pointed even more so. My best bet would be some kind of cursor theme consisting only of transparent cursors. I'm a bit surprised to find no UI to switch and maybe install cursor themes the default Unity UI, but as I won't be using Unity, that's not much of a problem. It appears that the alternatives listed in update-alternatives --list x-cursor-theme all refer to .theme files, so I searched the package list for those. The resulting list does not list any likely candidates, i.e. no packages containing “invisible” or “transparent” in their name. So far, some googled result yielding a readme for “XCursor Transparent Theme” is my best bet. That would mean compiling those sources myself, perhaps putting them into my PPA. I'm also a bit sceptical about that result as said readme is dated from 2003. And I'm not sure that I'm not making things overly complicated. After all, there is quite some support in Precise for touch devices, so I don't believe I'm the first one who wants to get rid of his mouse cursor. Is there another way which doesn't involve user-compiled binary code? Is there a theme package for transparent cursors which I've overlooked? Is there some other mechanism to make the cursor disappear without changing the cursor theme? I'll be using Matchbox WM, Firefox and Java applets, so I'll be happy with any solution working under such a setup. I'm not interested in any solutions twiddling with Gnome or Compiz, as I'll not be running either.

    Read the article

< Previous Page | 2 3 4 5 6 7 8 9 10 11 12 13  | Next Page >