From: Christopher N. <nev...@us...> - 2001-06-07 22:34:51
|
Date: Thursday June 7, 2001 @ 15:34 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv11904/aws Log Message: Directory /cvsroot/crystal/CS/plugins/aws added to the repository |
From: Christopher N. <nev...@us...> - 2001-06-07 22:41:46
|
Date: Thursday June 7, 2001 @ 15:41 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv12280 Added Files: aws.h aws.mak awsprefs.cpp awsprefs.h skinlang.bsn skinlang.flx sllex.cpp slparse.cpp slparse.cpp.h slparse.h Log Message: Added experimental AWS plugin. AWS is the experimental alternate window system, which aims to create a lightweight window manager that doesn't take over the software, supports definition files, and implements slots and signals. This plugin has not been added to the global make. It is still in it's initial stages, but is committed so that people can look at it. Eric and I discussed a number of changes that we'd like to make to csws, but they would require too much modification of the existing code. That would be both difficult, and would break a lot of other peoples code. All the existing CSWS components will be "ported" over to the new code. I would like to emphasize that this is completely experimental, and is not meant to replace anything. (yet.) -={C}=- |
From: Christopher N. <nev...@us...> - 2001-06-11 18:24:59
|
Date: Monday June 11, 2001 @ 11:24 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv11660 Modified Files: aws.h awsprefs.cpp awsprefs.h skinlang.bsn skinlang.flx slparse.cpp slparse.cpp.h Log Message: Made some modifications to AWS so that it can be a plugin. Still doesn't load properly.... |
From: Christopher N. <nev...@us...> - 2001-06-11 18:26:02
|
Date: Monday June 11, 2001 @ 11:26 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv11903 Added Files: awskeycn.cpp awsmgr.cpp Log Message: Oop! Forgot to add these before committing. |
From: Eric S. <sun...@us...> - 2001-06-11 20:36:00
|
Date: Monday June 11, 2001 @ 13:35 Author: sunshine Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv7342/plugins/aws Modified Files: aws.h aws.mak awskeycn.cpp awsmgr.cpp awsprefs.cpp awsprefs.h skinlang.bsn slparse.cpp Added Files: aws.cpp Log Message: Eric Sunshine made the following changes to AWS: -*- Fixed up the SCF goop so that the plugin loads properly and registers all of its plublic classes. In particular, added registration for the awsPrefManager class. Also added a missing IMPLEMENT_FACTORY() for this class. -*- Replaced use of static_cast<> with STATIC_CAST() for better portability. -*- Removed the `i' prefix from the names of the AWS files in CS/include/ivaria and merged them into aws.h. -*- Repaired a couple minor makefile defects. |
From: Christopher N. <nev...@us...> - 2001-06-12 18:07:13
|
Date: Tuesday June 12, 2001 @ 11:07 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv29198 Modified Files: awsprefs.cpp skinlang.bsn skinlang.flx sllex.cpp slparse.cpp Log Message: More progress on the parser. Implemented the very helpful patches sent to me by Eric Sunshine, so the test harness now functions properly with the plugin. The parser now recognizes complete skin defintions, and constructs a proper parse tree of the results, though it currently discards the results at the top level. -={C}=- |
From: Christopher N. <nev...@us...> - 2001-06-12 22:58:29
|
Date: Tuesday June 12, 2001 @ 15:58 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv24156 Modified Files: awsprefs.h skinlang.bsn skinlang.flx sllex.cpp slparse.cpp slparse.cpp.h Log Message: Lots more work on the parser. The parse tree is nearly completely constructed, only discarded at the very top layer. The parser can currently properly parse the following definition: skin "Normal Window" { Texture: "/lib/windows/texture.png" Another: "/lib/tex/windows/defbackgr.png" Wack: "/libandstuff/dir/garbage.png" } window "New User" from "Normal Window" { Frame: (100, 200) - (400, 500) Style: Bitmapped Overlay: "/lib/windows/newuserovl.png" Back: "/lib/windows/newuserbck.png" component "User Name" is "Textbox" { Frame: (10, 30) - (390, 45) Style: NoFrame Caption: "Name:" } component "User Sex Frame" is "3dFrame" { Frame: (10, 50) - (250,100) Style: ThreeDee Caption: "Sex" component "Male" is "Radio Button" { Frame: (5, 5) - (200, 30) Caption: "Male" } component "Female" is "Radio Button" { Frame: (5, 35) - (200, 50) Caption: "Female" } } } Components can be nested as deeply as you want. So far I'm assuming that coordinates of children are expressed inside their parent's rectangle. Any integers that occur can be normal infix expressions using addition, subtraction, multiplication, and division (parenthetical solving is, of course, included). I don't expect you to need more than that, but if you do let me know. I'm vaguely thinking of adding some sort of macro variable system where you can assign certain variables a value, and then use those values later down as offsets. As in: define FirstRadFrame = (10,10) - (100,35) component "bla" is "Radio Button" { Frame: (FirstRadFrame.Left, FirstRadFrame.Top+15) - (FirstRadFrame.Right, FirstRadFrame.Bottom+15) } -={C}=- |
From: Christopher N. <nev...@us...> - 2001-06-13 23:16:40
|
Date: Wednesday June 13, 2001 @ 16:16 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv17770 Modified Files: awskeycn.cpp awsprefs.cpp awsprefs.h skinlang.bsn skinlang.flx sllex.cpp slparse.cpp Log Message: More work on the parser, as well as some additional work on the preferences manager. The parser now adds window and skin definition trees into the preference manager. (In other words, the parser is now useful. :-) There is a difference between skin and window definitions that may not seem obvious at first. That is, skin definitions specify global options for components and window defintions specify local, unique options. In other words, the background texture for all items would be specified in a skin definition. As would the texture used for buttons, for checkboxes, scrollbars, etc. A window definition is used to specify stuff like the caption, where the component goes, exactly what type of window it is, etc. Window definitions currently take a skin definition as a parameter of their grammatical structure. I'm not sure this is a good idea, and I will probably change that. Multiple skin definitions and window definitions can exist in a single file. There is no need to predeclare anything, since there are no interdependencies. I may add an include statement which will allow a single file to include other files that it may depend upon. I am thinking through the ramifications of allowing modular code, e.g. component "Sex Frame" is "Frame" { component "Male" is "Radio Button" { ... } component "Female is "Radio Button" { ... } } then later: window "new player" { named component "Sex Frame" } This may make some things a lot easier, especially when you have gui constructs that you'd like to use in other places. -={C}=- |
From: Philip W. <phi...@us...> - 2001-06-14 09:27:34
|
Date: Thursday June 14, 2001 @ 2:27 Author: philwyett Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv11123 Modified Files: sllex.cpp Log Message: Fixed #includes so only GCC compilers use "unistd.h" and MSVC 5/6 use "io.h" |
From: Eric S. <sun...@us...> - 2001-06-14 14:17:13
|
Date: Thursday June 14, 2001 @ 7:17 Author: sunshine Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv24132/plugins/aws Modified Files: aws.cpp Log Message: Eric Sunshine eliminated all of the special platform-specific glue libraries and objects with which applications and plugin were required to link in the past. Rather than maintaining special object files and static libraries, the platform-specific glue is now implemented on-the-fly via macros. -*- Eliminated all of the platform-specific special implementation files: cssys/os2/dllentry.cpp cssys/ps2/dummy.cpp cssys/unix/dummy.cpp cssys/win32/dllentry.cpp cssys/win32/exeentry.cpp -*- Removed the Windows-specific special static link libraries along with their project files: cswin32exe.lib cswin32dll.lib libcswin32exe.dsp libcswin32dll.dsp -*- Eliminated the MSVC dependencies upon libcswin32exe.dsp and libcswin32dll.dsp. -*- Eliminated the SRC.SYS_CSSYS_EXE and SRC.SYS_CSSYS_DLL system-level makefile variables which controlled how the special implementation files were inserted into the build process. -*- Added the new macro CS_IMPLEMENT_PLUGIN to cssysdef.h. This macro should be placed at the global scope in exactly one compilation unit comprising a plugin module. For maximum portability, each plugin module must employ this macro. Some platforms override the definition of this macro in order to augment the implementation of the plugin module with any special implementation details required by the platform. For example, the Windows port uses this macro to implement the DllMain() function. -*- Added the new macro CS_IMPLEMENT_APPLICATION to cssysdef.h. This macro should be placed at the global scope in exactly one compilation unit comprising an application. For maximum portability, each application should employ this macro. Platforms override the definition of this macro in order to augment the implementation of an application with any special implementation details required by the platform. For example, the Windows port uses this macro to implement the WinMain() function. -*- cssysdef.h for OS/2 now defines CS_IMPLEMENT_PLUGIN to implement _DLL_InitTerm() and a version of getenv() which works for plugin modules. -*- cssysdef.h for Unix now defines CS_IMPLEMENT_PLUGIN to implement main() in plugin modules if requested by the platform-specific makefile. Currently, the Linux, FreeBSD, and Hurd makefiles request this augmentation. -*- cssysdef.h for Windows now defines CS_IMPLEMENT_PLUGIN to implement DllMain(), and CS_IMPLEMENT_APPLICATION to define WinMain(). -*- Completely re-worked and simplified the convoluted `main' versus `csMain' versus `WinMain' issue on Windows. In the past, the Windows port tried renaming all `main' functions to `csMain' (via the C-preprocessor), and then implemented its own `main' and `WinMain' functions which acted as covers to `csMain'. With the new, much simpler scheme, `WinMain' is merely a thin cover over `main' and global renaming is unnecessary. -*- Augmented all applications and plugin modules with the new CS_IMPLEMENT_APPLICATION and CS_IMPLEMENT_PLUGIN macros. |
From: Christopher N. <nev...@us...> - 2001-06-14 19:11:54
|
Date: Thursday June 14, 2001 @ 12:11 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv18454 Modified Files: aws.h awskeycn.cpp awsmgr.cpp awsprefs.cpp awsprefs.h Log Message: Added useful querying classes to the preference manager to select a current skin, and to be able to get values from the skin tree. Also added NameToId mapping function. Added some more items to the interface definition files. |
From: Christopher N. <nev...@us...> - 2001-06-15 22:05:12
|
Date: Friday June 15, 2001 @ 15:05 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv10275 Modified Files: aws.h aws.mak awsmgr.cpp awsprefs.cpp awsprefs.h Log Message: Lots of changes. 1. Implemented most of awsWindow's basic functionality. Windows are arranged in a doubly-linked list hierarchy. The top window is pointed to by the window manager, and the hierachy follows downwards from there. awsWindow implements Raise() and Lower(), and implements two new triggers, OnRaise() and OnLower(). 2. Expanded awsComponent. Implemented default Setup() function to automatically pull the frame and id of a component out of the component's setup information gleaned from the defintion file. Also setup the default triggers like OnMouse*() and OnKeypress(). 3. Fixed make file to include CSGFX and CSFX. 4. Expanded awsManager to include tracking of a top window. Also embedded a subclass of csProcTexture in it to allow components to draw to this canvas. The manager actually uses the user-provided iGraphics3D to draw the window manager's canvas to the screen. I may also allow the user to specify a virtual screen size and a texture size, and then perform drawing over NxN textures based on the virtual screen and rect tests. -={C}=- |
From: Christopher N. <nev...@us...> - 2001-06-15 22:06:11
|
Date: Friday June 15, 2001 @ 15:06 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv12003 Added Files: awscomp.cpp awscomp.h awswin.cpp awswin.h Log Message: Added in new files for AWS. |
From: Eric S. <sun...@us...> - 2001-06-15 22:27:56
|
Date: Friday June 15, 2001 @ 15:27 Author: sunshine Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv16113/plugins/aws Modified Files: sllex.cpp Log Message: Reverted Philip's change to sllex.cpp because it broke compilation on all platforms other than Visual-C++. |
From: Eric S. <sun...@us...> - 2001-06-15 22:48:24
|
Date: Friday June 15, 2001 @ 15:48 Author: sunshine Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv19331/plugins/aws Modified Files: aws.h awsmgr.cpp Log Message: Eric Sunshine made the following changes: -*- Worked around a bogus error in the NextStep compiler where it claimed to know nothing about the embedded ~awsCanvas() in the awsmgr.cpp file. -*- Added the missing `aws' entry to the PLUGINS.DYNAMIC list in user.mak. (Currently commented-out, though). |
From: Philip W. <phi...@us...> - 2001-06-16 02:48:41
|
Date: Friday June 15, 2001 @ 19:48 Author: philwyett Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv23197/plugins/aws Modified Files: sllex.cpp Log Message: Fixed so will compile on MSVC. This fix has been tested on MSVC, MingW (GCC) and the GCC 2.96 from Linux Mandrake 8 and works fine. This all could be altered at a lter date when the plugin bacomes active, but for testing purposes on MSVC it is adequate. Also removed: /* Scanner skeleton version: * $Header: /cvsroot/crystal/CS/plugins/aws/sllex.cpp,v 1.6 2001/06/15 22:27:56 sunshine Exp $ */ which Erics terminal merged this into the file. |
From: Christopher N. <nev...@us...> - 2001-06-16 20:59:52
|
Date: Saturday June 16, 2001 @ 13:59 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv18207 Modified Files: aws.h awscomp.cpp awscomp.h awsmgr.cpp Added Files: awsslot.cpp awsslot.h Log Message: 1. Created signal and slot architecture. Slots are signal conduits that end at a sink. Slots are currently component to component conduits. A signal is emitted by calling Emit with a reference to the emitting component and an unsigned long that represents the signal. A sink is always a component member function. I realize that that is a silly restriction, so I will modify that to allow any class that sub-classes a new class called awsSink to be a signal sink. Components will then inherit from this class. 2. Cleaned up some code involving drawing contexts. The drawing contexts are now stored in the window manager, and referenced by components from there. Two new functions SetContext and SetDefaultContext can be called to setup these contexts. One or the other MUST be called. SetDefaultContext sets the contexts to an internal procedural texture. The user can get the iTextureHandle of this (though I don't currently have it exposed.) 3. I would caution anyone who modifies sllex.cpp to be aware that this file, and it's associate slparse.cpp are both automatically generated. Any changes you make will disappear if there are any modifications to skinlang.flx or skinlang.bsn. If possible, it would be better to fix problems in the soure parser and lex language files rather than their generated results. |
From: Christopher N. <nev...@us...> - 2001-06-16 21:02:01
|
Date: Saturday June 16, 2001 @ 14:02 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv18867 Modified Files: aws.h Log Message: Fixed small compile bug introduced by my incorrect handling of the RCS merge of different versions. |
From: Christopher N. <nev...@us...> - 2001-06-16 22:08:26
|
Date: Saturday June 16, 2001 @ 15:08 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv26644 Modified Files: awscomp.cpp awscomp.h awsslot.cpp awsslot.h Log Message: 1. Modified the slot/signal system to support a special type called iAwsSigSrc as signal sources. Signal sources have some special helper functions for registering and unregistering slots, as well as broadcasting to the lot of them. 2. Slot sinks can now be any member function of a class derived from iBase. This should make the system much more general and useful. 3. For now signal is an unsigned long, but I have run into the question of how to figure out who a signal source really is, and how to get the changed value from them. Originally I wanted to have all signal sources simply be components, but that limits the system somewhat. For example, what if i want the WindowManger to be a signal source? Or the preferences manager? I may move the ID functionality from components to iAwsSigSrc classes so that you can ask the window manager just exactly who and what the signal source is. I thought about using the SCF system, but that's a little too heavyweight for what I want to do. I think that mostly the signal should identify the type of source, for example, push buttons and radio buttons would have different signals for a mouse click. However, this introduces the problem of namespace collision. Perhaps signals should be registered in a signal source and mapped to an unsigned long like ID's. Then signals themselves can be referenced by index, much like the colors for csws components. e.g. #define PUSHBUTTOn_MOUSEDOWN 1 signals[PUSHBUTTON_MOUSEDOWN] = NameToID("pushbutton_mousedown"); The signal itself would still have to be sent using the real value. This would mess up switch statements, though, because you'd never know ahead of time what the values would be. They wouldn't be. Hm... const. |
From: Christopher N. <nev...@us...> - 2001-06-17 04:22:11
|
Date: Saturday June 16, 2001 @ 21:22 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv8833 Modified Files: aws.h awscomp.cpp awscomp.h awsmgr.cpp awswin.cpp awswin.h Log Message: Created the Mark routine in the window manager using simple scatter/gather techniques to make more efficient use of bandwidth for updates which have many small regions. Created Invalidate, which calls Mark with the frame of the compent's area to be marked |
From: Jorrit T. <jo...@us...> - 2001-06-17 19:43:50
|
Date: Sunday June 17, 2001 @ 12:43 Author: jorrit Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv29541/plugins/aws Modified Files: aws.h Log Message: Renamed csfx to cstool. This is to prepare for addition of additional features which are not really special effects. |
From: Christopher N. <nev...@us...> - 2001-06-18 03:22:03
|
Date: Sunday June 17, 2001 @ 20:22 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv31937 Modified Files: aws.h awsmgr.cpp Log Message: Made a small algorithmic change to the dirty rect update scheme. It's a little less silly about what to do when all the buckets fill up: it sets a flag \, mergfes all previous rects into bucket zero, and then uses bucket zero for all subsequent updates. This eliminates overdraw in the sinplest way, without making the algorithm overly complex. Cde a small algoritVS: Committing in . |
From: Christopher N. <nev...@us...> - 2001-06-18 22:59:13
|
Date: Monday June 18, 2001 @ 15:59 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv15305 Modified Files: aws.h aws.mak awscomp.cpp awscomp.h awsmgr.cpp awswin.cpp awswin.h Log Message: 1. Made some minor changes, fixed some silly errors. 2. Created the csComponentFactory class 3. Made some mods to the interface and manager to support component registration. |
From: Christopher N. <nev...@us...> - 2001-06-21 20:04:33
|
Date: Thursday June 21, 2001 @ 13:04 Author: neverjade Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv27342 Modified Files: aws.h awscomp.cpp awscomp.h awsmgr.cpp awswin.cpp awswin.h Log Message: 1. Implemented children for components. 2. IMplemented almost all of the redraw algorithm. |
From: Eric S. <sun...@us...> - 2001-06-25 14:05:46
|
Date: Monday June 25, 2001 @ 7:05 Author: sunshine Update of /cvsroot/crystal/CS/plugins/aws In directory usw-pr-cvs1:/tmp/cvs-serv26211/plugins/aws Modified Files: aws.cpp aws.h awsmgr.cpp awsprefs.cpp awsprefs.h Log Message: Eric Sunshine made the following name changes throughout the project in order to avoid global namespace pollution: All SCF macros are now prefixed by "SCF_". All MSG_BLAH macros are now prefixed by "CS_". All QUERY_PLUGIN macros are now prefixed by "CS_". All LOAD_PLUGIN macros are now prefixed by "CS_". All IS_BLAH_EVENT macros are now prefixed by "CS_". |