Alright, here we go, all the tools are implemented, as well as pen width:

Download in the normal spot:
http://merthsoft.com/Tokens.zip

Also, I'd like the take the time to thank bsparks for the awesome tool icons Smile
Some feature requests:

    ▪ A shortcut to escape the last multi-character token parsed. Perhaps Shift+Backspace or Alt+Backspace.
    ▪ A way to customize the escape character. Probably either via the settings file or the tokens XML file.
    ▪ An option to cause the escape character to be skipped over when moving the cursor, lumped with the next character when backspacing/deleting, etc. This would primarily be useful if the two features above are implemented and a zero-width space is used as the escape character, in which case the textual representation of escapes could be entirely hidden (I like pretty code). One could determine if a group of characters is a token by the presence of syntax highlighting or the grouping underline.
    ▪ A way to toggle representation of a group of characters as a token or individual characters. This would also primarily be useful if the features above are implemented and a zero-width space is used as the escape character, as this would allow one to escape/unescape a group of characters without having to directly interact with the escape character. This could possibly be implemented as a key shortcut, like Ctrl+T or Alt+T, that affects the characters around the cursor, or perhaps even by providing the capability in a context menu when right-clicking over the target group of characters?
Awesome additions to Tokens! Very Happy

And those icons do look pretty awesome Smile
Copying this from another thread so I know where to find it when I get home:
Kerm wrote:
All those feature requests and bug reports above still need to be dealt with. Anyway, here's something Merth requested: the format for Image and Picture files for the TI-84 Plus C Silver Edition:

- As you'd expect, the files follow the standard header format, more or less, with a few notable exceptions.
- Picture files have these header bytes in the variable header (ie, the header that starts at offset 0x55):
-- 0x04 (variable type ID) = 0x07 (tPictObj)
-- 0x05 (variable name) = 0x60 (tVarPict), 0x01 (Pic2) (or whatever)
-- 0x0D (version) = 0x0A (TI-84+CSE)
-- 0x0E (flag) = 0x80 (archived)
- Image files have these header bytes in the variable header (ie, the header that starts at offset 0x55):
-- 0x04 (variable type ID) = 0x1A (tImgObj)
-- 0x05 (variable name) = 0x3C (tVarImg), 0x01 (Image2) (or whatever)
-- 0x0D (version) = 0x0A (TI-84+CSE)
-- 0x0E (flag) = 0x80 (archived)
- Picture file contents: 265 columns, 165 rows. The image data is (266/2)*165 bytes, so two pixels are packed into each byte, and each row has an extra 0 nibble at the end to pad it out to exactly 133 bytes. Pixels are stored in row-major order: left to right, then top to bottom. The nibble for each pixel is an indexed color: 0 = transparent, 1-15 = a color. The color table is as follows (please excuse the PHP formatting; these are (R,G,B) triples, starting with color 1):
-- array(array(0,0,31), array(31,0,0), array(0,0,0), array(31,0,31), array(0,39,0), array(31,35,4), array(22,8,0), array(0,0,15), array(0,36,31), array(31,63,0), array(31,63,31), array(28,56,28), array(24,48,24), array(17,34,17), array(10,21,10));
- Image file contents: 82 rows, 133 columns, so every pixel is expanded to be 2x2 LCD pixels. Each pixel stored takes two bytes, and is packed as a 5-6-5 R-G-B value. Although image files are stored in row-major order, they are stored bottom-to-top, like BMP images, so left-to-right and bottom-to-top. Inexplicably, each row is padded with two extra bytes, bringing it to 268 bytes wide. The total data in an Image is therefore 268*82 bytes.

Hope this helps! I'd be happy to answer any follow-up questions.
Just started a new file with Tokens (latest update)

Quote:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Globalization.CultureNotFoundException: Culture is not supported.
Parameter name: name
neutral is an invalid culture identifier.
at System.Globalization.CultureInfo..ctor(String name, Boolean useUserOverride)
at System.Reflection.RuntimeAssembly.GetReferencedAssemblies(RuntimeAssembly assembly)
at FolderSelect.Reflector..ctor(String an, String ns)
at FolderSelect.FolderSelectDialog.ShowDialog(IntPtr hWndOwner)
at Merthsoft.TokenIDE.Tokens.setUpSave(String& directory)
at Merthsoft.TokenIDE.Tokens.buildFile(Nullable`1 varType, Nullable`1 calcType)
at Merthsoft.TokenIDE.Tokens.CompileToolStripMenuItem_Click(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18046 built by: FX45RTMGDR
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
TokenIDE
Assembly Version: 0.10.3.0
Win32 Version: 0.10.3.0
CodeBase: file:///C:/Users/Daniel/Downloads/Tokens/TokenIDE/TokenIDE.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18046 built by: FX45RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18022 built by: FX45RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18045 built by: FX45RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
Microsoft.CSharp
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Dynamic
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll
----------------------------------------
Anonymously Hosted DynamicMethods Assembly
Assembly Version: 0.0.0.0
Win32 Version: 4.0.30319.18046 built by: FX45RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18046 built by: FX45RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.


This is when I went to tokenize as a .8xp. It allowed me to create the name of the file, but never offered me the box on where to drop it to. It instead gave me that error message. :<



Edit:

This does not seem to be OS dependent, got the error on Win7 and Win8.
2 Problems I've found with the sprite editor:
Unchecking the 'color' box and re-checking it keeps everything as 0s and 1s, which makes sense but could be annoying.

If you draw a shape in color mode, and then uncheck color, and then cltr-z to undo you get this error:


Code:

Additional non-parsable characters are at the end of the string.

Details:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.FormatException: Additional non-parsable characters are at the end of the string.
   at System.ParseNumbers.StringToInt(String s, Int32 radix, Int32 flags, Int32* currPos)
   at System.Convert.ToInt16(String value, Int32 fromBase)
   at Merthsoft.Extensions.HexHelper.BinToHex(String bin)
   at Merthsoft.TokenIDE.HexSprite.updateHex()
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.ProcessCmdKey(Message& m, Keys keyData)
   at System.Windows.Forms.ToolStripManager.ProcessShortcut(Message& m, Keys shortcut)
   at System.Windows.Forms.Form.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.PreProcessMessage(Message& msg)
   at System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg)
   at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
