Community project proposal: WinJS compatibility library

edited June 2012 in Open Source
After Surface, Win8 and WinPhone8 announcements, I digged into WinJS docs drafts, and that's like going back to Mojo. And I though about creating an Enyo compatibility library for WinJS, to enable native Metro look and feel for Enyo apps.



  • I'm definitely interested in contributing provided someone else is willing to take the lead in developing it.
  • I'm very interested in this too... I can see two components to it: first, an interface to the lower-level WinRT code that's used to talk to the Windows 8 system, and second, a Metro-style set of controls.
  • Yeah, that's the idea. I haven't studied it too much yet, but the basic idea in my mind is to provide a widget set based on onyx when possible with specific styling, a WinExt library to talk with the system, and a panels like navigation library, to use that cool animated page switching.

    I will into it a bit deeper, to see how the panels and toolbars works, to see if it can be solved with a custom arrangerKind, or will need deeper work.
  • +1 to contributing. Haven't dug into WinJS yet, but it's on my radar for sure. Been playing with Windows 8 and Visual Studio though.
  • @unwiredben and all, I've been taking a look to the API, and it's pretty straightforward (and pretty extensive too):

    Media Capture

    I'm not sure if creating an enyo.Windows object just to refactor the entire Windows API to make it look more Enyo is a good idea or a waste of time, as the only issue is dealing with every function being a promise object, and seems pretty easy.

    Maybe wrapping just the WinJS APIs? Thoughts?

  • I don't think there's a good reason to wrap all of WinRT... I just didn't know if there are special interface methods, like webOS's PalmSystem.stageReady, that were needed for Win 8 apps or to interact property with the system.
  • Yeah, That's covered by WinJS.Application

    There are also other stuff, but that's perfectly ignorable, as is related to using their own UI (and that's something we're not doing).

    So, I think a partial wrap of the WinJS namespace (specifically WinJS.Application and WinJS.Resources.oncontextchanged event) will be enough.

    All the other stuff is UI or data-binding related, or covered by Enyo. I will work on this this weekend.

    @MachiApps, you have Visual Studio installed? If so, could you try to extract ui-dark.css and ui-light.css files? As they contain the exact styles, it's a good place to look for restyling...
  • @rafa_bernard I found the ui-light.css and ui-dark.css. For anyone wondering, they are in this folder:
    C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0\ExtensionSDKs\Microsoft.WinJS.1.0.RC\1.0\DesignTime\CommonConfiguration\Neutral\Microsoft.WinJS.1.0.RC\css
    What do you want me to do with them?
  • @MachiApps, could you please upload it anywhere, or email it to me?
Sign In or Register to comment.