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
This commit is contained in:
Julian Smart
1998-12-31 16:15:45 +00:00
parent 8973fbec7e
commit e3a43801df
76 changed files with 9575 additions and 2686 deletions

View File

@@ -1329,7 +1329,8 @@ void wxTable::SetColDefs (int index, char *fieldName, int dataType, void *pData,
int cType, int size, bool keyField, bool upd,
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);
colDefs[index].ColName[DB_MAX_COLUMN_NAME_LEN] = 0; // glt 10/23/97

1119
src/generic/prop.cpp Normal file

File diff suppressed because it is too large Load Diff

743
src/generic/propform.cpp Normal file
View 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

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -146,6 +146,9 @@ LIB_CPP_SRC=\
../generic/panelg.cpp \
../generic/printps.cpp \
../generic/prntdlgg.cpp \
../generic/prop.cpp \
../generic/propform.cpp \
../generic/proplist.cpp \
../generic/sashwin.cpp \
../generic/scrolwin.cpp \
../generic/splitter.cpp \

View File

@@ -76,6 +76,9 @@ GENERICOBJS= \
$(MSWDIR)\imaglist.obj \
$(MSWDIR)\laywin.obj \
$(MSWDIR)\panelg.obj \
$(MSWDIR)\prop.obj \
$(MSWDIR)\proplist.obj \
$(MSWDIR)\propform.obj \
$(MSWDIR)\sashwin.obj \
$(MSWDIR)\scrolwin.obj \
$(MSWDIR)\splitter.obj \
@@ -606,6 +609,12 @@ $(MSWDIR)\msgdlgg.obj: $(GENDIR)\msgdlgg.$(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)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF)

View File

@@ -80,6 +80,9 @@ GENERICOBJS= \
$(MSWDIR)\msgdlgg.obj \
$(MSWDIR)\notebook.obj \
$(MSWDIR)\panelg.obj \
$(MSWDIR)\prop.obj \
$(MSWDIR)\propform.obj \
$(MSWDIR)\proplist.obj \
$(MSWDIR)\sashwin.obj \
$(MSWDIR)\scrolwin.obj \
$(MSWDIR)\splitter.obj \
@@ -592,6 +595,12 @@ $(MSWDIR)\printps.obj: $(GENDIR)\printps.$(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)\scrolwin.obj: $(GENDIR)\scrolwin.$(SRCSUFF)

View File

@@ -58,6 +58,9 @@ GENERICOBJS= \
$(GENDIR)\listctrl.obj \
$(GENDIR)\notebook.obj \
$(GENDIR)\panelg.obj \
$(GENDIR)\prop.obj \
$(GENDIR)\propform.obj \
$(GENDIR)\proplist.obj \
$(GENDIR)\scrolwin.obj \
$(GENDIR)\splitter.obj \
$(GENDIR)\statusbr.obj \
@@ -990,6 +993,21 @@ $(GENDIR)/prntdlgg.obj: $*.$(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)
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)

View File

@@ -66,6 +66,9 @@ GENERICOBJS= \
$(GENDIR)/laywin.$(OBJSUFF) \
$(GENDIR)/msgdlgg.$(OBJSUFF) \
$(GENDIR)/panelg.$(OBJSUFF) \
$(GENDIR)/prop.$(OBJSUFF) \
$(GENDIR)/propform.$(OBJSUFF) \
$(GENDIR)/proplist.$(OBJSUFF) \
$(GENDIR)/sashwin.$(OBJSUFF) \
$(GENDIR)/scrolwin.$(OBJSUFF) \
$(GENDIR)/splitter.$(OBJSUFF) \

View File

