Glitches in the Matrix, er…NeatTools

Posted: March 25th, 2014 | Author: | Filed under: AS3 | No Comments »

Step one, I’ve identified the Windows function that created the toolbox windows. It’s in JComponent.cpp here:

//Toolbox! 
  JComponent* JComponent::createJDialog(char* name, 
    JComponent* p, boolean widthSysMenu, void** arg) {
	  HWND hWnd = CreateWindowEx(
		  WS_EX_TOPMOST,
		  name,
		  "",
		  WS_POPUP | WS_CLIPCHILDREN | WS_CAPTION | WS_DLGFRAME | WS_SIZEBOX | ((widthSysMenu) ? WS_SYSMENU : 0),
		  0, 
		  0,
		  0,
		  0,
		  (HWND)(int)*p, 
		  null,
		  JMicroSoft::hInstance,
		  (LPVOID)arg);
    return (hWnd) ? getJComponent((int)hWnd) : null;
  }

So far I’ve been able to modify the windows style slightly, just to prove that this is the window I’m looking for. Now I need to figure out how it’s being resized.

I’ve also encountered another bug. If I leave a toolbox open, when I close the program down, when I come back, the border on the toolbox is missing. If I close it and restart the program it seems fine, but still strange. One thing at a time.


First Build

Posted: March 21st, 2014 | Author: | Filed under: AS3 | 4 Comments »

So, I did a preliminary build.  I’m using Microsoft Visual Studio Express 2013 for Windows Desktop.

And the source files from Sourceforge.

I started with these instructions for building the executable from source in Visual Studio.

I didn’t get the errors he mentioned, but I did get three errors, which can be fixed (at least for building purposes) with changes to JMixerObj.h in the modules folder.  Add the line:

static void** hMixer;

Also in JMixerObj.h the following three lines need to be commented out because
the procedures referenced do not exist in the .cpp file.

// virtual JArray getDeviceTag();
// virtual JArray getProperties();
// virtual boolean updateProperty(JProperty& prop);

So, yay, it compiles. But there is a problem (probably several) illustrated below. The Toolbox windows don’t resize well. They should resize to any shape and then wrap all the modules to the space. This seems to be switching between two values very quickly making resizing impossible. You can generally get it to a shape that let’s you pull out the modules, but it doesn’t seem to let you resize the window to encompass all the modules, which you should be able to do. Any thoughts?
neattools1


A Fresh Start

Posted: March 21st, 2014 | Author: | Filed under: Original | Tags: , | No Comments »

So, it’s been a while, and I’m making a change to the site.  Basically, I’m expanding the scope of the project to include my recent decision to take the the updating of NeatTools upon myself.  For the moment, the goal is just to create a stable version of the current functionality of NeatTools and to bring it into the 21st century (just a few years late).  This will require, obviously, working in C++, something I have basically no experience with.  I can make a mean, “Hello World” program, though.  I do have general programming experience, and I’m hoping that I can acquire the required knowledge.  I’m also giving myself a year to do this (this being, learn C++ and fix NeatTools).  So ambition isn’t going to be my problem.

I’ve set out some milestones for the process.  I’d like to create an external module. I’d like to create an internal module.  I’d like to update the UI.  And probably some more things I can’t think of at the moment.  I’ve already gained enough knowledge to be able to screw NeatTools up pretty badly while still compiling, so there’s that.

I’m going to track my progress and hopefully I’ll see this through.  I think I don’t enough to be too daunted at this point.  That may change, but here’s hoping I can stick it out.  Wish me luck.


Let there be light.

Posted: April 1st, 2011 | Author: | Filed under: AS3 | 2 Comments »

Engine works. Button passes it’s value to the LED, and the LED checks it’s value and lights up.  The potential question now, is is my current mechanism for pinging the connection a bottleneck? I mean it is, but how bad of one.  Right now, Connections are kept in an array in the Workspace.  Connections have two modules as properties moduleA and moduleB.  So, when the button is pressed, it first has to find all the connections where moduleA is the button, then pass moduleA’s value to moduleB’s engine.  The more modules I have the slower this process will be obviously, but how fast will it reach critical mass. I will probably need to devise some benchmarking. Anyway…

This movie requires Flash Player 9


Graphical Assets

Posted: March 28th, 2011 | Author: | Filed under: AS3 | 1 Comment »

So I took a little detour on actual progress, and took a stab a some alternative looks for the modules.  To this point the modules were drawn using the drawing api in as3.  I decided to design a button and an led in the Flash IDE and then bring them into my project as graphical assets.  I’d ultimately like to have skins for this, I could do an original NeatTools skin, but I though I would try an remove some of the ambiguity of the original modules, and make them a little prettier.  No functionality yet, I have the LED on state ready to go, I just need to code it.

This movie requires Flash Player 9