Page 4 of 6 FirstFirst 123456 LastLast
Results 31 to 40 of 57

Thread: Latest source download via SVN (rev 54)

  1. #31
    Maximum Bitrate Borte's Avatar
    Join Date
    Jan 2006
    Location
    Norway
    Posts
    529
    What I meant is that I seem to remember that you said that the current skin support was lacking at certain aspects and I was wondering about how the skin implementation was planned.
    Things like folder structure, skin data and other aspects.

    (if that was any better explained...)
    Failure is not an option...
    __________________________________________________ ______________________________
    The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

  2. #32
    Maximum Bitrate Borte's Avatar
    Join Date
    Jan 2006
    Location
    Norway
    Posts
    529
    Quote Originally Posted by justchat_1 View Post
    The simple answer is during. Technically the event is fired just before the panel is displayed but since the event is sent at the same time as the panel is being loaded it could come just before or just after.
    The only event that's being trigged when I hook onto the OnSystemEvent is pluginLoadingComplete, not the TransitionToPanel.
    I'm looking at this event from Mainmenu.dll when starting the application. Is this behavior correct?

    Is the raiseSystemEvent(eFunction.TransitionToPanel... missing in the code below?
    Code:
           private static void loadMainMenu()
            {
    
                Assembly pluginAssembly = Assembly.Load("UI");
                IHighLevel availablePlugin = (IHighLevel)Activator.CreateInstance(pluginAssembly.GetTypes()[0]);
                pluginCollection.Add(availablePlugin);
                availablePlugin.initialize(theHost);
                
                pluginAssembly = Assembly.Load("MainMenu");
                IHighLevel mmPlugin = (IHighLevel)Activator.CreateInstance(pluginAssembly.GetTypes()[0]);
                pluginCollection.Add(mmPlugin);
                mmPlugin.initialize(theHost);
                
                
                for (int i = 0; i <UICollection.Count; i++)
                {
                    UICollection[i].transitionInPanel(availablePlugin.loadPanel("", i));
                    UICollection[i].transitionInPanel(mmPlugin.loadPanel("", i));
                    UICollection[i].executeTransition(eGlobalTransition.None);
                }
                
            }
    I changed the code to this to make it trigg the events:
    Code:
            private static void loadMainMenu()
            {
    
                Assembly pluginAssembly = Assembly.Load("UI");
                IHighLevel availablePlugin = (IHighLevel)Activator.CreateInstance(pluginAssembly.GetTypes()[0]);
                pluginCollection.Add(availablePlugin);
                availablePlugin.initialize(theHost);
                
                pluginAssembly = Assembly.Load("MainMenu");
                IHighLevel mmPlugin = (IHighLevel)Activator.CreateInstance(pluginAssembly.GetTypes()[0]);
                pluginCollection.Add(mmPlugin);
                mmPlugin.initialize(theHost);
                
                
                for (int i = 0; i <UICollection.Count; i++)
                {
                    UICollection[i].transitionInPanel(availablePlugin.loadPanel("", i));
                    UICollection[i].transitionInPanel(mmPlugin.loadPanel("", i));
                    
                    // Changed by Borte:
                    UICollection[i].executeTransition(eGlobalTransition.None);
    
                    // Added by Borte:
                    theHost.raiseSystemEvent(eFunction.TransitionToPanel, i.ToString(), "Core", "");
                }
                
            }
    How can I make a control redraw itself? It doesnt redraw it self when I change the "left" property of a control. When I debug the code the control jumps into "refreshMe" but exists since nothing is connected to the UpdateThisControl event.
    Failure is not an option...
    __________________________________________________ ______________________________
    The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

  3. #33
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Quote Originally Posted by Borte View Post
    The only event that's being trigged when I hook onto the OnSystemEvent is pluginLoadingComplete, not the TransitionToPanel.
    I'm looking at this event from Mainmenu.dll when starting the application. Is this behavior correct?
    If your only worried about detecting when the panel is loaded at the beginning just start the effect when the panel is initialized. initialize is called right before the panel is actually displayed so it should work just as well.

    Quote Originally Posted by Borte View Post
    How can I make a control redraw itself? It doesnt redraw it self when I change the "left" property of a control. When I debug the code the control jumps into "refreshMe" but exists since nothing is connected to the UpdateThisControl event.
    If a control is loaded then the screen which is drawing it will hook the UpdateThisControl event. So if nothing is hooking that event then that control is not the one being displayed.

  4. #34
    Maximum Bitrate Borte's Avatar
    Join Date
    Jan 2006
    Location
    Norway
    Posts
    529
    Quote Originally Posted by justchat_1 View Post
    If your only worried about detecting when the panel is loaded at the beginning just start the effect when the panel is initialized. initialize is called right before the panel is actually displayed so it should work just as well.
    But the TransitionToPanel event should still be loaded everytime an panel is shown, regardless off where it was shown from. At least for consistency.

    Quote Originally Posted by justchat_1 View Post
    If a control is loaded then the screen which is drawing it will hook the UpdateThisControl event. So if nothing is hooking that event then that control is not the one being displayed.
    That's weird because if I comment the lines for that control it disappears from the panel.
    I have attached the code from my Mainmenu.dll so you can have a look and tell me what I'm doing wrong.

    Code:
    using System;
    using System.Timers;
    using OpenMobile.Controls;
    using OpenMobile.Plugin;
    using System.Drawing;
    using OpenMobile.Framework;
    using System.Threading;
    
    namespace Borte
    {
        public sealed class MainMenu : IHighLevel
        {
            ScreenManager Screen;
            private IPluginHost Host;
            private OMPanel Panel_MainMenu = new OMPanel();
    
            // Controls
            private OMImage LeftMenuBar;
            private OMImage CenterFrame;
            private OMImage RightMenuBar;
    
            // Animations
            private System.Timers.Timer Animation_Timer = new System.Timers.Timer(50);
            enum AnimationStates { None, Startup }
            private AnimationStates Animation_State = AnimationStates.None;
            private int Animation_Count = 0;
    
            #region IHighLevel Members
    
            public string displayName
            {
                get { return "MMI"; }
            }
    
            public OMPanel loadPanel(string name, int screen)
            {
                return Screen[screen];
            }
    
            public OMPanel loadSettings(string name, int screen)
            {
                throw new NotImplementedException();
            }
    
            #endregion
    
            #region IBasePlugin Members
    
            public string authorEmail
            {
                get { return ""; }
            }
    
            public string authorName
            {
                get { return "Borte"; }
            }
    
            public bool incomingMessage<T>(string message, string source, ref T data)
            {
                throw new NotImplementedException();
            }
    
            public bool incomingMessage(string message, string source)
            {
                throw new NotImplementedException();
            }
    
            public OpenMobile.eLoadStatus initialize(IPluginHost host)
            {
                Host = host;
                Host.OnSystemEvent += new SystemEvent(Host_OnSystemEvent);
    
                // Activate animation timers
                Animation_Timer.Elapsed += new ElapsedEventHandler(AnimationTimer_Elapsed);
                Animation_Timer.Enabled = false;
    
                Screen = new ScreenManager(host.ScreenCount);
                Panel_MainMenu.BackgroundType = OpenMobile.backgroundStyle.SolidColor;
                Panel_MainMenu.BackgroundColor1 = Color.Black;
    
                CenterFrame = new OMImage(0, 0, 800, 600);
                CenterFrame.Image = Host.getSkinImage("CenterFrame");
                Panel_MainMenu.addControl(CenterFrame);
    
                LeftMenuBar = new OMImage();
                LeftMenuBar.Image = Host.getSkinImage("BaseMenuL");
                LeftMenuBar.Top = 0;
                LeftMenuBar.Left = 0;
                LeftMenuBar.Width = LeftMenuBar.Image.image.Width;
                LeftMenuBar.Height = LeftMenuBar.Image.image.Height;
                Panel_MainMenu.addControl(LeftMenuBar);
    
                RightMenuBar = new OMImage();
                RightMenuBar.Image = Host.getSkinImage("BaseMenuR");
                RightMenuBar.Top = 0;
                RightMenuBar.Left = 800 - RightMenuBar.Image.image.Width;
                RightMenuBar.Width = RightMenuBar.Image.image.Width;
                RightMenuBar.Height = RightMenuBar.Image.image.Height;
                Panel_MainMenu.addControl(RightMenuBar);
    
                // Panel must be loaded after all controls have been loaded
                Screen.loadPanel(Panel_MainMenu);
    
                return OpenMobile.eLoadStatus.LoadSuccessful;
            }
    
            void Host_OnSystemEvent(OpenMobile.eFunction function, string arg1, string arg2, string arg3)
            {
                //System.Windows.Forms.MessageBox.Show("System event: " + function.ToString() + Environment.NewLine +
                //                                     "arg1: " + arg1 + Environment.NewLine +
                //                                     "arg2: " + arg2 + Environment.NewLine +
                //                                     "arg3: " + arg3 + Environment.NewLine);
    
                switch (function)
                {
                    case OpenMobile.eFunction.ExecuteTransition:
                        break;
                    case OpenMobile.eFunction.LoadSettings:
                        break;
                    case OpenMobile.eFunction.None:
                        break;
                    case OpenMobile.eFunction.Pause:
                        break;
                    case OpenMobile.eFunction.Play:
                        break;
                    case OpenMobile.eFunction.Speak:
                        break;
                    case OpenMobile.eFunction.Stop:
                        break;
                    case OpenMobile.eFunction.StopSpeaking:
                        break;
                    case OpenMobile.eFunction.TransitionFromAny:
                        break;
                    case OpenMobile.eFunction.TransitionFromPanel:
                        break;
                    case OpenMobile.eFunction.TransitionFromSettings:
                        break;
                    case OpenMobile.eFunction.TransitionToPanel:
                        {
                            if (Animation_State == AnimationStates.None)
                            {
                                Animation_State = AnimationStates.Startup;
                                Animation_Timer.Enabled = true;
                            }
                        }
                        break;
                    case OpenMobile.eFunction.TransitionToSettings:
                        break;
                    case OpenMobile.eFunction.UnloadSettings:
                        break;
                    case OpenMobile.eFunction.backgroundOperationStatus:
                        break;
                    case OpenMobile.eFunction.closeProgram:
                        break;
                    case OpenMobile.eFunction.connectToInternet:
                        break;
                    case OpenMobile.eFunction.connectedToInternet:
                        break;
                    case OpenMobile.eFunction.disconnectFromInternet:
                        break;
                    case OpenMobile.eFunction.disconnectedFromInternet:
                        break;
                    case OpenMobile.eFunction.goBack:
                        break;
                    case OpenMobile.eFunction.hibernate:
                        break;
                    case OpenMobile.eFunction.listenForSpeech:
                        break;
                    case OpenMobile.eFunction.loadAVPlayer:
                        break;
                    case OpenMobile.eFunction.loadSpeechContext:
                        break;
                    case OpenMobile.eFunction.loadTunedContent:
                        break;
                    case OpenMobile.eFunction.networkConnectionsAvailable:
                        break;
                    case OpenMobile.eFunction.nextMedia:
                        break;
                    case OpenMobile.eFunction.playlistChanged:
                        break;
                    case OpenMobile.eFunction.pluginLoadingComplete:
                        break;
                    case OpenMobile.eFunction.powerOffDevice:
                        break;
                    case OpenMobile.eFunction.powerOnDevice:
                        break;
                    case OpenMobile.eFunction.previousMedia:
                        break;
                    case OpenMobile.eFunction.refreshData:
                        break;
                    case OpenMobile.eFunction.resetDevice:
                        break;
                    case OpenMobile.eFunction.restartProgram:
                        break;
                    case OpenMobile.eFunction.scanBackward:
                        break;
                    case OpenMobile.eFunction.scanForward:
                        break;
                    case OpenMobile.eFunction.setPlaybackSpeed:
                        break;
                    case OpenMobile.eFunction.setPlayingVolume:
                        break;
                    case OpenMobile.eFunction.setPosition:
                        break;
                    case OpenMobile.eFunction.setSystemVolume:
                        break;
                    case OpenMobile.eFunction.shutdown:
                        break;
                    case OpenMobile.eFunction.standby:
                        break;
                    case OpenMobile.eFunction.stepBackward:
                        break;
                    case OpenMobile.eFunction.stepForward:
                        break;
                    case OpenMobile.eFunction.systemVolumeChanged:
                        break;
                    case OpenMobile.eFunction.tuneTo:
                        break;
                    case OpenMobile.eFunction.unloadAVPlayer:
                        break;
                    case OpenMobile.eFunction.unloadTunedContent:
                        break;
                    case OpenMobile.eFunction.userInputReady:
                        break;
                    default:
                        break;
                }
            }
    
            public string pluginDescription
            {
                get { return "MMI Style skin"; }
            }
    
            public string pluginName
            {
                get { return "MMI for OpenMobile"; }
            }
    
            public float pluginVersion
            {
                get { return 0.1f; }
            }
    
            #endregion
    
            #region IDisposable Members
    
            public void Dispose()
            {
                Host = null;
                Screen = null;
                GC.SuppressFinalize(this);
            }
    
            #endregion
    
            # region Animations
    
            void AnimationTimer_Elapsed(object sender, ElapsedEventArgs e)
            {
                Animation_Run();
            }
    
            private void Animation_Run()
            {
                // Default is to stop animations from showing again
                Animation_Timer.Enabled = false;
    
                switch (Animation_State)
                {
                    case AnimationStates.None:
                        break;
                    case AnimationStates.Startup:
                        Animation_AnimateStartup();
                        break;
                    default:
                        break;
                }
            }
    
            private void Animation_AnimateStartup()
            {
                Animation_Count++;
    
                if (Animation_Count == 100)
                {
                    Animation_Count = 0;
                    Animation_Timer.Enabled = false;
                }
                else
                {
                    LeftMenuBar.Left = Animation_Count;
    
                    Animation_Timer.Enabled = true;
                }
            }
    
            #endregion
        }
    }
    Edit:
    Was finally able to redraw the control. I was declaring a private control (like in the code above) but it turned out that this control did not get the UpdateThisControl event populated. Instead it was a clone of the control (this clone was created when the panel was loaded) that got this UpdateThisControl populated. I had to loop trough the controls that an panel reported as it's contents to be able to find the control that I could redraw.

    Why is this created as a clone?
    It makes it a lot harder for a skin to control it's controls when it first has to create a new control, load this new control to a panel, load this new panel to a screen and then to later control it I have to search for this other cloned control (which is a copy of the loaded control) in the controlslist of a screen.
    And I could not use the one in my local panel object either since this doesn't hold the cloned control (hence not the updated UpdateThisControl event).

    The objects that's being passed on by a click event or some other events are the cloned one with the correct UpdateThisControl event so it works if I use that one, but in my case I don't have this source object.

    This seems somewhat backwards to me that I can't use the properties of my locally created controls.

    I sure hope this explanation made some sense, if not give a shout and I'll try to explain better.

    btw: Here is the code I used to find the control in the screen:
    Code:
                    for (int i = 0; i < Screen[0].controlCount; i++)
                    {
                        if (Screen[0].getControl(i).Name == "LeftMenuBar")
                            Screen[0].getControl(i).Left = Animation_Count;
                    }
    Edit2:
    Been thinking some more about this cloneing behavior and I think it's problably due to the fact that OM can utilize multiple screens, thereby creating the need for different animations at different times on the different screens. Am I right? Or is it intended to show the same on all screens at all times (like a cloned display)?

    If so then I think that any event should have a screen parameter passed on so that any animation or control parameter change can be initiated on the correct screen.

    The click event has the screen parameter but the system event is missing this one.

    Cheers
    Failure is not an option...
    __________________________________________________ ______________________________
    The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

  5. #35
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Quote Originally Posted by Borte View Post
    But the TransitionToPanel event should still be loaded everytime an panel is shown, regardless off where it was shown from. At least for consistency.

    That's weird because if I comment the lines for that control it disappears from the panel.
    I have attached the code from my Mainmenu.dll so you can have a look and tell me what I'm doing wrong.

    Code:
            private void Animation_AnimateStartup()
            {
                Animation_Count++;
    
                if (Animation_Count == 100)
                {
                    Animation_Count = 0;
                    Animation_Timer.Enabled = false;
                }
                else
                {
                    LeftMenuBar.Left = Animation_Count;
    
                    Animation_Timer.Enabled = true;
                }
            }
    
            #endregion
        }
    }
    Edit:
    Was finally able to redraw the control. I was declaring a private control (like in the code above) but it turned out that this control did not get the UpdateThisControl event populated. Instead it was a clone of the control (this clone was created when the panel was loaded) that got this UpdateThisControl populated. I had to loop trough the controls that an panel reported as it's contents to be able to find the control that I could redraw.

    Why is this created as a clone?
    It makes it a lot harder for a skin to control it's controls when it first has to create a new control, load this new control to a panel, load this new panel to a screen and then to later control it I have to search for this other cloned control (which is a copy of the loaded control) in the controlslist of a screen.
    And I could not use the one in my local panel object either since this doesn't hold the cloned control (hence not the updated UpdateThisControl event).

    The objects that's being passed on by a click event or some other events are the cloned one with the correct UpdateThisControl event so it works if I use that one, but in my case I don't have this source object.

    This seems somewhat backwards to me that I can't use the properties of my locally created controls.

    I sure hope this explanation made some sense, if not give a shout and I'll try to explain better.

    btw: Here is the code I used to find the control in the screen:
    Code:
                    for (int i = 0; i < Screen[0].controlCount; i++)
                    {
                        if (Screen[0].getControl(i).Name == "LeftMenuBar")
                            Screen[0].getControl(i).Left = Animation_Count;
                    }
    Edit2:
    Been thinking some more about this cloneing behavior and I think it's problably due to the fact that OM can utilize multiple screens, thereby creating the need for different animations at different times on the different screens. Am I right? Or is it intended to show the same on all screens at all times (like a cloned display)?

    If so then I think that any event should have a screen parameter passed on so that any animation or control parameter change can be initiated on the correct screen.

    The click event has the screen parameter but the system event is missing this one.

    Cheers
    Yup your thinking in terms of a single screen. One screen my be displayed and the other may be transitioning which is why we need to use screen specific references and its much simpler then your making it.

    I'm a little short on time so sorry if this answer seems rushed (and if any of it is unclear let me know)

    1. Arg1 of the transition to panel command is the screen number. In fact the first argument of any function that is screen specific is the screen number.
    2. You cant reference the base control for exactly the reason you said, there would be no way to know what screen you want to control, instead its this simple:
    This
    Code:
    LeftMenuBar.Left = Animation_Count;
    should be this
    Code:
    Screen[screenNumber]["LeftMenuBar"].Left = Animation_Count;
    Just make sure screenNumber is set properly.
    3. If this animation is only the very first time the panel is displayed you may want to consider using the initialize event like I said before, and only using a single control instance for the opening transition. Then when the transition is complete, load the panel into the screen manager and use that from then on.
    4. Your right, for consistency, I will make sure the core raises a transition to panel event when loading the main menu. For performance it won't fire when when loading the UI though, since the UI can only be loaded once (and when that happens initialize is called).

  6. #36
    Maximum Bitrate Borte's Avatar
    Join Date
    Jan 2006
    Location
    Norway
    Posts
    529
    I got the startup animation working now. Thanks for the help.

    Btw: I changed the screens behavior so that each screen opens on each separate monitor instad of all on the primary. I figured that this behaviour would be more correct in a multi monitor enviroment.
    Anyway here is the lines I added in the contructor in ui.cs (ui form code) if it's of any interest:
    Code:
    this.StartPosition = FormStartPosition.Manual;
    this.Bounds = System.Windows.Forms.Screen.AllScreens[s].Bounds;
    Failure is not an option...
    __________________________________________________ ______________________________
    The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

  7. #37
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Quote Originally Posted by Borte View Post
    I got the startup animation working now. Thanks for the help.

    Btw: I changed the screens behavior so that each screen opens on each separate monitor instad of all on the primary. I figured that this behaviour would be more correct in a multi monitor enviroment.
    Anyway here is the lines I added in the contructor in ui.cs (ui form code) if it's of any interest:
    Code:
    this.StartPosition = FormStartPosition.Manual;
    this.Bounds = System.Windows.Forms.Screen.AllScreens[s].Bounds;
    Good call...the plan is to allow screens to be assignable (for example 3 screens on the first second and fourth monitor would be possible instead of on all four) and not necessarily represent the physical screen numbers but until then i'll throw in the above code.

  8. #38
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Extide:
    Latest commit should have all the paths set right...

  9. #39
    Maximum Bitrate Borte's Avatar
    Join Date
    Jan 2006
    Location
    Norway
    Posts
    529
    Quote Originally Posted by justchat_1 View Post
    Good call...the plan is to allow screens to be assignable (for example 3 screens on the first second and fourth monitor would be possible instead of on all four) and not necessarily represent the physical screen numbers but until then i'll throw in the above code.
    Thanks for adding it.

    - If you wanna have three screen on one monitor then it might be necessary to be able to set startup size and startup location of each screen to prevent them from launching on top of each other.

    A general question for controls:
    - Could an "visible" and / or enabled property be added? This would help for controlling the controles from a skin.


    Control highlightning:
    Some of the controls reacts to mouse over (wich sets the modeType.Highlighted) for the control and renders it accordingly. What do I do I do if I don't want to use this highlight mode but instead have my skin create an highlight effect.

    Also for the textbox control the backcolor property is fixed at white, this needs to be controllabe from the skin, rather than fixed.

    I'm currently trying to build a skin that's completely different (in both appearance and functionality) than what's provided with OpenMobile right now. Is OpenMobile supposed to be able to create just about any skin that an user can think of or is it supposed to be somewhat limited to provide a more unified approach? If it's the later I personally think it's a bad thing since a lot of people would like to create a skin that would "mimic" an oem system and that would not be possible if OpenMobile is set to have a unified approach.

    Should OpenMobile skins behave according to a set of rules or is it all up to what the skinner would like (like using OpenMobile to just provide a base and tools for the skinner)?

    If you don't mind Justin then I can change/add (but not remove) whatever code I need to support the skin I'm creating and mark any changes I do so that you can review them and maybe integrate them into the main code.

    I'm currently working off revision 54 though so my code changes would be based on that version.
    Failure is not an option...
    __________________________________________________ ______________________________
    The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

  10. #40
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Quote Originally Posted by Borte View Post
    If you wanna have three screens on one monitor then it might be necessary to be able to set startup size and startup location of each screen to prevent them from launching on top of each other.
    Yea eventually I can add that in...but its pretty low on the list because I can't imagine anyone needing to do that.

    Quote Originally Posted by Borte View Post
    - Could an "visible" and / or enabled property be added? This would help for controlling the controles from a skin.
    Yea done

    Quote Originally Posted by Borte View Post
    Control highlightning:
    Some of the controls reacts to mouse over (wich sets the modeType.Highlighted) for the control and renders it accordingly. What do I do I do if I don't want to use this highlight mode but instead have my skin create an highlight effect.
    Can you give an example of what your trying to do? (like what effect to what control) So I can see if theres an easy way or what changes might be necessary.

    Quote Originally Posted by Borte View Post
    Also for the textbox control the backcolor property is fixed at white, this needs to be controllabe from the skin, rather than fixed.
    Fixed

    Quote Originally Posted by Borte View Post
    I'm currently trying to build a skin that's completely different (in both appearance and functionality) than what's provided with OpenMobile right now. Is OpenMobile supposed to be able to create just about any skin that an user can think of or is it supposed to be somewhat limited to provide a more unified approach? If it's the later I personally think it's a bad thing since a lot of people would like to create a skin that would "mimic" an oem system and that would not be possible if OpenMobile is set to have a unified approach.

    Should OpenMobile skins behave according to a set of rules or is it all up to what the skinner would like (like using OpenMobile to just provide a base and tools for the skinner)?
    OpenMobile standardizes the back end but leaves the look and feel stuff completely up to the skin designer. There are a few rules which say this way of doing something is better then this way but thats more for the other plugins not the skins. I'll post a link to what i'm talking about when I finish writing it but the short answer is any skin you can think of.
    Quote Originally Posted by Borte View Post
    If you don't mind Justin then I can change/add (but not remove) whatever code I need to support the skin I'm creating and mark any changes I do so that you can review them and maybe integrate them into the main code.

    I'm currently working off revision 54 though so my code changes would be based on that version.
    Thats fine-as long as your ok with the possibility that the features your want may be implemented differently...if you want to add yourself to the sourceforge project I can give you your own svn branch to play around with.

Page 4 of 6 FirstFirst 123456 LastLast

Similar Threads

  1. Alpha Release: XMPC-CAR for XM
    By gork in forum Software & Software Development
    Replies: 88
    Last Post: 01-11-2006, 12:19 PM
  2. GPS:MM shutdown RR when switch skin
    By MatrixPC in forum RR Bug Tracker
    Replies: 5
    Last Post: 05-12-2005, 11:07 AM
  3. master volume doesnīt work
    By free2world8000 in forum RR Bug Tracker
    Replies: 14
    Last Post: 02-17-2005, 12:08 PM
  4. Update: 2-12-05.. Flash Support!...
    By guino in forum Road Runner
    Replies: 163
    Last Post: 02-13-2005, 12:21 PM
  5. Questions for developers
    By SuperG35 in forum ME Archive
    Replies: 28
    Last Post: 08-26-2003, 10:12 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •