git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			527 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			527 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        dialogs.cpp
 | 
						|
// Purpose:     Implements Studio dialogs
 | 
						|
// Author:      Julian Smart
 | 
						|
// Modified by:
 | 
						|
// Created:     12/07/98
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c) Julian Smart
 | 
						|
// Licence:
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifdef __GNUG__
 | 
						|
// #pragma implementation
 | 
						|
#endif
 | 
						|
 | 
						|
// For compilers that support precompilation, includes "wx.h".
 | 
						|
#include "wx/wxprec.h"
 | 
						|
 | 
						|
#ifdef __BORLANDC__
 | 
						|
#pragma hdrstop
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef WX_PRECOMP
 | 
						|
#include <wx/wx.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#include <wx/deprecated/setup.h>
 | 
						|
#include <wx/deprecated/resource.h>
 | 
						|
#include "dialogs.h"
 | 
						|
#include "doc.h"
 | 
						|
#include "view.h"
 | 
						|
#include "studio.h"
 | 
						|
#include "studio_resources.h"
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csLabelEditingDialog, wxDialog)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csLabelEditingDialog, wxDialog)
 | 
						|
    EVT_BUTTON(wxID_OK, csLabelEditingDialog::OnOK)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
csLabelEditingDialog::csLabelEditingDialog(wxWindow* parent)
 | 
						|
{
 | 
						|
    wxLoadFromResource(this, parent, "shape_label_dialog");
 | 
						|
 | 
						|
    // Accelerators
 | 
						|
    wxAcceleratorEntry entries[1];
 | 
						|
    entries[0].Set(wxACCEL_CTRL, WXK_RETURN, wxID_OK);
 | 
						|
    wxAcceleratorTable accel(1, entries);
 | 
						|
    SetAcceleratorTable(accel);
 | 
						|
 | 
						|
    Centre();
 | 
						|
 | 
						|
    wxTextCtrl* textCtrl = (wxTextCtrl*) FindWindow(ID_LABELTEXT);
 | 
						|
    wxASSERT( (textCtrl != NULL) );
 | 
						|
 | 
						|
//    textCtrl->SetAcceleratorTable(accel);
 | 
						|
 | 
						|
    textCtrl->SetFocus();
 | 
						|
}
 | 
						|
 | 
						|
void csLabelEditingDialog::OnOK(wxCommandEvent& event)
 | 
						|
{
 | 
						|
    wxTextCtrl* textCtrl = (wxTextCtrl*) FindWindow(ID_LABELTEXT);
 | 
						|
    wxASSERT( (textCtrl != NULL) );
 | 
						|
 | 
						|
    SetShapeLabel(textCtrl->GetValue());
 | 
						|
 | 
						|
    wxDialog::OnOK(event);
 | 
						|
}
 | 
						|
 | 
						|
void csLabelEditingDialog::SetShapeLabel(const wxString& label)
 | 
						|
{
 | 
						|
    wxTextCtrl* textCtrl = (wxTextCtrl*) FindWindow(ID_LABELTEXT);
 | 
						|
    wxASSERT( (textCtrl != NULL) );
 | 
						|
 | 
						|
    m_label = label;
 | 
						|
 | 
						|
    textCtrl->SetValue(label);
 | 
						|
}
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csSettingsDialog, wxDialog)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csSettingsDialog, wxDialog)
 | 
						|
    EVT_BUTTON(wxID_OK, csSettingsDialog::OnOK)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
#define PROPERTY_DIALOG_WIDTH   400
 | 
						|
#define PROPERTY_DIALOG_HEIGHT  400
 | 
						|
 | 
						|
// For 400x400 settings dialog, size your panels to about 375x325 in dialog editor
 | 
						|
 | 
						|
csSettingsDialog::csSettingsDialog(wxWindow* parent):
 | 
						|
    wxDialog(parent, -1, "Settings", wxPoint(0, 0), wxSize(PROPERTY_DIALOG_WIDTH, PROPERTY_DIALOG_HEIGHT))
 | 
						|
{
 | 
						|
    m_generalSettings = NULL;
 | 
						|
    m_diagramSettings = NULL;
 | 
						|
 | 
						|
    m_notebook = new wxNotebook(this, ID_PROPERTY_NOTEBOOK,
 | 
						|
         wxPoint(2, 2), wxSize(PROPERTY_DIALOG_WIDTH - 4, PROPERTY_DIALOG_HEIGHT - 4));
 | 
						|
 | 
						|
    m_generalSettings = new wxPanel;
 | 
						|
 | 
						|
    bool success = wxLoadFromResource(m_generalSettings, m_notebook, "general_settings_dialog");
 | 
						|
    wxASSERT_MSG( (success), "Could not load general settings panel.");
 | 
						|
    m_notebook->AddPage(m_generalSettings, "General", TRUE);
 | 
						|
 | 
						|
    m_diagramSettings = new wxPanel;
 | 
						|
 | 
						|
    success = wxLoadFromResource(m_diagramSettings, m_notebook, "diagram_settings_dialog");
 | 
						|
    wxASSERT_MSG( (success), "Could not load diagram settings panel.");
 | 
						|
    m_notebook->AddPage(m_diagramSettings, "Diagram");
 | 
						|
 | 
						|
    int largeButtonWidth = 70;
 | 
						|
    int largeButtonHeight = 22;
 | 
						|
 | 
						|
    wxButton* okButton = new wxButton(this, wxID_OK, "OK", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight));
 | 
						|
    wxButton* cancelButton = new wxButton(this, wxID_CANCEL, "Cancel", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight));
 | 
						|
    wxButton* helpButton = new wxButton(this, wxID_HELP, "Help", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight));
 | 
						|
 | 
						|
    // Constraints for the notebook
 | 
						|
    wxLayoutConstraints *c = new wxLayoutConstraints;
 | 
						|
    c->top.SameAs     (this, wxTop, 5);
 | 
						|
    c->left.SameAs    (this, wxLeft, 5);
 | 
						|
    c->right.SameAs   (this, wxRight, 5);
 | 
						|
    c->bottom.SameAs  (cancelButton, wxTop, 5);
 | 
						|
    m_notebook->SetConstraints(c);
 | 
						|
 | 
						|
    // Constraints for the Help button
 | 
						|
    c = new wxLayoutConstraints;
 | 
						|
    c->width.AsIs();
 | 
						|
    c->height.AsIs();
 | 
						|
    c->right.SameAs    (this, wxRight, 5);
 | 
						|
    c->bottom.SameAs   (this, wxBottom, 5);
 | 
						|
    helpButton->SetConstraints(c);
 | 
						|
 | 
						|
    // Constraints for the Cancel button
 | 
						|
    c = new wxLayoutConstraints;
 | 
						|
    c->width.AsIs();
 | 
						|
    c->height.AsIs();
 | 
						|
    c->right.SameAs    (helpButton, wxLeft, 5);
 | 
						|
    c->bottom.SameAs   (this, wxBottom, 5);
 | 
						|
    cancelButton->SetConstraints(c);
 | 
						|
 | 
						|
    // Constraints for the OK button
 | 
						|
    c = new wxLayoutConstraints;
 | 
						|
    c->width.AsIs();
 | 
						|
    c->height.AsIs();
 | 
						|
    c->right.SameAs    (cancelButton, wxLeft, 5);
 | 
						|
    c->bottom.SameAs   (this, wxBottom, 5);
 | 
						|
    okButton->SetConstraints(c);
 | 
						|
 | 
						|
    okButton->SetDefault();
 | 
						|
    okButton->SetFocus();
 | 
						|
 | 
						|
    Layout();
 | 
						|
    Centre(wxBOTH);
 | 
						|
}
 | 
						|
 | 
						|
void csSettingsDialog::OnOK(wxCommandEvent& event)
 | 
						|
{
 | 
						|
    wxDialog::OnOK(event);
 | 
						|
}
 | 
						|
 | 
						|
