|
Post by Tim Penrose on Dec 5, 2005 1:20:44 GMT -5
Hi, here are some screenshots as promised. As you can see there is LOTS of work to be done. In the one screenshot I am showing the initial revision of the table-insert dialog. The other screenshot shows the node properties dialog, where everything about the node is set. Notice the Node Type. The Node Type is grayed out after the nodes are created. Its kind-of boring with all the same icons for each node.. I could have changed that, but was lazy. I have not yet implemented the code to take the icons from KeyNote yet, but I will. To do that, I need to download the source and grab the .ico file from it...
|
|
kf2
New Member
Posts: 18
|
Post by kf2 on Dec 5, 2005 7:08:19 GMT -5
Awesome work! Just one question, how are you planning on handling the Keynote Notes? Are they going to be high level nodes or are you going to mimic the Keynote tab style? I am highly anticipating the beta!
Kevin
|
|
|
Post by Tim Penrose on Dec 5, 2005 10:48:38 GMT -5
You are very keen to notice the "New note (was a note)" node in the screenshot. You might also have noticed in my screenshot that it created the "Tim" node as a sibling, rather than a child of "New note". This is wrong and will be corrected.
For certain, there will be something that functions similar to "notes". There is a compelling organizational argument for having a top-level tabbing structure.
My current (loosely decided) thoughts are that "notes" will be eliminated and that "favorites" will have a checkbox that allows them to display on a tab. Selecting a tab would bring the user to the “favorite” node. Tabs would then auto-select themselves as a user navigated to nodes that belonged under another “favorite”… This makes it convenient for user to verify that they are in the high-level location that they think they are. If favorites are nested, then the auto-selected tab is the first “favorite” parent located. My thinking is that this is the best of both worlds since it provides a tab structure, and yet there is a unified tree structure.
This would mean that KeyNote-import places all the notes into the single combined tree structure, and then creates a favorite for each of the KeyNote notes with the option to make them present themselves as tabs checked-off. This way it feels very familiar to KeyNote users while teaching them the new paradigm for creating their tabs.
|
|
kf2
New Member
Posts: 18
|
Post by kf2 on Dec 5, 2005 11:38:03 GMT -5
Ahhhh... I see. That sounds like an interesting plan. I'd have to use it to see how it works, but it sounds good. Thanks for the answer,
Kevin
|
|
|
Post by Tim Penrose on Dec 5, 2005 11:51:16 GMT -5
Other explanations:
Notice the "*" at the end of the node name of the selected node (in both screenshots). The "*" indicates that there are unsaved changes in that node. If the user clicks the first icon in the toolbar (looks like a floppy disk), it will save the changes for the selected node. If the user clicks the second icon (looks like many floppy disks), then all unsaved nodes will be saved. The user can right click the node and select “Revert to Saved” (not visible in screenshot) to discard their unsaved changes in the selected node. Doing this will not affect the unsaved changes in another node.
Much of the UI depends on the Node Type of the selected node. For instance, the toolbar visible in the screenshot (including the save, print, spell-check, etc) belong to the RTF Content Handler, and is specific to the RTF Node Type. The reason for this is because some Node Types will be strictly a “view”, so it would not make sense to provide the option to “Save” the view since it is not editable. Though it would probably offer the “Save All” icon simply as a convenience. The built in Content Handlers will all have a consistent look and feel, which means that when it makes sense, they will all start with the first four icons; Save, Save All, Print, and Node Properties. Of course, these features are also available in other places. The Save, Save All, and Print will be available in the File menu. The Node Properties will be available by right-clicking on the node and selecting “Node Properties”.
Both screenshots reveal another example of how the UI is affected by the Node Type. Observe the “RTF Actions” menu item. This menu item was dynamically generated based on the Node Type. Third party Content Handlers can implement their own dropdown menus with Node-Type specific actions in them. This menu item will always have the caption “[Node Type Name] Actions”, so for example Plain Text nodes will have a menu item with the caption “Plain Text Actions”.
The Node Properties Dialog (seen in the second screenshot) will look very similar for all Node Types, but the property name-value grid will present different custom properties as is appropriate for the given Node Type.
Users will be able to create “custom” Node Types where they can invent their own Properties. Then, when the user creates a new Node of their custom Node Type, they will be able to set the values of those properties in the Node Properties Dialog. The node property values are searchable and will integrate in other fundamental ways. “Custom” Node Types derive from existing Node Types. So for example, a user could extend the RTF Node Type to implement a “Customer” Node Type, giving it a custom icon to look like a facial side-profile, or something else that helps them identify the node as being of their custom type. They might then create custom properties to hold the standard properties that all customer would have, like “Customer Name”, “Address”, “Phone Number”, etc…. Sooner or later (ideally soon!), a version of the application will make these properties programmatically available as first-class members of the application. I am using the same mechanism myself when creating the built-in Node Types to implement type-specific functionality.
Sorry, I instinctively used “customers” as my example because the “customers” table has become almost as ubiquitous in database programming examples as the “hello world” application is in general programming. Perhaps a better example for students might be to extend the RTF Node Type to make a custom “Class” Node Type. The properties of a class Node might be “Instructor”, “Class Name/Code”, “Building Number”, “Room Number”, “Semester Taken”, etc. The more “normalized” data is, the easier it is to do AMAZING things with it later. Of course, I’ve got a huge trick up my sleeve here too; patience!!
Test Harness is for my development. This ties into the unit testing that I use to verify that things are doing what I expect them to do.
Font selection; This isn’t in the screenshot, but its worth mentioning. Some people (such as professional graphic artists and such) often have thousands of installed fonts on their machine. I can fathom where having them all pre-load before the dropdown appears may becomes problematic, from a performance standpoint. Macromedia solves this problem by creating a standard dropdown without showing samples, but then creates the font sample in the tool-tip that appears when a user hovers over the font. This is okay, but means the user has to flop back and forth between the font names and the scrollbar to navigate. I was already experiencing a significant delay when I implemented the font names to show using their respective font, so I had to implement the dropdown in pages. The scrollbar is replaced with two buttons that fill in roughly the same area as the scrollbar should have (long and skinny). The user can click those, or more conveniently they can use the mouse scroll-wheel and/or Page Up/Down. The fonts are numbered so the user knows when they have cycled through all fonts since the paging starts over when the user pages beyond the end of the list. This also makes it easier (for me anyways) to remember where a particular font is on the list for a particular machine… (The number assigned to a given font is arbitrary and will change if new fonts are installed).
Undo/Redo will be presented in a history list, where a user can view everything and select a point in history to go back to.
How popular are macros? I am not planning any macro support for the first release. This is because I plan something much bigger and better, so I don’t want to waste time implementing something I know I’m going to replace.
Tim
|
|
kf2
New Member
Posts: 18
|
Post by kf2 on Dec 5, 2005 12:22:33 GMT -5
All good ideas! Very exciting to hear the ideas as you work on them.
Macros would be absoluetely AWESOME! Obviously I have no idea how easy it would be to implement, but it would awesome to be able to do stuff like in Office VBA. Customization is one huge reason, but another is just being able to do repetitive actions easily. Like I said, I have no idea how easy this would be, but if it's at all possible I would use it.
Kevin
|
|
|
Post by Tim Penrose on Dec 5, 2005 13:37:41 GMT -5
Hi Kevin, If you are interested, read my response in the thread at: novolibera.proboards80.com/index.cgi?board=executive&action=display&thread=1132771000It helps to explain why macros are not on the immediate agenda. Its not that I don't think macros are important. On the contrary, customization and programming are so fundamental to the application that it will ultimately become the primary development focus after I’ve completed the “environment”…
|
|
|
Post by Wow on Dec 6, 2005 7:47:23 GMT -5
Wow. Looks promising. Thank you for sharing the screenshots and your ideas. This is definitely warming up.
|
|
ebs
New Member
Posts: 3
|
Post by ebs on Dec 14, 2005 20:49:58 GMT -5
Tim is your version of keynote going to have tabs as in the original?
thanks
|
|
|
Post by Tim Penrose on Dec 15, 2005 22:58:50 GMT -5
Hi,
I am currently planning to have tabs, but the tabs will function as bookmarks into a unified tree structure. It would just seems to violate the premise of a tree-based organizer to have branches that don't connect... Think of unix/linux file system mounts versus Windows A:, B:, C:, D:, E:, etc. On the other hand, tabs are useful so I will create them in a way that doesn't violate the tree paradigm.
|
|
|
Post by Kevin on Dec 31, 2005 17:26:00 GMT -5
Hi Tim, I've been lurking for a bit now I've been using Keynote daily for about 4 years so I'm glad you're picking up the userbase and continuing the effort. One thing I always wished was in Keynote, was support for alpha blending under Windows XP for the note icons. I have checked out dozens upon dozens of similar note taking programs, and none of them seem to support this feature. Is this something that is possible? Thanks, -Kevin
|
|
|
Post by Tim Penrose on Jan 2, 2006 22:40:41 GMT -5
Hi Kevin,
Could you explain this to me? I am using the controls and icons as they were designed in the .net framework. This means that it will have all modern facilities. So perhaps it does, but I can't answer until I understand the request better.
Thanks,
Tim
|
|
|
Post by Kevin on Jan 3, 2006 3:16:40 GMT -5
Hi Tim,
Basically, it would just mean that the custom tree/node icons would support transparency (alpha blending), as Windows XP does, so that they blend in with the background rather than having jagged edges.
-Kevin
|
|
|
Post by Tim Penrose on Jan 27, 2006 11:00:01 GMT -5
Hi Kevin,
I believe that's doable. That is added to my list.
|
|