1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
// Copyright : (C) 2015 Eran Ifrah
// File name : NewPHPClass.h
//
// -------------------------------------------------------------------------
// A
// _____ _ _ _ _
// / __ \ | | | | (_) |
// | / \/ ___ __| | ___| | _| |_ ___
// | | / _ \ / _ |/ _ \ | | | __/ _ )
// | \__/\ (_) | (_| | __/ |___| | || __/
// \____/\___/ \__,_|\___\_____/_|\__\___|
//
// F i l e
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
#ifndef NEWPHPCLASS_H
#define NEWPHPCLASS_H
#include "new_class.h"
#include <wx/filename.h>
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
class PHPClassDetails
{
public:
enum {
GEN_CTOR = 0x00000001,
GEN_DTOR = 0x00000002,
GEN_SINGLETON = 0x00000004,
GEN_FOLDER_PER_NAMESPACE = 0x00000008,
};
protected:
wxFileName m_filepath;
wxString m_name;
wxString m_classNamespace;
size_t m_flags;
wxString m_type;
wxArrayString m_extends;
wxArrayString m_implements;
public:
PHPClassDetails() : m_flags(0), m_type("class") {}
virtual ~PHPClassDetails() {}
wxString ToString(const wxString& EOL, const wxString& indent) const;
void SetType(const wxString& type) {
this->m_type = type;
}
void SetExtends(const wxArrayString& extends) {
this->m_extends = extends;
}
void SetImplements(const wxArrayString& implements) {
this->m_implements = implements;
}
const wxArrayString& GetExtends() const {
return m_extends;
}
const wxArrayString& GetImplements() const {
return m_implements;
}
const wxString& GetType() const {
return m_type;
}
void SetClassNamespace(const wxString& classNamespace) {
this->m_classNamespace = classNamespace;
}
const wxString& GetNamespace() const {
return m_classNamespace;
}
void SetName(const wxString& name) {
this->m_name = name;
}
const wxString& GetName() const {
return m_name;
}
void SetFilepath(const wxFileName& filepath) {
this->m_filepath = filepath;
}
const wxFileName& GetFilepath() const {
return m_filepath;
}
void SetFlags(size_t flags) {
this->m_flags = flags;
}
size_t GetFlags() const {
return m_flags;
}
bool IsClass() const {
return GetType() == "class";
}
};
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
class NewPHPClass : public NewPHPClassBase
{
bool m_userModifiedFileName;
wxString m_outputPath;
public:
NewPHPClass(wxWindow* parent, const wxString &classPath);
virtual ~NewPHPClass();
protected:
virtual void OnEditExtends(wxCommandEvent& event);
virtual void OnEditImplements(wxCommandEvent& event);
virtual void OnFolderUpdated(wxCommandEvent& event);
virtual void OnFileNameUpdated(wxCommandEvent& event);
virtual void OnMakeSingletonUI(wxUpdateUIEvent& event);
virtual void OnFolderPerNamespace(wxCommandEvent& event);
virtual void OnNamespaceTextUpdated(wxCommandEvent& event);
virtual void OnClassNameUpdate(wxCommandEvent& event);
virtual void OnOKUI(wxUpdateUIEvent& event);
public:
PHPClassDetails GetDetails() const;
};
#endif // NEWPHPCLASS_H
|