TokenIDE
    Assembly Version: 0.10.3.0
    Win32 Version: 0.10.3.0
    CodeBase: file:///C:/Users/unknownloner/Documents/Programs/TokenIDE/TokenIDE.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
Microsoft.CSharp
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Dynamic
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll
----------------------------------------
Anonymously Hosted DynamicMethods Assembly
    Assembly Version: 0.0.0.0
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
----------------------------------------
Accessibility
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Unknownloner: That bug should be fixed now.
tifreak: I still can't reproduce yours...

I've also modified how the undo and redo work: they now work when you resize the sprite as well. Also, if you uncheck color on accident, you can recheck it and hit undo a couple times to get your color sprite back.

I'm thinking of removing the active hex view of the sprite. I think it's cumbersome and slow and doesn't really add much value. Thoughts?

Download:
http://merthsoft.com/Tokens.zip
I honestly don't know either, it makes no sense to me. :<

As to the hex, so long as they have a way of copying it so they can paste it to the program, I'm sure that's not a big deal at all, and I fully support that idea.
Yup, that's always existed:
I like the change of being to undo a couple times to color. I think perhaps it'd be nice to have undo work on the actual check box for color or not, as in I uncheck color, the undo rechecks it and re-applies color. Not a big deal, really.

Also, would it be much trouble to add a way to set the default folder for the Open->File in the ini file? I don't want my programs mixed in with the Token xml files, but at the same time I don't want to navigate back to the xml files when changing token sets. If there's another way to do it that I'm missing, let me know.

Thanks!
I'm going to change the way palettes are handled at some point, and with it will be being able to undo a palette switch (they'll likely be stored with the sprite object itself). In any case, that's a good idea, being able to undo that, and it's definitely going to be in there.
Actually, on a technical level, the way it works right now is I just use a list and add elements to it and keep track of the position. I plan on making some sort of History<T> object that will keep track of the state internally. Right now I have a bunch of methods just related to that in the sprite editor, and it's getting a bit hard to handle...

As for the folder in the ini, that might be doable. What would probably make more sense is having a "Tokens" folder in the INI, and when you go to switch tokens files it just reads from there--keeping everything more centralized.
It might be nice to have a 'copy to clipboard' button since hey might not have put the cursor in the correct spot before jumping off to play with that editor.
That's not a bad idea. Incidentally, I'm thinking of decoupling the sprite/image editor from TokenIDE as a whole. TokenIDE will still use the editor, but I'll release it independently as well.
Some updates:
1) I've removed the hex-pane from the hex editor. You will be able to copy the hex to the clipboard or insert it at the cursor location. You'll still be able to start with some hex and edit it. The only functionality lost will be manually editing the hex (and, I guess, watching the hex change as you edit it).

2) I've added the ability to have a partial XML file (thanks to Jonimus and Runer for the suggestion). So, for example, I made a DCS8.xml file that only has the DCS8 libraries in it. It points to the main TI-84+CSE.xml file as its parent. When you load DCS8.xml it first loads TI-84+CSE.xml and then it loads itself, adding all the new tokens in. I'll go into more technical details when I actually release it.

Meanwhile, here's a screenshot:

I know the orange looks pretty bad--remember, that's driven through the XML so it's easy to change.
That looks winning to me Very Happy
I was able to fix tifreak's tokenization issue, so if anyone else was having that problem, too, it's gone now. Sadly, I had to revert to the crappy folder browser dialog.

However, this release does have the preliminary DCS8 libs in it. If anyone is interested in the partial XML files, that's implemented. Use "parentXml" in the root node to point to the main file. You can then specify the tokens how you normally do. I've also added token references, so you don't need to put the hex value:

Code:
<!-- Celtic commands -->
   <Token byte="@det(">
      <Token byte="@0" string="ReadLine(" style="Hyrbid" site="http://dcs.cemetech.net/index.php/DCSE:BasicLibs:ReadLine" group="Celtic" />

The token just has to already exist. The parent XML file is loaded first, so all those tokens exist. Reference tokens can only be multi-byte if the other byte is specified (hence why in the DCS8.xml file I don't use @real). When it loads the child XML, it'll add any previously undefined tokens, or replace existing ones is they have a string="" value.

Download at the blah blah:
http://merthsoft.com/Tokens.zip
So far, everything has been working great for me so far! Very Happy
Good to hear. I have Friday off and plan on using some of that time at the zoo. Some more of that time will be spent working on Tokens Very Happy
Awesome! What's next on your to-do list?
I need to get all the xLib tokens into the file, and then I need to get editing xLib pictures up and running.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
» Goto page Previous  1, 2, 3 ... 7, 8, 9, 10, 11, 12  Next
» View previous topic :: View next topic  
Page 8 of 12
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement