ClockSkinMaker beta 2.0

ClockSkinMaker beta 2.0.0.1

please test and report back, this time the beta is public.

fixed:

  • battery hand bug as reported by zsolt, now csm should work just like the watch engine
  • bug with changing dpi resolution as reported by Jacek Klodzinski
    added:
  • the browser/toolbox is now resizable, as requested by Jacek Klodzinski
    removed:
  • some debug messages here and there

instructions:
unzip the folder wherever you like and start the exe

a page with tests and tips for csm:
plus.google.com/u/0/collection/k8myPE

download beta 2.0.0.2
drive.google.com/open?id=0BzE-vB7Zhc3nSjdRNFdzbDVJeFE

1 Like

ClockSkinMaker beta 2.0.0.2
fixed:

  • wrong filename for weather and moonphase, as reported by +zsolt m

download link updated in first post

Hello,

Can you tell me what are the differences between this version (2.0.0.1) and the latest version of Codeplex (version 1.6) ?

from the post about beta 2.0.0.0 in G+:

changes so far:

  1. redesigned user interface
  2. settings
    2.1 - kw88 compatibility mode (write the correct preview file)
    2.2 - default clockskin folder - switch on the fly the base directory
    2.3 - open xml files with custom editor
  3. new commands via menu
    3.1 - generate default weather_array.xml file
    3.2 - generate default moonphase_array.xml file
  4. removed the big zip with deafult skin. it will be available separately, but I wonder if it is needed anymore

todo:

  • add documentation and examples

AFAIK Ericā€™s launcher supports clockakins as the are (minus three or so array types mentioned in the opening post of his thread) so Iā€™d say you are already supporting his launcher :blush:
What could end up on your to-do list is support for .watch files. In itā€™s simplest form itā€™s bunch of TTF fonts some gfx and XML file describing position. Those files are simple renamed zip. Iā€™ve been playing with it using VIM text editor for last couple of days

CSM already has a (minimal) support for .watch files, it can import all the images from a watchmaker file to a new folder.
Then it is up to you to build the needed layers and assign them the functions.
Probably this could be further automated, but I donā€™t think it will be in the list.

allelimo I donā€™t know what you did but 2.0.0.1 almost works on linux using Mono

Almost cause csm seems to use hardcoded ā€˜ā€™ as path separator (which is fine on Windows) and linux gets confused (this particular char is mostly used as escape character). Now this might be Mono problem (among other things it should deal with that) but I can browse to dir that contains clockskins just fine only loading fails so just maybe there is something you can do on the CMS source side.
Here is the stack trace I got when first tried to run:
$ mono ClockSkinMaker.gui.exe

Unhandled Exception:
System.InvalidOperationException: WinForms_SeeInnerException ā€”> System.UnauthorizedAccessException: Access to the path ā€œ/home/nlj\ClockSkinā€ is denied.

at System.IO.Directory.CreateDirectoriesInternal (System.String path) [0x00070] in <8f2c484307284b51944a1a13a14c0266>:0

at System.IO.Directory.CreateDirectory (System.String path) [0x000a4] in <8f2c484307284b51944a1a13a14c0266>:0

at ClockSkinMaker.gui.frmPrincipalā€¦ctor () [0x000b7] in :0

at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)

at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00002] in <8f2c484307284b51944a1a13a14c0266>:0

ā€” End of inner exception stack trace ā€”

at ClockSkinMaker.gui.My.MyProject+MyForms.Create__Instance__[T] (T Instance) [0x000bf] in :0

at ClockSkinMaker.gui.My.MyProject+MyForms.get_frmPrincipal () [0x00000] in :0

at ClockSkinMaker.gui.My.MyApplication.OnCreateMainForm () [0x00006] in :0

at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun () [0x00010] in <052f159205d44babb4f17a8e3eeca1f7>:0

at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run (System.String[] commandLine) [0x00001] in <052f159205d44babb4f17a8e3eeca1f7>:0

at ClockSkinMaker.gui.My.MyApplication.Main (System.String[] Args) [0x0000f] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: WinForms_SeeInnerException ā€”> System.UnauthorizedAccessException: Access to the path ā€œ/home/nlj\ClockSkinā€ is denied.

at System.IO.Directory.CreateDirectoriesInternal (System.String path) [0x00070] in <8f2c484307284b51944a1a13a14c0266>:0

at System.IO.Directory.CreateDirectory (System.String path) [0x000a4] in <8f2c484307284b51944a1a13a14c0266>:0

at ClockSkinMaker.gui.frmPrincipalā€¦ctor () [0x000b7] in :0

at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)

at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00002] in <8f2c484307284b51944a1a13a14c0266>:0

ā€” End of inner exception stack trace ā€”

at ClockSkinMaker.gui.My.MyProject+MyForms.Create__Instance__[T] (T Instance) [0x000bf] in :0

at ClockSkinMaker.gui.My.MyProject+MyForms.get_frmPrincipal () [0x00000] in :0

at ClockSkinMaker.gui.My.MyApplication.OnCreateMainForm () [0x00006] in :0

at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun () [0x00010] in <052f159205d44babb4f17a8e3eeca1f7>:0

at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run (System.String[] commandLine) [0x00001] in <052f159205d44babb4f17a8e3eeca1f7>:0

at ClockSkinMaker.gui.My.MyApplication.Main (System.String[] Args) [0x0000f] in :0

I created that dir manually and after that it starts.
Sorry, probably thatā€™s not the bug report you expected.
Thanks for your work