bool csSettingsDialog::TransferDataToWindow()
 | 
						|
{
 | 
						|
    wxTextCtrl* gridSpacing = (wxTextCtrl*) m_diagramSettings->FindWindow(ID_GRID_SPACING);
 | 
						|
    wxASSERT_MSG( (gridSpacing != (wxTextCtrl*) NULL), "Could not find grid spacing control.");
 | 
						|
 | 
						|
    wxChoice* gridStyle = (wxChoice*) m_diagramSettings->FindWindow(ID_GRID_STYLE);
 | 
						|
    wxASSERT_MSG( (gridStyle != (wxChoice*) NULL), "Could not find grid style control.");
 | 
						|
 | 
						|
    gridStyle->SetSelection(wxGetApp().GetGridStyle());
 | 
						|
 | 
						|
    wxString str;
 | 
						|
    str.Printf("%d", wxGetApp().GetGridSpacing());
 | 
						|
    gridSpacing->SetValue(str);
 | 
						|
 | 
						|
    return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool csSettingsDialog::TransferDataFromWindow()
 | 
						|
{
 | 
						|
    wxTextCtrl* gridSpacing = (wxTextCtrl*) m_diagramSettings->FindWindow(ID_GRID_SPACING);
 | 
						|
    wxASSERT_MSG( (gridSpacing != (wxTextCtrl*) NULL), "Could not find grid spacing control.");
 | 
						|
 | 
						|
    wxChoice* gridStyle = (wxChoice*) m_diagramSettings->FindWindow(ID_GRID_STYLE);
 | 
						|
    wxASSERT_MSG( (gridStyle != (wxChoice*) NULL), "Could not find grid style control.");
 | 
						|
 | 
						|
    wxGetApp().SetGridStyle(gridStyle->GetSelection());
 | 
						|
    wxGetApp().SetGridSpacing(atoi(gridSpacing->GetValue()));
 | 
						|
 | 
						|
    if (wxGetApp().GetGridStyle() == csGRID_STYLE_DOTTED)
 | 
						|
    {
 | 
						|
        wxMessageBox("Dotted grid style not yet implemented.", "Studio", wxICON_EXCLAMATION);
 | 
						|
        return FALSE;
 | 
						|
    }
 | 
						|
 | 
						|
    // Apply settings to all open diagram documents
 | 
						|
    wxNode* node = wxGetApp().GetDocManager()->GetDocuments().First();
 | 
						|
    while (node)
 | 
						|
    {
 | 
						|
        wxDocument* doc = (wxDocument*) node->Data();
 | 
						|
        if (doc->IsKindOf(CLASSINFO(csDiagramDocument)))
 | 
						|
        {
 | 
						|
            csDiagramDocument* diagramDoc = (csDiagramDocument*) doc;
 | 
						|
            wxDiagram* diagram = (wxDiagram*) diagramDoc->GetDiagram();
 | 
						|
 | 
						|
            diagram->SetGridSpacing((double) wxGetApp().GetGridSpacing());
 | 
						|
            switch (wxGetApp().GetGridStyle())
 | 
						|
            {
 | 
						|
                case csGRID_STYLE_NONE:
 | 
						|
                {
 | 
						|
                    diagram->SetSnapToGrid(FALSE);
 | 
						|
                    break;
 | 
						|
                }
 | 
						|
                case csGRID_STYLE_INVISIBLE:
 | 
						|
                {
 | 
						|
                    diagram->SetSnapToGrid(TRUE);
 | 
						|
                    break;
 | 
						|
                }
 | 
						|
                case csGRID_STYLE_DOTTED:
 | 
						|
                {
 | 
						|
                    // TODO (not implemented in OGL)
 | 
						|
                    break;
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        node = node->Next();
 | 
						|
    }
 | 
						|
 | 
						|
    return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * Shape properties dialog (tabbed)
 | 
						|
 */
 | 
						|
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csShapePropertiesDialog, wxDialog)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csShapePropertiesDialog, wxDialog)
 | 
						|
    EVT_BUTTON(wxID_OK, csShapePropertiesDialog::OnOK)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
#define SHAPE_PROPERTY_DIALOG_WIDTH   400
 | 
						|
#define SHAPE_PROPERTY_DIALOG_HEIGHT  400
 | 
						|
 | 
						|
// For 400x400 settings dialog, size your panels to about 375x325 in dialog editor
 | 
						|
 | 
						|
csShapePropertiesDialog::csShapePropertiesDialog(wxWindow* parent, const wxString& title,
 | 
						|
  wxPanel* attributeDialog, const wxString& attributeDialogName):
 | 
						|
    wxDialog(parent, -1, title, wxPoint(0, 0), wxSize(SHAPE_PROPERTY_DIALOG_WIDTH, SHAPE_PROPERTY_DIALOG_HEIGHT))
 | 
						|
{
 | 
						|
    m_attributeDialog = attributeDialog;
 | 
						|
    m_alternativeAttributeDialog = NULL;
 | 
						|
    m_generalPropertiesDialog = NULL;
 | 
						|
 | 
						|
    m_notebook = new wxNotebook(this, ID_SHAPE_PROPERTY_NOTEBOOK,
 | 
						|
         wxPoint(2, 2), wxSize(SHAPE_PROPERTY_DIALOG_WIDTH - 4, SHAPE_PROPERTY_DIALOG_HEIGHT - 4));
 | 
						|
 | 
						|
    m_generalPropertiesDialog = new csGeneralShapePropertiesDialog;
 | 
						|
    bool success = wxLoadFromResource(m_generalPropertiesDialog, m_notebook, "general_shape_properties_dialog");
 | 
						|
    wxASSERT_MSG( (success), "Could not load general properties panel.");
 | 
						|
    m_notebook->AddPage(m_generalPropertiesDialog, "General");
 | 
						|
 | 
						|
    success = wxLoadFromResource(m_attributeDialog, m_notebook, attributeDialogName);
 | 
						|
    if (!success)
 | 
						|
    {
 | 
						|
        wxMessageBox("Could not load the attribute dialog for this shape.", "Studio", wxICON_EXCLAMATION);
 | 
						|
        delete m_attributeDialog;
 | 
						|
        m_attributeDialog = NULL;
 | 
						|
    }
 | 
						|
    else
 | 
						|
    {
 | 
						|
        m_notebook->AddPage(m_attributeDialog, "Attributes");
 | 
						|
    }
 | 
						|
 | 
						|
    // Try the alternative dialog (test code)
 | 
						|
    wxString str(attributeDialogName);
 | 
						|
    str += "1";
 | 
						|
    m_alternativeAttributeDialog = new wxPanel;
 | 
						|
    success = wxLoadFromResource(m_alternativeAttributeDialog, m_notebook, str);
 | 
						|
    if (success)
 | 
						|
    {
 | 
						|
        m_notebook->AddPage(m_alternativeAttributeDialog, "Attributes (alternative)");
 | 
						|
    }
 | 
						|
    else
 | 
						|
    {
 | 
						|
        delete m_alternativeAttributeDialog;
 | 
						|
        m_alternativeAttributeDialog = NULL;
 | 
						|
    }
 | 
						|
 | 
						|
    int largeButtonWidth = 70;
 | 
						|
    int largeButtonHeight = 22;
 | 
						|
 | 
						|
    wxButton* okButton = new wxButton(this, wxID_OK, "OK", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight));
 | 
						|
    wxButton* cancelButton = new wxButton(this, wxID_CANCEL, "Cancel", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight));
 | 
						|
    wxButton* helpButton = new wxButton(this, wxID_HELP, "Help", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight));
 | 
						|
 | 
						|
    // Constraints for the notebook
 | 
						|
    wxLayoutConstraints *c = new wxLayoutConstraints;
 | 
						|
    c->top.SameAs     (this, wxTop, 5);
 | 
						|
    c->left.SameAs    (this, wxLeft, 5);
 | 
						|
    c->right.SameAs   (this, wxRight, 5);
 | 
						|
    c->bottom.SameAs  (helpButton, wxTop, 5);
 | 
						|
    m_notebook->SetConstraints(c);
 | 
						|
 | 
						|
    // Constraints for the Help button
 | 
						|
    c = new wxLayoutConstraints;
 | 
						|
    c->width.AsIs();
 | 
						|
    c->height.AsIs();
 | 
						|
    c->right.SameAs    (this, wxRight, 5);
 | 
						|
    c->bottom.SameAs   (this, wxBottom, 5);
 | 
						|
    helpButton->SetConstraints(c);
 | 
						|
 | 
						|
    // Constraints for the Cancel button
 | 
						|
    c = new wxLayoutConstraints;
 | 
						|
    c->width.AsIs();
 | 
						|
    c->height.AsIs();
 | 
						|
    c->right.SameAs    (helpButton, wxLeft, 5);
 | 
						|
    c->bottom.SameAs   (this, wxBottom, 5);
 | 
						|
    cancelButton->SetConstraints(c);
 | 
						|
 | 
						|
    // Constraints for the OK button
 | 
						|
    c = new wxLayoutConstraints;
 | 
						|
    c->width.AsIs();
 | 
						|
    c->height.AsIs();
 | 
						|
    c->right.SameAs    (cancelButton, wxLeft, 5);
 | 
						|
    c->bottom.SameAs   (this, wxBottom, 5);
 | 
						|
    okButton->SetConstraints(c);
 | 
						|
 | 
						|
    okButton->SetDefault();
 | 
						|
    okButton->SetFocus();
 | 
						|
 | 
						|
    SetDefaults();
 | 
						|
 | 
						|
    Layout();
 | 
						|
    Centre(wxBOTH);
 | 
						|
}
 | 
						|
 | 
						|
