X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0fd734af37cfad81055678e1398d76ff696bbc05..3d2791f12caee789ac732ac586588dad1fab1947:/docs/microwin/readme.txt diff --git a/docs/microwin/readme.txt b/docs/microwin/readme.txt index d7cff792dc..1e6152714c 100644 --- a/docs/microwin/readme.txt +++ b/docs/microwin/readme.txt @@ -3,36 +3,59 @@ wxMicroWindows port Julian Smart 2001-07-02 -This is a snapshot of my experimental port of wxWindows to -MicroWindows. Widgets are supplied by the wxUniversal project, -while the underlying port uses the Windows ports with small -modifications for the MicroWindows API. +This is a port of wxWindows to MicroWindows, under Linux. +Widgets are supplied by the wxUniversal project, while the +underlying port uses the Windows ports with small modifications +for the MicroWindows API. There are many things missing from MicroWindows that will make the port quite limited for the time being. I haven't worked out how to create bitmaps, though there is a BMP to C -converter. There are no menus, no common dialogs, and only -one WIN32 app may be run at a time. +converter. There are no common dialogs (we will use generic ones), +and only one WIN32 app may be run at a time. -Some things can no doubt be worked around, and/or MicroWindows -itself tweaked. Lots of wxWin functionality is just switched off or -commented out. +Note that you can gain confidence in the WIN32/wxUniversal +combination by compiling wxUniversal under Windows using VC++, +using src/wxvc_universal.dsp. You can compile the minimal +and widgets samples in wxUniversal mode using the +UnivDebug and UnivRelease targets. Most of the code is shared +between this combination, and the wxMicroWindows port. Installation ============ -First install MicroWindows - untar it, change config to -use X11 and any other options you feel fit, apply -microwindows.patches to fix PeekMessage, and compile -(type 'make' from within the src directory). +MicroWindows: -Untar the wxMicroWindows port, and change the TOP variable at the -top of src/microwin/Makefile to reflect where MicroWindows is installed. -Type 'make all' from src/microwin. To clean, use cleanwx and NOT clean -since that will clean MicroWindows itself. +- unarchive MicroWindows 0.89pre7 + +- change 'config' to use X11 and any other options you feel fit. + Suggestions for changes to the defaults: + + ERASEMOVE=N (otherwise moving windows will look messy) + X11=Y + OPTIMIZE=N + DEBUG=Y + VERBOSE=Y + +- apply microwindows.patches (from wxWindows: + docs/microwin/microwindows.patches) to fix PeekMessage + and other issues + +- compile by typing 'make' from within the MicroWindows src directory + +wxMicroWindows: + +- untar the wxMicroWindows port/download from CVS + +- change the TOP variable at the top of src/msw/makefile.mic + to reflect where MicroWindows is installed + +- type 'make all' from src/msw. To clean, use cleanwx and NOT clean + since that will clean MicroWindows itself + +- to make the sample, cd into samples/minimal, edit the TOP variable, + and type 'make all' -To make the sample, cd into samples/minimal, edit the TOP variable, -and type 'make all'. Running 'minimal' runs the virtual MicroWindows desktop and the minimal sample, since in a MicroWindows WIN32 application they are one and the same binary. @@ -40,15 +63,39 @@ they are one and the same binary. Status ====== -A frame comes up :-) +The minimal sample is almost fully-functional, apart from minor +menu presentation issues (no borders, for example). + +Implementation Notes +==================== + +wxMicroWindows is essentially the wxMSW port + wxUniversal +widgets. Lots of things in include/wx/univ/setup.h are switched +off to allow the port to compile. There are also #ifdefs +switching off further functionality, such as most wxBitmap +functions, pending proper implementation. + +There are some WIN32 API functions not implemented by MicroWindows +that are instead stubbed out in include/wx/msw/microwin.c, +and 'implemented' in src/msw/microwin.c. Some of these functions +are important, some less so. They will need to be implemented +in due course. But implementing missing functionality in this way +is preferably to proliferating many #ifdefs in the +wxMSW/wxMicroWindows port itself. -Notes -===== +Things missing from MicroWindows that need to be worked around +============================================================== -No ::GetKeyState (see microwin/private.h). Should probably use GdOpenKeyboard/GdCloseKeyboard/GdReadKeyboard. Could perhaps emulate GetKeyState this way. +No ::GetKeyState (see include/wx/msw/private.h). Should probably use +GdOpenKeyboard/GdCloseKeyboard/GdReadKeyboard. Could perhaps emulate +GetKeyState this way. No ::CreateBitmap or BITMAPINFO. But BMPs can be converted to C using convbmp, then need to use Gr... functions. +We MUST implement creation from XPMs, since wxUniversal +makes use of XPMs, or else create our own bitmaps for +drawing radioboxes, checkboxes etc.: see renderers +in src/univ. No ::DestroyIcon, ::DestroyCursor - use ::DestroyObject instead? Also no LoadCursor, LoadImage. So how do we make cursors? No ::SetCursor. @@ -56,10 +103,10 @@ Also no LoadCursor, LoadImage. So how do we make cursors? No ::SetCursor. wxDC: no ::GetTextColor, ::GetBkColor, ::IntersectClipRect, ::GetClipBox -No ::SetMenu, so no menus or menubars. +No ::SetMenu, so no menus or menubars (now implemented by +wxUniversal). No ::GetObject so we can't get LOGFONT from an HFONT -in wxSystemSettings. +in wxSystemSettings (worked around by passing HFONT to +the wxFont constructor). -No ::CreateDialog so how do we create dialogs? Simulate -one with a frame I guess.