@@ -53,6 +53,9 @@ GENERICOBJS= \
$(GENDIR)\gridg.obj \
$(GENDIR)\laywin.obj \
$(GENDIR)\panelg.obj \
$(GENDIR)\prop.obj \
$(GENDIR)\propform.obj \
$(GENDIR)\proplist.obj \
$(GENDIR)\sashwin.obj \
$(GENDIR)\scrolwin.obj \
$(GENDIR)\splitter.obj \
@@ -1115,6 +1118,21 @@ $(GENDIR)/panelg.obj: $*.$(SRCSUFF)
$(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)
cl @<<
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
@@ -1380,18 +1398,23 @@ docs: allhlp allhtml allpdfrtf
alldocs: docs
hlp: wxhlp portinghlp # faqhlp
wxhlp: $(DOCDIR)/winhelp/wx.hlp
wxprophlp: $(DOCDIR)/winhelp/wxprop.hlp
faqhlp: $(DOCDIR)/winhelp/faq.hlp
refhlp: $(DOCDIR)/winhelp/techref.hlp
rtf: $(DOCDIR)/winhelp/wx.rtf
faqrtf: $(DOCDIR)/winhelp/faq.rtf
wxproprtf: $(DOCDIR)/winhelp/wxprop.rtf
pdfrtf: $(DOCDIR)/pdf/wx.rtf
faqpdfrtf: $(DOCDIR)/pdf/faq.rtf
wxproppdfrtf: $(DOCDIR)/pdf/wxprop.rtf
refpdfrtf: $(DOCDIR)/pdf/techref.rtf
html: wxhtml # faqhtml
wxhtml: $(DOCDIR)\html\wx\wx.htm
faqhtml: $(DOCDIR)\html\faq\faq.htm
wxprophtml: $(DOCDIR)\html\proplist\prop.htm
ps: wxps referencps # faqps
wxps: $(WXDIR)\docs\ps\wx.ps
wxpropps: $(WXDIR)\docs\ps\wxprop.ps
faqps: $(WXDIR)\docs\ps\faq.ps
referencps: $(WXDIR)\docs\ps\referenc.ps
@@ -1401,9 +1424,7 @@ portinghlp: $(DOCDIR)/winhelp/porting.hlp
portingpdfrtf: $(DOCDIR)/pdf/porting.rtf
portingps: $(WXDIR)\docs\ps\porting.ps
allhlp: wxhlp portinghlp # faqhlp
cd $(WXDIR)\utils\wxprop\src
nmake -f makefile.nt hlp
allhlp: wxhlp portinghlp wxprop # faqhlp
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.nt hlp
cd $(THISDIR)
@@ -1434,9 +1455,7 @@ allhlp: wxhlp portinghlp # faqhlp
# cd $(WXDIR)\utils\clips2c\src
# nmake -f makefile.nt hlp
allhtml: wxhtml portinghtml # faqhtml
cd $(WXDIR)\utils\wxprop\src
nmake -f makefile.nt html
allhtml: wxhtml portinghtml wxprophtml # faqhtml
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.nt html
cd $(THISDIR)
@@ -1468,16 +1487,12 @@ allhtml: wxhtml portinghtml # faqhtml
# cd $(WXDIR)\utils\clips2c\src
# nmake -f makefile.nt html
allps: wxps referencps portingps # faqps
cd $(WXDIR)\utils\wxprop\src
nmake -f makefile.nt ps
allps: wxps referencps portingps wxpropps # faqps
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.nt ps
cd $(THISDIR)
allpdfrtf: pdfrtf portingpdfrtf # faqpdfrtf
cd $(WXDIR)\utils\wxprop\src
nmake -f makefile.nt pdfrtf
allpdfrtf: pdfrtf portingpdfrtf wxproppdfrtf # faqpdfrtf
cd $(WXDIR)\utils\dialoged\src
nmake -f makefile.nt pdfrtf
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
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
cd $(DOCDIR)/latex/techref
-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
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
cd $(DOCDIR)\latex\techref
-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
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
cd $(DOCDIR)\latex\techref
-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\*.ref
-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)
$(WXDIR)\docs\latex\wx\manual.dvi: $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/manual.tex

View File

@@ -31,6 +31,9 @@ GENERICOBJS= choicdgg.obj &
gridg.obj &
laywin.obj &
panelg.obj &
prop.obj &
propform.obj &
proplist.obj &
sashwin.obj &
scrolwin.obj &
splitter.obj &
@@ -721,6 +724,15 @@ panelg.obj: $(GENDIR)\panelg.cpp
printps.obj: $(GENDIR)\printps.cpp
*$(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
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<

View File

@@ -103,6 +103,9 @@ GENERICOBJS= \
$(GENDIR)\gridg.obj \
$(GENDIR)\msgdlgg.obj \
$(GENDIR)\panelg.obj \
$(GENDIR)\prop.obj \
$(GENDIR)\propform.obj \
$(GENDIR)\proplist.obj \
$(GENDIR)\printps.obj \
$(GENDIR)\prntdlgg.obj \
$(GENDIR)\scrolwin.obj \
@@ -893,6 +896,21 @@ $(GENDIR)/panelg.obj: $*.$(SRCSUFF)
$(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)
cl @<<
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@

View File

@@ -142,6 +142,9 @@ LIB_CPP_SRC=\
../generic/laywin.cpp \
../generic/msgdlgg.cpp \
../generic/panelg.cpp \
../generic/prop.cpp \
../generic/proplist.cpp \
../generic/propform.cpp \
../generic/printps.cpp \
../generic/prntdlgg.cpp \
../generic/sashwin.cpp \