void csShapePropertiesDialog::OnOK(wxCommandEvent& event)
 | 
						|
{
 | 
						|
    wxTextCtrl* textCtrl = (wxTextCtrl*) m_generalPropertiesDialog->FindWindow(ID_LABELTEXT);
 | 
						|
    wxASSERT( (textCtrl != NULL) );
 | 
						|
 | 
						|
    m_generalPropertiesDialog->SetShapeLabel(textCtrl->GetValue());
 | 
						|
 | 
						|
    wxDialog::OnOK(event);
 | 
						|
}
 | 
						|
 | 
						|
// Set some suitable defaults in the attribute dialogs (in the first instance,
 | 
						|
// just set all wxChoices to the first element)
 | 
						|
void csShapePropertiesDialog::SetDefaults()
 | 
						|
{
 | 
						|
    if (!m_attributeDialog)
 | 
						|
        return;
 | 
						|
 | 
						|
    wxNode* node = m_attributeDialog->GetChildren().First();
 | 
						|
    while (node)
 | 
						|
    {
 | 
						|
        wxWindow* child = (wxWindow*) node->Data();
 | 
						|
        if (child->IsKindOf(CLASSINFO(wxChoice)))
 | 
						|
        {
 | 
						|
            wxChoice* choice = (wxChoice*) child;
 | 
						|
            choice->SetSelection(0);
 | 
						|
        }
 | 
						|
        node = node->Next();
 | 
						|
    }
 | 
						|
 | 
						|
    if (!m_alternativeAttributeDialog)
 | 
						|
        return;
 | 
						|
 | 
						|
    node = m_alternativeAttributeDialog->GetChildren().First();
 | 
						|
    while (node)
 | 
						|
    {
 | 
						|
        wxWindow* child = (wxWindow*) node->Data();
 | 
						|
        if (child->IsKindOf(CLASSINFO(wxChoice)))
 | 
						|
        {
 | 
						|
            wxChoice* choice = (wxChoice*) child;
 | 
						|
            choice->SetSelection(0);
 | 
						|
        }
 | 
						|
        node = node->Next();
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * csGeneralShapePropertiesDialog
 | 
						|
 */
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csGeneralShapePropertiesDialog, wxPanel)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csGeneralShapePropertiesDialog, wxPanel)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
csGeneralShapePropertiesDialog::csGeneralShapePropertiesDialog()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
void csGeneralShapePropertiesDialog::SetShapeLabel(const wxString& label)
 | 
						|
{
 | 
						|
    wxTextCtrl* textCtrl = (wxTextCtrl*) FindWindow(ID_LABELTEXT);
 | 
						|
    wxASSERT( (textCtrl != NULL) );
 | 
						|
 | 
						|
    m_label = label;
 | 
						|
 | 
						|
    textCtrl->SetValue(label);
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * csThinRectangleDialog
 | 
						|
 */
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csThinRectangleDialog, wxPanel)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csThinRectangleDialog, wxPanel)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
csThinRectangleDialog::csThinRectangleDialog()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * csWideRectangleDialog
 | 
						|
 */
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csWideRectangleDialog, wxPanel)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csWideRectangleDialog, wxPanel)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
csWideRectangleDialog::csWideRectangleDialog()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * csTriangleDialog
 | 
						|
 */
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csTriangleDialog, wxPanel)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csTriangleDialog, wxPanel)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
csTriangleDialog::csTriangleDialog()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * csSemiCircleDialog
 | 
						|
 */
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csSemiCircleDialog, wxPanel)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csSemiCircleDialog, wxPanel)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
csSemiCircleDialog::csSemiCircleDialog()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * csCircleDialog
 | 
						|
 */
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csCircleDialog, wxPanel)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csCircleDialog, wxPanel)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
csCircleDialog::csCircleDialog()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * csCircleShadowDialog
 | 
						|
 */
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csCircleShadowDialog, wxPanel)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csCircleShadowDialog, wxPanel)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
csCircleShadowDialog::csCircleShadowDialog()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * csOctagonDialog
 | 
						|
 */
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csOctagonDialog, wxPanel)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csOctagonDialog, wxPanel)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
csOctagonDialog::csOctagonDialog()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * csGroupDialog
 | 
						|
 */
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csGroupDialog, wxPanel)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csGroupDialog, wxPanel)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
csGroupDialog::csGroupDialog()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * csTextBoxDialog
 | 
						|
 */
 | 
						|
 | 
						|
IMPLEMENT_CLASS(csTextBoxDialog, wxPanel)
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(csTextBoxDialog, wxPanel)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
csTextBoxDialog::csTextBoxDialog()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
 |