Added Property List classes to main library; added proplist sample; merged
changes.txt files git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1292 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
@@ -10,6 +10,18 @@ docs/latex/wx/*.bmp
|
|||||||
docs/latex/wx/*.gif
|
docs/latex/wx/*.gif
|
||||||
docs/latex/wx/*.wmf
|
docs/latex/wx/*.wmf
|
||||||
|
|
||||||
|
docs/latex/proplist/*.tex
|
||||||
|
docs/latex/proplist/*.sty
|
||||||
|
docs/latex/proplist/*.bib
|
||||||
|
docs/latex/proplist/*.hpj
|
||||||
|
docs/latex/proplist/*.ini
|
||||||
|
docs/latex/proplist/*.txt
|
||||||
|
docs/latex/proplist/*.cnt
|
||||||
|
docs/latex/proplist/*.eps
|
||||||
|
docs/latex/proplist/*.bmp
|
||||||
|
docs/latex/proplist/*.gif
|
||||||
|
docs/latex/proplist/*.wmf
|
||||||
|
|
||||||
docs/latex/porting/*.tex
|
docs/latex/porting/*.tex
|
||||||
docs/latex/porting/*.sty
|
docs/latex/porting/*.sty
|
||||||
docs/latex/porting/*.bib
|
docs/latex/porting/*.bib
|
||||||
|
@@ -179,19 +179,6 @@ utils/serialize/*.xbm
|
|||||||
utils/serialize/*.xpm
|
utils/serialize/*.xpm
|
||||||
utils/serialize/*.txt
|
utils/serialize/*.txt
|
||||||
|
|
||||||
utils/wxprop/Makefile
|
|
||||||
utils/wxprop/src/*.h
|
|
||||||
utils/wxprop/src/*.cpp
|
|
||||||
utils/wxprop/src/*.def
|
|
||||||
utils/wxprop/src/*.rc
|
|
||||||
utils/wxprop/src/makefile*
|
|
||||||
utils/wxprop/src/*.xbm
|
|
||||||
utils/wxprop/src/*.xpm
|
|
||||||
utils/wxprop/src/*.txt
|
|
||||||
utils/wxprop/src/*.ico
|
|
||||||
utils/wxprop/src/*.bmp
|
|
||||||
utils/wxprop/lib/dummy
|
|
||||||
|
|
||||||
utils/dialoged/Makefile
|
utils/dialoged/Makefile
|
||||||
utils/dialoged/src/bitmaps/*.xbm
|
utils/dialoged/src/bitmaps/*.xbm
|
||||||
utils/dialoged/src/bitmaps/*.xpm
|
utils/dialoged/src/bitmaps/*.xpm
|
||||||
@@ -420,6 +407,15 @@ samples/fractal/*.xpm
|
|||||||
samples/fractal/*.ico
|
samples/fractal/*.ico
|
||||||
samples/fractal/*.rc
|
samples/fractal/*.rc
|
||||||
|
|
||||||
|
samples/proplist/*.cpp
|
||||||
|
samples/proplist/*.h
|
||||||
|
samples/proplist/*.def
|
||||||
|
samples/proplist/makefile*
|
||||||
|
samples/proplist/*.xbm
|
||||||
|
samples/proplist/*.xpm
|
||||||
|
samples/proplist/*.ico
|
||||||
|
samples/proplist/*.rc
|
||||||
|
|
||||||
samples/layout/*.cpp
|
samples/layout/*.cpp
|
||||||
samples/layout/*.h
|
samples/layout/*.h
|
||||||
samples/layout/*.def
|
samples/layout/*.def
|
||||||
|
@@ -22,8 +22,8 @@ docs/html/wxgraph/*.gif
|
|||||||
docs/html/wxhelp/*.htm
|
docs/html/wxhelp/*.htm
|
||||||
docs/html/wxhelp/*.gif
|
docs/html/wxhelp/*.gif
|
||||||
|
|
||||||
docs/html/wxprop/*.htm
|
docs/html/proplist/*.htm
|
||||||
docs/html/wxprop/*.gif
|
docs/html/proplist/*.gif
|
||||||
|
|
||||||
docs/html/winstall/*.htm
|
docs/html/winstall/*.htm
|
||||||
docs/html/winstall/*.gif
|
docs/html/winstall/*.gif
|
||||||
|
319
docs/changes.txt
@@ -1,18 +1,227 @@
|
|||||||
Generic wxWindows 2.0 Change Log
|
wxWindows 2.0 Change Log
|
||||||
--------------------------------
|
------------------------
|
||||||
|
|
||||||
Note: for platform-specific changes, see wx/docs/XXX/changes.txt
|
Alpha 18, December 29th 1998
|
||||||
where XXX is one of msw, motif, xt, gtk, mac.
|
----------------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Win16 support working again (VC++ 1.5)
|
||||||
|
- Win16 now uses generic wxNotebook, wxListCtrl,
|
||||||
|
wxTreeCtrl -- more or less working now, although
|
||||||
|
a little work on wxNotebook is still needed.
|
||||||
|
Under 16-bit Windows, get assertion when you click
|
||||||
|
on a tab.
|
||||||
|
- Wrote 16-bit BC++ makefiles: samples don't yet link.
|
||||||
|
- Added CodeWarrior support to distribution courtesy
|
||||||
|
of Stefan Csomor.
|
||||||
|
|
||||||
|
wxMotif:
|
||||||
|
|
||||||
|
- Cured scrolling problem: scrollbars now show/hide themselves
|
||||||
|
without (permanently) resizing the window.
|
||||||
|
- Removed some commented-out lines in wxScrolledWindow::AdjustScrollbars
|
||||||
|
that disabled scrollbar paging.
|
||||||
|
- Set background colour of drawing area in wxWindow, so e.g. wxListCtrl
|
||||||
|
colours correctly.
|
||||||
|
- Removed major bug whereby dialogs were unmanaged automatically
|
||||||
|
when any button was pressed.
|
||||||
|
- Fixed colours of wxWindow scrollbars, made list and text controls
|
||||||
|
have a white background.
|
||||||
|
- Fixed dialog colour setting.
|
||||||
|
- Added settable fonts and colours for wxMenu/wxMenuBar. Now
|
||||||
|
they have sensible colours by default.
|
||||||
|
- Fixed a bug in wxStaticBox.
|
||||||
|
- Cured wxTreeCtrl bug: now works pretty well!
|
||||||
|
- Debugged DrawEllipticArc (a ! in the wrong place).
|
||||||
|
- Added SetClippingRegion( const wxRegion& region ).
|
||||||
|
- Added wxPoint, wxSize, wxRect versions of SetSize etc.
|
||||||
|
|
||||||
|
Alpha 17, November 22nd 1998
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- More documentation updates, especially for
|
||||||
|
wxLayoutWindow classes and debugging facilities.
|
||||||
|
- Changed wxDebugContext to use wxDebugLog instead
|
||||||
|
of wxTrace.
|
||||||
|
- Now supports VC++ 6.0, and hopefully BC++ 5.0.
|
||||||
|
However, DLL support may be broken for BC++ since
|
||||||
|
VC++ 6 required changing of WXDLLEXPORT keyword
|
||||||
|
position.
|
||||||
|
- Numerous miscellaneous changes.
|
||||||
|
|
||||||
|
wxMotif:
|
||||||
|
|
||||||
|
- Reimplemented MDI using wxNotebook instead of the MDI widgets, which
|
||||||
|
were too buggy (probably not design for dynamic addition/removal of
|
||||||
|
child frames).
|
||||||
|
- Some improvements to the wxNotebook implementation.
|
||||||
|
- wxToolBar now uses a bulletin board instead of a form, in an attempt
|
||||||
|
to make it possible to add ordinary wxControls to a toolbar.
|
||||||
|
- Cured problem with not being able to use global memory operators,
|
||||||
|
by defining two more global operators, so that the delete will match
|
||||||
|
the debugging implementation.
|
||||||
|
- Added wxUSE_DEBUG_NEW_ALWAYS so we can distinguish between using
|
||||||
|
global memory operators (usually OK) and #defining new to be
|
||||||
|
WXDEBUG_NEW (sometimes it might not be OK).
|
||||||
|
- Added time.cpp to makefile; set wxUSE_DATETIME to 1.
|
||||||
|
- Added a parent-existance check to popup menu code to make it not crash.
|
||||||
|
- Added some optimization in wxWindow::SetSize to produce less flicker.
|
||||||
|
It remains to be seen whether this produces any resize bugs.
|
||||||
|
|
||||||
|
It's a long time since I updated this file. Previously done:
|
||||||
|
|
||||||
|
- wxFrame, wxDialog done.
|
||||||
|
- wxScrolledWindow done (but backing pixmap not used at present).
|
||||||
|
- wxBitmap done though could be tidied it up at some point.
|
||||||
|
- Most basic controls are there, if not rigorously tested.
|
||||||
|
- Some MDI support (menus appear on child frames at present).
|
||||||
|
- wxNotebook almost done.
|
||||||
|
- wxToolBar done (horizontal only, which would be easy to extend
|
||||||
|
to vertical toolbars).
|
||||||
|
|
||||||
|
More recently:
|
||||||
|
|
||||||
|
- Colour and font changing done (question mark over what happens
|
||||||
|
to scrollbars).
|
||||||
|
- Accelerators done (for menu items and buttons). Also event loop
|
||||||
|
tidied up in wxApp so that events are filtered through ProcessXEvent.
|
||||||
|
- wxWindow::GetUpdateRegion should now work.
|
||||||
|
|
||||||
|
Alpha 16, September 8th 1998
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Added wxSashWindow, wxSashLayoutWindow classes, and sashtest
|
||||||
|
sample.
|
||||||
|
- Guilhem's socket classes added, plus wxsocket sample.
|
||||||
|
- A few more makefiles added.
|
||||||
|
- GnuWin32/BC++ compatibility mods.
|
||||||
|
- Further doc updates.
|
||||||
|
- wxProp updates for correct working with wxGTK.
|
||||||
|
|
||||||
|
wxMotif:
|
||||||
|
|
||||||
|
- First start at Motif port.
|
||||||
|
- Made makefiles for wxMotif source directory and minimal sample.
|
||||||
|
- First go at wxApp, wxWindow, wxDialog, wxPen, wxBrush, wxFont,
|
||||||
|
wxColour, wxButton, wxCheckBox, wxTextCtrl, wxStaticText,
|
||||||
|
wxMenu, wxMenuItem, wxMenuBar
|
||||||
|
|
||||||
|
Alpha 15, August 31st 1998
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- wxBitmap debugged.
|
||||||
|
- wxDC::GetDepth added.
|
||||||
|
- Contribution added whereby wxBitmap will be
|
||||||
|
converted to DC depth if they don't match.
|
||||||
|
- wxConfig API improved, documentation updated.
|
||||||
|
- Printing classes name conventions cleaned up.
|
||||||
|
- wxUpdateUIEvent now derives from wxCommandEvent
|
||||||
|
so event can travel up the window hierachy.
|
||||||
|
|
||||||
|
Alpha 14, July 31st 1998
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Toolbar API has been simplified, and now
|
||||||
|
wxFrame::GetClientArea returns the available client
|
||||||
|
area when toolbar, status bar etc. have been accounted for.
|
||||||
|
wxFrame::CreateToolBar added in line with CreateStatusBar.
|
||||||
|
- Documentation updates, incl. for wxToolBar.
|
||||||
|
- New wxAcceleratorTable class plus wxFrame::SetAcceleratorTable.
|
||||||
|
- Various additions from other folk, e.g. streams, wxConfig
|
||||||
|
changes, wxNotebook.
|
||||||
|
- Added wxDocMDIParentFrame, wxDocMDIChildFrame for doc/view.
|
||||||
|
|
||||||
|
Alpha 13, July 8th 1998
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Implemented wxPoint as identical to POINT on Windows, and
|
||||||
|
altered wxDC wxPoint functions to use wxPoint directly in
|
||||||
|
Windows functions, for efficiency.
|
||||||
|
- Cured wxASSERT bug in wxStatusBar95.
|
||||||
|
- #ifdefed out some bits in oleutils.cpp for compilers that
|
||||||
|
don't support it.
|
||||||
|
- Added some operators to wxPoint, wxSize.
|
||||||
|
- Added inline wxDC functions using wxPoint, wxSize, wxRect.
|
||||||
|
|
||||||
|
Alpha 12, July 7th 1998
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Added wxApp::GetComCtl32Version, and wxTB_FLAT style, so can
|
||||||
|
have flat toolbars on Win98 or Win95 with IE >= 3 installed.
|
||||||
|
|
||||||
Alpha 11, July 3rd 1998
|
Alpha 11, July 3rd 1998
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Added thread.h, thread.cpp.
|
||||||
|
- Changed Enabled, Checked to IsEnabled, IsChecked in wxMenu,
|
||||||
|
wxMenuBar.
|
||||||
|
- Changed wxMenuItem::SetBackColor to SetBackgroundColour,
|
||||||
|
SetTextColor to SetTextColour, and added or made public several
|
||||||
|
wxMenuItem accessors.
|
||||||
|
- Added two overloads to wxRegion::Contains. Added
|
||||||
|
wxRegion::IsEmpty for a more consistent naming convention.
|
||||||
|
- Added Vadim's wxDataObject and wxDropSource.
|
||||||
|
- ENTER/LEAVE events now work.
|
||||||
|
- Cured wxMemoryDC bug where the DC wasn't being deleted.
|
||||||
|
- Cured wxGauge SetSize major bugginess.
|
||||||
|
- Cured problem where if a GDI object was created on the stack,
|
||||||
|
then went out of scope, then another object was selected into
|
||||||
|
the DC, GDI objects would leak. This is because the assignment
|
||||||
|
to e.g. wxDC::m_pen would delete the GDI object without it first
|
||||||
|
being selected out of the DC. Cured by selecting the old DC object
|
||||||
|
first, then doing the assignment.
|
||||||
|
- Split up wxGaugeMSW, wxGauge95, wxSliderMSW, wxSlider95
|
||||||
|
- Various other bug fixes and additions.
|
||||||
|
|
||||||
|
Generic:
|
||||||
|
|
||||||
- Major work on Dialog Editor (still plenty to go).
|
- Major work on Dialog Editor (still plenty to go).
|
||||||
- Expanded documentation a bit more.
|
- Expanded documentation a bit more.
|
||||||
|
|
||||||
|
Alpha 10, May 7th 1998
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Added desiredWidth, desiredHeight parameters to wxBitmapHandler
|
||||||
|
and wxIcon functions so that you can specify what size of
|
||||||
|
icon should be loaded. Probably will remain a Windows-specific thing.
|
||||||
|
- wxStatusBar95 now works for MDI frames.
|
||||||
|
- Toolbars in MDI frames now behave normally. They still
|
||||||
|
require application-supplied positioning code though.
|
||||||
|
- Changed installation instructions, makefiles and batch files
|
||||||
|
for compiling with Gnu-Win32/Mingw32/EGCS. Also timercmn.cpp
|
||||||
|
change to support Mingw32/EGCS. Bison now used by default.
|
||||||
|
|
||||||
Alpha 9, April 27th 1998
|
Alpha 9, April 27th 1998
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Cured bug in wxStatusBar95 that caused a crash if multiple
|
||||||
|
fields were used.
|
||||||
|
- Added Gnu-Win32 b19/Mingw32 support by changing resource
|
||||||
|
compilation and pragmas.
|
||||||
|
- Cured wxMenu bug introduced in alpha 8 - didn't respond to
|
||||||
|
commands because VZ changed the id setting in wxMenu::MSWCommand.
|
||||||
|
|
||||||
|
Generic:
|
||||||
|
|
||||||
- Corrected some bugs, such as the wxModule compilation problem.
|
- Corrected some bugs, such as the wxModule compilation problem.
|
||||||
- Added Gnu-Win32 b19/Mingw32 support by changing resource
|
- Added Gnu-Win32 b19/Mingw32 support by changing resource
|
||||||
compilation and pragmas.
|
compilation and pragmas.
|
||||||
@@ -21,6 +230,32 @@ Alpha 9, April 27th 1998
|
|||||||
Alpha 8, April 17th 1998
|
Alpha 8, April 17th 1998
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Added IsNull to wxGDIObject to check if the ref data is present or not.
|
||||||
|
- Added PNG handler and sample - doesn't work for 16-bit PNGs for
|
||||||
|
some reason :-(
|
||||||
|
- Added wxJoystick class and event handling, and simple demo.
|
||||||
|
- Added simple wxWave class. Needs Stop() function.
|
||||||
|
- Added wxModule (module.h/module.cpp) to allow definition
|
||||||
|
of modules to be initialized and cleaned up on wxWindows
|
||||||
|
startup/exit.
|
||||||
|
- Start of Mingw32 compatibility (see minimal and dialogs samples
|
||||||
|
makefile.m95 files, and install.txt).
|
||||||
|
- Note: Windows printing has stopped working... will investigate.
|
||||||
|
VADIM'S CHANGES:
|
||||||
|
- Updated wxString: bug fixes, added wxArrayString, some
|
||||||
|
compatibility functions.
|
||||||
|
- Updated log.h/cpp, added wxApp::CreateLogTarget.
|
||||||
|
- file.h: new wxTempFile class.
|
||||||
|
- defs.h: added wxSB_SIZE_GRIP for wxStatusBar95
|
||||||
|
- statbr95: wxStatusBar95 control.
|
||||||
|
- registry.h/cpp: wxRegKey class for Win95 registry.
|
||||||
|
- listbox.cpp: corrected some bugs with owner-drawn listboxes.
|
||||||
|
- wxConfig and wxFileConfig classes.
|
||||||
|
|
||||||
|
Generic:
|
||||||
|
|
||||||
- Added src/other/png, src/other/zlib directories.
|
- Added src/other/png, src/other/zlib directories.
|
||||||
- Added samples/png.
|
- Added samples/png.
|
||||||
- IMPORTANT: Changed 'no id' number from 0 to -1, in wxEVT_ macros.
|
- IMPORTANT: Changed 'no id' number from 0 to -1, in wxEVT_ macros.
|
||||||
@@ -31,6 +266,27 @@ Alpha 8, April 17th 1998
|
|||||||
Alpha 7, March 30th 1998
|
Alpha 7, March 30th 1998
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Added tab classes, tab sample.
|
||||||
|
- Now can return FALSE from OnInit and windows will be
|
||||||
|
cleaned up properly before exit.
|
||||||
|
- Improved border handling so panels don't get borders
|
||||||
|
automatically.
|
||||||
|
- Debugged MDI activation from Window menu.
|
||||||
|
- Changes to memory debug handling, including checking for
|
||||||
|
memory leaks on application exit - but see issues.txt for
|
||||||
|
unresolved issues.
|
||||||
|
- Added wxTaskBarIcon (taskbar.cpp/h, plus samples/taskbar)
|
||||||
|
to allow maintenance of an icon in the Windows 95 taskbar
|
||||||
|
tray area.
|
||||||
|
- Got MFC sample working (MFC and wxWindows in the same
|
||||||
|
application), partly by tweaking ntwxwin.mak settings.
|
||||||
|
- Got DLL compilation working again (VC++).
|
||||||
|
- Changed wxProp/Dialog Editor filenames.
|
||||||
|
|
||||||
|
Generic:
|
||||||
|
|
||||||
- Added tab classes, tab sample.
|
- Added tab classes, tab sample.
|
||||||
- Revised memory.cpp, memory.h slightly; memory.h now #defines
|
- Revised memory.cpp, memory.h slightly; memory.h now #defines
|
||||||
new to WXDEBUG_NEW in DEBUG mode. Windows implementation app.cpp
|
new to WXDEBUG_NEW in DEBUG mode. Windows implementation app.cpp
|
||||||
@@ -48,6 +304,36 @@ Alpha 7, March 30th 1998
|
|||||||
Alpha 6, March 10th 1998
|
Alpha 6, March 10th 1998
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Found stack error bug - stopped unwanted OnIdle recursion.
|
||||||
|
- Removed bug in wxTreeCtrl::InsertItem I added in alpha 5.
|
||||||
|
- Changed exit behaviour in wxApp/wxFrame/wxDialog. Now will
|
||||||
|
check if the number of top-level windows is zero before
|
||||||
|
exiting. Also, wxApp::GetTopWindow will return either
|
||||||
|
m_topWindow or the first member of wxTopLevelWindows, so you
|
||||||
|
don't have to call wxApp::SetTopWindow.
|
||||||
|
- Added dynarray.h/dynarray.cpp (from Vadim).
|
||||||
|
- Added first cut at OLE drag and drop (from Vadim). dnd sample
|
||||||
|
added. Drop target only at this stage. See src/msw/ole/*.cpp,
|
||||||
|
wx/include/msw/ole/*.h. WIN32 only because of UUID usage.
|
||||||
|
Doesn't work with GnuWin32 - no appropriate headers e.g. for
|
||||||
|
IUnknown.
|
||||||
|
Doesn't work with BC++ either - crashes on program startup.
|
||||||
|
- Added Vadim's owner-draw modifications - will probably remain
|
||||||
|
Windows-only. This enhances wxMenu, wxListBox. See ownerdrw sample.
|
||||||
|
- Added wxLB_OWNERDRAW for owner-draw listboxes.
|
||||||
|
- Vadim's wxCheckListBox derives from wxListBox. See checklst sample.
|
||||||
|
Doesn't entirely work for WIN16.
|
||||||
|
- Vadim has added wxMenuItem as a separate file menuitem.cpp. It
|
||||||
|
can also be used as an argument to wxMenu::Append, not just for
|
||||||
|
internal implementation.
|
||||||
|
- Some #ifdefs done for MINGW32 compilation (just alter OPTIONS
|
||||||
|
in makeg95.env, together with mingw32.bat). However, resource
|
||||||
|
binding is not working yet so most apps with dialogs crash.
|
||||||
|
|
||||||
|
Generic:
|
||||||
|
|
||||||
- Added Vadim's dynarray.h, dynarray.cpp.
|
- Added Vadim's dynarray.h, dynarray.cpp.
|
||||||
- Added Vadim's menuitem.cpp.
|
- Added Vadim's menuitem.cpp.
|
||||||
- Added Windows-specific wxCheckListBox,
|
- Added Windows-specific wxCheckListBox,
|
||||||
@@ -57,6 +343,23 @@ Alpha 6, March 10th 1998
|
|||||||
Alpha 5, 14th February 1998
|
Alpha 5, 14th February 1998
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- GENERIC AND MSW-SPECIFIC CODE NOW TREATED AS TWO SEPARATE
|
||||||
|
DISTRIBUTIONS. This change log will therefore now refer to
|
||||||
|
the Windows-specific code only. See docs/changes.txt for generic
|
||||||
|
changes.
|
||||||
|
- Removed Windows-specific reference counting system (GDI
|
||||||
|
resources were cleaned up in idle time) - minimal
|
||||||
|
advantages now we have a wxWin reference counting system.
|
||||||
|
- Added missing WXDLLEXPORT keywords so DLL compilation works
|
||||||
|
again.
|
||||||
|
- Removed most warnings for GnuWin32 compilation.
|
||||||
|
- Added wxRegion/wxRegionIterator, but haven't yet used it in
|
||||||
|
e.g. wxDC.
|
||||||
|
|
||||||
|
Generic:
|
||||||
|
|
||||||
- GENERIC AND MSW-SPECIFIC CODE NOW TREATED AS TWO SEPARATE
|
- GENERIC AND MSW-SPECIFIC CODE NOW TREATED AS TWO SEPARATE
|
||||||
DISTRIBUTIONS. This change log will therefore now refer to
|
DISTRIBUTIONS. This change log will therefore now refer to
|
||||||
the generic code only. See docs/msw/changes.txt for Windows-specific
|
the generic code only. See docs/msw/changes.txt for Windows-specific
|
||||||
@@ -89,6 +392,8 @@ Alpha 5, 14th February 1998
|
|||||||
Alpha 4, 31st January 1998
|
Alpha 4, 31st January 1998
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
|
All:
|
||||||
|
|
||||||
- Changed wxDC functions to take longs instead of floats. GetSize now takes
|
- Changed wxDC functions to take longs instead of floats. GetSize now takes
|
||||||
integer pointers, plus a version that returns a wxSize.
|
integer pointers, plus a version that returns a wxSize.
|
||||||
- const keyword added to various wxDC functions.
|
- const keyword added to various wxDC functions.
|
||||||
@@ -142,6 +447,8 @@ Alpha 4, 31st January 1998
|
|||||||
Alpha 3, September 1997
|
Alpha 3, September 1997
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
All:
|
||||||
|
|
||||||
- wxListCtrl, wxTreeCtrl, wxImageList classes done.
|
- wxListCtrl, wxTreeCtrl, wxImageList classes done.
|
||||||
- Instigated new file hierarchy, split files and classes up more logically.
|
- Instigated new file hierarchy, split files and classes up more logically.
|
||||||
- PrologIO and some other utils now put into core library.
|
- PrologIO and some other utils now put into core library.
|
||||||
@@ -151,6 +458,8 @@ Alpha 3, September 1997
|
|||||||
Alpha 2, 30th April 1997
|
Alpha 2, 30th April 1997
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
All:
|
||||||
|
|
||||||
- EVT_... macros now have at least one argument, for conformance
|
- EVT_... macros now have at least one argument, for conformance
|
||||||
with MetroWerks compiler.
|
with MetroWerks compiler.
|
||||||
- Added ids to .wxr file format.
|
- Added ids to .wxr file format.
|
||||||
@@ -170,6 +479,8 @@ Alpha 2, 30th April 1997
|
|||||||
Alpha 1, 5th April 1997
|
Alpha 1, 5th April 1997
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
Generic:
|
||||||
|
|
||||||
At this point, the following has been achieved:
|
At this point, the following has been achieved:
|
||||||
|
|
||||||
- A lot, but not all, of the code has been revamped for better
|
- A lot, but not all, of the code has been revamped for better
|
||||||
|
@@ -56,7 +56,7 @@ from the <a href="http://wxwin.home.ml.org">wxWindows Web site</a>.<P>
|
|||||||
<li><a href="wx/wx.htm">Reference Manual</a>
|
<li><a href="wx/wx.htm">Reference Manual</a>
|
||||||
<li><a href="porting/port.htm">Porting Guide</a> (wxWindows 1.xx to 2.0)
|
<li><a href="porting/port.htm">Porting Guide</a> (wxWindows 1.xx to 2.0)
|
||||||
<li><a href="dialoged/dlged.htm">Dialog Editor</a>
|
<li><a href="dialoged/dlged.htm">Dialog Editor</a>
|
||||||
<li><a href="wxprop/prop.htm">Property Classes</a>
|
<li><a href="proplist/prop.htm">Property List Classes</a>
|
||||||
<li><a href="wxtree/tree.htm">wxTreeLayout</a>
|
<li><a href="wxtree/tree.htm">wxTreeLayout</a>
|
||||||
<li><a href="odbc/odbc.htm">Remstar ODBC Classes</a>
|
<li><a href="odbc/odbc.htm">Remstar ODBC Classes</a>
|
||||||
</ul>
|
</ul>
|
||||||
|
BIN
docs/latex/proplist/back.gif
Normal file
After Width: | Height: | Size: 226 B |
106
docs/latex/proplist/body.tex
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
\chapter{Introduction}\label{introduction}
|
||||||
|
\pagenumbering{arabic}%
|
||||||
|
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
||||||
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||||
|
|
||||||
|
The Property Sheet Classes help the programmer to specify complex dialogs and
|
||||||
|
their relationship with their associated data. By specifying data as a
|
||||||
|
wxPropertySheet containing wxProperty objects, the programmer can use
|
||||||
|
a range of available or custom wxPropertyView classes to allow the user to
|
||||||
|
edit this data. Classes derived from wxPropertyView act as mediators between the
|
||||||
|
wxPropertySheet and the actual window (and associated panel items).
|
||||||
|
|
||||||
|
For example, the wxPropertyListView is a kind of wxPropertyView which displays
|
||||||
|
data in a Visual Basic-style property list (see \helpref{the next section}{appearance} for
|
||||||
|
screen shots). This is a listbox containing names and values, with
|
||||||
|
an edit control and other optional controls via which the user edits the selected
|
||||||
|
data item.
|
||||||
|
|
||||||
|
wxPropertyFormView is another kind of wxPropertyView which mediates between
|
||||||
|
the data and a panel or dialog box which has already been created. This makes it a contender for
|
||||||
|
the replacement of wxForm, since programmer-controlled layout is going to be much more
|
||||||
|
satisfactory. If automatic layout is desired, then wxPropertyListView could be used instead.
|
||||||
|
|
||||||
|
The main intention of this class library was to provide property {\it list} behaviour, but
|
||||||
|
it has been generalised as much as possible so that the concept of a property sheet and its viewers
|
||||||
|
can reduce programming effort in a range of user interface tasks.
|
||||||
|
|
||||||
|
For further details on the classes and how they are used, please see \helpref{Property classes overview}{propertyoverview}.
|
||||||
|
|
||||||
|
\section{The appearance and behaviour of a property list view}\label{appearance}
|
||||||
|
|
||||||
|
The property list, as seen in an increasing number of development tools
|
||||||
|
such as Visual Basic and Delphi, is a convenient and compact method for
|
||||||
|
displaying and editing a number of items without the need for one
|
||||||
|
control per item, and without the need for designing a special form. The
|
||||||
|
controls are as follows:
|
||||||
|
|
||||||
|
\begin{itemize}\itemsep=0pt
|
||||||
|
\item A listbox showing the properties and their current values, which has double-click
|
||||||
|
properties dependent on the nature of the current property;
|
||||||
|
\item a text editing area at the top of the display, allowing the user to edit
|
||||||
|
the currently selected property if appropriate;
|
||||||
|
\item `confirm' and `cancel' buttons to confirm or cancel an edit (for the property, not the
|
||||||
|
whole sheet);
|
||||||
|
\item an optional list that appears when the user can make a choice from several known possible values;
|
||||||
|
\item a small Edit button to invoke `detailed editing' (perhaps showing or hiding the above value list, or
|
||||||
|
maybe invoking a common dialog);
|
||||||
|
\item optional OK/Close, Cancel and Help buttons for the whole dialog.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
The concept of `detailed editing' versus quick editing gives the user a choice
|
||||||
|
of editing mode, so novice and expert behaviour can be catered for, or the user can just
|
||||||
|
use what he feels comfortable with.
|
||||||
|
|
||||||
|
Behaviour alters depending on the kind of property being edited. For example, a boolean value has
|
||||||
|
the following behaviour:
|
||||||
|
|
||||||
|
\begin{itemize}\itemsep=0pt
|
||||||
|
\item Double-clicking on the item toggles between TRUE and FALSE.
|
||||||
|
\item Showing the value list enables the user to select TRUE or FALSE.
|
||||||
|
\item The user may be able to type in the word TRUE or FALSE, or the edit control
|
||||||
|
may be read-only to disallow this since it is error-prone.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
A list of strings may pop up a dialog for editing them, a simple string just allows text editing,
|
||||||
|
double-clicking a colour property may show a colour selector, double-clicking on a filename property may
|
||||||
|
show a file selector (in addition to being able to type in the name in the edit control), etc.
|
||||||
|
|
||||||
|
Note that the `type' of property, such as string or integer, does not
|
||||||
|
necessarily determine the behaviour of the property. The programmer has
|
||||||
|
to be able to specify different behaviours for the same type, depending
|
||||||
|
on the meaning of the property. For example, a colour and a filename may
|
||||||
|
both be strings, but their editing behaviour should be different. This
|
||||||
|
is why objects of type wxPropertyValidator need to be used, to define
|
||||||
|
behaviour for a given class of properties or even specific property
|
||||||
|
name. Objects of class wxPropertyView contain a list of property
|
||||||
|
registries, which enable reuse of bunches of these validators in
|
||||||
|
different circumstances. Or a wxProperty can be explicitly set to use a
|
||||||
|
particular validator object.
|
||||||
|
|
||||||
|
The following screen shot of the property classes test program shows the
|
||||||
|
user editing a string, which is constrained to be one of three possible
|
||||||
|
values.
|
||||||
|
|
||||||
|
$$\image{8cm;0cm}{prop1.eps}$$\\
|
||||||
|
|
||||||
|
The second picture shows the user having entered a integer that
|
||||||
|
was outside the range specified to the validator. Note that in this picture,
|
||||||
|
the value list is hidden because it is not used when editing an integer.
|
||||||
|
|
||||||
|
$$\image{8cm;0cm}{prop2.eps}$$
|
||||||
|
|
||||||
|
\chapter{Files}\label{files}
|
||||||
|
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
||||||
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||||
|
|
||||||
|
The property class library comprises the following files:
|
||||||
|
|
||||||
|
\begin{itemize}\itemsep=0pt
|
||||||
|
\item prop.h: base property class header
|
||||||
|
\item proplist.h: wxPropertyListView and associated classes
|
||||||
|
\item propform.h: wxPropertyListView and associated classes
|
||||||
|
\item prop.cpp: base property class implementation
|
||||||
|
\item proplist.cpp: wxPropertyListView and associated class implementions
|
||||||
|
\item propform.cpp: wxPropertyFormView and associated class implementions
|
||||||
|
\end{itemize}
|
BIN
docs/latex/proplist/books.bmp
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
docs/latex/proplist/books.gif
Normal file
After Width: | Height: | Size: 243 B |
BIN
docs/latex/proplist/bullet.bmp
Normal file
After Width: | Height: | Size: 138 B |
27
docs/latex/proplist/changes.tex
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
\chapter{Change log}\label{changes}
|
||||||
|
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
||||||
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||||
|
|
||||||
|
January - December 1998, Version 2.0
|
||||||
|
|
||||||
|
\begin{itemize}\itemsep=0pt
|
||||||
|
\item Conversion to wxWindows 2.0.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
November 26th 1995, Version 1.1
|
||||||
|
|
||||||
|
\begin{itemize}\itemsep=0pt
|
||||||
|
\item Added wxListOfStringsListValidator - allows adding, deleting, editing
|
||||||
|
strings.
|
||||||
|
\item Added wxPropertyValue::ClearList, wxPropertyValue::Delete,
|
||||||
|
wxPropertyValue::wxPropertyValue(wxStringList *).
|
||||||
|
\item Added wxPropertyValue::Set/GetModified, wxPropertySheet::SetAllModified.
|
||||||
|
\item Added wxPropertyView::OnPropertyChanged support, for immediate feedback.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
October 1995, Version 1.0
|
||||||
|
|
||||||
|
\begin{itemize}\itemsep=0pt
|
||||||
|
\item First release.
|
||||||
|
\end{itemize}
|
||||||
|
|
1756
docs/latex/proplist/classes.tex
Normal file
BIN
docs/latex/proplist/contents.gif
Normal file
After Width: | Height: | Size: 231 B |
BIN
docs/latex/proplist/forward.gif
Normal file
After Width: | Height: | Size: 164 B |
47
docs/latex/proplist/prop.tex
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}
|
||||||
|
\input psbox.tex
|
||||||
|
% Remove this for processing with dvi2ps instead of dvips
|
||||||
|
%\special{!/@scaleunit 1 def}
|
||||||
|
\parskip=10pt
|
||||||
|
\parindent=0pt
|
||||||
|
\title{User Manual for wxWindows Property Sheet Classes Version 2.0}
|
||||||
|
\winhelponly{\author{by Julian Smart, Anthemion Software\\$$\image{}{prop1}$$}}
|
||||||
|
\winhelpignore{\author{Julian Smart, Anthemion Software}
|
||||||
|
\date{December 1998}
|
||||||
|
}
|
||||||
|
\makeindex
|
||||||
|
\begin{document}
|
||||||
|
\maketitle
|
||||||
|
\pagestyle{fancyplain}
|
||||||
|
\bibliographystyle{plain}
|
||||||
|
\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}}
|
||||||
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||||
|
\pagenumbering{roman}
|
||||||
|
\tableofcontents
|
||||||
|
|
||||||
|
\chapter*{Copyright notice}
|
||||||
|
\setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}%
|
||||||
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
Copyright (c) 1998 Julian Smart, Anthemion Software
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
Please see the wxWindows licence for conditions of use.
|
||||||
|
|
||||||
|
\input{body.tex}
|
||||||
|
\input{classes.tex}
|
||||||
|
\input{changes.tex}
|
||||||
|
|
||||||
|
%\newpage
|
||||||
|
%
|
||||||
|
% Note: In RTF, the \printindex must come before the
|
||||||
|
% change of header/footer, since the \printindex inserts
|
||||||
|
% the RTF \sect command which divides one chapter from
|
||||||
|
% the next.
|
||||||
|
\rtfonly{\printindex
|
||||||
|
\addcontentsline{toc}{chapter}{Index}
|
||||||
|
\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}%
|
||||||
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||||
|
}
|
||||||
|
\end{document}
|
BIN
docs/latex/proplist/prop1.bmp
Normal file
After Width: | Height: | Size: 29 KiB |
539
docs/latex/proplist/prop1.eps
Normal file
@@ -0,0 +1,539 @@
|
|||||||
|
%!PS-Adobe-2.0 EPSF-2.0
|
||||||
|
%%Title: prop1.eps
|
||||||
|
%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley
|
||||||
|
%%BoundingBox: 167 292 445 500
|
||||||
|
%%Pages: 1
|
||||||
|
%%DocumentFonts:
|
||||||
|
%%EndComments
|
||||||
|
%%EndProlog
|
||||||
|
|
||||||
|
%%Page: 1 1
|
||||||
|
|
||||||
|
% remember original state
|
||||||
|
/origstate save def
|
||||||
|
|
||||||
|
% build a temporary dictionary
|
||||||
|
20 dict begin
|
||||||
|
|
||||||
|
% lower left corner
|
||||||
|
167 292 translate
|
||||||
|
|
||||||
|
% size of image (on paper, in 1/72inch coords)
|
||||||
|
278 208 scale
|
||||||
|
|
||||||
|
% define 'colorimage' if it isn't defined
|
||||||
|
% ('colortogray' and 'mergeprocs' come from xwd2ps
|
||||||
|
% via xgrab)
|
||||||
|
/colorimage where % do we know about 'colorimage'?
|
||||||
|
{ pop } % yes: pop off the 'dict' returned
|
||||||
|
{ % no: define one
|
||||||
|
/colortogray { % define an RGB->I function
|
||||||
|
/rgbdata exch store % call input 'rgbdata'
|
||||||
|
rgbdata length 3 idiv
|
||||||
|
/npixls exch store
|
||||||
|
/rgbindx 0 store
|
||||||
|
/grays npixls string store % str to hold the result
|
||||||
|
0 1 npixls 1 sub {
|
||||||
|
grays exch
|
||||||
|
rgbdata rgbindx get 20 mul % Red
|
||||||
|
rgbdata rgbindx 1 add get 32 mul % Green
|
||||||
|
rgbdata rgbindx 2 add get 12 mul % Blue
|
||||||
|
add add 64 idiv % I = .5G + .31R + .18B
|
||||||
|
put
|
||||||
|
/rgbindx rgbindx 3 add store
|
||||||
|
} for
|
||||||
|
grays
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
% Utility procedure for colorimage operator.
|
||||||
|
% This procedure takes two procedures off the
|
||||||
|
% stack and merges them into a single procedure.
|
||||||
|
|
||||||
|
/mergeprocs { % def
|
||||||
|
dup length
|
||||||
|
3 -1 roll
|
||||||
|
dup
|
||||||
|
length
|
||||||
|
dup
|
||||||
|
5 1 roll
|
||||||
|
3 -1 roll
|
||||||
|
add
|
||||||
|
array cvx
|
||||||
|
dup
|
||||||
|
3 -1 roll
|
||||||
|
0 exch
|
||||||
|
putinterval
|
||||||
|
dup
|
||||||
|
4 2 roll
|
||||||
|
putinterval
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/colorimage { % def
|
||||||
|
pop pop % remove 'false 3' operands
|
||||||
|
{colortogray} mergeprocs
|
||||||
|
image
|
||||||
|
} bind def
|
||||||
|
} ifelse % end of 'false' case
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% define the colormap
|
||||||
|
/cmap 42 string def
|
||||||
|
|
||||||
|
|
||||||
|
% load up the colormap
|
||||||
|
currentfile cmap readhexstring
|
||||||
|
000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00
|
||||||
|
ffff00 0000ff 00ffff ffffff
|
||||||
|
pop pop % lose return values from readhexstring
|
||||||
|
|
||||||
|
|
||||||
|
% rlecmapimage expects to have 'w h bits matrix' on stack
|
||||||
|
/rlecmapimage {
|
||||||
|
/buffer 1 string def
|
||||||
|
/rgbval 3 string def
|
||||||
|
/block 384 string def
|
||||||
|
|
||||||
|
% proc to read a block from file, and return RGB data
|
||||||
|
{ currentfile buffer readhexstring pop
|
||||||
|
/bcount exch 0 get store
|
||||||
|
bcount 128 ge
|
||||||
|
{ % it's a non-run block
|
||||||
|
0 1 bcount 128 sub
|
||||||
|
{ currentfile buffer readhexstring pop pop
|
||||||
|
|
||||||
|
% look up value in color map
|
||||||
|
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
|
||||||
|
|
||||||
|
% and put it in position i*3 in block
|
||||||
|
block exch 3 mul rgbval putinterval
|
||||||
|
} for
|
||||||
|
block 0 bcount 127 sub 3 mul getinterval
|
||||||
|
}
|
||||||
|
|
||||||
|
{ % else it's a run block
|
||||||
|
currentfile buffer readhexstring pop pop
|
||||||
|
|
||||||
|
% look up value in colormap
|
||||||
|
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
|
||||||
|
|
||||||
|
0 1 bcount { block exch 3 mul rgbval putinterval } for
|
||||||
|
|
||||||
|
block 0 bcount 1 add 3 mul getinterval
|
||||||
|
} ifelse
|
||||||
|
} % end of proc
|
||||||
|
false 3 colorimage
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
|
||||||
|
278 208 8 % dimensions of data
|
||||||
|
[278 0 0 -208 0 208] % mapping matrix
|
||||||
|
rlecmapimage
|
||||||
|
|
||||||
|
7f067f0614060000
|
||||||
|
81060d7f0d7f0d110d810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d068106047f047f040c040106810700
|
||||||
|
82060d068106048204060d820d060783070d0702010203098102047f047a040106810700
|
||||||
|
|
||||||
|
82060d068106048704060b060001020781070283020702098109028102047f0446040e0d
|
||||||
|
81000d0d0d81000481040d0d0d81000481040682060700
|
||||||
|
82060d0681060482040806810600820002078507020902070201028109047f044604810d
|
||||||
|
060b068307000d060b068207000482040d060b068207000481040682060700
|
||||||
|
82060d0681060481040685060800040307820702098409020702098109040104050d2d04
|
||||||
|
030d0204010d1a04050d6604810d060b068307000d06810600070001068207000482040d
|
||||||
|
060b068207000481040682060700
|
||||||
|
82060d068106048704060b0604000a0789070209020702070209040104010d0204010d1d
|
||||||
|
04010d0b04010d0104010d0104010d1204010d0704010d1004010d5504810d060b068307
|
||||||
|
000d06810600070001068207000482040d06010601000306010001068207000481040682
|
||||||
|
060700
|
||||||
|
82060d068106048204070681060001000107010286070209020702040104010d0204010d
|
||||||
|
1d04010d0b04010d0504010d1204010d0704010d1004010d5504810d060b068307000d06
|
||||||
|
820600060506810006830607000482040d06020601000106010002068207000481040682
|
||||||
|
060700
|
||||||
|
82060d0681060485040d0607060d010d8407020002090109820200040104010d0204010d
|
||||||
|
81040d010d0104030d0104040d0204030d0104020d81040d010d81040d820d040d810d04
|
||||||
|
0304010d0504040d0204030d0204030d0104020d0604010d0404030d0204020d0104020d
|
||||||
|
5404810d060b068307000d06820600060506810006830607000482040d06030603000306
|
||||||
|
8207000481040682060700
|
||||||
|
82060d068106048104070507010006020204050d0104010d0104010d0104010d81040d81
|
||||||
|
0d0481040d820d040d810d0481040d820d040d810d0481040d810d0481040d820d040d81
|
||||||
|
0d040404030d0204020d81040d820d040d810d0481040d820d040d810d0481040d820d04
|
||||||
|
0d810d040604010d0304010d0104010d81040d820d040d820d040d810d045404810d060b
|
||||||
|
068307000d06820600060506810006830607000482040d06040601000406820700048104
|
||||||
|
0682060700
|
||||||
|
82060d068106048104050505010006030204010d0504010d0104010d0104010d81040d81
|
||||||
|
0d0481040d820d040d040d81040d810d0481040d810d0481040d820d040d810d04070401
|
||||||
|
0d0104010d0104010d81040d040d81040d040d81040d810d040604010d0304050d010401
|
||||||
|
0d0204010d5504810d060b068307000d06820600060506810006830607000482040d0603
|
||||||
|
06030003068207000481040682060700
|
||||||
|
82060d0681060481040c010c8205080c830c05030a020a81030a810a040104010d050401
|
||||||
|
0d0104010d0104010d81040d810d0481040d820d040d810d040304010d0104010d010401
|
||||||
|
0d81040d810d040704010d0104010d0104010d81040d810d040304010d0404010d070401
|
||||||
|
0d0304010d0604010d0104010d5504810d060b068307000d068206000605068100068306
|
||||||
|
07000482040d06020601000106010002068207000481040682060700
|
||||||
|
82060d068106048c040c05070507050c05030a030a840a03000a040104010d0504010d01
|
||||||
|
04010d0104010d81040d810d0481040d820d040d810d0481040d820d040d810d0481040d
|
||||||
|
810d040104020d0504010d0104010d0104010d0104010d81040d810d0481040d820d040d
|
||||||
|
810d0481040d820d040d810d040604010d0304010d0104010d81040d820d040d820d040d
|
||||||
|
810d045404810d060106050003068307000d06820600060506810006830607000482040d
|
||||||
|
06010601000306010001068207000481040682060700
|
||||||
|
82060d0681060482040c08020886070c05030a030a010a82030a040104010d0504010d02
|
||||||
|
04030d0104040d0204030d0104010d0204010d0104010d0704030d0204010d0104010d01
|
||||||
|
04030d0204030d0204010d0604010d0404030d0204020d0204010d5404810d0601060500
|
||||||
|
03068307000d06810600070001068207000482040d060b068207000481040682060700
|
||||||
|
82060d0681060482040c080208010c8205030a810a0384030a030a041404010d1404010d
|
||||||
|
7f041804810d060b068307000d060b068207000482040d060b0682070004810406820607
|
||||||
|
00
|
||||||
|
82060d0681060482040c080308850c05030a030a010a82000a041404010d1204020d7f04
|
||||||
|
1904810d070c0782000d070c0781000482040d070c0781000481040682060700
|
||||||
|
82060d0681060483040c05080208850c05030a030a810a0382030a047f0446041f000104
|
||||||
|
0f0001040106810700
|
||||||
|
82060d0681060481040c050c8205030a050a7f047b040106810700
|
||||||
|
82060d068106047f047f040c040106810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d0637067f073907810d061c06810700
|
||||||
|
82060d06030616000306160001068107007f00360082060d0681060015000406810700
|
||||||
|
82060d06020681000d140d820700068206000d140d8507000607000d7f0d350d84060d06
|
||||||
|
000d140d820700060206810700
|
||||||
|
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
|
||||||
|
84060d06000d130d01078100060206810700
|
||||||
|
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
|
||||||
|
84060d06000d810d06110601078100060206810700
|
||||||
|
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
|
||||||
|
84060d06000d810d06110601078100060206810700
|
||||||
|
82060d06020682000d0603068100060606810006030601078100068306000d0612060107
|
||||||
|
84000607000d820d000d7f0d320d84060d06000d810d06110601078100060206810700
|
||||||
|
82060d06020682000d06030683000600060306810006040601078100068306000d061206
|
||||||
|
010785000607000d0081000d7f0d320d84060d06000d810d061106010781000602068107
|
||||||
|
00
|
||||||
|
82060d06020682000d06040683000600060106810006050601078100068306000d060b06
|
||||||
|
8100060406010785000607000d000100810d0081000d820d000d810d0081000d810d0002
|
||||||
|
007f0d220d84060d06000d810d06110601078100060206810700
|
||||||
|
82060d06020682000d06050685000600060006060601078100068306000d060a06830006
|
||||||
|
00060306010785000607000d0081000d810d0082000d000100810d0082000d0081000d81
|
||||||
|
0d0081000d7f0d200d84060d06000d810d06110601078100060206810700
|
||||||
|
82060d06020682000d0606068300060006070601078100068306000d0609068300060006
|
||||||
|
0406010785000607000d0081000d810d0082000d000100810d0082000d0081000d810d00
|
||||||
|
81000d7f0d200d84060d06000d810d06110601078100060206810700
|
||||||
|
82060d06020682000d0607068300060006060601078100068306000d0604068100060106
|
||||||
|
83000600060506010785000607000d0081000d010d0200810d000100010d0100010d0100
|
||||||
|
7f0d210d84060d06000d810d06110601078100060206810700
|
||||||
|
82060d06020682000d06060685000600060006050601078100068306000d060306870006
|
||||||
|
0006000600060606010785000607000d0081000d010d0200810d000100010d0100010d01
|
||||||
|
007f0d210d84060d06000d810d06110601078100060206810700
|
||||||
|
82060d06020682000d06050681000601068300060006040601078100068306000d060406
|
||||||
|
850006000600060706010784000607000d810d0081000d810d0081000d010d0100020d03
|
||||||
|
007f0d220d84060d06000d810d0603060100810600820006008100060406010781000602
|
||||||
|
06810700
|
||||||
|
82060d06020682000d06040681000603068300060006030601078100068306000d060506
|
||||||
|
83000600060806010784000607000d7f0d350d84060d06000d810d060306010081060082
|
||||||
|
000600810006040601078100060206810700
|
||||||
|
82060d06020682000d060306010005060100040601078100068306000d06060681000609
|
||||||
|
06010784000607000d7f0d350d84060d06000d810d06110601078100060206810700
|
||||||
|
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
|
||||||
|
84060d06000d810d06110601078100060206810700
|
||||||
|
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
|
||||||
|
84060d06000d810d06110601078100060206810700
|
||||||
|
82060d06020682000d0714078100068306000d07140784000607000d7f0d350d85060d06
|
||||||
|
000d0714078100060206810700
|
||||||
|
82060d06020682000d0714078100068306000d07140784000607000d7f0d350d84060d06
|
||||||
|
000715078100060206810700
|
||||||
|
82060d06030616000306160001068207000d7f0d350d82060d0681060015000406810700
|
||||||
|
|
||||||
|
82060d0637068107067f063706810d061c06810700
|
||||||
|
82060d0637067f0d3a0d1d06810700
|
||||||
|
82060d0601067f077f070a07810d060106810700
|
||||||
|
82060d0601068107007f007f00070082060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d010d0300010d0400020d03007f0d720d82060d060106810700
|
||||||
|
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
|
||||||
|
810d0081000d7f0d700d82060d060106810700
|
||||||
|
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0004007f
|
||||||
|
0d710d82060d060106810700
|
||||||
|
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
|
||||||
|
7f0d740d82060d060106810700
|
||||||
|
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
|
||||||
|
810d0081000d7f0d700d82060d060106810700
|
||||||
|
82060d0601068207000d010d0300010d0100010d0100010d03007f0d720d82060d060106
|
||||||
|
810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d060106ff0700040a040a040a040a040a040a040a040a040a040a040a040a040a04
|
||||||
|
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
|
||||||
|
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
|
||||||
|
0a040a040a040a040a040a040a040a040a040a040a040a040a040aff040a040a040a040a
|
||||||
|
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
|
||||||
|
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
|
||||||
|
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
|
||||||
|
040a040a040a040a040a040a8c040a040a040a040a040a060d060106810700
|
||||||
|
82060d0601068307000a047f047f04050482060d060106810700
|
||||||
|
82060d060106820700047f047f040504830a060d060106810700
|
||||||
|
82060d0601068307000a0482040d047f047f04020482060d060106810700
|
||||||
|
82060d0601068207000481040d810d047f047f040104830a060d060106810700
|
||||||
|
82060d0601068307000a0d020d81040d810d0482040d0481040d810d0481040d020d7f04
|
||||||
|
720482060d060106810700
|
||||||
|
82060d0601068207000481040d810d0481040d820d040d010d81040d820d040d810d0481
|
||||||
|
040d810d047f046f04830a060d060106810700
|
||||||
|
82060d0601068407000a040d810d0481040d820d040d010d81040d820d040d810d048104
|
||||||
|
0d810d047f04700482060d060106810700
|
||||||
|
82060d0601068207000481040d810d040104020d81040d010d0104010d0104010d7f0470
|
||||||
|
04830a060d060106810700
|
||||||
|
82060d0601068407000a040d810d040104020d81040d010d0104010d0104010d7f047104
|
||||||
|
82060d060106810700
|
||||||
|
82060d060106820700040104010d0104010d0204010d0204030d7f047104830a060d0601
|
||||||
|
06810700
|
||||||
|
82060d0601068307000a047f047f04050482060d060106810700
|
||||||
|
82060d060106820700047f047f040504830a060d060106810700
|
||||||
|
82060d060106ff07000a040a040a040a040a040a040a040a040a040a040a040a040a040a
|
||||||
|
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
|
||||||
|
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
|
||||||
|
040a040a040a040a040a040a040a040a040a040a040a040a040a04ff0a040a040a040a04
|
||||||
|
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
|
||||||
|
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
|
||||||
|
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
|
||||||
|
0a040a040a040a040a040a048c0a040a040a040a040a04060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d010d81000d810d0081000d7f0d7e0d82060d060106810700
|
||||||
|
82060d0601068207000d810d0081000d810d0081000d7f0d7e0d82060d060106810700
|
||||||
|
82060d0601068307000d000200810d000300010d0300010d0300020d03007f0d690d8206
|
||||||
|
0d060106810700
|
||||||
|
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
|
||||||
|
010d0100810d0081000d810d0081000d7f0d670d82060d060106810700
|
||||||
|
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0500
|
||||||
|
810d0004007f0d680d82060d060106810700
|
||||||
|
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
|
||||||
|
040d01007f0d6c0d82060d060106810700
|
||||||
|
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
|
||||||
|
010d0100810d0081000d810d0081000d7f0d670d82060d060106810700
|
||||||
|
82060d0601068207000d010d0100810d0081000d810d0082000d0081000d020d0300020d
|
||||||
|
03007f0d690d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068207000d7f0d7f0d060d82060d060106810700
|
||||||
|
82060d0601068107067f067f060806810d060106810700
|
||||||
|
82060d0601067f0d7f0d0b0d0206810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d0601067f077f070b070206810700
|
||||||
|
82060d0601068107007f007f000800810d060106810700
|
||||||
|
82060d0601068207000d7f0d760d0e060100810d060106810700
|
||||||
|
82060d0601068207000d7f0d760d81060d0b0d81070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d1c0d0100120d01000e0d81000d6b0d0400400d82060d060a0681
|
||||||
|
070082000d060106810700
|
||||||
|
82060d0601068207000d010d81000d190d81000d120d81000d7b0d85000d000d000d3f0d
|
||||||
|
82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d810d000300030d0200010d0100010d0100020d0100810d008400
|
||||||
|
0d000d0081000d090d0300010d82000d0081000d020d0200020d0200040d0300020d0200
|
||||||
|
5f0d81000d020d0100810d0082000d0081000d810d0081000d010d02002c0d82060d0603
|
||||||
|
06810006040681070082000d060106810700
|
||||||
|
82060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d820d
|
||||||
|
000d810d0081000d810d0081000d820d000d070d81000d010d81000d810d0081000d820d
|
||||||
|
000d820d000d010d81000d020d81000d020d81000d010d81000d820d000d010d81000d5d
|
||||||
|
0d81000d030d0100030d81000d010d81000d820d000d010d81000d2a0d82060d06020602
|
||||||
|
00040681070082000d060106810700
|
||||||
|
82060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d820d
|
||||||
|
000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d820d000d01
|
||||||
|
0d81000d020d81000d020d81000d040d04005e0d81000d030d81000d030d81000d010d81
|
||||||
|
000d810d0003002b0d82060d0601060400030681070082000d060106810700
|
||||||
|
82060d0601068207000d010d81000d010d81000d820d000d010d81000d820d000d810d00
|
||||||
|
81000d820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d
|
||||||
|
820d000d010d81000d020d81000d020d81000d040d81000d610d81000d030d81000d030d
|
||||||
|
81000d810d0081000d820d000d2e0d82060d068106000500020681070082000d06010681
|
||||||
|
0700
|
||||||
|
82060d0601068207000d020d0200030d0200030d0100810d0081000d810d000200810d00
|
||||||
|
0100810d000100080d0300810d000100810d000100010d0200020d0400020d0300020d03
|
||||||
|
005d0d0200020d0300030d0100810d0081000d810d0002002b0d82060d060a0681070082
|
||||||
|
000d060106810700
|
||||||
|
82060d0601068207000d1a0d81000d7f0d590d82060d060a0681070082000d0601068107
|
||||||
|
00
|
||||||
|
82060d0601068207000d170d02007f0d5b0d82060d060a0681070082000d060106810700
|
||||||
|
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d8106070c070100810d060106810700
|
||||||
|
82060d0601068207000d7f0d760d1000810d060106810700
|
||||||
|
82060d0601068207000d7f0d760d92060d060d060d060d060d060d060d060d000d060106
|
||||||
|
810700
|
||||||
|
82060d0601068207000d7f0d770d91060d060d060d060d060d060d060d06000d06010681
|
||||||
|
0700
|
||||||
|
82060d0601068207000d030d81000d7f0d2d0d81000d020d0300390d92060d060d060d06
|
||||||
|
0d060d060d060d060d000d060106810700
|
||||||
|
82060d0601068207000d7f0d320d0100030d81000d3c0d91060d060d060d060d060d060d
|
||||||
|
060d06000d060106810700
|
||||||
|
82060d0601068207000d010d0200040d0200010d0100810d0081000d7f0d1c0d83000d00
|
||||||
|
0d020d81000d3b0d92060d060d060d060d060d060d060d060d000d060106810700
|
||||||
|
82060d0601068207000d030d81000d020d81000d010d81000d810d0081000d820d000d7f
|
||||||
|
0d1a0d81000d820d000d020d02003b0d91060d060d060d060d060d060d060d06000d0601
|
||||||
|
06810700
|
||||||
|
82060d0601068207000d030d81000d030d0300010d81000d010d81000d7f0d1a0d040005
|
||||||
|
0d81000d380d92060d060d060d060d060d060d060d060d000d060106810700
|
||||||
|
82060d0601068207000d030d81000d020d81000d010d81000d820d000d010d81000d7f0d
|
||||||
|
1d0d81000d010d81000d010d81000d380d0e060100810d060106810700
|
||||||
|
82060d0601068207000d010d0400010d0800810d0001007f0d1c0d0200020d02003a0d81
|
||||||
|
060d0b0d81070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d810d0081000d060d81000d030d0100040d01007f0d170d020003
|
||||||
|
0d0300390d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d010d81000d0d0d81000d040d81000d7f0d150d81000d010d8100
|
||||||
|
0d010d81000d3b0d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d010d82000d0081000d010d0200050d81000d040d81000d7f0d18
|
||||||
|
0d81000d020d81000d3b0d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d010d0100010d81000d020d81000d040d81000d040d81000d7f0d
|
||||||
|
170d81000d030d02003a0d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d81000d7f
|
||||||
|
0d160d81000d070d81000d380d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d81000d7f
|
||||||
|
0d150d81000d040d81000d010d81000d380d82060d060a0681070082000d060106810700
|
||||||
|
|
||||||
|
82060d0601068207000d810d000300020d0400010d0400010d04007f0d140d0400020d02
|
||||||
|
003a0d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d030d81000d0a0d0100050d81000d7f0d5b0d82060d060a068107
|
||||||
|
0082000d060106810700
|
||||||
|
82060d0601068207000d110d81000d7f0d620d82060d060a0681070082000d0601068107
|
||||||
|
00
|
||||||
|
82060d0601068207000d010d0300010d0100010d0100030d81000d020d0200040d020001
|
||||||
|
0d0100810d0081000d7f0d070d0200010d0100810d0081000d020d0200330d82060d060a
|
||||||
|
0681070082000d060106810700
|
||||||
|
82060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d81000d02
|
||||||
|
0d81000d010d81000d810d0081000d820d000d7f0d050d81000d010d81000d810d008100
|
||||||
|
0d820d000d820d000d010d81000d310d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d81000d03
|
||||||
|
0d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81000d810d
|
||||||
|
000300320d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d040d81000d010d81000d810d0081000d020d81000d040d81000d
|
||||||
|
020d81000d010d81000d820d000d010d81000d7f0d050d81000d010d81000d820d000d01
|
||||||
|
0d81000d820d000d350d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d040d81000d020d0100810d0082000d000300010d0400010d0800
|
||||||
|
810d0001007f0d060d0200010d0200810d000100010d0300320d82060d060a0681070082
|
||||||
|
000d060106810700
|
||||||
|
82060d0601068207000d040d81000d7f0d6f0d82060d060a0681070082000d0601068107
|
||||||
|
00
|
||||||
|
82060d0601068207000d010d02007f0d710d82060d060a0681070082000d060106810700
|
||||||
|
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d810d0081000d060d81000d7f0d690d82060d060a068107008200
|
||||||
|
0d060106810700
|
||||||
|
82060d0601068207000d010d81000d0b0d81000d7f0d640d82060d060a0681070082000d
|
||||||
|
060106810700
|
||||||
|
82060d0601068207000d010d82000d0081000d010d0200020d0400010d0200820d000d02
|
||||||
|
0d0200010d0100810d0081000d7f0d050d0100810d0081000d020d0200010d0100810d00
|
||||||
|
81000d020d02002c0d82060d060a0681070082000d060106810700
|
||||||
|
82060d0601068207000d010d0100010d81000d020d81000d020d81000d040d85000d000d
|
||||||
|
000d820d000d010d81000d810d0081000d820d000d7f0d050d0100010d81000d820d000d
|
||||||
|
010d81000d810d0081000d820d000d820d000d010d81000d2a0d82060d060a0681070082
|
||||||
|
000d060106810700
|
||||||
|
82060d0601068207000d010d81000d010d81000d020d81000d020d81000d040d85000d00
|
||||||
|
0d000d010d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81
|
||||||
|
000d820d000d010d81000d810d0003002b0d82060d060a0681070082000d060106810700
|
||||||
|
|
||||||
|
82060d0601068207000d010d81000d010d81000d020d81000d020d81000d010d81000d86
|
||||||
|
0d000d000d000d820d000d010d81000d820d000d010d81000d7f0d050d81000d010d8100
|
||||||
|
0d820d000d010d81000d820d000d010d81000d820d000d2e0d82060d060a068107008200
|
||||||
|
0d060106810700
|
||||||
|
82060d0601068207000d810d000300020d0400020d0200010d0600810d000400810d0002
|
||||||
|
007f0d060d0200810d000100010d0200010d0200810d000100010d03002b0d8106070c07
|
||||||
|
0100810d060106810700
|
||||||
|
82060d0601068207000d240d81000d7f0d4f0d1000810d060106810700
|
||||||
|
82060d0601068207000d230d02007f0d4f0d0e060100810d060106810700
|
||||||
|
82060d0601068207000d7f0d760d81060d0b0d81070082000d060106810700
|
||||||
|
82060d060106820700047f04760482060d060a0681070082000d060106810700
|
||||||
|
82060d060106820700047f04760482060d060a0681070082000d060106810700
|
||||||
|
82060d060106820700047f04760482060d060a0681070082000d060106810700
|
||||||
|
82060d060106820700047f04760482060d060a0681070082000d060106810700
|
||||||
|
82060d060106820700043404810d041304010d7f04290482060d06810600050002068107
|
||||||
|
0082000d060106810700
|
||||||
|
82060d060106820700041d04810d042b04810d046204810d04430482060d060106040003
|
||||||
|
0681070082000d060106810700
|
||||||
|
82060d060106820700040204030d0204020d0104010d81040d810d040204030d81040d03
|
||||||
|
0d0204010d81040d810d040104020d0204020d0204010d81040d810d040204020d030401
|
||||||
|
0d82040d046104040d0104020d81040d010d0104020d330482060d060206020004068107
|
||||||
|
0082000d060106810700
|
||||||
|
82060d060106820700040104810d040104810d0482040d040104810d0481040d810d0482
|
||||||
|
040d0482040d040404810d040504010d0304810d040104810d040204810d040204010d01
|
||||||
|
04810d0482040d040104810d0482040d0481040d810d046204810d040404810d04010481
|
||||||
|
0d0482040d040104810d04310482060d060306810006040681070082000d060106810700
|
||||||
|
|
||||||
|
82060d060106820700040104810d040404810d040104810d0482040d040104810d040104
|
||||||
|
020d0204810d040504810d040404030d0304810d040204810d040104810d0481040d030d
|
||||||
|
0104810d040104810d046204810d040404850d040d040d0482040d040104810d04310482
|
||||||
|
060d060a0681070082000d060106810700
|
||||||
|
82060d060106820700040104810d040404810d040104810d0482040d040104810d040404
|
||||||
|
810d0482040d040104810d040104810d040304810d040104810d040204810d040204810d
|
||||||
|
040104810d0482040d040404810d040104810d046204810d040104810d0486040d040d04
|
||||||
|
0d0482040d040104810d04310482060d060a0681070082000d060106810700
|
||||||
|
82060d060106820700040204030d0204020d0104020d81040d010d81040d020d0304020d
|
||||||
|
0204030d0204050d81040d030d81040d010d81040d010d0104030d0204040d6304020d03
|
||||||
|
04830d040d040204020d330482060d060a0681070082000d060106810700
|
||||||
|
82060d060106820700047f04760482060d060a0681070082000d060106810700
|
||||||
|
82060d060106820700047f0476048106070c070100810d060106810700
|
||||||
|
82060d060106820700047f0476041000810d060106810700
|
||||||
|
82060d0601068107067f0677061000810d060106810700
|
||||||
|
82060d0601067f0d7f0d0b0d0206810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
82060d067f067f061006810700
|
||||||
|
8106077f077f0712070000
|
||||||
|
7f007f001500
|
||||||
|
|
||||||
|
%
|
||||||
|
% Compression made this file 6.27% of the uncompressed size.
|
||||||
|
%
|
||||||
|
|
||||||
|
|
||||||
|
showpage
|
||||||
|
|
||||||
|
% stop using temporary dictionary
|
||||||
|
end
|
||||||
|
|
||||||
|
% restore original state
|
||||||
|
origstate restore
|
||||||
|
|
||||||
|
%%Trailer
|
BIN
docs/latex/proplist/prop1.gif
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
docs/latex/proplist/prop2.bmp
Normal file
After Width: | Height: | Size: 42 KiB |
664
docs/latex/proplist/prop2.eps
Normal file
@@ -0,0 +1,664 @@
|
|||||||
|
%!PS-Adobe-2.0 EPSF-2.0
|
||||||
|
%%Title: prop2.eps
|
||||||
|
%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley
|
||||||
|
%%BoundingBox: 167 221 466 500
|
||||||
|
%%Pages: 1
|
||||||
|
%%DocumentFonts:
|
||||||
|
%%EndComments
|
||||||
|
%%EndProlog
|
||||||
|
|
||||||
|
%%Page: 1 1
|
||||||
|
|
||||||
|
% remember original state
|
||||||
|
/origstate save def
|
||||||
|
|
||||||
|
% build a temporary dictionary
|
||||||
|
20 dict begin
|
||||||
|
|
||||||
|
% lower left corner
|
||||||
|
167 221 translate
|
||||||
|
|
||||||
|
% size of image (on paper, in 1/72inch coords)
|
||||||
|
299 279 scale
|
||||||
|
|
||||||
|
% define 'colorimage' if it isn't defined
|
||||||
|
% ('colortogray' and 'mergeprocs' come from xwd2ps
|
||||||
|
% via xgrab)
|
||||||
|
/colorimage where % do we know about 'colorimage'?
|
||||||
|
{ pop } % yes: pop off the 'dict' returned
|
||||||
|
{ % no: define one
|
||||||
|
/colortogray { % define an RGB->I function
|
||||||
|
/rgbdata exch store % call input 'rgbdata'
|
||||||
|
rgbdata length 3 idiv
|
||||||
|
/npixls exch store
|
||||||
|
/rgbindx 0 store
|
||||||
|
/grays npixls string store % str to hold the result
|
||||||
|
0 1 npixls 1 sub {
|
||||||
|
grays exch
|
||||||
|
rgbdata rgbindx get 20 mul % Red
|
||||||
|
rgbdata rgbindx 1 add get 32 mul % Green
|
||||||
|
rgbdata rgbindx 2 add get 12 mul % Blue
|
||||||
|
add add 64 idiv % I = .5G + .31R + .18B
|
||||||
|
put
|
||||||
|
/rgbindx rgbindx 3 add store
|
||||||
|
} for
|
||||||
|
grays
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
% Utility procedure for colorimage operator.
|
||||||
|
% This procedure takes two procedures off the
|
||||||
|
% stack and merges them into a single procedure.
|
||||||
|
|
||||||
|
/mergeprocs { % def
|
||||||
|
dup length
|
||||||
|
3 -1 roll
|
||||||
|
dup
|
||||||
|
length
|
||||||
|
dup
|
||||||
|
5 1 roll
|
||||||
|
3 -1 roll
|
||||||
|
add
|
||||||
|
array cvx
|
||||||
|
dup
|
||||||
|
3 -1 roll
|
||||||
|
0 exch
|
||||||
|
putinterval
|
||||||
|
dup
|
||||||
|
4 2 roll
|
||||||
|
putinterval
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/colorimage { % def
|
||||||
|
pop pop % remove 'false 3' operands
|
||||||
|
{colortogray} mergeprocs
|
||||||
|
image
|
||||||
|
} bind def
|
||||||
|
} ifelse % end of 'false' case
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% define the colormap
|
||||||
|
/cmap 42 string def
|
||||||
|
|
||||||
|
|
||||||
|
% load up the colormap
|
||||||
|
currentfile cmap readhexstring
|
||||||
|
000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00
|
||||||
|
ffff00 0000ff 00ffff ffffff
|
||||||
|
pop pop % lose return values from readhexstring
|
||||||
|
|
||||||
|
|
||||||
|
% rlecmapimage expects to have 'w h bits matrix' on stack
|
||||||
|
/rlecmapimage {
|
||||||
|
/buffer 1 string def
|
||||||
|
/rgbval 3 string def
|
||||||
|
/block 384 string def
|
||||||
|
|
||||||
|
% proc to read a block from file, and return RGB data
|
||||||
|
{ currentfile buffer readhexstring pop
|
||||||
|
/bcount exch 0 get store
|
||||||
|
bcount 128 ge
|
||||||
|
{ % it's a non-run block
|
||||||
|
0 1 bcount 128 sub
|
||||||
|
{ currentfile buffer readhexstring pop pop
|
||||||
|
|
||||||
|
% look up value in color map
|
||||||
|
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
|
||||||
|
|
||||||
|
% and put it in position i*3 in block
|
||||||
|
block exch 3 mul rgbval putinterval
|
||||||
|
} for
|
||||||
|
block 0 bcount 127 sub 3 mul getinterval
|
||||||
|
}
|
||||||
|
|
||||||
|
{ % else it's a run block
|
||||||
|
currentfile buffer readhexstring pop pop
|
||||||
|
|
||||||
|
% look up value in colormap
|
||||||
|
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
|
||||||
|
|
||||||
|
0 1 bcount { block exch 3 mul rgbval putinterval } for
|
||||||
|
|
||||||
|
block 0 bcount 1 add 3 mul getinterval
|
||||||
|
} ifelse
|
||||||
|
} % end of proc
|
||||||
|
false 3 colorimage
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
|
||||||
|
299 279 8 % dimensions of data
|
||||||
|
[299 0 0 -279 0 279] % mapping matrix
|
||||||
|
rlecmapimage
|
||||||
|
|
||||||
|
7f0003007f072607
|
||||||
|
07077f067f0618068100070707
|
||||||
|
070781060d7f0d7f0d150d820700070707
|
||||||
|
070782060d067f067f061406820700070707
|
||||||
|
070782060d067f067f061406820700070707
|
||||||
|
070782060d068106077f077f0710070106820700070707
|
||||||
|
070782060d068106078207060d820d060783070d0702010203098102077f077e07010682
|
||||||
|
0700070707
|
||||||
|
070782060d068106078707060b060001020781070283020702098109028102077f074a07
|
||||||
|
0e0d81000d0d0d81000781070d0d0d81000781070683060700070707
|
||||||
|
070782060d0681060782070806810600820002078507020902070201028109077f074a07
|
||||||
|
810d060b068307000d060b068207000782070d060b068207000781070683060700070707
|
||||||
|
|
||||||
|
070782060d06810607810706850608000403078207020984090207020981090701070506
|
||||||
|
2d070306020701061a0705066a07810d060b068307000d06810600070001068207000782
|
||||||
|
070d060b068207000781070683060700070707
|
||||||
|
070782060d068106078707060b0604000a07890702090207020702090701070106020701
|
||||||
|
061d0701060b07010601070106010701061207010607070106100701065907810d060b06
|
||||||
|
8307000d06810600070001068207000782070d0601060100030601000106820700078107
|
||||||
|
0683060700070707
|
||||||
|
070782060d0681060701070106020001070102860702090207020701070106020701061d
|
||||||
|
0701060b070106050701061207010607070106100701065907810d060b068307000d0682
|
||||||
|
0600060506810006830607000782070d0602060100010601000206820700078107068306
|
||||||
|
0700070707
|
||||||
|
070782060d0681060785070d0607060d010d840702000209010982020007010701060207
|
||||||
|
010681070601060107030601070406020703060107020681070601068107068206070681
|
||||||
|
060703070106050704060207030602070306010702060607010604070306020702060107
|
||||||
|
02065807810d060b068307000d06820600060506810006830607000782070d0603060300
|
||||||
|
03068207000781070683060700070707
|
||||||
|
070782060d06810607070701000602020705060107010601070106010701068107068106
|
||||||
|
078107068206070681060781070682060706810607810706810607810706820607068106
|
||||||
|
070407030602070206810706820607068106078107068206070681060781070682060706
|
||||||
|
81060706070106030701060107010681070682060706820607068106075807810d060b06
|
||||||
|
8307000d06820600060506810006830607000782070d0604060100040682070007810706
|
||||||
|
83060700070707
|
||||||
|
070782060d06810607810705050501000603020701060507010601070106010701068107
|
||||||
|
068106078107068206070604068107068106078107068106078107068206070681060707
|
||||||
|
070106010701060107010681070604068107060406810706810607060701060307050601
|
||||||
|
070106020701065907810d060b068307000d06820600060506810006830607000782070d
|
||||||
|
060306030003068207000781070683060700070707
|
||||||
|
070782060d0681060781070c010c8205080c830c05030a020a81030a810a070107010605
|
||||||
|
070106010701060107010681070681060781070682060706810607030701060107010601
|
||||||
|
070106810706810607070701060107010601070106810706810607030701060407010607
|
||||||
|
0701060307010606070106010701065907810d060b068307000d06820600060506810006
|
||||||
|
830607000782070d06020601000106010002068207000781070683060700070707
|
||||||
|
070782060d068106078c070c05070507050c05030a030a840a03000a0701070106050701
|
||||||
|
060107010601070106810706810607810706820607068106078107068206070681060781
|
||||||
|
070681060701070206050701060107010601070106010701068107068106078107068206
|
||||||
|
070681060781070682060706810607060701060307010601070106810706820607068206
|
||||||
|
07068106075807810d060106050003068307000d06820600060506810006830607000782
|
||||||
|
070d06010601000306010001068207000781070683060700070707
|
||||||
|
070782060d0681060782070c08020886070c05030a030a010a82030a0701070106050701
|
||||||
|
060207030601070406020703060107010602070106010701060707030602070106010701
|
||||||
|
06010703060207030602070106060701060407030602070206020701065807810d060106
|
||||||
|
050003068307000d06810600070001068207000782070d060b0682070007810706830607
|
||||||
|
00070707
|
||||||
|
070782060d0681060782070c080208010c8205030a810a0384030a030a07140701061407
|
||||||
|
01067f071c07810d060b068307000d060b068207000782070d060b068207000781070683
|
||||||
|
060700070707
|
||||||
|
070782060d0681060782070c080308850c05030a030a010a82000a071407010612070206
|
||||||
|
7f071d07810d070c0782000d070c0781000782070d070c07810007810706830607000707
|
||||||
|
07
|
||||||
|
070782060d0681060783070c05080208850c05030a030a810a0382030a077f074a071f00
|
||||||
|
01070f0001070106820700070707
|
||||||
|
070782060d0681060781070c050c8205030a050a7f077f070106820700070707
|
||||||
|
070782060d068106077f077f0710070106820700070707
|
||||||
|
070782060d067f067f061406820700070707
|
||||||
|
070782060d067f067f061406820700070707
|
||||||
|
070782060d0637067f073d07810d061c06820700070707
|
||||||
|
070782060d06030616000306160001068107007f003a0082060d06810600150004068207
|
||||||
|
00070707
|
||||||
|
070782060d06020681000d140d820700068206000d140d8507000607000d7f0d390d8406
|
||||||
|
0d06000d140d820700060206820700070707
|
||||||
|
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
|
||||||
|
390d84060d06000d130d01078100060206820700070707
|
||||||
|
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
|
||||||
|
390d84060d06000d810d06110601078100060206820700070707
|
||||||
|
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
|
||||||
|
390d84060d06000d810d06110601078100060206820700070707
|
||||||
|
070782060d06020682000d0603068100060606810006030601078100068306000d061206
|
||||||
|
010784000607000d010d0100020d0200020d0200020d02007f0d230d84060d06000d810d
|
||||||
|
06110601078100060206820700070707
|
||||||
|
070782060d06020682000d060306020003060200040601078100068306000d060b068100
|
||||||
|
060406010784000607000d810d000100010d0100810d0082000d0082000d0082000d0082
|
||||||
|
000d0081000d7f0d210d84060d06000d810d06110601078100060206820700070707
|
||||||
|
070782060d06020682000d060406020001060200050601078100068306000d060a060200
|
||||||
|
0406010785000607000d000200010d0100810d0082000d0082000d0082000d0082000d00
|
||||||
|
81000d7f0d210d84060d06000d810d06110601078100060206820700070707
|
||||||
|
070782060d06020682000d0605060500060601078100068306000d060906030004060107
|
||||||
|
87000607000d000d0081000d810d0082000d0082000d0082000d0082000d0082000d0081
|
||||||
|
000d7f0d210d84060d06000d810d06110601078100060206820700070707
|
||||||
|
070782060d06020682000d0606060300070601078100068306000d060806030005060107
|
||||||
|
84000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d0081000d
|
||||||
|
7f0d210d84060d06000d810d06110601078100060206820700070707
|
||||||
|
070782060d06020682000d0606060300070601078100068306000d060306010001060300
|
||||||
|
0606010784000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d
|
||||||
|
0081000d7f0d210d84060d06000d810d06110601078100060206820700070707
|
||||||
|
070782060d06020682000d0605060500060601078100068306000d060306060007060107
|
||||||
|
84000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d0081000d
|
||||||
|
7f0d210d84060d06000d810d06110601078100060206820700070707
|
||||||
|
070782060d06020682000d060406020001060200050601078100068306000d0604060400
|
||||||
|
0806010784000607000d010d0100020d0200020d0200020d02007f0d230d84060d06000d
|
||||||
|
810d060306010781060782070607810706040601078100060206820700070707
|
||||||
|
070782060d06020682000d060306020003060200040601078100068306000d0605060200
|
||||||
|
0906010784000607000d7f0d390d84060d06000d810d0603060107810607820706078107
|
||||||
|
06040601078100060206820700070707
|
||||||
|
070782060d06020682000d060306010005060100040601078100068306000d0606068100
|
||||||
|
060906010784000607000d7f0d390d84060d06000d810d06110601078100060206820700
|
||||||
|
070707
|
||||||
|
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
|
||||||
|
390d84060d06000d810d06110601078100060206820700070707
|
||||||
|
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
|
||||||
|
390d84060d06000d810d06110601078100060206820700070707
|
||||||
|
070782060d06020682000d0714078100068306000d07140784000607000d7f0d390d8506
|
||||||
|
0d06000d0714078100060206820700070707
|
||||||
|
070782060d06020682000d0714078100068306000d07140784000607000d7f0d390d8406
|
||||||
|
0d06000715078100060206820700070707
|
||||||
|
070782060d06030616000306160001068207000d7f0d390d82060d068106001500040682
|
||||||
|
0700070707
|
||||||
|
070782060d0637068107067f063b06810d061c06820700070707
|
||||||
|
070782060d0637067f0d3e0d1d06820700070707
|
||||||
|
070782060d0601067f077f070e07810d060106820700070707
|
||||||
|
070782060d0601068107007f007f000b0082060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d040d0100120d01007f0d150d0200550d82060d0601068207
|
||||||
|
00070707
|
||||||
|
070782060d0601068207000d030d81000d140d81000d7f0d130d81000d010d81000d530d
|
||||||
|
82060d060106820700070707
|
||||||
|
070782060d0601068207000d020d0300010d0100810d0081000d010d0200030d0100820d
|
||||||
|
000d7f0d130d81000d010d81000d530d82060d060106820700070707
|
||||||
|
070782060d0601068207000d030d81000d030d0100030d81000d010d81000d820d000d81
|
||||||
|
0d0081000d7f0d130d81000d010d81000d530d82060d060106820700070707
|
||||||
|
070782060d0601068207000d030d81000d030d81000d030d0400010d81000d010d81000d
|
||||||
|
7f0d130d81000d010d81000d530d82060d060106820700070707
|
||||||
|
070782060d0601068207000d030d81000d030d81000d030d81000d040d81000d010d8100
|
||||||
|
0d7f0d130d81000d010d81000d530d82060d060106820700070707
|
||||||
|
070782060d0601068207000d020d0300010d0300030d0300020d04007f0d140d0200550d
|
||||||
|
82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d1c0d0100120d01000e0d81000d6b0d0400090d0100480d82
|
||||||
|
060d060106820700070707
|
||||||
|
070782060d0601068207000d010d81000d190d81000d120d81000d7c0d81000d820d000d
|
||||||
|
090d81000d470d82060d060106820700070707
|
||||||
|
070782060d0601068207000d810d000300030d0200010d0100010d0100020d0100810d00
|
||||||
|
84000d000d0081000d090d0300010d82000d0081000d020d0200020d0200040d0300020d
|
||||||
|
02005e0d83000d000d020d0200040d81000d030d0300020d0200390d82060d0601068207
|
||||||
|
00070707
|
||||||
|
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
|
||||||
|
820d000d810d0081000d810d0081000d820d000d070d81000d010d81000d810d0081000d
|
||||||
|
820d000d820d000d010d81000d020d81000d020d81000d010d81000d820d000d010d8100
|
||||||
|
0d5c0d0200020d81000d010d81000d020d81000d020d81000d040d81000d010d81000d37
|
||||||
|
0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
|
||||||
|
820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d820d00
|
||||||
|
0d010d81000d020d81000d020d81000d040d04005d0d83000d000d020d0300030d81000d
|
||||||
|
030d0200020d0400380d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d81000d010d81000d820d000d010d81000d820d000d81
|
||||||
|
0d0081000d820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81
|
||||||
|
000d820d000d010d81000d020d81000d020d81000d040d81000d600d81000d030d81000d
|
||||||
|
010d81000d020d81000d060d81000d820d000d3b0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d020d0200030d0200030d0100810d0081000d810d00020081
|
||||||
|
0d000100810d000100080d0300810d000100810d000100010d0200020d0400020d030002
|
||||||
|
0d03005c0d0200030d0500810d000300010d0300030d0300380d82060d06010682070007
|
||||||
|
0707
|
||||||
|
070782060d0601068207000d1a0d81000d7f0d6d0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d170d02007f0d6f0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d060106820700047f047f040a0482060d060106820700070707
|
||||||
|
070782060d060106820700047f047f040a0482060d060106820700070707
|
||||||
|
070782060d060106820700047f047f040a0482060d060106820700070707
|
||||||
|
070782060d060106820700047f047f040a0482060d060106820700070707
|
||||||
|
070782060d060106820700040304810d047f043204010d4f0482060d0601068207000707
|
||||||
|
07
|
||||||
|
070782060d060106820700047f043904810d044e0482060d060106820700070707
|
||||||
|
070782060d060106820700040104020d0404020d0104010d81040d810d047f042404810d
|
||||||
|
044e0482060d060106820700070707
|
||||||
|
070782060d060106820700040304810d040204810d040104810d0481040d810d0482040d
|
||||||
|
047f041a04040d0304810d044e0482060d060106820700070707
|
||||||
|
070782060d060106820700040304810d040304030d0104810d040104810d047f04230481
|
||||||
|
0d044e0482060d060106820700070707
|
||||||
|
070782060d060106820700040304810d040204810d040104810d0482040d040104810d04
|
||||||
|
7f042304810d044e0482060d060106820700070707
|
||||||
|
070782060d060106820700040104040d0104080d81040d010d7f042104040d4d0482060d
|
||||||
|
060106820700070707
|
||||||
|
070782060d060106820700047f047f040a0482060d060106820700070707
|
||||||
|
070782060d060106820700047f047f040a0482060d060106820700070707
|
||||||
|
070782060d060106820700047f047f040a0482060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d810d0081000d060d81000d030d0100040d01007f0d170d02
|
||||||
|
00030d03004d0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d81000d0d0d81000d040d81000d7f0d150d81000d010d
|
||||||
|
81000d010d81000d4f0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d82000d0081000d010d0200050d81000d040d81000d7f
|
||||||
|
0d180d81000d020d81000d4f0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d0100010d81000d020d81000d040d81000d040d81000d
|
||||||
|
7f0d170d81000d030d02004e0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d8100
|
||||||
|
0d7f0d160d81000d070d81000d4c0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d8100
|
||||||
|
0d7f0d150d81000d040d81000d010d81000d4c0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d810d000300020d0400010d0400010d04007f0d140d040002
|
||||||
|
0d02004e0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d030d81000d0a0d0100050d81000d7f0d6f0d82060d060106
|
||||||
|
820700070707
|
||||||
|
070782060d0601068207000d110d81000d7f0d760d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d0300010d0100010d0100030d81000d020d0200040d02
|
||||||
|
00010d0100810d0081000d7f0d070d0200010d0100810d0081000d020d0200470d82060d
|
||||||
|
060106820700070707
|
||||||
|
070782060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d8100
|
||||||
|
0d020d81000d010d81000d810d0081000d820d000d7f0d050d81000d010d81000d810d00
|
||||||
|
81000d820d000d820d000d010d81000d450d82060d060106820700070707
|
||||||
|
070782060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d8100
|
||||||
|
0d030d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81000d
|
||||||
|
810d000300460d82060d060106820700070707
|
||||||
|
070782060d0601068207000d040d81000d010d81000d810d0081000d020d81000d040d81
|
||||||
|
000d020d81000d010d81000d820d000d010d81000d7f0d050d81000d010d81000d820d00
|
||||||
|
0d010d81000d820d000d490d82060d060106820700070707
|
||||||
|
070782060d0601068207000d040d81000d020d0100810d0082000d000300010d0400010d
|
||||||
|
0800810d0001007f0d060d0200010d0200810d000100010d0300460d82060d0601068207
|
||||||
|
00070707
|
||||||
|
070782060d0601068207000d040d81000d7f0d7f0d030d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d02007f0d7f0d050d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d810d0081000d060d81000d7f0d7d0d82060d060106820700
|
||||||
|
070707
|
||||||
|
070782060d0601068207000d010d81000d0b0d81000d7f0d780d82060d06010682070007
|
||||||
|
0707
|
||||||
|
070782060d0601068207000d010d82000d0081000d010d0200020d0400010d0200820d00
|
||||||
|
0d020d0200010d0100810d0081000d7f0d050d0100810d0081000d020d0200010d010081
|
||||||
|
0d0081000d020d0200400d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d0100010d81000d020d81000d020d81000d040d85000d
|
||||||
|
000d000d820d000d010d81000d810d0081000d820d000d7f0d050d0100010d81000d820d
|
||||||
|
000d010d81000d810d0081000d820d000d820d000d010d81000d3e0d82060d0601068207
|
||||||
|
00070707
|
||||||
|
070782060d0601068207000d010d81000d010d81000d020d81000d020d81000d040d8500
|
||||||
|
0d000d000d010d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d01
|
||||||
|
0d81000d820d000d010d81000d810d0003003f0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d81000d010d81000d020d81000d020d81000d010d8100
|
||||||
|
0d860d000d000d000d820d000d010d81000d820d000d010d81000d7f0d050d81000d010d
|
||||||
|
81000d820d000d010d81000d820d000d010d81000d820d000d420d82060d060106820700
|
||||||
|
070707
|
||||||
|
070782060d0601068207000d810d000300020d0400020d0200010d0600810d000400810d
|
||||||
|
0002007f0d060d0200810d000100010d0200010d0200810d000100010d03003f0d82060d
|
||||||
|
060106820700070707
|
||||||
|
070782060d0601068207000d240d81000d7f0d630d82060d060106820700070707
|
||||||
|
070782060d0601068207000d230d02007f0d630d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d340d81000d130d01007f0d3d0d82060d0601068207000707
|
||||||
|
07
|
||||||
|
070782060d0601068207000d1d0d81000d2b0d81000d620d81000d570d82060d06010682
|
||||||
|
0700070707
|
||||||
|
070782060d0601068207000d020d0300020d0200010d0100810d0081000d020d0300810d
|
||||||
|
000300020d0100810d0081000d010d0200020d0200020d0100810d0081000d020d020003
|
||||||
|
0d0100820d000d610d0400010d0200810d000100010d0200470d82060d06010682070007
|
||||||
|
0707
|
||||||
|
070782060d0601068207000d010d81000d010d81000d820d000d010d81000d810d008100
|
||||||
|
0d820d000d820d000d040d81000d050d0100030d81000d010d81000d020d81000d020d01
|
||||||
|
00010d81000d820d000d010d81000d820d000d810d0081000d620d81000d040d81000d01
|
||||||
|
0d81000d820d000d010d81000d450d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
|
||||||
|
010d0200020d81000d050d81000d040d0300030d81000d020d81000d010d81000d810d00
|
||||||
|
0300010d81000d010d81000d620d81000d040d85000d000d000d820d000d010d81000d45
|
||||||
|
0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
|
||||||
|
040d81000d820d000d010d81000d010d81000d030d81000d010d81000d020d81000d020d
|
||||||
|
81000d010d81000d820d000d040d81000d010d81000d620d81000d010d81000d860d000d
|
||||||
|
000d000d820d000d010d81000d450d82060d060106820700070707
|
||||||
|
070782060d0601068207000d020d0300020d0200010d0200810d000100810d000200030d
|
||||||
|
0200020d0300020d0500810d000300810d000100810d000100010d0300020d0400630d02
|
||||||
|
00030d83000d000d020d0200470d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
|
||||||
|
7f077f0726078100070107
|
||||||
|
03077f0d7f0d210d820700070107
|
||||||
|
0307820d06077f077f071c07840d060700070107
|
||||||
|
0307830d0607047f047f041c0483060700070107
|
||||||
|
0307830d0607047f047f041c0483060700070107
|
||||||
|
0307830d0607047f047f040a040e0d8100048404060700070107
|
||||||
|
0307830d0607047f047f040a04810d060b06820700048404060700070107
|
||||||
|
0307830d06070481040d040d3a04010d7f044604810d060b068207000484040607000701
|
||||||
|
07
|
||||||
|
0307830d06070481040d810d040104010d1d04010d1904010d7f044604810d0601060107
|
||||||
|
030601070106820700048404060700070107
|
||||||
|
0307830d06070481040d810d040104010d1d04010d1904010d7f044604810d0602060107
|
||||||
|
01060107010d83060700048404060700070107
|
||||||
|
0307830d06070481040d810d040104010d81040d010d0104030d0104040d0204030d0104
|
||||||
|
020d81040d010d81040d820d040d810d040304010d0104010d0104030d0104010d81040d
|
||||||
|
810d0481040d810d0481040d020d0604030d0104020d81040d010d0104030d0104020d7f
|
||||||
|
041a04810d0603060307010d0106820700048404060700070107
|
||||||
|
0307830d06070481040d040d0104010d0104010d0104010d81040d810d0481040d820d04
|
||||||
|
0d810d0481040d820d040d810d0481040d810d0481040d820d040d810d040304010d0104
|
||||||
|
010d0404010d81040d820d040d810d0481040d820d040d810d0481040d810d040304010d
|
||||||
|
0104010d81040d810d0481040d810d0481040d810d0481040d820d040d810d047f041a04
|
||||||
|
810d0604060107010d0206820700048404060700070107
|
||||||
|
0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
|
||||||
|
040d040d81040d810d0481040d810d0481040d820d040d810d040404030d0204040d8104
|
||||||
|
0d820d040d810d0481040d820d040d040d0404050d81040d810d0481040d810d0481040d
|
||||||
|
810d0481040d820d040d810d047f041a04810d0603060307030682070004840406070007
|
||||||
|
0107
|
||||||
|
0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
|
||||||
|
040d810d040304010d0104010d0104010d81040d810d040404030d0104010d0104010d81
|
||||||
|
040d820d040d810d0481040d820d040d810d040704010d0404010d0104010d0104010d01
|
||||||
|
04010d81040d810d047f041a04810d0602060107010d0107020682070004840406070007
|
||||||
|
0107
|
||||||
|
0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
|
||||||
|
040d810d0481040d820d040d810d0481040d810d040104020d0704010d0204010d010401
|
||||||
|
0d81040d820d040d820d040d010d81040d810d0481040d810d040304010d0104010d8104
|
||||||
|
0d810d0481040d810d0481040d810d0481040d820d040d810d047f041a04810d06010601
|
||||||
|
07010d010601070106820700048404060700070107
|
||||||
|
0307830d06070481040d810d040404010d0204030d0104040d0204030d0104010d020401
|
||||||
|
0d0104010d0804010d0304040d81040d810d0481040d030d0104030d0604030d0104010d
|
||||||
|
0104010d0204030d0104010d7f041b04810d060206010d0306010d830607000484040607
|
||||||
|
00070107
|
||||||
|
0307830d0607041304010d1404010d7f045d04810d060b06820700048404060700070107
|
||||||
|
|
||||||
|
0307830d0607041304010d1204020d7f045e04810d070c078100048404060700070107
|
||||||
|
0307830d0607047f047f040a040f00010483060700070107
|
||||||
|
0307830d0607047f047f041c0483060700070107
|
||||||
|
0307830d0607047f047f041c0483060700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d06170602037f067f060406820700070107
|
||||||
|
0307810d06160681030a830a0600067f067f060206820700070107
|
||||||
|
0307810d06150681030a020a83060007067f067f0683060700070107
|
||||||
|
0307810d06150681030a030a8100078107067f067f06820700070107
|
||||||
|
0307810d06140681030a040a820600078107067f067e06820700070107
|
||||||
|
0307810d06140681030a050a8100078107067f067e06820700070107
|
||||||
|
0307810d06130681030a060a820600078107067f067d06820700070107
|
||||||
|
0307810d06130681030a070a8100078107067f067d06820700070107
|
||||||
|
0307810d06120681030a080a820600078107067f067c06820700070107
|
||||||
|
0307810d06120681030a010a810600010081060a010a8100078107067f067c0682070007
|
||||||
|
0107
|
||||||
|
0307810d06110681030a020a0400020a820600078107067f067b06820700070107
|
||||||
|
0307810d06110681030a020a0400030a8100078107061606810006030681000605068100
|
||||||
|
0627068100061b0681000620068100062c06040001060200140681000602060400010602
|
||||||
|
0001068100060a06820700070107
|
||||||
|
0307810d06100681030a030a0400030a8206000781070615068100060306810006050681
|
||||||
|
000621068100060306810006230681000618068100060906810006200681000603068100
|
||||||
|
060106810006120681000602068100060306810006010683000600060a06820700070107
|
||||||
|
|
||||||
|
0307810d06100681030a030a0400040a8100078107061606810006010681000606068100
|
||||||
|
062106810006030681000623068100061806810006090681000620068100060306810006
|
||||||
|
0106810006120681000602068100060306810006010683000600060a06820700070107
|
||||||
|
0307810d060f0681030a040a0400040a8206000781070615068100060106810006010602
|
||||||
|
000106830006000601068100068106000100040602008106008100068206000601068100
|
||||||
|
068106008100068106008100060206030002060200050602000106820006008100060306
|
||||||
|
840006000600810006810600810006810600010002060300010602000106010003060300
|
||||||
|
020602000106010082060006820600068206000681060001000206020001068200060081
|
||||||
|
000606060300010681000601068100060306020001068200060081000601060300030603
|
||||||
|
000106810006010683000600060a06820700070107
|
||||||
|
0307810d060f0681030a040a810300010081030a040a8100078107061506810006010681
|
||||||
|
000604068500060006000601068300060006010681000602068100068206000684060006
|
||||||
|
000601068300060006840600060006030681000601068300060006010681000606068200
|
||||||
|
060081000682060006020682000600810006840600060006820600060106830006000601
|
||||||
|
068300060006010683000600060306810006010683000600060106830006000682060006
|
||||||
|
820600068406000600060106830006000601068200060081000682060006050681000601
|
||||||
|
068300060006010681000606068200060081000684060006000601068100060206810006
|
||||||
|
01068300060006010683000600060a06820700070107
|
||||||
|
0307810d060e0681030a050a810600010081060a040a8206000781070615068300060006
|
||||||
|
020603008406000600060106820006000300030681000682060006840600060006010681
|
||||||
|
000682060006010681000603068100060106820006000300040603008206000601068100
|
||||||
|
060206830006000601068300060006810600030082060006010682000600030082060006
|
||||||
|
030681000601068200060003008206000689060006000600060006000300810600030082
|
||||||
|
060006010681000602060100040683000600060106810006030603008206000601068300
|
||||||
|
060006010681000606068300060006010683000600060a06820700070107
|
||||||
|
0307810d060e0681030a060a0200070a8100078107061506830006000601068100060106
|
||||||
|
850006000600060106830006000606068100068206000684060006000601068100060106
|
||||||
|
810006820600060306810006010683000600060606810006010683000600060106810006
|
||||||
|
020683000600060106830006000682060006030681000601068300060006030681000603
|
||||||
|
068100060106830006000603068100068a06000600060006000600060306810006030681
|
||||||
|
000601068100060906830006000601068100060206810006010683000600060106830006
|
||||||
|
0006010681000606068300060006010683000600060a06820700070107
|
||||||
|
0307810d060d0681030a070a830300030a060a8206000781070615068100060206810006
|
||||||
|
010685000600060006810600830006000601068100060206810006820600068406000600
|
||||||
|
068106008300060006840600060006030681000601068300060006010681000602068100
|
||||||
|
060106830006000601068100060206830006000601068300060006820600060106830006
|
||||||
|
000601068300060006010683000600060306810006010683000600060106830006000601
|
||||||
|
068100060106810006820600060106830006000601068300060006010681000605068100
|
||||||
|
060106830006000601068100060206810006010683000600060106830006000601068100
|
||||||
|
0602068100060106830006000601068100060c06820700070107
|
||||||
|
0307810d060d0681030a070a830600060a070a8100078107061506810006030603008206
|
||||||
|
000681060083000600068106000100040681000682060006820600068106008300060006
|
||||||
|
810600810006010681000602060300020602000506030082060006010681000602068300
|
||||||
|
060006010681000682060006810600010002060300010602000106810006030603000206
|
||||||
|
020002068100068206000601068100060106020002060200010681000601068100060606
|
||||||
|
020002060200050603008206000601068100068106000200040602000206020001068100
|
||||||
|
060a06820700070107
|
||||||
|
0307810d060c0681030a090a81000a080a820600078107067c0681000677068207000701
|
||||||
|
07
|
||||||
|
0307810d060c0681030a150a810007810706780603007906820700070107
|
||||||
|
0307810d060b0681030a090a8106008200060a070a820600078107067f06750682070007
|
||||||
|
0107
|
||||||
|
0307810d060b0681030a090a0300090a8100078107067f067506820700070107
|
||||||
|
0307810d060a0681030a0a0a0300090a820600078107067f067406820700070107
|
||||||
|
0307810d060a0681030a0a0a8106008200060a090a8100078107067f0674068207000701
|
||||||
|
07
|
||||||
|
0307810d060a0681030a190a81000701077f067406820700070107
|
||||||
|
0307810d060a0681030a180a8206000701077f067406820700070107
|
||||||
|
0307810d060b0681030a160a8206000702077f067406820700070107
|
||||||
|
0307810d060c06810300160004077f067406820700070107
|
||||||
|
0307810d060e061a077f067506820700070107
|
||||||
|
0307810d060f0618077f067606820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d066b0648006a06820700070107
|
||||||
|
0307810d066a064a006906820700070107
|
||||||
|
0307810d066a060100450d8107008100066806820700070107
|
||||||
|
0307810d066a060100440d010701006906820700070107
|
||||||
|
0307810d066a060100010d18069100060006000600060006000600060006000617060107
|
||||||
|
01006906820700070107
|
||||||
|
0307810d066a060100010d4206010701006906820700070107
|
||||||
|
0307810d066a060100010d18068100060d068100061706010701006906820700070107
|
||||||
|
0307810d066a060100010d1b060300020681000601068100061906010701006906820700
|
||||||
|
070107
|
||||||
|
0307810d066a060100010d18068300060006020681000682060006820600068206000617
|
||||||
|
06010701006906820700070107
|
||||||
|
0307810d066a060100010d1a0681000602068100068406000600061b0601070100690682
|
||||||
|
0700070107
|
||||||
|
0307810d066a060100010d18068300060006020681000681060081000602068100061706
|
||||||
|
010701006906820700070107
|
||||||
|
0307810d066a060100010d1a0681000602068100068106008100061c0601070100690682
|
||||||
|
0700070107
|
||||||
|
0307810d066a060100010d18068300060006020681000684060006000601068100061706
|
||||||
|
010701006906820700070107
|
||||||
|
0307810d066a060100010d1a06810006020681000682060006820600061a060107010069
|
||||||
|
06820700070107
|
||||||
|
0307810d066a060100010d18068300060006020681000682060006010683000600061706
|
||||||
|
010701006906820700070107
|
||||||
|
0307810d066a060100010d1b060300020681000602068100061806010701006906820700
|
||||||
|
070107
|
||||||
|
0307810d066a060100010d18068100060d068100061706010701006906820700070107
|
||||||
|
0307810d066a060100010d4206010701006906820700070107
|
||||||
|
0307810d066a060100010d18069100060006000600060006000600060006000617060107
|
||||||
|
01006906820700070107
|
||||||
|
0307810d066a060100810d07440701006906820700070107
|
||||||
|
0307810d066a060100460701006906820700070107
|
||||||
|
0307810d066a064a006906820700070107
|
||||||
|
0307810d066b0648006a06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
0307810d067f067f061f06820700070107
|
||||||
|
7f077f0726078100070107
|
||||||
|
02077f007f0024000207
|
||||||
|
7f077f072a07
|
||||||
|
7f077f072a07
|
||||||
|
7f077f072a07
|
||||||
|
7f077f072a07
|
||||||
|
7f077f072a07
|
||||||
|
7f077f072a07
|
||||||
|
|
||||||
|
%
|
||||||
|
% Compression made this file 5.68% of the uncompressed size.
|
||||||
|
%
|
||||||
|
|
||||||
|
|
||||||
|
showpage
|
||||||
|
|
||||||
|
% stop using temporary dictionary
|
||||||
|
end
|
||||||
|
|
||||||
|
% restore original state
|
||||||
|
origstate restore
|
||||||
|
|
||||||
|
%%Trailer
|
BIN
docs/latex/proplist/prop2.gif
Normal file
After Width: | Height: | Size: 4.2 KiB |
39
docs/latex/proplist/readme.txt
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
|
||||||
|
Prototype dialog editor and property sheet classes
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
Julian Smart, October 4th 1995
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Here's what I've done so far on a lightweight dialog editor. The 16-bit
|
||||||
|
Windows binaries in the bin directory are dialoged.exe (the dialog
|
||||||
|
editor) and test.exe (a small property sheet demo).
|
||||||
|
|
||||||
|
Main points:
|
||||||
|
|
||||||
|
- You can create a new dialog box and add items to it.
|
||||||
|
- You can move items around, and right-click
|
||||||
|
to edit a few properties (very incomplete).
|
||||||
|
- Can't write out .wxr files yet. Loading code is in
|
||||||
|
wxWindows, but writing code is absent: should be put
|
||||||
|
into wxWindows.
|
||||||
|
- No attempt at resources other than dialogs yet.
|
||||||
|
Should have menu editor too.
|
||||||
|
- Should *somehow* have a protocol to allow
|
||||||
|
existing resources e.g. in wxCLIPS/wxPython
|
||||||
|
to be edited in situ.
|
||||||
|
This should be made simpler by the existance of
|
||||||
|
the plug-in event handler mechanism, which means you
|
||||||
|
can temporarily handle all the events yourself.
|
||||||
|
- See dialoged.cc: the main program is tiny because
|
||||||
|
it's meant to be embeddable.
|
||||||
|
- The wxPropertySheet (set of) classes are very
|
||||||
|
general and should be put into wxWin and documented.
|
||||||
|
|
||||||
|
Comments, chivvying and help all appreciated. Maybe if
|
||||||
|
I documented what I had, it would be easier for others
|
||||||
|
to do some work on it.
|
||||||
|
|
||||||
|
Regards,
|
||||||
|
|
||||||
|
Julian
|
21
docs/latex/proplist/tex2rtf.ini
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
runTwice = yes
|
||||||
|
titleFontSize = 12
|
||||||
|
authorFontSize = 10
|
||||||
|
chapterFontSize = 12
|
||||||
|
sectionFontSize = 12
|
||||||
|
subsectionFontSize = 12
|
||||||
|
headerRule = yes
|
||||||
|
footerRule = yes
|
||||||
|
useHeadingStyles = yes
|
||||||
|
contentsDepth = 2
|
||||||
|
listItemIndent=40
|
||||||
|
generateHPJ = no
|
||||||
|
htmlBrowseButtons = bitmap
|
||||||
|
winHelpVersion = 3
|
||||||
|
winHelpContents = yes
|
||||||
|
winHelpTitle = "Property Classes Manual"
|
||||||
|
truncateFilenames = yes
|
||||||
|
\overview [2] {\rtfonly{See also }\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}}
|
||||||
|
\htmlonly{\image{}{books.gif}}\helpref{#1}{#2}
|
||||||
|
\sethotspotcolour{on}\sethotspotunderline{on}}
|
||||||
|
|
BIN
docs/latex/proplist/up.gif
Normal file
After Width: | Height: | Size: 137 B |
17
docs/latex/proplist/wxprop.hpj
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
[OPTIONS]
|
||||||
|
BMROOT=d:\wx2\wxWind~1\utils\wxprop\docs ; Assume that bitmaps are where the source is
|
||||||
|
TITLE=Property Classes Manual
|
||||||
|
CONTENTS=Contents
|
||||||
|
COMPRESS=HIGH
|
||||||
|
|
||||||
|
[FILES]
|
||||||
|
wxprop.rtf
|
||||||
|
|
||||||
|
[CONFIG]
|
||||||
|
CreateButton("Up", "&Up", "JumpId(`wxprop.hlp', `Contents')")
|
||||||
|
BrowseButtons()
|
||||||
|
|
||||||
|
[MAP]
|
||||||
|
|
||||||
|
[BITMAPS]
|
||||||
|
|
@@ -1,102 +0,0 @@
|
|||||||
wxMotif CHANGES
|
|
||||||
---------------
|
|
||||||
|
|
||||||
21/9/98
|
|
||||||
-------
|
|
||||||
|
|
||||||
Julian:
|
|
||||||
|
|
||||||
- Made makefiles for wxMotif source directory and minimal sample.
|
|
||||||
|
|
||||||
- First go at wxApp, wxWindow, wxDialog, wxPen, wxBrush, wxFont,
|
|
||||||
wxColour, wxButton, wxCheckBox, wxTextCtrl, wxStaticText,
|
|
||||||
wxMenu, wxMenuItem, wxMenuBar
|
|
||||||
|
|
||||||
12/11/98
|
|
||||||
--------
|
|
||||||
|
|
||||||
It's a long time since I updated this file. Previously done:
|
|
||||||
|
|
||||||
- wxFrame, wxDialog done.
|
|
||||||
- wxScrolledWindow done (but backing pixmap not used at present).
|
|
||||||
- wxBitmap done though could be tidied it up at some point.
|
|
||||||
- Most basic controls are there, if not rigorously tested.
|
|
||||||
- Some MDI support (menus appear on child frames at present).
|
|
||||||
- wxNotebook almost done.
|
|
||||||
- wxToolBar done (horizontal only, which would be easy to extend
|
|
||||||
to vertical toolbars).
|
|
||||||
|
|
||||||
More recently:
|
|
||||||
|
|
||||||
- Colour and font changing done (question mark over what happens
|
|
||||||
to scrollbars).
|
|
||||||
- Accelerators done (for menu items and buttons). Also event loop
|
|
||||||
tidied up in wxApp so that events are filtered through ProcessXEvent.
|
|
||||||
- wxWindow::GetUpdateRegion should now work.
|
|
||||||
|
|
||||||
25/11/98
|
|
||||||
--------
|
|
||||||
|
|
||||||
- Reimplemented MDI using wxNotebook instead of the MDI widgets, which
|
|
||||||
were too buggy (probably not design for dynamic addition/removal of
|
|
||||||
child frames).
|
|
||||||
- Some improvements to the wxNotebook implementation.
|
|
||||||
- wxToolBar now uses a bulletin board instead of a form, in an attempt
|
|
||||||
to make it possible to add ordinary wxControls to a toolbar.
|
|
||||||
- Cured problem with not being able to use global memory operators,
|
|
||||||
by defining two more global operators, so that the delete will match
|
|
||||||
the debugging implementation.
|
|
||||||
- Added wxUSE_DEBUG_NEW_ALWAYS so we can distinguish between using
|
|
||||||
global memory operators (usually OK) and #defining new to be
|
|
||||||
WXDEBUG_NEW (sometimes it might not be OK).
|
|
||||||
- Added time.cpp to makefile; set wxUSE_DATETIME to 1.
|
|
||||||
- Added a parent-existance check to popup menu code to make it not crash.
|
|
||||||
- Added some optimization in wxWindow::SetSize to produce less flicker.
|
|
||||||
It remains to be seen whether this produces any resize bugs.
|
|
||||||
|
|
||||||
3/12/98
|
|
||||||
-------
|
|
||||||
|
|
||||||
- Debugged DrawEllipticArc (a ! in the wrong place).
|
|
||||||
- Added SetClippingRegion( const wxRegion& region ).
|
|
||||||
- Added wxPoint, wxSize, wxRect versions of SetSize etc.
|
|
||||||
- Diagnosed but not yet cured a wxTreeCtrl bug (see todo.txt).
|
|
||||||
|
|
||||||
4/12/98
|
|
||||||
-------
|
|
||||||
|
|
||||||
- Got further with wxTreeCtrl, fixing wxWindow::Refresh on the way,
|
|
||||||
and adding Clear(const wxRect&). Mainly the scrolling to sort out now,
|
|
||||||
and inter-line spacing.
|
|
||||||
- Fixed some problems with wxListCtrl espec. trying to call m_mainWin
|
|
||||||
functions when it wasn't initialised. As with the wxTreeCtrl sample,
|
|
||||||
removed usage of wxTextCtrl as a stream (doesn't seem to agree
|
|
||||||
with gcc) and the sample is now partially working. Some work
|
|
||||||
on the scrollbars is required.
|
|
||||||
- wxListCtrl assumed that one of the args to GetClientSize can be NULL:
|
|
||||||
corrected.
|
|
||||||
|
|
||||||
18/12/98
|
|
||||||
--------
|
|
||||||
|
|
||||||
- Removed major bug whereby dialogs were unmanaged automatically
|
|
||||||
when any button was pressed.
|
|
||||||
- Fixed colours of wxWindow scrollbars, made list and text controls
|
|
||||||
have a white background.
|
|
||||||
- Fixed dialog colour setting.
|
|
||||||
- Added settable fonts and colours for wxMenu/wxMenuBar. Now
|
|
||||||
they have sensible colours by default.
|
|
||||||
- Fixed a bug in wxStaticBox.
|
|
||||||
- Controls sample runs, though wxRadioBox doesn't appear and
|
|
||||||
the notebook flickers for a while.
|
|
||||||
- Cured wxTreeCtrl bug: now works pretty well!
|
|
||||||
|
|
||||||
28/12/98
|
|
||||||
--------
|
|
||||||
|
|
||||||
- Cured scrolling problem: scrollbars now show/hide themselves
|
|
||||||
without (permanently) resizing the window.
|
|
||||||
- Removed some commented-out lines in wxScrolledWindow::AdjustScrollbars
|
|
||||||
that disabled scrollbar paging.
|
|
||||||
- Set background colour of drawing area in wxWindow, so e.g. wxListCtrl
|
|
||||||
colours correctly.
|
|
@@ -1,365 +0,0 @@
|
|||||||
|
|
||||||
wxWindows 2.0 for Windows Change Log
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
Alpha 18, December 29th 1998
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
- Win16 support working again (VC++ 1.5)
|
|
||||||
- Win16 now uses generic wxNotebook, wxListCtrl,
|
|
||||||
wxTreeCtrl -- more or less working now, although
|
|
||||||
a little work on wxNotebook is still needed.
|
|
||||||
Under 16-bit Windows, get assertion when you click
|
|
||||||
on a tab.
|
|
||||||
- Wrote 16-bit BC++ makefiles: samples don't yet link.
|
|
||||||
- Added CodeWarrior support to distribution courtesy
|
|
||||||
of Stefan Csomor.
|
|
||||||
|
|
||||||
Alpha 17, November 22nd 1998
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
- More documentation updates, especially for
|
|
||||||
wxLayoutWindow classes and debugging facilities.
|
|
||||||
- Changed wxDebugContext to use wxDebugLog instead
|
|
||||||
of wxTrace.
|
|
||||||
- Now supports VC++ 6.0, and hopefully BC++ 5.0.
|
|
||||||
However, DLL support may be broken for BC++ since
|
|
||||||
VC++ 6 required changing of WXDLLEXPORT keyword
|
|
||||||
position.
|
|
||||||
- Numerous miscellaneous changes.
|
|
||||||
|
|
||||||
Alpha 16, September 8th 1998
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
- Added wxSashWindow, wxSashLayoutWindow classes, and sashtest
|
|
||||||
sample.
|
|
||||||
- Guilhem's socket classes added, plus wxsocket sample.
|
|
||||||
- A few more makefiles added.
|
|
||||||
- GnuWin32/BC++ compatibility mods.
|
|
||||||
- Further doc updates.
|
|
||||||
- wxProp updates for correct working with wxGTK.
|
|
||||||
|
|
||||||
Alpha 15, August 31st 1998
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
- wxBitmap debugged.
|
|
||||||
- wxDC::GetDepth added.
|
|
||||||
- Contribution added whereby wxBitmap will be
|
|
||||||
converted to DC depth if they don't match.
|
|
||||||
- wxConfig API improved, documentation updated.
|
|
||||||
- Printing classes name conventions cleaned up.
|
|
||||||
- wxUpdateUIEvent now derives from wxCommandEvent
|
|
||||||
so event can travel up the window hierachy.
|
|
||||||
|
|
||||||
Alpha 14, July 31st 1998
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
- Toolbar API has been simplified, and now
|
|
||||||
wxFrame::GetClientArea returns the available client
|
|
||||||
area when toolbar, status bar etc. have been accounted for.
|
|
||||||
wxFrame::CreateToolBar added in line with CreateStatusBar.
|
|
||||||
- Documentation updates, incl. for wxToolBar.
|
|
||||||
- New wxAcceleratorTable class plus wxFrame::SetAcceleratorTable.
|
|
||||||
- Various additions from other folk, e.g. streams, wxConfig
|
|
||||||
changes, wxNotebook.
|
|
||||||
- Added wxDocMDIParentFrame, wxDocMDIChildFrame for doc/view.
|
|
||||||
|
|
||||||
Alpha 13, July 8th 1998
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
- Implemented wxPoint as identical to POINT on Windows, and
|
|
||||||
altered wxDC wxPoint functions to use wxPoint directly in
|
|
||||||
Windows functions, for efficiency.
|
|
||||||
- Cured wxASSERT bug in wxStatusBar95.
|
|
||||||
- #ifdefed out some bits in oleutils.cpp for compilers that
|
|
||||||
don't support it.
|
|
||||||
- Added some operators to wxPoint, wxSize.
|
|
||||||
- Added inline wxDC functions using wxPoint, wxSize, wxRect.
|
|
||||||
|
|
||||||
Alpha 12, July 7th 1998
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
- Added wxApp::GetComCtl32Version, and wxTB_FLAT style, so can
|
|
||||||
have flat toolbars on Win98 or Win95 with IE >= 3 installed.
|
|
||||||
|
|
||||||
Alpha 11, July 3rd 1998
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
- Added thread.h, thread.cpp.
|
|
||||||
- Changed Enabled, Checked to IsEnabled, IsChecked in wxMenu,
|
|
||||||
wxMenuBar.
|
|
||||||
- Changed wxMenuItem::SetBackColor to SetBackgroundColour,
|
|
||||||
SetTextColor to SetTextColour, and added or made public several
|
|
||||||
wxMenuItem accessors.
|
|
||||||
- Added two overloads to wxRegion::Contains. Added
|
|
||||||
wxRegion::IsEmpty for a more consistent naming convention.
|
|
||||||
- Added Vadim's wxDataObject and wxDropSource.
|
|
||||||
- ENTER/LEAVE events now work.
|
|
||||||
- Cured wxMemoryDC bug where the DC wasn't being deleted.
|
|
||||||
- Cured wxGauge SetSize major bugginess.
|
|
||||||
- Cured problem where if a GDI object was created on the stack,
|
|
||||||
then went out of scope, then another object was selected into
|
|
||||||
the DC, GDI objects would leak. This is because the assignment
|
|
||||||
to e.g. wxDC::m_pen would delete the GDI object without it first
|
|
||||||
being selected out of the DC. Cured by selecting the old DC object
|
|
||||||
first, then doing the assignment.
|
|
||||||
- Split up wxGaugeMSW, wxGauge95, wxSliderMSW, wxSlider95
|
|
||||||
- Various other bug fixes and additions.
|
|
||||||
|
|
||||||
Alpha 10, May 7th 1998
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
- Added desiredWidth, desiredHeight parameters to wxBitmapHandler
|
|
||||||
and wxIcon functions so that you can specify what size of
|
|
||||||
icon should be loaded. Probably will remain a Windows-specific thing.
|
|
||||||
- wxStatusBar95 now works for MDI frames.
|
|
||||||
- Toolbars in MDI frames now behave normally. They still
|
|
||||||
require application-supplied positioning code though.
|
|
||||||
- Changed installation instructions, makefiles and batch files
|
|
||||||
for compiling with Gnu-Win32/Mingw32/EGCS. Also timercmn.cpp
|
|
||||||
change to support Mingw32/EGCS. Bison now used by default.
|
|
||||||
|
|
||||||
Alpha 9, April 27th 1998
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
- Cured bug in wxStatusBar95 that caused a crash if multiple
|
|
||||||
fields were used.
|
|
||||||
- Added Gnu-Win32 b19/Mingw32 support by changing resource
|
|
||||||
compilation and pragmas.
|
|
||||||
- Cured wxMenu bug introduced in alpha 8 - didn't respond to
|
|
||||||
commands because VZ changed the id setting in wxMenu::MSWCommand.
|
|
||||||
|
|
||||||
Alpha 8, April 17th 1998
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
- Added IsNull to wxGDIObject to check if the ref data is present or not.
|
|
||||||
- Added PNG handler and sample - doesn't work for 16-bit PNGs for
|
|
||||||
some reason :-(
|
|
||||||
- Added wxJoystick class and event handling, and simple demo.
|
|
||||||
- Added simple wxWave class. Needs Stop() function.
|
|
||||||
- Added wxModule (module.h/module.cpp) to allow definition
|
|
||||||
of modules to be initialized and cleaned up on wxWindows
|
|
||||||
startup/exit.
|
|
||||||
- Start of Mingw32 compatibility (see minimal and dialogs samples
|
|
||||||
makefile.m95 files, and install.txt).
|
|
||||||
- Note: Windows printing has stopped working... will investigate.
|
|
||||||
VADIM'S CHANGES:
|
|
||||||
- Updated wxString: bug fixes, added wxArrayString, some
|
|
||||||
compatibility functions.
|
|
||||||
- Updated log.h/cpp, added wxApp::CreateLogTarget.
|
|
||||||
- file.h: new wxTempFile class.
|
|
||||||
- defs.h: added wxSB_SIZE_GRIP for wxStatusBar95
|
|
||||||
- statbr95: wxStatusBar95 control.
|
|
||||||
- registry.h/cpp: wxRegKey class for Win95 registry.
|
|
||||||
- listbox.cpp: corrected some bugs with owner-drawn listboxes.
|
|
||||||
- wxConfig and wxFileConfig classes.
|
|
||||||
|
|
||||||
Alpha 7, March 30th 1998
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
- Added tab classes, tab sample.
|
|
||||||
- Now can return FALSE from OnInit and windows will be
|
|
||||||
cleaned up properly before exit.
|
|
||||||
- Improved border handling so panels don't get borders
|
|
||||||
automatically.
|
|
||||||
- Debugged MDI activation from Window menu.
|
|
||||||
- Changes to memory debug handling, including checking for
|
|
||||||
memory leaks on application exit - but see issues.txt for
|
|
||||||
unresolved issues.
|
|
||||||
- Added wxTaskBarIcon (taskbar.cpp/h, plus samples/taskbar)
|
|
||||||
to allow maintenance of an icon in the Windows 95 taskbar
|
|
||||||
tray area.
|
|
||||||
- Got MFC sample working (MFC and wxWindows in the same
|
|
||||||
application), partly by tweaking ntwxwin.mak settings.
|
|
||||||
- Got DLL compilation working again (VC++).
|
|
||||||
- Changed wxProp/Dialog Editor filenames.
|
|
||||||
|
|
||||||
Alpha 6, March 10th 1998
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
- Found stack error bug - stopped unwanted OnIdle recursion.
|
|
||||||
- Removed bug in wxTreeCtrl::InsertItem I added in alpha 5.
|
|
||||||
- Changed exit behaviour in wxApp/wxFrame/wxDialog. Now will
|
|
||||||
check if the number of top-level windows is zero before
|
|
||||||
exiting. Also, wxApp::GetTopWindow will return either
|
|
||||||
m_topWindow or the first member of wxTopLevelWindows, so you
|
|
||||||
don't have to call wxApp::SetTopWindow.
|
|
||||||
- Added dynarray.h/dynarray.cpp (from Vadim).
|
|
||||||
- Added first cut at OLE drag and drop (from Vadim). dnd sample
|
|
||||||
added. Drop target only at this stage. See src/msw/ole/*.cpp,
|
|
||||||
wx/include/msw/ole/*.h. WIN32 only because of UUID usage.
|
|
||||||
Doesn't work with GnuWin32 - no appropriate headers e.g. for
|
|
||||||
IUnknown.
|
|
||||||
Doesn't work with BC++ either - crashes on program startup.
|
|
||||||
- Added Vadim's owner-draw modifications - will probably remain
|
|
||||||
Windows-only. This enhances wxMenu, wxListBox. See ownerdrw sample.
|
|
||||||
- Added wxLB_OWNERDRAW for owner-draw listboxes.
|
|
||||||
- Vadim's wxCheckListBox derives from wxListBox. See checklst sample.
|
|
||||||
Doesn't entirely work for WIN16.
|
|
||||||
- Vadim has added wxMenuItem as a separate file menuitem.cpp. It
|
|
||||||
can also be used as an argument to wxMenu::Append, not just for
|
|
||||||
internal implementation.
|
|
||||||
- Some #ifdefs done for MINGW32 compilation (just alter OPTIONS
|
|
||||||
in makeg95.env, together with mingw32.bat). However, resource
|
|
||||||
binding is not working yet so most apps with dialogs crash.
|
|
||||||
|
|
||||||
Alpha 5, 14th February 1998
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
- GENERIC AND MSW-SPECIFIC CODE NOW TREATED AS TWO SEPARATE
|
|
||||||
DISTRIBUTIONS. This change log will therefore now refer to
|
|
||||||
the Windows-specific code only. See docs/changes.txt for generic
|
|
||||||
changes.
|
|
||||||
- Removed Windows-specific reference counting system (GDI
|
|
||||||
resources were cleaned up in idle time) - minimal
|
|
||||||
advantages now we have a wxWin reference counting system.
|
|
||||||
- Added missing WXDLLEXPORT keywords so DLL compilation works
|
|
||||||
again.
|
|
||||||
- Removed most warnings for GnuWin32 compilation.
|
|
||||||
- Added wxRegion/wxRegionIterator, but haven't yet used it in
|
|
||||||
e.g. wxDC.
|
|
||||||
|
|
||||||
Alpha 4, 31st January 1998
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
- Changed wxDC functions to take longs instead of floats. GetSize now takes
|
|
||||||
integer pointers, plus a version that returns a wxSize.
|
|
||||||
- const keyword added to various wxDC functions.
|
|
||||||
- Under Windows, wxDC no longer has any knowledge of whether
|
|
||||||
an associated window is scrolled or not. Instead, the device
|
|
||||||
origin is set by wxScrolledWindow in wxScrolledWindow::PrepareDC.
|
|
||||||
- wxScrolledWindow applications can optionally override the virtual OnDraw
|
|
||||||
function instead of using the OnPaint event handler. The wxDC passed to
|
|
||||||
OnDraw will be translated by PrepareDC to reflect scrolling.
|
|
||||||
When drawing outside of OnDraw, must call PrepareDC explicitly.
|
|
||||||
- wxToolBarBase/wxToolBarSimple similarly changed to allow for
|
|
||||||
scrolling toolbars.
|
|
||||||
- Integrated wxPostScriptDC patches for 1.xx by Chris Breeze,
|
|
||||||
to help printing with multiple pages.
|
|
||||||
- IPC classes given base classes (wxConnectionBase etc.) which
|
|
||||||
define the API used by different implementations. DDE
|
|
||||||
implementation updated to use these base classes.
|
|
||||||
- wxHelpInstance now separated into wxHelpControllerBase (base
|
|
||||||
for all implementations), wxWinHelpController (uses standard
|
|
||||||
WinHelp), wxXLPHelPController (talks to wxHelp by DDE or
|
|
||||||
TCP/IP). There will be others eventually, such as
|
|
||||||
wxHTMLHelpController for Microsoft (and Netscape?) HTML Help.
|
|
||||||
- Added Vadim Zeitlin's wxString class plus
|
|
||||||
internationalization code (gettext simulation, wxLocale, etc.).
|
|
||||||
New files from Vadim:
|
|
||||||
include\wx\string.h
|
|
||||||
include\wx\debug.h
|
|
||||||
include\wx\file.h
|
|
||||||
include\wx\log.h
|
|
||||||
include\wx\intl.h
|
|
||||||
src\common\string.cpp
|
|
||||||
src\common\log.cpp
|
|
||||||
src\common\intl.cpp
|
|
||||||
src\common\file.cpp
|
|
||||||
No longer use GNU wxString files.
|
|
||||||
- Split off file-related functions into include\wx\filefn.h and
|
|
||||||
src\common\filefn.cpp.
|
|
||||||
- Borland C++ support (WIN32) for main library and
|
|
||||||
samples, using makefile.b32 files.
|
|
||||||
- Preparation done for allowing BC++ to compile wxWin as a DLL,
|
|
||||||
including changes to defs.h.
|
|
||||||
- wxIntPoint removed, wxPoint is now int, and wxRealPoint
|
|
||||||
introduced.
|
|
||||||
- Added wxShowEvent (generated when window is being shown or
|
|
||||||
hidden).
|
|
||||||
- Got minimal, docview, mdi samples working for 16-bit VC++ and
|
|
||||||
cured 16-bit problem with wxTextCtrl (removed global memory
|
|
||||||
trick).
|
|
||||||
- Updated GnuWin32 makefiles, checked minimal, mdi, docview samples.
|
|
||||||
|
|
||||||
Alpha 3, September 1997
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
- wxListCtrl, wxTreeCtrl, wxImageList classes done.
|
|
||||||
- Instigated new file hierarchy, split files and classes up more logically.
|
|
||||||
- PrologIO and some other utils now put into core library.
|
|
||||||
- Revamped print/preview classes, added wxPageSetupDialog.
|
|
||||||
- Started documentation.
|
|
||||||
|
|
||||||
Alpha 2, 30th April 1997
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
- EVT_... macros now have at least one argument, for conformance
|
|
||||||
with MetroWerks compiler.
|
|
||||||
- Added ids to .wxr file format.
|
|
||||||
- Got Dialog Editor compiled and running again but need
|
|
||||||
to extend functionality to be in line with new controls.
|
|
||||||
Added dialoged\test app to allow dynamic loading of .wxr files
|
|
||||||
for testing purposes.
|
|
||||||
- Rewrote wxBitmap to allow installable file type
|
|
||||||
handlers.
|
|
||||||
- Rewrote wxBitmapButton, wxStaticBitmap to not use Fafa.
|
|
||||||
- Wrote most of wxTreeCtrl and sample (need wxImageList to implement it
|
|
||||||
fully).
|
|
||||||
- Added back wxRadioBox.
|
|
||||||
- Tidied up wx_main.cpp, wxApp class, putting PenWin code in
|
|
||||||
a separate file.
|
|
||||||
|
|
||||||
Alpha 1, 5th April 1997
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
At this point, the following has been achieved:
|
|
||||||
|
|
||||||
- A lot, but not all, of the code has been revamped for better
|
|
||||||
naming conventions, protection of data members, and use of
|
|
||||||
wxString instead of char *.
|
|
||||||
- Obsolete functionality deleted (e.g. default wxPanel layout,
|
|
||||||
old system event system) and code size reduced.
|
|
||||||
- Class hierarchy changed (see design doc) - base classes such
|
|
||||||
as wxbWindow now removed.
|
|
||||||
- No longer includes windows.h in wxWin headers, by using stand-in
|
|
||||||
Windows types where needed e.g. WXHWND.
|
|
||||||
- PrologIO revised.
|
|
||||||
- wxScrolledWindow, wxStatusBar and new MDI classes added.
|
|
||||||
MDI is now achived using separate classes, not window styles.
|
|
||||||
- wxSystemSettings added, and made use of to reflect standard
|
|
||||||
Windows settings.
|
|
||||||
- SetButtonFont/SetLabelFont replaced by SetFont; font and colour
|
|
||||||
settings mucho rationalised.
|
|
||||||
- All windows are now subclassed with the same window proc to make
|
|
||||||
event handling far more consistent. Old internal wxWnd and derived
|
|
||||||
classes removed.
|
|
||||||
- API for controls revised, in particular addition of
|
|
||||||
wxValidator parameters and removal of labels for some controls.
|
|
||||||
- 1 validator written: see examples/validate.
|
|
||||||
- Event table system introduced (see most samples and
|
|
||||||
wx_event.cpp/ProcessEvent, wx_event.h). wxEvtHandler
|
|
||||||
made more flexible, with Push/PopEventHandler allowing a chain
|
|
||||||
of event handlers.
|
|
||||||
- wxRadioBox removed - will be added back soon.
|
|
||||||
- Toolbar class hierarchy revised:
|
|
||||||
wxToolBarBase
|
|
||||||
wxToolBarSimple (= old wxToolBar)
|
|
||||||
wxToolBar95 (= old wxButtonBar under Win95
|
|
||||||
wxToolBarMSW (= old wxButtonBar under WIN16/WIN32)
|
|
||||||
- Constraint system debugged somewhat (sizers now work properly).
|
|
||||||
- wxFileDialog, wxDirDialog added; other common dialogs now
|
|
||||||
have class equivalents. Generic colour and font dialogs
|
|
||||||
rewritten to not need obsolete panel layout.
|
|
||||||
- .wxr resource system partially reinstated, though needs
|
|
||||||
an integer ID for controls. Hopefully the resource system
|
|
||||||
will be replaced by something better and more efficient
|
|
||||||
in the future.
|
|
||||||
- Device contexts no longer stored with window and accessed
|
|
||||||
with GetDC - use wxClientDC, wxPaintDC, wxWindowDC stack
|
|
||||||
variables instead.
|
|
||||||
- wxSlider uses trackbar class under Win95, and wxSL_LABELS flag
|
|
||||||
determines whether labels are shown. Other Win95-specific flags
|
|
||||||
introduced, e.g. for showing ticks.
|
|
||||||
- Styles introduced for dealing with 3D effects per window, for
|
|
||||||
any window: all Win95 3D effects supported, plus transparent windows.
|
|
||||||
- Major change to allow 3D effect support without CTL3D, under
|
|
||||||
Win95.
|
|
||||||
- Bitmap versions of button and checkbox separated out into new
|
|
||||||
classes, but unimplemented as yet because I intend to remove
|
|
||||||
the need for Fafa - it apparently causes GPFs in Win95 OSR 2.
|
|
||||||
- utils/wxprop classes working (except maybe wxPropertyFormView)
|
|
||||||
in preparation for use in Dialog Editor.
|
|
||||||
- GNU-WIN32 compilation verified (a month or so ago).
|
|
||||||
|
|
||||||
|
|
325
include/wx/prop.h
Normal file
@@ -0,0 +1,325 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: prop.h
|
||||||
|
// Purpose: Property sheet classes
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created: 04/01/98
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Julian Smart
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_PROP_H_
|
||||||
|
#define _WX_PROP_H_
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface "prop.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
#include "wx/string.h"
|
||||||
|
#include "wx/hash.h"
|
||||||
|
#include "wx/dialog.h"
|
||||||
|
#include "wx/frame.h"
|
||||||
|
#include "wx/button.h"
|
||||||
|
#include "wx/listbox.h"
|
||||||
|
#include "wx/textctrl.h"
|
||||||
|
#include "wx/gdicmn.h"
|
||||||
|
#include "wx/layout.h"
|
||||||
|
|
||||||
|
class wxWindow;
|
||||||
|
class wxProperty;
|
||||||
|
class wxPropertyValue;
|
||||||
|
class wxPropertySheet;
|
||||||
|
class wxPropertyView;
|
||||||
|
class wxPropertyValidator;
|
||||||
|
class wxPropertyValidatorRegistry;
|
||||||
|
|
||||||
|
#define wxPROPERTY_VERSION 2.0
|
||||||
|
|
||||||
|
// A storable sheet of values
|
||||||
|
class wxPropertySheet: public wxObject
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxPropertySheet)
|
||||||
|
public:
|
||||||
|
wxPropertySheet(void);
|
||||||
|
~wxPropertySheet(void);
|
||||||
|
|
||||||
|
// Add a property
|
||||||
|
virtual void AddProperty(wxProperty *property);
|
||||||
|
|
||||||
|
// Get property by name
|
||||||
|
virtual wxProperty *GetProperty(wxString name);
|
||||||
|
|
||||||
|
// Clear all properties
|
||||||
|
virtual void Clear(void);
|
||||||
|
|
||||||
|
virtual bool Save(ostream& str);
|
||||||
|
virtual bool Load(ostream& str);
|
||||||
|
|
||||||
|
virtual void UpdateAllViews(wxPropertyView *thisView = NULL);
|
||||||
|
inline virtual wxList& GetProperties(void) const { return (wxList&) m_properties; }
|
||||||
|
|
||||||
|
// Sets/clears the modified flag for each property value
|
||||||
|
virtual void SetAllModified(bool flag = TRUE);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxObject* m_viewedObject;
|
||||||
|
wxList m_properties;
|
||||||
|
wxPropertyView* m_propertyView;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Base class for property sheet views. There are currently two directly derived
|
||||||
|
// classes: wxPropertyListView, and wxPropertyFormView.
|
||||||
|
class wxPropertyView: public wxEvtHandler
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxPropertyView)
|
||||||
|
public:
|
||||||
|
wxPropertyView(long flags = 0);
|
||||||
|
~wxPropertyView(void);
|
||||||
|
|
||||||
|
// Associates and shows the view
|
||||||
|
virtual void ShowView(wxPropertySheet *WXUNUSED(propertySheet), wxWindow *WXUNUSED(panel)) {}
|
||||||
|
|
||||||
|
// Update this view of the viewed object, called e.g. by
|
||||||
|
// the object itself.
|
||||||
|
virtual bool OnUpdateView(void) {return FALSE;};
|
||||||
|
|
||||||
|
// Override this to do something as soon as the property changed,
|
||||||
|
// if the view and validators support it.
|
||||||
|
virtual void OnPropertyChanged(wxProperty *WXUNUSED(property)) {}
|
||||||
|
|
||||||
|
virtual void AddRegistry(wxPropertyValidatorRegistry *registry);
|
||||||
|
inline virtual wxList& GetRegistryList(void) const
|
||||||
|
{ return (wxList&) m_validatorRegistryList; }
|
||||||
|
|
||||||
|
virtual wxPropertyValidator *FindPropertyValidator(wxProperty *property);
|
||||||
|
inline virtual void SetPropertySheet(wxPropertySheet *sheet) { m_propertySheet = sheet; }
|
||||||
|
inline virtual wxPropertySheet *GetPropertySheet(void) const { return m_propertySheet; }
|
||||||
|
|
||||||
|
virtual void OnOk(void) {};
|
||||||
|
virtual void OnCancel(void) {};
|
||||||
|
virtual void OnHelp(void) {};
|
||||||
|
|
||||||
|
inline virtual bool OnClose(void) { return FALSE; }
|
||||||
|
inline long GetFlags(void) { return m_buttonFlags; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
long m_buttonFlags;
|
||||||
|
wxPropertySheet* m_propertySheet;
|
||||||
|
wxProperty* m_currentProperty;
|
||||||
|
wxList m_validatorRegistryList;
|
||||||
|
wxPropertyValidator* m_currentValidator;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class wxPropertyValidator: public wxEvtHandler
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxPropertyValidator)
|
||||||
|
public:
|
||||||
|
wxPropertyValidator(long flags = 0);
|
||||||
|
~wxPropertyValidator(void);
|
||||||
|
|
||||||
|
inline long GetFlags(void) const { return m_validatorFlags; }
|
||||||
|
inline void SetValidatorProperty(wxProperty *prop) { m_validatorProperty = prop; }
|
||||||
|
inline wxProperty *GetValidatorProperty(void) const { return m_validatorProperty; }
|
||||||
|
|
||||||
|
virtual bool StringToFloat (char *s, float *number);
|
||||||
|
virtual bool StringToDouble (char *s, double *number);
|
||||||
|
virtual bool StringToInt (char *s, int *number);
|
||||||
|
virtual bool StringToLong (char *s, long *number);
|
||||||
|
virtual char *FloatToString (float number);
|
||||||
|
virtual char *DoubleToString (double number);
|
||||||
|
virtual char *IntToString (int number);
|
||||||
|
virtual char *LongToString (long number);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
long m_validatorFlags;
|
||||||
|
wxProperty* m_validatorProperty;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// extern wxPropertyValidator *wxDefaultPropertyValidator;
|
||||||
|
|
||||||
|
class wxPropertyValidatorRegistry: public wxHashTable
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxPropertyValidatorRegistry)
|
||||||
|
public:
|
||||||
|
wxPropertyValidatorRegistry(void);
|
||||||
|
~wxPropertyValidatorRegistry(void);
|
||||||
|
|
||||||
|
virtual void RegisterValidator(const wxString& roleName, wxPropertyValidator *validator);
|
||||||
|
virtual wxPropertyValidator *GetValidator(const wxString& roleName);
|
||||||
|
void ClearRegistry(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Property value class
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
wxPropertyValueNull,
|
||||||
|
wxPropertyValueInteger,
|
||||||
|
wxPropertyValueReal,
|
||||||
|
wxPropertyValuebool,
|
||||||
|
wxPropertyValueString,
|
||||||
|
wxPropertyValueList,
|
||||||
|
wxPropertyValueIntegerPtr,
|
||||||
|
wxPropertyValueRealPtr,
|
||||||
|
wxPropertyValueboolPtr,
|
||||||
|
wxPropertyValueStringPtr
|
||||||
|
} wxPropertyValueType;
|
||||||
|
|
||||||
|
class wxPropertyValue: public wxObject
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxPropertyValue)
|
||||||
|
|
||||||
|
wxPropertyValue(void); // Unknown type
|
||||||
|
wxPropertyValue(const wxPropertyValue& copyFrom); // Copy constructor
|
||||||
|
wxPropertyValue(const char *val);
|
||||||
|
wxPropertyValue(const wxString& val);
|
||||||
|
wxPropertyValue(long val);
|
||||||
|
wxPropertyValue(bool val);
|
||||||
|
wxPropertyValue(float val);
|
||||||
|
wxPropertyValue(double the_real);
|
||||||
|
wxPropertyValue(wxList *val);
|
||||||
|
wxPropertyValue(wxStringList *val);
|
||||||
|
// Pointer versions
|
||||||
|
wxPropertyValue(char **val);
|
||||||
|
wxPropertyValue(long *val);
|
||||||
|
wxPropertyValue(bool *val);
|
||||||
|
wxPropertyValue(float *val);
|
||||||
|
|
||||||
|
~wxPropertyValue(void);
|
||||||
|
|
||||||
|
virtual inline wxPropertyValueType Type(void) const { return m_type; }
|
||||||
|
virtual inline void SetType(wxPropertyValueType typ) { m_type = typ; }
|
||||||
|
virtual long IntegerValue(void) const;
|
||||||
|
virtual float RealValue(void) const;
|
||||||
|
virtual bool BoolValue(void) const;
|
||||||
|
virtual char *StringValue(void) const;
|
||||||
|
virtual long *IntegerValuePtr(void) const;
|
||||||
|
virtual float *RealValuePtr(void) const;
|
||||||
|
virtual bool *BoolValuePtr(void) const;
|
||||||
|
virtual char **StringValuePtr(void) const;
|
||||||
|
|
||||||
|
// Get nth arg of clause (starting from 1)
|
||||||
|
virtual wxPropertyValue *Arg(wxPropertyValueType type, int arg) const;
|
||||||
|
|
||||||
|
// Return nth argument of a list expression (starting from zero)
|
||||||
|
virtual wxPropertyValue *Nth(int arg) const;
|
||||||
|
// Returns the number of elements in a list expression
|
||||||
|
virtual int Number(void) const;
|
||||||
|
|
||||||
|
virtual wxPropertyValue *NewCopy(void) const;
|
||||||
|
virtual void Copy(wxPropertyValue& copyFrom);
|
||||||
|
|
||||||
|
virtual void WritePropertyClause(ostream& stream); // Write this expression as a top-level clause
|
||||||
|
virtual void WritePropertyType(ostream& stream); // Write as any other subexpression
|
||||||
|
|
||||||
|
// Append an expression to a list
|
||||||
|
virtual void Append(wxPropertyValue *expr);
|
||||||
|
// Insert at beginning of list
|
||||||
|
virtual void Insert(wxPropertyValue *expr);
|
||||||
|
|
||||||
|
// Get first expr in list
|
||||||
|
virtual inline wxPropertyValue *GetFirst(void) const
|
||||||
|
{ return ((m_type == wxPropertyValueList) ? m_value.first : (wxPropertyValue*)NULL); }
|
||||||
|
|
||||||
|
// Get next expr if this is a node in a list
|
||||||
|
virtual inline wxPropertyValue *GetNext(void) const
|
||||||
|
{ return m_next; }
|
||||||
|
|
||||||
|
// Get last expr in list
|
||||||
|
virtual inline wxPropertyValue *GetLast(void) const
|
||||||
|
{ return ((m_type == wxPropertyValueList) ? m_last : (wxPropertyValue*)NULL); }
|
||||||
|
|
||||||
|
// Delete this node from the list
|
||||||
|
virtual void Delete(wxPropertyValue *node);
|
||||||
|
|
||||||
|
// Clear list
|
||||||
|
virtual void ClearList(void);
|
||||||
|
|
||||||
|
virtual inline void SetClientData(wxObject *data) { m_clientData = data; }
|
||||||
|
virtual inline wxObject *GetClientData(void) { return m_clientData; }
|
||||||
|
|
||||||
|
virtual wxString GetStringRepresentation(void);
|
||||||
|
|
||||||
|
inline void SetModified(bool flag = TRUE) { m_modifiedFlag = flag; }
|
||||||
|
inline bool GetModified(void) { return m_modifiedFlag; }
|
||||||
|
|
||||||
|
// Operators
|
||||||
|
void operator=(const wxPropertyValue& val);
|
||||||
|
// void operator=(const char *val);
|
||||||
|
void operator=(const wxString& val);
|
||||||
|
void operator=(const long val);
|
||||||
|
void operator=(const bool val);
|
||||||
|
void operator=(const float val);
|
||||||
|
void operator=(const char **val);
|
||||||
|
void operator=(const long *val);
|
||||||
|
void operator=(const bool *val);
|
||||||
|
void operator=(const float *val);
|
||||||
|
|
||||||
|
public:
|
||||||
|
wxObject* m_clientData;
|
||||||
|
wxPropertyValueType m_type;
|
||||||
|
bool m_modifiedFlag;
|
||||||
|
|
||||||
|
union {
|
||||||
|
long integer; // Also doubles as bool
|
||||||
|
char *string;
|
||||||
|
float real;
|
||||||
|
long *integerPtr;
|
||||||
|
bool *boolPtr;
|
||||||
|
char **stringPtr;
|
||||||
|
float *realPtr;
|
||||||
|
wxPropertyValue *first; // If is a list expr, points to the first node
|
||||||
|
} m_value;
|
||||||
|
|
||||||
|
wxPropertyValue* m_next; // If this is a node in a list, points to the next node
|
||||||
|
wxPropertyValue* m_last; // If is a list expr, points to the last node
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Property class: contains a name and a value.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class wxProperty: public wxObject
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxProperty)
|
||||||
|
protected:
|
||||||
|
bool m_enabled;
|
||||||
|
public:
|
||||||
|
wxPropertyValue m_value;
|
||||||
|
wxString m_name;
|
||||||
|
wxString m_propertyRole;
|
||||||
|
wxPropertyValidator* m_propertyValidator;
|
||||||
|
wxWindow* m_propertyWindow; // Usually a panel item, if anything
|
||||||
|
|
||||||
|
wxProperty(void);
|
||||||
|
wxProperty(wxProperty& copyFrom);
|
||||||
|
wxProperty(wxString name, wxString role, wxPropertyValidator *ed = NULL);
|
||||||
|
wxProperty(wxString name, const wxPropertyValue& val, wxString role, wxPropertyValidator *ed = NULL);
|
||||||
|
~wxProperty(void);
|
||||||
|
|
||||||
|
virtual wxPropertyValue& GetValue(void) const;
|
||||||
|
virtual wxPropertyValidator *GetValidator(void) const;
|
||||||
|
virtual wxString& GetName(void) const;
|
||||||
|
virtual wxString& GetRole(void) const;
|
||||||
|
virtual void SetValue(const wxPropertyValue& val);
|
||||||
|
virtual void SetValidator(wxPropertyValidator *v);
|
||||||
|
virtual void SetName(wxString& nm);
|
||||||
|
virtual void SetRole(wxString& role);
|
||||||
|
void operator=(const wxPropertyValue& val);
|
||||||
|
virtual inline void SetWindow(wxWindow *win) { m_propertyWindow = win; }
|
||||||
|
virtual inline wxWindow *GetWindow(void) const { return m_propertyWindow; }
|
||||||
|
|
||||||
|
inline void Enable(bool en) { m_enabled = en; }
|
||||||
|
inline bool IsEnabled(void) const { return m_enabled; }
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WX_PROP_H_
|
297
include/wx/propform.h
Normal file
@@ -0,0 +1,297 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: propform.h
|
||||||
|
// Purpose: Property form classes
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created: 04/01/98
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Julian Smart
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_PROPFORM_H_
|
||||||
|
#define _WX_PROPFORM_H_
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface "propform.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "wx/prop.h"
|
||||||
|
|
||||||
|
////
|
||||||
|
//// Property form classes: for using an existing dialog or panel
|
||||||
|
////
|
||||||
|
|
||||||
|
#define wxID_PROP_REVERT 3100
|
||||||
|
#define wxID_PROP_UPDATE 3101
|
||||||
|
|
||||||
|
// Mediates between a physical panel and the property sheet
|
||||||
|
class wxPropertyFormView: public wxPropertyView
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxPropertyFormView)
|
||||||
|
public:
|
||||||
|
wxPropertyFormView(wxWindow *propPanel = NULL, long flags = 0);
|
||||||
|
~wxPropertyFormView(void);
|
||||||
|
|
||||||
|
// Associates and shows the view
|
||||||
|
virtual void ShowView(wxPropertySheet *propertySheet, wxWindow *panel);
|
||||||
|
|
||||||
|
// Update this view of the viewed object, called e.g. by
|
||||||
|
// the object itself.
|
||||||
|
virtual bool OnUpdateView(void);
|
||||||
|
|
||||||
|
// Transfer values from property sheet to dialog
|
||||||
|
virtual bool TransferToDialog(void);
|
||||||
|
|
||||||
|
// Transfer values from dialog to property sheet
|
||||||
|
virtual bool TransferToPropertySheet(void);
|
||||||
|
|
||||||
|
// Check that all the values are valid
|
||||||
|
virtual bool Check(void);
|
||||||
|
|
||||||
|
// Give each property in the sheet a panel item, by matching
|
||||||
|
// the name of the property to the name of the panel item.
|
||||||
|
// The user doesn't always want to call this; sometimes, it
|
||||||
|
// will have been done explicitly (e.g., no matching names).
|
||||||
|
virtual bool AssociateNames(void);
|
||||||
|
|
||||||
|
void OnOk(wxCommandEvent& event);
|
||||||
|
void OnCancel(wxCommandEvent& event);
|
||||||
|
void OnHelp(wxCommandEvent& event);
|
||||||
|
void OnUpdate(wxCommandEvent& event);
|
||||||
|
void OnRevert(wxCommandEvent& event);
|
||||||
|
|
||||||
|
virtual bool OnClose(void);
|
||||||
|
virtual void OnDoubleClick(wxControl *item);
|
||||||
|
|
||||||
|
// TODO: does OnCommand still get called...???
|
||||||
|
virtual void OnCommand(wxWindow& win, wxCommandEvent& event);
|
||||||
|
|
||||||
|
inline virtual void AssociatePanel(wxWindow *win) { m_propertyWindow = win; }
|
||||||
|
inline virtual wxWindow *GetPanel(void) const { return m_propertyWindow; }
|
||||||
|
|
||||||
|
inline virtual void SetManagedWindow(wxWindow *win) { m_managedWindow = win; }
|
||||||
|
inline virtual wxWindow *GetManagedWindow(void) const { return m_managedWindow; }
|
||||||
|
|
||||||
|
inline virtual wxButton *GetWindowCloseButton() const { return m_windowCloseButton; }
|
||||||
|
inline virtual wxButton *GetWindowCancelButton() const { return m_windowCancelButton; }
|
||||||
|
inline virtual wxButton *GetHelpButton() const { return m_windowHelpButton; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
static bool sm_dialogCancelled;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
bool m_detailedEditing; // E.g. using listbox for choices
|
||||||
|
|
||||||
|
wxWindow* m_propertyWindow; // Panel that the controls will appear on
|
||||||
|
wxWindow* m_managedWindow; // Frame or dialog
|
||||||
|
|
||||||
|
wxButton* m_windowCloseButton; // Or OK
|
||||||
|
wxButton* m_windowCancelButton;
|
||||||
|
wxButton* m_windowHelpButton;
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The type of validator used for forms (wxForm style but using an existing panel
|
||||||
|
* or dialog box).
|
||||||
|
* Classes derived from this know how to map from whatever widget they
|
||||||
|
* find themselves paired with, to the wxProperty and vice versa.
|
||||||
|
* Should the widget pointer be stored with the validator, or
|
||||||
|
* the wxProperty? If with the property, we don't have to supply
|
||||||
|
* a validator for every property. Otherwise, there ALWAYS needs
|
||||||
|
* to be a validator. On the other hand, not storing a wxWindow pointer
|
||||||
|
* in the wxProperty is more elegant. Perhaps.
|
||||||
|
* I think on balance, should put wxWindow pointer into wxProperty.
|
||||||
|
* After all, wxProperty will often be used to represent the data
|
||||||
|
* assocated with a window. It's that kinda thing.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class wxPropertyFormValidator: public wxPropertyValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxPropertyFormValidator)
|
||||||
|
protected:
|
||||||
|
public:
|
||||||
|
wxPropertyFormValidator(long flags = 0): wxPropertyValidator(flags) { }
|
||||||
|
~wxPropertyFormValidator(void) {}
|
||||||
|
|
||||||
|
// Called to check value is OK (e.g. when OK is pressed)
|
||||||
|
// Return FALSE if value didn't check out; signal to restore old value.
|
||||||
|
virtual bool OnCheckValue( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow) ) { return TRUE; }
|
||||||
|
|
||||||
|
// Does the transferance from the property editing area to the property itself.
|
||||||
|
// Called by the view, e.g. when closing the window.
|
||||||
|
virtual bool OnRetrieveValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow) = 0;
|
||||||
|
|
||||||
|
// Called by the view to transfer the property to the window.
|
||||||
|
virtual bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow) = 0;
|
||||||
|
|
||||||
|
virtual void OnDoubleClick( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow) ) { }
|
||||||
|
virtual void OnSetFocus( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow) ) { }
|
||||||
|
virtual void OnKillFocus( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow) ) { }
|
||||||
|
virtual void OnCommand( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow), wxCommandEvent& WXUNUSED(event) ) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some default validators
|
||||||
|
*/
|
||||||
|
|
||||||
|
class wxRealFormValidator: public wxPropertyFormValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxRealFormValidator)
|
||||||
|
public:
|
||||||
|
// 0.0, 0.0 means no range
|
||||||
|
wxRealFormValidator(float min = 0.0, float max = 0.0, long flags = 0):wxPropertyFormValidator(flags)
|
||||||
|
{
|
||||||
|
m_realMin = min; m_realMax = max;
|
||||||
|
}
|
||||||
|
~wxRealFormValidator(void) {}
|
||||||
|
|
||||||
|
bool OnCheckValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
bool OnRetrieveValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
// Called by the view to transfer the property to the window.
|
||||||
|
bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
float m_realMin;
|
||||||
|
float m_realMax;
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxIntegerFormValidator: public wxPropertyFormValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxIntegerFormValidator)
|
||||||
|
public:
|
||||||
|
// 0, 0 means no range
|
||||||
|
wxIntegerFormValidator(long min = 0, long max = 0, long flags = 0):wxPropertyFormValidator(flags)
|
||||||
|
{
|
||||||
|
m_integerMin = min; m_integerMax = max;
|
||||||
|
}
|
||||||
|
~wxIntegerFormValidator(void) {}
|
||||||
|
|
||||||
|
bool OnCheckValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
bool OnRetrieveValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
long m_integerMin;
|
||||||
|
long m_integerMax;
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxBoolFormValidator: public wxPropertyFormValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxBoolFormValidator)
|
||||||
|
protected:
|
||||||
|
public:
|
||||||
|
wxBoolFormValidator(long flags = 0):wxPropertyFormValidator(flags)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
~wxBoolFormValidator(void) {}
|
||||||
|
|
||||||
|
bool OnCheckValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
bool OnRetrieveValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxStringFormValidator: public wxPropertyFormValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxStringFormValidator)
|
||||||
|
public:
|
||||||
|
wxStringFormValidator(wxStringList *list = NULL, long flags = 0);
|
||||||
|
|
||||||
|
~wxStringFormValidator(void)
|
||||||
|
{
|
||||||
|
if (m_strings)
|
||||||
|
delete m_strings;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OnCheckValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
bool OnRetrieveValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxStringList* m_strings;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A default dialog box class to use.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class wxPropertyFormDialog: public wxDialog
|
||||||
|
{
|
||||||
|
DECLARE_CLASS(wxPropertyFormDialog)
|
||||||
|
public:
|
||||||
|
wxPropertyFormDialog(wxPropertyFormView *v, wxWindow *parent, const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox");
|
||||||
|
bool OnClose(void);
|
||||||
|
void OnDefaultAction(wxControl *item);
|
||||||
|
void OnCommand(wxWindow& win, wxCommandEvent& event);
|
||||||
|
|
||||||
|
// Extend event processing to search the view's event table
|
||||||
|
virtual bool ProcessEvent(wxEvent& event);
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxPropertyFormView* m_view;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A default panel class to use.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class wxPropertyFormPanel: public wxPanel
|
||||||
|
{
|
||||||
|
DECLARE_CLASS(wxPropertyFormPanel)
|
||||||
|
public:
|
||||||
|
wxPropertyFormPanel(wxPropertyFormView *v, wxWindow *parent, const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "panel"):
|
||||||
|
wxPanel(parent, -1, pos, size, style, name)
|
||||||
|
{
|
||||||
|
m_view = v;
|
||||||
|
}
|
||||||
|
void OnDefaultAction(wxControl *item);
|
||||||
|
void OnCommand(wxWindow& win, wxCommandEvent& event);
|
||||||
|
|
||||||
|
// Extend event processing to search the view's event table
|
||||||
|
virtual bool ProcessEvent(wxEvent& event);
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxPropertyFormView* m_view;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A default frame class to use.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class wxPropertyFormFrame: public wxFrame
|
||||||
|
{
|
||||||
|
DECLARE_CLASS(wxPropertyFormFrame)
|
||||||
|
public:
|
||||||
|
wxPropertyFormFrame(wxPropertyFormView *v, wxFrame *parent, const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_FRAME, const wxString& name = "frame"):
|
||||||
|
wxFrame(parent, -1, title, pos, size, style, name)
|
||||||
|
{
|
||||||
|
m_view = v;
|
||||||
|
m_propertyPanel = NULL;
|
||||||
|
}
|
||||||
|
bool OnClose(void);
|
||||||
|
|
||||||
|
// Must call this to create panel and associate view
|
||||||
|
virtual bool Initialize(void);
|
||||||
|
virtual wxPanel *OnCreatePanel(wxFrame *parent, wxPropertyFormView *v);
|
||||||
|
inline virtual wxPanel *GetPropertyPanel(void) const { return m_propertyPanel; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxPropertyFormView* m_view;
|
||||||
|
wxPanel* m_propertyPanel;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WX_PROPFORM_H_
|
557
include/wx/proplist.h
Normal file
@@ -0,0 +1,557 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: proplist.h
|
||||||
|
// Purpose: Property list classes
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created: 04/01/98
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Julian Smart
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
TO DO:
|
||||||
|
|
||||||
|
(1) Optional popup-help for each item, and an optional Help button
|
||||||
|
for dialog.
|
||||||
|
|
||||||
|
(2) Align Ok, Cancel, Help buttons properly.
|
||||||
|
|
||||||
|
(3) Consider retrieving the rectangle on the panel that can be
|
||||||
|
drawn into (where the value listbox is) and giving an example
|
||||||
|
of editing graphically. May be too fancy.
|
||||||
|
|
||||||
|
(4) Deriveable types for wxPropertyValue => may need to reorganise
|
||||||
|
wxPropertyValue to use inheritance rather than present all-types-in-one
|
||||||
|
scheme.
|
||||||
|
|
||||||
|
(5) Optional popup panel for value list, perhaps.
|
||||||
|
|
||||||
|
(6) Floating point checking routine still crashes with Floating
|
||||||
|
point error for zany input.
|
||||||
|
|
||||||
|
(7) Property sheet with choice (or listbox) to select alternative
|
||||||
|
sheets... multiple views per panel, only one active. For this
|
||||||
|
we really need a wxChoice that can be dynamically set: XView
|
||||||
|
may be a problem; Motif?
|
||||||
|
|
||||||
|
(8) More example validators, e.g. colour selector.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _WX_PROPLIST_H_
|
||||||
|
#define _WX_PROPLIST_H_
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface "proplist.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "wx/prop.h"
|
||||||
|
|
||||||
|
#define wxPROP_BUTTON_CLOSE 1
|
||||||
|
#define wxPROP_BUTTON_OK 2
|
||||||
|
#define wxPROP_BUTTON_CANCEL 4
|
||||||
|
#define wxPROP_BUTTON_CHECK_CROSS 8
|
||||||
|
#define wxPROP_BUTTON_HELP 16
|
||||||
|
#define wxPROP_DYNAMIC_VALUE_FIELD 32
|
||||||
|
#define wxPROP_PULLDOWN 64
|
||||||
|
#define wxPROP_SHOWVALUES 128
|
||||||
|
|
||||||
|
#ifdef __XVIEW__
|
||||||
|
#define wxPROP_BUTTON_DEFAULT wxPROP_BUTTON_OK | wxPROP_BUTTON_CANCEL | wxPROP_BUTTON_CHECK_CROSS | wxPROP_PULLDOWN
|
||||||
|
#else
|
||||||
|
#define wxPROP_BUTTON_DEFAULT wxPROP_BUTTON_CHECK_CROSS | wxPROP_PULLDOWN | wxPROP_SHOWVALUES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define wxID_PROP_CROSS 3000
|
||||||
|
#define wxID_PROP_CHECK 3001
|
||||||
|
#define wxID_PROP_EDIT 3002
|
||||||
|
#define wxID_PROP_TEXT 3003
|
||||||
|
#define wxID_PROP_SELECT 3004
|
||||||
|
#define wxID_PROP_VALUE_SELECT 3005
|
||||||
|
|
||||||
|
// Mediates between a physical panel and the property sheet
|
||||||
|
class wxPropertyListView: public wxPropertyView
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxPropertyListView)
|
||||||
|
public:
|
||||||
|
wxPropertyListView(wxPanel *propPanel = NULL, long flags = wxPROP_BUTTON_DEFAULT);
|
||||||
|
~wxPropertyListView(void);
|
||||||
|
|
||||||
|
// Associates and shows the view
|
||||||
|
virtual void ShowView(wxPropertySheet *propertySheet, wxPanel *panel);
|
||||||
|
|
||||||
|
// Update this view of the viewed object, called e.g. by
|
||||||
|
// the object itself.
|
||||||
|
virtual bool OnUpdateView(void);
|
||||||
|
|
||||||
|
wxString MakeNameValueString(wxString name, wxString value);
|
||||||
|
|
||||||
|
// Update a single line in the list of properties
|
||||||
|
virtual bool UpdatePropertyDisplayInList(wxProperty *property);
|
||||||
|
|
||||||
|
// Update the whole list
|
||||||
|
virtual bool UpdatePropertyList(bool clearEditArea = TRUE);
|
||||||
|
|
||||||
|
// Find the wxListBox index corresponding to this property
|
||||||
|
virtual int FindListIndexForProperty(wxProperty *property);
|
||||||
|
|
||||||
|
// Select and show string representation in editor the given
|
||||||
|
// property. NULL resets to show no property.
|
||||||
|
virtual bool ShowProperty(wxProperty *property, bool select = TRUE);
|
||||||
|
virtual bool EditProperty(wxProperty *property);
|
||||||
|
|
||||||
|
// Update the display from the property
|
||||||
|
virtual bool DisplayProperty(wxProperty *property);
|
||||||
|
// Update the property from the display
|
||||||
|
virtual bool RetrieveProperty(wxProperty *property);
|
||||||
|
|
||||||
|
// Find appropriate validator and load property into value controls
|
||||||
|
virtual bool BeginShowingProperty(wxProperty *property);
|
||||||
|
// Find appropriate validator and unload property from value controls
|
||||||
|
virtual bool EndShowingProperty(wxProperty *property);
|
||||||
|
|
||||||
|
// Begin detailed editing (e.g. using value listbox)
|
||||||
|
virtual void BeginDetailedEditing(void);
|
||||||
|
|
||||||
|
// End detailed editing (e.g. using value listbox)
|
||||||
|
virtual void EndDetailedEditing(void);
|
||||||
|
|
||||||
|
// Called by the property listbox
|
||||||
|
void OnPropertySelect(wxCommandEvent& event);
|
||||||
|
|
||||||
|
// Called by the value listbox
|
||||||
|
void OnValueListSelect(wxCommandEvent& event);
|
||||||
|
|
||||||
|
virtual bool CreateControls(void);
|
||||||
|
virtual void ShowTextControl(bool show);
|
||||||
|
virtual void ShowListBoxControl(bool show);
|
||||||
|
virtual void EnableCheck(bool show);
|
||||||
|
virtual void EnableCross(bool show);
|
||||||
|
|
||||||
|
void OnOk(wxCommandEvent& event);
|
||||||
|
void OnCancel(wxCommandEvent& event);
|
||||||
|
void OnHelp(wxCommandEvent& event);
|
||||||
|
void OnPropertyDoubleClick(wxCommandEvent& event);
|
||||||
|
// virtual void OnDoubleClick(void);
|
||||||
|
|
||||||
|
void OnCheck(wxCommandEvent& event);
|
||||||
|
void OnCross(wxCommandEvent& event);
|
||||||
|
void OnEdit(wxCommandEvent& event);
|
||||||
|
void OnText(wxCommandEvent& event);
|
||||||
|
|
||||||
|
inline virtual wxListBox *GetPropertyScrollingList() const { return m_propertyScrollingList; }
|
||||||
|
inline virtual wxListBox *GetValueList() const { return m_valueList; }
|
||||||
|
inline virtual wxTextCtrl *GetValueText() const { return m_valueText; }
|
||||||
|
inline virtual wxButton *GetConfirmButton() const { return m_confirmButton; }
|
||||||
|
inline virtual wxButton *GetCancelButton() const { return m_cancelButton; }
|
||||||
|
inline virtual wxButton *GetEditButton() const { return m_editButton; }
|
||||||
|
inline virtual bool GetDetailedEditing(void) const { return m_detailedEditing; }
|
||||||
|
|
||||||
|
inline virtual void AssociatePanel(wxPanel *win) { m_propertyWindow = win; }
|
||||||
|
inline virtual wxPanel *GetPanel(void) const { return m_propertyWindow; }
|
||||||
|
|
||||||
|
inline virtual void SetManagedWindow(wxWindow *win) { m_managedWindow = win; }
|
||||||
|
inline virtual wxWindow *GetManagedWindow(void) const { return m_managedWindow; }
|
||||||
|
|
||||||
|
inline virtual wxButton *GetWindowCloseButton() const { return m_windowCloseButton; }
|
||||||
|
inline virtual wxButton *GetWindowCancelButton() const { return m_windowCancelButton; }
|
||||||
|
inline virtual wxButton *GetHelpButton() const { return m_windowHelpButton; }
|
||||||
|
|
||||||
|
bool OnClose(void);
|
||||||
|
|
||||||
|
public:
|
||||||
|
static bool sm_dialogCancelled;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxListBox* m_propertyScrollingList;
|
||||||
|
wxListBox* m_valueList; // Should really be a combobox, but we don't have one.
|
||||||
|
wxTextCtrl* m_valueText;
|
||||||
|
wxButton* m_confirmButton; // A tick, as in VB
|
||||||
|
wxButton* m_cancelButton; // A cross, as in VB
|
||||||
|
wxButton* m_editButton; // Invokes the custom validator, if any
|
||||||
|
|
||||||
|
bool m_detailedEditing; // E.g. using listbox for choices
|
||||||
|
|
||||||
|
static wxBitmap* sm_tickBitmap;
|
||||||
|
static wxBitmap* sm_crossBitmap;
|
||||||
|
|
||||||
|
wxPanel* m_propertyWindow; // Panel that the controls will appear on
|
||||||
|
wxWindow* m_managedWindow; // Frame or dialog
|
||||||
|
|
||||||
|
wxButton* m_windowCloseButton; // Or OK
|
||||||
|
wxButton* m_windowCancelButton;
|
||||||
|
wxButton* m_windowHelpButton;
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxPropertyTextEdit: public wxTextCtrl
|
||||||
|
{
|
||||||
|
DECLARE_CLASS(wxPropertyTextEdit)
|
||||||
|
public:
|
||||||
|
wxPropertyTextEdit(wxPropertyListView *v, wxWindow *parent, const wxWindowID id,
|
||||||
|
const wxString& value, const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "text");
|
||||||
|
void OnSetFocus(void);
|
||||||
|
void OnKillFocus(void);
|
||||||
|
|
||||||
|
wxPropertyListView* m_view;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define wxPROP_ALLOW_TEXT_EDITING 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The type of validator used for property lists (Visual Basic style)
|
||||||
|
*/
|
||||||
|
|
||||||
|
class wxPropertyListValidator: public wxPropertyValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxPropertyListValidator)
|
||||||
|
protected:
|
||||||
|
public:
|
||||||
|
wxPropertyListValidator(long flags = wxPROP_ALLOW_TEXT_EDITING): wxPropertyValidator(flags) { }
|
||||||
|
~wxPropertyListValidator(void) {}
|
||||||
|
|
||||||
|
// Called when the property is selected or deselected: typically displays the value
|
||||||
|
// in the edit control (having chosen a suitable control to display: (non)editable text or listbox)
|
||||||
|
virtual bool OnSelect(bool select, wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when the property is double clicked. Extra functionality can be provided, such as
|
||||||
|
// cycling through possible values.
|
||||||
|
inline virtual bool OnDoubleClick(
|
||||||
|
wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) )
|
||||||
|
{ return TRUE; }
|
||||||
|
|
||||||
|
// Called when the value listbox is selected. Default behaviour is to copy
|
||||||
|
// string to text control, and retrieve the value into the property.
|
||||||
|
virtual bool OnValueListSelect(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when the property value is edited using standard text control
|
||||||
|
inline virtual bool OnPrepareControls(
|
||||||
|
wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) )
|
||||||
|
{ return TRUE; }
|
||||||
|
|
||||||
|
virtual bool OnClearControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when the property is edited in detail
|
||||||
|
inline virtual bool OnPrepareDetailControls(
|
||||||
|
wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) )
|
||||||
|
{ return TRUE; }
|
||||||
|
|
||||||
|
// Called if focus lost, IF we're in a modeless property editing situation.
|
||||||
|
inline virtual bool OnClearDetailControls(
|
||||||
|
wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) )
|
||||||
|
{ return TRUE; }
|
||||||
|
|
||||||
|
// Called when the edit (...) button is pressed. The default implementation
|
||||||
|
// calls view->BeginDetailedEditing; the filename validator (for example) overrides
|
||||||
|
// this function to show the file selector.
|
||||||
|
virtual void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost.
|
||||||
|
// Return FALSE if value didn't check out; signal to restore old value.
|
||||||
|
inline virtual bool OnCheckValue(
|
||||||
|
wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) )
|
||||||
|
{ return TRUE; }
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost or view wants to update
|
||||||
|
// the property list.
|
||||||
|
// Does the transferance from the property editing area to the property itself
|
||||||
|
virtual bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
virtual bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A default dialog box class to use.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class wxPropertyListDialog: public wxDialog
|
||||||
|
{
|
||||||
|
DECLARE_CLASS(wxPropertyListDialog)
|
||||||
|
public:
|
||||||
|
wxPropertyListDialog(wxPropertyListView *v, wxWindow *parent, const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox");
|
||||||
|
bool OnClose(void);
|
||||||
|
void OnDefaultAction(wxControl *item);
|
||||||
|
void OnCancel(wxCommandEvent& event);
|
||||||
|
|
||||||
|
// Extend event processing to search the view's event table
|
||||||
|
virtual bool ProcessEvent(wxEvent& event);
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxPropertyListView* m_view;
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A default panel class to use.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class wxPropertyListPanel: public wxPanel
|
||||||
|
{
|
||||||
|
DECLARE_CLASS(wxPropertyListPanel)
|
||||||
|
public:
|
||||||
|
wxPropertyListPanel(wxPropertyListView *v, wxWindow *parent, const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = 0, const wxString& name = "panel"):
|
||||||
|
wxPanel(parent, -1, pos, size, style, name)
|
||||||
|
{
|
||||||
|
m_view = v;
|
||||||
|
}
|
||||||
|
~wxPropertyListPanel();
|
||||||
|
void OnDefaultAction(wxControl *item);
|
||||||
|
|
||||||
|
inline void SetView(wxPropertyListView* v) { m_view = v; }
|
||||||
|
inline wxPropertyListView* GetView() const { return m_view; }
|
||||||
|
|
||||||
|
// Extend event processing to search the view's event table
|
||||||
|
virtual bool ProcessEvent(wxEvent& event);
|
||||||
|
|
||||||
|
// Call Layout()
|
||||||
|
void OnSize(wxSizeEvent& event);
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxPropertyListView* m_view;
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A default frame class to use.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class wxPropertyListFrame: public wxFrame
|
||||||
|
{
|
||||||
|
DECLARE_CLASS(wxPropertyListFrame)
|
||||||
|
public:
|
||||||
|
wxPropertyListFrame(wxPropertyListView *v, wxFrame *parent, const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_FRAME, const wxString& name = "frame"):
|
||||||
|
wxFrame(parent, -1, title, pos, size, style, name)
|
||||||
|
{
|
||||||
|
m_view = v;
|
||||||
|
m_propertyPanel = NULL;
|
||||||
|
}
|
||||||
|
bool OnClose(void);
|
||||||
|
|
||||||
|
// Must call this to create panel and associate view
|
||||||
|
virtual bool Initialize(void);
|
||||||
|
virtual wxPropertyListPanel *OnCreatePanel(wxFrame *parent, wxPropertyListView *v);
|
||||||
|
inline virtual wxPropertyListPanel *GetPropertyPanel(void) const { return m_propertyPanel; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxPropertyListView* m_view;
|
||||||
|
wxPropertyListPanel* m_propertyPanel;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some default validators
|
||||||
|
*/
|
||||||
|
|
||||||
|
class wxRealListValidator: public wxPropertyListValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxRealListValidator)
|
||||||
|
public:
|
||||||
|
// 0.0, 0.0 means no range
|
||||||
|
wxRealListValidator(float min = 0.0, float max = 0.0, long flags = wxPROP_ALLOW_TEXT_EDITING):wxPropertyListValidator(flags)
|
||||||
|
{
|
||||||
|
m_realMin = min; m_realMax = max;
|
||||||
|
}
|
||||||
|
~wxRealListValidator(void) {}
|
||||||
|
|
||||||
|
bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost.
|
||||||
|
// Return FALSE if value didn't check out; signal to restore old value.
|
||||||
|
bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost or view wants to update
|
||||||
|
// the property list.
|
||||||
|
// Does the transfer from the property editing area to the property itself
|
||||||
|
bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
float m_realMin;
|
||||||
|
float m_realMax;
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxIntegerListValidator: public wxPropertyListValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxIntegerListValidator)
|
||||||
|
public:
|
||||||
|
// 0, 0 means no range
|
||||||
|
wxIntegerListValidator(long min = 0, long max = 0, long flags = wxPROP_ALLOW_TEXT_EDITING):wxPropertyListValidator(flags)
|
||||||
|
{
|
||||||
|
m_integerMin = min; m_integerMax = max;
|
||||||
|
}
|
||||||
|
~wxIntegerListValidator(void) {}
|
||||||
|
|
||||||
|
bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost.
|
||||||
|
// Return FALSE if value didn't check out; signal to restore old value.
|
||||||
|
bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost or view wants to update
|
||||||
|
// the property list.
|
||||||
|
// Does the transfer from the property editing area to the property itself
|
||||||
|
bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
long m_integerMin;
|
||||||
|
long m_integerMax;
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxBoolListValidator: public wxPropertyListValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxBoolListValidator)
|
||||||
|
protected:
|
||||||
|
public:
|
||||||
|
wxBoolListValidator(long flags = 0):wxPropertyListValidator(flags)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
~wxBoolListValidator(void) {}
|
||||||
|
|
||||||
|
bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
bool OnPrepareDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
bool OnClearDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost.
|
||||||
|
// Return FALSE if value didn't check out; signal to restore old value.
|
||||||
|
bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost or view wants to update
|
||||||
|
// the property list.
|
||||||
|
// Does the transfer from the property editing area to the property itself
|
||||||
|
bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when the property is double clicked. Extra functionality can be provided,
|
||||||
|
// cycling through possible values.
|
||||||
|
virtual bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxStringListValidator: public wxPropertyListValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxStringListValidator)
|
||||||
|
public:
|
||||||
|
wxStringListValidator(wxStringList *list = NULL, long flags = 0);
|
||||||
|
|
||||||
|
~wxStringListValidator(void)
|
||||||
|
{
|
||||||
|
if (m_strings)
|
||||||
|
delete m_strings;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
bool OnPrepareDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
bool OnClearDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost.
|
||||||
|
// Return FALSE if value didn't check out; signal to restore old value.
|
||||||
|
bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost or view wants to update
|
||||||
|
// the property list.
|
||||||
|
// Does the transfer from the property editing area to the property itself
|
||||||
|
bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when the property is double clicked. Extra functionality can be provided,
|
||||||
|
// cycling through possible values.
|
||||||
|
bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxStringList* m_strings;
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxFilenameListValidator: public wxPropertyListValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxFilenameListValidator)
|
||||||
|
public:
|
||||||
|
wxFilenameListValidator(wxString message = "Select a file", wxString wildcard = "*.*", long flags = 0);
|
||||||
|
|
||||||
|
~wxFilenameListValidator(void);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost.
|
||||||
|
// Return FALSE if value didn't check out; signal to restore old value.
|
||||||
|
bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost or view wants to update
|
||||||
|
// the property list.
|
||||||
|
// Does the transferance from the property editing area to the property itself
|
||||||
|
bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when the edit (...) button is pressed.
|
||||||
|
void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxString m_filenameWildCard;
|
||||||
|
wxString m_filenameMessage;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxColourListValidator: public wxPropertyListValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxColourListValidator)
|
||||||
|
protected:
|
||||||
|
public:
|
||||||
|
wxColourListValidator(long flags = 0);
|
||||||
|
|
||||||
|
~wxColourListValidator(void);
|
||||||
|
|
||||||
|
bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when the edit (...) button is pressed.
|
||||||
|
void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxListOfStringsListValidator: public wxPropertyListValidator
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxListOfStringsListValidator)
|
||||||
|
protected:
|
||||||
|
public:
|
||||||
|
wxListOfStringsListValidator(long flags = 0);
|
||||||
|
|
||||||
|
~wxListOfStringsListValidator(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost.
|
||||||
|
// Return FALSE if value didn't check out; signal to restore old value.
|
||||||
|
bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when TICK is pressed or focus is lost or view wants to update
|
||||||
|
// the property list.
|
||||||
|
// Does the transfer from the property editing area to the property itself
|
||||||
|
bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
// Called when the property is double clicked.
|
||||||
|
bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
|
||||||
|
bool EditStringList(wxWindow *parent, wxStringList *stringList, const char *title = "String List Editor");
|
||||||
|
|
||||||
|
// Called when the edit (...) button is pressed.
|
||||||
|
void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WX_PROPLIST_H_
|
@@ -11,7 +11,8 @@
|
|||||||
WXDIR = $(WXWIN)
|
WXDIR = $(WXWIN)
|
||||||
|
|
||||||
TARGET=bombs
|
TARGET=bombs
|
||||||
OBJECTS=$(TARGET).obj bombs1.obj game.obj
|
OBJECTS=dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj\
|
||||||
|
winprop.obj edtree.obj edlist.obj symbtabl.obj winstyle.obj
|
||||||
|
|
||||||
!include $(WXDIR)\src\makeprog.msc
|
!include $(WXDIR)\src\makeprog.msc
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
PROGRAM=bombs
|
PROGRAM=bombs
|
||||||
|
|
||||||
OBJECTS=$(PROGRAM).o bombs1.o game.o
|
OBJECTS = bombs.o bombs1.o game.o
|
||||||
|
|
||||||
include ../../src/makeprog.env
|
include ../../src/makeprog.env
|
||||||
|
|
||||||
|
@@ -16,6 +16,8 @@ WXDIR = ..
|
|||||||
THISDIR=$(WXDIR)/samples
|
THISDIR=$(WXDIR)/samples
|
||||||
|
|
||||||
all:
|
all:
|
||||||
|
cd $(WXDIR)/samples/bombs; make -f makefile.g95
|
||||||
|
cd $(WXDIR)/samples/fractal; make -f makefile.g95
|
||||||
cd $(WXDIR)/samples/splitter; make -f makefile.g95
|
cd $(WXDIR)/samples/splitter; make -f makefile.g95
|
||||||
cd $(WXDIR)/samples/resource; make -f makefile.g95
|
cd $(WXDIR)/samples/resource; make -f makefile.g95
|
||||||
cd $(WXDIR)/samples/controls; make -f makefile.g95
|
cd $(WXDIR)/samples/controls; make -f makefile.g95
|
||||||
@@ -26,6 +28,7 @@ all:
|
|||||||
cd $(WXDIR)/samples/minimal; make -f makefile.g95
|
cd $(WXDIR)/samples/minimal; make -f makefile.g95
|
||||||
cd $(WXDIR)/samples/layout; make -f makefile.g95
|
cd $(WXDIR)/samples/layout; make -f makefile.g95
|
||||||
cd $(WXDIR)/samples/printing; make -f makefile.g95
|
cd $(WXDIR)/samples/printing; make -f makefile.g95
|
||||||
|
cd $(WXDIR)/samples/proplist; make -f makefile.g95
|
||||||
cd $(WXDIR)/samples/toolbar; make -f makefile.g95
|
cd $(WXDIR)/samples/toolbar; make -f makefile.g95
|
||||||
cd $(WXDIR)/samples/dialogs; make -f makefile.g95
|
cd $(WXDIR)/samples/dialogs; make -f makefile.g95
|
||||||
cd $(WXDIR)/samples/docview; make -f makefile.g95
|
cd $(WXDIR)/samples/docview; make -f makefile.g95
|
||||||
@@ -43,11 +46,14 @@ all:
|
|||||||
# cd $(WXDIR)/samples/regtest; make -f makefile.g95
|
# cd $(WXDIR)/samples/regtest; make -f makefile.g95
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
cd $(WXDIR)/samples/bombs; make -f makefile.g95 clean
|
||||||
|
cd $(WXDIR)/samples/fractal; make -f makefile.g95 clean
|
||||||
cd $(WXDIR)/samples/splitter; make -f makefile.g95 clean
|
cd $(WXDIR)/samples/splitter; make -f makefile.g95 clean
|
||||||
cd $(WXDIR)/samples/mdi; make -f makefile.g95 clean
|
cd $(WXDIR)/samples/mdi; make -f makefile.g95 clean
|
||||||
cd $(WXDIR)/samples/minimal; make -f makefile.g95 clean
|
cd $(WXDIR)/samples/minimal; make -f makefile.g95 clean
|
||||||
cd $(WXDIR)/samples/layout; make -f makefile.g95 clean
|
cd $(WXDIR)/samples/layout; make -f makefile.g95 clean
|
||||||
cd $(WXDIR)/samples/printing; make -f makefile.g95 clean
|
cd $(WXDIR)/samples/printing; make -f makefile.g95 clean
|
||||||
|
cd $(WXDIR)/samples/proplist; make -f makefile.g95 clean
|
||||||
cd $(WXDIR)/samples/toolbar; make -f makefile.g95 clean
|
cd $(WXDIR)/samples/toolbar; make -f makefile.g95 clean
|
||||||
cd $(WXDIR)/samples/dialogs; make -f makefile.g95 clean
|
cd $(WXDIR)/samples/dialogs; make -f makefile.g95 clean
|
||||||
cd $(WXDIR)/samples/resource; make -f makefile.g95 clean
|
cd $(WXDIR)/samples/resource; make -f makefile.g95 clean
|
||||||
|
@@ -74,28 +74,18 @@ all:
|
|||||||
nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
||||||
cd $(WXDIR)\samples\minifram
|
cd $(WXDIR)\samples\minifram
|
||||||
nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
||||||
|
cd $(WXDIR)\samples\bombs
|
||||||
|
nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
||||||
|
cd $(WXDIR)\samples\fractal
|
||||||
|
nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
||||||
|
cd $(WXDIR)\samples\wxpoem
|
||||||
|
nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
||||||
|
cd $(WXDIR)\samples\types
|
||||||
|
nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
||||||
|
cd $(WXDIR)\samples\proplist
|
||||||
|
nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
||||||
# cd $(WXDIR)\samples\regtest
|
# cd $(WXDIR)\samples\regtest
|
||||||
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
||||||
# cd $(WXDIR)\samples\hello
|
|
||||||
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
|
||||||
# cd $(WXDIR)\samples\fractal
|
|
||||||
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
|
||||||
# cd $(WXDIR)\samples\ipc
|
|
||||||
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
|
||||||
# cd $(WXDIR)\samples\wxpoem
|
|
||||||
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
|
||||||
# cd $(WXDIR)\samples\types
|
|
||||||
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
|
||||||
# cd $(WXDIR)\samples\pressup
|
|
||||||
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
|
||||||
# cd $(WXDIR)\samples\bombs
|
|
||||||
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
|
||||||
# cd $(WXDIR)\samples\animate
|
|
||||||
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
|
||||||
# cd $(WXDIR)\samples\panel
|
|
||||||
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
|
||||||
# cd $(WXDIR)\samples\odbc
|
|
||||||
# nmake -f makefile.nt DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
cd $(WXDIR)\samples\splitter
|
cd $(WXDIR)\samples\splitter
|
||||||
@@ -150,24 +140,14 @@ clean:
|
|||||||
nmake -f makefile.nt clean
|
nmake -f makefile.nt clean
|
||||||
cd $(WXDIR)\samples\minifram
|
cd $(WXDIR)\samples\minifram
|
||||||
nmake -f makefile.nt clean
|
nmake -f makefile.nt clean
|
||||||
# cd $(WXDIR)\samples\hello
|
cd $(WXDIR)\samples\bombs
|
||||||
# nmake -f makefile.nt clean
|
nmake -f makefile.nt clean
|
||||||
# cd $(WXDIR)\samples\fractal
|
cd $(WXDIR)\samples\fractal
|
||||||
# nmake -f makefile.nt clean
|
nmake -f makefile.nt clean
|
||||||
# cd $(WXDIR)\samples\ipc
|
cd $(WXDIR)\samples\wxpoem
|
||||||
# nmake -f makefile.nt clean
|
nmake -f makefile.nt clean
|
||||||
# cd $(WXDIR)\samples\types
|
cd $(WXDIR)\samples\types
|
||||||
# nmake -f makefile.nt clean
|
nmake -f makefile.nt clean
|
||||||
# cd $(WXDIR)\samples\pressup
|
cd $(WXDIR)\samples\proplist
|
||||||
# nmake -f makefile.nt clean
|
nmake -f makefile.nt clean
|
||||||
# cd $(WXDIR)\samples\bombs
|
|
||||||
# nmake -f makefile.nt clean
|
|
||||||
# cd $(WXDIR)\samples\odbc
|
|
||||||
# nmake -f makefile.nt clean
|
|
||||||
# cd $(WXDIR)\samples\animate
|
|
||||||
# nmake -f makefile.nt clean
|
|
||||||
# cd $(WXDIR)\samples\panel
|
|
||||||
# nmake -f makefile.nt clean
|
|
||||||
# cd $(WXDIR)\samples\wxpoem
|
|
||||||
# nmake -f makefile.nt clean
|
|
||||||
|
|
||||||
|
@@ -15,6 +15,7 @@ TARGET=motif
|
|||||||
THISDIR = $(WXDIR)/samples
|
THISDIR = $(WXDIR)/samples
|
||||||
|
|
||||||
all:
|
all:
|
||||||
|
cd bombs; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd config; $(MAKE) -f makefile.unx $(TARGET)
|
cd config; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd controls; $(MAKE) -f makefile.unx $(TARGET)
|
cd controls; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd dialogs; $(MAKE) -f makefile.unx $(TARGET)
|
cd dialogs; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
@@ -22,6 +23,7 @@ all:
|
|||||||
cd docview; $(MAKE) -f makefile.unx $(TARGET)
|
cd docview; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd docvwmdi; $(MAKE) -f makefile.unx $(TARGET)
|
cd docvwmdi; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd dynamic; $(MAKE) -f makefile.unx $(TARGET)
|
cd dynamic; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
|
cd fractal; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd grid; $(MAKE) -f makefile.unx $(TARGET)
|
cd grid; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd help; $(MAKE) -f makefile.unx $(TARGET)
|
cd help; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd image; $(MAKE) -f makefile.unx $(TARGET)
|
cd image; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
@@ -33,6 +35,7 @@ all:
|
|||||||
cd nativdlg; $(MAKE) -f makefile.unx $(TARGET)
|
cd nativdlg; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd notebook; $(MAKE) -f makefile.unx $(TARGET)
|
cd notebook; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd printing; $(MAKE) -f makefile.unx $(TARGET)
|
cd printing; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
|
cd proplist; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd resource; $(MAKE) -f makefile.unx $(TARGET)
|
cd resource; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd sashtest; $(MAKE) -f makefile.unx $(TARGET)
|
cd sashtest; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
cd splitter; $(MAKE) -f makefile.unx $(TARGET)
|
cd splitter; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
@@ -45,6 +48,7 @@ all:
|
|||||||
cd wxpoem; $(MAKE) -f makefile.unx $(TARGET)
|
cd wxpoem; $(MAKE) -f makefile.unx $(TARGET)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
cd bombs; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd config; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd config; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd controls; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd controls; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd dialogs; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd dialogs; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
@@ -52,6 +56,7 @@ clean:
|
|||||||
cd docview; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd docview; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd docvwmdi; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd docvwmdi; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd dynamic; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd dynamic; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
|
cd fractal; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd grid; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd grid; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd help; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd help; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd image; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd image; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
@@ -63,6 +68,7 @@ clean:
|
|||||||
cd nativdlg; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd nativdlg; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd notebook; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd notebook; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd printing; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd printing; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
|
cd proplist; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd resource; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd resource; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd sashtest; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd sashtest; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
cd splitter; $(MAKE) -f makefile.unx clean$(TARGET)
|
cd splitter; $(MAKE) -f makefile.unx clean$(TARGET)
|
||||||
|
1
samples/proplist/Makefile
Normal file
@@ -0,0 +1 @@
|
|||||||
|
include ../../setup/general/makeapp
|
26
samples/proplist/Makefile.in
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# WXXT base directory
|
||||||
|
WXBASEDIR=@WXBASEDIR@
|
||||||
|
|
||||||
|
# set the OS type for compilation
|
||||||
|
OS=@OS@
|
||||||
|
# compile a library only
|
||||||
|
RULE=bin
|
||||||
|
|
||||||
|
# define library name
|
||||||
|
BIN_TARGET=test
|
||||||
|
# define library sources
|
||||||
|
BIN_SRC=\
|
||||||
|
test.cpp
|
||||||
|
|
||||||
|
#define library objects
|
||||||
|
BIN_OBJ=\
|
||||||
|
test.o
|
||||||
|
|
||||||
|
# additional things needed to link
|
||||||
|
BIN_LINK=
|
||||||
|
|
||||||
|
# additional things needed to compile
|
||||||
|
ADD_COMPILE=
|
||||||
|
|
||||||
|
# include the definitions now
|
||||||
|
include ../../../template.mak
|
BIN
samples/proplist/cross.bmp
Normal file
After Width: | Height: | Size: 198 B |
64
samples/proplist/makefile.b32
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
#
|
||||||
|
# File: makefile.b32
|
||||||
|
# Author: Julian Smart
|
||||||
|
# Created: 1993
|
||||||
|
# Updated:
|
||||||
|
# Copyright:
|
||||||
|
#
|
||||||
|
# "%W% %G%"
|
||||||
|
#
|
||||||
|
# Makefile : Builds test example
|
||||||
|
|
||||||
|
# WXWIN and BCCDIR are set by parent make
|
||||||
|
|
||||||
|
WXDIR = $(WXWIN)
|
||||||
|
!include $(WXDIR)\src\makeb32.env
|
||||||
|
|
||||||
|
WXLIBDIR = $(WXDIR)\lib
|
||||||
|
WXINC = $(WXDIR)\include\msw
|
||||||
|
WXLIB = $(WXLIBDIR)\wx32.lib
|
||||||
|
LIBS=$(WXLIB) cw32 import32 ole2w32
|
||||||
|
|
||||||
|
TARGET=test
|
||||||
|
|
||||||
|
!if "$(FINAL)" == "0"
|
||||||
|
LINKFLAGS=/v /Tpe /L$(WXLIBDIR);$(BCCDIR)\lib
|
||||||
|
OPT = -Od
|
||||||
|
DEBUG_FLAGS= -v
|
||||||
|
!else
|
||||||
|
LINKFLAGS=/Tpe /L$(WXLIBDIR);$(BCCDIR)\lib
|
||||||
|
OPT = -Od
|
||||||
|
DEBUG_FLAGS =
|
||||||
|
!endif
|
||||||
|
CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG)
|
||||||
|
|
||||||
|
OBJECTS = test.obj
|
||||||
|
|
||||||
|
$(TARGET).exe: $(OBJECTS) $(TARGET).res
|
||||||
|
tlink32 $(LINKFLAGS) @&&!
|
||||||
|
c0w32.obj $(OBJECTS)
|
||||||
|
$(TARGET)
|
||||||
|
nul
|
||||||
|
$(LIBS)
|
||||||
|
$(TARGET).def
|
||||||
|
$(TARGET).res
|
||||||
|
!
|
||||||
|
|
||||||
|
.$(SRCSUFF).obj:
|
||||||
|
bcc32 $(CPPFLAGS) -c {$< }
|
||||||
|
|
||||||
|
.c.obj:
|
||||||
|
bcc32 $(CPPFLAGS) -P- -c {$< }
|
||||||
|
|
||||||
|
test.obj: test.$(SRCSUFF)
|
||||||
|
|
||||||
|
$(TARGET).res : $(TARGET).rc $(WXDIR)\include\wx\msw\wx.rc
|
||||||
|
brc32 -r /i$(BCCDIR)\include /i$(WXDIR)\include $(TARGET)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
-erase *.obj
|
||||||
|
-erase *.exe
|
||||||
|
-erase *.res
|
||||||
|
-erase *.map
|
||||||
|
-erase *.rws
|
||||||
|
|
19
samples/proplist/makefile.bcc
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#
|
||||||
|
# File: makefile.bcc
|
||||||
|
# Author: Julian Smart
|
||||||
|
# Created: 1998
|
||||||
|
# Updated:
|
||||||
|
#
|
||||||
|
# Builds a BC++ 16-bit sample
|
||||||
|
|
||||||
|
!if "$(WXWIN)" == ""
|
||||||
|
!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
|
||||||
|
!endif
|
||||||
|
|
||||||
|
WXDIR = $(WXWIN)
|
||||||
|
|
||||||
|
TARGET=test
|
||||||
|
OBJECTS=$(TARGET).obj
|
||||||
|
|
||||||
|
!include $(WXDIR)\src\makeprog.bcc
|
||||||
|
|
17
samples/proplist/makefile.dos
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#
|
||||||
|
# File: makefile.dos
|
||||||
|
# Author: Julian Smart
|
||||||
|
# Created: 1998
|
||||||
|
# Updated:
|
||||||
|
#
|
||||||
|
# Makefile : Builds 16-bit sample, VC++ 1.5
|
||||||
|
# Use FINAL=1 argument to nmake to build final version with no debugging
|
||||||
|
# info
|
||||||
|
|
||||||
|
WXDIR = $(WXWIN)
|
||||||
|
|
||||||
|
TARGET=test
|
||||||
|
OBJECTS=$(TARGET).obj
|
||||||
|
|
||||||
|
!include $(WXDIR)\src\makeprog.msc
|
||||||
|
|
37
samples/proplist/makefile.g95
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#
|
||||||
|
# File: makefile.unx
|
||||||
|
# Author: Julian Smart
|
||||||
|
# Created: 1993
|
||||||
|
# Updated:
|
||||||
|
# Copyright: (c) 1993, AIAI, University of Edinburgh
|
||||||
|
#
|
||||||
|
# "%W% %G%"
|
||||||
|
#
|
||||||
|
# Makefile for test example (UNIX).
|
||||||
|
|
||||||
|
WXDIR = ../..
|
||||||
|
|
||||||
|
# All common UNIX compiler flags and options are now in
|
||||||
|
# this central makefile.
|
||||||
|
include $(WXDIR)/src/makeg95.env
|
||||||
|
|
||||||
|
OBJECTS = $(OBJDIR)/test.$(OBJSUFF) $(OBJDIR)/test_resources.$(OBJSUFF)
|
||||||
|
|
||||||
|
all: $(OBJDIR) test$(GUISUFFIX)$(EXESUFF)
|
||||||
|
|
||||||
|
wx:
|
||||||
|
|
||||||
|
$(OBJDIR):
|
||||||
|
mkdir $(OBJDIR)
|
||||||
|
|
||||||
|
test$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB)
|
||||||
|
$(CC) $(LDFLAGS) -o test$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS)
|
||||||
|
|
||||||
|
$(OBJDIR)/test.$(OBJSUFF): test.$(SRCSUFF)
|
||||||
|
$(CC) -c $(CPPFLAGS) -o $@ test.$(SRCSUFF)
|
||||||
|
|
||||||
|
$(OBJDIR)/test_resources.o: test.rc
|
||||||
|
$(RESCOMP) -i test.rc -o $(OBJDIR)/test_resources.o $(RESFLAGS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(OBJECTS) test$(GUISUFFIX).exe core *.rsc *.res
|
64
samples/proplist/makefile.nt
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
#
|
||||||
|
# File: makefile.nt
|
||||||
|
# Author: Julian Smart
|
||||||
|
# Created: 1993
|
||||||
|
# Updated:
|
||||||
|
# Copyright: (c) 1993, AIAI, University of Edinburgh
|
||||||
|
#
|
||||||
|
# "%W% %G%"
|
||||||
|
#
|
||||||
|
# Makefile : Builds test example (MS VC++).
|
||||||
|
# Use FINAL=1 argument to nmake to build final version with no debugging
|
||||||
|
# info
|
||||||
|
|
||||||
|
# Set WXDIR for your system
|
||||||
|
WXDIR = $(WXWIN)
|
||||||
|
|
||||||
|
WXUSINGDLL=0
|
||||||
|
|
||||||
|
!include $(WXDIR)\src\ntwxwin.mak
|
||||||
|
|
||||||
|
THISDIR = $(WXDIR)\samples\test
|
||||||
|
PROGRAM=test
|
||||||
|
|
||||||
|
OBJECTS = $(PROGRAM).obj
|
||||||
|
|
||||||
|
$(PROGRAM): $(PROGRAM).exe
|
||||||
|
|
||||||
|
all: wx $(PROGRAM).exe
|
||||||
|
|
||||||
|
wx:
|
||||||
|
cd $(WXDIR)\src\msw
|
||||||
|
nmake -f makefile.nt FINAL=$(FINAL)
|
||||||
|
cd $(THISDIR)
|
||||||
|
|
||||||
|
wxclean:
|
||||||
|
cd $(WXDIR)\src\msw
|
||||||
|
nmake -f makefile.nt clean
|
||||||
|
cd $(THISDIR)
|
||||||
|
|
||||||
|
$(PROGRAM).exe: $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(PROGRAM).res
|
||||||
|
$(link) @<<
|
||||||
|
-out:$(PROGRAM).exe
|
||||||
|
$(LINKFLAGS)
|
||||||
|
$(DUMMYOBJ) $(OBJECTS) $(PROGRAM).res
|
||||||
|
$(LIBS)
|
||||||
|
<<
|
||||||
|
|
||||||
|
|
||||||
|
$(PROGRAM).obj: $(PROGRAM).$(SRCSUFF) $(DUMMYOBJ)
|
||||||
|
$(cc) @<<
|
||||||
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
||||||
|
<<
|
||||||
|
|
||||||
|
$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc
|
||||||
|
$(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
-erase *.obj
|
||||||
|
-erase *.exe
|
||||||
|
-erase *.res
|
||||||
|
-erase *.map
|
||||||
|
-erase *.sbr
|
||||||
|
-erase *.pdb
|
321
samples/proplist/test.cpp
Normal file
@@ -0,0 +1,321 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: test.cpp
|
||||||
|
// Purpose: Property sheet test implementation
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created: 04/01/98
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Julian Smart
|
||||||
|
// Licence: wxWindows license
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma implementation "test.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// For compilers that support precompilation, includes "wx/wx.h".
|
||||||
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
#pragma hdrstop
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WX_PRECOMP
|
||||||
|
#include "wx/wx.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "test.h"
|
||||||
|
|
||||||
|
// A macro needed for some compilers (AIX) that need 'main' to be defined
|
||||||
|
// in the application itself.
|
||||||
|
IMPLEMENT_WXWIN_MAIN
|
||||||
|
|
||||||
|
IMPLEMENT_APP(MyApp)
|
||||||
|
|
||||||
|
wxPropertyValidatorRegistry myListValidatorRegistry;
|
||||||
|
wxPropertyValidatorRegistry myFormValidatorRegistry;
|
||||||
|
|
||||||
|
MyApp::MyApp(void)
|
||||||
|
{
|
||||||
|
m_childWindow = NULL;
|
||||||
|
m_mainFrame = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MyApp::OnInit(void)
|
||||||
|
{
|
||||||
|
RegisterValidators();
|
||||||
|
|
||||||
|
// Create the main frame window
|
||||||
|
m_mainFrame = new MyFrame(NULL, "wxPropertySheet Demo", wxPoint(0, 0), wxSize(300, 400), wxDEFAULT_FRAME);
|
||||||
|
|
||||||
|
// Make a menubar
|
||||||
|
wxMenu *file_menu = new wxMenu;
|
||||||
|
file_menu->Append(PROPERTY_TEST_DIALOG_LIST, "Test property list &dialog...");
|
||||||
|
file_menu->Append(PROPERTY_TEST_FRAME_LIST, "Test property list &frame...");
|
||||||
|
file_menu->AppendSeparator();
|
||||||
|
file_menu->Append(PROPERTY_TEST_DIALOG_FORM, "Test property form d&ialog...");
|
||||||
|
file_menu->Append(PROPERTY_TEST_FRAME_FORM, "Test property form f&rame...");
|
||||||
|
file_menu->AppendSeparator();
|
||||||
|
file_menu->Append(PROPERTY_QUIT, "E&xit");
|
||||||
|
|
||||||
|
wxMenu *help_menu = new wxMenu;
|
||||||
|
help_menu->Append(PROPERTY_ABOUT, "&About");
|
||||||
|
|
||||||
|
wxMenuBar *menu_bar = new wxMenuBar;
|
||||||
|
|
||||||
|
menu_bar->Append(file_menu, "&File");
|
||||||
|
menu_bar->Append(help_menu, "&Help");
|
||||||
|
|
||||||
|
// Associate the menu bar with the frame
|
||||||
|
m_mainFrame->SetMenuBar(menu_bar);
|
||||||
|
|
||||||
|
m_mainFrame->Centre(wxBOTH);
|
||||||
|
m_mainFrame->Show(TRUE);
|
||||||
|
|
||||||
|
SetTopWindow(m_mainFrame);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
||||||
|
EVT_CLOSE(MyFrame::OnCloseWindow)
|
||||||
|
EVT_MENU(PROPERTY_QUIT, MyFrame::OnQuit)
|
||||||
|
EVT_MENU(PROPERTY_ABOUT, MyFrame::OnAbout)
|
||||||
|
EVT_MENU(PROPERTY_TEST_DIALOG_LIST, MyFrame::OnDialogList)
|
||||||
|
EVT_MENU(PROPERTY_TEST_FRAME_LIST, MyFrame::OnFrameList)
|
||||||
|
EVT_MENU(PROPERTY_TEST_DIALOG_FORM, MyFrame::OnDialogForm)
|
||||||
|
EVT_MENU(PROPERTY_TEST_FRAME_FORM, MyFrame::OnFrameForm)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
// Define my frame constructor
|
||||||
|
MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size, long type):
|
||||||
|
wxFrame(frame, -1, title, pos, size, type)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define the behaviour for the frame closing
|
||||||
|
// - must delete all frames except for the main one.
|
||||||
|
void MyFrame::OnCloseWindow(wxCloseEvent& event)
|
||||||
|
{
|
||||||
|
if (wxGetApp().m_childWindow)
|
||||||
|
{
|
||||||
|
wxGetApp().m_childWindow->Close(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
Destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnQuit(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
Close(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnDialogList(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
wxGetApp().PropertyListTest(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnFrameList(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
wxGetApp().PropertyListTest(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnDialogForm(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
wxGetApp().PropertyFormTest(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnFrameForm(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
wxGetApp().PropertyFormTest(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnAbout(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
(void)wxMessageBox("Property Classes Demo\nAuthor: Julian Smart", "About Property Classes Test");
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyApp::RegisterValidators(void)
|
||||||
|
{
|
||||||
|
myListValidatorRegistry.RegisterValidator((wxString)"real", new wxRealListValidator);
|
||||||
|
myListValidatorRegistry.RegisterValidator((wxString)"string", new wxStringListValidator);
|
||||||
|
myListValidatorRegistry.RegisterValidator((wxString)"integer", new wxIntegerListValidator);
|
||||||
|
myListValidatorRegistry.RegisterValidator((wxString)"bool", new wxBoolListValidator);
|
||||||
|
myListValidatorRegistry.RegisterValidator((wxString)"stringlist", new wxListOfStringsListValidator);
|
||||||
|
|
||||||
|
myFormValidatorRegistry.RegisterValidator((wxString)"real", new wxRealFormValidator);
|
||||||
|
myFormValidatorRegistry.RegisterValidator((wxString)"string", new wxStringFormValidator);
|
||||||
|
myFormValidatorRegistry.RegisterValidator((wxString)"integer", new wxIntegerFormValidator);
|
||||||
|
myFormValidatorRegistry.RegisterValidator((wxString)"bool", new wxBoolFormValidator);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyApp::PropertyListTest(bool useDialog)
|
||||||
|
{
|
||||||
|
if (m_childWindow)
|
||||||
|
return;
|
||||||
|
|
||||||
|
wxPropertySheet *sheet = new wxPropertySheet;
|
||||||
|
|
||||||
|
sheet->AddProperty(new wxProperty("fred", 1.0, "real"));
|
||||||
|
sheet->AddProperty(new wxProperty("tough choice", (bool)TRUE, "bool"));
|
||||||
|
sheet->AddProperty(new wxProperty("ian", (long)45, "integer", new wxIntegerListValidator(-50, 50)));
|
||||||
|
sheet->AddProperty(new wxProperty("bill", 25.0, "real", new wxRealListValidator(0.0, 100.0)));
|
||||||
|
sheet->AddProperty(new wxProperty("julian", "one", "string"));
|
||||||
|
sheet->AddProperty(new wxProperty("bitmap", "none", "string", new wxFilenameListValidator("Select a bitmap file", "*.bmp")));
|
||||||
|
wxStringList *strings = new wxStringList("one", "two", "three", NULL);
|
||||||
|
sheet->AddProperty(new wxProperty("constrained", "one", "string", new wxStringListValidator(strings)));
|
||||||
|
|
||||||
|
wxStringList *strings2 = new wxStringList("earth", "fire", "wind", "water", NULL);
|
||||||
|
sheet->AddProperty(new wxProperty("string list", strings2, "stringlist"));
|
||||||
|
|
||||||
|
wxPropertyListView *view =
|
||||||
|
new wxPropertyListView(NULL,
|
||||||
|
wxPROP_BUTTON_CHECK_CROSS|wxPROP_DYNAMIC_VALUE_FIELD|wxPROP_PULLDOWN|wxPROP_SHOWVALUES);
|
||||||
|
|
||||||
|
wxDialog *propDialog = NULL;
|
||||||
|
wxPropertyListFrame *propFrame = NULL;
|
||||||
|
if (useDialog)
|
||||||
|
{
|
||||||
|
propDialog = new PropListDialog(view, NULL, "Property Sheet Test",
|
||||||
|
wxPoint(-1, -1), wxSize(400, 500), wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODELESS);
|
||||||
|
m_childWindow = propDialog;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
propFrame = new PropListFrame(view, NULL, "Property Sheet Test", wxPoint(-1, -1), wxSize(400, 500));
|
||||||
|
m_childWindow = propFrame;
|
||||||
|
}
|
||||||
|
|
||||||
|
view->AddRegistry(&myListValidatorRegistry);
|
||||||
|
|
||||||
|
if (useDialog)
|
||||||
|
{
|
||||||
|
view->ShowView(sheet, propDialog);
|
||||||
|
propDialog->Centre(wxBOTH);
|
||||||
|
propDialog->Show(TRUE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
propFrame->Initialize();
|
||||||
|
view->ShowView(sheet, propFrame->GetPropertyPanel());
|
||||||
|
|
||||||
|
propFrame->Centre(wxBOTH);
|
||||||
|
propFrame->Show(TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyApp::PropertyFormTest(bool useDialog)
|
||||||
|
{
|
||||||
|
if (m_childWindow)
|
||||||
|
return;
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
wxPropertySheet *sheet = new wxPropertySheet;
|
||||||
|
|
||||||
|
sheet->AddProperty(new wxProperty("fred", 25.0, "real", new wxRealFormValidator(0.0, 100.0)));
|
||||||
|
sheet->AddProperty(new wxProperty("tough choice", (bool)TRUE, "bool"));
|
||||||
|
sheet->AddProperty(new wxProperty("ian", (long)45, "integer", new wxIntegerFormValidator(-50, 50)));
|
||||||
|
sheet->AddProperty(new wxProperty("julian", "one", "string"));
|
||||||
|
wxStringList *strings = new wxStringList("one", "two", "three", NULL);
|
||||||
|
sheet->AddProperty(new wxProperty("constrained", "one", "string", new wxStringFormValidator(strings)));
|
||||||
|
|
||||||
|
wxPropertyFormView *view = new wxPropertyFormView(NULL);
|
||||||
|
|
||||||
|
wxDialogBox *propDialog = NULL;
|
||||||
|
wxPropertyFormFrame *propFrame = NULL;
|
||||||
|
if (useDialog)
|
||||||
|
{
|
||||||
|
propDialog = new PropFormDialog(view, NULL, "Property Form Test", wxPoint(-1, -1), wxSize(380, 250),
|
||||||
|
wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL);
|
||||||
|
m_childWindow = propDialog;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
propFrame = new PropFormFrame(view, NULL, "Property Form Test", wxPoint(-1, -1), wxSize(280, 250));
|
||||||
|
propFrame->Initialize();
|
||||||
|
m_childWindow = propFrame;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxPanel *panel = propDialog ? propDialog : propFrame->GetPropertyPanel();
|
||||||
|
panel->SetLabelPosition(wxVERTICAL);
|
||||||
|
|
||||||
|
// Add items to the panel
|
||||||
|
|
||||||
|
(void) new wxButton(panel, -1, "OK", -1, -1, -1, -1, 0, "ok");
|
||||||
|
(void) new wxButton(panel, -1, "Cancel", -1, -1, 80, -1, 0, "cancel");
|
||||||
|
(void) new wxButton(panel, -1, "Update", -1, -1, 80, -1, 0, "update");
|
||||||
|
(void) new wxButton(panel, -1, "Revert", -1, -1, -1, -1, 0, "revert");
|
||||||
|
panel->NewLine();
|
||||||
|
|
||||||
|
// The name of this text item matches the "fred" property
|
||||||
|
(void) new wxText(panel, -1, "Fred", "", -1, -1, 90, -1, 0, "fred");
|
||||||
|
(void) new wxCheckBox(panel, -1, "Yes or no", -1, -1, -1, -1, 0, "tough choice");
|
||||||
|
(void) new wxSlider(panel, -1, "Scale", 0, -50, 50, 150, -1, -1, wxHORIZONTAL, "ian");
|
||||||
|
panel->NewLine();
|
||||||
|
(void) new wxListBox(panel, -1, "Constrained", wxSINGLE, -1, -1, 100, 90, 0, NULL, 0, "constrained");
|
||||||
|
|
||||||
|
view->AddRegistry(&myFormValidatorRegistry);
|
||||||
|
|
||||||
|
if (useDialog)
|
||||||
|
{
|
||||||
|
view->ShowView(sheet, propDialog);
|
||||||
|
view->AssociateNames();
|
||||||
|
view->TransferToDialog();
|
||||||
|
propDialog->Centre(wxBOTH);
|
||||||
|
propDialog->Show(TRUE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
view->ShowView(sheet, propFrame->GetPropertyPanel());
|
||||||
|
view->AssociateNames();
|
||||||
|
view->TransferToDialog();
|
||||||
|
propFrame->Centre(wxBOTH);
|
||||||
|
propFrame->Show(TRUE);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE(PropListFrame, wxPropertyListFrame)
|
||||||
|
EVT_CLOSE(PropListFrame::OnCloseWindow)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
void PropListFrame::OnCloseWindow(wxCloseEvent& event)
|
||||||
|
{
|
||||||
|
wxGetApp().m_childWindow = NULL;
|
||||||
|
|
||||||
|
wxPropertyListFrame::OnCloseWindow(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE(PropListDialog, wxPropertyListDialog)
|
||||||
|
EVT_CLOSE(PropListDialog::OnCloseWindow)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
void PropListDialog::OnCloseWindow(wxCloseEvent& event)
|
||||||
|
{
|
||||||
|
wxGetApp().m_childWindow = NULL;
|
||||||
|
|
||||||
|
wxPropertyListDialog::OnCloseWindow(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE(PropFormFrame, wxPropertyFormFrame)
|
||||||
|
EVT_CLOSE(PropFormFrame::OnCloseWindow)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
void PropFormFrame::OnCloseWindow(wxCloseEvent& event)
|
||||||
|
{
|
||||||
|
wxGetApp().m_childWindow = NULL;
|
||||||
|
|
||||||
|
wxPropertyFormFrame::OnCloseWindow(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE(PropFormDialog, wxPropertyFormDialog)
|
||||||
|
EVT_CLOSE(PropFormDialog::OnCloseWindow)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
void PropFormDialog::OnCloseWindow(wxCloseEvent& event)
|
||||||
|
{
|
||||||
|
wxGetApp().m_childWindow = NULL;
|
||||||
|
|
||||||
|
wxPropertyFormDialog::OnCloseWindow(event);
|
||||||
|
}
|
||||||
|
|
8
samples/proplist/test.def
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
NAME TEST
|
||||||
|
DESCRIPTION 'wxProperty test'
|
||||||
|
EXETYPE WINDOWS
|
||||||
|
STUB 'WINSTUB.EXE'
|
||||||
|
CODE PRELOAD MOVEABLE DISCARDABLE
|
||||||
|
DATA PRELOAD MOVEABLE MULTIPLE
|
||||||
|
HEAPSIZE 1024
|
||||||
|
STACKSIZE 8192
|
127
samples/proplist/test.h
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: test.h
|
||||||
|
// Purpose: Property sheet sample
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created: 04/01/98
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Julian Smart
|
||||||
|
// Licence: wxWindows license
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface "test.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _PROPTEST_H_
|
||||||
|
#define _PROPTEST_H_
|
||||||
|
|
||||||
|
#include "wx/proplist.h"
|
||||||
|
#include "wx/propform.h"
|
||||||
|
|
||||||
|
class MyChild;
|
||||||
|
|
||||||
|
// Define a new application
|
||||||
|
class MyFrame;
|
||||||
|
class MyApp: public wxApp
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MyApp(void);
|
||||||
|
bool OnInit(void);
|
||||||
|
|
||||||
|
void RegisterValidators(void);
|
||||||
|
void PropertyListTest(bool useDialog);
|
||||||
|
void PropertyFormTest(bool useDialog);
|
||||||
|
|
||||||
|
MyFrame* m_mainFrame;
|
||||||
|
wxWindow* m_childWindow;
|
||||||
|
};
|
||||||
|
|
||||||
|
DECLARE_APP(MyApp)
|
||||||
|
|
||||||
|
// Define a new frame
|
||||||
|
class MyFrame: public wxFrame
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size, long type);
|
||||||
|
|
||||||
|
void OnCloseWindow(wxCloseEvent& event);
|
||||||
|
void OnQuit(wxCommandEvent& event);
|
||||||
|
void OnDialogList(wxCommandEvent& event);
|
||||||
|
void OnFrameList(wxCommandEvent& event);
|
||||||
|
void OnDialogForm(wxCommandEvent& event);
|
||||||
|
void OnFrameForm(wxCommandEvent& event);
|
||||||
|
void OnAbout(wxCommandEvent& event);
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
|
class PropListFrame: public wxPropertyListFrame
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PropListFrame(wxPropertyListView *v, wxFrame *parent, const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_FRAME, const wxString& name = "frame"):
|
||||||
|
wxPropertyListFrame(v, parent, title, pos, size, style, name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnCloseWindow(wxCloseEvent& event);
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
|
class PropListDialog: public wxPropertyListDialog
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PropListDialog(wxPropertyListView *v, wxWindow *parent, const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox"):
|
||||||
|
wxPropertyListDialog(v, parent, title, pos, size, style, name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnCloseWindow(wxCloseEvent& event);
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
|
class PropFormFrame: public wxPropertyFormFrame
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PropFormFrame(wxPropertyFormView *v, wxFrame *parent, const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_FRAME, const wxString& name = "frame"):
|
||||||
|
wxPropertyFormFrame(v, parent, title, pos, size, style, name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnCloseWindow(wxCloseEvent& event);
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
|
class PropFormDialog: public wxPropertyFormDialog
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PropFormDialog(wxPropertyFormView *v, wxWindow *parent, const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox"):
|
||||||
|
wxPropertyFormDialog(v, parent, title, pos, size, style, name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnCloseWindow(wxCloseEvent& event);
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
|
#define PROPERTY_QUIT 1
|
||||||
|
#define PROPERTY_ABOUT 2
|
||||||
|
#define PROPERTY_TEST_DIALOG_LIST 3
|
||||||
|
#define PROPERTY_TEST_FRAME_LIST 4
|
||||||
|
#define PROPERTY_TEST_DIALOG_FORM 5
|
||||||
|
#define PROPERTY_TEST_FRAME_FORM 6
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
BIN
samples/proplist/tick.bmp
Normal file
After Width: | Height: | Size: 198 B |
@@ -1329,7 +1329,8 @@ void wxTable::SetColDefs (int index, char *fieldName, int dataType, void *pData,
|
|||||||
int cType, int size, bool keyField, bool upd,
|
int cType, int size, bool keyField, bool upd,
|
||||||
bool insAllow, bool derivedCol)
|
bool insAllow, bool derivedCol)
|
||||||
{
|
{
|
||||||
if (strlen(fieldName) > (uint)DB_MAX_COLUMN_NAME_LEN) // glt 4/21/97
|
// Please, no uint, it doesn't exist for VC++
|
||||||
|
if (strlen(fieldName) > (unsigned int) DB_MAX_COLUMN_NAME_LEN) // glt 4/21/97
|
||||||
{
|
{
|
||||||
strncpy (colDefs[index].ColName, fieldName, DB_MAX_COLUMN_NAME_LEN);
|
strncpy (colDefs[index].ColName, fieldName, DB_MAX_COLUMN_NAME_LEN);
|
||||||
colDefs[index].ColName[DB_MAX_COLUMN_NAME_LEN] = 0; // glt 10/23/97
|
colDefs[index].ColName[DB_MAX_COLUMN_NAME_LEN] = 0; // glt 10/23/97
|
||||||
|
1119
src/generic/prop.cpp
Normal file
743
src/generic/propform.cpp
Normal file
@@ -0,0 +1,743 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: propform.cpp
|
||||||
|
// Purpose: Property form classes
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created: 04/01/98
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Julian Smart
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma implementation "propform.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// For compilers that support precompilation, includes "wx/wx.h".
|
||||||
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
#pragma hdrstop
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WX_PRECOMP
|
||||||
|
#include "wx/wx.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#if wxUSE_IOSTREAMH
|
||||||
|
#if defined(__WXMSW__) && !defined(__GNUWIN32__)
|
||||||
|
#include <strstrea.h>
|
||||||
|
#else
|
||||||
|
#include <strstream.h>
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#include <strstream>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "wx/window.h"
|
||||||
|
#include "wx/utils.h"
|
||||||
|
#include "wx/list.h"
|
||||||
|
#include "wx/propform.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Property view
|
||||||
|
*/
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC_CLASS(wxPropertyFormView, wxPropertyView)
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE(wxPropertyFormView, wxPropertyView)
|
||||||
|
EVT_BUTTON(wxID_OK, wxPropertyFormView::OnOk)
|
||||||
|
EVT_BUTTON(wxID_CANCEL, wxPropertyFormView::OnCancel)
|
||||||
|
EVT_BUTTON(wxID_HELP, wxPropertyFormView::OnHelp)
|
||||||
|
EVT_BUTTON(wxID_PROP_REVERT, wxPropertyFormView::OnRevert)
|
||||||
|
EVT_BUTTON(wxID_PROP_UPDATE, wxPropertyFormView::OnUpdate)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
bool wxPropertyFormView::sm_dialogCancelled = FALSE;
|
||||||
|
|
||||||
|
wxPropertyFormView::wxPropertyFormView(wxWindow *propPanel, long flags):wxPropertyView(flags)
|
||||||
|
{
|
||||||
|
m_propertyWindow = propPanel;
|
||||||
|
m_managedWindow = NULL;
|
||||||
|
|
||||||
|
m_windowCloseButton = NULL;
|
||||||
|
m_windowCancelButton = NULL;
|
||||||
|
m_windowHelpButton = NULL;
|
||||||
|
|
||||||
|
m_detailedEditing = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxPropertyFormView::~wxPropertyFormView(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPropertyFormView::ShowView(wxPropertySheet *ps, wxWindow *panel)
|
||||||
|
{
|
||||||
|
m_propertySheet = ps;
|
||||||
|
|
||||||
|
AssociatePanel(panel);
|
||||||
|
// CreateControls();
|
||||||
|
// UpdatePropertyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update this view of the viewed object, called e.g. by
|
||||||
|
// the object itself.
|
||||||
|
bool wxPropertyFormView::OnUpdateView(void)
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPropertyFormView::Check(void)
|
||||||
|
{
|
||||||
|
if (!m_propertySheet)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
wxNode *node = m_propertySheet->GetProperties().First();
|
||||||
|
while (node)
|
||||||
|
{
|
||||||
|
wxProperty *prop = (wxProperty *)node->Data();
|
||||||
|
wxPropertyValidator *validator = FindPropertyValidator(prop);
|
||||||
|
if (validator && validator->IsKindOf(CLASSINFO(wxPropertyFormValidator)))
|
||||||
|
{
|
||||||
|
wxPropertyFormValidator *formValidator = (wxPropertyFormValidator *)validator;
|
||||||
|
if (!formValidator->OnCheckValue(prop, this, m_propertyWindow))
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
node = node->Next();
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPropertyFormView::TransferToPropertySheet(void)
|
||||||
|
{
|
||||||
|
if (!m_propertySheet)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
wxNode *node = m_propertySheet->GetProperties().First();
|
||||||
|
while (node)
|
||||||
|
{
|
||||||
|
wxProperty *prop = (wxProperty *)node->Data();
|
||||||
|
wxPropertyValidator *validator = FindPropertyValidator(prop);
|
||||||
|
if (validator && validator->IsKindOf(CLASSINFO(wxPropertyFormValidator)))
|
||||||
|
{
|
||||||
|
wxPropertyFormValidator *formValidator = (wxPropertyFormValidator *)validator;
|
||||||
|
formValidator->OnRetrieveValue(prop, this, m_propertyWindow);
|
||||||
|
}
|
||||||
|
node = node->Next();
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPropertyFormView::TransferToDialog(void)
|
||||||
|
{
|
||||||
|
if (!m_propertySheet)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
wxNode *node = m_propertySheet->GetProperties().First();
|
||||||
|
while (node)
|
||||||
|
{
|
||||||
|
wxProperty *prop = (wxProperty *)node->Data();
|
||||||
|
wxPropertyValidator *validator = FindPropertyValidator(prop);
|
||||||
|
if (validator && validator->IsKindOf(CLASSINFO(wxPropertyFormValidator)))
|
||||||
|
{
|
||||||
|
wxPropertyFormValidator *formValidator = (wxPropertyFormValidator *)validator;
|
||||||
|
formValidator->OnDisplayValue(prop, this, m_propertyWindow);
|
||||||
|
}
|
||||||
|
node = node->Next();
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPropertyFormView::AssociateNames(void)
|
||||||
|
{
|
||||||
|
if (!m_propertySheet || !m_propertyWindow)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
wxNode *node = m_propertyWindow->GetChildren().First();
|
||||||
|
while (node)
|
||||||
|
{
|
||||||
|
wxWindow *win = (wxWindow *)node->Data();
|
||||||
|
if (win->GetName() != "")
|
||||||
|
{
|
||||||
|
wxProperty *prop = m_propertySheet->GetProperty(win->GetName());
|
||||||
|
if (prop)
|
||||||
|
prop->SetWindow(win);
|
||||||
|
}
|
||||||
|
node = node->Next();
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool wxPropertyFormView::OnClose(void)
|
||||||
|
{
|
||||||
|
delete this;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPropertyFormView::OnOk(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
// Retrieve the value if any
|
||||||
|
if (!Check())
|
||||||
|
return;
|
||||||
|
|
||||||
|
sm_dialogCancelled = FALSE;
|
||||||
|
TransferToPropertySheet();
|
||||||
|
|
||||||
|
m_managedWindow->Close(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPropertyFormView::OnCancel(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
sm_dialogCancelled = TRUE;
|
||||||
|
|
||||||
|
m_managedWindow->Close(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPropertyFormView::OnHelp(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPropertyFormView::OnUpdate(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
if (Check())
|
||||||
|
TransferToPropertySheet();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPropertyFormView::OnRevert(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
TransferToDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPropertyFormView::OnCommand(wxWindow& win, wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
if (!m_propertySheet)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (win.GetName() == "")
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (strcmp(win.GetName(), "ok") == 0)
|
||||||
|
OnOk(event);
|
||||||
|
else if (strcmp(win.GetName(), "cancel") == 0)
|
||||||
|
OnCancel(event);
|
||||||
|
else if (strcmp(win.GetName(), "help") == 0)
|
||||||
|
OnHelp(event);
|
||||||
|
else if (strcmp(win.GetName(), "update") == 0)
|
||||||
|
OnUpdate(event);
|
||||||
|
else if (strcmp(win.GetName(), "revert") == 0)
|
||||||
|
OnRevert(event);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Find a validator to route the command to.
|
||||||
|
wxNode *node = m_propertySheet->GetProperties().First();
|
||||||
|
while (node)
|
||||||
|
{
|
||||||
|
wxProperty *prop = (wxProperty *)node->Data();
|
||||||
|
if (prop->GetWindow() && (prop->GetWindow() == &win))
|
||||||
|
{
|
||||||
|
wxPropertyValidator *validator = FindPropertyValidator(prop);
|
||||||
|
if (validator && validator->IsKindOf(CLASSINFO(wxPropertyFormValidator)))
|
||||||
|
{
|
||||||
|
wxPropertyFormValidator *formValidator = (wxPropertyFormValidator *)validator;
|
||||||
|
formValidator->OnCommand(prop, this, m_propertyWindow, event);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
node = node->Next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPropertyFormView::OnDoubleClick(wxControl *item)
|
||||||
|
{
|
||||||
|
if (!m_propertySheet)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Find a validator to route the command to.
|
||||||
|
wxNode *node = m_propertySheet->GetProperties().First();
|
||||||
|
while (node)
|
||||||
|
{
|
||||||
|
wxProperty *prop = (wxProperty *)node->Data();
|
||||||
|
if (prop->GetWindow() && ((wxControl *)prop->GetWindow() == item))
|
||||||
|
{
|
||||||
|
wxPropertyValidator *validator = FindPropertyValidator(prop);
|
||||||
|
if (validator && validator->IsKindOf(CLASSINFO(wxPropertyFormValidator)))
|
||||||
|
{
|
||||||
|
wxPropertyFormValidator *formValidator = (wxPropertyFormValidator *)validator;
|
||||||
|
formValidator->OnDoubleClick(prop, this, m_propertyWindow);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
node = node->Next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Property form dialog box
|
||||||
|
*/
|
||||||
|
|
||||||
|
IMPLEMENT_CLASS(wxPropertyFormDialog, wxDialog)
|
||||||
|
|
||||||
|
wxPropertyFormDialog::wxPropertyFormDialog(wxPropertyFormView *v, wxWindow *parent, const wxString& title,
|
||||||
|
const wxPoint& pos, const wxSize& size, long style, const wxString& name):
|
||||||
|
wxDialog(parent, -1, title, pos, size, style, name)
|
||||||
|
{
|
||||||
|
m_view = v;
|
||||||
|
m_view->AssociatePanel(this);
|
||||||
|
m_view->SetManagedWindow(this);
|
||||||
|
// SetAutoLayout(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPropertyFormDialog::OnClose(void)
|
||||||
|
{
|
||||||
|
if (m_view)
|
||||||
|
{
|
||||||
|
m_view->OnClose();
|
||||||
|
m_view = NULL;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPropertyFormDialog::OnDefaultAction(wxControl *item)
|
||||||
|
{
|
||||||
|
m_view->OnDoubleClick(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPropertyFormDialog::OnCommand(wxWindow& win, wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
if ( m_view )
|
||||||
|
m_view->OnCommand(win, event);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extend event processing to search the view's event table
|
||||||
|
bool wxPropertyFormDialog::ProcessEvent(wxEvent& event)
|
||||||
|
{
|
||||||
|
if ( !m_view || ! m_view->ProcessEvent(event) )
|
||||||
|
return wxEvtHandler::ProcessEvent(event);
|
||||||
|
else
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Property form panel
|
||||||
|
*/
|
||||||
|
|
||||||
|
IMPLEMENT_CLASS(wxPropertyFormPanel, wxPanel)
|
||||||
|
|
||||||
|
void wxPropertyFormPanel::OnDefaultAction(wxControl *item)
|
||||||
|
{
|
||||||
|
m_view->OnDoubleClick(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxPropertyFormPanel::OnCommand(wxWindow& win, wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
m_view->OnCommand(win, event);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extend event processing to search the view's event table
|
||||||
|
bool wxPropertyFormPanel::ProcessEvent(wxEvent& event)
|
||||||
|
{
|
||||||
|
if ( !m_view || ! m_view->ProcessEvent(event) )
|
||||||
|
return wxEvtHandler::ProcessEvent(event);
|
||||||
|
else
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Property frame
|
||||||
|
*/
|
||||||
|
|
||||||
|
IMPLEMENT_CLASS(wxPropertyFormFrame, wxFrame)
|
||||||
|
|
||||||
|
bool wxPropertyFormFrame::OnClose(void)
|
||||||
|
{
|
||||||
|
if (m_view)
|
||||||
|
return m_view->OnClose();
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxPanel *wxPropertyFormFrame::OnCreatePanel(wxFrame *parent, wxPropertyFormView *v)
|
||||||
|
{
|
||||||
|
return new wxPropertyFormPanel(v, parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPropertyFormFrame::Initialize(void)
|
||||||
|
{
|
||||||
|
m_propertyPanel = OnCreatePanel(this, m_view);
|
||||||
|
if (m_propertyPanel)
|
||||||
|
{
|
||||||
|
m_view->AssociatePanel(m_propertyPanel);
|
||||||
|
m_view->SetManagedWindow(this);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Property form specific validator
|
||||||
|
*/
|
||||||
|
|
||||||
|
IMPLEMENT_ABSTRACT_CLASS(wxPropertyFormValidator, wxPropertyValidator)
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default validators
|
||||||
|
*/
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC_CLASS(wxRealFormValidator, wxPropertyFormValidator)
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Real number form validator
|
||||||
|
///
|
||||||
|
bool wxRealFormValidator::OnCheckValue( wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *parentWindow)
|
||||||
|
{
|
||||||
|
if (m_realMin == 0.0 && m_realMax == 0.0)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
// The item used for viewing the real number: should be a text item.
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl)))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
wxString value(((wxTextCtrl *)m_propertyWindow)->GetValue());
|
||||||
|
|
||||||
|
float val = 0.0;
|
||||||
|
if (!StringToFloat(WXSTRINGCAST value, &val))
|
||||||
|
{
|
||||||
|
char buf[200];
|
||||||
|
sprintf(buf, "Value %s is not a valid real number!", (const char *)value);
|
||||||
|
wxMessageBox(buf, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (val < m_realMin || val > m_realMax)
|
||||||
|
{
|
||||||
|
char buf[200];
|
||||||
|
sprintf(buf, "Value must be a real number between %.2f and %.2f!", m_realMin, m_realMax);
|
||||||
|
wxMessageBox(buf, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxRealFormValidator::OnRetrieveValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow) )
|
||||||
|
{
|
||||||
|
// The item used for viewing the real number: should be a text item.
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl)))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
wxString value(((wxTextCtrl *)m_propertyWindow)->GetValue());
|
||||||
|
|
||||||
|
if (value.Length() == 0)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
float f = (float)atof((const char *)value);
|
||||||
|
property->GetValue() = f;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxRealFormValidator::OnDisplayValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow) )
|
||||||
|
{
|
||||||
|
// The item used for viewing the real number: should be a text item.
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl)))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
wxTextCtrl *textItem = (wxTextCtrl *)m_propertyWindow;
|
||||||
|
textItem->SetValue(FloatToString(property->GetValue().RealValue()));
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Integer validator
|
||||||
|
///
|
||||||
|
IMPLEMENT_DYNAMIC_CLASS(wxIntegerFormValidator, wxPropertyFormValidator)
|
||||||
|
|
||||||
|
bool wxIntegerFormValidator::OnCheckValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *parentWindow)
|
||||||
|
{
|
||||||
|
if (m_integerMin == 0.0 && m_integerMax == 0.0)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
// The item used for viewing the real number: should be a text item or a slider
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
long val = 0;
|
||||||
|
|
||||||
|
if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl)))
|
||||||
|
{
|
||||||
|
wxString value(((wxTextCtrl *)m_propertyWindow)->GetValue());
|
||||||
|
|
||||||
|
if (!StringToLong(WXSTRINGCAST value, &val))
|
||||||
|
{
|
||||||
|
char buf[200];
|
||||||
|
sprintf(buf, "Value %s is not a valid integer!", (const char *)value);
|
||||||
|
wxMessageBox(buf, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (m_propertyWindow->IsKindOf(CLASSINFO(wxSlider)))
|
||||||
|
{
|
||||||
|
val = (long)((wxSlider *)m_propertyWindow)->GetValue();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (val < m_integerMin || val > m_integerMax)
|
||||||
|
{
|
||||||
|
char buf[200];
|
||||||
|
sprintf(buf, "Value must be an integer between %ld and %ld!", m_integerMin, m_integerMax);
|
||||||
|
wxMessageBox(buf, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxIntegerFormValidator::OnRetrieveValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow))
|
||||||
|
{
|
||||||
|
// The item used for viewing the real number: should be a text item or a slider
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl)))
|
||||||
|
{
|
||||||
|
wxString value(((wxTextCtrl *)m_propertyWindow)->GetValue());
|
||||||
|
|
||||||
|
if (value.Length() == 0)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
long i = atol((const char *)value);
|
||||||
|
property->GetValue() = i;
|
||||||
|
}
|
||||||
|
else if (m_propertyWindow->IsKindOf(CLASSINFO(wxSlider)))
|
||||||
|
{
|
||||||
|
property->GetValue() = (long)((wxSlider *)m_propertyWindow)->GetValue();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxIntegerFormValidator::OnDisplayValue( wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow))
|
||||||
|
{
|
||||||
|
// The item used for viewing the real number: should be a text item or a slider
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl)))
|
||||||
|
{
|
||||||
|
wxTextCtrl *textItem = (wxTextCtrl *)m_propertyWindow;
|
||||||
|
textItem->SetValue(LongToString(property->GetValue().IntegerValue()));
|
||||||
|
}
|
||||||
|
else if (m_propertyWindow->IsKindOf(CLASSINFO(wxSlider)))
|
||||||
|
{
|
||||||
|
((wxSlider *)m_propertyWindow)->SetValue((int)property->GetValue().IntegerValue());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Boolean validator
|
||||||
|
///
|
||||||
|
IMPLEMENT_DYNAMIC_CLASS(wxBoolFormValidator, wxPropertyFormValidator)
|
||||||
|
|
||||||
|
bool wxBoolFormValidator::OnCheckValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow))
|
||||||
|
{
|
||||||
|
// The item used for viewing the boolean: should be a checkbox
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxCheckBox)))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxBoolFormValidator::OnRetrieveValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow) )
|
||||||
|
{
|
||||||
|
// The item used for viewing the boolean: should be a checkbox.
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxCheckBox)))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
wxCheckBox *checkBox = (wxCheckBox *)m_propertyWindow;
|
||||||
|
|
||||||
|
property->GetValue() = (bool)checkBox->GetValue();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxBoolFormValidator::OnDisplayValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow))
|
||||||
|
{
|
||||||
|
// The item used for viewing the boolean: should be a checkbox.
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxCheckBox)))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
wxCheckBox *checkBox = (wxCheckBox *)m_propertyWindow;
|
||||||
|
checkBox->SetValue((bool)property->GetValue().BoolValue());
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// String validator
|
||||||
|
///
|
||||||
|
IMPLEMENT_DYNAMIC_CLASS(wxStringFormValidator, wxPropertyFormValidator)
|
||||||
|
|
||||||
|
wxStringFormValidator::wxStringFormValidator(wxStringList *list, long flags):
|
||||||
|
wxPropertyFormValidator(flags)
|
||||||
|
{
|
||||||
|
m_strings = list;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxStringFormValidator::OnCheckValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *parentWindow )
|
||||||
|
{
|
||||||
|
if (!m_strings)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
// The item used for viewing the string: should be a text item, choice item or listbox.
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow)
|
||||||
|
return FALSE;
|
||||||
|
if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl)))
|
||||||
|
{
|
||||||
|
wxTextCtrl *text = (wxTextCtrl *)m_propertyWindow;
|
||||||
|
if (!m_strings->Member(text->GetValue()))
|
||||||
|
{
|
||||||
|
wxString s("Value ");
|
||||||
|
s += text->GetValue();
|
||||||
|
s += " is not valid.";
|
||||||
|
wxMessageBox(s, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Any other item constrains the string value,
|
||||||
|
// so we don't have to check it.
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxStringFormValidator::OnRetrieveValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow) )
|
||||||
|
{
|
||||||
|
// The item used for viewing the string: should be a text item, choice item or listbox.
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow)
|
||||||
|
return FALSE;
|
||||||
|
if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl)))
|
||||||
|
{
|
||||||
|
wxTextCtrl *text = (wxTextCtrl *)m_propertyWindow;
|
||||||
|
property->GetValue() = text->GetValue();
|
||||||
|
}
|
||||||
|
else if (m_propertyWindow->IsKindOf(CLASSINFO(wxListBox)))
|
||||||
|
{
|
||||||
|
wxListBox *lbox = (wxListBox *)m_propertyWindow;
|
||||||
|
if (lbox->GetSelection() > -1)
|
||||||
|
property->GetValue() = lbox->GetStringSelection();
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
else if (m_propertyWindow->IsKindOf(CLASSINFO(wxRadioBox)))
|
||||||
|
{
|
||||||
|
wxRadioBox *rbox = (wxRadioBox *)m_propertyWindow;
|
||||||
|
int n = 0;
|
||||||
|
if ((n = rbox->GetSelection()) > -1)
|
||||||
|
property->GetValue() = rbox->GetString(n);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
else if (m_propertyWindow->IsKindOf(CLASSINFO(wxChoice)))
|
||||||
|
{
|
||||||
|
wxChoice *choice = (wxChoice *)m_propertyWindow;
|
||||||
|
if (choice->GetSelection() > -1)
|
||||||
|
property->GetValue() = choice->GetStringSelection();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxStringFormValidator::OnDisplayValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view),
|
||||||
|
wxWindow *WXUNUSED(parentWindow) )
|
||||||
|
{
|
||||||
|
// The item used for viewing the string: should be a text item, choice item or listbox.
|
||||||
|
wxWindow *m_propertyWindow = property->GetWindow();
|
||||||
|
if (!m_propertyWindow)
|
||||||
|
return FALSE;
|
||||||
|
if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl)))
|
||||||
|
{
|
||||||
|
wxTextCtrl *text = (wxTextCtrl *)m_propertyWindow;
|
||||||
|
text->SetValue(property->GetValue().StringValue());
|
||||||
|
}
|
||||||
|
else if (m_propertyWindow->IsKindOf(CLASSINFO(wxListBox)))
|
||||||
|
{
|
||||||
|
wxListBox *lbox = (wxListBox *)m_propertyWindow;
|
||||||
|
if (lbox->Number() == 0 && m_strings)
|
||||||
|
{
|
||||||
|
// Try to initialize the listbox from 'strings'
|
||||||
|
wxNode *node = m_strings->First();
|
||||||
|
while (node)
|
||||||
|
{
|
||||||
|
char *s = (char *)node->Data();
|
||||||
|
lbox->Append(s);
|
||||||
|
node = node->Next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lbox->SetStringSelection(property->GetValue().StringValue());
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
else if (m_propertyWindow->IsKindOf(CLASSINFO(wxRadioBox)))
|
||||||
|
{
|
||||||
|
wxRadioBox *rbox = (wxRadioBox *)m_propertyWindow;
|
||||||
|
rbox->SetStringSelection(property->GetValue().StringValue());
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
else if (m_propertyWindow->IsKindOf(CLASSINFO(wxChoice)))
|
||||||
|
{
|
||||||
|
wxChoice *choice = (wxChoice *)m_propertyWindow;
|
||||||
|
#ifndef __XVIEW__
|
||||||
|
if (choice->Number() == 0 && m_strings)
|
||||||
|
{
|
||||||
|
// Try to initialize the choice item from 'strings'
|
||||||
|
// XView doesn't allow this kind of thing.
|
||||||
|
wxNode *node = m_strings->First();
|
||||||
|
while (node)
|
||||||
|
{
|
||||||
|
char *s = (char *)node->Data();
|
||||||
|
choice->Append(s);
|
||||||
|
node = node->Next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
choice->SetStringSelection(property->GetValue().StringValue());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
1948
src/generic/proplist.cpp
Normal file
BIN
src/make_cw.mcp
@@ -146,6 +146,9 @@ LIB_CPP_SRC=\
|
|||||||
../generic/panelg.cpp \
|
../generic/panelg.cpp \
|
||||||
../generic/printps.cpp \
|
../generic/printps.cpp \
|
||||||
../generic/prntdlgg.cpp \
|
../generic/prntdlgg.cpp \
|
||||||
|
../generic/prop.cpp \
|
||||||
|
../generic/propform.cpp \
|
||||||
|
../generic/proplist.cpp \
|
||||||
../generic/sashwin.cpp \
|
../generic/sashwin.cpp \
|
||||||
../generic/scrolwin.cpp \
|
../generic/scrolwin.cpp \
|
||||||
../generic/splitter.cpp \
|
../generic/splitter.cpp \
|
||||||
|
@@ -76,6 +76,9 @@ GENERICOBJS= \
|
|||||||
$(MSWDIR)\imaglist.obj \
|
$(MSWDIR)\imaglist.obj \
|
||||||
$(MSWDIR)\laywin.obj \
|
$(MSWDIR)\laywin.obj \
|
||||||
$(MSWDIR)\panelg.obj \
|
$(MSWDIR)\panelg.obj \
|
||||||
|
$(MSWDIR)\prop.obj \
|
||||||
|
$(MSWDIR)\proplist.obj \
|
||||||
|
$(MSWDIR)\propform.obj \
|
||||||
$(MSWDIR)\sashwin.obj \
|
$(MSWDIR)\sashwin.obj \
|
||||||
$(MSWDIR)\scrolwin.obj \
|
$(MSWDIR)\scrolwin.obj \
|
||||||
$(MSWDIR)\splitter.obj \
|
$(MSWDIR)\splitter.obj \
|
||||||
@@ -606,6 +609,12 @@ $(MSWDIR)\msgdlgg.obj: $(GENDIR)\msgdlgg.$(SRCSUFF)
|
|||||||
|
|
||||||
$(MSWDIR)\panelg.obj: $(GENDIR)\panelg.$(SRCSUFF)
|
$(MSWDIR)\panelg.obj: $(GENDIR)\panelg.$(SRCSUFF)
|
||||||
|
|
||||||
|
$(MSWDIR)\prop.obj: $(GENDIR)\prop.$(SRCSUFF)
|
||||||
|
|
||||||
|
$(MSWDIR)\proplist.obj: $(GENDIR)\proplist.$(SRCSUFF)
|
||||||
|
|
||||||
|
$(MSWDIR)\propform.obj: $(GENDIR)\propform.$(SRCSUFF)
|
||||||
|
|
||||||
$(MSWDIR)\printps.obj: $(GENDIR)\printps.$(SRCSUFF)
|
$(MSWDIR)\printps.obj: $(GENDIR)\printps.$(SRCSUFF)
|
||||||
|
|
||||||
$(MSWDIR)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF)
|
$(MSWDIR)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF)
|
||||||
|
@@ -80,6 +80,9 @@ GENERICOBJS= \
|
|||||||
$(MSWDIR)\msgdlgg.obj \
|
$(MSWDIR)\msgdlgg.obj \
|
||||||
$(MSWDIR)\notebook.obj \
|
$(MSWDIR)\notebook.obj \
|
||||||
$(MSWDIR)\panelg.obj \
|
$(MSWDIR)\panelg.obj \
|
||||||
|
$(MSWDIR)\prop.obj \
|
||||||
|
$(MSWDIR)\propform.obj \
|
||||||
|
$(MSWDIR)\proplist.obj \
|
||||||
$(MSWDIR)\sashwin.obj \
|
$(MSWDIR)\sashwin.obj \
|
||||||
$(MSWDIR)\scrolwin.obj \
|
$(MSWDIR)\scrolwin.obj \
|
||||||
$(MSWDIR)\splitter.obj \
|
$(MSWDIR)\splitter.obj \
|
||||||
@@ -592,6 +595,12 @@ $(MSWDIR)\printps.obj: $(GENDIR)\printps.$(SRCSUFF)
|
|||||||
|
|
||||||
$(MSWDIR)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF)
|
$(MSWDIR)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF)
|
||||||
|
|
||||||
|
$(MSWDIR)\prop.obj: $(GENDIR)\prop.$(SRCSUFF)
|
||||||
|
|
||||||
|
$(MSWDIR)\proplist.obj: $(GENDIR)\proplist.$(SRCSUFF)
|
||||||
|
|
||||||
|
$(MSWDIR)\propform.obj: $(GENDIR)\propform.$(SRCSUFF)
|
||||||
|
|
||||||
$(MSWDIR)\sashwin.obj: $(GENDIR)\sashwin.$(SRCSUFF)
|
$(MSWDIR)\sashwin.obj: $(GENDIR)\sashwin.$(SRCSUFF)
|
||||||
|
|
||||||
$(MSWDIR)\scrolwin.obj: $(GENDIR)\scrolwin.$(SRCSUFF)
|
$(MSWDIR)\scrolwin.obj: $(GENDIR)\scrolwin.$(SRCSUFF)
|
||||||
|
@@ -58,6 +58,9 @@ GENERICOBJS= \
|
|||||||
$(GENDIR)\listctrl.obj \
|
$(GENDIR)\listctrl.obj \
|
||||||
$(GENDIR)\notebook.obj \
|
$(GENDIR)\notebook.obj \
|
||||||
$(GENDIR)\panelg.obj \
|
$(GENDIR)\panelg.obj \
|
||||||
|
$(GENDIR)\prop.obj \
|
||||||
|
$(GENDIR)\propform.obj \
|
||||||
|
$(GENDIR)\proplist.obj \
|
||||||
$(GENDIR)\scrolwin.obj \
|
$(GENDIR)\scrolwin.obj \
|
||||||
$(GENDIR)\splitter.obj \
|
$(GENDIR)\splitter.obj \
|
||||||
$(GENDIR)\statusbr.obj \
|
$(GENDIR)\statusbr.obj \
|
||||||
@@ -990,6 +993,21 @@ $(GENDIR)/prntdlgg.obj: $*.$(SRCSUFF)
|
|||||||
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
|
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
|
||||||
<<
|
<<
|
||||||
|
|
||||||
|
$(GENDIR)/prop.obj: $*.$(SRCSUFF)
|
||||||
|
cl @<<
|
||||||
|
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
|
||||||
|
<<
|
||||||
|
|
||||||
|
$(GENDIR)/propform.obj: $*.$(SRCSUFF)
|
||||||
|
cl @<<
|
||||||
|
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
|
||||||
|
<<
|
||||||
|
|
||||||
|
$(GENDIR)/proplist.obj: $*.$(SRCSUFF)
|
||||||
|
cl @<<
|
||||||
|
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
|
||||||
|
<<
|
||||||
|
|
||||||
$(GENDIR)/scrolwin.obj: $*.$(SRCSUFF)
|
$(GENDIR)/scrolwin.obj: $*.$(SRCSUFF)
|
||||||
cl @<<
|
cl @<<
|
||||||
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
|
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
|
||||||
|
@@ -66,6 +66,9 @@ GENERICOBJS= \
|
|||||||
$(GENDIR)/laywin.$(OBJSUFF) \
|
$(GENDIR)/laywin.$(OBJSUFF) \
|
||||||
$(GENDIR)/msgdlgg.$(OBJSUFF) \
|
$(GENDIR)/msgdlgg.$(OBJSUFF) \
|
||||||
$(GENDIR)/panelg.$(OBJSUFF) \
|
$(GENDIR)/panelg.$(OBJSUFF) \
|
||||||
|
$(GENDIR)/prop.$(OBJSUFF) \
|
||||||
|
$(GENDIR)/propform.$(OBJSUFF) \
|
||||||
|
$(GENDIR)/proplist.$(OBJSUFF) \
|
||||||
$(GENDIR)/sashwin.$(OBJSUFF) \
|
$(GENDIR)/sashwin.$(OBJSUFF) \
|
||||||
$(GENDIR)/scrolwin.$(OBJSUFF) \
|
$(GENDIR)/scrolwin.$(OBJSUFF) \
|
||||||
$(GENDIR)/splitter.$(OBJSUFF) \
|
$(GENDIR)/splitter.$(OBJSUFF) \
|
||||||
|
@@ -53,6 +53,9 @@ GENERICOBJS= \
|
|||||||
$(GENDIR)\gridg.obj \
|
$(GENDIR)\gridg.obj \
|
||||||
$(GENDIR)\laywin.obj \
|
$(GENDIR)\laywin.obj \
|
||||||
$(GENDIR)\panelg.obj \
|
$(GENDIR)\panelg.obj \
|
||||||
|
$(GENDIR)\prop.obj \
|
||||||
|
$(GENDIR)\propform.obj \
|
||||||
|
$(GENDIR)\proplist.obj \
|
||||||
$(GENDIR)\sashwin.obj \
|
$(GENDIR)\sashwin.obj \
|
||||||
$(GENDIR)\scrolwin.obj \
|
$(GENDIR)\scrolwin.obj \
|
||||||
$(GENDIR)\splitter.obj \
|
$(GENDIR)\splitter.obj \
|
||||||
@@ -1115,6 +1118,21 @@ $(GENDIR)/panelg.obj: $*.$(SRCSUFF)
|
|||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||||
<<
|
<<
|
||||||
|
|
||||||
|
$(GENDIR)/prop.obj: $*.$(SRCSUFF)
|
||||||
|
cl @<<
|
||||||
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||||
|
<<
|
||||||
|
|
||||||
|
$(GENDIR)/propform.obj: $*.$(SRCSUFF)
|
||||||
|
cl @<<
|
||||||
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||||
|
<<
|
||||||
|
|
||||||
|
$(GENDIR)/proplist.obj: $*.$(SRCSUFF)
|
||||||
|
cl @<<
|
||||||
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||||
|
<<
|
||||||
|
|
||||||
$(GENDIR)/printps.obj: $*.$(SRCSUFF)
|
$(GENDIR)/printps.obj: $*.$(SRCSUFF)
|
||||||
cl @<<
|
cl @<<
|
||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||||
@@ -1380,18 +1398,23 @@ docs: allhlp allhtml allpdfrtf
|
|||||||
alldocs: docs
|
alldocs: docs
|
||||||
hlp: wxhlp portinghlp # faqhlp
|
hlp: wxhlp portinghlp # faqhlp
|
||||||
wxhlp: $(DOCDIR)/winhelp/wx.hlp
|
wxhlp: $(DOCDIR)/winhelp/wx.hlp
|
||||||
|
wxprophlp: $(DOCDIR)/winhelp/wxprop.hlp
|
||||||
faqhlp: $(DOCDIR)/winhelp/faq.hlp
|
faqhlp: $(DOCDIR)/winhelp/faq.hlp
|
||||||
refhlp: $(DOCDIR)/winhelp/techref.hlp
|
refhlp: $(DOCDIR)/winhelp/techref.hlp
|
||||||
rtf: $(DOCDIR)/winhelp/wx.rtf
|
rtf: $(DOCDIR)/winhelp/wx.rtf
|
||||||
faqrtf: $(DOCDIR)/winhelp/faq.rtf
|
faqrtf: $(DOCDIR)/winhelp/faq.rtf
|
||||||
|
wxproprtf: $(DOCDIR)/winhelp/wxprop.rtf
|
||||||
pdfrtf: $(DOCDIR)/pdf/wx.rtf
|
pdfrtf: $(DOCDIR)/pdf/wx.rtf
|
||||||
faqpdfrtf: $(DOCDIR)/pdf/faq.rtf
|
faqpdfrtf: $(DOCDIR)/pdf/faq.rtf
|
||||||
|
wxproppdfrtf: $(DOCDIR)/pdf/wxprop.rtf
|
||||||
refpdfrtf: $(DOCDIR)/pdf/techref.rtf
|
refpdfrtf: $(DOCDIR)/pdf/techref.rtf
|
||||||
html: wxhtml # faqhtml
|
html: wxhtml # faqhtml
|
||||||
wxhtml: $(DOCDIR)\html\wx\wx.htm
|
wxhtml: $(DOCDIR)\html\wx\wx.htm
|
||||||
faqhtml: $(DOCDIR)\html\faq\faq.htm
|
faqhtml: $(DOCDIR)\html\faq\faq.htm
|
||||||
|
wxprophtml: $(DOCDIR)\html\proplist\prop.htm
|
||||||
ps: wxps referencps # faqps
|
ps: wxps referencps # faqps
|
||||||
wxps: $(WXDIR)\docs\ps\wx.ps
|
wxps: $(WXDIR)\docs\ps\wx.ps
|
||||||
|
wxpropps: $(WXDIR)\docs\ps\wxprop.ps
|
||||||
faqps: $(WXDIR)\docs\ps\faq.ps
|
faqps: $(WXDIR)\docs\ps\faq.ps
|
||||||
referencps: $(WXDIR)\docs\ps\referenc.ps
|
referencps: $(WXDIR)\docs\ps\referenc.ps
|
||||||
|
|
||||||
@@ -1401,9 +1424,7 @@ portinghlp: $(DOCDIR)/winhelp/porting.hlp
|
|||||||
portingpdfrtf: $(DOCDIR)/pdf/porting.rtf
|
portingpdfrtf: $(DOCDIR)/pdf/porting.rtf
|
||||||
portingps: $(WXDIR)\docs\ps\porting.ps
|
portingps: $(WXDIR)\docs\ps\porting.ps
|
||||||
|
|
||||||
allhlp: wxhlp portinghlp # faqhlp
|
allhlp: wxhlp portinghlp wxprop # faqhlp
|
||||||
cd $(WXDIR)\utils\wxprop\src
|
|
||||||
nmake -f makefile.nt hlp
|
|
||||||
cd $(WXDIR)\utils\dialoged\src
|
cd $(WXDIR)\utils\dialoged\src
|
||||||
nmake -f makefile.nt hlp
|
nmake -f makefile.nt hlp
|
||||||
cd $(THISDIR)
|
cd $(THISDIR)
|
||||||
@@ -1434,9 +1455,7 @@ allhlp: wxhlp portinghlp # faqhlp
|
|||||||
# cd $(WXDIR)\utils\clips2c\src
|
# cd $(WXDIR)\utils\clips2c\src
|
||||||
# nmake -f makefile.nt hlp
|
# nmake -f makefile.nt hlp
|
||||||
|
|
||||||
allhtml: wxhtml portinghtml # faqhtml
|
allhtml: wxhtml portinghtml wxprophtml # faqhtml
|
||||||
cd $(WXDIR)\utils\wxprop\src
|
|
||||||
nmake -f makefile.nt html
|
|
||||||
cd $(WXDIR)\utils\dialoged\src
|
cd $(WXDIR)\utils\dialoged\src
|
||||||
nmake -f makefile.nt html
|
nmake -f makefile.nt html
|
||||||
cd $(THISDIR)
|
cd $(THISDIR)
|
||||||
@@ -1468,16 +1487,12 @@ allhtml: wxhtml portinghtml # faqhtml
|
|||||||
# cd $(WXDIR)\utils\clips2c\src
|
# cd $(WXDIR)\utils\clips2c\src
|
||||||
# nmake -f makefile.nt html
|
# nmake -f makefile.nt html
|
||||||
|
|
||||||
allps: wxps referencps portingps # faqps
|
allps: wxps referencps portingps wxpropps # faqps
|
||||||
cd $(WXDIR)\utils\wxprop\src
|
|
||||||
nmake -f makefile.nt ps
|
|
||||||
cd $(WXDIR)\utils\dialoged\src
|
cd $(WXDIR)\utils\dialoged\src
|
||||||
nmake -f makefile.nt ps
|
nmake -f makefile.nt ps
|
||||||
cd $(THISDIR)
|
cd $(THISDIR)
|
||||||
|
|
||||||
allpdfrtf: pdfrtf portingpdfrtf # faqpdfrtf
|
allpdfrtf: pdfrtf portingpdfrtf wxproppdfrtf # faqpdfrtf
|
||||||
cd $(WXDIR)\utils\wxprop\src
|
|
||||||
nmake -f makefile.nt pdfrtf
|
|
||||||
cd $(WXDIR)\utils\dialoged\src
|
cd $(WXDIR)\utils\dialoged\src
|
||||||
nmake -f makefile.nt pdfrtf
|
nmake -f makefile.nt pdfrtf
|
||||||
cd $(THISDIR)
|
cd $(THISDIR)
|
||||||
@@ -1529,6 +1544,14 @@ $(DOCDIR)/winhelp/faq.hlp: $(DOCDIR)/latex/faq/faq.rtf $(DOCDIR)/latex/f
|
|||||||
move faq.cnt $(DOCDIR)\winhelp\faq.cnt
|
move faq.cnt $(DOCDIR)\winhelp\faq.cnt
|
||||||
cd $(THISDIR)
|
cd $(THISDIR)
|
||||||
|
|
||||||
|
$(DOCDIR)/winhelp/wxprop.hlp: $(DOCDIR)/latex/proplist/wxprop.rtf $(DOCDIR)/latex/proplist/wxprop.hpj
|
||||||
|
cd $(DOCDIR)/latex/proplist
|
||||||
|
-erase wxprop.ph
|
||||||
|
hc wxprop
|
||||||
|
move wxprop.hlp $(DOCDIR)\winhelp\wxprop.hlp
|
||||||
|
move wxprop.cnt $(DOCDIR)\winhelp\wxprop.cnt
|
||||||
|
cd $(THISDIR)
|
||||||
|
|
||||||
$(DOCDIR)/winhelp/techref.hlp: $(DOCDIR)/latex/techref/techref.rtf $(DOCDIR)/latex/techref/techref.hpj
|
$(DOCDIR)/winhelp/techref.hlp: $(DOCDIR)/latex/techref/techref.rtf $(DOCDIR)/latex/techref/techref.hpj
|
||||||
cd $(DOCDIR)/latex/techref
|
cd $(DOCDIR)/latex/techref
|
||||||
-erase techref.ph
|
-erase techref.ph
|
||||||
@@ -1552,6 +1575,11 @@ $(DOCDIR)/latex/faq/faq.rtf: $(DOCDIR)/latex/faq/faq.tex
|
|||||||
-start /w tex2rtf $(DOCDIR)/latex/faq/faq.tex $(DOCDIR)/latex/faq/faq.rtf -twice -winhelp
|
-start /w tex2rtf $(DOCDIR)/latex/faq/faq.tex $(DOCDIR)/latex/faq/faq.rtf -twice -winhelp
|
||||||
cd $(THISDIR)
|
cd $(THISDIR)
|
||||||
|
|
||||||
|
$(DOCDIR)/latex/proplist/wxprop.rtf: $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
|
||||||
|
cd $(DOCDIR)\latex\proplist
|
||||||
|
-start /w tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/wxprop.rtf -twice -winhelp
|
||||||
|
cd $(THISDIR)
|
||||||
|
|
||||||
$(DOCDIR)/latex/techref/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
|
$(DOCDIR)/latex/techref/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
|
||||||
cd $(DOCDIR)\latex\techref
|
cd $(DOCDIR)\latex\techref
|
||||||
-start /w tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/latex/techref/techref.rtf -twice -winhelp
|
-start /w tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/latex/techref/techref.rtf -twice -winhelp
|
||||||
@@ -1575,6 +1603,12 @@ $(DOCDIR)/pdf/faq.rtf: $(DOCDIR)/latex/faq/faq.tex
|
|||||||
-start /w tex2rtf $(DOCDIR)/latex/faq/faq.tex $(DOCDIR)/pdf/faq.rtf -twice -rtf
|
-start /w tex2rtf $(DOCDIR)/latex/faq/faq.tex $(DOCDIR)/pdf/faq.rtf -twice -rtf
|
||||||
cd $(THISDIR)
|
cd $(THISDIR)
|
||||||
|
|
||||||
|
$(DOCDIR)/pdf/wxprop.rtf: $(DOCDIR)/latex/proplist/proplist.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
|
||||||
|
cd $(DOCDIR)\latex\proplist
|
||||||
|
-copy *.bmp *.wmf $(DOCDIR)\pdf
|
||||||
|
-start /w tex2rtf $(DOCDIR)/latex/proplist/wxprop.tex $(DOCDIR)/pdf/wxprop.rtf -twice -rtf
|
||||||
|
cd $(THISDIR)
|
||||||
|
|
||||||
$(DOCDIR)/pdf/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
|
$(DOCDIR)/pdf/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
|
||||||
cd $(DOCDIR)\latex\techref
|
cd $(DOCDIR)\latex\techref
|
||||||
-copy *.bmp *.wmf $(DOCDIR)\pdf
|
-copy *.bmp *.wmf $(DOCDIR)\pdf
|
||||||
@@ -1608,7 +1642,17 @@ $(DOCDIR)\html\faq\faq.htm: $(DOCDIR)\latex\faq\faq.tex
|
|||||||
-erase $(DOCDIR)\html\faq\*.con
|
-erase $(DOCDIR)\html\faq\*.con
|
||||||
-erase $(DOCDIR)\html\faq\*.ref
|
-erase $(DOCDIR)\html\faq\*.ref
|
||||||
-erase $(DOCDIR)\latex\faq\*.con
|
-erase $(DOCDIR)\latex\faq\*.con
|
||||||
-erase $(DOCDIR)\latexfaq\*.ref
|
-erase $(DOCDIR)\latex\faq\*.ref
|
||||||
|
cd $(THISDIR)
|
||||||
|
|
||||||
|
$(DOCDIR)\html\proplist\prop.htm: $(DOCDIR)\latex\proplist\prop.tex $(DOCDIR)\latex\proplist\body.tex $(DOCDIR)\latex\proplist\classes.tex $(DOCDIR)\latex\proplist\changes.tex
|
||||||
|
cd $(DOCDIR)\latex\proplist
|
||||||
|
-mkdir $(DOCDIR)\html\proplist
|
||||||
|
-start /w tex2rtf $(DOCDIR)\latex\proplist\wxprop.tex $(DOCDIR)\html\proplist\prop.htm -twice -html
|
||||||
|
-erase $(DOCDIR)\html\proplist\*.con
|
||||||
|
-erase $(DOCDIR)\html\proplist\*.ref
|
||||||
|
-erase $(DOCDIR)\latex\proplist\*.con
|
||||||
|
-erase $(DOCDIR)\latex\proplist\*.ref
|
||||||
cd $(THISDIR)
|
cd $(THISDIR)
|
||||||
|
|
||||||
$(WXDIR)\docs\latex\wx\manual.dvi: $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/manual.tex
|
$(WXDIR)\docs\latex\wx\manual.dvi: $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/manual.tex
|
||||||
|
@@ -31,6 +31,9 @@ GENERICOBJS= choicdgg.obj &
|
|||||||
gridg.obj &
|
gridg.obj &
|
||||||
laywin.obj &
|
laywin.obj &
|
||||||
panelg.obj &
|
panelg.obj &
|
||||||
|
prop.obj &
|
||||||
|
propform.obj &
|
||||||
|
proplist.obj &
|
||||||
sashwin.obj &
|
sashwin.obj &
|
||||||
scrolwin.obj &
|
scrolwin.obj &
|
||||||
splitter.obj &
|
splitter.obj &
|
||||||
@@ -721,6 +724,15 @@ panelg.obj: $(GENDIR)\panelg.cpp
|
|||||||
printps.obj: $(GENDIR)\printps.cpp
|
printps.obj: $(GENDIR)\printps.cpp
|
||||||
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
|
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
|
||||||
|
|
||||||
|
prop.obj: $(GENDIR)\prop.cpp
|
||||||
|
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
|
||||||
|
|
||||||
|
propform.obj: $(GENDIR)\propform.cpp
|
||||||
|
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
|
||||||
|
|
||||||
|
proplist.obj: $(GENDIR)\proplist.cpp
|
||||||
|
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
|
||||||
|
|
||||||
prntdlgg.obj: $(GENDIR)\prntdlgg.cpp
|
prntdlgg.obj: $(GENDIR)\prntdlgg.cpp
|
||||||
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
|
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
|
||||||
|
|
||||||
|
@@ -103,6 +103,9 @@ GENERICOBJS= \
|
|||||||
$(GENDIR)\gridg.obj \
|
$(GENDIR)\gridg.obj \
|
||||||
$(GENDIR)\msgdlgg.obj \
|
$(GENDIR)\msgdlgg.obj \
|
||||||
$(GENDIR)\panelg.obj \
|
$(GENDIR)\panelg.obj \
|
||||||
|
$(GENDIR)\prop.obj \
|
||||||
|
$(GENDIR)\propform.obj \
|
||||||
|
$(GENDIR)\proplist.obj \
|
||||||
$(GENDIR)\printps.obj \
|
$(GENDIR)\printps.obj \
|
||||||
$(GENDIR)\prntdlgg.obj \
|
$(GENDIR)\prntdlgg.obj \
|
||||||
$(GENDIR)\scrolwin.obj \
|
$(GENDIR)\scrolwin.obj \
|
||||||
@@ -893,6 +896,21 @@ $(GENDIR)/panelg.obj: $*.$(SRCSUFF)
|
|||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||||
<<
|
<<
|
||||||
|
|
||||||
|
$(GENDIR)/prop.obj: $*.$(SRCSUFF)
|
||||||
|
cl @<<
|
||||||
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||||
|
<<
|
||||||
|
|
||||||
|
$(GENDIR)/propform.obj: $*.$(SRCSUFF)
|
||||||
|
cl @<<
|
||||||
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||||
|
<<
|
||||||
|
|
||||||
|
$(GENDIR)/proplist.obj: $*.$(SRCSUFF)
|
||||||
|
cl @<<
|
||||||
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||||
|
<<
|
||||||
|
|
||||||
$(GENDIR)/printps.obj: $*.$(SRCSUFF)
|
$(GENDIR)/printps.obj: $*.$(SRCSUFF)
|
||||||
cl @<<
|
cl @<<
|
||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||||
|
@@ -142,6 +142,9 @@ LIB_CPP_SRC=\
|
|||||||
../generic/laywin.cpp \
|
../generic/laywin.cpp \
|
||||||
../generic/msgdlgg.cpp \
|
../generic/msgdlgg.cpp \
|
||||||
../generic/panelg.cpp \
|
../generic/panelg.cpp \
|
||||||
|
../generic/prop.cpp \
|
||||||
|
../generic/proplist.cpp \
|
||||||
|
../generic/propform.cpp \
|
||||||
../generic/printps.cpp \
|
../generic/printps.cpp \
|
||||||
../generic/prntdlgg.cpp \
|
../generic/prntdlgg.cpp \
|
||||||
../generic/sashwin.cpp \
|
../generic/sashwin.cpp \
|
||||||
|
@@ -15,18 +15,17 @@ no independent file format.
|
|||||||
provide immediate visual feedback of changed properties.
|
provide immediate visual feedback of changed properties.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
Dialog Editor should be compiled and used with wxWindows 1.65 or later.
|
Dialog Editor 2.0 should be compiled and used with wxWindows 2.0.
|
||||||
|
|
||||||
\section{Current status}
|
\section{Current status}
|
||||||
|
|
||||||
Dialog Editor currently runs under MS Windows. It has yet to
|
Dialog Editor currently runs under wxMSW and wxGTK. It has yet to
|
||||||
be tested under Motif and XView: see \helpref{Technical notes}{technotes} for a discussion
|
be tested under wxMotif.
|
||||||
of what needs to be done.
|
|
||||||
|
|
||||||
\section{Future developments}
|
\section{Future developments}
|
||||||
|
|
||||||
\begin{itemize}\itemsep=0pt
|
\begin{itemize}\itemsep=0pt
|
||||||
\item XView and Motif versions.
|
\item Motif compilation.
|
||||||
\item It would be nice to have a dialog browser, showing thumbnails of
|
\item It would be nice to have a dialog browser, showing thumbnails of
|
||||||
all dialogs in a particular directory.
|
all dialogs in a particular directory.
|
||||||
\item Maybe add a menubar editor (from wxBuilder).
|
\item Maybe add a menubar editor (from wxBuilder).
|
||||||
@@ -42,24 +41,23 @@ all dialogs in a particular directory.
|
|||||||
\subsection{File menu}
|
\subsection{File menu}
|
||||||
|
|
||||||
\begin{twocollist}\itemsep=0pt
|
\begin{twocollist}\itemsep=0pt
|
||||||
\twocolitem{New project}{Creates a new project (clears index and resets project name).}
|
|
||||||
\twocolitem{New dialog}{Creates a new dialog resource.}
|
\twocolitem{New dialog}{Creates a new dialog resource.}
|
||||||
|
\twocolitem{New project}{Creates a new project (clears index and resets project name).}
|
||||||
\twocolitem{Open}{Opens an existing resource file.}
|
\twocolitem{Open}{Opens an existing resource file.}
|
||||||
\twocolitem{Save}{Saves the current resources.}
|
\twocolitem{Save}{Saves the current resources.}
|
||||||
\twocolitem{Save as}{Saves the current resources in a named file.}
|
\twocolitem{Save As...}{Saves the current resources in a named file.}
|
||||||
\twocolitem{Clear}{Clears the current resources.}
|
\twocolitem{Clear}{Clears the current resources.}
|
||||||
\twocolitem{Exit}{Exit the program.}
|
\twocolitem{Exit}{Exits the program.}
|
||||||
\end{twocollist}
|
\end{twocollist}
|
||||||
|
|
||||||
\subsection{Edit menu}
|
\subsection{Edit menu}
|
||||||
|
|
||||||
\begin{twocollist}\itemsep=0pt
|
\begin{twocollist}\itemsep=0pt
|
||||||
\twocolitem{Recreate}{Recreates the currently selected panel item from the underlying resource. This may be necessary
|
\twocolitem{Test Dialog}{Creates the current dialog for test purposes.}
|
||||||
|
\twocolitem{Recreate}{Recreates the currently selected control from the underlying resource. This may be necessary
|
||||||
to regenerate items that cannot be changed dynamically, and which have got out of sync with the displayed
|
to regenerate items that cannot be changed dynamically, and which have got out of sync with the displayed
|
||||||
item.}
|
item.}
|
||||||
\twocolitem{Delete}{Deletes the currently selected resource.}
|
\twocolitem{Delete}{Deletes the currently selected resource.}
|
||||||
\twocolitem{Toggle edit/test mode}{Toggles from edit to test mode, and vice versa. Edit mode is used for editing
|
|
||||||
dialogs, test mode allows panel items to be manipulated as they will appear to the user.}
|
|
||||||
\end{twocollist}
|
\end{twocollist}
|
||||||
|
|
||||||
\subsection{Help menu}
|
\subsection{Help menu}
|
||||||
@@ -93,35 +91,15 @@ The command toolbar consists of the following tools:
|
|||||||
\latexonly{\newpage}
|
\latexonly{\newpage}
|
||||||
\section{Tool palette}
|
\section{Tool palette}
|
||||||
|
|
||||||
The tool palette is used to select a type of panel item to create on the dialog.
|
The tool palette is used to select a type of control to create on the dialog.
|
||||||
To create a new panel item, select a tool with left-click, then left-click on the dialog to
|
To create a new control, select a tool with left-click, then left-click on the dialog.
|
||||||
window. Select the pointer tool to use left-click for selecting and deselecting
|
Select the pointer tool to use left-click for selecting and deselecting
|
||||||
items.
|
items.
|
||||||
|
|
||||||
The tool palette consists of the following tools.
|
\section{Resource tree}
|
||||||
|
|
||||||
\begin{twocollist}%\itemsep=0pt
|
The resource tree shows a list of the dialogs, controls and bitmaps currently loaded
|
||||||
\twocolitem{\icon{arrow.eps}{Pointer}}{Click this to select/deselect items on a dialog.}
|
in Dialog Editor. Double-clicking on an item shows the associated resource.
|
||||||
\twocolitem{\icon{message.eps}{Message}}{Text message item.}
|
|
||||||
\twocolitem{\icon{picture.eps}{Bitmap message}}{Bitmap message item.}
|
|
||||||
\twocolitem{\icon{button.eps}{Button}}{Text button item.}
|
|
||||||
\twocolitem{\icon{bmpbuttn.eps}{Bitmap button}}{Bitmap button item.}
|
|
||||||
\twocolitem{\icon{check.eps}{Checkbox}}{Checkbox item.}
|
|
||||||
\twocolitem{\icon{radio.eps}{Radiobox}}{Radiobox item.}
|
|
||||||
\twocolitem{\icon{listbox.eps}{Listbox}}{Listbox item.}
|
|
||||||
\twocolitem{\icon{choice.eps}{Choice}}{Choice item.}
|
|
||||||
\twocolitem{\icon{text.eps}{Text}}{Single-line text item.}
|
|
||||||
\twocolitem{\icon{mtext.eps}{Multitext}}{Multi-line text item.}
|
|
||||||
\twocolitem{\icon{slider.eps}{Slider}}{Slider item.}
|
|
||||||
\twocolitem{\icon{group.eps}{Groupbpx}}{Groupbox item.}
|
|
||||||
\twocolitem{\icon{gauge.eps}{Gauge}}{Gauge item.}
|
|
||||||
\twocolitem{\icon{scroll.eps}{Scrollbar}}{Scrollbar item.}
|
|
||||||
\end{twocollist}
|
|
||||||
|
|
||||||
\section{Resource list}
|
|
||||||
|
|
||||||
The resource list shows a list of the dialogs, panel items and bitmaps currently loaded
|
|
||||||
in Dialog Editor. Double-clicking on a dialog item shows the associated dialog box.
|
|
||||||
|
|
||||||
\chapter{Procedures}\label{procedures}
|
\chapter{Procedures}\label{procedures}
|
||||||
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
||||||
@@ -138,16 +116,16 @@ status line.
|
|||||||
\section{Creating a dialog}
|
\section{Creating a dialog}
|
||||||
|
|
||||||
To create a new dialog, click on the {\bf File: New} menu item, or equivalent
|
To create a new dialog, click on the {\bf File: New} menu item, or equivalent
|
||||||
toolbar button. A dialog will appear. To put a panel item on the dialog, left-click
|
toolbar button. A dialog will appear. To put a control on the dialog, left-click
|
||||||
on the appropriate palette icon and then left-click on the dialog. A new item
|
on the appropriate palette icon and then left-click on the dialog. A new item
|
||||||
will appear at the place you clicked.
|
will appear at the place you clicked.
|
||||||
|
|
||||||
You can edit any panel item or dialog by control-left clicking. A property editor
|
You can edit any control or dialog by control-left clicking. A property editor
|
||||||
will appear, allowing any property to be selected and edited (see \helpref{Using property editors}{propeditors}).
|
will appear, allowing any property to be selected and edited (see \helpref{Using property editors}{propeditors}).
|
||||||
You can also edit items by right-clicking to show a menu, and then selecting {\it Edit properties}.
|
You can also edit items by right-clicking to show a menu, and then selecting {\it Edit properties}.
|
||||||
|
|
||||||
To move a panel item, drag the item with the left mouse button, or edit
|
To move a control, drag the item with the left mouse button, or edit
|
||||||
the position values in the property editor. To resize a panel item, you
|
the position values in the property editor. To resize a control, you
|
||||||
can either select it by left-clicking and then dragging on a selection
|
can either select it by left-clicking and then dragging on a selection
|
||||||
handle, or edit the size values in the property editor.
|
handle, or edit the size values in the property editor.
|
||||||
|
|
||||||
@@ -169,7 +147,7 @@ the file selector, and properties containing list of user-definable strings use
|
|||||||
string editor.
|
string editor.
|
||||||
|
|
||||||
When you change a property value, this value is immediately reflected in
|
When you change a property value, this value is immediately reflected in
|
||||||
the dialog or panel item. If the item allows this value to be changed
|
the dialog or control. If the item allows this value to be changed
|
||||||
dynamically, the relevant wxWindows function will be called internally
|
dynamically, the relevant wxWindows function will be called internally
|
||||||
to effect the change. If the value cannot be changed dynamically, the
|
to effect the change. If the value cannot be changed dynamically, the
|
||||||
item will be destroyed and re-created, which means that there will be
|
item will be destroyed and re-created, which means that there will be
|
||||||
@@ -186,12 +164,37 @@ wxWindows resources have been enabled when building the wxWindows library.
|
|||||||
These files can be loaded dynamically, or included directly into program source
|
These files can be loaded dynamically, or included directly into program source
|
||||||
with a \verb$#include$ directive. See the wxWindows user manual for further details.
|
with a \verb$#include$ directive. See the wxWindows user manual for further details.
|
||||||
|
|
||||||
|
\section{Working with identifiers}
|
||||||
|
|
||||||
|
Dialog Editor keeps track of identifiers in your resources, and reads and writes an include file of the
|
||||||
|
form {\tt name.h} where 'name' is the root name of your {\tt .wxr} file. Dialog Editor
|
||||||
|
knows about the predefined identifiers such as wxID\_OK.
|
||||||
|
|
||||||
|
When you create a dialog or control, the identifier is initially generated. When you
|
||||||
|
edit the identifier via a property editor, you can choose a new name, such as a predefined
|
||||||
|
symbol and optionally change the integer assigned to the name (assuming it's not a
|
||||||
|
predefined symbol).
|
||||||
|
|
||||||
|
When you save the project, the identifier include file is saved as well. Include this file
|
||||||
|
in your project so that you can refer to controls and dialogs by identifier rather than
|
||||||
|
obscure integers. Note that the {\tt .wxr} file itself can only contain integer ids and not the symbols,
|
||||||
|
due to way in which the resource file is loaded.
|
||||||
|
|
||||||
\section{Multi-platform development}
|
\section{Multi-platform development}
|
||||||
|
|
||||||
{\tt .wxr} files generated on one environment (e.g. Windows) can be used in another (e.g. Motif).
|
{\tt .wxr} files generated on one environment (e.g. Windows) can be used in another (e.g. GTK).
|
||||||
However, because the same panel item can have different sizes on different GUIs,
|
If you use default fonts and colouring (set {\bf useSystemDefaults} to True in the dialog properties)
|
||||||
|
then the dialog fonts and colours will take on the native values, rather than ones specified in the
|
||||||
|
resource. Without this, colours in the dialog resource may not match system colours.
|
||||||
|
|
||||||
|
Also, set {\bf useDialogUnits} to True whenever possible since this will cause the dialog
|
||||||
|
to be created using a scale based on the current system font size, and will result in dialogs that are
|
||||||
|
portable between screen resolutions as well as platforms.
|
||||||
|
|
||||||
|
Because the same control can have different sizes on different GUIs,
|
||||||
the user should be cautious in assuming that one resource file will work for all
|
the user should be cautious in assuming that one resource file will work for all
|
||||||
platforms. It may be better to plan to conditionally include or load different
|
platforms. It may be better to plan to conditionally include or load different
|
||||||
resource files for different platforms, with spacing modified to suit each
|
resource files for different platforms, with spacing modified to suit each
|
||||||
environment.
|
environment. The best thing is to try your dialog resource on several platforms
|
||||||
|
and see whether tweaking is required for some platforms.
|
||||||
|
|
||||||
|
@@ -2,14 +2,16 @@
|
|||||||
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
||||||
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||||
|
|
||||||
Version 1.0
|
Version 2.0
|
||||||
|
|
||||||
\begin{itemize}\itemsep=0pt
|
\begin{itemize}\itemsep=0pt
|
||||||
\item No XView or Motif versions yet.
|
\item No Motif version yet.
|
||||||
\item In Watcom-compiled 32-bit Windows version, bitmap buttons and messages
|
\item Some control properties missing.
|
||||||
don't work properly.
|
|
||||||
\item Some panel item properties missing, e.g. wxPASSWORD, wxREADONLY.
|
|
||||||
\item When dragging a selected item, other selected items should follow (to be
|
\item When dragging a selected item, other selected items should follow (to be
|
||||||
consistent with convention), but don't.
|
consistent with convention), but don't.
|
||||||
\item wxSlider sizing a bit broken: a wxWindows problem.
|
\item No grid.
|
||||||
|
\item No keyboard shortcuts.
|
||||||
|
\item No tab ordering.
|
||||||
|
\item In dialog unit mode, controls will sometimes move slightly when properties are edited,
|
||||||
|
because translating between units isn't always reversible (rounding errors?).
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
@@ -2,6 +2,14 @@
|
|||||||
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
||||||
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||||
|
|
||||||
|
December 31st 1998, Version 2.0
|
||||||
|
|
||||||
|
\begin{itemize}\itemsep=0pt
|
||||||
|
\item wxWindows 2.0 port.
|
||||||
|
\item Major user interface changes.
|
||||||
|
\item Allows identifiers to be edited and reads/writes an id header file.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
March 15th 1997, Version 1.7
|
March 15th 1997, Version 1.7
|
||||||
|
|
||||||
\begin{itemize}\itemsep=0pt
|
\begin{itemize}\itemsep=0pt
|
||||||
|
@@ -5,11 +5,9 @@
|
|||||||
%\special{!/@scaleunit 1 def}
|
%\special{!/@scaleunit 1 def}
|
||||||
\parskip=10pt
|
\parskip=10pt
|
||||||
\parindent=0pt
|
\parindent=0pt
|
||||||
\title{User Manual for wxWindows Dialog Editor Version 1.7}
|
\title{User Manual for wxWindows Dialog Editor Version 2.0}
|
||||||
\winhelponly{\author{by Julian Smart, A.I. Applications Institute, University of Edinburgh\\}}
|
\winhelponly{\author{by Julian Smart, Anthemion Software}
|
||||||
\winhelpignore{\author{Julian Smart\\Artificial Intelligence Applications Institute\\
|
\date{December 1998}
|
||||||
University of Edinburgh\\EH1 1HN}
|
|
||||||
\date{March 1997}
|
|
||||||
}
|
}
|
||||||
\makeindex
|
\makeindex
|
||||||
\begin{document}
|
\begin{document}
|
||||||
@@ -26,36 +24,20 @@ University of Edinburgh\\EH1 1HN}
|
|||||||
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
Copyright (c) 1996 Artificial Intelligence Applications Institute,
|
Copyright (c) 1998 Julian Smart et al
|
||||||
The University of Edinburgh\\
|
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
Permission to use, copy, modify, and distribute this software and its
|
Please see the wxWindows licence for licensing details.
|
||||||
documentation for any purpose is hereby granted without fee, provided that the
|
|
||||||
above copyright notice, author statement and this permission notice appear in
|
|
||||||
all copies of this software and related documentation.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED ``AS-IS'' AND WITHOUT WARRANTY OF ANY KIND, EXPRESS,
|
|
||||||
IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
|
|
||||||
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
|
|
||||||
IN NO EVENT SHALL THE ARTIFICIAL INTELLIGENCE APPLICATIONS INSTITUTE OR THE
|
|
||||||
UNIVERSITY OF EDINBURGH BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR
|
|
||||||
CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF
|
|
||||||
DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH
|
|
||||||
THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
|
|
||||||
\input{body.tex}
|
\input{body.tex}
|
||||||
\input{classes.tex}
|
|
||||||
\input{changes.tex}
|
\input{changes.tex}
|
||||||
\input{bugs.tex}
|
\input{bugs.tex}
|
||||||
\input{tech.tex}
|
\input{tech.tex}
|
||||||
|
|
||||||
\newpage
|
%\newpage
|
||||||
|
%
|
||||||
\addcontentsline{toc}{chapter}{Index}
|
\addcontentsline{toc}{chapter}{Index}%
|
||||||
|
\printindex%
|
||||||
\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}%
|
\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}%
|
||||||
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||||
\printindex
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
@@ -17,12 +17,10 @@ BIN_OBJ=dialoged.o dlghndlr.o edlist.o edtree.o \
|
|||||||
reseditr.o reswrite.o symbtabl.o winprop.o winstyle.o
|
reseditr.o reswrite.o symbtabl.o winprop.o winstyle.o
|
||||||
|
|
||||||
# additional things needed to link
|
# additional things needed to link
|
||||||
BIN_LINK= \
|
BIN_LINK=
|
||||||
-lwx_prop_gtk
|
|
||||||
|
|
||||||
# additional things needed to compile
|
# additional things needed to compile
|
||||||
ADD_COMPILE= \
|
ADD_COMPILE=
|
||||||
-I../../../wxprop/src
|
|
||||||
|
|
||||||
# include the definitions now
|
# include the definitions now
|
||||||
include ../../../../template.mak
|
include ../../../../template.mak
|
||||||
|
@@ -149,6 +149,20 @@ void wxResourceEditorDialogHandler::OnLeftClick(int x, int y, int keys)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Round down to take account of dialog units
|
||||||
|
wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(handlerDialog);
|
||||||
|
if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
|
||||||
|
{
|
||||||
|
wxPoint pt = handlerDialog->ConvertPixelsToDialog(wxPoint(x, y));
|
||||||
|
|
||||||
|
// Convert back so we've rounded down
|
||||||
|
pt = handlerDialog->ConvertDialogToPixels(pt);
|
||||||
|
pt = handlerDialog->ConvertPixelsToDialog(pt);
|
||||||
|
pt = handlerDialog->ConvertDialogToPixels(pt);
|
||||||
|
x = pt.x;
|
||||||
|
y = pt.y;
|
||||||
|
}
|
||||||
|
|
||||||
switch (wxResourceManager::GetCurrentResourceManager()->GetEditorControlList()->GetSelection())
|
switch (wxResourceManager::GetCurrentResourceManager()->GetEditorControlList()->GetSelection())
|
||||||
{
|
{
|
||||||
case RESED_BUTTON:
|
case RESED_BUTTON:
|
||||||
@@ -1000,34 +1014,66 @@ void wxResourceEditorControlHandler::OnDragEnd(int x, int y, int WXUNUSED(keys),
|
|||||||
height1 = (ypos + height) - y;
|
height1 = (ypos + height) - y;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
handlerControl->SetSize(x1, y1, width1, height1);
|
// Update the associated resource
|
||||||
|
|
||||||
// Also update the associated resource
|
|
||||||
// We need to convert to dialog units if this is not a dialog or panel, but
|
// We need to convert to dialog units if this is not a dialog or panel, but
|
||||||
// the parent resource specifies dialog units.
|
// the parent resource specifies dialog units.
|
||||||
|
int resourceX = x1;
|
||||||
|
int resourceY = y1;
|
||||||
|
int resourceWidth = width1;
|
||||||
|
int resourceHeight = height1;
|
||||||
|
|
||||||
if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
|
if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
|
||||||
{
|
{
|
||||||
wxPoint pt = handlerControl->GetParent()->ConvertPixelsToDialog(wxPoint(x1, y1));
|
wxPoint pt = handlerControl->GetParent()->ConvertPixelsToDialog(wxPoint(x1, y1));
|
||||||
x1 = pt.x; y1 = pt.y;
|
|
||||||
wxSize sz = handlerControl->GetParent()->ConvertPixelsToDialog(wxSize(width1, height1));
|
wxSize sz = handlerControl->GetParent()->ConvertPixelsToDialog(wxSize(width1, height1));
|
||||||
width1 = sz.x; height1 = sz.y;
|
|
||||||
|
// Convert back so we've rounded down
|
||||||
|
sz = handlerControl->GetParent()->ConvertDialogToPixels(sz);
|
||||||
|
sz = handlerControl->GetParent()->ConvertPixelsToDialog(sz);
|
||||||
|
resourceWidth = sz.x; resourceHeight = sz.y;
|
||||||
|
|
||||||
|
sz = handlerControl->GetParent()->ConvertDialogToPixels(sz);
|
||||||
|
width1 = sz.x;
|
||||||
|
height1 = sz.y;
|
||||||
|
|
||||||
|
pt = handlerControl->GetParent()->ConvertDialogToPixels(pt);
|
||||||
|
pt = handlerControl->GetParent()->ConvertPixelsToDialog(pt);
|
||||||
|
resourceX = pt.x; resourceY = pt.y;
|
||||||
|
|
||||||
|
pt = handlerControl->GetParent()->ConvertDialogToPixels(pt);
|
||||||
|
x1 = pt.x;
|
||||||
|
y1 = pt.y;
|
||||||
}
|
}
|
||||||
resource->SetSize(x1, y1, width1, height1);
|
handlerControl->SetSize(x1, y1, width1, height1);
|
||||||
|
resource->SetSize(resourceX, resourceY, resourceWidth, resourceHeight);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// Correction 31/12/98. We need to round down the values to take into account
|
||||||
|
// the fact that several pixels map to the same dialog unit.
|
||||||
|
|
||||||
int newX = (int)(x - dragOffsetX);
|
int newX = (int)(x - dragOffsetX);
|
||||||
int newY = (int)(y - dragOffsetY);
|
int newY = (int)(y - dragOffsetY);
|
||||||
handlerControl->Move(newX, newY);
|
int resourceX = newX;
|
||||||
OldOnMove(newX, newY);
|
int resourceY = newY;
|
||||||
|
|
||||||
// Also update the associated resource
|
// Update the associated resource
|
||||||
if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
|
if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
|
||||||
{
|
{
|
||||||
wxPoint pt = handlerControl->GetParent()->ConvertPixelsToDialog(wxPoint(newX, newY));
|
wxPoint pt = handlerControl->GetParent()->ConvertPixelsToDialog(wxPoint(newX, newY));
|
||||||
newX = pt.x; newY = pt.y;
|
pt = handlerControl->GetParent()->ConvertDialogToPixels(pt);
|
||||||
|
pt = handlerControl->GetParent()->ConvertPixelsToDialog(pt);
|
||||||
|
resourceX = pt.x; resourceY = pt.y;
|
||||||
|
pt = handlerControl->GetParent()->ConvertDialogToPixels(pt);
|
||||||
|
|
||||||
|
// Having converted it several times, we know it'll map to dialog units exactly.
|
||||||
|
newX = pt.x;
|
||||||
|
newY = pt.y;
|
||||||
}
|
}
|
||||||
resource->SetSize(newX, newY, resource->GetWidth(), resource->GetHeight());
|
handlerControl->Move(newX, newY);
|
||||||
|
OldOnMove(newX, newY);
|
||||||
|
|
||||||
|
resource->SetSize(resourceX, resourceY, resource->GetWidth(), resource->GetHeight());
|
||||||
|
|
||||||
// Also move other selected items
|
// Also move other selected items
|
||||||
wxNode *node = panel->GetChildren().First();
|
wxNode *node = panel->GetChildren().First();
|
||||||
@@ -1044,18 +1090,28 @@ void wxResourceEditorControlHandler::OnDragEnd(int x, int y, int WXUNUSED(keys),
|
|||||||
item->GetPosition(&x1, &y1);
|
item->GetPosition(&x1, &y1);
|
||||||
int x2 = (int)(x1 + (x - dragOffsetX) - xpos);
|
int x2 = (int)(x1 + (x - dragOffsetX) - xpos);
|
||||||
int y2 = (int)(y1 + (y - dragOffsetY) - ypos);
|
int y2 = (int)(y1 + (y - dragOffsetY) - ypos);
|
||||||
|
|
||||||
|
// Update the associated resource
|
||||||
|
resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(item);
|
||||||
|
if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
|
||||||
|
{
|
||||||
|
wxPoint pt = item->GetParent()->ConvertPixelsToDialog(wxPoint(x2, y2));
|
||||||
|
pt = item->GetParent()->ConvertDialogToPixels(pt);
|
||||||
|
pt = item->GetParent()->ConvertPixelsToDialog(pt);
|
||||||
|
|
||||||
|
resourceX = pt.x; resourceY = pt.y;
|
||||||
|
pt = handlerControl->GetParent()->ConvertDialogToPixels(pt);
|
||||||
|
|
||||||
|
// Having converted it several times, we know it'll map to dialog units exactly
|
||||||
|
x2 = pt.x;
|
||||||
|
y2 = pt.y;
|
||||||
|
}
|
||||||
|
|
||||||
item->Move(x2, y2);
|
item->Move(x2, y2);
|
||||||
((wxResourceEditorControlHandler *)item->GetEventHandler())->OldOnMove(x2, y2);
|
((wxResourceEditorControlHandler *)item->GetEventHandler())->OldOnMove(x2, y2);
|
||||||
((wxResourceEditorControlHandler *)item->GetEventHandler())->DrawSelectionHandles(dc);
|
((wxResourceEditorControlHandler *)item->GetEventHandler())->DrawSelectionHandles(dc);
|
||||||
|
|
||||||
// Also update the associated resource
|
resource->SetSize(resourceX, resourceY, resource->GetWidth(), resource->GetHeight());
|
||||||
resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(item);
|
|
||||||
if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
|
|
||||||
{
|
|
||||||
wxPoint pt = item->GetParent()->ConvertPixelsToDialog(wxPoint(newX, newY));
|
|
||||||
x2 = pt.x; y2 = pt.y;
|
|
||||||
}
|
|
||||||
resource->SetSize(x2, y2, resource->GetWidth(), resource->GetHeight());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,13 +16,9 @@ WXDIR = $(WXWIN)
|
|||||||
|
|
||||||
WXLIBDIR = $(WXDIR)\lib
|
WXLIBDIR = $(WXDIR)\lib
|
||||||
WXINC = $(WXDIR)\include\msw
|
WXINC = $(WXDIR)\include\msw
|
||||||
WXBASESRC = $(WXDIR)\src\base
|
|
||||||
WXBASEINC = $(WXDIR)\include\base
|
WXBASEINC = $(WXDIR)\include\base
|
||||||
WXLIB = $(WXLIBDIR)\wx32.lib
|
WXLIB = $(WXLIBDIR)\wx32.lib
|
||||||
WXPROPDIR = $(WXDIR)\utils\wxprop
|
LIBS=$(WXLIB) cw32 import32 ole2w32
|
||||||
WXPROPINC = $(WXPROPDIR)\src
|
|
||||||
WXPROPLIB = $(WXDIR)\lib\wxprop.lib
|
|
||||||
LIBS=$(WXLIB) $(WXPROPLIB) cw32 import32 ole2w32
|
|
||||||
INCFILE = includes.cfg
|
INCFILE = includes.cfg
|
||||||
|
|
||||||
TARGET=dialoged
|
TARGET=dialoged
|
||||||
@@ -40,7 +36,7 @@ CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) @$(INCFILE)
|
|||||||
|
|
||||||
OBJECTS = dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj winprop.obj edtree.obj edlist.obj symbtable.obj winstyle.obj
|
OBJECTS = dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj winprop.obj edtree.obj edlist.obj symbtable.obj winstyle.obj
|
||||||
|
|
||||||
$(TARGET).exe: wxprop $(INCFILE) $(OBJECTS) $(TARGET).def $(TARGET).res
|
$(TARGET).exe: $(INCFILE) $(OBJECTS) $(TARGET).def $(TARGET).res
|
||||||
tlink32 $(LINKFLAGS) @&&!
|
tlink32 $(LINKFLAGS) @&&!
|
||||||
c0w32.obj $(OBJECTS)
|
c0w32.obj $(OBJECTS)
|
||||||
$(TARGET)
|
$(TARGET)
|
||||||
@@ -58,11 +54,6 @@ $(INCFILE): $(MAKEFILENAME)
|
|||||||
$(TARGET).res : $(TARGET).rc $(WXDIR)\include\msw\wx.rc
|
$(TARGET).res : $(TARGET).rc $(WXDIR)\include\msw\wx.rc
|
||||||
brc32 -r /i$(BCCDIR)\include /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa $(TARGET)
|
brc32 -r /i$(BCCDIR)\include /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa $(TARGET)
|
||||||
|
|
||||||
wxprop:
|
|
||||||
cd $(WXPROPDIR)\src
|
|
||||||
make -f makefile.b32
|
|
||||||
cd $(WXDIR)\utils\dialoged\src
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-erase *.obj *.exe *.res *.map *.rws
|
-erase *.obj *.exe *.res *.map *.rws
|
||||||
|
|
||||||
|
@@ -1,87 +1,20 @@
|
|||||||
#
|
#
|
||||||
# File: makefile.bcc
|
# File: makefile.bcc
|
||||||
# Author: Julian Smart
|
# Author: Julian Smart
|
||||||
# Created: 1993
|
# Created: 1998
|
||||||
# Updated:
|
# Updated:
|
||||||
# Copyright: (c) 1993, AIAI, University of Edinburgh
|
|
||||||
#
|
#
|
||||||
# "%W% %G%"
|
# Builds a BC++ 16-bit Dialog Editor
|
||||||
#
|
|
||||||
# Makefile : Builds Dialog Editor (Borland, 16-bit)
|
|
||||||
|
|
||||||
!if "$(BCCDIR)" == ""
|
|
||||||
!error You must define the BCCDIR variable in autoexec.bat, e.g. BCCDIR=d:\bc4
|
|
||||||
!endif
|
|
||||||
|
|
||||||
!if "$(WXWIN)" == ""
|
!if "$(WXWIN)" == ""
|
||||||
!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
|
!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!ifndef FINAL
|
|
||||||
FINAL=0
|
|
||||||
!endif
|
|
||||||
|
|
||||||
WXDIR = $(WXWIN)
|
WXDIR = $(WXWIN)
|
||||||
!include $(WXDIR)\src\makebcc.env
|
|
||||||
|
|
||||||
THISDIR = $(WXDIR)\utils\dialoged\src
|
TARGET=dialoged
|
||||||
WXLIB = $(WXDIR)\lib\wx.lib
|
OBJECTS=dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj\
|
||||||
WXPROPDIR = $(WXDIR)\utils\wxprop
|
winprop.obj edtree.obj edlist.obj symbtabl.obj winstyle.obj
|
||||||
WXPROPINC = $(WXPROPDIR)\src
|
|
||||||
WXPROPLIB = $(WXPROPDIR)\lib\wxprop.lib
|
|
||||||
|
|
||||||
LIBS=$(WXLIB) $(WXPROPLIB) mathwl cwl import
|
!include $(WXDIR)\src\makeprog.bcc
|
||||||
INC=-I$(WXDIR)\include\base -I$(WXDIR)\include\msw
|
|
||||||
CFG=$(WXDIR)\src\wxwin.cfg
|
|
||||||
INCFILE = includes.cfg
|
|
||||||
|
|
||||||
|
|
||||||
!if "$(FINAL)" == "0"
|
|
||||||
LINKFLAGS=/v/Vt /Twe /L$(WXDIR)\lib;$(BCCDIR)\lib
|
|
||||||
OPT = -Od
|
|
||||||
DEBUG_FLAGS= -v
|
|
||||||
!else
|
|
||||||
LINKFLAGS=/Twe /L$(WXDIR)\lib;$(BCCDIR)\lib
|
|
||||||
OPT = -O2
|
|
||||||
DEBUG_FLAGS =
|
|
||||||
!endif
|
|
||||||
CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) @$(INCFILE)
|
|
||||||
|
|
||||||
OBJECTS = wx_resed.obj wx_rdlg.obj wx_reswr.obj wx_repal.obj wx_rprop.obj dialoged.obj
|
|
||||||
|
|
||||||
all: dialoged.exe
|
|
||||||
|
|
||||||
dialoged.exe: $(INCFILE) $(WXLIB) $(OBJECTS) dialoged.def dialoged.res
|
|
||||||
tlink $(LINKFLAGS) @&&!
|
|
||||||
c0wl.obj $(OBJECTS)
|
|
||||||
dialoged
|
|
||||||
nul
|
|
||||||
$(LIBS) $(WXPROPLIB)
|
|
||||||
dialoged.def
|
|
||||||
!
|
|
||||||
rc -30 -K dialoged.res
|
|
||||||
|
|
||||||
.$(SRCSUFF).obj:
|
|
||||||
bcc $(CPPFLAGS) -c {$< }
|
|
||||||
|
|
||||||
dialoged.obj: dialoged.$(SRCSUFF) wx_resed.h
|
|
||||||
wx_resed.obj: wx_resed.$(SRCSUFF) wx_resed.h wx_rprop.h
|
|
||||||
wx_resed.obj: wx_rdlg.$(SRCSUFF) wx_resed.h wx_rprop.h
|
|
||||||
wx_rprop.obj: wx_rprop.$(SRCSUFF) wx_resed.h wx_rprop.h
|
|
||||||
wx_reswr.obj: wx_reswr.$(SRCSUFF) wx_resed.h
|
|
||||||
wx_repal.obj: wx_repal.$(SRCSUFF) wx_repal.h
|
|
||||||
|
|
||||||
dialoged.res : dialoged.rc $(WXDIR)\include\msw\wx.rc
|
|
||||||
rc -r /i$(BCCDIR)\include /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa dialoged
|
|
||||||
|
|
||||||
$(INCFILE): $(MAKEFILENAME)
|
|
||||||
copy &&!
|
|
||||||
-I..\..\wxprop\src
|
|
||||||
! $(INCFILE)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-erase *.obj
|
|
||||||
-erase *.exe
|
|
||||||
-erase *.res
|
|
||||||
-erase *.map
|
|
||||||
-erase *.rws
|
|
||||||
|
@@ -20,23 +20,8 @@ WXLIB = $(WXDIR)\lib\wx.lib
|
|||||||
|
|
||||||
DOCDIR = $(WXDIR)\utils\dialoged\docs
|
DOCDIR = $(WXDIR)\utils\dialoged\docs
|
||||||
|
|
||||||
PROPDIR = $(WXDIR)\utils\wxprop
|
|
||||||
PROPINC = $(PROPDIR)\src
|
|
||||||
PROPLIB = $(PROPDIR)\lib\wxprop.lib
|
|
||||||
|
|
||||||
TREEDIR = $(WXDIR)\utils\wxtree
|
LIBS=$(WXLIB) oldnames libw llibcew commdlg shell ddeml
|
||||||
TREEINC = $(TREEDIR)\src
|
|
||||||
TREELIB = $(TREEDIR)\lib\wxtree.lib
|
|
||||||
|
|
||||||
DIBDIR = $(WXDIR)\utils\dib
|
|
||||||
DIBLIB = $(DIBDIR)\dib.lib
|
|
||||||
DIBINC = $(DIBDIR)
|
|
||||||
|
|
||||||
RCDIR = $(WXDIR)\utils\rcparser
|
|
||||||
RCLIB = $(RCDIR)\lib\rcparser.lib
|
|
||||||
RCINC = $(RCDIR)\src
|
|
||||||
|
|
||||||
LIBS=$(WXLIB) $(PROPLIB) oldnames libw llibcew commdlg shell ddeml
|
|
||||||
INC=/I$(WXDIR)\include\base /I$(WXDIR)\include\msw /I$(PROPINC)
|
INC=/I$(WXDIR)\include\base /I$(WXDIR)\include\msw /I$(PROPINC)
|
||||||
|
|
||||||
!ifndef FINAL
|
!ifndef FINAL
|
||||||
|
@@ -14,10 +14,6 @@
|
|||||||
# Set WXDIR for your system
|
# Set WXDIR for your system
|
||||||
WXDIR = $(WXWIN)
|
WXDIR = $(WXWIN)
|
||||||
THISDIR = $(WXDIR)\utils\dialoged\src
|
THISDIR = $(WXDIR)\utils\dialoged\src
|
||||||
PROPDIR = $(WXDIR)\utils\wxprop
|
|
||||||
PROPLIB=$(PROPDIR)\lib\wxprop.lib
|
|
||||||
EXTRALIBS=$(PROPDIR)\lib\wxprop.lib
|
|
||||||
EXTRAINC=/I$(PROPDIR)\src
|
|
||||||
DOCDIR=$(WXDIR)\docs
|
DOCDIR=$(WXDIR)\docs
|
||||||
LOCALDOCDIR=$(WXDIR)\utils\dialoged\docs
|
LOCALDOCDIR=$(WXDIR)\utils\dialoged\docs
|
||||||
|
|
||||||
@@ -28,7 +24,7 @@ PROGRAM=dialoged
|
|||||||
OBJECTS = dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj\
|
OBJECTS = dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj\
|
||||||
winprop.obj edtree.obj edlist.obj symbtabl.obj winstyle.obj
|
winprop.obj edtree.obj edlist.obj symbtabl.obj winstyle.obj
|
||||||
|
|
||||||
all: wxprop dialoged.exe
|
all: dialoged.exe
|
||||||
|
|
||||||
wx:
|
wx:
|
||||||
cd $(WXDIR)\src\msw
|
cd $(WXDIR)\src\msw
|
||||||
@@ -40,7 +36,7 @@ wxclean:
|
|||||||
nmake -f makefile.nt clean
|
nmake -f makefile.nt clean
|
||||||
cd $(THISDIR)
|
cd $(THISDIR)
|
||||||
|
|
||||||
$(PROGRAM).exe: $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(PROPLIB) $(PROGRAM).res
|
$(PROGRAM).exe: $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(PROGRAM).res
|
||||||
$(link) @<<
|
$(link) @<<
|
||||||
-out:$(PROGRAM).exe
|
-out:$(PROGRAM).exe
|
||||||
$(LINKFLAGS)
|
$(LINKFLAGS)
|
||||||
@@ -96,16 +92,6 @@ $(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
|||||||
$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc
|
$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc
|
||||||
$(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc
|
$(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc
|
||||||
|
|
||||||
wxprop:
|
|
||||||
cd $(PROPDIR)\src
|
|
||||||
nmake -f makefile.nt FINAL=$(FINAL)
|
|
||||||
cd $(THISDIR)
|
|
||||||
|
|
||||||
clean_wxprop:
|
|
||||||
cd $(PROPDIR)\src
|
|
||||||
nmake -f makefile.nt clean
|
|
||||||
cd $(THISDIR)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-erase *.obj
|
-erase *.obj
|
||||||
-erase *.sbr
|
-erase *.sbr
|
||||||
|
@@ -1,123 +1,18 @@
|
|||||||
#
|
#
|
||||||
# File: makefile.unx
|
# File: makefile.unx
|
||||||
# Author: Julian Smart
|
# Author: Julian Smart
|
||||||
# Created: 1993
|
# Created: 1998
|
||||||
# Updated:
|
# Updated:
|
||||||
# Copyright: (c) 1993, AIAI, University of Edinburgh
|
# Copyright: (c) 1998 Julian Smart
|
||||||
#
|
#
|
||||||
# "%W% %G%"
|
# "%W% %G%"
|
||||||
#
|
#
|
||||||
# Makefile for dialoged example (UNIX).
|
# Makefile for Dialog Editor (Unix)
|
||||||
|
|
||||||
WXDIR = ../../..
|
PROGRAM=dialoged
|
||||||
|
|
||||||
# All common UNIX compiler flags and options are now in
|
OBJECTS = dialoged.o reseditr.o dlghndlr.o reswrite.o\
|
||||||
# this central makefile.
|
winprop.o edtree.o edlist.o symbtabl.o winstyle.o
|
||||||
include $(WXDIR)/src/make.env
|
|
||||||
|
|
||||||
WXPROPDIR = $(WXDIR)/utils/wxprop
|
include ../../../src/makeprog.env
|
||||||
WXPROPINC = $(WXDIR)/utils/wxprop/src
|
|
||||||
WXPROPLIB = $(WXDIR)/utils/wxprop/lib
|
|
||||||
|
|
||||||
DIALOGEDDIR = $(WXDIR)/utils/dialoged
|
|
||||||
|
|
||||||
OBJECTS = $(OBJDIR)/dialoged.o $(OBJDIR)/wx_repal.o $(OBJDIR)/wx_resed.o $(OBJDIR)/wx_rdlg.o $(OBJDIR)/wx_reswr.o $(OBJDIR)/wx_rprop.o
|
|
||||||
|
|
||||||
|
|
||||||
INC = $(COMPPATHS) -I$(WXDIR)/include/x -I$(WXDIR)/include/base -I$(WXPROPINC)
|
|
||||||
|
|
||||||
XVIEWLDLIBS = -lwxprop_ol -lwx_ol -lxview -lolgx -lX11 -lm $(COMPLIBS)
|
|
||||||
MOTIFLDLIBS = -lwxprop_motif -lwx_motif -lXm -lXt -lX11 -lm $(COMPLIBS)
|
|
||||||
HPLDLIBS = -lwxprop_hp -lwx_hp -lXm -lXt -lX11 -lm $(HPCOMPLIBS)
|
|
||||||
# Default
|
|
||||||
LDLIBS=$(XVIEWLDLIBS)
|
|
||||||
|
|
||||||
CPPFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) -DDEBUG='$(DEBUG)' $(DEBUGFLAGS) $(WARN) $(OPT)
|
|
||||||
LDFLAGS = $(XLIB) -L$(WXDIR)/lib -L$(WXPROPLIB)
|
|
||||||
|
|
||||||
.SUFFIXES:
|
|
||||||
|
|
||||||
all: $(OBJDIR) dialoged$(GUISUFFIX)
|
|
||||||
|
|
||||||
wx_ol:
|
|
||||||
cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx xview
|
|
||||||
|
|
||||||
wx_motif:
|
|
||||||
cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx motif
|
|
||||||
|
|
||||||
motif:
|
|
||||||
$(MAKE) -f makefile.unx dialoged_motif GUISUFFIX=_motif GUI=-Dwx_motif GUISUFFIX=_motif OPT='$(OPT)' LDLIBS='$(MOTIFLDLIBS)'\
|
|
||||||
OPTIONS='$(OPTIONS)' DEBUG='$(DEBUG)' DEBUGFLAGS='$(DEBUGFLAGS)' WARN='$(WARN)' XLIB='$(XLIB)' XINCLUDE='$(XINCLUDE)' XVIEW_LINK=
|
|
||||||
|
|
||||||
xview:
|
|
||||||
$(MAKE) -f makefile.unx dialoged_ol GUI=-Dwx_xview GUISUFFIX=_ol CC=$(CC) OPTIONS='$(OPTIONS)'\
|
|
||||||
DEBUG='$(DEBUG)' DEBUGFLAGS='$(DEBUGFLAGS)' WARN='$(WARN)' XLIB='$(XLIB)' XINCLUDE='$(XINCLUDE)'
|
|
||||||
|
|
||||||
hp:
|
|
||||||
$(MAKE) -f makefile.unx GUI=-Dwx_motif GUISUFFIX=_hp CC=CC DEBUG='$(DEBUG)' DEBUGFLAGS='$(DEBUGFLAGS)' WARN='-w' \
|
|
||||||
XINCLUDE='$(HPXINCLUDE)' XLIB='$(HPXLIB)' XVIEW_LINK='' LDLIBS='$(HPLDLIBS)'
|
|
||||||
|
|
||||||
$(OBJDIR):
|
|
||||||
mkdir $(OBJDIR)
|
|
||||||
|
|
||||||
dialoged$(GUISUFFIX): $(OBJECTS) $(WXLIB)
|
|
||||||
$(CC) $(LDFLAGS) -o dialoged$(GUISUFFIX) $(OBJECTS) $(XVIEW_LINK) $(LDLIBS)
|
|
||||||
|
|
||||||
$(OBJDIR)/dialoged.o: dialoged.$(SRCSUFF) dialoged.h
|
|
||||||
$(CC) -c $(CPPFLAGS) -o $@ dialoged.$(SRCSUFF)
|
|
||||||
|
|
||||||
$(OBJDIR)/wx_rprop.o: wx_rprop.$(SRCSUFF)
|
|
||||||
$(CC) -c $(CPPFLAGS) -o $@ wx_rprop.$(SRCSUFF)
|
|
||||||
|
|
||||||
$(OBJDIR)/wx_resed.o: wx_resed.$(SRCSUFF) wx_resed.h
|
|
||||||
$(CC) -c $(CPPFLAGS) -o $@ wx_resed.$(SRCSUFF)
|
|
||||||
|
|
||||||
$(OBJDIR)/wx_rdlg.o: wx_rdlg.$(SRCSUFF) wx_resed.h
|
|
||||||
$(CC) -c $(CPPFLAGS) -o $@ wx_rdlg.$(SRCSUFF)
|
|
||||||
|
|
||||||
$(OBJDIR)/wx_repal.o: wx_repal.$(SRCSUFF) wx_repal.h
|
|
||||||
$(CC) -c $(CPPFLAGS) -o $@ wx_repal.$(SRCSUFF)
|
|
||||||
|
|
||||||
$(OBJDIR)/wx_reswr.o: wx_reswr.$(SRCSUFF) wx_resed.h
|
|
||||||
$(CC) -c $(CPPFLAGS) -o $@ wx_reswr.$(SRCSUFF)
|
|
||||||
|
|
||||||
wxprop_motif:
|
|
||||||
cd $(WXPROPDIR)/src; $(MAKE) -f makefile.unx motif OPT='$(OPT)'
|
|
||||||
|
|
||||||
wxprop_ol:
|
|
||||||
cd $(WXPROPDIR)/src
|
|
||||||
$(MAKE) -f makefile.unx xview OPT='$(OPT)'
|
|
||||||
|
|
||||||
clean_motif:
|
|
||||||
$(MAKE) -f makefile.unx GUISUFFIX=_motif cleanany
|
|
||||||
|
|
||||||
clean_ol:
|
|
||||||
$(MAKE) -f makefile.unx GUISUFFIX=_ol cleanany
|
|
||||||
|
|
||||||
clean_hp:
|
|
||||||
$(MAKE) -f makefile.unx GUISUFFIX=_hp cleanany
|
|
||||||
|
|
||||||
cleanany:
|
|
||||||
rm -f $(OBJECTS) $(TESTOBJECTS) test$(GUISUFFIX) dialoged$(GUISUFFIX) core
|
|
||||||
|
|
||||||
HTMLDIR=/home/hardy/html/wx/manuals
|
|
||||||
docs: ps xlp
|
|
||||||
ps: $(DIALOGEDDIR)/docs/dialoged.ps
|
|
||||||
xlp: $(DIALOGEDDIR)/docs/dialoged.xlp
|
|
||||||
html: $(HTMLDIR)/dialoged/dialoged_contents.html
|
|
||||||
|
|
||||||
$(DIALOGEDDIR)/docs/dialoged.xlp: $(DIALOGEDDIR)/docs/dialoged.tex $(DIALOGEDDIR)/docs/classes.tex $(DIALOGEDDIR)/docs/body.tex $(DIALOGEDDIR)/docs/tech.tex
|
|
||||||
cd ../docs; tex2rtf dialoged.tex tmp.xlp -xlp -twice
|
|
||||||
sed -e "s/WXHELPCONTENTS/wxChart Manual/g" < $(DIALOGEDDIR)/docs/tmp.xlp > $(DIALOGEDDIR)/docs/dialoged.xlp
|
|
||||||
/bin/rm -f $(DIALOGEDDIR)/docs/tmp.xlp
|
|
||||||
|
|
||||||
$(HTMLDIR)/dialoged/dialoged_contents.html: $(DIALOGEDDIR)/docs/dialoged.tex $(DIALOGEDDIR)/docs/body.tex $(DIALOGEDDIR)/docs/tech.tex
|
|
||||||
cd ../docs; tex2rtf dialoged.tex $(HTMLDIR)/dialoged/dialoged.html -html -twice
|
|
||||||
|
|
||||||
$(DIALOGEDDIR)/docs/dialoged.dvi: $(DIALOGEDDIR)/docs/dialoged.tex $(DIALOGEDDIR)/docs/classes.tex
|
|
||||||
cd $(DIALOGEDDIR)/docs; latex dialoged; latex dialoged; makeindex dialoged; latex dialoged; latex dialoged
|
|
||||||
|
|
||||||
# makeindex dialoged; bibtex dialoged; latex dialoged; latex dialoged
|
|
||||||
|
|
||||||
$(DIALOGEDDIR)/docs/dialoged.ps: $(DIALOGEDDIR)/docs/dialoged.dvi
|
|
||||||
cd $(DIALOGEDDIR)/docs; dvips -f -r < dialoged.dvi > dialoged.ps
|
|
||||||
|
@@ -1,62 +1,15 @@
|
|||||||
# Dialog Editor makefile for Watcom
|
#
|
||||||
|
# Makefile for WATCOM
|
||||||
|
#
|
||||||
|
# Created by D.Chubraev, chubraev@iem.ee.ethz.ch
|
||||||
|
# 8 Nov 1994
|
||||||
|
#
|
||||||
|
|
||||||
WXDIR = ..\..\..
|
WXDIR = $(%WXWIN)
|
||||||
|
|
||||||
# EXTRACPPFLAGS = $(CLIPSFLAGS)
|
PROGRAM = dialoged
|
||||||
|
OBJECTS = dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj winprop.obj edtree.obj edlist.obj symbtabl.obj winstyle.obj
|
||||||
|
|
||||||
!include $(WXDIR)\src\makewat.env
|
!include $(WXDIR)\src\makeprog.wat
|
||||||
|
|
||||||
WXPROPDIR = $(WXDIR)\utils\wxprop
|
|
||||||
WXPROPLIB = $(WXPROPDIR)\lib\wxprop.lib
|
|
||||||
WXPROPINC = $(WXPROPDIR)\src
|
|
||||||
|
|
||||||
THISDIR = $(WXDIR)\utils\dialoged\src
|
|
||||||
|
|
||||||
NAME = dialoged
|
|
||||||
LNK = $(name).lnk
|
|
||||||
|
|
||||||
IFLAGS = -i=$(WXINC) -i=$(WXBASEINC) -i=$(WXPROPINC)
|
|
||||||
|
|
||||||
PROGOBJECTS = dialoged.obj wx_resed.obj wx_rdlg.obj wx_reswr.obj wx_repal.obj wx_rprop.obj
|
|
||||||
|
|
||||||
all: wx wxprop erasepch $(PROGOBJECTS) dialoged.exe
|
|
||||||
|
|
||||||
wx: .SYMBOLIC
|
|
||||||
cd $(WXDIR)\src\msw
|
|
||||||
wmake -f makefile.wat all
|
|
||||||
cd $(THISDIR)
|
|
||||||
|
|
||||||
wxprop: .SYMBOLIC
|
|
||||||
cd $(WXPROPDIR)\src
|
|
||||||
wmake -f makefile.wat all
|
|
||||||
cd $(THISDIR)
|
|
||||||
|
|
||||||
$(name).exe : $(PROGOBJECTS) $(name).res $(LNK) $(WXDIR)\lib\wx$(LEVEL).lib $(WXPROPLIB)
|
|
||||||
wlink @$(LNK)
|
|
||||||
$(BINDCOMMAND) $(name).res
|
|
||||||
|
|
||||||
$(name).res : $(name).rc $(WXDIR)\include\msw\wx.rc
|
|
||||||
$(RC) $(RESFLAGS1) /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa $(name).rc
|
|
||||||
|
|
||||||
$(LNK) : makefile.wat
|
|
||||||
%create $(LNK)
|
|
||||||
@%append $(LNK) $(DEBUGINFO)
|
|
||||||
@%append $(LNK) system $(LINKOPTION)
|
|
||||||
@%append $(LNK) $(MINDATA)
|
|
||||||
@%append $(LNK) $(MAXDATA)
|
|
||||||
@%append $(LNK) $(STACK)
|
|
||||||
@%append $(LNK) name $(name)
|
|
||||||
@%append $(LNK) file $(WXDIR)\lib\wx$(LEVEL).lib
|
|
||||||
@%append $(LNK) file $(WXPROPLIB)
|
|
||||||
@for %i in ($(EXTRALIBS)) do @%append $(LNK) file %i
|
|
||||||
@for %i in ($(PROGOBJECTS)) do @%append $(LNK) file %i
|
|
||||||
|
|
||||||
cleanutils: .SYMBOLIC
|
|
||||||
cd $(WXPROPDIR)\src
|
|
||||||
wmake -f makefile.wat clean
|
|
||||||
cd $(THISDIR)
|
|
||||||
|
|
||||||
clean: .SYMBOLIC
|
|
||||||
-erase *.obj *.bak *.err *.pch *.lbc *.res
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,3 +0,0 @@
|
|||||||
Linux
|
|
||||||
linux-gnu
|
|
||||||
linux
|
|