N.

this is a quick fix, windows can use both ā€œā€ or ā€œ/ā€, Iā€™ll change it to ā€œ/ā€ and weā€™ll see if this is enough to run csm on mono

Actually you can do a quick test: enter the path with the appropriate slash in the settings page, restart CSM and see if this solves the problem

At least 2.0.1 refused to start if it couldnā€™t access default ClockSkin path (in case of linux systems this is /home/nlj</b>ClockSkin). A bit chicken and egg problem here

When I created that dir it started normally and I changed default skin path CSM showsĀ  ClockSkins from that folder but only as names (text; no thumbnails). CSM still tries to open from WatchFaces</b>ClockSkin1 and fails (WatchFaces is my ā€˜default skin pathā€™)

only on the first start csm tries to access to the default skins location, adding ā€œ\ClockSkinsā€ to the path, but this can be fixed, like I told before.
but then csm tries to access to the last used path, that can be anything you set.
if you go to the setting page and change all the slash, exit and restart, csm should try to access to that saved path.

so, if you write in the path ā€œ/home/nlj/WatchFacesā€, csm should try to access that path, without adding ā€œ\ClockSkinsā€ (unless there is a problem with mono and linux Iā€™m not aware of)
could you try to do it this way and tell me what happens?

I have /home/nlj/WatchFaces in settings. CSM starts just fine.

Inside above dir Iā€™ve got ClockSkin1 folder that contains some clockskin. I can see that on the list on the left side (no thumbnail tho). When I double click it to open it fails to load gfx etc because it uses ā€˜wrongā€™ path separator.


Edit:

Oh! I now realized that we are talking about two different things!

Iā€™ll rephrase again:


Inside /home/nlj/WatchFaces Iā€™ve got Radar folder containing clockskin. I can see that on the list. When I double clik to open it fails because it tries to open WatchFaces</b>Radar


ClockSkin1 and Radar are names of clockskins Not name of default path

So sorry about confusion.

N.

ok, clear now. Iā€™ll try to fix it this evening

Iā€™ve sent you a link to the new build

Itā€™s my comment for your watch face published in G+ community. But perhaps here is the better place for that idea:
"Alessandro - I have all your watch faces. I can browse and see them in Clock Skin Maker.

But your very interesting descriptions of watch history are only in G+ post.

Perhaps it should be added in faceā€™s folder as a txt or xml file with other info: authorā€™s name, creation date, publication date etc.

Very often I donā€™t remember who is an author of a face - this information shown in application would be very nice.

Then your version of Clock Skin Maker would be able to show these information during browsing.

If it isnā€™t possible then I can develop some ā€œviewer for watch facesā€ in Delphi which will read this data and will show a face picture with all ā€œdatabaseā€. But in my opinion it should be available in one tool.

What do you think?"

This could be added as separate xml entry in clock_skin.xml or if parsers are strict about whatā€™s in there can be put as simple XML comment in that file. And yes those description are awesome :blush:

Iā€™m using the beta 2.0.0.2 version and still getting the crazy battery hands on my KW88. Any solutions to that yet?

leokhk: no. itā€™s not something we can solve on csm side, itā€™s the clock engine on the watch that is not fully compatible with d5/x5 format. it must be fixed on the clock side with a firmware update.
or you can use the watch face with ericā€™s launcher, bypassing the stock clock engine.

jacek and nameless:

my reply on g+:
+Jacek Klodzinski interesting idea. CSM is not so good anyway as a previewer of the skins, but yes, this could be implemented along with a better viewer function. Iā€™ll mail you tomorrow, but Iā€™d really be happy if you want to work on the sources.
itā€™s vb, but starting from delphi is not really that hard to understand how it works.

instead of mailing, Iā€™ll post something here, so:

  • I donā€™t know anything about the watch xml parser. Iā€™ll try to add some fields to the configuration file and see if this causes problems

  • itā€™s probably better to keep things separated, since the added information will be useless on the watch

  • we need a list of additional info. but the more we add, the more people will not compile itā€¦

  • to me could be useful to know: authorā€™s name, author contact info, maybe publication date, name/brand of the model.

  • the info/description about the story of the watch must be optional

  • where to display the info on csm? additional window or integrated in the main window?

  • big problem: csm is hosted on codeplex, and codeplex will shut down in october. all the projects must be migrated on github. we can wait for ricardo to find the time do it (but heā€™s very busy and I donā€™t know when and if heā€™ll find the time) or migrate only the beta 2.0 fork, and start working on there. Iā€™ll add anyone who ask to the project, so we can work together. itā€™s opensource, after all.

You are right. Changing xml to accomodate this changes is risky and can cause more headache than itā€™s worth. Putting that info in xml comment probably would cause additional work on parsing (comments might get skipped by parser and never get fed to your app). Writing back xml with comment section that includes some basic info is probably easier.
That basic info (author, contact info, name etc) as well as some extended description could be written to separate file (say .ini style or xml whatever is easily parseable). Keeping it in separate file would not confuse clockskin engines.

About migrating to GitHub: maybe just getting permission from ricardo to migrate it to github will do? It can be done with separate account (details of it could be sent to ricardo so he has control on it) and then you can simply fork there. Since itā€™s opensource than if the credits are in place than probably doesnā€™t really matter who will upload it to GH (each git clone is complete fullblown repo ā€“ has full history/branches/etc from the moment it was cloned - thatā€™s the beauty of git)