X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f449ef69b45acaa2faf554af774ce7b6b5f4af4e..815a62d283baf05421cf2b95e15a722ebc5679d6:/utils/dialoged/src/reseditr.h diff --git a/utils/dialoged/src/reseditr.h b/utils/dialoged/src/reseditr.h index e78d4765dc..021b867195 100644 --- a/utils/dialoged/src/reseditr.h +++ b/utils/dialoged/src/reseditr.h @@ -12,7 +12,7 @@ #ifndef _RESEDITR_H_ #define _RESEDITR_H_ -#define wxDIALOG_EDITOR_VERSION 1.6 +#define wxDIALOG_EDITOR_VERSION 1.7 #ifdef __GNUG__ #pragma interface "reseditr.h" @@ -24,9 +24,11 @@ #include "wx/resource.h" #include "wx/toolbar.h" #include "wx/imaglist.h" - -#include "proplist.h" +#include "wx/treectrl.h" +#include "wx/proplist.h" +#include "wx/txtstrm.h" #include "symbtabl.h" +#include "winstyle.h" #define RESED_DELETE 1 #define RESED_RECREATE 3 @@ -75,7 +77,7 @@ class wxResourceEditorControlList; #ifdef __WXMSW__ #define wxHelpController wxWinHelpController #else -#define wxHelpController wxXLPHelpController; +#define wxHelpController wxHTMLHelpController; #endif class wxHelpController; @@ -112,14 +114,16 @@ class wxResourceTableWithSaving: public wxResourceTable public: wxResourceTableWithSaving():wxResourceTable() { + // Add all known window styles + m_styleTable.Init(); } virtual bool Save(const wxString& filename); - virtual bool SaveResource(ostream& stream, wxItemResource *item); + virtual bool SaveResource(wxTextOutputStream& stream, wxItemResource* item, wxItemResource* parentItem); - void GenerateWindowStyleString(long windowStyle, char *buf); void GeneratePanelStyleString(long windowStyle, char *buf); void GenerateDialogStyleString(long windowStyle, char *buf); +/* void GenerateRadioBoxStyleString(long windowStyle, char *buf); void GenerateMessageStyleString(long windowStyle, char *buf); void GenerateTextStyleString(long windowStyle, char *buf); @@ -131,13 +135,21 @@ class wxResourceTableWithSaving: public wxResourceTable void GenerateGroupBoxStyleString(long windowStyle, char *buf); void GenerateGaugeStyleString(long windowStyle, char *buf); void GenerateChoiceStyleString(long windowStyle, char *buf); + void GenerateComboBoxStyleString(long windowStyle, char *buf); void GenerateScrollBarStyleString(long windowStyle, char *buf); - void GenerateItemStyleString(long windowStyle, char *buf); - +*/ + + void GenerateControlStyleString(const wxString& windowClass, long windowStyle, char *buf); + +/* bool GenerateStyle(char *buf, long windowStyle, long flag, char *strStyle); +*/ + + void OutputFont(wxTextOutputStream& stream, const wxFont& font); + wxControl *CreateItem(wxPanel *panel, const wxItemResource *childResource, const wxItemResource* parentResource); - void OutputFont(ostream& stream, wxFont *font); - wxControl *CreateItem(wxPanel *panel, wxItemResource *childResource); +protected: + wxWindowStyleTable m_styleTable; }; class wxResourceEditorScrolledWindow; @@ -180,7 +192,7 @@ public: virtual wxFrame *OnCreateEditorFrame(const char *title); virtual wxMenuBar *OnCreateEditorMenuBar(wxFrame *parent); virtual wxResourceEditorScrolledWindow *OnCreateEditorPanel(wxFrame *parent); - virtual wxToolBarBase *OnCreateToolBar(wxFrame *parent); + virtual wxToolBar *OnCreateToolBar(wxFrame *parent); // Create a window information object for the give window wxWindowPropertyInfo* CreatePropertyInfoForWindow(wxWindow *win); @@ -208,25 +220,45 @@ public: virtual bool DeleteResource(wxWindow *win); // Add bitmap resource if there isn't already one with this filename. - virtual char *AddBitmapResource(char *filename); + virtual wxString AddBitmapResource(const wxString& filename); // Delete the bitmap resource if it isn't being used by another resource. - virtual void PossiblyDeleteBitmapResource(char *resourceName); + virtual void PossiblyDeleteBitmapResource(const wxString& resourceName); // Helper function for above - virtual bool IsBitmapResourceUsed(char *resourceName); + virtual bool IsBitmapResourceUsed(const wxString& resourceName); + + wxItemResource *FindBitmapResourceByFilename(const wxString& filename); - wxItemResource *FindBitmapResourceByFilename(char *filename); + wxString FindBitmapFilenameForResource(wxItemResource *resource); - char *FindBitmapFilenameForResource(wxItemResource *resource); + // Is this window identifier in use? + bool IsSymbolUsed(wxItemResource* thisResource, wxWindowID id) ; + + // Is this window identifier compatible with the given name? (i.e. + // does it already exist under a different name) + bool IsIdentifierOK(const wxString& name, wxWindowID id); + + // Change all integer ids that match oldId, to newId. + // This is necessary if an id is changed for one resource - all resources + // must be changed. + void ChangeIds(int oldId, int newId); + + // If any resource ids were missing (or their symbol was missing), + // repair them i.e. give them new ids. Returns TRUE if any resource + // needed repairing. + bool RepairResourceIds(); // Deletes 'win' and creates a new window from the resource that // was associated with it. E.g. if you can't change properties on the // fly, you'll need to delete the window and create it again. - virtual wxWindow *RecreateWindowFromResource(wxWindow *win, wxWindowPropertyInfo *info = NULL); + virtual wxWindow *RecreateWindowFromResource(wxWindow *win, wxWindowPropertyInfo *info = NULL, bool instantiateFirst = TRUE); virtual bool RecreateSelection(); + // Remove selection handles if this control is selected + void DeselectItemIfNecessary(wxWindow *win); + // Need to search through resource table removing this from // any resource which has this as a parent. virtual bool RemoveResourceFromParent(wxItemResource *res); @@ -258,7 +290,9 @@ public: inline wxResourceEditorControlList *GetEditorControlList() const { return m_editorControlList; } inline wxList& GetSelections() { return m_selections; } inline wxMenu *GetPopupMenu() const { return m_popupMenu; } +#ifdef __WXMSW__ inline wxHelpController *GetHelpController() const { return m_helpController; } +#endif inline void Modify(bool mod = TRUE) { m_modified = mod; } inline bool Modified() const { return m_modified; } @@ -275,9 +309,16 @@ public: inline wxRect& GetPropertyWindowSize() { return m_propertyWindowSize; } inline wxRect& GetResourceEditorWindowSize() { return m_resourceEditorWindowSize; } + wxResourceSymbolTable& GetSymbolTable() { return m_symbolTable; } + + // Generate a window id and a first stab at a name + int GenerateWindowId(const wxString& prefix, wxString& idName) ; + // Member variables protected: +#ifdef __WXMSW__ wxHelpController* m_helpController; +#endif wxResourceTableWithSaving m_resourceTable; wxFrame* m_editorFrame; wxResourceEditorScrolledWindow* m_editorPanel; @@ -286,6 +327,7 @@ public: wxResourceEditorControlList* m_editorControlList; EditorToolBar* m_editorToolBar; int m_nameCounter; + int m_symbolIdCounter; // For generating window ids bool m_modified; wxHashTable m_resourceAssociations; wxList m_selections; @@ -319,7 +361,7 @@ class wxResourceEditorFrame: public wxFrame long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"); ~wxResourceEditorFrame(); - bool OnClose(); + void OnCloseWindow(wxCloseEvent& event); void OnNew(wxCommandEvent& event); void OnOpen(wxCommandEvent& event); @@ -344,7 +386,6 @@ class wxResourceEditorScrolledWindow: public wxScrolledWindow long style = 0); ~wxResourceEditorScrolledWindow(); - void OnScroll(wxScrollEvent& event); void OnPaint(wxPaintEvent& event); void DrawTitle(wxDC& dc); @@ -376,7 +417,6 @@ public: long style = wxTB_HORIZONTAL); bool OnLeftClick(int toolIndex, bool toggled); void OnMouseEnter(int toolIndex); - void OnPaint(wxPaintEvent& event); DECLARE_EVENT_TABLE() }; @@ -400,5 +440,19 @@ DECLARE_EVENT_TABLE() #define TOOLBAR_TO_BACK 17 #define TOOLBAR_COPY_SIZE 18 +/* + * this class is used to store data associated with a tree item + */ +class wxResourceTreeData : public wxTreeItemData +{ +public: + wxResourceTreeData(wxItemResource *resource) { m_resource = resource; } + + wxItemResource *GetResource() const { return m_resource; } + +private: + wxItemResource *m_resource; +}; + #endif